[cgma-dev] r4256 - cgm/trunk/geom/OCC
jiangtao_ma at yahoo.com
jiangtao_ma at yahoo.com
Tue Nov 9 10:34:38 CST 2010
Author: janehu
Date: 2010-11-09 10:34:38 -0600 (Tue, 09 Nov 2010)
New Revision: 4256
Modified:
cgm/trunk/geom/OCC/OCCBody.cpp
cgm/trunk/geom/OCC/OCCBody.hpp
cgm/trunk/geom/OCC/OCCCurve.cpp
cgm/trunk/geom/OCC/OCCCurve.hpp
cgm/trunk/geom/OCC/OCCLump.cpp
cgm/trunk/geom/OCC/OCCLump.hpp
cgm/trunk/geom/OCC/OCCModifyEngine.cpp
cgm/trunk/geom/OCC/OCCPoint.cpp
cgm/trunk/geom/OCC/OCCPoint.hpp
cgm/trunk/geom/OCC/OCCQueryEngine.cpp
cgm/trunk/geom/OCC/OCCSurface.cpp
cgm/trunk/geom/OCC/OCCSurface.hpp
Log:
Changed attributes on single lump body to be held within body, when exporting, append it to its lump and when importing, add back to body. Should work the same way as CGM with ACIS. Fixed some momory leaking problems. All testcases passed under make check.
Modified: cgm/trunk/geom/OCC/OCCBody.cpp
===================================================================
--- cgm/trunk/geom/OCC/OCCBody.cpp 2010-11-08 17:20:37 UTC (rev 4255)
+++ cgm/trunk/geom/OCC/OCCBody.cpp 2010-11-09 16:34:38 UTC (rev 4256)
@@ -35,6 +35,7 @@
#include "OCCShell.hpp"
#include "OCCLump.hpp"
#include "OCCModifyEngine.hpp"
+#include "OCCAttribSet.hpp"
#include <TopExp.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
@@ -194,23 +195,12 @@
OCCAttribSet::append_attribute(csa, *myTopoDSShape);
return;
}
- int i = 0;
- for (i; i < mySheetSurfaces.size();i++)
- {
- TopoDS_Face * face = mySheetSurfaces.get_and_step()->get_TopoDS_Face();
- OCCAttribSet::append_attribute(csa, *face);
- }
- for(i = 0; i < myShells.size(); i++)
- {
- TopoDS_Shell* shell = myShells.get_and_step()->get_TopoDS_Shell();
- OCCAttribSet::append_attribute(csa, *shell);
- }
- for(i = 0; i < myLumps.size(); i++)
- {
- OCCLump* lump = CAST_TO(myLumps.get_and_step(), OCCLump);
- TopoDS_Solid* solid = lump->get_TopoDS_Solid();
- OCCAttribSet::append_attribute(csa, *solid);
- }
+ DLIList<CubitString*> *string_list = csa->string_data_list();
+ DLIList<double*> *doubles = csa->double_data_list();
+ DLIList<int*> *ints = csa->int_data_list();
+ CubitSimpleAttrib* csa_new = new CubitSimpleAttrib;
+ csa_new->initialize_from_lists_of_ptrs(string_list, doubles, ints);
+ csa_list.append_unique(csa_new);
}
void OCCBody::remove_simple_attribute_virt(CubitSimpleAttrib *csa)
@@ -220,74 +210,50 @@
OCCAttribSet::remove_attribute(csa, *myTopoDSShape);
return;
}
- for(int i = 0; i < myShells.size(); i++)
+
+ if (csa == NULL)
{
- TopoDS_Shell* shell = myShells.get_and_step()->get_TopoDS_Shell();
More information about the cgma-dev
mailing list