21 #ifndef LINE_SURFACE_INTERSECTER_H 22 #define LINE_SURFACE_INTERSECTER_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/any.h" 32 #ifndef CHART_POINT_1D_H 33 #include "SheafSystem/chart_point_1d.h" 36 #ifndef D_ARRAY_POINT_LOCATOR_H 37 #include "SheafSystem/d_array_point_locator.h" 41 #include "SheafSystem/e3.h" 45 #include "SheafSystem/geometry.h" 49 #include "SheafSystem/linear_2d.h" 52 #ifndef STD_IOSTREAM_H 53 #include "SheafSystem/std_iostream.h" 57 #include "SheafSystem/std_map.h" 68 class base_space_poset;
111 const sec_e3& coords()
const;
120 return (x2 - x1) > (std::abs(x1) + std::abs(x2))*1.0e-6;
140 void intersect(
const e3_lite& xp0,
const e3_lite& xp1, intersection_set_type& xresult)
const;
213 virtual bool is_ancestor_of(
const any *other)
const;
229 virtual bool invariant()
const;
248 #endif // ifndef LINE_SURFACE_INTERSECTER_H index_space_handle * _surface_id_space
The surface id space.
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.
Euclidean vector space of dimension 3 (volatile version).
search_structure_type::box_set_type box_set_type
The type of search structure box set.
base_space_poset * _host
The base space.
An abstract handle to a space of alternate integer identifiers (aliases) for a subset of a hub set of...
d_bounding_box< 3, 2 > box_type
The type of search structure box.
sec_e3 * _coords
The coordinate section for lines.
Abstract base class with useful features for all objects.
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
A line-surface intersection query.
index_space_handle * _eval_id_space
The id space for surface evaluators.
A bounding box that can be strung together into a list.
d_array_point_locator< 3, 2 > search_structure_type
The type of collision search structure.
linear_2d _evaluator
The evaluator for surface sections; temporarily assumes triangle.
A section of a fiber bundle with a 3-dimensional Euclidean vector space fiber.
A section evaluator using linear interpolation over a triangular 2D domain.
SHEAF_DLL_SPEC std::ostream & operator<<(std::ostream &os, const dof_descriptor_array &p)
Insert dof_descriptor_array& p into ostream& os.
Namespace for the sheaves component of the sheaf system.
search_structure_type * _locator
The intersection search structure.
std::set< const d_bounding_box< DC, DB > * > box_set_type
The type of box set.
Namespace for the fiber_bundles component of the sheaf system.
Namespace for geometry component of sheaf system.
vd_value_type sec_vd_value_type
The type of component in the value of a section at a point.
A point location query in domains with global coordinate dimension DC and local coordinate dimension ...
Compare functor makes sure surface values are really different.