[cgma-dev] r5257 - cgm/trunk/geom/OCC

jiangtao_ma at yahoo.com jiangtao_ma at yahoo.com
Mon Dec 12 09:47:41 CST 2011


Author: janehu
Date: 2011-12-12 09:47:39 -0600 (Mon, 12 Dec 2011)
New Revision: 5257

Modified:
   cgm/trunk/geom/OCC/occ_patches_6.5.1
Log:
Temporally fixed the mcnp2cad/INP-complement case, it's been there for quitely a long time that whenever it detected a curve curve intersection at middle point, it came out with a crash for finding next intersection of the intersect function in OCC, the code there said it's impossible, but it quite often happen. I know this might not be a best fix, but by not crash out and allow the flow going on, it returns the next intersection if it indicates so, will file a bug report, don't know if they will accept since it's an internal process, no UI command corresponding to this function.

Modified: cgm/trunk/geom/OCC/occ_patches_6.5.1
===================================================================
--- cgm/trunk/geom/OCC/occ_patches_6.5.1	2011-12-12 05:14:53 UTC (rev 5256)
+++ cgm/trunk/geom/OCC/occ_patches_6.5.1	2011-12-12 15:47:39 UTC (rev 5257)
@@ -92,3 +92,30 @@
    if ((myuinf-U) <= mytolu && (U-myusup) <= mytolu &&
        (myvinf-V) <= mytolv && (V-myvsup) <= mytolv) {
 
+--- TopOpeBRep_EdgesIntersector_1.cxx   2011-12-07 12:06:45.000000000 -0600
++++ ../src/TopOpeBRep/TopOpeBRep_EdgesIntersector_1.cxx 2011-12-07 12:15:44.000000000 -0600
+@@ -215,8 +215,8 @@
+            staB = staINON;
+            staA = staINON;
+          }
+-         else // Middle/Middle is impossible
+-           Standard_Failure::Raise("TopOpeBRep_EdgesIntersector : Situation Unknown MM");
++         //else // Middle/Middle is impossible
++          // Standard_Failure::Raise("TopOpeBRep_EdgesIntersector : Situation Unknown MM");
+        }
+        else { // posother = Head or End
+          Standard_Boolean opposite = IsOpposite1();
+@@ -258,9 +258,9 @@
+          staB = TopAbs_OUT;
+          staA = staINON;
+        }
+-       else {  // Middle is impossible
+-         Standard_Failure::Raise("TopOpeBRep_EdgesIntersector : Situation Unknown M");
+-       }
++       //else {  // Middle is impossible
++         //Standard_Failure::Raise("TopOpeBRep_EdgesIntersector : Situation Unknown M");
++       //}
+       } // point is not a segment point
+
+     } // T.Situation == IntRes2d_Unknown
+


















More information about the cgma-dev mailing list