[cgma-dev] r1773 - cgm/trunk/geom/OCC
janehu at mcs.anl.gov
janehu at mcs.anl.gov
Tue Apr 22 14:30:00 CDT 2008
Author: janehu
Date: 2008-04-22 14:30:00 -0500 (Tue, 22 Apr 2008)
New Revision: 1773
Modified:
cgm/trunk/geom/OCC/OCCModifyEngine.cpp
cgm/trunk/geom/OCC/OCCQueryEngine.cpp
cgm/trunk/geom/OCC/OCCQueryEngine.hpp
Log:
worked on interface of stitch_surf into a shell body or into a solid body.
Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp
===================================================================
--- cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2008-04-21 19:49:42 UTC (rev 1772)
+++ cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2008-04-22 19:30:00 UTC (rev 1773)
@@ -1016,7 +1016,7 @@
if (surface_list.size() < 2)
return (Lump*) NULL;
- //all surfaces should be stand along surface bodies
+ //all surfaces should be stand along surface bodies or shell bodies' surface
DLIList<BodySM*> body_list;
for(int i = 0; i < surface_list.size(); i++)
{
@@ -1028,18 +1028,33 @@
return (Lump *)NULL;
}
OCCBody* occ_body = occ_surface->my_body();
- if(occ_body->my_sheet_surface() == NULL)
+ if(occ_body && occ_body->my_sheet_surface() == NULL)
{
PRINT_ERROR("Cannot create an OCC lump from the given surfaces.\n"
"The surfaces are not free.\n");
- return (Lump *)NULL;
+ return (Lump *)NULL;
}
- body_list.append(occ_body);
+ else if(!occ_body)
+ {
+ OCCShell* shell = occ_surface->my_shell();
+ if(!shell)
+ {
+ PRINT_ERROR("This is a bug, please report it. \n");
+ return (Lump*)NULL;
+ }
+ occ_body = shell->my_body();
+ }
+ body_list.append_unique(occ_body);
}
TopoDS_Shape aShape;
CubitStatus stat = stitch_surfs(body_list, aShape);
-
+ if(!stat)
+ {
+ PRINT_ERROR("The surfaces are not all connected, can't make a lump. \n");
+ return (Lump*)NULL;
+ }
+
TopExp_Explorer Ex, Ex2;
TopoDS_Shell aShell ;
for (Ex.Init(aShape, TopAbs_SHELL, TopAbs_SOLID); Ex.More()&& stat; Ex.Next())
@@ -1052,7 +1067,7 @@
{
TopoDS_Edge edge1 = TopoDS::Edge(Ex.Current());
num_edges++;
- for (Ex2.Init(aShell, TopAbs_EDGE); Ex2.More()&& stat; Ex2.Next())
+ for (Ex2.Init(aShell, TopAbs_EDGE); Ex2.More(); Ex2.Next())
{
TopoDS_Edge edge2 = TopoDS::Edge(Ex2.Current());
if (!edge1.IsEqual(edge2)&& edge1.IsSame(edge2))
@@ -1080,9 +1095,6 @@
TopoDS_Solid aSolid = aMakeSolid.Solid();
- int num_edge = 0;
- for (Ex.Init(aSolid, TopAbs_EDGE); Ex.More()&& stat; Ex.Next())
- num_edge++;
return
OCCQueryEngine::instance()->populate_topology_bridge(aSolid, CUBIT_TRUE);
}
@@ -1163,26 +1175,10 @@
}
TopoDS_Solid* solid = occ_lump->get_TopoDS_Solid();
B.Add(CS, *solid);
-
- BodySM* bodysm_ptr = occ_lump->get_body();
- if(bodysm_ptr == NULL)
- continue;
-
- bodysm_list.append_unique(bodysm_ptr);
}
BodySM* bodysm = OCCQueryEngine::instance()->populate_topology_bridge(CS);
- if(bodysm)
- {
- //remove each Lump's body from the BodyList
- for(int i = 0; i < bodysm_list.size(); i++)
- {
- BodySM* bodysm_ptr = bodysm_list.get_and_step();
-
- OCCQueryEngine::instance()->unhook_BodySM_from_OCC(bodysm_ptr);
- }
- }
return bodysm;
}
@@ -1517,34 +1513,36 @@
//===============================================================================
CubitStatus OCCModifyEngine::stitch_surfs(
DLIList<BodySM*>& surf_bodies,
- BodySM*& stitched_body) const
+ BodySM*& new_body) const
{
- stitched_body = NULL;
if (surf_bodies.size()==0)
return CUBIT_SUCCESS;
if (surf_bodies.size()==1)
{
- stitched_body = surf_bodies.get();
+ new_body = surf_bodies.get();
return CUBIT_SUCCESS;
}
TopoDS_Shape fuse;
CubitStatus stat = stitch_surfs(surf_bodies, fuse);
- if (stat == CUBIT_FAILURE)
- return stat;
-
+
DLIList<TopologyBridge*> tbs = OCCQueryEngine::instance()->
populate_topology_bridge(fuse);
- OCCBody* body = CAST_TO(tbs.get(), OCCBody);
- if (body)
- stitched_body = body ;
+ if (stat)
+ {
+ OCCBody* body = CAST_TO(tbs.get(), OCCBody);
+
+ if (body)
+ new_body = body ;
+ }
+
else
{
- OCCSurface* face = CAST_TO(tbs.get(), OCCSurface);
- if(face)
- stitched_body = face->my_body();
+ surf_bodies.clean_out();
+ for(int i= 0; i<tbs.size(); i++)
+ surf_bodies.append(CAST_TO(tbs.get_and_step(), OCCBody));
}
return CUBIT_SUCCESS;
@@ -1566,16 +1564,26 @@
return CUBIT_SUCCESS;
DLIList<TopoDS_Face*> faces_to_stitch;
+ DLIList<OCCSurface*> surfaces;
for (int i = 0; i < surf_bodies.size(); i++)
{
BodySM * tool_body = surf_bodies.get_and_step();
OCCBody* occ_body = CAST_TO(tool_body, OCCBody);
OCCSurface* surface = occ_body->my_sheet_surface();
+ OCCShell* shell = occ_body->shell();
if (surface == NULL)
{
PRINT_ERROR("Can't stitch non-sheet bodySM's. \n");
return CUBIT_FAILURE;
}
+ surfaces.append(surface);
+
+ delete occ_body;
+ delete surface->my_shell();
+ delete surface->my_lump();
+ surface->set_shell(NULL);
+ surface->set_lump(NULL);
+ surface->set_body(NULL);
TopoDS_Face* topods_face = surface->get_TopoDS_Face();
if (topods_face != NULL)
faces_to_stitch.append(topods_face);
@@ -1590,8 +1598,8 @@
{
second_face = faces_to_stitch[i];
BRepAlgoAPI_Fuse fuser(*second_face, *first_face);
- OCCBody* occ_body = CAST_TO(surf_bodies[i], OCCBody);
- occ_body->my_sheet_surface()->update_OCC_entity(NULL, &fuser);
+ OCCSurface* surface = surfaces[i];
+ surface->update_OCC_entity(NULL, &fuser);
TopoDS_Shape new_shape ;
TopTools_IndexedMapOfShape M;
TopExp::MapShapes(*first_face, TopAbs_FACE, M);
@@ -3018,15 +3026,54 @@
//===============================================================================
// Function : create_body_from_surfs
// Member Type: PUBLIC
-// Description:
-// Author : Steve Owen
-// Date : 9/11/03
+// Description:
+// Author : Jane Hu
+// Date : 4/22/08
//===============================================================================
CubitStatus OCCModifyEngine::create_solid_bodies_from_surfs(DLIList<Surface*> & ref_face_list,
DLIList<BodySM*>& new_bodies,
bool keep_old,
bool heal) const
{
+ //keep_old and heal are ignored, always delete old.
+ //all surfaces should be stand along surface bodies or shell bodies' surface
+ DLIList<BodySM*> body_list;
+ for(int i = 0; i < ref_face_list.size(); i++)
+ {
+ OCCSurface* occ_surface = CAST_TO(ref_face_list.get_and_step(), OCCSurface);
+ if (occ_surface == NULL)
+ {
+ PRINT_ERROR("Cannot create an OCC lump from the given surfaces.\n"
+ "Possible incompatible geometry engines.\n");
+ return CUBIT_FAILURE;
+ }
+ OCCBody* occ_body = occ_surface->my_body();
+ if(occ_body && occ_body->my_sheet_surface() == NULL)
+ {
+ PRINT_ERROR("Cannot create an OCC lump from the given surfaces.\n"
+ "The surfaces are not free.\n");
+ return CUBIT_FAILURE;
+ }
+ else if(!occ_body)
+ {
+ OCCShell* shell = occ_surface->my_shell();
+ if(!shell)
+ {
+ PRINT_ERROR("This is a bug, please report it. \n");
+ return CUBIT_FAILURE;
+ }
+ occ_body = shell->my_body();
+ }
+ body_list.append_unique(occ_body);
+ }
+
+ BodySM* new_body = NULL;
+ CubitStatus stat = stitch_surfs(body_list,new_body);
+ if (!new_body)
+ new_bodies = body_list;
+ else
+ new_bodies.append(new_body);
+
return CUBIT_SUCCESS;
}
Modified: cgm/trunk/geom/OCC/OCCQueryEngine.cpp
===================================================================
--- cgm/trunk/geom/OCC/OCCQueryEngine.cpp 2008-04-21 19:49:42 UTC (rev 1772)
+++ cgm/trunk/geom/OCC/OCCQueryEngine.cpp 2008-04-22 19:30:00 UTC (rev 1773)
@@ -1404,7 +1404,11 @@
{
if (remove_lower_entities)
return ( this->delete_solid_model_entities(ref_face_ptr) );
- return ( this->unhook_Surface_from_OCC(ref_face_ptr));
+ TopoDS_Face *face = NULL;
+ CubitStatus stat = this->unhook_Surface_from_OCC(ref_face_ptr, face);
+ if(stat)
+ delete face;
+ return stat;
}
// Curve
@@ -1413,7 +1417,11 @@
{
if (remove_lower_entities)
return ( this->delete_solid_model_entities(ref_edge_ptr));
- return ( this->unhook_Curve_from_OCC(ref_edge_ptr));
+ TopoDS_Edge *edge = NULL;
+ CubitStatus stat = this->unhook_Curve_from_OCC(ref_edge_ptr, edge);
+ if(stat)
+ delete edge;
+ return stat;
}
// Point
@@ -1460,30 +1468,66 @@
{
delete occ_shell->my_body();
delete occ_shell->my_lump();
- return unhook_ShellSM_from_OCC(occ_shell);
+ TopoDS_Shell* Shell;
+ CubitStatus stat = unhook_ShellSM_from_OCC(occ_shell,Shell);
+ DLIList<TopologyBridge*> tb_surfaces;
+ occ_shell->get_children_virt(tb_surfaces);
+ for(int k = 0; k < tb_surfaces.size(); k++)
+ delete_solid_model_entities(CAST_TO(tb_surfaces.get_and_step(), Surface));
+ if(Shell)
+ delete Shell;
+ return stat;
}
+ TopoDS_Shape* shape = NULL;
+ CubitStatus stat = unhook_BodySM_from_OCC(bodysm, shape);
+
+ DLIList<TopologyBridge*> children;
DLIList<Lump*> lumps = occ_body->lumps();
+ DLIList<TopoDS_Shell*> Shell_list;
+
for(int i =0; i < lumps.size(); i++)
{
Lump* lump = lumps.get_and_step();
OCCLump* occ_lump = CAST_TO(lump, OCCLump);
- if (occ_lump)
- occ_lump->remove_body();
- unhook_Lump_from_OCC(lump);
+ if (!occ_lump)
+ continue;
+ children.clean_out();
+ occ_lump->get_children_virt(children);
+ for(int j = 0; j < children.size(); j++)
+ {
+ ShellSM* shell = CAST_TO(children.get_and_step(), ShellSM);
+
+ TopoDS_Shell* Shell = CAST_TO(shell, OCCShell)->get_TopoDS_Shell();
+ if (Shell)
+ Shell_list.append(Shell);
+ DLIList<TopologyBridge*> tb_surfaces;
+ shell->get_children_virt(tb_surfaces);
+ for(int k = 0; k < tb_surfaces.size(); k++)
+ delete_solid_model_entities(CAST_TO(tb_surfaces.get_and_step(), Surface));
+ }
+
+ for(int j = 0; j < Shell_list.size(); j++)
+ delete Shell_list.pop();
+
+ TopoDS_Solid* solid = occ_lump->get_TopoDS_Solid();
+ delete solid;
}
- return unhook_BodySM_from_OCC(bodysm);
+ if(shape)
+ delete shape;
+ return stat;
}
CubitStatus
-OCCQueryEngine::unhook_BodySM_from_OCC( BodySM* bodysm)const
+OCCQueryEngine::unhook_BodySM_from_OCC( BodySM* bodysm,
+ TopoDS_Shape*& shape)const
{
OCCBody* occ_body = dynamic_cast<OCCBody*>(bodysm);
if (!occ_body)
return CUBIT_FAILURE;
- TopoDS_Shape* shape = occ_body->get_TopoDS_Shape();
+ shape = occ_body->get_TopoDS_Shape();
if (!shape)
return CUBIT_FAILURE;
@@ -1503,15 +1547,25 @@
if(!OccToCGM->erase(k))
PRINT_ERROR("The OccBody and TopoDS_Shape pair is not in the map!");
}
- DLIList<Lump*> lumps;
- occ_body->lumps(lumps);
if (occ_body_find)
BodyList->remove(occ_body_find);
else
BodyList->remove(occ_body);
- //delete shape;
- delete shape;
+
+ DLIList<Lump*> lumps = occ_body->lumps();
+ for(int i =0; i < lumps.size(); i++)
+ {
+ Lump* lump = lumps.get_and_step();
+ OCCLump* occ_lump = CAST_TO(lump, OCCLump);
+ if (occ_lump)
+ occ_lump->remove_body();
+
+ TopoDS_Solid* solid;
+ unhook_Lump_from_OCC(lump, solid);
+ }
+
delete bodysm;
+ return CUBIT_SUCCESS;
}
//-------------------------------------------------------------------------
@@ -1524,7 +1578,7 @@
// Creation Date : 11/29/07
//-------------------------------------------------------------------------
CubitStatus
-OCCQueryEngine::unhook_Lump_from_OCC( Lump* lump ) const
+OCCQueryEngine::unhook_Lump_from_OCC( Lump* lump, TopoDS_Solid*& solid ) const
{
if (lump == NULL)
return CUBIT_FAILURE;
@@ -1533,7 +1587,7 @@
if (!occ_lump)
return CUBIT_FAILURE;
- TopoDS_Solid* solid = occ_lump->get_TopoDS_Solid();
+ solid = occ_lump->get_TopoDS_Solid();
if(!solid)
return CUBIT_FAILURE;
@@ -1556,11 +1610,11 @@
for(int i = 0; i < children.size(); i++)
{
ShellSM* shell = CAST_TO(children.get_and_step(), ShellSM);
- unhook_ShellSM_from_OCC(shell);
+ TopoDS_Shell* Shell;
+ unhook_ShellSM_from_OCC(shell,Shell);
}
if (occ_lump->get_body() != NULL)
BodyList->remove(CAST_TO(occ_lump->get_body(), OCCBody));
- delete solid;
delete lump;
return CUBIT_SUCCESS;
}
@@ -1575,13 +1629,14 @@
// Creation Date : 12/12/07
//-------------------------------------------------------------------------
CubitStatus
-OCCQueryEngine::unhook_ShellSM_from_OCC( ShellSM* shell ) const
+OCCQueryEngine::unhook_ShellSM_from_OCC( ShellSM* shell,
+ TopoDS_Shell*& Shell ) const
{
OCCShell* occ_shell = dynamic_cast<OCCShell*>(shell);
if (!occ_shell)
return CUBIT_FAILURE;
- TopoDS_Shell* Shell = occ_shell->get_TopoDS_Shell();
+ Shell = occ_shell->get_TopoDS_Shell();
if(!Shell)
return CUBIT_FAILURE;
@@ -1599,14 +1654,6 @@
PRINT_ERROR("The OccSurface and TopoDS_Face pair is not in the map!");
}
- DLIList<TopologyBridge*> children;
- occ_shell->get_children_virt(children);
- for(int i = 0; i < children.size(); i++)
- {
- Surface* surface = CAST_TO(children.get_and_step(), Surface);
- delete_solid_model_entities(surface);
- }
- delete Shell;
delete shell;
return CUBIT_SUCCESS;
}
@@ -1634,9 +1681,11 @@
LoopSM* loop = CAST_TO(children.get_and_step(), LoopSM);
delete_loop(loop);
}
-
- return unhook_Surface_from_OCC(surface);
-
+ TopoDS_Face* face;
+ CubitStatus stat = unhook_Surface_from_OCC(surface, face);
+ if (stat)
+ delete face;
+ return stat;
}
//-------------------------------------------------------------------------
@@ -1649,13 +1698,14 @@
// Creation Date : 12/12/07
//-------------------------------------------------------------------------
CubitStatus
-OCCQueryEngine::unhook_Surface_from_OCC( Surface* surface ) const
+OCCQueryEngine::unhook_Surface_from_OCC( Surface* surface,
+ TopoDS_Face*& face ) const
{
OCCSurface* fsurf = dynamic_cast<OCCSurface*>(surface);
if (!fsurf)
return CUBIT_FAILURE;
- TopoDS_Face* face = fsurf->get_TopoDS_Face();
+ face = fsurf->get_TopoDS_Face();
if(!face)
return CUBIT_FAILURE;
@@ -1675,7 +1725,6 @@
PRINT_WARNING("The OccSurface and TopoDS_Face pair is not in the map!");
}
- delete face;
delete surface;
return CUBIT_SUCCESS;
}
@@ -1707,17 +1756,60 @@
if (occ_curve == NULL)
continue;
+ delete_solid_model_entities(curve);
+ }
+
+ TopoDS_Wire* wire;
+ CubitStatus status = unhook_LoopSM_from_OCC(loopsm, wire);
+ if (status)
+ delete wire;
+ return status;
+}
+
+//-------------------------------------------------------------------------
+// Purpose : unhook a LoopSM from its underlining OCC entity.
+//
+// Special Notes :
+//
+// Creator : Jane Hu
+//
+// Creation Date : 12/12/07
+//-------------------------------------------------------------------------
+CubitStatus
+OCCQueryEngine::unhook_LoopSM_from_OCC( LoopSM* loopsm,
+ TopoDS_Wire*& wire ) const
+{
+ OCCLoop* occ_loop = dynamic_cast<OCCLoop*>(loopsm);
+ if (!occ_loop)
+ return CUBIT_FAILURE;
+
+ wire = occ_loop->get_TopoDS_Wire();
+
+ if(!wire)
+ return CUBIT_FAILURE;
+
+ DLIList<OCCCoEdge*> children;
+ children = occ_loop->coedges();
+ int size = children.size();
+ while(size > 0)
+ {
+ OCCCoEdge* coedge = children.pop();
+ Curve* curve = coedge->curve();
+ OCCCurve *occ_curve = CAST_TO(curve, OCCCurve);
+ if (occ_curve == NULL)
+ continue;
+
DLIList<OCCLoop*> loops;
-
+
//remove all coedges corresponding to this curve from their loops.
loops = occ_curve->loops();
for(int j = 0; j < loops.size(); j++)
{
OCCLoop* occ_loop = loops.get_and_step();
- OCCCoEdge* found_coedge = occ_loop->remove_coedge(coedge);
+ OCCCoEdge* found_coedge = occ_loop->remove_coedge(coedge);
if (found_coedge)
- delete found_coedge;
+ delete found_coedge;
//there might be 2 coedges in the same loop that uses the same curve
//as in a scar curve situation
@@ -1727,40 +1819,15 @@
found_coedge = coedges.get_and_step();
if (CAST_TO(found_coedge->curve(), OCCCurve) == occ_curve)
{
- occ_loop->remove_coedge(found_coedge);
+ occ_loop->remove_coedge(found_coedge);
children.remove(found_coedge);
delete found_coedge;
}
}
}
size = children.size();
- delete_solid_model_entities(curve);
}
-
- return unhook_LoopSM_from_OCC(loopsm);
-}
-//-------------------------------------------------------------------------
-// Purpose : unhook a LoopSM from its underlining OCC entity.
-//
-// Special Notes :
-//
-// Creator : Jane Hu
-//
-// Creation Date : 12/12/07
-//-------------------------------------------------------------------------
-CubitStatus
-OCCQueryEngine::unhook_LoopSM_from_OCC( LoopSM* loopsm ) const
-{
- OCCLoop* occ_loop = dynamic_cast<OCCLoop*>(loopsm);
- if (!occ_loop)
- return CUBIT_FAILURE;
-
- TopoDS_Wire* wire = occ_loop->get_TopoDS_Wire();
-
- if(!wire)
- return CUBIT_FAILURE;
-
//remove the entry from the map
int k;
if(OCCMap->IsBound(*wire))
@@ -1775,7 +1842,6 @@
}
WireList->remove(CAST_TO(loopsm, OCCLoop));
- delete wire;
delete loopsm;
return CUBIT_SUCCESS;
}
@@ -1803,8 +1869,12 @@
Point* point = CAST_TO(children.get_and_step(), Point);
delete_solid_model_entities(point);
}
-
- return unhook_Curve_from_OCC(curve);
+
+ TopoDS_Edge* edge;
+ CubitStatus stat = unhook_Curve_from_OCC(curve, edge);
+ if (stat)
+ delete edge;
+ return stat;
}
//-------------------------------------------------------------------------
@@ -1817,14 +1887,14 @@
// Creation Date : 12/12/07
//-------------------------------------------------------------------------
CubitStatus
-OCCQueryEngine::unhook_Curve_from_OCC( Curve* curve ) const
+OCCQueryEngine::unhook_Curve_from_OCC( Curve* curve, TopoDS_Edge*& edge ) const
{
OCCCurve* fcurve = dynamic_cast<OCCCurve*>(curve);
if (!fcurve )
return CUBIT_FAILURE;
fcurve->clean_loops();
- TopoDS_Edge * edge = fcurve->get_TopoDS_Edge();
+ edge = fcurve->get_TopoDS_Edge();
if (!edge)
return CUBIT_FAILURE;
@@ -1841,7 +1911,6 @@
PRINT_WARNING("The OccCurve and TopoDS_Edge pair is not in the map!");
}
- delete edge;
delete curve;
return CUBIT_SUCCESS;
}
@@ -1861,8 +1930,11 @@
if (!fpoint)
return CUBIT_FAILURE;
- return unhook_Point_from_OCC(point);
-
+ TopoDS_Vertex* vertex;
+ CubitStatus stat = unhook_Point_from_OCC(point, vertex);
+ if(stat)
+ delete vertex;
+ return stat;
}
//-------------------------------------------------------------------------
@@ -1875,13 +1947,14 @@
// Creation Date : 12/12/07
//-------------------------------------------------------------------------
CubitStatus
-OCCQueryEngine::unhook_Point_from_OCC( Point* point ) const
+OCCQueryEngine::unhook_Point_from_OCC( Point* point,
+ TopoDS_Vertex*& vertex ) const
{
OCCPoint* fpoint = dynamic_cast<OCCPoint*>(point);
if (!fpoint)
return CUBIT_FAILURE;
- TopoDS_Vertex *vertex = fpoint->get_TopoDS_Vertex();
+ vertex = fpoint->get_TopoDS_Vertex();
if (!vertex)
return CUBIT_FAILURE;
@@ -1897,7 +1970,6 @@
if(!OccToCGM->erase(k))
PRINT_ERROR("The OccPoint and TopoDS_Vertex pair is not in the map!");
}
- delete vertex;
delete point;
return CUBIT_SUCCESS;
}
Modified: cgm/trunk/geom/OCC/OCCQueryEngine.hpp
===================================================================
--- cgm/trunk/geom/OCC/OCCQueryEngine.hpp 2008-04-21 19:49:42 UTC (rev 1772)
+++ cgm/trunk/geom/OCC/OCCQueryEngine.hpp 2008-04-22 19:30:00 UTC (rev 1773)
@@ -248,7 +248,14 @@
CubitBoolean import_vertices = CUBIT_TRUE,
CubitBoolean free_surfaces = CUBIT_TRUE );
- CubitStatus unhook_BodySM_from_OCC( BodySM* bodysm)const;
+ CubitStatus unhook_BodySM_from_OCC( BodySM* bodysm,
+ TopoDS_Shape*& shape)const;
+ CubitStatus unhook_Surface_from_OCC( Surface* surface,
+ TopoDS_Face*& topo_face ) const;
+ CubitStatus unhook_Curve_from_OCC( Curve* curve,
+ TopoDS_Edge*& edge ) const;
+ CubitStatus unhook_Point_from_OCC( Point* point,
+ TopoDS_Vertex*& vertex ) const;
private:
CubitStatus import_solid_model(FILE *file_ptr,
@@ -263,12 +270,11 @@
CubitBoolean import_vertices = CUBIT_TRUE,
CubitBoolean free_surfaces = CUBIT_TRUE);
- CubitStatus unhook_Lump_from_OCC( Lump* lump ) const;
- CubitStatus unhook_ShellSM_from_OCC( ShellSM* shell ) const;
- CubitStatus unhook_LoopSM_from_OCC( LoopSM* loopsm ) const;
- CubitStatus unhook_Surface_from_OCC( Surface* surface ) const;
- CubitStatus unhook_Curve_from_OCC( Curve* curve ) const;
- CubitStatus unhook_Point_from_OCC( Point* point ) const;
+ CubitStatus unhook_Lump_from_OCC( Lump* lump, TopoDS_Solid*& solid ) const;
+ CubitStatus unhook_ShellSM_from_OCC( ShellSM* shell,
+ TopoDS_Shell*& shell ) const;
+ CubitStatus unhook_LoopSM_from_OCC( LoopSM* loopsm,
+ TopoDS_Wire*& wire ) const;
CubitStatus delete_loop( LoopSM* loopsm)const;
public:
virtual void delete_solid_model_entities(DLIList<BodySM*>& body_list) const;
More information about the cgma-dev
mailing list