X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGEOM_Gen.idl;h=febb9b324b3f4166c098ade03e9d40c4f44f8e13;hb=91bcf72966607b9ec3fc704bcd12706cc0c2fc41;hp=05e030217ac6eec6a0a2c75840c0ee9bee891900;hpb=9e31f81bd01bd5b327b61de1fa28dd1d7ef82ca5;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 05e030217..febb9b324 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -1,23 +1,23 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2011 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 +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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. +// 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. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_Gen.idl // Author : Sergey RUIN @@ -135,6 +135,21 @@ module GEOM FOM_AutoCorrect }; + /*! + * Kind of the curves. + * Used in the function GEOM_Gen.MakeCurveParametric() + */ + enum curve_type { + /*! Polyline curve */ + Polyline, + + /*! Bezier curve */ + Bezier, + + /*! Interpolation, curve */ + Interpolation + }; + typedef sequence string_array; typedef sequence short_array; @@ -906,6 +921,14 @@ module GEOM */ GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, in double theOffset); + /*! + * Create new object as projection of the given one on a 2D surface. + * \param theSource The source object for the projection. It can be a point, edge or wire. + * \param theTarget The target object. It can be planar or cylindrical face. + * \return New GEOM_Object, containing the projection. + */ + GEOM_Object ProjectShapeCopy (in GEOM_Object theSource, in GEOM_Object theTarget); + /*! * Scale the given object by the factor. * \param theObject The object to be scaled. @@ -1486,10 +1509,42 @@ module GEOM * \param theTolerance Maximum distance between faces, which can be considered as coincident. * \param theFaces List of faces for gluing. * \param doKeepNonSolids If FALSE, only solids will present in the result, otherwise all initial shapes. + * \param doGlueAllEdges If TRUE, all coincident edges of theShape + * will be glued, otherwise only the edges, + * belonging to theFaces. * \return New GEOM_Object, containing a copy of theShape without some faces. */ GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance, - in ListOfGO theFaces, in boolean doKeepNonSolids); + in ListOfGO theFaces, in boolean doKeepNonSolids, + in boolean doGlueAllEdges); + + /*! + * Replace coincident edges in theShape by one edge. + * \param theShape Initial shape. + * \param theTolerance Maximum distance between edges, which can be considered as coincident. + * \return New GEOM_Object, containing a copy of theShape without coincident edges. + */ + GEOM_Object MakeGlueEdges (in GEOM_Object theShape, in double theTolerance); + + /*! + * Find coincident edges in theShape for possible gluing. + * \param theShape Initial shape. + * \param theTolerance Maximum distance between edges, which can be considered as coincident. + * \return ListOfGO + */ + ListOfGO GetGlueEdges (in GEOM_Object theShape, in double theTolerance); + + /*! + * Replace coincident edges in theShape by one edge + * in compliance with given list of edges + * \param theShape Initial shape. + * \param theTolerance Maximum distance between edges, which can be considered as coincident. + * \param theFaces List of edges for gluing. + * \return New GEOM_Object, containing a copy of theShape without some edges. + */ + GEOM_Object MakeGlueEdgesByList (in GEOM_Object theShape, + in double theTolerance, + in ListOfGO theEdges); /*! * Get all sub-shapes and groups of \a theShape, @@ -1558,12 +1613,26 @@ module GEOM /*! * Get a sub shape defined by its unique ID inside \a theMainShape + * \param theMainShape Main shape. + * \param theID Unique ID of sub shape inside \a theMainShape. + * \return GEOM_Object, corresponding to found sub shape. * \note The sub shape GEOM_Objects can has ONLY ONE function. - * Don't try to apply modification operations on them. + * Don't try to apply modification operations (without copy) on them. */ GEOM_Object GetSubShape (in GEOM_Object theMainShape, in long theID); + /*! + * Get a set of sub shapes defined by their unique IDs inside \a theMainShape + * \param theMainShape Main shape. + * \param theIndices List of unique IDs of sub shapes inside \a theMainShape. + * \return List of GEOM_Objects, corresponding to found sub shapes. + * \note The sub shape GEOM_Objects can has ONLY ONE function. + * Don't try to apply modification operations (without copy) on them. + */ + ListOfGO MakeSubShapes (in GEOM_Object theMainShape, + in ListOfLong theIndices); + /*! * Get global index of \a theSubShape in \a theMainShape. * \param theMainShape Main shape. @@ -2541,6 +2610,25 @@ module GEOM in boolean theIsClosed, in boolean theDoReordering); + /*! + * Creates a curve using the parametric definition of the basic points. + * \param thexExpr parametric equation of the coordinates X. + * \param theyExpr parametric equation of the coordinates Y. + * \param thezExpr parametric equation of the coordinates Z. + * \param theParamMin the minimal value of the parameter. + * \param theParamMax the maximum value of the parameter. + * \param theParamStep the step of the parameter. + * \param theCurveType the type of the curve. + * \return New GEOM_Object, containing the created curve. + */ + GEOM_Object MakeCurveParametric(in string thexExpr, + in string theyExpr, + in string thezExpr, + in double theParamMin, + in double theParamMax, + in double theParamStep, + in curve_type theCurveType); + /*! * Create a sketcher (wire or face), following the textual description, * passed through \a theCommand argument. \n @@ -3625,7 +3713,7 @@ module GEOM /*! * Add a sub shape defined by indices in \a theIndices - * (contains unique IDs of sub shapes inside theMainShape) + * (contains unique IDs of sub shapes inside \a theMainShape) * \note The sub shape GEOM_Objects can has ONLY ONE function. * Don't try to apply modification operations on them. * \note Internal method