r4238 - cgm/trunk/geom/OCC
Author: janehu Date: 2010-10-25 09:21:09 -0500 (Mon, 25 Oct 2010) New Revision: 4238 Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp Log: Fixed for fill2 test in mcnp2cad/tests/INP-fill2. Added a check to find arc-curve overlap and made sure if imprinting with a face which has inner loops, first use outer loop to split. Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp =================================================================== --- cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2010-10-22 20:28:40 UTC (rev 4237) +++ cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2010-10-25 14:21:09 UTC (rev 4238) @@ -2307,48 +2307,9 @@ sort_curves(common_curves, temp_edge_lists); DLIList<TopoDS_Edge*>* edge_list; int size = temp_edge_lists.size(); - //if size > 1 , check to make sure they are not outer wire - // and inner wires. - DLIList<CubitBox*> bs; - temp_edge_lists.reset(); - CubitBox box, box1; - for(int i = 0; i < size; i++) - { - edge_list = temp_edge_lists.get_and_step(); - box.reset(box1); - for(int j = 0; j < edge_list->size(); j++) - { - TopoDS_Edge e = *(edge_list->get_and_step()); - int k = OCCQueryEngine::instance()->OCCMap->Find(e); - Curve* curve = NULL; - curve = (Curve*)(OCCQueryEngine::instance()->OccToCGM->find(k))->second; - box |= curve->bounding_box(); - } - bs.append(&box); - } - for(int i = 0; i < bs.size()-1; i++) - { - for(int j = i + 1; j < bs.size(); j ++) - { - if(bs[j] < bs[i]) - { - bs[size] = bs[i]; - bs[i] = bs[j]; - bs[j] = bs[size]; - } - if(bs[i] < bs[j]) - { - temp_edge_lists.step(i); - temp_edge_lists.change_to((DLIList<TopoDS_Edge*>*)NULL); - continue; - } - } - } for(int i = 0; i < size; i++) { - edge_list = temp_edge_lists.pop(); - if(edge_list == NULL) - continue; + edge_list = temp_edge_lists.get_and_step();
participants (1)
-
jiangtao_ma@yahoo.com