X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMImpl%2FGEOMImpl_IShapesOperations.hxx;h=06b35dac4c91eb1c1638696dab19546f643c6789;hb=ed87a1f7c81ec39992aff1f463d73dc81e5791e0;hp=72a5de5ffb8083ce14a8003d8ca02f4abbc6f65a;hpb=5b3622aa2363853841fd5b4205c78a715bfee4a4;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx b/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx index 72a5de5ff..06b35dac4 100644 --- a/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -54,6 +54,15 @@ class Handle(TColStd_HArray1OfInteger); class GEOMImpl_IShapesOperations : public GEOM_IOperations { public: + + enum SubShapeType { + None = 0x00, + Groups = 0x01, + Fields = 0x02, + SubShapes = 0x04, + All = Groups | Fields | SubShapes, + }; + Standard_EXPORT GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID); Standard_EXPORT ~GEOMImpl_IShapesOperations(); @@ -76,40 +85,47 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations Standard_EXPORT Handle(GEOM_Object) MakeFaceWires (std::list theWires, const bool isPlanarWanted); + Standard_EXPORT Handle(GEOM_Object) MakeFaceFromSurface + (Handle(GEOM_Object) theFace, + Handle(GEOM_Object) theWire); + + Standard_EXPORT Handle(GEOM_Object) MakeFaceWithConstraints (std::list theConstraints); + Standard_EXPORT Handle(GEOM_Object) MakeShell (std::list theShapes); Standard_EXPORT Handle(GEOM_Object) MakeSolidShells (std::list theShells); Standard_EXPORT Handle(GEOM_Object) MakeCompound (std::list theShapes); - Standard_EXPORT Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape, + Standard_EXPORT Handle(GEOM_Object) MakeSolidFromConnectedFaces (std::list theFacesOrShells, + const Standard_Boolean isIntersect); + + Standard_EXPORT Handle(GEOM_Object) MakeGlueFaces (std::list< Handle(GEOM_Object) >& theShapes, const Standard_Real theTolerance, const Standard_Boolean doKeepNonSolids); - //Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetGlueFaces (Handle(GEOM_Object) theShape, - // const Standard_Real theTolerance); - - Standard_EXPORT Handle(GEOM_Object) MakeGlueFacesByList (Handle(GEOM_Object) theShape, + Standard_EXPORT Handle(GEOM_Object) MakeGlueFacesByList (std::list< Handle(GEOM_Object) >& theShapes, const Standard_Real theTolerance, - std::list theFaces, + std::list& theFaces, const Standard_Boolean doKeepNonSolids, const Standard_Boolean doGlueAllEdges); - Standard_EXPORT Handle(GEOM_Object) MakeGlueEdges (Handle(GEOM_Object) theShape, + Standard_EXPORT Handle(GEOM_Object) MakeGlueEdges (std::list< Handle(GEOM_Object) >& theShapes, const Standard_Real theTolerance); - Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetGlueShapes (Handle(GEOM_Object) theShape, + Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetGlueShapes (std::list< Handle(GEOM_Object) >& theShapes, const Standard_Real theTolerance, const TopAbs_ShapeEnum theType); - Standard_EXPORT Handle(GEOM_Object) MakeGlueEdgesByList (Handle(GEOM_Object) theShape, + Standard_EXPORT Handle(GEOM_Object) MakeGlueEdgesByList (std::list< Handle(GEOM_Object) >& theShapes, const Standard_Real theTolerance, - std::list theEdges); - - Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetExistingSubObjects - (Handle(GEOM_Object) theShape, - const Standard_Boolean theGroupsOnly); + std::list & theEdges); + Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetExistingSubObjects(Handle(GEOM_Object) theShape, + const Standard_Boolean theGroupsOnly); + Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetExistingSubObjects(Handle(GEOM_Object) theShape, + const Standard_Integer theTypes = All); + enum ExplodeType { EXPLODE_OLD_INCLUDE_MAIN, EXPLODE_NEW_INCLUDE_MAIN, @@ -146,6 +162,11 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations Standard_EXPORT TCollection_AsciiString GetShapeTypeString (Handle(GEOM_Object) theShape); + Standard_EXPORT Standard_Boolean IsSubShapeBelongsTo(Handle(GEOM_Object) theSubObject, + const Standard_Integer theSubObjectIndex, + Handle(GEOM_Object) theObject, + const Standard_Integer theObjectIndex); + Standard_EXPORT Standard_Integer NumberOfSubShapes (Handle(GEOM_Object) theShape, const Standard_Integer theShapeType); @@ -159,8 +180,8 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations const Standard_Integer theShapeType); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) - GetSharedShapes (std::list theShapes, - const Standard_Integer theShapeType); + GetSharedShapes (std::list& theShapes, + const Standard_Integer theShapeType); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetShapesOnPlane (const Handle(GEOM_Object)& theShape, @@ -373,6 +394,21 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations const Standard_Integer theShapeType, GEOMAlgo_State theState); + Standard_EXPORT Handle(GEOM_Object) + ExtendEdge(const Handle(GEOM_Object) &theEdge, + const Standard_Real theMin, + const Standard_Real theMax); + + Standard_EXPORT Handle(GEOM_Object) + ExtendFace(const Handle(GEOM_Object) &theFace, + const Standard_Real theUMin, + const Standard_Real theUMax, + const Standard_Real theVMin, + const Standard_Real theVMax); + + Standard_EXPORT Handle(GEOM_Object) + MakeSurfaceFromFace(const Handle(GEOM_Object) &theFace); + private: Handle(GEOM_Object) MakeShape (std::list theShapes, const Standard_Integer theObjectType,