#include <mesh_extractor.H>
Public Types | |
enum | writer_type_t { QUEUE, SPLIT_FILE } |
Public Member Functions | |
mesh_extractor_t (access_data_t *ad_, wall_t *wall_, unsigned triangle_qid_, writer_type_t type_) | |
void | extract (unsigned counter) |
void | publish () |
Private Member Functions | |
void | publish_stripe (unsigned stripe_id_) |
void | update_end_stp_id (unsigned counter) |
bool | triangle_at (unsigned r1, unsigned c1, unsigned r2, unsigned c2, unsigned r3, unsigned c3) |
bool | form_triangle (cell_t &cell1_, cell_t &cell2_, cell_t &cell3_, point_3d_t &pt_) |
bool | match_first_point (point_3d_t &p1_, cell_t &cell_, unsigned point_index_, bool closest_, point_3d_t *&pt_) |
point_3d_t & | match_closest_point (double delta_depth_, point_3d_t &p1_, cell_t &cell_, unsigned point_index_) |
Private Attributes | |
mesh_writer_interface_t * | m_mesh_writer |
mesh_cell_queue_writer_t * | m_cell_writer |
wall_t * | m_wall |
bool | m_match_closest_pts |
unsigned | m_start_stp_id |
unsigned | m_end_stp_id |
cajun::mesh_extractor_t::mesh_extractor_t | ( | access_data_t * | ad_, | |
wall_t * | wall_, | |||
unsigned | triangle_qid_, | |||
writer_type_t | type_ | |||
) | [inline] |
References m_cell_writer, m_match_closest_pts, m_mesh_writer, cajun::wall_t::max_cells(), QUEUE, and SPLIT_FILE.
void mesh_extractor_t::extract | ( | unsigned | counter | ) |
References cajun::wall_t::cell(), cajun::cell_t::empty(), cajun::wall_t::flush_stripe(), m_end_stp_id, m_start_stp_id, m_wall, cajun::wall_t::max_cells(), publish_stripe(), triangle_at(), and update_end_stp_id().
Referenced by main().
bool mesh_extractor_t::form_triangle | ( | cell_t & | cell1_, | |
cell_t & | cell2_, | |||
cell_t & | cell3_, | |||
point_3d_t & | pt_ | |||
) | [private] |
References cajun::point_3d_t::m_depth, m_match_closest_pts, m_mesh_writer, match_first_point(), MAX_DEPTH_DIFF, and cajun::mesh_writer_interface_t::write_mesh().
Referenced by triangle_at().
point_3d_t & mesh_extractor_t::match_closest_point | ( | double | delta_depth_, | |
point_3d_t & | p1_, | |||
cell_t & | cell_, | |||
unsigned | point_index_ | |||
) | [private] |
References cajun::cell_t::get_point(), cajun::point_3d_t::m_depth, and cajun::cell_t::num_points().
Referenced by match_first_point().
bool mesh_extractor_t::match_first_point | ( | point_3d_t & | p1_, | |
cell_t & | cell_, | |||
unsigned | point_index_, | |||
bool | closest_, | |||
point_3d_t *& | pt_ | |||
) | [private] |
References cajun::cell_t::get_point(), cajun::point_3d_t::m_depth, match_closest_point(), MAX_DEPTH_DIFF, and cajun::cell_t::num_points().
Referenced by form_triangle().
void mesh_extractor_t::publish | ( | ) |
void mesh_extractor_t::publish_stripe | ( | unsigned | stripe_id_ | ) | [private] |
bool mesh_extractor_t::triangle_at | ( | unsigned | r1, | |
unsigned | c1, | |||
unsigned | r2, | |||
unsigned | c2, | |||
unsigned | r3, | |||
unsigned | c3 | |||
) | [private] |
References cajun::wall_t::cell(), cajun::cell_t::empty(), form_triangle(), cajun::cell_t::get_marked_pts(), cajun::cell_t::get_point(), and m_wall.
Referenced by extract().
void mesh_extractor_t::update_end_stp_id | ( | unsigned | counter | ) | [private] |
References m_end_stp_id, m_wall, cajun::wall_t::max_columns(), cajun::wall_t::sort_stripe(), and cajun::wall_t::stripe_counter().
Referenced by extract().
Referenced by mesh_extractor_t(), and publish_stripe().
unsigned cajun::mesh_extractor_t::m_end_stp_id [private] |
Referenced by extract(), and update_end_stp_id().
bool cajun::mesh_extractor_t::m_match_closest_pts [private] |
Referenced by form_triangle(), and mesh_extractor_t().
Referenced by form_triangle(), and mesh_extractor_t().
unsigned cajun::mesh_extractor_t::m_start_stp_id [private] |
Referenced by extract().
wall_t* cajun::mesh_extractor_t::m_wall [private] |
Referenced by extract(), publish_stripe(), triangle_at(), and update_end_stp_id().