[MOAB-dev] r5054 - in MOAB/trunk: MeshFiles/unittest src src/moab
iulian at mcs.anl.gov
iulian at mcs.anl.gov
Tue Jul 12 16:43:23 CDT 2011
Author: iulian
Date: 2011-07-12 16:43:23 -0500 (Tue, 12 Jul 2011)
New Revision: 5054
Modified:
MOAB/trunk/MeshFiles/unittest/polyPB.txt
MOAB/trunk/MeshFiles/unittest/polyline.txt
MOAB/trunk/src/FBEngine.cpp
MOAB/trunk/src/GeomTopoTool.cpp
MOAB/trunk/src/moab/FBEngine.hpp
MOAB/trunk/src/moab/GeomTopoTool.hpp
Log:
add a method to chain gentity edges if topologically possible, and the angle
between tangents is smaller than something (tests are run with acos(0.8)~=
36 degrees)
also, modify the gtt separate_by_dimension method, to properly reset the
dimension ranges after modifications to geometry.
Modified: MOAB/trunk/MeshFiles/unittest/polyPB.txt
===================================================================
--- MOAB/trunk/MeshFiles/unittest/polyPB.txt 2011-07-12 17:32:07 UTC (rev 5053)
+++ MOAB/trunk/MeshFiles/unittest/polyPB.txt 2011-07-12 21:43:23 UTC (rev 5054)
@@ -2,4 +2,5 @@
537200 7680200 -2000.
537800 7680100 -2000.
537700 7680980 -2000.
+537400 7680930 -2000.
537100 7680900 -2000.
Modified: MOAB/trunk/MeshFiles/unittest/polyline.txt
===================================================================
--- MOAB/trunk/MeshFiles/unittest/polyline.txt 2011-07-12 17:32:07 UTC (rev 5053)
+++ MOAB/trunk/MeshFiles/unittest/polyline.txt 2011-07-12 21:43:23 UTC (rev 5054)
@@ -1,4 +1,5 @@
0. 0. 1. 10.
537000 7680445 150.8383
-537500 7680100 -2000.
+537500 7680300 -2000.
+537700 7680400 -2000.
538000 7680446 196.5589
Modified: MOAB/trunk/src/FBEngine.cpp
===================================================================
--- MOAB/trunk/src/FBEngine.cpp 2011-07-12 17:32:07 UTC (rev 5053)
+++ MOAB/trunk/src/FBEngine.cpp 2011-07-12 21:43:23 UTC (rev 5054)
@@ -1328,9 +1328,11 @@
// points_i is on entities_i
// all these edges are oriented correctly
rval = split_surface(face, chainedEdges, splittingNodes, newFace);
-
+ MBERRORR(rval, "can't split surface");
//
- return rval;
+ rval = chain_edges(0.8); // acos(0.8)~= 36 degrees
+ MBERRORR(rval, "can't chain edges");
+ return MB_SUCCESS;
}
/**
* this method splits along the polyline defined by points and entities
@@ -3172,6 +3174,232 @@
return MB_SUCCESS;
}
+// a reverse operation for splitting an gedge at a mesh node
+ErrorCode FBEngine::chain_edges(double min_dot)
+{
+ Range sets[4];
+ ErrorCode rval;
+ while (1)// break out only if no edges are chained
More information about the moab-dev
mailing list