SheafSystem
0.0.0.0
|
An abstract point location query in domains with global coordinate dimension dc and local coordinate dimension db. More...
#include <point_locator.h>
CANONICAL FACET | |
virtual bool | invariant () const |
Class invariant. More... | |
virtual | ~point_locator () |
Destructor. More... | |
POINT_LOCATOR FACET | |
block< sec_vd_value_type > | _lb |
The lower bound of the domain. More... | |
block< sec_vd_value_type > | _ub |
The upper bound of the domain. More... | |
int | _dc |
The spatial dimension of the domain; the dimension of the global coordinates. More... | |
int | _db |
The intrinsic dimension of the domain; the dimension of the local coordinates. More... | |
sec_ed & | coordinates () const |
The coordinate section this inverts. More... | |
const block< sec_vd_value_type > & | lb () const |
The lower bound of the domain defined by coordinates(). More... | |
const block< sec_vd_value_type > & | ub () const |
The upper bound of the domain defined by coordinates(). More... | |
int | dc () const |
The spatial dimension of the domain; the dimension of the global coordinates. More... | |
int | db () const |
The intrinsic dimension of the domain; the dimension of the local coordinates. More... | |
bool | domain_contains (sec_vd_value_type *xpt, size_type xpt_ub) const |
True if the domain contains xpt. More... | |
virtual void | update ()=0 |
Updates the search structure to the current values of coordinates(). More... | |
virtual void | point_at_value (const sec_vd_value_type *xvalue, size_type xvalue_ub, chart_point &xresult)=0 |
Finds a chart point at which coordinates() has value xvalue. More... | |
virtual void | all_points_at_value (const sec_vd_value_type *xvalue, size_type xvalue_ub, block< chart_point_3d > &xresult)=0 |
Finds all chart points at which coordinates() has value xvalue and appends them to xresult. Note that charts overlap at their boundaries and hence if xvalue lies on a boundary it is contained in more than one chart. More... | |
virtual void | branch_points_at_value (const sec_vd_value_type *xvalue, size_type xvalue_ub, block< branch_point_pair > &xresult)=0 |
Finds one chart point in each branch at which coordinates() has value xvalue and appends them to xresult. More... | |
point_locator () | |
Default constructor. More... | |
point_locator (sec_ed &xcoords) | |
Create an instance for coordinate section xcoords. More... | |
void | update_domain () |
Initializes the domain bounds and dimension. More... | |
static sec_vd_value_type | slightly_greater_than (sec_vd_value_type x) |
A value slightly greater then x. More... | |
static sec_vd_value_type | slightly_less_than (sec_vd_value_type x) |
A value slightly less then x. More... | |
An abstract point location query in domains with global coordinate dimension dc and local coordinate dimension db.
Definition at line 52 of file point_locator.h.
|
virtual |
Destructor.
Definition at line 58 of file point_locator.cc.
References coordinates().
Referenced by invariant().
|
protected |
Default constructor.
Not Implemented.
Definition at line 299 of file point_locator.cc.
References invariant().
Referenced by branch_points_at_value(), geometry::cylindrical_point_locator::cylindrical_point_locator(), geometry::d_bin_point_locator< DC, DB >::d_bin_point_locator(), geometry::d_uniform_point_locator< DC, DB >::d_uniform_point_locator(), geometry::db0_point_locator< DC >::db0_point_locator(), and update_domain().
|
protected |
Create an instance for coordinate section xcoords.
Definition at line 320 of file point_locator.cc.
References _db, _dc, _lb, _ub, sheaf::auto_block< T, S >::assign(), coordinates(), fiber_bundle::section_space_schema_member::db(), fiber_bundle::section_space_schema_member::df(), invariant(), fiber_bundle::vd_algebra::max(), sheaf::auto_block< T, S >::reserve(), fiber_bundle::sec_rep_space_member::schema(), sheaf::auto_block< T, S >::set_ct(), slightly_greater_than(), and sheaf::read_write_monitor_handle::state_is_read_accessible().
|
pure virtual |
Finds all chart points at which coordinates() has value xvalue and appends them to xresult. Note that charts overlap at their boundaries and hence if xvalue lies on a boundary it is contained in more than one chart.
Is Abstract.
Implemented in geometry::db0_point_locator< DC >, geometry::cylindrical_point_locator, geometry::d_bin_point_locator< DC, DB >, and geometry::d_uniform_point_locator< DC, DB >.
Definition at line 248 of file point_locator.cc.
References branch_points_at_value(), and sheaf::auto_block< T, un_block_initialization_policy< T > >::ct().
Referenced by geometry::sec_ed_invertible::all_points_at_value_ua(), and point_at_value().
|
pure virtual |
Finds one chart point in each branch at which coordinates() has value xvalue and appends them to xresult.
Is Abstract.
Implemented in geometry::db0_point_locator< DC >, geometry::cylindrical_point_locator, geometry::d_bin_point_locator< DC, DB >, and geometry::d_uniform_point_locator< DC, DB >.
Definition at line 270 of file point_locator.cc.
References sheaf::auto_block< T, S >::ct(), and point_locator().
Referenced by all_points_at_value(), and geometry::sec_ed_invertible::branch_points_at_value_ua().
fiber_bundle::sec_ed & geometry::point_locator::coordinates | ( | ) | const |
The coordinate section this inverts.
Definition at line 82 of file point_locator.cc.
References lb().
Referenced by geometry::d_bin_point_locator< DC, DB >::assign_box(), geometry::d_bin_point_locator< DC, DB >::branch_points_at_value(), geometry::cylindrical_point_locator::branch_points_at_value(), geometry::db0_point_locator< DC >::branch_points_at_value(), geometry::d_bin_point_locator< DC, DB >::invariant(), geometry::d_tree_point_locator< DC, DB >::invariant(), geometry::cylindrical_point_locator::invariant(), geometry::db0_point_locator< DC >::invariant(), geometry::db0_point_locator< DC >::point_at_value(), point_locator(), geometry::d_bin_point_locator< DC, DB >::update(), geometry::cylindrical_point_locator::update(), geometry::db0_point_locator< DC >::update(), update_domain(), and ~point_locator().
int geometry::point_locator::db | ( | ) | const |
The intrinsic dimension of the domain; the dimension of the local coordinates.
Definition at line 158 of file point_locator.cc.
References domain_contains().
Referenced by geometry::d_bin_point_locator< DC, DB >::all_points_at_value(), geometry::cylindrical_point_locator::all_points_at_value(), geometry::db0_point_locator< DC >::all_points_at_value(), geometry::cylindrical_point_locator::bin_ub(), geometry::cylindrical_point_locator::box_list(), geometry::array_cylindrical_point_locator::box_list(), geometry::db0_point_locator< DC >::branch_points_at_value(), dc(), geometry::operator<<(), geometry::d_bin_point_locator< DC, DB >::point_at_value(), geometry::cylindrical_point_locator::point_at_value(), geometry::db0_point_locator< DC >::point_at_value(), geometry::cylindrical_point_locator::relative_position(), and geometry::cylindrical_point_locator::relative_position_pa().
int geometry::point_locator::dc | ( | ) | const |
The spatial dimension of the domain; the dimension of the global coordinates.
Definition at line 138 of file point_locator.cc.
References db().
Referenced by geometry::d_bin_point_locator< DC, DB >::all_points_at_value(), geometry::cylindrical_point_locator::all_points_at_value(), geometry::db0_point_locator< DC >::all_points_at_value(), geometry::db0_point_locator< DC >::bin_ub(), geometry::d_bin_point_locator< DC, DB >::bin_ub(), geometry::d_bin_point_locator< DC, DB >::box_list(), geometry::d_tree_point_locator< DC, DB >::box_list(), geometry::d_bin_point_locator< DC, DB >::branch_points_at_value(), geometry::cylindrical_point_locator::branch_points_at_value(), geometry::db0_point_locator< DC >::branch_points_at_value(), geometry::db0_point_locator< DC >::invariant(), geometry::d_bin_point_locator< DC, DB >::point_at_value(), geometry::cylindrical_point_locator::point_at_value(), geometry::db0_point_locator< DC >::point_at_value(), geometry::d_bin_point_locator< DC, DB >::relative_position(), geometry::d_bin_point_locator< DC, DB >::relative_position_pa(), geometry::d_array_point_locator< DC, DB >::to_stream(), and ub().
bool geometry::point_locator::domain_contains | ( | sec_vd_value_type * | xpt, |
size_type | xpt_ub | ||
) | const |
True if the domain contains xpt.
Definition at line 178 of file point_locator.cc.
References update().
Referenced by geometry::d_bin_point_locator< DC, DB >::all_points_at_value(), geometry::d_bin_point_locator< DC, DB >::box_list(), geometry::d_tree_point_locator< DC, DB >::box_list(), geometry::d_bin_point_locator< DC, DB >::branch_points_at_value(), db(), and geometry::d_bin_point_locator< DC, DB >::point_at_value().
|
virtual |
Class invariant.
Reimplemented in geometry::db0_point_locator< DC >, geometry::cylindrical_point_locator, geometry::d_array_point_locator< DC, DB >, geometry::d_tree_point_locator< DC, DB >, geometry::array_cylindrical_point_locator, geometry::d_bin_point_locator< DC, DB >, and geometry::d_uniform_point_locator< DC, DB >.
Definition at line 47 of file point_locator.cc.
References ~point_locator().
Referenced by point_locator().
const sheaf::block< fiber_bundle::sec_vd_value_type > & geometry::point_locator::lb | ( | ) | const |
The lower bound of the domain defined by coordinates().
Definition at line 101 of file point_locator.cc.
References ub().
Referenced by coordinates(), geometry::operator<<(), and geometry::d_array_point_locator< DC, DB >::to_stream().
|
pure virtual |
Finds a chart point at which coordinates() has value xvalue.
Is Abstract.
Implemented in geometry::db0_point_locator< DC >, geometry::cylindrical_point_locator, geometry::d_bin_point_locator< DC, DB >, and geometry::d_uniform_point_locator< DC, DB >.
Definition at line 227 of file point_locator.cc.
References all_points_at_value().
Referenced by geometry::sec_ed_invertible::point_at_value_ua(), and update().
|
staticprotected |
A value slightly greater then x.
Definition at line 355 of file point_locator.cc.
References slightly_less_than().
Referenced by point_locator(), and update_domain().
|
staticprotected |
A value slightly less then x.
Definition at line 391 of file point_locator.cc.
References update_domain().
Referenced by slightly_greater_than(), and update_domain().
const sheaf::block< fiber_bundle::sec_vd_value_type > & geometry::point_locator::ub | ( | ) | const |
The upper bound of the domain defined by coordinates().
Definition at line 120 of file point_locator.cc.
References dc().
Referenced by lb(), geometry::operator<<(), and geometry::d_array_point_locator< DC, DB >::to_stream().
|
pure virtual |
Updates the search structure to the current values of coordinates().
Implemented in geometry::db0_point_locator< DC >, geometry::cylindrical_point_locator, geometry::d_bin_point_locator< DC, DB >, and geometry::d_uniform_point_locator< DC, DB >.
Definition at line 207 of file point_locator.cc.
References point_at_value().
Referenced by domain_contains(), and geometry::sec_ed_invertible::update_inversion().
|
protected |
Initializes the domain bounds and dimension.
Definition at line 427 of file point_locator.cc.
References _dc, _lb, _ub, sheaf::abstract_poset_member::attach_to_state(), sheaf::auto_block< T, S >::base(), coordinates(), fiber_bundle::sec_tuple::detach_from_state(), sheaf::DOWN, fiber_bundle::sec_vd_algebra::extrema(), fiber_bundle::sec_at1::host(), sheaf::depth_first_iterator::index(), sheaf::depth_first_iterator::is_done(), sheaf::NOT_STRICT, point_locator(), slightly_greater_than(), slightly_less_than(), sheaf::depth_first_iterator::truncate(), and sheaf::auto_block< T, S >::ub().
Referenced by slightly_less_than(), geometry::d_bin_point_locator< DC, DB >::update(), geometry::cylindrical_point_locator::update(), and geometry::db0_point_locator< DC >::update().
|
protected |
The intrinsic dimension of the domain; the dimension of the local coordinates.
Definition at line 185 of file point_locator.h.
Referenced by point_locator().
|
protected |
The spatial dimension of the domain; the dimension of the global coordinates.
Definition at line 179 of file point_locator.h.
Referenced by point_locator(), and update_domain().
|
protected |
The lower bound of the domain.
Definition at line 168 of file point_locator.h.
Referenced by point_locator(), geometry::db0_point_locator< DC >::relative_position(), geometry::d_bin_point_locator< DC, DB >::relative_position_pa(), geometry::d_tree_point_locator< DC, DB >::update_bins(), geometry::db0_point_locator< DC >::update_bins(), geometry::d_array_point_locator< DC, DB >::update_bins(), and update_domain().
|
protected |
The upper bound of the domain.
Definition at line 173 of file point_locator.h.
Referenced by point_locator(), geometry::d_tree_point_locator< DC, DB >::update_bins(), geometry::db0_point_locator< DC >::update_bins(), geometry::d_array_point_locator< DC, DB >::update_bins(), and update_domain().