In file triangulation/PrecomputedTriangulation3D.h:

class PrecomputedTriangulation3D : public Triangulation3D, public DeformableModel3D

3D precomputed triangulation class

Inheritance:


Public Fields

typedef castiterator <TriangulationVertex, PrecomputedTriangulationVertex3D> PrecomputedVertex3DIterator
iterator on 3D active vertices

Public Methods

void computeExternalForces (void)
compute external forces
virtual void selectObject (const Vec2 pixel, Camera3D *cam)
The callback function called when a mouse is clicked to select the closest edge, zone, vertex or triangle
virtual void redraw (Camera3D *)
redraw active triangulation 3D
virtual TriangulationVertex* newVertex (TriangulationEdge *edge=0, unsigned int orientation=0 )
creates a new vertex
PrecomputedTriangulationVertex3D* getSelectedVertex (void) const
returns mesh selected vertex
PrecomputedVertex3DIterator firstVertex (void) const
returns an iterator on vertices, initialized on first vertex
PrecomputedVertex3DIterator lastVertex (void) const
returns an iterator on vertices, initialized on first vertex
PrecomputedTriangulationVertex3D* getFirstVertex (void) const
returns first mesh vertex
void apply (void (PrecomputedTriangulationVertex3D::*ptr)(void))
apply member function on each mesh vertex
void apply (void (PrecomputedTriangulationVertex3D::*ptr)(const int), const int val)
apply member function on each mesh vertex
void applyUnsignedInt (void (PrecomputedTriangulationVertex3D::*ptr)(const unsigned int), const unsigned int val)
apply member function on each mesh vertex
void apply (void (PrecomputedTriangulationVertex3D::*ptr)(const float), const float val)
apply member function on each mesh vertex
void applyDouble (void (PrecomputedTriangulationVertex3D::*ptr)(const double), const double val)
apply member function on each mesh vertex
void apply (void (PrecomputedTriangulationVertex3D::*ptr)(void *), void *val)
apply member function on each mesh vertex
void updatePosition (void)
updates all vertices position
void computeDisplacement (void)
computes all vertices internal forces
void grab (const Vec2& pixel, Camera3D *cam)
grab vertices from a mouse click in a 3D camera
Vec3 * grab2D (const Vec3& dir, const Vec3& pos)
grab vertices from a mouse click in a 2D camera
unsigned short int getGrabRange (void) const
returns model grab range
RangeInformation* getRangeInformation (void) const
returns local information
void setRangeInformation (RangeInformation * ri)
set local information
double getForceBoundary (void) const
returns model grab range
virtual void iterate (const unsigned int n)
model deformation callback
static void drawVector (const Vec3& from, const Vec3& arrow, const Color& color, double width)
draw an arrow
TclPrecomputedTriangulation3D* getInterface (void) const
returns 3D active triangulation interface

Public

constructors
PrecomputedTriangulation3D (const TclString& name, Scene3D *scene)
build triangulation from file
destructor
virtual ~PrecomputedTriangulation3D ()
delete object from scene

Protected Fields

Matrix3x3 globalRotation
global transformations: rotation
Vec3 globalTranslation
global transformations: translation
double globalScale
global transformations: scaling
double forceBoundary
maximum force boundary
double displacementBoundary
maximum displacement constraint boundary
bool moving
whether the mesh has been modified in the previous iteration
RangeInformation* rangeInformation
the range information used for all vertices
bool displayNormals
whether to display surface normal at vertices
int displayForces
whether to display each force type
static Color normalsColor
normal display color
static float normalsWidth
normal display width
static double normalsScale
normals arrows display scale
static Color forcesColor
each force display color
static float forcesWidth
each force display width
static double forcesScale
force display scale
bool displayGrabArrow
whether mouse grab arrow should be displayed on next redraw
Vec3 grabOrg
mouse grab arrow origin
Vec3 grabArrow
mouse grab arrow
static Color grabArrowColor
grab arrow display color
unsigned short int grabRange
mouse grab extension

Protected Methods

void readMainModulePrecomputed3D (GFInput &input)
general format read function for main module
void initGeneralFormat ()
constructors common code for the I/O routines
void initDisplay ()
constructors common code for initialising display variables

Inherited from Triangulation3D:

Public Classes

class FileNotFound: public Exception

Public Fields

TriangulationVertex3D* selectedVertex
TriangulationTriangle3D* selectedTriangle
TriangulationEdge3D* selectedEdge
TriangulationZone* selectedZone
TriangulationPoint* selectedPoint

Public Methods

void skipMainModule(GFInput &input)
void writeMainModule(GFOutput &output)
void readTextureModule(GFInput &input)
void skipTextureModule(GFInput &input)
void writeTextureModule(GFOutput &output)
void saveAsTrian(char *name)
void saveAsTr(char *name)
void computeCenter()
void setTriangleTopology(TriangulationTriangle *t1, TriangulationTriangle *t2, unsigned int index)
virtual TriangulationTriangle* newTriangle(TriangulationTriangle *n0 = 0, TriangulationTriangle *n1 = 0, TriangulationTriangle *n2 = 0, TriangulationVertex *v0 = 0, TriangulationVertex *v1 = 0, TriangulationVertex *v2 = 0, TriangulationEdge *e0 = 0, TriangulationEdge *e1 = 0, TriangulationEdge *e2 = 0, TriangulationZone *zone = 0)
double getVolume(void) const
const TclString& getFileName(void) const
void setFileName(const char *name)
void renumberMesh() const
SELECTION_MODE getSelectionMode(void) const
void setSelectionMode(SELECTION_MODE mode)
virtual void translate(const Vec3& tr)
virtual void rotate(const Rotation3D& rotation)
virtual void scale(const double scale)
virtual double computeClosestDistance(DataTypes::MouseClick& mc) const
void set1DTextureCoordinates(SET_TRIANGULATION_1D_TEXTURE_COORDINATES f, bool normalize=false)
virtual void updateCenter(Vec3& center, unsigned int& n)
virtual double updateRadius(const Vec3& center)
TriangulationEdge* getSelectedEdge(void) const
TriangulationTriangle3D* getSelectedTriangle(void) const
TriangulationPoint* getSelectedPoint(void) const
TriangulationZone3D* getSelectedZone(void) const
virtual void selected(void)
virtual void unselected(void)
void unselect(void)
TriangulationVertex3D* getVertex(int vref) const
TriangulationEdge* getEdge(int eref) const
TriangulationTriangle3D* getTriangle(int tref) const
TriangulationZone3D* getZone(int tref) const
void select(TriangulationPoint *p)
void select(TriangulationVertex3D *v)
void select(TriangulationEdge3D *e)
void select(TriangulationTriangle3D *t)
void select(TriangulationZone3D *z)
void selectVertex(int ref)
void selectEdge(int ref)
void selectTriangle(int ref)
void selectPoint(int ref, const Vec3 &eye, const Vec3 &dir)
void selectZone(int ref)
void setRendering(TclString n)
virtual void setScene(Scene3D *scene)
TriangulationLandmarkIterator firstLandmark(void) const
TriangulationLandmarkIterator lastLandmark(void) const
TriangulationZone3DIterator firstZone(void) const
TriangulationTriangle3DIterator firstTriangle(void) const
TriangulationTriangle3D* getFirstTriangle(void) const
TriangulationVertex3D* getLastVertex(void) const
TriangulationTriangle3D* getLastTriangle(void) const
void flipNormals(void)
bool areNormalsFlipped() const
virtual void surfaceHasChanged()
std::list intersectWithPlane(const Vec3& normal, const Vec3& origin, const Vec3& vx, const Vec3& vy)
virtual TclString getSurfaceSliceableName() const

Public

exceptions

Protected Classes

enum SELECTION_MODE
SELECT_ZONE
select model zone
SELECT_EDGE
select triangulation edge
SELECT_VERTEX
select triangulation vertex
SELECT_TRIANGLE
select triangulation triangle
SELECT_POINT
select a point lying on a triangulation
EDIT_ZONE
edit the selected zone
GRAB
grab closest vertices

Protected Fields

ObjectsList <TriangulationLandmark> landmarkList
TclString filename
TclString triangulationname
Vec3 referenceCenter
double radius
Vec3 center
bool surfaceChanged
static double normalScale
bool flipNormal
SELECTION_MODE selectionMode
Material selectedMaterial
GLuint triangleDisplayList
GLuint edgeDisplayList
GLuint vertexDisplayList
GLUquadricObj* Sphere

Protected Methods

void buildTriangleDisplayList()
void buildEdgeDisplayList(const Camera3D *cam)
void buildVertexDisplayList(const Camera3D *cam)
void readMainModule3D(GFInput &input)
void copyObject(const Triangulation3D &org)

Inherited from Triangulation:

Public Methods

virtual TriangulationEdge* newEdge( TriangulationVertex *v1, TriangulationVertex *v2, TriangulationTriangle *t1 = 0, TriangulationTriangle *t2 = 0)
virtual unsigned int regularizeTopology(void)
static TriangulationVertex* sameVertex(const TriangulationEdge *e1, const TriangulationEdge *e2)
TriangulationEdgeIterator firstEdge(void) const
TriangulationEdgeIterator lastEdge(void) const
TriangulationTriangleIterator lastTriangle(void) const
TriangulationZoneIterator lastZone(void) const
TriangulationEdge* getFirstEdge(void) const
TriangulationZone* getFirstZone(void) const
unsigned int getNumberOfVertices(void) const
unsigned int getNumberOfEdges(void) const
unsigned int getNumberOfTriangles(void) const
unsigned int getNumberOfZones(void) const
void addVertex(TriangulationVertex* v)
void addEdge(TriangulationEdge* e)
void addTriangle(TriangulationTriangle * f)
void addZone(TriangulationZone* z)
bool topologyCheck(void) const
void renumber(void)

Public

Exception classes

Exception thrown when the triangulation stored in a file is not a manifold
class NotAManifold: public Exception
mesh is not a manifold (edge shared by 3 triangles,...)

constructor

Triangulation()
builds an empty mesh

Protected Fields

ObjectsList <TriangulationVertex> vertexList
ObjectsList <TriangulationTriangle> triangleList
ObjectsList <TriangulationEdge> edgeList
ObjectsList <TriangulationZone> zoneList

Documentation

3D precomputed triangulation class
constructors

PrecomputedTriangulation3D(const TclString& name, Scene3D *scene)
build triangulation from file
Parameters:
name - triangulation file name
scene - scene to build object in

destructor

virtual ~PrecomputedTriangulation3D()
delete object from scene

typedef castiterator <TriangulationVertex, PrecomputedTriangulationVertex3D> PrecomputedVertex3DIterator
iterator on 3D active vertices

Matrix3x3 globalRotation
global transformations: rotation

Vec3 globalTranslation
global transformations: translation

double globalScale
global transformations: scaling

double forceBoundary
maximum force boundary

double displacementBoundary
maximum displacement constraint boundary

bool moving
whether the mesh has been modified in the previous iteration

RangeInformation* rangeInformation
the range information used for all vertices

bool displayNormals
whether to display surface normal at vertices

int displayForces
whether to display each force type

static Color normalsColor
normal display color

static float normalsWidth
normal display width

static double normalsScale
normals arrows display scale

static Color forcesColor
each force display color

static float forcesWidth
each force display width

static double forcesScale
force display scale

bool displayGrabArrow
whether mouse grab arrow should be displayed on next redraw

Vec3 grabOrg
mouse grab arrow origin

Vec3 grabArrow
mouse grab arrow

static Color grabArrowColor
grab arrow display color

unsigned short int grabRange
mouse grab extension

void readMainModulePrecomputed3D(GFInput &input)
general format read function for main module

void initGeneralFormat()
constructors common code for the I/O routines

void initDisplay()
constructors common code for initialising display variables

void computeExternalForces(void)
compute external forces

virtual void selectObject(const Vec2 pixel, Camera3D *cam)
The callback function called when a mouse is clicked to select the closest edge, zone, vertex or triangle. In this case, call the inherited and treat the case of grabbing
Parameters:
pixel - mouse click point
cam - click point camera

virtual void redraw(Camera3D *)
redraw active triangulation 3D

virtual TriangulationVertex* newVertex(TriangulationEdge *edge=0, unsigned int orientation=0 )
creates a new vertex
Parameters:
edge - one edge,
orientation - vertex orientation versus edge orientation (0 or 1)

PrecomputedTriangulationVertex3D* getSelectedVertex(void) const
returns mesh selected vertex

PrecomputedVertex3DIterator firstVertex(void) const
returns an iterator on vertices, initialized on first vertex

PrecomputedVertex3DIterator lastVertex(void) const
returns an iterator on vertices, initialized on first vertex

PrecomputedTriangulationVertex3D* getFirstVertex(void) const
returns first mesh vertex

void apply(void (PrecomputedTriangulationVertex3D::*ptr)(void))
apply member function on each mesh vertex
Parameters:
ptr - vertex member function without any arguments

void apply(void (PrecomputedTriangulationVertex3D::*ptr)(const int), const int val)
apply member function on each mesh vertex
Parameters:
ptr - vertex member function with a single integer argument
val - integer value to transmit as argument

void applyUnsignedInt(void (PrecomputedTriangulationVertex3D::*ptr)(const unsigned int), const unsigned int val)
apply member function on each mesh vertex
Parameters:
ptr - vertex member function with a single unsigned integer argument
val - unsigned integer value to transmit as argument

void apply(void (PrecomputedTriangulationVertex3D::*ptr)(const float), const float val)
apply member function on each mesh vertex
Parameters:
ptr - vertex member function with a single float argument
val - float value to transmit as argument

void applyDouble(void (PrecomputedTriangulationVertex3D::*ptr)(const double), const double val)
apply member function on each mesh vertex
Parameters:
ptr - vertex member function with a single double argument
val - double value to transmit as argument

void apply(void (PrecomputedTriangulationVertex3D::*ptr)(void *), void *val)
apply member function on each mesh vertex
Parameters:
ptr - vertex member function with a single double argument
val - pointer to transmit as argument

void updatePosition(void)
updates all vertices position

void computeDisplacement(void)
computes all vertices internal forces

void grab(const Vec2& pixel, Camera3D *cam)
grab vertices from a mouse click in a 3D camera
Parameters:
pixel - mouse click point
cam - click point camera

Vec3 * grab2D(const Vec3& dir, const Vec3& pos)
grab vertices from a mouse click in a 2D camera
Returns:
closest model vertex to pos in camera plane (may be 0)
Parameters:
pos - click point position in 3D space
cam - camera the mouse click occured in

unsigned short int getGrabRange(void) const
returns model grab range

RangeInformation* getRangeInformation(void) const
returns local information

void setRangeInformation(RangeInformation * ri)
set local information

double getForceBoundary(void) const
returns model grab range

virtual void iterate(const unsigned int n)
model deformation callback
Parameters:
n - number of deformation stages to achieve

static void drawVector(const Vec3& from, const Vec3& arrow, const Color& color, double width)
draw an arrow
Parameters:
from - vector origin
arraow - vector coordinates
color - arrow color
width - vector line width

TclPrecomputedTriangulation3D* getInterface(void) const
returns 3D active triangulation interface


This class has no child classes.

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