Author: janehu Date: 2010-11-10 11:52:44 -0600 (Wed, 10 Nov 2010) New Revision: 4259 Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp Log: Fix for mcnp2cad/tests/hexlat. The qualified points could be more than 2, so change to use a DLIList instead of using an array of two. Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp =================================================================== --- cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2010-11-09 21:38:43 UTC (rev 4258) +++ cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2010-11-10 17:52:44 UTC (rev 4259) @@ -2704,7 +2704,7 @@ gp_Pnt pt1(0,0,0), pt2(0,0,0); gp_Pnt intsec_pnt[2] = {pt1, pt2} ; - for(int j = 0; j < edge_list->size(); j++) + for(int kk = 0; kk < edge_list->size(); kk++) { TopoDS_Edge* edge = edge_list->get_and_step(); BRepAdaptor_Curve acurve(*edge); @@ -2720,7 +2720,9 @@ double lower_bound2 = acurve2.FirstParameter(); double upper_bound2 = acurve2.LastParameter(); BRepExtrema_DistShapeShape distShapeShape(*edge, from_edge); - CubitBoolean qualified[2] = {CUBIT_FALSE, CUBIT_FALSE}; + DLIList<CubitBoolean> qualified; + //CubitBoolean qualified[2] = {CUBIT_FALSE, CUBIT_FALSE}; + if (distShapeShape.IsDone() && distShapeShape.Value() < TOL) { newP[0] = distShapeShape.PointOnShape1(1); @@ -2737,7 +2739,7 @@ if ((newVal[j]-lower_bound) >= -TOL && (upper_bound - newVal[j]) >= -TOL) { - qualified[j] = CUBIT_TRUE; + qualified.append(CUBIT_TRUE); break; } } @@ -2746,9 +2748,9 @@ } for(int j = 0; j < distShapeShape.NbSolution(); j++) { - if (qualified[j]) + if (qualified.get()) { - qualified[j] = CUBIT_FALSE; + qualified.change_to( CUBIT_FALSE ); Extrema_ExtPC ext(newP[j], acurve2, Precision::Approximation()); double newVal; if (ext.IsDone() && (ext.NbExt() > 0)) { @@ -2758,17 +2760,18 @@ if ((newVal-lower_bound2) >= -TOL && (upper_bound2 - newVal) >= -TOL) { - qualified[j] = CUBIT_TRUE; + qualified.change_to( CUBIT_TRUE);
participants (1)
-
jiangtao_ma@yahoo.com