MeshCore::MeshFacetGrid Class Reference

Special grid class that stores facet indices of the mesh object in its grids. More...

#include <Grid.h>

Public Member Functions

Construction
 MeshFacetGrid (const MeshKernel &rclM)
 Construction. More...
 
 MeshFacetGrid ()
 Construction. More...
 
 MeshFacetGrid (const MeshKernel &rclM, unsigned long ulX, unsigned long ulY, unsigned long ulZ)
 Construction. More...
 
 MeshFacetGrid (const MeshKernel &rclM, int iCtGridPerAxis)
 Construction. More...
 
 MeshFacetGrid (const MeshKernel &rclM, float fGridLen)
 Construction. More...
 
virtual ~MeshFacetGrid ()
 Destruction. More...
 
- Public Member Functions inherited from MeshCore::MeshGrid
virtual unsigned long Inside (const Base::BoundBox3f &rclBB, std::vector< ElementIndex > &raulElements, bool bDelDoubles=true) const
 Searches for elements lying in the intersection area of the grid and the bounding box. More...
 
virtual unsigned long Inside (const Base::BoundBox3f &rclBB, std::set< ElementIndex > &raulElementss) const
 Searches for elements lying in the intersection area of the grid and the bounding box. More...
 
virtual unsigned long Inside (const Base::BoundBox3f &rclBB, std::vector< ElementIndex > &raulElements, const Base::Vector3f &rclOrg, float fMaxDist, bool bDelDoubles=true) const
 Searches for elements lying in the intersection area of the grid and the bounding box. More...
 
void SearchNearestFromPoint (const Base::Vector3f &rclPt, std::set< ElementIndex > &rclInd) const
 Searches for the nearest grids that contain elements from a point, the result are grid indices. More...
 
unsigned long GetElements (unsigned long ulX, unsigned long ulY, unsigned long ulZ, std::set< ElementIndex > &raclInd) const
 Returns the indices of the elements in the given grid. More...
 
unsigned long GetElements (const Base::Vector3f &rclPoint, std::vector< ElementIndex > &aulFacets) const
 
virtual void GetGridLengths (float &rfLenX, float &rfLenY, float &rfLenZ) const
 Returns the lengths of the grid elements in x,y and z direction. More...
 
virtual void GetCtGrids (unsigned long &rulX, unsigned long &rulY, unsigned long &rulZ) const
 Returns the number of grid elements in x,y and z direction. More...
 
Base::BoundBox3f GetBoundBox (unsigned long ulX, unsigned long ulY, unsigned long ulZ) const
 Returns the bounding box of a given grid element. More...
 
Base::BoundBox3f GetBoundBox () const
 Returns the bounding box of the whole. More...
 
Base::BoundBox3f GetMeshBoundBox () const
 Returns an extended bounding box of the mesh object. More...
 
unsigned long GetIndexToPosition (unsigned long ulX, unsigned long ulY, unsigned long ulZ) const
 Returns an index for the given grid position. More...
 
bool GetPositionToIndex (unsigned long id, unsigned long &ulX, unsigned long &ulY, unsigned long &ulZ) const
 Returns the grid position to the given index. More...
 
unsigned long GetCtElements (unsigned long ulX, unsigned long ulY, unsigned long ulZ) const
 Returns the number of elements in a given grid. More...
 
bool CheckPosition (const Base::Vector3f &rclPoint, unsigned long &rulX, unsigned long &rulY, unsigned long &rulZ) const
 Checks whether the point is inside the grid. More...
 
virtual void Position (const Base::Vector3f &rclPoint, unsigned long &rulX, unsigned long &rulY, unsigned long &rulZ) const
 Returns the indices of the grid this point lies in. More...
 
bool CheckPos (unsigned long ulX, unsigned long ulY, unsigned long ulZ) const
 Checks if this is a valid grid position. More...
 
void GetHull (unsigned long ulX, unsigned long ulY, unsigned long ulZ, unsigned long ulDistance, std::set< ElementIndex > &raclInd) const
 Get the indices of all elements lying in the grids around a given grid with distance ulDistance. More...
 
virtual ~MeshGrid ()
 Destruction. More...
 
virtual void Attach (const MeshKernel &rclM)
 Attaches the mesh kernel to this grid, an already attached mesh gets detached. More...
 
virtual void Rebuild (unsigned long ulPerGrid=MESH_CT_GRID, unsigned long ulMaxGrid=MESH_MAX_GRIDS)
 Rebuilds the grid structure. More...
 
virtual void Rebuild (int iCtGridPerAxis=MESH_CT_GRID_PER_AXIS)
 Rebuilds the grid structure. More...
 
virtual void Rebuild (unsigned long ulX, unsigned long ulY, unsigned long ulZ)
 Rebuilds the grid structure. More...
 

Search

unsigned long SearchNearestFromPoint (const Base::Vector3f &rclPt) const
 Searches for the nearest facet from a point. More...
 
unsigned long SearchNearestFromPoint (const Base::Vector3f &rclPt, float fMaxSearchArea) const
 Searches for the nearest facet from a point with the maximum search area. More...
 
void SearchNearestFacetInGrid (unsigned long ulX, unsigned long ulY, unsigned long ulZ, const Base::Vector3f &rclPt, float &rfMinDist, ElementIndex &rulFacetInd) const
 Searches for the nearest facet in a given grid element and returns the facet index and the actual distance. More...
 
void SearchNearestFacetInHull (unsigned long ulX, unsigned long ulY, unsigned long ulZ, unsigned long ulDistance, const Base::Vector3f &rclPt, ElementIndex &rulFacetInd, float &rfMinDist) const
 Does basically the same as the method above unless that grid neighbours up to the order of ulDistance are introduced into the search. More...
 
virtual void Validate (const MeshKernel &rclM)
 Validates the grid structure and rebuilds it if needed. More...
 
virtual void Validate ()
 Validates the grid structure and rebuilds it if needed. More...
 
virtual bool Verify () const
 Verifies the grid structure and returns false if inconsistencies are found. More...
 
void Pos (const Base::Vector3f &rclPoint, unsigned long &rulX, unsigned long &rulY, unsigned long &rulZ) const
 Returns the grid numbers to the given point rclPoint. More...
 
void PosWithCheck (const Base::Vector3f &rclPoint, unsigned long &rulX, unsigned long &rulY, unsigned long &rulZ) const
 Returns the grid numbers to the given point rclPoint. More...
 
void AddFacet (const MeshGeomFacet &rclFacet, ElementIndex ulFacetIndex, float fEpsilon=0.0f)
 Adds a new facet element to the grid structure. More...
 
unsigned long HasElements () const
 Returns the number of stored elements. More...
 
virtual void RebuildGrid ()
 Rebuilds the grid structure. More...
 

Additional Inherited Members

- Protected Member Functions inherited from MeshCore::MeshGrid
virtual void InitGrid ()
 Initializes the size of the internal structure. More...
 
virtual void Clear ()
 Deletes the grid structure. More...
 
virtual void CalculateGridLength (unsigned long ulCtGrid, unsigned long ulMaxGrids)
 Calculates the grid length dependent on maximum number of grids. More...
 
virtual void CalculateGridLength (int iCtGridPerAxis)
 Calculates the grid length dependent on the number of grids per axis. More...
 
 MeshGrid (const MeshKernel &rclM)
 Construction. More...
 
 MeshGrid ()
 Construction. More...
 

Detailed Description

Special grid class that stores facet indices of the mesh object in its grids.

Constructor & Destructor Documentation

◆ MeshFacetGrid() [1/5]

MeshFacetGrid::MeshFacetGrid ( const MeshKernel rclM)

Construction.

References RebuildGrid().

◆ MeshFacetGrid() [2/5]

MeshCore::MeshFacetGrid::MeshFacetGrid ( )

Construction.

◆ MeshFacetGrid() [3/5]

MeshFacetGrid::MeshFacetGrid ( const MeshKernel rclM,
unsigned long  ulX,
unsigned long  ulY,
unsigned long  ulZ 
)

Construction.

References MeshCore::MeshGrid::Rebuild().

◆ MeshFacetGrid() [4/5]

MeshFacetGrid::MeshFacetGrid ( const MeshKernel rclM,
int  iCtGridPerAxis 
)

Construction.

References MeshCore::MeshGrid::Rebuild().

◆ MeshFacetGrid() [5/5]

MeshFacetGrid::MeshFacetGrid ( const MeshKernel rclM,
float  fGridLen 
)

◆ ~MeshFacetGrid()

virtual MeshCore::MeshFacetGrid::~MeshFacetGrid ( )
virtual

Destruction.

Member Function Documentation

◆ AddFacet()

void MeshCore::MeshFacetGrid::AddFacet ( const MeshGeomFacet rclFacet,
ElementIndex  ulFacetIndex,
float  fEpsilon = 0.0f 
)
protected

Adds a new facet element to the grid structure.

rclFacet is the geometric facet and ulFacetIndex the corresponding index in the mesh kernel. The facet is added to each grid element that intersects the facet.

References Base::BoundBox3< _Precision >::Add(), MeshCore::MeshGrid::GetBoundBox(), MeshCore::MeshGeomFacet::IntersectBoundingBox(), Base::BoundBox3< _Precision >::MaxX, Base::BoundBox3< _Precision >::MaxY, Base::BoundBox3< _Precision >::MaxZ, Base::BoundBox3< _Precision >::MinX, Base::BoundBox3< _Precision >::MinY, Base::BoundBox3< _Precision >::MinZ, and Pos().

Referenced by RebuildGrid().

◆ HasElements()

unsigned long MeshCore::MeshFacetGrid::HasElements ( void  ) const
protectedvirtual

Returns the number of stored elements.

Implements MeshCore::MeshGrid.

◆ Pos()

void MeshCore::MeshFacetGrid::Pos ( const Base::Vector3f rclPoint,
unsigned long &  rulX,
unsigned long &  rulY,
unsigned long &  rulZ 
) const
protected

Returns the grid numbers to the given point rclPoint.

References Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.

Referenced by AddFacet().

◆ PosWithCheck()

void MeshCore::MeshFacetGrid::PosWithCheck ( const Base::Vector3f rclPoint,
unsigned long &  rulX,
unsigned long &  rulY,
unsigned long &  rulZ 
) const
protected

Returns the grid numbers to the given point rclPoint.

References Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.

◆ RebuildGrid()

void MeshFacetGrid::RebuildGrid ( void  )
protectedvirtual

◆ SearchNearestFacetInGrid()

void MeshFacetGrid::SearchNearestFacetInGrid ( unsigned long  ulX,
unsigned long  ulY,
unsigned long  ulZ,
const Base::Vector3f rclPt,
float &  rfMinDist,
ElementIndex rulFacetInd 
) const

Searches for the nearest facet in a given grid element and returns the facet index and the actual distance.

Referenced by SearchNearestFacetInHull(), and SearchNearestFromPoint().

◆ SearchNearestFacetInHull()

void MeshFacetGrid::SearchNearestFacetInHull ( unsigned long  ulX,
unsigned long  ulY,
unsigned long  ulZ,
unsigned long  ulDistance,
const Base::Vector3f rclPt,
ElementIndex rulFacetInd,
float &  rfMinDist 
) const

Does basically the same as the method above unless that grid neighbours up to the order of ulDistance are introduced into the search.

References SearchNearestFacetInGrid().

Referenced by SearchNearestFromPoint().

◆ SearchNearestFromPoint() [1/2]

◆ SearchNearestFromPoint() [2/2]

unsigned long MeshFacetGrid::SearchNearestFromPoint ( const Base::Vector3f rclPt,
float  fMaxSearchArea 
) const

◆ Validate() [1/2]

void MeshFacetGrid::Validate ( void  )
virtual

Validates the grid structure and rebuilds it if needed.

References RebuildGrid().

◆ Validate() [2/2]

void MeshFacetGrid::Validate ( const MeshKernel rclM)
virtual

Validates the grid structure and rebuilds it if needed.

Implements MeshCore::MeshGrid.

References MeshCore::MeshGrid::Attach(), MeshCore::MeshKernel::CountFacets(), and RebuildGrid().

◆ Verify()


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