In file SM2/SM2Vertex.h:

class SM2Vertex : public SM2VertexGeometry, public ActiveVertex3D

2 simplex mesh vertex

Inheritance:


Public Methods

void setBarycenter (SM2Vertex *neighbour[], double weight[], int nSize)
set vertex position using barycentric coordinates
SM2Vertex* getNeighbor (unsigned int i) const
returns one of vertex neighbors
double getWeight (void) const
returns vertex weight
void setWeight (const double w)
set new weight value
void updatePosition (void)
updates vertex position by applying total force
void updatePosition (const Vec3& force)
updates vertex position
RangeInformation* getRangeInformation (void) const
returns rangeInformation information
void setRangeInformation (RangeInformation *ri)
returns rangeInformation information
double getDistanceData (void) const
get distance to closest point data
double getMaxDistance (void) const
get max distance to attractive data
virtual void setLocality (const double locality)
set the locality of this vertex and update model deformation mode
void setStatus (int flag)
set flags from status parameter value
int getStatus (void) const
get status parameter value
void unselect (void)
unselects this vertex
void select (void)
selects this vertex
void grab (const Vec3& G)
grab this vertex toward point G
SM2VertexContour3D* getVertexContour () const
returns the associated contour vertex
InternalForce3DType* getInternalForceType (void) const
returns vertex internal force type
void setInternalForceType (InternalForce3DType *type)
set vertex smoothness constraint
void storeMetricParameters (void)
save current metric parameters
void resetMetricParameters (void)
reset metric parameters (epsilon to 1/3)
void storeReferenceShape (void)
set current shape as reference shape
void computeSimplexAngle (void)
computes vertex simplex angle
void computeC0Force (void)
computes C0 internal force
void computeC1Force (void)
computes C1 internal force
void computeC2Force (void)
computes C2 internal force
void computeG2Force (void)
computes G2 internal force
void computeShapeForce (void)
computes shape internal force
void computeSpringForce (void)
computes spring internal force
void computeNoForce (void)
no internal force

Public

constructors
SM2Vertex (SM2 *mesh, const Vec3& pos = Vec3(0.0, 0.0, 0.0), SM2Vertex *n0 = 0, SM2Vertex *n1 = 0, SM2Vertex *n2 = 0, SM2Face *f0 = 0, SM2Face *f1 = 0, SM2Face *f2 = 0, SM2Edge *e0 = 0, SM2Edge *e1 = 0, SM2Edge *e2 = 0)
constructor
SM2Vertex (const SM2Vertex& org)
copy constructor: creates an empty vertex without any mesh/neighbors/faces but identical geometry and dynamic
destructor
virtual ~SM2Vertex ()
destroy attached intensity profiles

Protected Fields

double weight
vertex weight in global force computation
SM2VertexIterator (SM2Vertex& first, unsigned int nghSize)
Builds a new iterator from first vertex for a nghSize neighborhood
SM2Vertex* operator) (void)
returns current vertex
SM2Vertex* operator++ (void)
set iterator on next vertex and returns it
SM2Vertex* operator++ (int)
returns current vertex then set iterator on next one
SM2Vertex* operator-- (void)
set iterator on previous vertex and returns it
SM2Vertex* operator-- (int)
returns current vertex then set iterator on previous one
RangeInformation* rangeInformation
local data information known at this vertex
double maxDistance
maximal distance of attractive data
double distanceData
distance of point to the closest data point
Vec3 closestData
closest point from a 2-simplex vertex to the set of 3D data
bool fixed
whether this vertex is fixed
bool interpolated
whether there is some data close to the vertex of it is the result of an interpolation
int label
used during a recursive search

Protected Methods

void move (int level, Vec3 move, SM2Vertex *v1, int neigh)
recursive move vertex function
void computeInternalForce (double delta)
compute vertex internal force given simplex angle variation
void computeAveragedExternalForce (void)
computes vertex averaged force
void setSpringInternalForce (void)
spring internal force initialization
void computeEdgesLengthAndDirection (void)
computes vertex edges length and direction

Inherited from SM2VertexGeometry:

Public Methods

void setPosition(const Vec3& pos)
const Vec3 & getPosition(void) const
double getX(void) const
double getY(void) const
double getZ(void) const
const Vec3 & getNormal(void) const
double getSimplexAngle(void) const
double getMetricParameter(int i) const
double getRadius(void) const
double getMeanCurvature(void) const
void computeNormal(void)
void computeMetricParameters(void)
virtual void computeMeanCurvature(void)
SM2Face* getFace(unsigned int i) const
SM2Edge* getEdge(unsigned int i) const
SM2* getMesh(void) const
static Vec3 normalizedCrossProduct(const Vec3& v1, const Vec3& v2)

Public

constructor

SM2VertexGeometry(SM2 *mesh, const Vec3& pos = Vec3(0.0, 0.0, 0.0), SM2VertexGeometry *n0 = 0, SM2VertexGeometry *n1 = 0, SM2VertexGeometry *n2 = 0, SM2Face *f0 = 0, SM2Face *f1 = 0, SM2Face *f2 = 0, SM2Edge *e0 = 0, SM2Edge *e1 = 0, SM2Edge *e2 = 0)
constructor
SM2VertexGeometry(const SM2VertexGeometry& org)
copy constructor: creates an empty vertex without any mesh/neighbors/faces but identical geometric features

Protected Fields

Vec3 position
Vec3 normal
double simplexAngle
double metricParameter[3]
double radius
double meanCurvature
double referenceSimplexAngle

Inherited from SM2VertexTopology:

Public Methods

void setVertexTopology(int i, SM2VertexTopology *v)
void setEdgeTopology(int i, SM2EdgeTopology *e)
void setFaceTopology(int i, SM2FaceTopology *f)
void setWhichNeighbor(void)
int getRef(void) const
int getWhichNeighbor(int i) const
int getWhichNeighbor(const SM2VertexTopology *v) const
int neighborIndex(const SM2VertexTopology *v) const
void resetNeighborhood(void)
SM2VertexTopology* getNeighborTopology(unsigned int i) const
SM2FaceTopology* getFaceTopology(unsigned int i) const
SM2EdgeTopology* getEdgeTopology(unsigned int i) const
void swapNeighbors(unsigned int i, unsigned int j)

Protected Fields

SM2VertexTopology* neighbor[3]
SM2FaceTopology* face[3]
SM2EdgeTopology* edge[3]
unsigned int whichNeighbor[3]
int ref
SM2Topology* mesh
VertexContour* vertexContour
SM2VertexTopology* vertexWindow
std::vector <SM2VertexTopology *> * neighborhood
unsigned int neighborhoodSize

Documentation

2 simplex mesh vertex
double weight
vertex weight in global force computation

SM2VertexIterator(SM2Vertex& first, unsigned int nghSize)
Builds a new iterator from first vertex for a nghSize neighborhood. first vertex neighborhood is updated if needed. Warning: first itself is not an element of its neighborhood. A 0 size neighborhood is empty.
Parameters:
first - first vertex
nghSize - neighborhood size

SM2Vertex* operator)(void)
returns current vertex

SM2Vertex* operator++(void)
set iterator on next vertex and returns it

SM2Vertex* operator++(int)
returns current vertex then set iterator on next one

SM2Vertex* operator--(void)
set iterator on previous vertex and returns it

SM2Vertex* operator--(int)
returns current vertex then set iterator on previous one

RangeInformation* rangeInformation
local data information known at this vertex

double maxDistance
maximal distance of attractive data

double distanceData
distance of point to the closest data point

Vec3 closestData
closest point from a 2-simplex vertex to the set of 3D data

bool fixed
whether this vertex is fixed

bool interpolated
whether there is some data close to the vertex of it is the result of an interpolation

int label
used during a recursive search

void move(int level, Vec3 move, SM2Vertex *v1, int neigh)
recursive move vertex function
Parameters:
level - recursive level
move - extenal force to apply onto vertex
v1 - grabbed vertex that caused move to be called
neigh - immediate neighbor index that caused move to be call at previous recursive level

void computeInternalForce(double delta)
compute vertex internal force given simplex angle variation
Parameters:
delta - simplex angle variation

void computeAveragedExternalForce(void)
computes vertex averaged force

void setSpringInternalForce(void)
spring internal force initialization

void computeEdgesLengthAndDirection(void)
computes vertex edges length and direction

constructors

SM2Vertex(SM2 *mesh, const Vec3& pos = Vec3(0.0, 0.0, 0.0), SM2Vertex *n0 = 0, SM2Vertex *n1 = 0, SM2Vertex *n2 = 0, SM2Face *f0 = 0, SM2Face *f1 = 0, SM2Face *f2 = 0, SM2Edge *e0 = 0, SM2Edge *e1 = 0, SM2Edge *e2 = 0)
constructor
Parameters:
pos - vertex position
mesh - owner 2 simplex mesh
n0 - first neighbor,
n1 - second neighbor,
n2 - third neighbor,
f0 - first face,
f1 - second face,
f2 - third face,
e0 - first edge,
e1 - second edge,
e2 - third edge

SM2Vertex(const SM2Vertex& org)
copy constructor: creates an empty vertex without any mesh/neighbors/faces but identical geometry and dynamic

destructor

virtual ~SM2Vertex()
destroy attached intensity profiles

void setBarycenter(SM2Vertex *neighbour[], double weight[], int nSize)
set vertex position using barycentric coordinates

SM2Vertex* getNeighbor(unsigned int i) const
returns one of vertex neighbors
Parameters:
i - neighbor number (0, 1 or 2)

double getWeight(void) const
returns vertex weight

void setWeight(const double w)
set new weight value
Parameters:
w - weight value

void updatePosition(void)
updates vertex position by applying total force

void updatePosition(const Vec3& force)
updates vertex position
Parameters:
force - displacement to apply to vertex

RangeInformation* getRangeInformation(void) const
returns rangeInformation information

void setRangeInformation(RangeInformation *ri)
returns rangeInformation information

double getDistanceData(void) const
get distance to closest point data

double getMaxDistance(void) const
get max distance to attractive data

virtual void setLocality(const double locality)
set the locality of this vertex and update model deformation mode
Parameters:
locality - new locality value (0.0 means global, 1.0 means local)

void setStatus(int flag)
set flags from status parameter value
Parameters:
status - status parameter

int getStatus(void) const
get status parameter value

void unselect(void)
unselects this vertex

void select(void)
selects this vertex

void grab(const Vec3& G)
grab this vertex toward point G
Parameters:
G - grab point

SM2VertexContour3D* getVertexContour() const
returns the associated contour vertex

InternalForce3DType* getInternalForceType(void) const
returns vertex internal force type

void setInternalForceType(InternalForce3DType *type)
set vertex smoothness constraint
Parameters:
type - smoothness constraint type to apply

void storeMetricParameters(void)
save current metric parameters

void resetMetricParameters(void)
reset metric parameters (epsilon to 1/3)

void storeReferenceShape(void)
set current shape as reference shape

void computeSimplexAngle(void)
computes vertex simplex angle

void computeC0Force(void)
computes C0 internal force

void computeC1Force(void)
computes C1 internal force

void computeC2Force(void)
computes C2 internal force

void computeG2Force(void)
computes G2 internal force

void computeShapeForce(void)
computes shape internal force

void computeSpringForce(void)
computes spring internal force

void computeNoForce(void)
no internal force


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