Nice Class Reference

#include <nice.h>

Collaboration diagram for Nice:

Collaboration graph
[legend]
List of all members.

Public Member Functions

int getNonniceCount (bool)
int getVertexNiceVal (Vertex const *const) const
bool findExtraPoint (Vertex const *const, vector3 &, fp_cit const &) const
bool updateVertexNiceness (Vertex *const)
bool setVertexNiceness (Vertex *const, vec_op &)
bool getCrossedObjFromVertToExtra (Vertex const *const, vector3 const &, vec_op &) const
bool getCrossedObjFromExtraToLimit (vector3 const &, vector3 const &, vec_op &) const
bool vertexIsNice (Vertex const *const) const
bool getPointOutsideObject (Vertex const *const, vector3 &, vec_op &) const
void getCrossedObjects (Vertex const *const, vec_op &) const
void getVertAdjFaceRay (vector3 &, vector3 &, fp_cit const &) const
void getPenetratedObjs (vec_fp &, vec_fp &, vec_op &) const
void getObjectsFromEdgeHits (vec_op &edge_hits, vec_op &objs) const
void findOddObjects (vec_op &, vec_op &) const
void getRaysToWorldLimit (vector3 const &, double[6][3]) const
void setVertexNiceVal (int const &, Vertex *const)
void findNonniceVertices (void)
face_grp findIntFacesAlongRay (Vertex const *const, vector3 const &, vector3 const &) const
vhm_cit beginNice (void) const
vhm_cit endNice (void) const

Static Public Member Functions

static Niceinstance (void)

Member Function Documentation

Nice & Nice::instance ( void   )  [static]

int Nice::getNonniceCount ( bool  detect_self  ) 

Count the number of nonnice vertices in model.

Parameters:
[in] detect_self If true then only count vertices inside their parent object.
Returns:
Number of nonnice vertices.

int Nice::getVertexNiceVal ( Vertex const * const  v  )  const

Get nice value of vertex with code described in nice.cc.

Parameters:
[in] v Vertex of interest.
Returns:
Nice value of vertex.

bool Nice::findExtraPoint ( Vertex const * const  v,
vector3 extra_obj_pt,
fp_cit const &  adjacent_face 
) const

Identify a location near the vertex of interest guaranteed to be outside of the parent object of vertex.

Parameters:
[in] v Vertex of interest.
[out] extra_obj_pt Location outside of vertex parent object, if successfully found.
[in] adjacent_face Iterator pointing to vertex adjacent face to use as parent of extracellular location.
Returns:
1 if extra-object location identified; 0 otherwise.

bool Nice::updateVertexNiceness ( Vertex * const  v  ) 

Evaluate niceness of vertex with ray tracing and record and return result.

Parameters:
[in] v Vertex of interest.
Returns:
True if vertex niceness changed since last check; false otherwise.

bool Nice::setVertexNiceness ( Vertex * const  v,
vec_op crossed_objects 
)

Record new nice value based on collection of objects crossed in ray trace from vertex to world limits.

Parameters:
[in] v Vertex of interest.
[in] crossed_objects Collection of objects crossed in ray trace from vertex to world limits.
Returns:
True if vertex niceness changed since last check; false otherwise.

bool Nice::getCrossedObjFromVertToExtra ( Vertex const * const  v,
vector3 const &  extra_obj_pt,
vec_op crossed_objects 
) const

Identify and collect objects crossed during ray tracing from input vertex to extra-object location.

Parameters:
[in] v Vertex of interest.
[in] extra_obj_pt Location guaranteed to be outside vertex parent object.
[out] crossed_objects Collection of object crossed during ray trace from vertex to extra-object point.
Returns:
True if any edges were intersected by ray; false otherwise.

bool Nice::getCrossedObjFromExtraToLimit ( vector3 const &  extra_obj_pt,
vector3 const &  world_limit,
vec_op crossed_objects 
) const

Find and return objects crossed during ray trace from extra-object point to world limit.

Parameters:
[in] extra_obj_pt Location guaranteed to be outside of object of interest.
[in] world_limit Ray will be traced to the world limit.
[out] crossed_objects Collection of objects crossed during ray trace.
Returns:
True if any edges were intersected by ray; false otherwise.

bool Nice::vertexIsNice ( Vertex const * const  v  )  const

Check if vertex is recorded as being nice.

Parameters:
[in] v Vertex of interest.
Returns:
True if vertex is nice; false otherwise.

bool Nice::getPointOutsideObject ( Vertex const * const  v,
vector3 extra_obj_pt,
vec_op crossed_objects 
) const

Identify a location guaranteed to be outside the parent object of the vertex of interest and identify object crossings between point and current vertex.

Parameters:
[in] v Vertex of interest.
[out] extra_obj_pt Location guaranteed to be outside vertex parent object.
[out] crossed_objects Collection of crossed objects between vertex and extra-object location.
Returns:
True if extra-object location found; false otherwise.

void Nice::getCrossedObjects ( Vertex const * const  v,
vec_op all_crossed_objects 
) const

Collect and return objects inside which vertex lies as determined by ray tracing.

Parameters:
[in] v Vertex of interest.
[out] all_crossed_objects Collection of objects inside which vertex lies.

void Nice::getVertAdjFaceRay ( vector3 centroid,
vector3 extra_obj_pt,
fp_cit const &  f 
) const

Calculate ray from adjacent face centroid along face normal small distance.

Parameters:
[out] centroid One endpoint of ray.
[out] extra_obj_pt Other endpoint of ray.
[in] f Iterator pointing to adjacent face of vertex of interest.

void Nice::getPenetratedObjs ( vec_fp crossed_faces,
vec_fp crossed_faces_on_edge,
vec_op odd_objects 
) const

Collect the objects for which ray not only intersected but certainly changed sides of object, i.e. inside to outside or outside to inside.

Parameters:
[in] crossed_faces Faces intersected by ray strictly in face interior.
[in] crossed_faces_on_edge Faces intercted by ray on edge.
[out] odd_objects Objects for which ray changed sides.

void Nice::getObjectsFromEdgeHits ( vec_op edge_hits,
vec_op objs 
) const

Coalesce pairs of same-object edge hits into single object hits.

Parameters:
[in] edge_hits Collection of objects intersected on edge by ray.
[out] objs Collection of intersected objects inferred from edge hits.

void Nice::findOddObjects ( vec_op ,
vec_op  
) const

void Nice::getRaysToWorldLimit ( vector3 const &  ,
double  [6][3] 
) const

void Nice::setVertexNiceVal ( int const &  newval,
Vertex * const  v 
)

Set nice value of vertex with code described in nice.cc.

Parameters:
[in] newval Set niceval of input vertex to new value.
[in] v Vertex of interest.

void Nice::findNonniceVertices ( void   ) 

Find and record all nonnice vertices in model.

face_grp Nice::findIntFacesAlongRay ( Vertex const * const  v,
vector3 const &  origin,
vector3 const &  end 
) const

Check a collection of faces for interection with input line segment.

Parameters:
[in] v Vertex of interest.
[in] origin One end of line segment.
[in] end Other end of line segment.
Returns:
Collection of faces that interect input line segment along an edge or strictly interior of face.

vhm_cit Nice::beginNice ( void   )  const [inline]

Get an iterator pointing to first nonnice vertex.

Returns:
Iterator pointing to beginning of nonnice vertex container.

vhm_cit Nice::endNice ( void   )  const [inline]

Get an iterator pointing to one past the last nonnice vertex.

Returns:
Iterator pointing to one past the last nonnice vertex.


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