Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
Default/Base class to provide a context for registering intersections. More...
#include <OrientedBoxTreeTool.hpp>
Public Member Functions | |
virtual ErrorCode | register_intersection (EntityHandle set, EntityHandle tri, double dist, IntersectSearchWindow &, GeomUtil::intersection_type) |
virtual ErrorCode | update_orient (EntityHandle, int *) |
virtual const int * | getDesiredOrient () |
std::vector< double > | get_intersections () |
std::vector< EntityHandle > | get_facets () |
std::vector< EntityHandle > | get_sets () |
Protected Attributes | |
std::vector< double > | intersections |
std::vector< EntityHandle > | sets |
std::vector< EntityHandle > | facets |
Default/Base class to provide a context for registering intersections.
To enable different logic for how individual intersections are accumulated, depending on the usage of ray_intersect_sets().
The API to this context has 3 parts: * getDesiredOrient() during initialization of ray_intersect_sets to determine whether this context filters by context * update_orient() updates the context to know the orientation of the current surface wrt to its volume during a traversal visit() * register_intersection() offers an intersection to the context so that it can decide whether to accumulate it or ignore it
This implementation also provides a default NOP version that accumulates all intersections without logic.
A reference implementation can be found in GeomQueryTool::GQT_IntRegCtxt.
Definition at line 216 of file OrientedBoxTreeTool.hpp.
std::vector< EntityHandle > moab::OrientedBoxTreeTool::IntRegCtxt::get_facets | ( | ) | [inline] |
Definition at line 257 of file OrientedBoxTreeTool.hpp.
References facets.
Referenced by moab::OrientedBoxTreeTool::ray_intersect_sets().
{ return facets; };
std::vector< double > moab::OrientedBoxTreeTool::IntRegCtxt::get_intersections | ( | ) | [inline] |
Definition at line 253 of file OrientedBoxTreeTool.hpp.
References intersections.
Referenced by moab::OrientedBoxTreeTool::ray_intersect_sets().
{ return intersections; };
std::vector< EntityHandle > moab::OrientedBoxTreeTool::IntRegCtxt::get_sets | ( | ) | [inline] |
Definition at line 261 of file OrientedBoxTreeTool.hpp.
References sets.
Referenced by moab::OrientedBoxTreeTool::ray_intersect_sets().
{ return sets; };
virtual const int* moab::OrientedBoxTreeTool::IntRegCtxt::getDesiredOrient | ( | ) | [inline, virtual] |
Reimplemented in moab::GQT_IntRegCtxt.
Definition at line 248 of file OrientedBoxTreeTool.hpp.
{
return NULL;
};
virtual ErrorCode moab::OrientedBoxTreeTool::IntRegCtxt::register_intersection | ( | EntityHandle | set, |
EntityHandle | tri, | ||
double | dist, | ||
IntersectSearchWindow & | , | ||
GeomUtil::intersection_type | |||
) | [inline, virtual] |
Reimplemented in moab::GQT_IntRegCtxt, and moab::FindVolumeIntRegCtxt.
Definition at line 227 of file OrientedBoxTreeTool.hpp.
References facets, intersections, MB_SUCCESS, and sets.
{ intersections.push_back( dist ); sets.push_back( set ); facets.push_back( tri ); return MB_SUCCESS; };
virtual ErrorCode moab::OrientedBoxTreeTool::IntRegCtxt::update_orient | ( | EntityHandle | , |
int * | |||
) | [inline, virtual] |
Reimplemented in moab::GQT_IntRegCtxt.
Definition at line 242 of file OrientedBoxTreeTool.hpp.
References MB_SUCCESS.
{ return MB_SUCCESS; };
std::vector< EntityHandle > moab::OrientedBoxTreeTool::IntRegCtxt::facets [protected] |
Definition at line 222 of file OrientedBoxTreeTool.hpp.
Referenced by moab::GQT_IntRegCtxt::add_mode1_intersection(), moab::GQT_IntRegCtxt::append_intersection(), moab::FindVolumeIntRegCtxt::FindVolumeIntRegCtxt(), get_facets(), moab::FindVolumeIntRegCtxt::register_intersection(), register_intersection(), and moab::GQT_IntRegCtxt::set_intersection().
std::vector< double > moab::OrientedBoxTreeTool::IntRegCtxt::intersections [protected] |
Definition at line 220 of file OrientedBoxTreeTool.hpp.
Referenced by moab::GQT_IntRegCtxt::add_intersection(), moab::GQT_IntRegCtxt::add_mode1_intersection(), moab::GQT_IntRegCtxt::append_intersection(), moab::FindVolumeIntRegCtxt::FindVolumeIntRegCtxt(), get_intersections(), moab::FindVolumeIntRegCtxt::register_intersection(), register_intersection(), and moab::GQT_IntRegCtxt::set_intersection().
std::vector< EntityHandle > moab::OrientedBoxTreeTool::IntRegCtxt::sets [protected] |
Definition at line 221 of file OrientedBoxTreeTool.hpp.
Referenced by moab::GQT_IntRegCtxt::add_mode1_intersection(), moab::GQT_IntRegCtxt::append_intersection(), moab::FindVolumeIntRegCtxt::FindVolumeIntRegCtxt(), get_sets(), moab::FindVolumeIntRegCtxt::register_intersection(), register_intersection(), and moab::GQT_IntRegCtxt::set_intersection().