class ActiveTetra3D : public Tetra3D, public DeformableModel3D Class of a 3D active Tetrahedrisation
| | getInternalForceType () const returns the internal force type applying on the whole tetrahedrisation |
| | getIntegrationMethod (void) const return the integration method |
| | setIntegrationMethod (const INTEGRATION_METHOD im) set the integration method |
| | getUnit (void) const return the integration method |
| | setUnit (const POSITION_UNIT un) set the unit used to store vertex position |
| | setTimeStep (const double ts) set the time step |
| | getUnitScale () const returns the scale factor used to compute physical parameters in SI |
| | allocRigidityMatrix (unsigned int nb, bool symmetric=true) allocate the rigidity of size n*n as well as the force and result vector |
| | getRigidityMatrix () returns the current symmetric rigidity Matrix |
| | getNonSymmetricRigidityMatrix () returns the current rigidity Matrix |
| | getForceVector () returns the current force vector |
| | getResultVector () returns the current result vector |
| | getNumberCGIterations () const return the maximum number of iterations to perform in the conjugated gradient algorithm |
| | setNumberCGIterations (const unsigned int _nbCGIter) set the maximum number of iterations to perform in the conjugated gradient algorithm |
| | selectObject (const Vec2 The callback function called when a mouse is clicked to select the closest edge, zone, vertex or triangle |
| | redraw (Camera3D *) redraw active triangulation 3D |
| | grab (const Vec2 grab vertices from a mouse click in a 3D camera |
| | grab2D (const Vec3 grab vertices from a mouse click in a 2D camera |
| | getGrabRange (void) const returns model grab range |
| | drawVector (const Vec3 draw an arrow |
| | newZone (char *zoneName) create a new zone with a given name |
| | newSurfaceZone (char *zoneName) create a new zone with a given name |
| | computeEdgesLengthAndDirection (void) pre-computation fuction for spring internal forces |
| | computeEdgesSquareLengthVariation (void) pre-computation function for non-linear elastic forces |
| | updateTimeStep (void) Automatic computation of the time step |
| | computeInternalForces (void) computes all vertices internal forces |
| | computeExternalForces (void) compute external forces |
| | updatePosition (void) updates all vertices position |
| | computeStiffnessMatrix (void) assembly stiffness matrix |
| | computeMassOnVertices () compute the mass associated to each vertex |
| | computeRenumbering (void) compute renumbering of vertices which displacement is not imposed |
| | computeInducedForce (MTLVec &F) compute force induced by the displacement of some vertices |
| | solveSystem (MTLVec &F, MTLSymSparse *, MTLVec &, int, double) solve the system F=K*U and return U, displacement of vertices which displacement is not imposed |
| | updatePosition (MTLVec &U) update position of vertices knowing their rest position and their displacement |
| | computeDisplacement (int, double) compute displacement of all vertices given some displacements and external forces |
| | getBarycentricCoordinates (Vec3 return tetrahedron in which the given point is @first param : coordinates of the given point in the image @second param : barycentric coordinates of the given point |
| | setMassDensity (const double r) set mass density |
| | getMassDensity (void) get mass density |
| | iterate (const unsigned int n) model deformation callback |
| | asynchronousIterate (const unsigned int n) asynchronous deformation callback |
| | setInternalForce (InternalForceTetra3D *ft) set a given internal force as the main internal force applying on all vertices : updates the internalForceType field of all vertices and eventually call the ft->setGlobalFunction() |
| | setInternalForce (char *forceName) find the internal force corresponding to its name |
| | apply (void (ActiveTetraVertex3D::*ptr)(void)) apply member function on each mesh vertex |
| | apply (void (ActiveTetraVertex3D::*ptr)(void) const) apply member function on each mesh vertex |
| | apply (void (ActiveTetraVertex3D::*ptr)(int), int val) apply member function on each mesh vertex |
| | apply (void (ActiveTetraVertex3D::*ptr)(double), double) apply member function on each mesh vertex |
| | apply (void (ActiveTetraVertex3D::*ptr)(unsigned int), unsigned int val) apply member function on each mesh vertex |
| | apply (void (ActiveTetraVertex3D::*ptr)(float), float val) apply member function on each mesh vertex |
| | applyDouble (void (ActiveTetraVertex3D::*ptr)(const double), const double val) apply member function on each mesh vertex |
| | apply (void (ActiveTetraVertex3D::*ptr)(void *), void *val) apply member function on each mesh vertex |
| | apply (void (ActiveTetraEdge3D::*ptr)(void)) apply member function on each mesh edge |
| | apply (void (ActiveTetraEdge3D::*ptr)(void) const) apply member function on each mesh edge |
| | apply (void (ActiveTetraTriangle3D::*ptr)(void)) apply member function on each mesh triangle |
| | apply (void (ActiveTetraTriangle3D::*ptr)(void) const) apply member function on each mesh triangle |
| | apply (void (ActiveTetraTriangle3D::*ptr)(bool), bool) apply member function on each mesh triangle |
| | apply (void (ActiveTetraTetrahedron3D::*ptr)(void)) apply member function on each mesh tetrahedron |
| | apply (void (ActiveTetraTetrahedron3D::*ptr)(void) const) apply member function on each mesh tetrahedron |
| | apply (void (ActiveTetraTetrahedron3D::*ptr)(bool), bool) apply member function on each mesh tetrahedron |
| | applyDouble (void (ActiveTetraTetrahedron3D::*ptr)(const double), const double) apply member function on each mesh tetrahedron |
| | applyVect (void (ActiveTetraTetrahedron3D::*ptr)(const Vec3 apply member function on each mesh tetrahedron |
| | getVertex (const unsigned int n) const returns mesh vertex given its reference |
| | getEdge (const unsigned int n) const returns mesh edge given its reference |
| | getTriangle (const unsigned int n) const returns mesh triangle given its reference |
| | getTetrahedron (const unsigned int n) const returns mesh tetrahedron given its reference |
| | getZone (const unsigned int n) const returns mesh zone given its reference |
| | getSurfaceZone (const unsigned int n) const returns mesh surface zone given its reference |
| | 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 surfacezone |
| | firstVertex (void) const returns an iterator on vertices, initialized on first vertex |
| | lastVertex (void) const returns an iterator on 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 zones, initialized on first zone |
| | lastSurfaceZone (void) const returns an iterator on zones, initialized on last zone |
| | setRestPosition () set the current Tetrahedrisation geometry as the geometry at rest position |
| | resetElasticTensors () reset all elastic tensor in order to recompute them |
| | getTimeStep () const return the time step for the integration of the internal force |
| | newTetrahedron (TetraVertex3D* v0, TetraVertex3D* v1, TetraVertex3D* v2, TetraVertex3D* v3, bool orientation=true) creat new 3D tetrahedron |
| | newTriangle (TetraVertex3D *v0, TetraVertex3D *v1, TetraVertex3D *v2) create new 3D triangle |
| | newEdge (TetraVertex3D *v0, TetraVertex3D *v1=0) create new 3D edge |
| | newVertex (Vec3 create new 3D vertex |
| | getInterface (void) const returns 3D tetrahedrisation interface |
| | unitScale constants that is used to convert physical parameters into SI units |
| | asynchCoeff coeff used for asynchronous |
| | priorityStat priorityStat |
| | priorityQueue priority queue |
| | timeStep time step for integration of the partial differential equation (in s) |
| | initializedElasticForce whether the edge and vertex tensor has been initialized |
| | mainInternalForce internal force used for all vertices internal force computation |
| | numberCGIterations maximum number of iterations to perform in the conjugated gradient algorithm |
| | stiffnessMatrix symmetric stiffness matrix (in kg/s^2) |
| | stiffnessMatrix2 non symmetric stiffness matrix (in kg/s^2) |
| | preconditioner cholesky preconditioner |
| | forceVector vector used to store all external forces applied on vertices |
| | resultVector vector used to store the solution of the linear equation used by implicit scheme resolution |
| | renum store renumbering for stiffness matrix |
| | displacementList store list of vertices which displacement is imposed |
| | rangeInformation the range information used for all vertices |
| | massDensity mass density (in kg/m^3) |
| | integrationMethod chosen integration Method |
| | positionUnit chosen unit to store vertex position |
| | meshChanged whether to recompute some data (mass, stiffness, time step) |
| | texture1DFunction texture 1D function |
| | displayClosestPoint whether the closest point of each vertex should be displayed |
| | displayNormals whether to display surface normal at vertices |
| | displayForces whether to display surface forces at vertices |
| | normalsColor normal display color |
| | normalsWidth normal display width |
| | normalsScale normals arrows display scale |
| | forcesColor [6] each force display color |
| | forcesWidth each force display width |
| | forcesScale force display scale |
| | displayGrabArrow whether mouse grab arrow should be displayed on next redraw |
| | grabOrg mouse grab arrow origin |
| | grabArrow mouse grab arrow |
| | grabArrowColor grab arrow display color |
| | grabRange mouse grab extension |
| | globalTimer Some data to compute simulation frequencies |
| | readMainModuleActive3D (GFInput &input) general format read function for main module |
| | readPositionConstraintModule (GFInput &input) general format read function for position constraint module |
| | readMobilityModule (GFInput &input) general format read function for mobility module |
| | skipPositionConstraintModule (GFInput &input) general format skip function for position constraint module |
| | skipMobilityModule (GFInput &input) general format skip function for mobility module |
| | writePositionConstraintModule (GFOutput &output) general format write function for position constraint module |
| | writeMobilityModule (GFOutput &output) general format write function for mobility module |
| | readForceConstraintModule (GFInput &input) general format read function for force constraint module |
| | skipForceConstraintModule (GFInput &input) general format skip function for force constraint module |
| | writeForceConstraintModule (GFOutput &output) general format write function for force constraint module |
| | readRestPositionModule (GFInput &input) general format read function for rest position module |
| | skipRestPositionModule (GFInput &input) general format skip function for rest position module |
| | writeRestPositionModule (GFOutput &output) general format write function for rest position module |
| | readPreviousPositionModule (GFInput &input) general format read function for rest position module |
| | skipPreviousPositionModule (GFInput &input) general format skip function for rest position module |
| | writePreviousPositionModule (GFOutput &output) general format write function for rest position module |
| | readPositionConstraint (TclString name, GFInput &input) read function for position constraint module |
| | skipPositionConstraint (TclString name, GFInput &input) skip function for position constraint module |
| | writePositionConstraint (Constraint *c, GFOutput &output) write function for position constraint module |
| | readForceConstraint (TclString name, GFInput &input) read function for force constraint module |
| | skipForceConstraint (TclString name, GFInput &input) skip function for force constraint module |
| | writeForceConstraint (Constraint *c, GFOutput &output) write function for force constraint module |
| | init () constructors common code |
| | initGeneralFormat () constructors common code for the I/O routines |
| | initInternalForce () constructors common code for creating internal force InternalTriangulationForce3D objects |
| | getInternalEnergy () returns the internal energy |
| | initDisplay () constructors common code for initialising display variables |
exceptions
Class of a 3D active Tetrahedrisation
NO_UNIT
METER_UNIT
MILLIMETER_UNIT POSITION_UNIT
typedef enum
EXPLICIT
IMPLICIT
HOUBOLT
ASYNCHRONOUS INTEGRATION_METHOD
double unitScale
double asynchCoeff
std::vector
std::vector <ActiveTetraVertex3D*> priorityQueue
double timeStep
bool initializedElasticForce
InternalForceTetra3D* mainInternalForce
unsigned int numberCGIterations
MTLSymSparse* stiffnessMatrix
MTLSparse* stiffnessMatrix2
itl::cholesky
MTLVec* forceVector
MTLVec* resultVector
std::map <ActiveTetraVertex3D*, unsigned int> renum
std::map <ActiveTetraVertex3D*,Vec3
RangeInformation* rangeInformation
double massDensity
INTEGRATION_METHOD integrationMethod
POSITION_UNIT positionUnit
bool meshChanged
SET_TETRAHEDRISATION_1D_TEXTURE_COORDINATES texture1DFunction
bool displayClosestPoint
bool displayNormals
bool displayForces
static Color normalsColor
static float normalsWidth
static double normalsScale
static Color forcesColor[6]
static float forcesWidth
static double forcesScale
bool displayGrabArrow
Vec3
Vec3
static Color grabArrowColor
unsigned short int grabRange
void readMainModuleActive3D(GFInput &input)
void readPositionConstraintModule(GFInput &input)
void readMobilityModule(GFInput &input)
void skipPositionConstraintModule(GFInput &input)
void skipMobilityModule(GFInput &input)
void writePositionConstraintModule(GFOutput &output)
void writeMobilityModule(GFOutput &output)
void readForceConstraintModule(GFInput &input)
void skipForceConstraintModule(GFInput &input)
void writeForceConstraintModule(GFOutput &output)
void readRestPositionModule(GFInput &input)
void skipRestPositionModule(GFInput &input)
void writeRestPositionModule(GFOutput &output)
void readPreviousPositionModule(GFInput &input)
void skipPreviousPositionModule(GFInput &input)
void writePreviousPositionModule(GFOutput &output)
virtual void readPositionConstraint(TclString name, GFInput &input)
virtual void skipPositionConstraint(TclString name, GFInput &input)
virtual void writePositionConstraint(Constraint *c, GFOutput &output)
virtual void readForceConstraint(TclString name, GFInput &input)
virtual void skipForceConstraint(TclString name, GFInput &input)
virtual void writeForceConstraint(Constraint *c, GFOutput &output)
void init()
void initGeneralFormat()
void initInternalForce()
double getInternalEnergy()
void initDisplay()
Timer globalTimer
constructors
destructor
inline InternalForceTetra3D* getInternalForceType() const
INTEGRATION_METHOD getIntegrationMethod(void) const
void setIntegrationMethod(const INTEGRATION_METHOD im)
POSITION_UNIT getUnit(void) const
void setUnit(const POSITION_UNIT un)
void setTimeStep(const double ts)
double getUnitScale() const
void allocRigidityMatrix(unsigned int nb, bool symmetric=true)
MTLSymSparse* getRigidityMatrix()
MTLSparse* getNonSymmetricRigidityMatrix()