Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
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

Definition at line 257 of file OrientedBoxTreeTool.hpp.

References facets.

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

        {
            return facets;
        };

Definition at line 253 of file OrientedBoxTreeTool.hpp.

References intersections.

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

        {
            return intersections;
        };

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;
        };

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;
        };

Member Data Documentation

List of all members.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines