#include <nice.h>
Collaboration diagram for Nice:
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 Nice & | instance (void) |
Nice & Nice::instance | ( | void | ) | [static] |
int Nice::getNonniceCount | ( | bool | detect_self | ) |
Count the number of nonnice vertices in model.
[in] | detect_self | If true then only count vertices inside their parent object. |
int Nice::getVertexNiceVal | ( | Vertex const * const | v | ) | const |
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.
[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. |
bool Nice::updateVertexNiceness | ( | Vertex * const | v | ) |
Evaluate niceness of vertex with ray tracing and record and return result.
[in] | v | Vertex of interest. |
Record new nice value based on collection of objects crossed in ray trace from vertex to world limits.
[in] | v | Vertex of interest. |
[in] | crossed_objects | Collection of objects crossed in ray trace from vertex to world limits. |
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.
[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. |
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.
[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. |
bool Nice::vertexIsNice | ( | Vertex const * const | v | ) | const |
Check if vertex is recorded as being nice.
[in] | v | Vertex of interest. |
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.
[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. |
Collect and return objects inside which vertex lies as determined by ray tracing.
[in] | v | Vertex of interest. |
[out] | all_crossed_objects | Collection of objects inside which vertex lies. |
Calculate ray from adjacent face centroid along face normal small distance.
[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.
[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. |
Coalesce pairs of same-object edge hits into single object hits.
[in] | edge_hits | Collection of objects intersected on edge by ray. |
[out] | objs | Collection of intersected objects inferred from edge hits. |
void Nice::getRaysToWorldLimit | ( | vector3 const & | , | |
double | [6][3] | |||
) | const |
void Nice::setVertexNiceVal | ( | int const & | newval, | |
Vertex * const | v | |||
) |
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.
[in] | v | Vertex of interest. |
[in] | origin | One end of line segment. |
[in] | end | Other end of line segment. |
vhm_cit Nice::beginNice | ( | void | ) | const [inline] |
Get an iterator pointing to first nonnice vertex.
vhm_cit Nice::endNice | ( | void | ) | const [inline] |
Get an iterator pointing to one past the last nonnice vertex.