a position constraint that modify a 2-simplex mesh topology when an intersection between two pieces of mesh is detected
![]() | EdgeIntersectionType the different types of edge intersection | ||||||||||||||||||||
![]() | TriangleIntersectionType the different types of edge intersection | ||||||||||||||||||||
![]() | FaceType the different types of faces | ||||||||||||||||||||
![]() | IntersectionType the two types of intersection detected | ||||||||||||||||||||
![]() | MissingMesh : public Exception an exception class thrown when the mesh contour is not valid | ||||||||||||||||||||
![]() | EdgeIntersection a class describing the intersection point between and edge and a plane normal to X, Y or Z direction
| ||||||||||||||||||||
![]() | EdgeIntersectionData a class describing the intersection point between and edge and a plane normal to X, Y or Z direction
| ||||||||||||||||||||
![]() | TriangleIntersection a class describing the intersection point between a triangle and a line along X, Y or Z direction
| ||||||||||||||||||||
![]() | FaceEdge a class describing the intersection point between a triangle and a line along X, Y or Z direction
| ||||||||||||||||||||
![]() | Face a class describing all the intersections between triangle and a face (square) in the 3D regular grid
| ||||||||||||||||||||
![]() | SimpleEdgeIntersection a class describing an intersection between two pairs of simplified face edges
| ||||||||||||||||||||
![]() | IntersectionVoxel a class for storing edge intersections
| ||||||||||||||||||||
![]() | IntersectionContour a class that stores the contour corresponding to intersections or auto-intersections
|
![]() | freeDataStructure () free all data structures stored in the object |
![]() | buildDataStructure () creates face data structure on a regular grid |
![]() | findIntersections () find intersections between face edges |
![]() | processIntersections () modifies the 2-simplex mesh given the contour intersections |
![]() | apply () the apply fonction that modifies the mesh topology when an intersection between two pieces of mesh is detected |
![]() | getMesh () const returns the 2-simplex mesh involved in the constraint |
![]() | getGridSize () const returns the grid size used for the topology constraint |
![]() | setGridSize (const double gs) sets the grid size used for the topology constraint |
![]() | constructor | ||
![]() | destructor
|
![]() | mesh pointer of the 2 simplex mesh |
![]() | origin the origin of the regular grid |
![]() | offset the min voxel index in the row, col, z directions |
![]() | gridSize the grid size |
![]() | arraySize the number of rows, columns and planes in the regular grid |
![]() | triangleIntersectionList list of triangle intersections |
![]() | faceMap [3] map of faces where intersection edges and triangles are present |
![]() | simpleEdgeIntersectionMap hash table of intersections between two simple edges belonging to the same face |
![]() | intersectionContourList the list of contour intersections |
![]() | voxelMap hash table of voxel intersections |
![]() | complement (unsigned int i, unsigned int j) return a value (either 0,1 or 2 ) that is different from i and j |
![]() | getNextVertex (TriangleIntersection *currentVertex, unsigned int currentFaceIndex, IntersectionVoxel *v, unsigned int &nextFaceIndex) returns the vertex that inside a given voxel with a given face index and that is connected to a given vertex; it also updates the nextFace index |
a position constraint that modify a 2-simplex mesh topology when an intersection between two pieces of mesh is detected
enum TriangleIntersectionType
enum FaceType
enum IntersectionType
class MissingMesh: public Exception
struct EdgeIntersection
struct EdgeIntersectionData
SM2Edge* edge
std::list <EdgeIntersection *> intersectionList
struct TriangleIntersection
SM2Vertex* v
Vec3
TriangleIntersectionType triangleIntersectionType
class FaceEdge
TriangleIntersection* ti[2]
EdgeIntersection* ei[2]
constructor
FaceEdge(TriangleIntersection *, TriangleIntersection *)
FaceEdge(EdgeIntersection *, EdgeIntersection *)
FaceEdge(TriangleIntersection *, EdgeIntersection *)
FaceEdge(EdgeIntersection *, TriangleIntersection *)
destructor
Vec3
class Face
FaceType faceType
int row
int col
std::list <FaceEdge *> edgeList
std::list
struct SimpleEdgeIntersection
bool processed
std::pair <TriangleIntersection *,TriangleIntersection *> edge[2]
Face* face
bool isVertexInIntersection(TriangleIntersection *i) const
int getEdgeIndex(TriangleIntersection *i) const
struct IntersectionVoxel
Vec3
unsigned int nbIntersections
unsigned int nbValidIntersections
std::multimap
SimpleEdgeIntersection* getIntersectionWithVertex(TriangleIntersection *i, unsigned int &faceIndexVoxel, SimpleEdgeIntersection *inter) const
faceIndexVoxel - if an intersection is found then this variable is set to the face index of the intersection
inter - if not null then avoid then this intersection is not tested for inclusion int getFaceIndex( SimpleEdgeIntersection *inter) const
struct IntersectionContour
IntersectionType intersectionType
std::list <TriangleIntersection *> contour[2]
SM2* mesh
Vec3
Vec3
double gridSize
Vec3
std::list <TriangleIntersection *> triangleIntersectionList
std::map
std::map
std::list <IntersectionContour *> intersectionContourList
std::map
unsigned int complement(unsigned int i, unsigned int j)
TriangleIntersection* getNextVertex(TriangleIntersection *currentVertex, unsigned int currentFaceIndex, IntersectionVoxel *v, unsigned int &nextFaceIndex)
void freeDataStructure()
void buildDataStructure()
void findIntersections()
void processIntersections()
virtual void apply()
SM2* getMesh() const
constructor
destructor
double getGridSize() const
void setGridSize(const double gs)
alphabetic index hierarchy of classes
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de