#include <grid_slope.H>
Classes | |
struct | beam_chain_t |
struct | data_cell_t |
struct | dist_list_t |
struct | dist_sort_t |
Public Member Functions | |
grid_slope_t (data_queue_writer_t< scan_analysis_data_t > *scan_analysis_dq_b_writer, int triangle_count, double min_len, double max_len, unsigned ver_per_cell, unsigned max_vec_len, unsigned num_search_scans, double REFRESH_TIME) | |
scan_gp_data_t & | get_free_db_entry () |
bool | is_db_full () |
void | delete_old_data (double curr_time) |
void | process_new_db_entry () |
void | sanity_check (char *s, unsigned index) |
void | delete_scan (scan_gp_data_t const &points) |
void | fill_grid (scan_gp_data_t const &points, unsigned head) |
void | detect_slope (unsigned const &head) |
void | compute_slope (double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, scan_analysis_data_t &assign_slope) |
void | find_eligible_vertices (double x1, double y1, double z1) |
void | make_triangles (double const &x1, double const &y1, double const &z1, scan_analysis_data_t &assign_slope) |
bool | test_sec_ver (double x1, double y1, double x2, double y2, double z1, double z2, double &dist_sqr) |
Private Types | |
typedef grid_t< data_cell_t > | data_grid_t |
Private Attributes | |
scan_analysis_data_t | assign_slope |
data_queue_writer_t < scan_analysis_data_t > * | m_dq_writer |
data_queue_writer_t < scan_analysis_data_t > * | m_dq_b_writer |
scan_gp_data_t * | scan_gp_db |
beam_chain_t * | beam_list |
std::vector< dist_list_t > | ver_vec |
data_grid_t | grid |
double | data_cell_size |
double | R2D |
int | triangles_per_beam |
unsigned | head_of_db |
unsigned | tail_of_db |
double | MIN_LEN_SQR |
double | MAX_LEN_SQR |
unsigned | VER_PER_CELL |
unsigned | MAX_VEC_LEN |
unsigned | MAX_SEARCH_SCANS |
double | refresh_time |
unsigned | scans_in_repository |
Static Private Attributes | |
static unsigned const | NULL_ENTRY = INT_MAX |
typedef grid_t<data_cell_t> cajun::grid_slope_t::data_grid_t [private] |
cajun::grid_slope_t::grid_slope_t | ( | data_queue_writer_t< scan_analysis_data_t > * | scan_analysis_dq_b_writer, | |
int | triangle_count, | |||
double | min_len, | |||
double | max_len, | |||
unsigned | ver_per_cell, | |||
unsigned | max_vec_len, | |||
unsigned | num_search_scans, | |||
double | REFRESH_TIME | |||
) | [inline] |
References beam_list, data_cell_size, grid, head_of_db, m_dq_b_writer, MAX_LEN_SQR, MAX_SEARCH_SCANS, MAX_VEC_LEN, MIN_LEN_SQR, R2D, refresh_time, scan_gp_db, scans_in_repository, tail_of_db, triangles_per_beam, and VER_PER_CELL.
void grid_slope_t::compute_slope | ( | double | x1, | |
double | y1, | |||
double | z1, | |||
double | x2, | |||
double | y2, | |||
double | z2, | |||
double | x3, | |||
double | y3, | |||
double | z3, | |||
scan_analysis_data_t & | assign_slope | |||
) |
References assign_slope, m_dq_b_writer, and R2D.
Referenced by make_triangles().
void cajun::grid_slope_t::delete_old_data | ( | double | curr_time | ) | [inline] |
References delete_scan(), MAX_SEARCH_SCANS, refresh_time, scan_gp_db, scans_in_repository, and tail_of_db.
void grid_slope_t::delete_scan | ( | scan_gp_data_t const & | points | ) |
References beam_list, data_cell_size, grid, cajun::grid_slope_t::beam_chain_t::next, NULL_ENTRY, and cajun::grid_slope_t::beam_chain_t::previous.
Referenced by delete_old_data().
void grid_slope_t::detect_slope | ( | unsigned const & | head | ) |
References assign_slope, find_eligible_vertices(), m_dq_b_writer, make_triangles(), scan_gp_beam, and scan_gp_db.
Referenced by process_new_db_entry().
void grid_slope_t::fill_grid | ( | scan_gp_data_t const & | points, | |
unsigned | head | |||
) |
References beam_list, data_cell_size, grid, cajun::grid_slope_t::beam_chain_t::next, NULL_ENTRY, and cajun::grid_slope_t::beam_chain_t::previous.
Referenced by process_new_db_entry().
void grid_slope_t::find_eligible_vertices | ( | double | x1, | |
double | y1, | |||
double | z1 | |||
) |
References beam_list, data_cell_size, cajun::grid_slope_t::dist_list_t::dist_sqr, dx, dy, grid, cajun::grid_slope_t::dist_list_t::index, MAX_VEC_LEN, max_vec_len, NULL_ENTRY, cajun::grid_slope_t::beam_chain_t::previous, scan_gp_beam, test_sec_ver(), VER_PER_CELL, ver_per_cell, and ver_vec.
Referenced by detect_slope().
scan_gp_data_t& cajun::grid_slope_t::get_free_db_entry | ( | ) | [inline] |
References head_of_db, and scan_gp_db.
Referenced by main().
bool cajun::grid_slope_t::is_db_full | ( | ) | [inline] |
References MAX_SEARCH_SCANS, and scans_in_repository.
void grid_slope_t::make_triangles | ( | double const & | x1, | |
double const & | y1, | |||
double const & | z1, | |||
scan_analysis_data_t & | assign_slope | |||
) |
References compute_slope(), scan_gp_beam, triangles_per_beam, and ver_vec.
Referenced by detect_slope().
void cajun::grid_slope_t::process_new_db_entry | ( | ) | [inline] |
References detect_slope(), fill_grid(), head_of_db, MAX_SEARCH_SCANS, scan_gp_db, and scans_in_repository.
Referenced by main().
void grid_slope_t::sanity_check | ( | char * | s, | |
unsigned | index | |||
) |
bool grid_slope_t::test_sec_ver | ( | double | x1, | |
double | y1, | |||
double | x2, | |||
double | y2, | |||
double | z1, | |||
double | z2, | |||
double & | dist_sqr | |||
) | [inline] |
References MAX_LEN_SQR, and MIN_LEN_SQR.
Referenced by find_eligible_vertices().
scan_analysis_data_t cajun::grid_slope_t::assign_slope [private] |
Referenced by compute_slope(), and detect_slope().
beam_chain_t* cajun::grid_slope_t::beam_list [private] |
Referenced by delete_scan(), fill_grid(), find_eligible_vertices(), grid_slope_t(), and sanity_check().
double cajun::grid_slope_t::data_cell_size [private] |
Referenced by delete_scan(), fill_grid(), find_eligible_vertices(), and grid_slope_t().
data_grid_t cajun::grid_slope_t::grid [private] |
Referenced by delete_scan(), fill_grid(), find_eligible_vertices(), and grid_slope_t().
unsigned cajun::grid_slope_t::head_of_db [private] |
Referenced by get_free_db_entry(), grid_slope_t(), and process_new_db_entry().
data_queue_writer_t<scan_analysis_data_t>* cajun::grid_slope_t::m_dq_b_writer [private] |
Referenced by compute_slope(), detect_slope(), and grid_slope_t().
data_queue_writer_t<scan_analysis_data_t>* cajun::grid_slope_t::m_dq_writer [private] |
double cajun::grid_slope_t::MAX_LEN_SQR [private] |
Referenced by grid_slope_t(), and test_sec_ver().
unsigned cajun::grid_slope_t::MAX_SEARCH_SCANS [private] |
Referenced by delete_old_data(), grid_slope_t(), is_db_full(), and process_new_db_entry().
unsigned cajun::grid_slope_t::MAX_VEC_LEN [private] |
Referenced by find_eligible_vertices(), and grid_slope_t().
double cajun::grid_slope_t::MIN_LEN_SQR [private] |
Referenced by grid_slope_t(), and test_sec_ver().
unsigned const cajun::grid_slope_t::NULL_ENTRY = INT_MAX [static, private] |
Referenced by delete_scan(), fill_grid(), find_eligible_vertices(), and sanity_check().
double cajun::grid_slope_t::R2D [private] |
Referenced by compute_slope(), and grid_slope_t().
double cajun::grid_slope_t::refresh_time [private] |
Referenced by delete_old_data(), and grid_slope_t().
scan_gp_data_t* cajun::grid_slope_t::scan_gp_db [private] |
Referenced by delete_old_data(), detect_slope(), get_free_db_entry(), grid_slope_t(), and process_new_db_entry().
unsigned cajun::grid_slope_t::scans_in_repository [private] |
Referenced by delete_old_data(), grid_slope_t(), is_db_full(), and process_new_db_entry().
unsigned cajun::grid_slope_t::tail_of_db [private] |
Referenced by delete_old_data(), and grid_slope_t().
int cajun::grid_slope_t::triangles_per_beam [private] |
Referenced by grid_slope_t(), and make_triangles().
unsigned cajun::grid_slope_t::VER_PER_CELL [private] |
Referenced by find_eligible_vertices(), and grid_slope_t().
std::vector<dist_list_t> cajun::grid_slope_t::ver_vec [private] |
Referenced by find_eligible_vertices(), and make_triangles().