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

smithrm at mcs.anl.gov smithrm at mcs.anl.gov
Wed Sep 22 12:19:32 CDT 2010


Author: smithrm
Date: 2010-09-22 12:19:32 -0500 (Wed, 22 Sep 2010)
New Revision: 4137

Added:
   cgm/trunk/geom/OCC/occ_patches
Log:
Patch file for updating OCC distribution to correct issues with CGM tests.


Added: cgm/trunk/geom/OCC/occ_patches
===================================================================
--- cgm/trunk/geom/OCC/occ_patches	                        (rev 0)
+++ cgm/trunk/geom/OCC/occ_patches	2010-09-22 17:19:32 UTC (rev 4137)
@@ -0,0 +1,67 @@
+--- ros/src/Extrema/Extrema_ExtPElS.cxx	2002-04-23 11:10:21.000000000 -0500
++++ /home/jhu/occ6.3/OpenCASCADE6.3.0/ros/src/Extrema/Extrema_ExtPElS.cxx	2008-10-08 12:56:22.000000000 -0500
+@@ -311,6 +311,7 @@
+   gp_Vec myZ = Pos.XDirection()^Pos.YDirection();
+   Standard_Real U1 = gp_Vec(Pos.XDirection()).AngleWithRef(OPp,myZ);
+   Standard_Real U2 = U1 + PI;
++  if(U1 > -Tol && U1 < 0.) {U1 = 0.;}
+   if (U1 < 0.) { U1 += 2. * PI; }
+   gp_Vec OO1 = OPp.Divided(R).Multiplied(S.MajorRadius());
+   gp_Vec OO2 = OO1.Multiplied(-1.);
+@@ -322,6 +323,8 @@
+ 
+   Standard_Real V1 = OO1.AngleWithRef(gp_Vec(O1,P),OO1.Crossed(OZ));
+   Standard_Real V2 = OO2.AngleWithRef(gp_Vec(P,O2),OO2.Crossed(OZ));
++  if(V1 > -Tol && V1 < 0.){ V1 = 0.;}
++  if(V2 > -Tol && V2 < 0.){ V2 = 0.;}
+   if (V1 < 0.) { V1 += 2. * PI; }
+   if (V2 < 0.) { V2 += 2. * PI; }
+ 
+--- ros/src/Extrema/Extrema_ExtPS.cxx	2007-08-28 13:06:46.000000000 -0500
++++ /home/jhu/occ6.3/OpenCASCADE6.3.0/ros/src/Extrema/Extrema_ExtPS.cxx	2008-10-09 14:13:13.000000000 -0500
+@@ -88,10 +88,18 @@
+   Standard_Real U, V;
+   PS.Parameter(U, V);
+   if (myS->IsUPeriodic()) {
+-    U = ElCLib::InPeriod(U, myuinf, myuinf+myS->UPeriod());
++    Standard_Real Uupper = myuinf+myS->UPeriod();
++    if(U>(myuinf-mytolu) && U < myuinf) U = myuinf;
++    else if(U < (Uupper+mytolu) && U > Uupper) U = Uupper;
++    else
++      U = ElCLib::InPeriod(U, myuinf, myuinf+myS->UPeriod());
+   }
+   if (myS->IsVPeriodic()) {
+-    V = ElCLib::InPeriod(V, myvinf, myvinf+myS->VPeriod());
++    Standard_Real Vupper = myvinf+myS->VPeriod();
++    if(V>(myvinf-mytolv) && V < myvinf) V = myvinf;
++    else if(V < (Vupper+mytolv) && V > Vupper) V = Vupper;
++    else
++      V = ElCLib::InPeriod(V, myvinf, myvinf+myS->VPeriod());
+   }
+   if ((myuinf-U) <= mytolu && (U-myusup) <= mytolu &&
+       (myvinf-V) <= mytolv && (V-myvsup) <= mytolv) {
+
+--- ros/src/BRepClass/BRepClass_FaceClassifier.cxx	2007-08-28 13:06:44.000000000 -0500
++++ src/BRepClass/BRepClass_FaceClassifier.cxx	2008-01-16 10:25:36.000000000 -0600
+@@ -55,6 +55,7 @@


More information about the cgma-dev mailing list