In file contour/ActiveVertexContour2D.h:

class ActiveVertexContour2D : public VertexContour2D, public ActiveVertex2D

Vertex class of an active contour 2D that include geometric members and method in order to compute internal and external forces

Inheritance:


Public Methods

AContourLine2D* getLine () const
returns the line of the active contour where the vertex belongs
ActiveContour2D* getActiveContour2D () const
returns the active contour where the vertex belongs
EdgeActiveContour2D* getEdge () const
returns the edge pointed by a vertex
ActiveVertexContour2D* getFollowing () const
Returns the right neighboring vertex in the line taking into account the line topology
ActiveVertexContour2D* getPrevious () const
Returns the left neighboring vertex in the line taking into account the line topology
ActiveVertexContour2D* getTopologicalFollowing () const
Returns the right neighboring vertex in the line without taking into account the line topology
ActiveVertexContour2D* getTopologicalPrevious () const
Returns the left neighboring vertex in the line without taking into account the line topology
EdgeContour* removeVertexBasic ()
Remove a vertex and update the data structure of neighboring vertices
EdgeActiveContour2D* removeVertex ()
Remove a vertex by calling removeVertexBasic() and updates the maximum rigidity value
double getSimplexAngle () const
return the simplex angle value
int getMatrixIndex () const
return the index in the stiffness matrix
double getCurvature () const
return the curvature value
double getReferenceSimplexAngle () const
return the reference simplex angle
void getReferenceMetricParameters ( double rmp[2])
returns the reference metric parameters value
void updateReferenceMetricParametersFromCurvature (const double magnitude)
change the reference metric parameter of a vertex based on the curvature of its two neighbors
void computeSimplexAngle ()
computes the simplex angle and store it
void computeCurvature ()
computes the vertex curvature and store it in the curvature field
void computeMetricParameters (double mp[2]) const throw(InvalidMetricParameters)
compute the actual metrics parameters and store them in mp[] ( the reference metrics parameters are not modified)
void storeMetricParameters () throw(InvalidMetricParameters)
store the current metrics parameters as the reference metrics parameters
void resetMetricParameters ()
reset the reference metrics parameters
void computeEdgeDirection () throw(ContourLine2D::IllegalGeometry)
compute the 2 neighboring edge length and edge direction
void updatePosition ()
If the vertex is not fixed, then the position and previous position of that vertex are updated given the current internal and external force
void computeExternalForce ()
compute the external force and store it in force[EXTERNAL]
virtual void fixVertex ()
fix a vertex ie prevent it from moving
virtual void unfixVertex ()
free a vertex ie allow it to move
virtual void setMobility (const bool m)
set the mobility of a vertex

Public

Exception classes
class InvalidMetricParameters : public Exception
Exception thrown when a vertex is found to have a negative metric parameter
Constructors
ActiveVertexContour2D (AContourLine2D *line, Vec2 pos, RangeInformation *ri=0)
create a vertex given its position
Destructor
virtual ~ActiveVertexContour2D ()
empty destructor

Protected Fields

double simplexAngle
Simplex angle
double referenceMetricParameters [2]
Reference Metrics parameters
double curvature
curvature at a vertex
double referenceSimplexAngle
reference simplex angle at a vertex used for shape constraint
int matrixIndex
index of the vertex in the stiffness matrix (row number matrixIndex and matrixIndex+1) : it is equal to -1 if it is not in the stiffness matrix

Inherited from VertexContour2D:

Public Methods

Vec2 getPosition() const
void setPosition(const Vec2 &p)
Contour2D* getContour2D() const
void computeTangent()
Vec2 getTangent() const
Vec2 getNormal() const

Public

Destructors

virtual ~VertexContour2D()
empty Destructor

Protected Fields

Vec2 position
Vec2 tangent

Inherited from VertexContour:

Public Methods

const char* getName() const
Contour* getContour() const
unsigned int getRank() const
unsigned int getRankInLine() const
unsigned int getRef() const
void setName(const char *theName)

Protected Fields

EdgeContour* edge
ContourLine* line

Private Fields

char* name

Documentation

Vertex class of an active contour 2D that include geometric members and method in order to compute internal and external forces
Exception classes

class InvalidMetricParameters: public Exception
Exception thrown when a vertex is found to have a negative metric parameter

double simplexAngle
Simplex angle

double referenceMetricParameters[2]
Reference Metrics parameters

double curvature
curvature at a vertex

double referenceSimplexAngle
reference simplex angle at a vertex used for shape constraint

int matrixIndex
index of the vertex in the stiffness matrix (row number matrixIndex and matrixIndex+1) : it is equal to -1 if it is not in the stiffness matrix

Constructors

ActiveVertexContour2D(AContourLine2D *line, Vec2 pos, RangeInformation *ri=0)
create a vertex given its position
Parameters:
line - the line where the vertex should be inserted
pos - the vertex position
ri - the range information that is stored on that vertex

Destructor

virtual ~ActiveVertexContour2D()
empty destructor

AContourLine2D* getLine() const
returns the line of the active contour where the vertex belongs

ActiveContour2D* getActiveContour2D() const
returns the active contour where the vertex belongs

EdgeActiveContour2D* getEdge() const
returns the edge pointed by a vertex

ActiveVertexContour2D* getFollowing() const
Returns the right neighboring vertex in the line taking into account the line topology

ActiveVertexContour2D* getPrevious() const
Returns the left neighboring vertex in the line taking into account the line topology

ActiveVertexContour2D* getTopologicalFollowing() const
Returns the right neighboring vertex in the line without taking into account the line topology

ActiveVertexContour2D* getTopologicalPrevious() const
Returns the left neighboring vertex in the line without taking into account the line topology

EdgeContour* removeVertexBasic()
Remove a vertex and update the data structure of neighboring vertices

EdgeActiveContour2D* removeVertex()
Remove a vertex by calling removeVertexBasic() and updates the maximum rigidity value

double getSimplexAngle() const
return the simplex angle value

int getMatrixIndex() const
return the index in the stiffness matrix

double getCurvature() const
return the curvature value

double getReferenceSimplexAngle() const
return the reference simplex angle

void getReferenceMetricParameters( double rmp[2])
returns the reference metric parameters value

void updateReferenceMetricParametersFromCurvature(const double magnitude)
change the reference metric parameter of a vertex based on the curvature of its two neighbors
Parameters:
magnitude - this parameter should be between 0 and 1. if it is equal to 0 then the metric parameter are set to 0.5. Otherwise, if it is equal to 1 the metrics parameters may be between 0.1 and 0.9 depending on the curvature variation. For intermediate values the possible variation of metric parameter is proportional to this magnitude

void computeSimplexAngle()
computes the simplex angle and store it

void computeCurvature()
computes the vertex curvature and store it in the curvature field

void computeMetricParameters(double mp[2]) const throw(InvalidMetricParameters)
compute the actual metrics parameters and store them in mp[] ( the reference metrics parameters are not modified)
Parameters:
mp - the array of double where the actual metric parameters are stored

void storeMetricParameters() throw(InvalidMetricParameters)
store the current metrics parameters as the reference metrics parameters

void resetMetricParameters()
reset the reference metrics parameters

void computeEdgeDirection() throw(ContourLine2D::IllegalGeometry)
compute the 2 neighboring edge length and edge direction

void updatePosition()
If the vertex is not fixed, then the position and previous position of that vertex are updated given the current internal and external force

void computeExternalForce()
compute the external force and store it in force[EXTERNAL]. To do so, it calls all range data using the local range information

virtual void fixVertex()
fix a vertex ie prevent it from moving

virtual void unfixVertex()
free a vertex ie allow it to move

virtual void setMobility(const bool m)
set the mobility of a vertex


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