Mesh Oriented datABase  (version 5.5.0)
An array-based unstructured mesh library
moab::OrientedBoxTreeTool::IntRegCtxt Class Reference

Default/Base class to provide a context for registering intersections. More...

#include <OrientedBoxTreeTool.hpp>

+ Inheritance diagram for moab::OrientedBoxTreeTool::IntRegCtxt:
+ Collaboration diagram for moab::OrientedBoxTreeTool::IntRegCtxt:

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< EntityHandleget_facets ()
 
std::vector< EntityHandleget_sets ()
 

Protected Attributes

std::vector< double > intersections
 
std::vector< EntityHandlesets
 
std::vector< EntityHandlefacets
 

Detailed Description

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.

Member Function Documentation

◆ get_facets()

std::vector< EntityHandle > moab::OrientedBoxTreeTool::IntRegCtxt::get_facets ( )
inline

Definition at line 257 of file OrientedBoxTreeTool.hpp.

258  {
259  return facets;
260  };

References facets.

Referenced by moab::OrientedBoxTreeTool::ray_intersect_sets().

◆ get_intersections()

std::vector< double > moab::OrientedBoxTreeTool::IntRegCtxt::get_intersections ( )
inline

Definition at line 253 of file OrientedBoxTreeTool.hpp.

254  {
255  return intersections;
256  };

References intersections.

Referenced by moab::OrientedBoxTreeTool::ray_intersect_sets().

◆ get_sets()

std::vector< EntityHandle > moab::OrientedBoxTreeTool::IntRegCtxt::get_sets ( )
inline

Definition at line 261 of file OrientedBoxTreeTool.hpp.

262  {
263  return sets;
264  };

References sets.

Referenced by moab::OrientedBoxTreeTool::ray_intersect_sets().

◆ getDesiredOrient()

virtual const int* moab::OrientedBoxTreeTool::IntRegCtxt::getDesiredOrient ( )
inlinevirtual

Reimplemented in moab::GQT_IntRegCtxt.

Definition at line 248 of file OrientedBoxTreeTool.hpp.

249  {
250  return NULL;
251  };

Referenced by moab::RayIntersectSets::RayIntersectSets().

◆ register_intersection()

virtual ErrorCode moab::OrientedBoxTreeTool::IntRegCtxt::register_intersection ( EntityHandle  set,
EntityHandle  tri,
double  dist,
IntersectSearchWindow ,
GeomUtil::intersection_type   
)
inlinevirtual

Reimplemented in moab::GQT_IntRegCtxt, and moab::FindVolumeIntRegCtxt.

Definition at line 227 of file OrientedBoxTreeTool.hpp.

232  {
233  intersections.push_back( dist );
234  sets.push_back( set );
235  facets.push_back( tri );
236 
237  return MB_SUCCESS;
238  };

References facets, intersections, MB_SUCCESS, and sets.

◆ update_orient()

virtual ErrorCode moab::OrientedBoxTreeTool::IntRegCtxt::update_orient ( EntityHandle  ,
int *   
)
inlinevirtual

Reimplemented in moab::GQT_IntRegCtxt.

Definition at line 242 of file OrientedBoxTreeTool.hpp.

243  {
244  return MB_SUCCESS;
245  };

References MB_SUCCESS.

Member Data Documentation

◆ facets

◆ intersections

◆ sets


The documentation for this class was generated from the following file: