Author: janehu Date: 2008-12-12 14:02:20 -0600 (Fri, 12 Dec 2008) New Revision: 2482 Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp cgm/trunk/geom/OCC/OCCQueryEngine.cpp cgm/trunk/geom/OCC/OCCShell.cpp cgm/trunk/geom/OCC/OCCSurface.cpp Log: Fixed for 32-bit build crash. Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp =================================================================== --- cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2008-12-11 21:18:43 UTC (rev 2481) +++ cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2008-12-12 20:02:20 UTC (rev 2482) @@ -3562,8 +3562,10 @@ bool keep_old) const { if(bodies.size() < 2) + { + newBodies = bodies; return CUBIT_SUCCESS; - + } //all bodies must have only one lump in order for boolean operation to work. DLIList<Lump*> lumps; for (int i = 0; i < bodies.size(); i++) Modified: cgm/trunk/geom/OCC/OCCQueryEngine.cpp =================================================================== --- cgm/trunk/geom/OCC/OCCQueryEngine.cpp 2008-12-11 21:18:43 UTC (rev 2481) +++ cgm/trunk/geom/OCC/OCCQueryEngine.cpp 2008-12-12 20:02:20 UTC (rev 2482) @@ -1555,15 +1555,22 @@ OCCLoop* old_loop = old_loops.get_and_step(); DLIList<OCCCoEdge*> test_coedges = old_loop->coedges(); int found = 0; - if(test_coedges.get()->curve() != curve) - test_coedges.step(); - else - found = 1; + for(int j = 0; j < test_coedges.size() ; j++) + { + if(test_coedges.get()->curve() != curve) + test_coedges.step(); + else + { + found = 1; + break; + } + } if(!found) occ_curve->remove_loop(old_loop); } } - assert(occ_curve->loops().size() < 2); + //for unite case, it's possible that the a curve has 3 coedges because + //opencascade do not perform unite on surfaces. coedge = new OCCCoEdge( curve, loop, sense); coedges_new.append(coedge); occ_curve->add_loop(loop); Modified: cgm/trunk/geom/OCC/OCCShell.cpp =================================================================== --- cgm/trunk/geom/OCC/OCCShell.cpp 2008-12-11 21:18:43 UTC (rev 2481) +++ cgm/trunk/geom/OCC/OCCShell.cpp 2008-12-12 20:02:20 UTC (rev 2482) @@ -310,7 +310,7 @@ shape = it.Value(); OCCQueryEngine::instance()->copy_attributes(face, shape); } - shape = shapes.First(); + shape.Nullify() ; } else shape.Nullify(); Modified: cgm/trunk/geom/OCC/OCCSurface.cpp =================================================================== --- cgm/trunk/geom/OCC/OCCSurface.cpp 2008-12-11 21:18:43 UTC (rev 2481) +++ cgm/trunk/geom/OCC/OCCSurface.cpp 2008-12-12 20:02:20 UTC (rev 2482) @@ -929,7 +929,7 @@ shape_edge = it.Value(); OCCQueryEngine::instance()->copy_attributes(edge, shape_edge); } - shape_edge = shapes.First(); + shape_edge.Nullify(); } else if (op->IsDeleted(edge)) shape_edge.Nullify(); @@ -956,7 +956,7 @@ shape_vertex = it.Value(); OCCQueryEngine::instance()->copy_attributes(vertex, shape_vertex); } - shape_vertex = shapes.First(); + shape_vertex.Nullify() ; } else shape_vertex.Nullify();
participants (1)
-
janehu@mcs.anl.gov