Changeset 3236
- Timestamp:
- 03/09/10 15:23:47 (15 years ago)
- Location:
- issm/trunk/src/c/Bamgx
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Bamgx/BamgObjects.h
r3233 r3236 28 28 #include "objects/Triangles.h" 29 29 #include "objects/Geometry.h" 30 31 #include "shared/shared.h" 30 32 31 33 namespace bamg { … … 160 162 return TriangleAdjacent(0,0);//for compiler 161 163 } 162 inline Vertex* TheVertex(Vertex * a){163 // give a unique vertex with smallest number164 // in case on crack in mesh165 Vertex * r(a), *rr;166 Triangle * t = a->t;167 int i = a->vint;168 TriangleAdjacent ta(t,EdgesVertexTriangle[i][0]); // Previous edge169 if (!t || i<0 || i>=3){170 throw ErrorException(__FUNCT__,exprintf("!t || i<0 !! i>=3"));171 }172 if ( a!=(*t)(i)){173 throw ErrorException(__FUNCT__,exprintf("a!=(*t)(i)"));174 }175 int k=0;176 do { // turn around vertex in direct sens (trigo)177 k++;178 if (k>=20000){179 throw ErrorException(__FUNCT__,exprintf("k>=20000"));180 }181 // in no crack => ta.EdgeVertex(1) == a182 if ((rr=ta.EdgeVertex(0)) < r) r = rr;183 ta = ta.Adj();184 if ((rr=ta.EdgeVertex(1)) < r) r =rr;185 --ta;186 } while (t != (Triangle*) ta);187 return r;188 }189 190 164 /*}}}1*/ 191 165 … … 271 245 else if (TriaAdjSharedEdge[0] & 16 || TriaAdjSharedEdge[1] & 16 || TriaAdjSharedEdge[2] & 16 || t->TriaAdjSharedEdge[0] & 16 || t->TriaAdjSharedEdge[1] & 16 || t->TriaAdjSharedEdge[2] & 16 ) 272 246 q= -1; 273 else if(option) 274 { 247 else if(option){ 275 248 const Vertex & v2 = *TriaVertices[VerticesOfTriangularEdge[a][0]]; 276 249 const Vertex & v0 = *TriaVertices[VerticesOfTriangularEdge[a][1]]; … … 278 251 const Vertex & v3 = * t->TriaVertices[OppositeEdge[TriaAdjSharedEdge[a]&3]]; 279 252 q = QuadQuality(v0,v1,v2,v3); // do the float part 280 253 } 281 254 else q= 1; 282 255 } -
issm/trunk/src/c/Bamgx/objects/CrackedEdge.h
r3232 r3236 12 12 #include "Edge.h" 13 13 #include "Triangle.h" 14 #include "../shared/TheVertex.h" 14 15 15 16 namespace bamg { -
issm/trunk/src/c/Bamgx/objects/Vertex.cpp
r3234 r3236 92 92 Real8 qold =QuadQuality(*v0,*v1,*v2,*v3); 93 93 vP = vPnew; 94 Real8 qnew = 94 Real8 qnew =QuadQuality(*v0,*v1,*v2,*v3); 95 95 if (qnew<qold) ok = 1; 96 96 } -
issm/trunk/src/c/Bamgx/objects/Vertex.h
r3232 r3236 52 52 inline Int4 Optim(int =1,int =0); 53 53 inline void Set(const Vertex & rec,const Triangles &,Triangles &); 54 55 56 54 }; 57 55 58 56 //FOR NOW (WARNING) 59 inline Vertex* TheVertex(Vertex * a); // for remove crak in mesh60 57 double QuadQuality(const Vertex &,const Vertex &,const Vertex &,const Vertex &); 61 58 } -
issm/trunk/src/c/Bamgx/shared/shared.h
r3234 r3236 15 15 #include "SwapForForcingEdge.h" 16 16 #include "swap.h" 17 #include "TheVertex.h" 17 18 18 19 #endif -
issm/trunk/src/c/Bamgx/shared/swap.h
r3234 r3236 13 13 namespace bamg { 14 14 15 //class Vertex;16 //class Triangle;17 18 15 void swap(Triangle *t1,Int1 a1, Triangle *t2,Int1 a2, Vertex *s1,Vertex *s2,Icoor2 det1,Icoor2 det2); 19 16
Note:
See TracChangeset
for help on using the changeset viewer.