[cgma-dev] r4238 - cgm/trunk/geom/OCC
jiangtao_ma at yahoo.com
jiangtao_ma at yahoo.com
Mon Oct 25 09:21:09 CDT 2010
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();
More information about the cgma-dev
mailing list