[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