GenGeo  1.1
MeshVolWithJointSet Class Reference

#include <MeshVolWithJointSet.h>

Inheritance diagram for MeshVolWithJointSet:
Collaboration diagram for MeshVolWithJointSet:

Public Member Functions

 MeshVolWithJointSet ()
 MeshVolWithJointSet (const TriPatchSet &)
virtual ~MeshVolWithJointSet ()
virtual const map< double,
const AGeometricObject * > 
getClosestObjects (const Vector3 &, int) const
virtual bool isIn (const Vector3 &) const
virtual bool isIn (const Sphere &)
void addJoints (const TriPatchSet &)
- Public Member Functions inherited from MeshVolume
 MeshVolume ()
 MeshVolume (const TriPatchSet &)
virtual ~MeshVolume ()
virtual pair< Vector3, Vector3getBoundingBox ()
virtual Vector3 getAPoint (int) const
virtual bool isFullyOutside (const Sphere &)
- Public Member Functions inherited from AVolume3D
virtual ~AVolume3D ()
- Public Member Functions inherited from AVolume
virtual ~AVolume ()
virtual int getNumberSubVolumes () const

Protected Attributes

vector< Triangle3Dm_joints
- Protected Attributes inherited from MeshVolume
TriPatchSet m_mesh
Vector3 m_MinPoint
Vector3 m_MaxPoint
Vector3 m_DistPoint

Additional Inherited Members

- Protected Member Functions inherited from MeshVolume
double m_random (double, double) const

Detailed Description

A class for the generation of random particles inside a volume bounded by a triangle mesh, with the option of including joint sets. The correctness of the supplied mesh, i.e. that it actually defines a closed surface, is not checked in the class. Instead the caller is responsible to supply a correct mesh. No convexity or other topological requirements apply to the volume. Facet orientations is not relevant. Works also if the mesh encloses multiple volumes.

Constructor & Destructor Documentation

MeshVolWithJointSet::MeshVolWithJointSet ( )

Constructor

MeshVolWithJointSet::MeshVolWithJointSet ( const TriPatchSet tp)

Constructor

Parameters
tpthe triangle set

References TriPatchSet::getBoundingBox(), MeshVolume::m_DistPoint, MeshVolume::m_MaxPoint, MeshVolume::m_mesh, and MeshVolume::m_MinPoint.

Here is the call graph for this function:

virtual MeshVolWithJointSet::~MeshVolWithJointSet ( )
inlinevirtual

Member Function Documentation

void MeshVolWithJointSet::addJoints ( const TriPatchSet t)

References m_joints, TriPatchSet::triangles_begin(), and TriPatchSet::triangles_end().

Referenced by exportMeshVolWithJointSet().

Here is the call graph for this function:

const map< double, const AGeometricObject * > MeshVolWithJointSet::getClosestObjects ( const Vector3 P,
int  nmax 
) const
virtual

returns a map of the closest mesh facets and their distances to a given point

Parameters
Pthe point
nmaxthe maximum number of objects to be returned

Reimplemented from MeshVolume.

References m_joints, MeshVolume::m_mesh, TriPatchSet::triangles_begin(), and TriPatchSet::triangles_end().

Here is the call graph for this function:

bool MeshVolWithJointSet::isIn ( const Vector3 P) const
virtual

Check if a point is inside the volume. Works by checking if a line between the point and a point outside crosses an odd number of mesh facets.

Parameters
Pthe point

Reimplemented from MeshVolume.

References MeshVolume::m_DistPoint, MeshVolume::m_mesh, TriPatchSet::triangles_begin(), and TriPatchSet::triangles_end().

Referenced by isIn().

Here is the call graph for this function:

bool MeshVolWithJointSet::isIn ( const Sphere S)
virtual

Check if a sphere is fully inside the volume. Works by testing if center of the sphere is inside and sphere doesn't intersect a mesh facet.

Parameters
Sthe sphere

Reimplemented from MeshVolume.

References Sphere::Center(), isIn(), m_joints, MeshVolume::m_mesh, Sphere::Radius(), TriPatchSet::triangles_begin(), and TriPatchSet::triangles_end().

Here is the call graph for this function:

Member Data Documentation

vector<Triangle3D> MeshVolWithJointSet::m_joints
protected

Referenced by addJoints(), getClosestObjects(), and isIn().


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