47 #pragma package(smart_init)
51 EdgeCollapseCriteria::EdgeCollapseCriteria(
MCEdge * __mcEdge,
MCVertex * __deleteVertex,
MCAA * __mcaa)
52 : _mcaa(__mcaa), _mcEdge(__mcEdge)
58 if (__deleteVertex == v1)
63 else if (__deleteVertex == v2)
71 printf(
" EdgeCollapseCriteria : vertex %lu is not adjacent to edge %lu !\n", __deleteVertex->
get_id(), __mcEdge->
get_id());
92 double deleteVertex_xyz[3];
93 double LMin, minEdgeLength;
100 if (collapseEdgeLength >= LMin)
103 std::vector<MCEdge *> adjEdges;
108 unsigned char rgba1[4];
110 for (std::vector<MCEdge*>::iterator itEdge = adjEdges.begin();
111 itEdge != adjEdges.end(); itEdge++)
114 unsigned char rgba2[4];
117 if (is_colored2 != is_colored1)
119 else if ( rgba1[0] != rgba2[0] || rgba1[1] != rgba2[1] || rgba1[2] != rgba2[2] || rgba1[3] != rgba2[3])
124 minEdgeLength = 1E100;
126 for (std::vector<MCEdge*>::iterator itEdge = adjEdges.begin();
127 itEdge != adjEdges.end(); itEdge++)
135 minEdgeLength = std::min(minEdgeLength,edgeLength);
140 if (minEdgeLength < LMin)
145 return 1-collapseEdgeLength/LMin;
double GetMinSize(double __xyz[3])
MCBody * GetMCBody() const
Graph::Graph * G21() const
Graph::Graph * G10() const
void Vertex_GetAdjacentEdges(MCVertex *__mcVertex, std::vector< MCEdge * > &__list)
PolyCurve * GetPolyCurve()
double get_longueur(double __s_min=-1, double __s_max=-1, double precision=1E-6)
virtual class MG_COSOMMET * get_cosommet2(void)
virtual class MG_COSOMMET * get_cosommet1(void)
virtual MG_SOMMET * get_sommet(void)
virtual void evaluer(double *xyz)=0
virtual MG_POINT * get_point(void)