SheafSystem
0.0.0.0
|
A line-surface intersection query. More...
#include <line_surface_intersecter.h>
Classes | |
struct | really_less_than |
Compare functor makes sure surface values are really different. More... | |
Friends | |
SHEAF_DLL_SPEC std::ostream & | operator<< (std::ostream &os, const line_surface_intersecter &xp) |
Insert line_surface_intersecter xp in ostream xos. More... | |
LINE_SURFACE_INTERSECTER FACET | |
typedef std::map< sec_vd_value_type, pod_index_type, really_less_than > | intersection_set_type |
The type of intersetion set, a map from z coordinate to surface id; sorted by z coordinate. More... | |
typedef d_bounding_box< 3, 2 > | box_type |
The type of search structure box. More... | |
typedef d_array_point_locator< 3, 2 > | search_structure_type |
The type of collision search structure. More... | |
typedef search_structure_type::box_set_type | box_set_type |
The type of search structure box set. More... | |
sec_e3 * | _coords |
The coordinate section for lines. More... | |
base_space_poset * | _host |
The base space. More... | |
index_space_handle * | _surface_id_space |
The surface id space. More... | |
index_space_handle * | _eval_id_space |
The id space for surface evaluators. More... | |
linear_2d | _evaluator |
The evaluator for surface sections; temporarily assumes triangle. More... | |
search_structure_type * | _locator |
The intersection search structure. More... | |
line_surface_intersecter (sec_e3 &xcoords, const block< size_type > &xbin_ubs) | |
Creates an intersector with surfaces defined by coordinate section xcoords. Allocates a search structure with bin index upper bounds xbin_ubs. More... | |
line_surface_intersecter (const line_surface_intersecter &xother) | |
Copy constructor. More... | |
virtual | ~line_surface_intersecter () |
Destructor. More... | |
const sec_e3 & | coords () const |
The section space containing the surfaces. More... | |
void | intersect (const e3_lite &xp0, const e3_lite &xp1, intersection_set_type &xresult) const |
Computes the intersections of the line passing through points xp0 and xp1 with the surfaces defined by coords(). More... | |
line_surface_intersecter () | |
Default constructor; disabled. More... | |
bool | intersect (const e3_lite &xp0, const e3_lite &xp1, const d_bounding_box< 3, 2 > &xbox, e3_lite &xr) const |
Computes the intersection xr of the line passing through points xp0 and xp1 with the surface evaluator contained in xbox. More... | |
ANY FACET | |
virtual bool | is_ancestor_of (const any *other) const |
Conformance test; true if other conforms to this. More... | |
virtual line_surface_intersecter * | clone () const |
Virtual constructor, makes a new instance of the same type as this. More... | |
line_surface_intersecter & | operator= (const line_surface_intersecter &xother) |
Assignment operator. More... | |
virtual bool | invariant () const |
Class invariant. More... | |
Additional Inherited Members | |
Public Member Functions inherited from sheaf::any | |
bool | is_same_type (const any *other) const |
True if other is the same type as this. More... | |
virtual | ~any () |
Destructor. More... | |
bool | invariant_check () const |
True if invariant checking is enabled. More... | |
void | enable_invariant_check () const |
Enable invariant checking. More... | |
void | disable_invariant_check () const |
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More... | |
int | disable_invariance_check_request_depth () const |
Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
A line-surface intersection query.
Definition at line 79 of file line_surface_intersecter.h.
|
protected |
The type of search structure box set.
Definition at line 184 of file line_surface_intersecter.h.
The type of search structure box.
Definition at line 134 of file line_surface_intersecter.h.
typedef std::map<sec_vd_value_type, pod_index_type, really_less_than> geometry::line_surface_intersecter::intersection_set_type |
The type of intersetion set, a map from z coordinate to surface id; sorted by z coordinate.
Definition at line 129 of file line_surface_intersecter.h.
|
protected |
The type of collision search structure.
Definition at line 179 of file line_surface_intersecter.h.
geometry::line_surface_intersecter::line_surface_intersecter | ( | sec_e3 & | xcoords, |
const block< size_type > & | xbin_ubs | ||
) |
Creates an intersector with surfaces defined by coordinate section xcoords. Allocates a search structure with bin index upper bounds xbin_ubs.
Definition at line 45 of file line_surface_intersecter.cc.
References sheaf::poset_component::get_read_access(), and line_surface_intersecter().
geometry::line_surface_intersecter::line_surface_intersecter | ( | const line_surface_intersecter & | xother | ) |
Copy constructor.
Not Implemented.
Definition at line 73 of file line_surface_intersecter.cc.
References ~line_surface_intersecter().
|
virtual |
Destructor.
Definition at line 93 of file line_surface_intersecter.cc.
References coords().
Referenced by line_surface_intersecter().
|
protected |
Default constructor; disabled.
Not Implemented.
Definition at line 236 of file line_surface_intersecter.cc.
References intersect().
Referenced by intersect(), and line_surface_intersecter().
|
virtual |
Virtual constructor, makes a new instance of the same type as this.
Reimplemented from sheaf::any.
Definition at line 394 of file line_surface_intersecter.cc.
References operator=().
Referenced by is_ancestor_of().
const fiber_bundle::sec_e3 & geometry::line_surface_intersecter::coords | ( | ) | const |
The section space containing the surfaces.
Definition at line 111 of file line_surface_intersecter.cc.
References intersect().
Referenced by ~line_surface_intersecter().
void geometry::line_surface_intersecter::intersect | ( | const e3_lite & | xp0, |
const e3_lite & | xp1, | ||
intersection_set_type & | xresult | ||
) | const |
Computes the intersections of the line passing through points xp0 and xp1 with the surfaces defined by coords().
Definition at line 118 of file line_surface_intersecter.cc.
References line_surface_intersecter(), geometry::d_bounding_box< DC, DB >::put_lb(), and geometry::d_bounding_box< DC, DB >::put_ub().
Referenced by coords(), and line_surface_intersecter().
|
protected |
Computes the intersection xr of the line passing through points xp0 and xp1 with the surface evaluator contained in xbox.
Definition at line 257 of file line_surface_intersecter.cc.
References fiber_bundle::e3_algebra::cross(), geometry::d_bounding_box< DC, DB >::dofs_index(), fiber_bundle::ed_algebra::dot(), is_ancestor_of(), and fiber_bundle::same_sign().
|
virtual |
Class invariant.
Reimplemented from sheaf::any.
Definition at line 437 of file line_surface_intersecter.cc.
References geometry::operator<<().
Referenced by operator=().
|
virtual |
Conformance test; true if other conforms to this.
Reimplemented from sheaf::any.
Definition at line 374 of file line_surface_intersecter.cc.
References clone().
Referenced by intersect().
geometry::line_surface_intersecter & geometry::line_surface_intersecter::operator= | ( | const line_surface_intersecter & | xother | ) |
Assignment operator.
Not Implemented.
Definition at line 416 of file line_surface_intersecter.cc.
References invariant().
Referenced by clone().
|
friend |
Insert line_surface_intersecter xp in ostream xos.
|
protected |
The coordinate section for lines.
Definition at line 152 of file line_surface_intersecter.h.
Referenced by geometry::operator<<().
|
protected |
The id space for surface evaluators.
Definition at line 167 of file line_surface_intersecter.h.
|
protected |
The evaluator for surface sections; temporarily assumes triangle.
Definition at line 174 of file line_surface_intersecter.h.
|
protected |
The base space.
Definition at line 157 of file line_surface_intersecter.h.
Referenced by geometry::operator<<().
|
protected |
The intersection search structure.
Definition at line 189 of file line_surface_intersecter.h.
Referenced by geometry::operator<<().
|
protected |
The surface id space.
Definition at line 162 of file line_surface_intersecter.h.