Vertex Class Reference

#include <vertex.h>

Collaboration diagram for Vertex:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Vertex (int const &, double const &x, double const &y, double const &z, Object *const)
 Vertex (Vertex const &)
Vertexoperator= (Vertex const &)
void print (std::ostream &) const
void printCP (std::ostream &) const
void setNewPos (vector3 const *const)
void setNormal (void)
void getBoundingBox (vector3 &, vector3 &) const
void updateAdjFaceBoundingBoxes (void)
void defineLocalRegion (vector3 &, vector3 &)
void getAdjVertices (vec_vp &) const
void getAdjacentEdges (vec_ep &) const
double getSqSepDist (void) const
double getSqVirtualDisp (double)
vector3 getNewPos (double)
void recordAdjFaceBoundingBoxes (hxa7241_graphics::Vector3r *const adjacent_face_lower, hxa7241_graphics::Vector3r *const adjacent_face_upper)
void getTotalForceEnergy (vector3 &) const
void getAdjFaceIntForce (vector3 &) const
double getEcwForceEnergy (vector3 &, bool) const
double getEdgeStretchForceEnergy (vector3 &, bool) const
double getFaceAspectRatioForceEnergy (vector3 &, bool) const
double getEdgeAngleForceEnergy (vector3 &, bool) const
FacegetFaceNotAdjToVertex (Vertex const *const) const
void updateAdjacentFaceNormals (void)
int getLastRefractoryIter (void)
void setLastRefractoryIter (int i)
void sortAdjacentFaces (void)
vector3 getNormal (void) const
int getIndex (void) const
int getNumAdjFaces (void) const
bool faceIsAdjacent (Face *face) const
bool isMatch (int const &i, std::string const &name) const
void addAdjacentFace (Face *face)
double const * getCoord (int const &axis) const
FacegetClosestFace (void)
void setFace (Face *const face)
vector3 const * getPos (void) const
void setPos (double const &x, double const &y, double const &z)
Object const * getObject (void) const
fp_cit begin (void) const
fp_cit end (void) const

Constructor & Destructor Documentation

Vertex::Vertex ( int const &  in,
double const &  x,
double const &  y,
double const &  z,
Object * const  q 
)

Create new instance of Vertex class.

Parameters:
[in] line Single line from input mesh file.
[in] q Pointer to parent Object.

Vertex::Vertex ( Vertex const &   ) 


Member Function Documentation

Vertex & Vertex::operator= ( Vertex const &   ) 

void Vertex::print ( std::ostream &  target  )  const

Print identifying vertex information to output stream.

Parameters:
[in] target Pre-initialized output stream.

void Vertex::printCP ( std::ostream &  target  )  const

Print to output stream the vertex position in DREaMM custom points format.

Parameters:
[in] target Pre-initialized output stream.

void Vertex::setNewPos ( vector3 const * const  new_position  ) 

Set new location for this vertex.

Parameters:
[in] new_position New candidate position for this vertex.

void Vertex::setNormal ( void   ) 

Calculate and store vertex normal vector computed as a weighted sum of adjacent face normals.

void Vertex::getBoundingBox ( vector3 lower,
vector3 upper 
) const

Calculate and return vertex bounding box as bounding box of collection of adjacent faces.

Parameters:
[out] lower Lower corner of bounding box of collection of vertex adjacent faces.
[out] upper Upper corner of bounding box of collection of vertex adjacent faces.

void Vertex::updateAdjFaceBoundingBoxes ( void   ) 

void Vertex::defineLocalRegion ( vector3 lower,
vector3 upper 
)

Calculate region around this vertex that is influenced by moving this vertex.

Parameters:
[out] lower Lower corner of local region.
[out] upper Upper corner of local region.

void Vertex::getAdjVertices ( vec_vp adjacent_vertices  )  const

Collect and return vertices adjacent to this vertex.

Parameters:
[out] adjacent_vertices Adjacent vertices of this vertex.

void Vertex::getAdjacentEdges ( vec_ep adjacent_edges  )  const

Collect and return edges adjacent to this vertex.

Parameters:
[out] adjacent_edges Adjacent edges of this vertex.

double Vertex::getSqSepDist ( void   )  const

Calculare and return squared extracellular width of this vertex.

Returns:
Squared extracellular width of this vertex.

double Vertex::getSqVirtualDisp ( double  gain  ) 

Calculate and return the squared virtual displacement of this vertex.

Parameters:
[in] gain Proportionality constant between force and displacement.
Returns:
Squared virtual displacement of this vertex.

vector3 Vertex::getNewPos ( double  gain  ) 

Calculate new vertex position.

Parameters:
[in] gain Proportionality between force and displacement.
Returns:
New vertex location.

void Vertex::recordAdjFaceBoundingBoxes ( hxa7241_graphics::Vector3r *const  adjacent_face_lower,
hxa7241_graphics::Vector3r *const  adjacent_face_upper 
)

Record bounding box of each adjacent face of this vertex.

void Vertex::getTotalForceEnergy ( vector3 force  )  const

Calculate and return total force at this vertex, but energy is not computed.

Parameters:
[out] force Input force plus calculated force from all contributions.

void Vertex::getAdjFaceIntForce ( vector3 force  )  const

Calculate and return force and/or energy at this vertex due to adjacent face intersections.

Parameters:
[out] force Input force plus calculated adjacent face intersection contribution.

double Vertex::getEcwForceEnergy ( vector3 force,
bool  compute_force 
) const

Calculate and return the vertex force vector and energy due to the vertex extracellular width.

Parameters:
[out] force The force vector due to the extracellular width is added to the input force.
[in] compute_force If true, then compute force and energy; otherwise, compute only the energy.

double Vertex::getEdgeStretchForceEnergy ( vector3 force,
bool  compute_force 
) const

Calculate and return force and/or energy at this vertex due to stretch of adjacent edges.

Parameters:
[out] force Input force plus calculated edge stretch contribution.
[in] compute_force If true then compute force and energy; otherwise compute energy only.
Returns:
Current energy stored in adjacent edge stretch.

double Vertex::getFaceAspectRatioForceEnergy ( vector3 force,
bool  compute_force 
) const

Calculate and return force and/or energy at this vertex due to aspect ratio of adjacent faces.

Parameters:
[out] force Input force plus calculated adjacent face contribution.
[in] compute_force If true then compute force and energy; otherwise compute energy only.
Returns:
Current energy stored in adjacent face aspect ratios.

double Vertex::getEdgeAngleForceEnergy ( vector3 force,
bool  compute_force 
) const

Calculate and return force and/or energy at this vertex due to distribution of edge angles in adjacent faces of this vertex.

Parameters:
[out] force Input force plus calculated edge stretch contribution.
[in] compute_force If true then compute force and energy; otherwise compute energy only.
Returns:
Current energy stored in adjacent face edge angles.

Face * Vertex::getFaceNotAdjToVertex ( Vertex const * const  avoided_vertex  )  const

Find and return an adjacent face to this vertex that does not contain the input vertex.

Parameters:
[in] avoided_vertex Vertex that adjacent face must not reference.
Returns:
Pointer to adjacent face of this vertex.

void Vertex::updateAdjacentFaceNormals ( void   ) 

Recalculate normal vectors of faces adjacent to this vertex.

int Vertex::getLastRefractoryIter ( void   )  [inline]

void Vertex::setLastRefractoryIter ( int  i  )  [inline]

void Vertex::sortAdjacentFaces ( void   )  [inline]

Sort stored adjacent faces to this vertex by face pointer.

vector3 Vertex::getNormal ( void   )  const [inline]

Get stored vertex normal vector.

Returns:
Vertex normal vector. Note vector length is not necessarily of unit length.

int Vertex::getIndex ( void   )  const [inline]

Return the index of vertex as recorded from input file.

Returns:
Vertex index.

int Vertex::getNumAdjFaces ( void   )  const [inline]

Calculate and return the number of stored adjacent faces to this vertex.

Returns:
Number of stored adjacent faces to this vertex.

bool Vertex::faceIsAdjacent ( Face face  )  const [inline]

Determine if input face is adjacent to this vertex.

Parameters:
[in] face Face of interest.
Returns:
True if input face is found among stored adjcent faces of this vertes; false otherwise.

bool Vertex::isMatch ( int const &  i,
std::string const &  name 
) const [inline]

Compare input vertex index and object name to this vertex's index and object name.

Parameters:
[in] i Input vertex index.
[in] name Input vertex parent object name.
Returns:
True if indices and names match; false otherwise.

void Vertex::addAdjacentFace ( Face face  )  [inline]

Record input face as adjacent to this vertex.

Parameters:
[in] face New adjacent face to this vertex.

double const* Vertex::getCoord ( int const &  axis  )  const [inline]

Retrieve one coordinate of position of this vertex.

Parameters:
[in] axis Axis of interest (0,1,2==x,y,z axis respectively).
Returns:
The position coordinate of this vertex with index equal to axis.

Face* Vertex::getClosestFace ( void   )  [inline]

Retrieve the stored face on which the closest point to this vertex should lie.

Returns:
Stored closest face pointer.

void Vertex::setFace ( Face *const   face  )  [inline]

Record the stored face on which the closest point to this vertex should lie.

Parameters:
[in] face Pointer to closet face to this vertex..

vector3 const* Vertex::getPos ( void   )  const [inline]

Retrieve the current position of this vertex.

Returns:
Pointer to this vertex.

void Vertex::setPos ( double const &  x,
double const &  y,
double const &  z 
) [inline]

Set the position of this vertex.

Parameters:
[in] x X coordinate.
[in] y Y coordinate.
[in] z Z coordinate.

Object const* Vertex::getObject ( void   )  const [inline]

Retrieve a pointer to the parent Object of this vertex.

Returns:
Pointer to parent object of this vertex.

fp_cit Vertex::begin ( void   )  const [inline]

Get an iterator pointing to the first in the collection of adjacent faces to this vertex.

Returns:
Iterator pointing to the first adjacent face.

fp_cit Vertex::end ( void   )  const [inline]

Get an iterator pointing to one past the last in the collection of adjacent faces to this vertex.

Returns:
Iterator pointing to one past the last adjacent face.


The documentation for this class was generated from the following files:
Generated on Fri Feb 13 13:58:42 2009 for meshmorph by  doxygen 1.5.1