Salome HOME
Increment version: 7.8.0
[plugins/canrecplugin.git] / idl / CANRECPlugin.idl
1 // Copyright (C) 2014-2016  OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 #ifndef __CANRECPlugin_IDL__
21 #define __CANRECPlugin_IDL__
22
23 #include "GEOM_Gen.idl"
24
25 module CANRECPlugin
26 {       
27   typedef sequence<long> ListOfLong;
28
29   /*!
30    *  \brief Interface to Canonical Recognition modeling functions.
31    */
32   interface ICanRecOperations : GEOM::GEOM_IOperations
33   {
34     /*!
35      * \brief Perform, if possible, conversion of NURBS (B-Spline, Bezier) geometry to canonical (analytical) form. 
36      *
37      * \param theObject the input object (solid, compound, compsolid).
38      * \param theMergeSurf the flag to switch on/off merging surfaces in the result shape.
39      * \param theMergeCurves the flag to switch on/off merging curves in the result shape.
40      * \param theTolerance the tolerance of the canonical recognition operation.
41      * \param theStat the statistics of the operation. Output parameter.
42      *                Each integer value in the sequence has its own meaning
43      *                depending on its index:
44      *                0 - total number of faces in the initial shape;
45      *                1 - number of canonical faces in the initial shape;
46      *                2 - number of faces converted to the canonical form;
47      *                3 - number of merged surfaces;
48      *                4 - number of merged curves.
49      *                Nagative value means that this value is not computed.
50      *
51      * \return New GEOM_Object, containing the canonical recognition of the input object.
52      */
53     GEOM::GEOM_Object MakeCanonicalRecognition
54                       (in GEOM::GEOM_Object theObject,
55                        in boolean           theMergeSurf,
56                        in boolean           theMergeCurves,
57                        in double            theTolerance,
58                        out ListOfLong       theStat);
59
60     /*!
61      * \brief Get the number of canonical faces in the shape.
62      *
63      * \param theObject the input object (solid, compound, compsolid).
64      *
65      * \return the number of canonical faces in the object.
66      */
67     long GetNbCanonicalFaces(in GEOM::GEOM_Object theObject);
68   };
69 };
70
71 #endif  // __CANRECPlugin_IDL__