Chombo + EB + MF  3.2
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
STLExplorer Class Reference

#include <STLExplorer.H>

Public Member Functions

 STLExplorer (RefCountedPtr< STLMesh > a_stlmesh)
 Constructor - just need a mesh. More...
 
 ~STLExplorer ()
 Destructor. More...
 
void Explore (RefCountedPtr< STLBox > a_sb)
 builds cellToTriangles - connectivity between box and stlmesh More...
 
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 More...
 
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< STLMeshm_msh
 
RefCountedPtr< STLBoxm_sb
 
KDTreem_ptree
 
bool m_freestlbox
 
bool m_printdebug
 
Vector< IntVectm_vertmap
 
Vector< Vector< IntVect > > m_trimap
 

Private Member Functions

 STLExplorer ()
 
void operator= (const STLExplorer &a_inputReader)
 

Constructor & Destructor Documentation

◆ STLExplorer() [1/2]

STLExplorer::STLExplorer ( RefCountedPtr< STLMesh a_stlmesh)

Constructor - just need a mesh.

◆ ~STLExplorer()

STLExplorer::~STLExplorer ( )

Destructor.

◆ STLExplorer() [2/2]

STLExplorer::STLExplorer ( )
inlineprivate

References MayDay::Abort().

Member Function Documentation

◆ Explore() [1/2]

void STLExplorer::Explore ( RefCountedPtr< STLBox a_sb)

builds cellToTriangles - connectivity between box and stlmesh

◆ Explore() [2/2]

void STLExplorer::Explore ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const RealVect a_dx 
)

◆ GetCellEdgeIntersection()

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

◆ GetPointInOut()

void STLExplorer::GetPointInOut ( const IntVect a_point,
bool &  a_inout 
)

return whether or not a point is inside or outside the domain

◆ GetVertMap()

void STLExplorer::GetVertMap ( Vector< IntVect > **  a_vertmap)

◆ GetTriMap()

void STLExplorer::GetTriMap ( Vector< Vector< IntVect > > **  a_trimap)

◆ GetSTLBox()

void STLExplorer::GetSTLBox ( RefCountedPtr< STLBox > &  a_sb)

◆ DoExplore()

void STLExplorer::DoExplore ( )
protected

◆ FindCellsOnVertices()

void STLExplorer::FindCellsOnVertices ( )
protected

◆ FindCellsOnEdges()

void STLExplorer::FindCellsOnEdges ( )
protected

◆ FindCellsInTriangles()

void STLExplorer::FindCellsInTriangles ( )
protected

◆ RemoveCellsOutsideDomain()

void STLExplorer::RemoveCellsOutsideDomain ( )
protected

◆ FindCellEdgesOnBondary()

void STLExplorer::FindCellEdgesOnBondary ( )
protected

◆ BuildKDTree()

void STLExplorer::BuildKDTree ( )
protected

◆ WhichNodeIsInside()

bool STLExplorer::WhichNodeIsInside ( const CellEdge celledge,
const int &  triangle 
)
protected

◆ FindEdgeInOut()

void STLExplorer::FindEdgeInOut ( const CellEdge celledge,
bool &  isNode0Inside,
bool &  isNode1Inside 
)
protected

◆ FindEdgeInOutWithKDTree()

void STLExplorer::FindEdgeInOutWithKDTree ( const CellEdge celledge,
bool &  isNode0Inside,
bool &  isNode1Inside 
)
protected

◆ FindPlaneLineIntersection()

RealVect STLExplorer::FindPlaneLineIntersection ( const CellEdge celledge,
const int &  triangle 
)
protected

◆ IsPointInTriangle()

bool STLExplorer::IsPointInTriangle ( const RealVect point,
const int &  triangle 
)
protected

◆ IsPointOnCellEdge()

bool STLExplorer::IsPointOnCellEdge ( const RealVect point,
const CellEdge celledge 
)
protected

◆ FillInCellLine()

void STLExplorer::FillInCellLine ( vector< IntVect > &  cells,
int &  i,
const int &  itri,
const int &  idir0,
const int &  idir1 
)
protected

◆ RecursiveKDTreeInsert()

void STLExplorer::RecursiveKDTreeInsert ( vector< pair< RealVect, pair< IntVect, bool > *> > &  allNodes,
const int &  nstart,
const int &  nend,
const int &  depth 
)
protected

◆ operator=()

void STLExplorer::operator= ( const STLExplorer a_inputReader)
inlineprivate

References MayDay::Abort().

Member Data Documentation

◆ m_msh

RefCountedPtr<STLMesh> STLExplorer::m_msh
protected

◆ m_sb

RefCountedPtr<STLBox> STLExplorer::m_sb
protected

◆ m_ptree

KDTree* STLExplorer::m_ptree
protected

◆ m_freestlbox

bool STLExplorer::m_freestlbox
protected

◆ m_printdebug

bool STLExplorer::m_printdebug
protected

◆ m_vertmap

Vector<IntVect> STLExplorer::m_vertmap
protected

◆ m_trimap

Vector<Vector<IntVect> > STLExplorer::m_trimap
protected

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