#include <motion.h>
Inherits LoadServer.

Public Member Functions | |
| RotateScan (MotionMain *plugin, int total_clients, int total_packages) | |
| ~RotateScan () | |
| void | init_packages () |
| LoadClient * | new_client () |
| LoadPackage * | new_package () |
| float | scan_frame (VFrame *previous_frame, VFrame *current_frame, int block_x, int block_y) |
| int64_t | get_cache (float angle) |
| void | put_cache (float angle, int64_t difference) |
Data Fields | |
| float | result |
Private Attributes | |
| VFrame * | previous_frame |
| VFrame * | current_frame |
| MotionMain * | plugin |
| int | skip |
| int | block_x |
| int | block_y |
| int | block_x1 |
| int | block_x2 |
| int | block_y1 |
| int | block_y2 |
| int | scan_x |
| int | scan_y |
| int | scan_w |
| int | scan_h |
| float | scan_angle1 |
| float | scan_angle2 |
| int | total_steps |
| ArrayList< RotateScanCache * > | cache |
| Mutex * | cache_lock |
Friends | |
| class | RotateScanUnit |
Definition at line 401 of file motion.h.
| RotateScan::RotateScan | ( | MotionMain * | plugin, | |
| int | total_clients, | |||
| int | total_packages | |||
| ) |
| RotateScan::~RotateScan | ( | ) |
| void RotateScan::init_packages | ( | ) | [virtual] |
Reimplemented from LoadServer.
Definition at line 2517 of file motion.C.
References RotateScanPackage::angle, LoadServer::get_package(), LoadServer::get_total_packages(), scan_angle1, scan_angle2, and total_steps.

| LoadClient * RotateScan::new_client | ( | ) | [virtual] |
Reimplemented from LoadServer.
Definition at line 2529 of file motion.C.
References plugin, and RotateScanUnit.
| LoadPackage * RotateScan::new_package | ( | ) | [virtual] |
| float RotateScan::scan_frame | ( | VFrame * | previous_frame, | |
| VFrame * | current_frame, | |||
| int | block_x, | |||
| int | block_y | |||
| ) |
Definition at line 2540 of file motion.C.
References RotateScanPackage::angle, BCTEXTLEN, block_x1, block_x2, block_y1, block_y2, cache, RotateScanPackage::difference, fclose(), fopen(), fprintf, fscanf(), VFrame::get_h(), LoadServer::get_package(), PluginClient::get_source_position(), LoadServer::get_total_packages(), VFrame::get_w(), input, MotionConfig::LOAD, M_PI, MAX, MIN_ANGLE, MotionConfig::NO_CALCULATE, output, OVERSAMPLE, plugin, LoadServer::process_packages(), ArrayList< TYPE >::remove_all_objects(), result, ROTATION_FILE, MotionConfig::SAVE, scan_angle1, scan_angle2, scan_h, scan_w, scan_x, scan_y, LoadServer::set_package_count(), skip, and total_steps.
Referenced by MotionMain::process_rotation().

| int64_t RotateScan::get_cache | ( | float | angle | ) |
Definition at line 2745 of file motion.C.
References RotateScanCache::angle, cache, cache_lock, RotateScanCache::difference, Mutex::lock(), MIN_ANGLE, result, ArrayList< TYPE >::total, Mutex::unlock(), and ArrayList< TYPE >::values.
Referenced by RotateScanUnit::process_package().

| void RotateScan::put_cache | ( | float | angle, | |
| int64_t | difference | |||
| ) |
Definition at line 2762 of file motion.C.
References ArrayList< TYPE >::append(), cache, cache_lock, Mutex::lock(), and Mutex::unlock().
Referenced by RotateScanUnit::process_package().

friend class RotateScanUnit [friend] |
| float RotateScan::result |
VFrame* RotateScan::previous_frame [private] |
VFrame* RotateScan::current_frame [private] |
MotionMain* RotateScan::plugin [private] |
int RotateScan::skip [private] |
Definition at line 436 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::block_x [private] |
int RotateScan::block_y [private] |
int RotateScan::block_x1 [private] |
Definition at line 442 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::block_x2 [private] |
Definition at line 443 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::block_y1 [private] |
Definition at line 444 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::block_y2 [private] |
Definition at line 445 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::scan_x [private] |
Definition at line 447 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::scan_y [private] |
Definition at line 448 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::scan_w [private] |
Definition at line 449 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
int RotateScan::scan_h [private] |
Definition at line 450 of file motion.h.
Referenced by RotateScanUnit::process_package(), and scan_frame().
float RotateScan::scan_angle1 [private] |
float RotateScan::scan_angle2 [private] |
int RotateScan::total_steps [private] |
ArrayList<RotateScanCache*> RotateScan::cache [private] |
Mutex* RotateScan::cache_lock [private] |
Definition at line 456 of file motion.h.
Referenced by get_cache(), put_cache(), RotateScan(), and ~RotateScan().
1.5.5