45 #pragma package(smart_init)
74 if (strcmp(nom_A, nom_B) == 0)
85 if (found == 0 || same == 0)
93 VertexCriteria::VertexCriteria (
MCVertex * __mcVertex,
MCAA * __mcaa)
94 : _mcaa(__mcaa), _mcVertex(__mcVertex)
133 std::vector <CovertexCriteria *>::iterator it;
137 std::vector<MCEdge *> adjEdges;
148 for (std::vector<MCEdge*>::iterator itEdge = adjEdges.begin();
149 itEdge != adjEdges.end(); itEdge++)
169 double covertexLength = covc->
GetLength();
174 std::map < MCFace * , std::set<MCEdge *> > subset_face_edges;
175 for (std::vector<MCEdge*>::iterator itEdge = adjEdges.begin();
176 itEdge != adjEdges.end(); itEdge++)
180 for ( std::set < MCFace * >::iterator itF = adjfaces.begin();
181 itF != adjfaces.end();
190 subset_face_edges[
f].insert( *itEdge );
196 for (std::map <
MCFace * , std::set<MCEdge *> >::iterator itFSE = subset_face_edges.begin();
197 itFSE != subset_face_edges.end();
200 std::vector<OT_VECTEUR_3D> points;
201 for (std::set<MCEdge *>::iterator itE = (itFSE->second).begin();
202 itE != (itFSE->second).end();
217 if ((*it)->GetCovertex() == cov)
227 if (points.size() == 2)
252 double criterionAngle;
254 if (_deviationAngle < _mcaa->GetLimitAngle())
259 return criterionAngle;
264 double criterionEdgeLen;
266 criterionEdgeLen = 1 - std::min(limitEdgeLen,
_edgeLen) / limitEdgeLen;
267 return criterionEdgeLen;
277 int iVertexRank = arc->
Rank();
278 bool bIsLoop = arc->
IsLoop();
281 if (iVertexRank == 0)
285 else if ( iVertexRank == 2
292 std::vector<MCEdge *> edges2;
306 unsigned char rgba1[4];
308 unsigned char rgba2[4];
311 if (is_colored2 != is_colored1)
313 else if ( rgba1[0] != rgba2[0] || rgba1[1] != rgba2[1] || rgba1[2] != rgba2[2] || rgba1[3] != rgba2[3])
322 std::vector<MCEdge *> edges;
325 if (edges.size() != 2)
328 for (
int i=0; i<2; i++)
335 if (edgeLength<limitLength)
361 std::ostringstream out;
363 unsigned char rgb[3];
367 std::vector <CovertexCriteria *>::iterator it;
371 out <<
"\nSeparator { #sep1 \n";
372 out <<
"\n Coordinate3 {\n point [ \n";
373 out << point[0] <<
" " << point[1] <<
" " << point[2] <<
" \n";
375 out <<
"PolygonOffset { \n";
376 out <<
"styles POINTS \n";
377 out <<
"factor 5.0 \n";
378 out <<
"units 1.0 \n";
380 out <<
"DrawStyle {\npointSize 6\n}\n";
381 out <<
"BaseColor { \n rgb "<<((double)rgb[0])/255<<
" " <<((double)rgb[1])/255<<
" "<<((double)rgb[2])/255<<
"\n }\n";
382 out <<
"PointSet {\nstartIndex "<<0<<
"\nnumPoints "<<1<<
"\n}\n";
383 out <<
"} # end Sep1 \n";
int MG_TOPO_ccf_identique(MG_ELEMENT_TOPOLOGIQUE *__A, MG_ELEMENT_TOPOLOGIQUE *__B)
static void jetColorMap(unsigned char *rgb, double value, double min, double max)
double SplitScore(double __splitPoint[3])
MCBody * GetMCBody() const
double GetMaxOverdensity()
double GetSize(double xyz[3])
std::set< MCFace * > Edge_GetAdjacentFaces(MCEdge *__mcEdge)
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)
double GetDeviationAngleScore()
double UpdateShapeCriteria()
double GetEdgeLengthScore()
std::vector< CovertexCriteria * > _covertexProps
double GetDeviationAngle()
std::string InventorText()
virtual class MG_COSOMMET * get_cosommet2(void)
virtual class MG_COSOMMET * get_cosommet1(void)
virtual MG_SOMMET * get_sommet(void)
virtual int get_nb_ccf(void)
virtual bool get_valeur_ccf(char *nom, double &val)
virtual void get_type_ccf(int num, char *nom)
virtual void evaluer(double *xyz)=0
virtual MG_POINT * get_point(void)
static double Angle3D_Segment_Segment(double __v0[3], double __v1[3], double __v2[3])
double f(double x, long nb, double *xfonc, double *fonc, double eng, double eni, double lambda, double nor, double *fonc2)