#include <STLExplorer.H>
Public Member Functions | |
STLExplorer (RefCountedPtr< STLMesh > a_stlmesh) | |
Constructor - just need a mesh. | |
~STLExplorer () | |
Destructor. | |
void | Explore (RefCountedPtr< STLBox > a_sb) |
builds cellToTriangles - connectivity between box and stlmesh | |
void | Explore (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const RealVect &a_dx) |
void | GetCellEdgeIntersection (const CellEdge &a_celledge, RealVect &a_intersectPt, bool &a_isNode0Inside, bool &a_isNode1Inside) |
void | GetPointInOut (const IntVect &a_point, bool &a_inout) |
return whether or not a point is inside or outside the domain | |
void | GetVertMap (Vector< IntVect > **a_vertmap) |
void | GetTriMap (Vector< Vector< IntVect > > **a_trimap) |
void | GetSTLBox (RefCountedPtr< STLBox > &a_sb) |
Protected Member Functions | |
void | DoExplore () |
void | FindCellsOnVertices () |
void | FindCellsOnEdges () |
void | FindCellsInTriangles () |
void | RemoveCellsOutsideDomain () |
void | FindCellEdgesOnBondary () |
void | BuildKDTree () |
bool | WhichNodeIsInside (const CellEdge &celledge, const int &triangle) |
void | FindEdgeInOut (const CellEdge &celledge, bool &isNode0Inside, bool &isNode1Inside) |
void | FindEdgeInOutWithKDTree (const CellEdge &celledge, bool &isNode0Inside, bool &isNode1Inside) |
RealVect | FindPlaneLineIntersection (const CellEdge &celledge, const int &triangle) |
bool | IsPointInTriangle (const RealVect &point, const int &triangle) |
bool | IsPointOnCellEdge (const RealVect &point, const CellEdge &celledge) |
void | FillInCellLine (vector< IntVect > &cells, int &i, const int &itri, const int &idir0, const int &idir1) |
void | RecursiveKDTreeInsert (vector< pair< RealVect, pair< IntVect, bool > * > > &allNodes, const int &nstart, const int &nend, const int &depth) |
Protected Attributes | |
RefCountedPtr< STLMesh > | m_msh |
RefCountedPtr< STLBox > | m_sb |
KDTree * | m_ptree |
bool | m_freestlbox |
bool | m_printdebug |
Vector< IntVect > | m_vertmap |
Vector< Vector< IntVect > > | m_trimap |
Private Member Functions | |
STLExplorer () | |
void | operator= (const STLExplorer &a_inputReader) |
STLExplorer::STLExplorer | ( | RefCountedPtr< STLMesh > | a_stlmesh | ) |
Constructor - just need a mesh.
STLExplorer::~STLExplorer | ( | ) |
Destructor.
STLExplorer::STLExplorer | ( | ) | [inline, private] |
References MayDay::Abort().
void STLExplorer::Explore | ( | RefCountedPtr< STLBox > | a_sb | ) |
builds cellToTriangles - connectivity between box and stlmesh
void STLExplorer::Explore | ( | const Box & | a_region, | |
const ProblemDomain & | a_domain, | |||
const RealVect & | a_origin, | |||
const RealVect & | a_dx | |||
) |
void STLExplorer::GetCellEdgeIntersection | ( | const CellEdge & | a_celledge, | |
RealVect & | a_intersectPt, | |||
bool & | a_isNode0Inside, | |||
bool & | a_isNode1Inside | |||
) |
return the point of intersection between a cellEdge and the mesh and whether the two nodes are inside or outside a_intersectPt is bogus if both nodes are inside or both outside
void STLExplorer::GetPointInOut | ( | const IntVect & | a_point, | |
bool & | a_inout | |||
) |
return whether or not a point is inside or outside the domain
void STLExplorer::GetSTLBox | ( | RefCountedPtr< STLBox > & | a_sb | ) |
void STLExplorer::DoExplore | ( | ) | [protected] |
void STLExplorer::FindCellsOnVertices | ( | ) | [protected] |
void STLExplorer::FindCellsOnEdges | ( | ) | [protected] |
void STLExplorer::FindCellsInTriangles | ( | ) | [protected] |
void STLExplorer::RemoveCellsOutsideDomain | ( | ) | [protected] |
void STLExplorer::FindCellEdgesOnBondary | ( | ) | [protected] |
void STLExplorer::BuildKDTree | ( | ) | [protected] |
bool STLExplorer::WhichNodeIsInside | ( | const CellEdge & | celledge, | |
const int & | triangle | |||
) | [protected] |
void STLExplorer::FindEdgeInOut | ( | const CellEdge & | celledge, | |
bool & | isNode0Inside, | |||
bool & | isNode1Inside | |||
) | [protected] |
void STLExplorer::FindEdgeInOutWithKDTree | ( | const CellEdge & | celledge, | |
bool & | isNode0Inside, | |||
bool & | isNode1Inside | |||
) | [protected] |
RealVect STLExplorer::FindPlaneLineIntersection | ( | const CellEdge & | celledge, | |
const int & | triangle | |||
) | [protected] |
bool STLExplorer::IsPointInTriangle | ( | const RealVect & | point, | |
const int & | triangle | |||
) | [protected] |
bool STLExplorer::IsPointOnCellEdge | ( | const RealVect & | point, | |
const CellEdge & | celledge | |||
) | [protected] |
void STLExplorer::FillInCellLine | ( | vector< IntVect > & | cells, | |
int & | i, | |||
const int & | itri, | |||
const int & | idir0, | |||
const int & | idir1 | |||
) | [protected] |
void STLExplorer::RecursiveKDTreeInsert | ( | vector< pair< RealVect, pair< IntVect, bool > * > > & | allNodes, | |
const int & | nstart, | |||
const int & | nend, | |||
const int & | depth | |||
) | [protected] |
void STLExplorer::operator= | ( | const STLExplorer & | a_inputReader | ) | [inline, private] |
References MayDay::Abort().
RefCountedPtr<STLMesh> STLExplorer::m_msh [protected] |
RefCountedPtr<STLBox> STLExplorer::m_sb [protected] |
KDTree* STLExplorer::m_ptree [protected] |
bool STLExplorer::m_freestlbox [protected] |
bool STLExplorer::m_printdebug [protected] |
Vector<IntVect> STLExplorer::m_vertmap [protected] |
Vector<Vector<IntVect> > STLExplorer::m_trimap [protected] |