class Tetra3D : public Data3D, public GeneralFormat ifdef GRAPHICS, public PickingObject, public SurfaceSliceable endif Class of a 3D Tetrahedrisation
| | FileNotFound : public Exception unable to open file |
| | NotAManifold : public Exception mesh is not a manifold (triangle shared by more than 2 tetrahedra,...) |
| | triangleList ObjectsList |
| | filename name under which the file is saved |
| | createTetrahedrisation ( unsigned int nbVertices, Vec3 create a tetrahedrisation data structure from a table of vertex position and a table of tetrahedron description |
| | readMainModule (GFInput &input) create a tetrahedrisation from a General Format file |
| | readFile (const TclString name) read tetra from e file |
| | computeCenter () compute the center, radius and bounding box of the triangulation |
| | renumber () set the reference number at vertices,edges, triangles and tetrahedra such that they are continuous |
| | topologyCheck () check if the topological relationships between vertices, edges, triangles and tetrahedra are valid |
| | topologyCheck2 () new check if the topological relationships between vertices, edges, triangles and tetrahedra are valid |
| | newZone (char *zoneName) create a new zone with a given name |
| | newSurfaceZone (char *zoneName) create a new surface zone with a given name |
| | saveAsGHS3D (char *name) save the current tetrahedrisation in the GHS3D format |
| | saveAsTr (char *name) save the current tetrahedrisation in the Tr format |
| | saveAsPrecomputedTr (char *name) save the current tetrahedrisation in the precomputed Tr format |
| | readMainModule3D (GFInput &input) read the main information (vertex, triangle, edge, tetrahedron) of the tetrahedrisation |
| | skipMainModule (GFInput &input) skip the main information (vertex, triangle, edge, tetrahedron) of the tetrahedrisation |
| | writeMainModule (GFOutput &output) write the main information (vertex, triangle, edge, tetrahedron of the tetrahedrisation |
| | readTextureModule (GFInput &input) read the texture information of the tetrahedrisation |
| | skipTextureModule (GFInput &input) skip the texture information of the tetrahedrisation |
| | writeTextureModule (GFOutput &output) write the texture information of the tetrahedrisation |
| | translate (const Vec3 translates the object |
| | rotate (const Rotation3D& rotation) rotates the object |
| | scale (const double scale) scales the object |
| | redraw (Camera3D *) all graphics objects can be drawn |
| | computeClosestDistance (DataTypes::MouseClick& mc) const The routine that allows the camera to select an object by computing the distance of an object from its radial line |
| | selectObject (const Vec2 finds the closest edge, zone, vertex or triangle from click point |
| | unselect (void) unselects any subobject |
| | select (TetraVertex3D *v) select given vertex |
| | select (TetraEdge3D *e) select given edge |
| | select (TetraTriangle3D *t) select given face |
| | select (TetraTetrahedron3D *t) select given tetrahedron |
| | select (TetraZone3D *z) select given zone |
| | select (TetraSurfaceZone3D *z) select given surface zone |
| | selectVertex (int ref) select given vertex |
| | selectEdge (int ref) select given edge |
| | selectTriangle (int ref) select given triangle |
| | selectTetrahedron (int ref) select given tetrahedron |
| | selectZone (int ref) select given zone |
| | selectSurfaceZone (int ref) select given surface zone |
| | unselectVertex () unselect the current selected vertex |
| | unselectEdge () unselect the current selected edge |
| | unselectTriangle () unselect the current selected triangle |
| | getSelectedVertex (void) const returns mesh selected vertex |
| | getSelectedEdge (void) const returns mesh selected edge |
| | getSelectedTriangle (void) const returns mesh selected triangle |
| | getSelectedTetrahedron (void) const returns mesh selected tetrahedron |
| | getSelectedZone (void) const returns mesh selected zone |
| | getSelectedSurfaceZone (void) const returns mesh selected surface zone |
| | setSurfaceChanged () indicates that the surface topology or geometry has changed |
| | updateCenter (Vec3 Returns the graphic object center and weight |
| | updateRadius (const Vec3 Returns the graphic object radius given its center |
| | getCuttingSurfaceZone (void) const returns cutting surface zone |
| | setCuttingSurfaceZone ( TetraSurfaceZone3D * sz) set cutting surface zone |
| | firstVertex (void) const returns an iterator on vertices, initialized on first vertex |
| | lastVertex (void) const returns an iterator on vertices, initialized on first vertex |
| | firstVirtualVertex (void) returns an iterator on virtual vertices, initialized on first vertex |
| | lastVirtualVertex (void) returns an iterator on virtual vertices, initialized on first vertex |
| | firstEdge (void) returns an iterator on edges, initialized on first edge |
| | lastEdge (void) returns an iterator on edges, initialized on first edge |
| | firstTriangle (void) returns an iterator on triangles, initialized on first triangle |
| | lastTriangle (void) returns an iterator on triangles, initialized on first triangle |
| | firstTetrahedron (void) const returns an iterator on tetrahedra, initialized on first tetrahedron |
| | lastTetrahedron (void) const returns an iterator on tetrahedra, initialized on first tetrahedron |
| | firstZone (void) const returns an iterator on zones, initialized on first zone |
| | lastZone (void) const returns an iterator on zones, initialized on first zone |
| | firstSurfaceZone (void) const returns an iterator on surface zones, initialized on first surface zone |
| | lastSurfaceZone (void) const returns an iterator on surface zones, initialized on last surface zone |
| | flipNormals (void) flip every model normals |
| | areNormalsFlipped () const whether the direction normal vector at each vertex and each face should be flipped for display purposes |
| | surfaceHasChanged () called when the geometry or mesh topology has changed |
| | intersectWithPlane (const Vec3 compute model surface intersection with a plane |
| | getSurfaceSliceableName () const returns a string giving the name of the Tcl interface of the mesh |
| | newTetrahedron (TetraVertex3D *v0, TetraVertex3D *v1, TetraVertex3D *v2, TetraVertex3D *v3, bool orientation = true) create new 3D tetrahedron |
| | newTriangle (TetraVertex3D *v0, TetraVertex3D *v1, TetraVertex3D *v2) create new 3D triangle |
| | newEdge (TetraVertex3D *v0, TetraVertex3D *v1) create new 3D edge |
| | newVertex (Vec3 create new 3D vertex |
| | computeVerticesAverageEdgeSize () comute vertices average edge size value |
| | getInterface (void) const returns 3D tetrahedrisation interface |
| | SELECTION_MODE model subobject selection mode
|
| | virtualVertexList list of virtual vertices |
| | tetrahedronList list of tetrahedra |
| | edgeList list of edges |
| | vertexList list of vertices |
| | zoneList list of zones |
| | surfaceZoneList list of surface zones |
| | cuttingSurfaceZone surface zone given to new surface triangles |
| | tetrahedrisationname name of this tetrahedrisation (could have several meshes in a file) |
| | center tetrahedrisation mesh center |
| | referenceCenter tetrahedrisation mesh reference (stored) center |
| | radius sphere that include the 2simplex mesh radius |
| | surfaceChanged whether 2simplex mesh was deformed |
| | displayNormals whether to display surface normal at vertices |
| | normalsColor normal display color |
| | normalsWidth normal display width |
| | normalScale normals arrows display scale |
| | flipNormal whether we should flip normal for display |
| | selectionMode model subobject selection mode |
| | selectedMaterial the material used to draw selected triangle or zone |
| | triangleDisplayList The triangle display list for picking and LIE collision |
| | edgeDisplayList The surface edge display list for picking |
| | volumeEdgeDisplayList The edge display list for volumetric display |
| | vertexDisplayList The vertex display list for picking |
| | Sphere sphere to display selected points |
| | selectedVertex pointer on selected vertex (0 if no vertex is selected) |
| | selectedTriangle pointer on selected face (0 if no face is selected) |
| | selectedEdge pointer on selected edge (0 if no edge is selected) |
| | selectedTetrahedron pointer on selected etrahedron (0 if no tetrahedron is selected) |
| | selectedZone pointer on selected zone (0 if no zone is selected) |
| | selectedSurfaceZone pointer on selected surface zone (0 if no surface zone is selected) |
| | initDisplay () constructors common code for display variables |
| | buildTriangleDisplayList () build the triangle display list when needed |
| | buildEdgeDisplayList () build the edge display list when needed |
| | buildVolumeEdgeDisplayList () build the edge display list when needed |
| | buildVertexDisplayList () build the vertex display list when needed |
| | volumeWireframeRedraw (Camera3D *cam) redraw function called when the "volumewireframe" mode is selected |
| | initGeneralFormat () init the general file format variables |
| | findSurfaceTriangleList (std::map updates the list of surface triangles |
| | addVertex (TetraVertex3D *v) add vertex in the vertex list |
| | addEdge (TetraEdge3D *e) add edge in the edge list |
| | addTriangle (TetraTriangle3D *t) add triangle in the triangle list |
| | addTetrahedron (TetraTetrahedron3D *t) add tetrahedron in the tetrahedron list |
| | addZone (TetraZone3D *z) add zone in the zone list |
| | addSurfaceZone (TetraSurfaceZone3D *z) add surfacezone in the zone list |
| | list of triangles |
| | iterator on 3D Zones |
Class of a 3D Tetrahedrisation
class FileNotFound: public Exception
class NotAManifold: public Exception
std::set <TetraVertex3D *> virtualVertexList
ObjectsList <TetraTetrahedron3D> tetrahedronList
TetraTriangleMap triangleList
TetraEdgeMap edgeList
ObjectsList <TetraVertex3D> vertexList
ObjectsList <TetraZone3D> zoneList
ObjectsList <TetraSurfaceZone3D> surfaceZoneList
TetraSurfaceZone3D* cuttingSurfaceZone
constructors
destructor
TclString filename
TclString tetrahedrisationname
Vec3
Vec3
double radius
enum SELECTION_MODE
SELECT_ZONE
SELECT_SURFACE_ZONE
SELECT_EDGE
SELECT_VERTEX
SELECT_TRIANGLE
EDIT_ZONE
EDIT_SURFACE_ZONE
bool surfaceChanged
bool displayNormals
static Color normalsColor
static float normalsWidth
static double normalScale
bool flipNormal
SELECTION_MODE selectionMode
Material selectedMaterial
GLuint triangleDisplayList
GLuint edgeDisplayList
GLuint volumeEdgeDisplayList
GLuint vertexDisplayList
GLUquadricObj* Sphere
void initDisplay()
void buildTriangleDisplayList()
void buildEdgeDisplayList()
void buildVolumeEdgeDisplayList()
void buildVertexDisplayList()
void volumeWireframeRedraw(Camera3D *cam)
TetraVertex3D* selectedVertex
TetraTriangle3D* selectedTriangle
TetraEdge3D* selectedEdge
TetraTetrahedron3D* selectedTetrahedron
TetraZone3D* selectedZone
TetraSurfaceZone3D* selectedSurfaceZone
void initGeneralFormat()
void findSurfaceTriangleList(std::map
void addVertex(TetraVertex3D *v)
void addEdge(TetraEdge3D *e)
void addTriangle(TetraTriangle3D *t)
void addTetrahedron(TetraTetrahedron3D *t)
void addZone(TetraZone3D *z)
void addSurfaceZone(TetraSurfaceZone3D *z)
void createTetrahedrisation( unsigned int nbVertices, Vec3
positionTable - an array of size nbVertices where the position of each vertex is stored
nbTetrahedra - the number of tetrahedra
vertexTetrahedronTable - an array of size [4][nbTetrahedra] where the
4 vertices of each tetrahedron is described
void readMainModule(GFInput &input)
void readFile(const TclString name)
void computeCenter()
virtual void renumber()
void topologyCheck()
bool topologyCheck2()
virtual TetraZone3D* newZone(char *zoneName)
virtual TetraSurfaceZone3D* newSurfaceZone(char *zoneName)
void saveAsGHS3D(char *name)
void saveAsTr(char *name)
void saveAsPrecomputedTr(char *name)
void readMainModule3D(GFInput &input)
void skipMainModule(GFInput &input)
void writeMainModule(GFOutput &output)
void readTextureModule(GFInput &input)
void skipTextureModule(GFInput &input)
void writeTextureModule(GFOutput &output)
virtual void translate(const Vec3
virtual void rotate(const Rotation3D& rotation)
virtual void scale(const double scale)
virtual void redraw(Camera3D *)
virtual double computeClosestDistance(DataTypes::MouseClick& mc) const
virtual void selectObject(const Vec2
cam - click point camera
void unselect(void)
void select(TetraVertex3D *v)
void select(TetraEdge3D *e)