[cgma-dev] r5066 - cgm/trunk/geom/OCC
jiangtao_ma at yahoo.com
jiangtao_ma at yahoo.com
Thu Jul 21 11:18:06 CDT 2011
Author: janehu
Date: 2011-07-21 11:18:05 -0500 (Thu, 21 Jul 2011)
New Revision: 5066
Modified:
cgm/trunk/geom/OCC/OCCModifyEngine.cpp
cgm/trunk/geom/OCC/OCCQueryEngine.cpp
cgm/trunk/geom/OCC/OCCQueryEngine.hpp
Log:
Changed unite function to correctly check bounding box intersection, and supporting other code change. Improved rgg/assygen for 7.inp from 3173s to 104 seconds. Passed make check for cgm.
Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp
===================================================================
--- cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2011-07-19 17:57:32 UTC (rev 5065)
+++ cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2011-07-21 16:18:05 UTC (rev 5066)
@@ -2195,6 +2195,7 @@
//indicate if there's more faces to be imprinted
CubitBoolean more_face = CUBIT_TRUE;
DLIList<TopoDS_Face*> list_for_delete;
+ CubitBoolean face_created = CUBIT_FALSE;
//list of face on from_shape that has been imprinted
DLIList<TopoDS_Face*> from_faces;
@@ -2409,7 +2410,10 @@
face = (OCCSurface*)(OCCQueryEngine::instance()->OccToCGM->find(i))->second;
}
else
+ {
+ face_created = CUBIT_TRUE;
face = OCCQueryEngine::instance()->populate_topology_bridge(from_face);
+ }
OCCSurface* occ_face = CAST_TO(face, OCCSurface);
DLIList<Curve*> common_curves;
@@ -2494,6 +2498,7 @@
CubitVector point_on_surf;
occ_face->closest_point_trimmed(p, point_on_surf);
+
if(p.distance_between(point_on_surf) > TOL) //edge not on from_face
{
skipped = CUBIT_TRUE;
@@ -2553,7 +2558,7 @@
added = CUBIT_TRUE;
curve_list.append(curve);
}
- }
+ }
if(added)
{
topo_changed = CUBIT_TRUE;
@@ -2591,7 +2596,12 @@
}
}
}
-
+
+ if(face_created)
+ {
+ OCCQueryEngine::instance()->delete_solid_model_entities(occ_face);
+ face_created = CUBIT_FALSE;
+ }
More information about the cgma-dev
mailing list