Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GEOM_Gen.idl
Go to the documentation of this file.
1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 // File : GEOM_Gen.idl
23 // Author : Sergey RUIN
24 
25 #ifndef __GEOM_GEN__
26 #define __GEOM_GEN__
27 
28 #include "SALOME_Exception.idl"
29 #include "SALOME_Component.idl"
30 #include "SALOMEDS.idl"
31 #include "SALOMEDS_Attributes.idl"
32 
33 #include "SALOME_GenericObj.idl"
34 
35 module GEOM
36 {
40  enum shape_type
41  {
51  FACE,
53  WIRE,
55  EDGE,
62  };
63 
69 
75 
82  {
85 
92 
98 
106 
112  };
113 
122  {
125 
130 
133 
136 
139 
144 
147  };
148 
155  {
158 
164 
169  };
170 
177  enum curve_type {
180 
183 
186  };
187 
196  };
197 
203  {
204  SI_V_V, // only V/V interferences
205  SI_V_E, // V/V and V/E interferences
206  SI_E_E, // V/V, V/E and E/E interferences
207  SI_V_F, // V/V, V/E, E/E and V/F interferences
208  SI_E_F, // V/V, V/E, E/E, V/F and E/F interferences
209  SI_ALL // all interferences
210  };
211 
216  {
221  };
222 
228  struct Parameter
229  {
230  string name;
231  string value;
232  };
233  typedef sequence<Parameter> Parameters;
234 
236  {
238  Parameters params;
239  };
240  typedef sequence<CreationInformation> CreationInformationSeq;
241 
245  struct ModifInfo
246  {
247  string name; // what changed
248  long count; // how many times
249  };
250  typedef sequence<ModifInfo> ModifStatistics;
251 
252 
253  typedef sequence<string> string_array;
254  typedef sequence<short> short_array;
255  typedef sequence<boolean> ListOfBool;
256  typedef sequence<long> ListOfLong;
257  typedef sequence<double> ListOfDouble;
258  typedef sequence<ListOfDouble> ListOfListOfDouble;
259 
260  interface GEOM_Object;
261  interface GEOM_BaseObject;
262  interface GEOM_Field;
263  interface GEOM_FieldStep;
264 
265  typedef sequence<GEOM_Object> ListOfGO;
266  typedef sequence<GEOM_BaseObject> ListOfGBO;
267  typedef sequence<GEOM_Field> ListOfFields;
268  typedef sequence<SALOMEDS::SObject> object_list;
269 
270  //# GEOM_BaseObject
274  interface GEOM_BaseObject : SALOME::GenericObj
275  {
281  void SetName (in string theName);
282 
286  string GetName();
287 
294  string GetEntry();
295 
299  long GetStudyID();
300 
306  long GetType();
307 
311  long GetTick();
312 
316  void SetStudyEntry (in string theEntry);
317 
321  string GetStudyEntry();
322 
328  ListOfGBO GetDependency();
329 
334  ListOfGBO GetLastDependency();
335 
336  /*
337  * \brief Return true if geom object representes a shape.
338  *
339  * For example, method return false for GEOM_MARKER
340  */
341  boolean IsShape();
342 
343  /*
344  * \brief Return true if passed object is identical to this object
345  *
346  * \param other object being compared with this one
347  */
348  boolean IsSame(in GEOM_BaseObject other);
349 
355  void SetParameters (in string theParameters);
356 
360  string GetParameters();
361 
365  CreationInformationSeq GetCreationInformation();
366  };
367 
368  //# GEOM_Object
373  {
377  shape_type GetShapeType();
378 
387  shape_type GetTopologyType();
388 
398  shape_type GetMinShapeType();
399 
409  shape_type GetMaxShapeType();
410 
421  string GetSubShapeName(in long subID);
422 
428  void SetColor(in SALOMEDS::Color theColor);
429 
434 
439  void SetAutoColor(in boolean theAutoColor);
440 
444  boolean GetAutoColor();
445 
451  void SetMarkerStd(in marker_type theType, in marker_size theSize );
452 
459  void SetMarkerTexture(in long theTextureId);
460 
466 
472 
477  long GetMarkerTexture();
478 
482  long long getShape();
483 
484  // ######################################################################
485  // # Internal methods (For sub-shape identification)
486  // ######################################################################
491  SALOMEDS::TMPFile GetShapeStream();
492 
493  /*
494  * \brief Returns True if this object is not a sub-shape of another object.
495  */
496  boolean IsMainShape();
497 
498  /*
499  * \brief Get a list of ID's of sub-shapes in the main shape.
500  * \note Internal method, suppopsed to be used only by GEOM_Client
501  */
502  ListOfLong GetSubShapeIndices();
503 
504  /*
505  * \brief Get a main shape object to which this object is a sub-shape
506  * \note Internal method, suppopsed to be used only by GEOM_Client
507  */
508  GEOM_Object GetMainShape();
509 
510  };
511 
512  //# GEOM_Field
517  {
521  GEOM_Object GetShape();
522 
527 
532  short GetDimension();
533 
537  string_array GetComponents();
538 
542  //void RemoveComponent(in long number);
543 
547  GEOM_FieldStep AddStep(in long stepID, in long stamp);
548 
552  void RemoveStep(in long stepID);
553 
557  long CountSteps();
558 
562  ListOfLong GetSteps();
563 
567  GEOM_FieldStep GetStep(in long stepID);
568 
574  long GetArraySize();
575  };
576 
577  // # GEOM_FieldStep:
582  {
586  void SetStamp(in long stamp);
587 
591  long GetStamp();
592 
596  long GetID();
597 
601  GEOM_Field GetField();
602  };
603 
604  // # GEOM_BoolFieldStep:
609  {
613  boolean SetValues(in short_array boolValues);
614 
618  short_array GetValues();
619  };
620 
621  // # GEOM_IntFieldStep:
626  {
630  boolean SetValues(in ListOfLong intValues);
631 
635  ListOfLong GetValues();
636  };
637 
638  // # GEOM_DoubleFieldStep:
643  {
647  boolean SetValues(in ListOfDouble doubleValues);
648 
652  ListOfDouble GetValues();
653  };
654 
655  // # GEOM_StringFieldStep:
660  {
664  boolean SetValues(in string_array strValues);
665 
669  string_array GetValues();
670  };
671 
672  // # GEOM_IOperations:
676  interface GEOM_IOperations : SALOME::GenericObj
677  {
681  boolean IsDone();
682 
688  void SetErrorCode (in string theErrorID);
689 
693  string GetErrorCode();
694 
698  long GetStudyID();
699 
703  void StartOperation();
704 
708  void FinishOperation();
709 
713  void AbortOperation();
714  };
715  //# GEOM_IBasicOperations:
722  {
730  GEOM_Object MakePointXYZ (in double theX, in double theY, in double theZ);
731 
741  GEOM_Object MakePointWithReference (in GEOM_Object theReference,
742  in double theX, in double theY, in double theZ);
743 
752  GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
753  in double theParameter,
754  in boolean takeOrientationIntoAccount);
755 
765  GEOM_Object MakePointOnCurveByLength (in GEOM_Object theRefCurve,
766  in double theLength,
767  in GEOM_Object theStartPoint);
768 
777  GEOM_Object MakePointOnCurveByCoord (in GEOM_Object theRefCurve,
778  in double theXParameter,
779  in double theYParameter,
780  in double theZParameter);
781 
790  GEOM_Object MakePointOnSurface (in GEOM_Object theRefSurf,
791  in double theUParameter,
792  in double theVParameter);
793 
802  GEOM_Object MakePointOnSurfaceByCoord (in GEOM_Object theRefSurf,
803  in double theXParameter,
804  in double theYParameter,
805  in double theZParameter);
806 
816  GEOM_Object MakePointOnFace (in GEOM_Object theFace);
817 
823  GEOM_Object MakePointOnLinesIntersection (in GEOM_Object theRefLine1,
824  in GEOM_Object theRefLine2);
825 
834  GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
835  in double theParameter);
836 
844  GEOM_Object MakeVectorDXDYDZ (in double theDX,
845  in double theDY,
846  in double theDZ);
847 
854  GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
855 
863  GEOM_Object MakeLine (in GEOM_Object thePnt, in GEOM_Object theDir);
864 
871  GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
872 
879  GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1, in GEOM_Object theFace2);
880 
889  GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
890  in GEOM_Object thePnt2,
891  in GEOM_Object thePnt3,
892  in double theTrimSize);
893 
902  GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
903  in GEOM_Object theVec,
904  in double theTrimSize);
905 
912  GEOM_Object MakePlaneFace (in GEOM_Object theFace,
913  in double theTrimSize);
914 
922  GEOM_Object MakePlane2Vec (in GEOM_Object theVec1,
923  in GEOM_Object theVec2,
924  in double theTrimSize);
925 
933  GEOM_Object MakePlaneLCS (in GEOM_Object theLCS,
934  in double theTrimSize,
935  in double theOrientation);
936 
944  GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
945  in double theXDX, in double theXDY, in double theXDZ,
946  in double theYDX, in double theYDY, in double theYDZ);
947 
953  GEOM_Object MakeMarkerFromShape (in GEOM_Object theShape);
954 
962  GEOM_Object MakeMarkerPntTwoVec (in GEOM_Object theOrigin,
963  in GEOM_Object theXVec, in GEOM_Object theYVec);
964 
975  GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
976  in double theParameterU,
977  in double theParameterV,
978  in double theTrimSize);
979  };
980 
987  {
995  GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
996  in GEOM_Object thePoint1,
997  in GEOM_Object thePoint2);
998 
1007  GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
1008  in GEOM_Object thePoint1,
1009  in GEOM_Object thePoint2);
1010 
1017  GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
1018  in double theDX, in double theDY, in double theDZ);
1019 
1027  GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
1028  in double theDX, in double theDY, in double theDZ);
1029 
1030 
1037  GEOM_Object TranslateVector (in GEOM_Object theObject,
1038  in GEOM_Object theVector);
1039 
1047  GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
1048  in GEOM_Object theVector);
1049 
1059  GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
1060  in GEOM_Object theVector,
1061  in double theDistance,
1062  in boolean theCopy);
1063 
1073  GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
1074  in GEOM_Object theVector,
1075  in double theStep,
1076  in long theNbTimes);
1077 
1090  GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
1091  in GEOM_Object theVector1,
1092  in double theStep1,
1093  in long theNbTimes1,
1094  in GEOM_Object theVector2,
1095  in double theStep2,
1096  in long theNbTimes2);
1097 
1106  GEOM_Object RotateThreePoints (in GEOM_Object theObject,
1107  in GEOM_Object theCentPoint,
1108  in GEOM_Object thePoint1,
1109  in GEOM_Object thePoint2);
1110 
1111 
1122  GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
1123  in GEOM_Object theCentPoint,
1124  in GEOM_Object thePoint1,
1125  in GEOM_Object thePoint2);
1126 
1134  GEOM_Object Rotate (in GEOM_Object theObject,
1135  in GEOM_Object theAxis,
1136  in double theAngle);
1137 
1138 
1147  GEOM_Object RotateCopy (in GEOM_Object theObject,
1148  in GEOM_Object theAxis,
1149  in double theAngle);
1150 
1161  GEOM_Object MultiRotate1D (in GEOM_Object theObject,
1162  in GEOM_Object theAxis,
1163  in long theNbObjects);
1164 
1176  GEOM_Object MultiRotate1DByStep (in GEOM_Object theObject,
1177  in GEOM_Object theAxis,
1178  in double theAngleStep,
1179  in long theNbSteps);
1180 
1196  GEOM_Object MultiRotate2DNbTimes (in GEOM_Object theObject,
1197  in GEOM_Object theAxis,
1198  in long theNbObjects,
1199  in double theRadialStep,
1200  in long theNbSteps);
1201 
1218  GEOM_Object MultiRotate2DByStep (in GEOM_Object theObject,
1219  in GEOM_Object theAxis,
1220  in double theAngleStep,
1221  in long theNbSteps1,
1222  in double theRadialStep,
1223  in long theNbSteps2);
1224 
1241  GEOM_Object MultiRotate2D (in GEOM_Object theObject,
1242  in GEOM_Object theAxis,
1243  in double theAngleStep,
1244  in long theNbSteps1,
1245  in double theRadialStep,
1246  in long theNbSteps2);
1247 
1254  GEOM_Object MirrorPlane (in GEOM_Object theObject, in GEOM_Object thePlane);
1255 
1263  GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject, in GEOM_Object thePlane);
1264 
1272  GEOM_Object MirrorAxis (in GEOM_Object theObject, in GEOM_Object theAxis);
1273 
1281  GEOM_Object MirrorAxisCopy (in GEOM_Object theObject, in GEOM_Object theAxis);
1282 
1289  GEOM_Object MirrorPoint (in GEOM_Object theObject, in GEOM_Object thePoint);
1290 
1297  GEOM_Object MirrorPointCopy (in GEOM_Object theObject, in GEOM_Object thePoint);
1298 
1305  GEOM_Object OffsetShape (in GEOM_Object theObject, in double theOffset);
1306 
1313  GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, in double theOffset);
1314 
1321  GEOM_Object ProjectShapeCopy (in GEOM_Object theSource, in GEOM_Object theTarget);
1322 
1335  double ProjectPointOnWire (in GEOM_Object thePoint,
1336  in GEOM_Object theWire,
1337  out GEOM_Object thePointOnEdge,
1338  out long theEdgeInWireIndex);
1339 
1347  GEOM_Object ScaleShape (in GEOM_Object theObject, in GEOM_Object thePoint,
1348  in double theFactor);
1349 
1357  GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, in GEOM_Object thePoint,
1358  in double theFactor);
1359 
1367  GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject,
1368  in GEOM_Object thePoint,
1369  in double theFactorX,
1370  in double theFactorY,
1371  in double theFactorZ);
1372 
1381  GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject,
1382  in GEOM_Object thePoint,
1383  in double theFactorX,
1384  in double theFactorY,
1385  in double theFactorZ);
1386 
1398  GEOM_Object PositionShape (in GEOM_Object theObject,
1399  in GEOM_Object theStartLCS,
1400  in GEOM_Object theEndLCS);
1401 
1414  GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
1415  in GEOM_Object theStartLCS,
1416  in GEOM_Object theEndLCS);
1417 
1428  GEOM_Object PositionAlongPath (in GEOM_Object theObject,
1429  in GEOM_Object thePath,
1430  in double theDistance,
1431  in boolean theCopy,
1432  in boolean theReverse);
1433 
1439  GEOM_Object RecomputeObject (in GEOM_Object theObject);
1440 
1464  GEOM_Object MakeProjectionOnCylinder (in GEOM_Object theObject,
1465  in double theRadius,
1466  in double theStartAngle,
1467  in double theAngleLength,
1468  in double theAngleRotation);
1469  };
1470 
1478  {
1489  GEOM_Object MakeBoxDXDYDZ (in double theDX, in double theDY, in double theDZ);
1490 
1498  GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
1499 
1510  GEOM_Object MakeFaceHW (in double theH, in double theW, in short theOrientation);
1519  GEOM_Object MakeFaceObjHW (in GEOM_Object theObj, in double theH, in double theW);
1527  GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt,
1528  in GEOM_Object theVec,
1529  in double theR);
1535  GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1,
1536  in GEOM_Object thePnt2,
1537  in GEOM_Object thePnt3);
1538 
1547  GEOM_Object MakeDiskR (in double theR, in short theOrientation);
1548 
1558  GEOM_Object MakeCylinderRH (in double theR, in double theH);
1559 
1570  GEOM_Object MakeCylinderRHA (in double theR, in double theH, in double theA);
1571 
1580  GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
1581  in GEOM_Object theAxis,
1582  in double theR,
1583  in double theH);
1593  GEOM_Object MakeCylinderPntVecRHA (in GEOM_Object thePnt,
1594  in GEOM_Object theAxis,
1595  in double theR,
1596  in double theH,
1597  in double theA);
1598 
1611  GEOM_Object MakeConeR1R2H (in double theR1, in double theR2, in double theH);
1612 
1624  GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
1625  in GEOM_Object theAxis,
1626  in double theR1,
1627  in double theR2,
1628  in double theH);
1629 
1636  GEOM_Object MakeTorusRR (in double theRMajor,
1637  in double theRMinor);
1638 
1647  GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
1648  in GEOM_Object theVec,
1649  in double theRMajor,
1650  in double theRMinor);
1651 
1657  GEOM_Object MakeSphereR (in double theR);
1658 
1665  GEOM_Object MakeSpherePntR (in GEOM_Object thePnt, in double theR);
1666 
1677  GEOM_Object MakePrismVecH (in GEOM_Object theBase,
1678  in GEOM_Object theVec,
1679  in double theH);
1680  /* \brief The Same Prism but in 2 directions (forward&backward) */
1681  GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
1682  in GEOM_Object theVec,
1683  in double theH);
1684  /* \brief The Same as MakePrismVecH but with scaling */
1685  GEOM_Object MakePrismVecHWithScaling (in GEOM_Object theBase,
1686  in GEOM_Object theVec,
1687  in double theH,
1688  in double theScaleFactor);
1689 
1697  GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
1698  in GEOM_Object thePoint1,
1699  in GEOM_Object thePoint2);
1700  /* \brief The same prism but in two directions forward&backward */
1701  GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
1702  in GEOM_Object thePoint1,
1703  in GEOM_Object thePoint2);
1704  /* \brief The Same as MakePrismTwoPnt but with scaling */
1705  GEOM_Object MakePrismTwoPntWithScaling (in GEOM_Object theBase,
1706  in GEOM_Object thePoint1,
1707  in GEOM_Object thePoint2,
1708  in double theScaleFactor);
1709 
1716  GEOM_Object MakePrismDXDYDZ (in GEOM_Object theBase,
1717  in double theDX, in double theDY, in double theDZ);
1718  /* \brief The same prism but in two directions forward&backward */
1719  GEOM_Object MakePrismDXDYDZ2Ways (in GEOM_Object theBase,
1720  in double theDX, in double theDY, in double theDZ);
1721  /* \brief The Same as MakePrismDXDYDZ but with scaling */
1722  GEOM_Object MakePrismDXDYDZWithScaling (in GEOM_Object theBase,
1723  in double theDX, in double theDY, in double theDZ,
1724  in double theScaleFactor);
1725 
1726 
1738  GEOM_Object MakeDraftPrism (in GEOM_Object theInitShape,
1739  in GEOM_Object theBase,
1740  in double theHeight,
1741  in double theAngle,
1742  in boolean theFuse,
1743  in boolean theInvert);
1744 
1757  ListOfGO MakePipe (in GEOM_Object theBase,
1758  in GEOM_Object thePath,
1759  in boolean IsGenerateGroups);
1760 
1772  GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
1773  in GEOM_Object theAxis,
1774  in double theAngle);
1775  /* The Same Revolution but in both ways forward&backward */
1776  GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
1777  in GEOM_Object theAxis,
1778  in double theAngle);
1779 
1792  GEOM_Object MakeFilling (in ListOfGO theContours,
1793  in long theMinDeg, in long theMaxDeg,
1794  in double theTol2D, in double theTol3D,
1795  in long theNbIter,
1796  in filling_oper_method theMethod,
1797  in boolean theApprox);
1798 
1807  GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
1808  in boolean theModeSolid,
1809  in double thePreci,
1810  in boolean theRuled);
1811 
1838  ListOfGO MakePipeWithDifferentSections (in ListOfGO theSeqBases,
1839  in ListOfGO theLocations,
1840  in GEOM_Object thePath,
1841  in boolean theWithContact ,
1842  in boolean theWithCorrection,
1843  in boolean IsBySteps,
1844  in boolean IsGenerateGroups);
1845 
1869  ListOfGO MakePipeWithShellSections (in ListOfGO theSeqBases,
1870  in ListOfGO theSeqSubBases,
1871  in ListOfGO theLocations,
1872  in GEOM_Object thePath,
1873  in boolean theWithContact,
1874  in boolean theWithCorrection,
1875  in boolean IsGenerateGroups);
1876 
1888  ListOfGO MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
1889  in ListOfGO theLocations,
1890  in boolean IsGenerateGroups);
1891 
1909  ListOfGO MakePipeBiNormalAlongVector (in GEOM_Object theBase,
1910  in GEOM_Object thePath,
1911  in GEOM_Object theVec,
1912  in boolean IsGenerateGroups);
1913 
1914 
1931  GEOM_Object MakeThickening (in GEOM_Object theObject,
1932  in ListOfLong theFacesIDs,
1933  in double theThickness,
1934  in boolean isCopy,
1935  in boolean isInside);
1936 
1937 
1955  GEOM_Object RestorePath (in GEOM_Object theShape,
1956  in GEOM_Object theBase1,
1957  in GEOM_Object theBase2);
1958 
1976  GEOM_Object RestorePathEdges (in GEOM_Object theShape,
1977  in ListOfGO theBase1,
1978  in ListOfGO theBase2);
1979  };
1980 
1988  {
1995  GEOM_Object MakeEdge (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
1996 
2007  GEOM_Object MakeEdgeOnCurveByLength (in GEOM_Object theRefCurve,
2008  in double theLength,
2009  in GEOM_Object theStartPoint);
2010 
2018  GEOM_Object MakeEdgeWire (in GEOM_Object theWire,
2019  in double theLinearTolerance,
2020  in double theAngularTolerance);
2021 
2029  GEOM_Object MakeWire (in ListOfGO theEdgesAndWires,
2030  in double theTolerance);
2031 
2039  GEOM_Object MakeFace (in GEOM_Object theWire, in boolean isPlanarWanted);
2040 
2048  GEOM_Object MakeFaceWires (in ListOfGO theWires, in boolean isPlanarWanted);
2049 
2056  GEOM_Object MakeFaceFromSurface(in GEOM_Object theFace,
2057  in GEOM_Object theWire);
2058 
2067  GEOM_Object MakeFaceWithConstraints(in ListOfGO theConstraints);
2068 
2074  GEOM_Object MakeShell (in ListOfGO theFacesAndShells);
2075 
2081  GEOM_Object MakeSolidShell (in GEOM_Object theShell);
2082 
2088  GEOM_Object MakeSolidShells (in ListOfGO theShells);
2089 
2095  GEOM_Object MakeCompound (in ListOfGO theShapes);
2096 
2104  GEOM_Object MakeSolidFromConnectedFaces (in ListOfGO theFacesOrShells, in boolean isIntersect);
2105 
2113  GEOM_Object MakeGlueFaces (in ListOfGO theShapes, in double theTolerance, in boolean doKeepNonSolids);
2114 
2121  ListOfGO GetGlueFaces (in ListOfGO theShapes, in double theTolerance);
2122 
2135  GEOM_Object MakeGlueFacesByList (in ListOfGO theShapes, in double theTolerance,
2136  in ListOfGO theFaces, in boolean doKeepNonSolids,
2137  in boolean doGlueAllEdges);
2138 
2145  GEOM_Object MakeGlueEdges (in ListOfGO theShapes, in double theTolerance);
2146 
2153  ListOfGO GetGlueEdges (in ListOfGO theShapes, in double theTolerance);
2154 
2163  GEOM_Object MakeGlueEdgesByList (in ListOfGO theShapes,
2164  in double theTolerance,
2165  in ListOfGO theEdges);
2166 
2175  ListOfGO GetExistingSubObjects (in GEOM_Object theShape,
2176  in boolean theGroupsOnly);
2177 
2183  ListOfGO MakeExplode (in GEOM_Object theShape,
2184  in long theShapeType,
2185  in boolean isSorted);
2186 
2197  ListOfGO MakeAllSubShapes (in GEOM_Object theShape,
2198  in long theShapeType,
2199  in boolean isSorted);
2200 
2210  ListOfGO ExtractSubShapes (in GEOM_Object theShape,
2211  in long theShapeType,
2212  in boolean isSorted);
2213 
2217  ListOfLong SubShapeAllIDs (in GEOM_Object theShape,
2218  in long theShapeType,
2219  in boolean isSorted);
2220 
2232  ListOfLong GetAllSubShapesIDs (in GEOM_Object theShape,
2233  in long theShapeType,
2234  in boolean isSorted);
2235 
2244  GEOM_Object GetSubShape (in GEOM_Object theMainShape,
2245  in long theID);
2246 
2255  ListOfGO MakeSubShapes (in GEOM_Object theMainShape,
2256  in ListOfLong theIndices);
2257 
2264  long GetSubShapeIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
2265 
2272  ListOfLong GetSubShapesIndices (in GEOM_Object theMainShape, in ListOfGO theSubShapes);
2273 
2283  long GetTopologyIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
2284 
2294  string GetShapeTypeString (in GEOM_Object theShape);
2295 
2309  boolean IsSubShapeBelongsTo( in GEOM_Object theSubObject,
2310  in long theSubObjectIndex,
2311  in GEOM_Object theObject,
2312  in long theObjectIndex);
2318  long NumberOfFaces (in GEOM_Object theShape);
2319 
2325  long NumberOfEdges (in GEOM_Object theShape);
2326 
2333  long NumberOfSubShapes (in GEOM_Object theShape,
2334  in long theShapeType);
2335 
2341  GEOM_Object ChangeOrientation (in GEOM_Object theShape);
2342 
2350  ListOfLong GetFreeFacesIDs (in GEOM_Object theShape);
2351 
2359  ListOfGO GetSharedShapes (in GEOM_Object theShape1,
2360  in GEOM_Object theShape2,
2361  in long theShapeType);
2362 
2376  ListOfGO GetSharedShapesMulti (in ListOfGO theShapes,
2377  in long theShapeType,
2378  in boolean theMultiShare);
2379 
2390  ListOfGO GetShapesOnPlane (in GEOM_Object theShape,
2391  in long theShapeType,
2392  in GEOM_Object theAx1,
2393  in shape_state theState);
2405  ListOfGO GetShapesOnPlaneWithLocation (in GEOM_Object theShape,
2406  in long theShapeType,
2407  in GEOM_Object theAx1,
2408  in GEOM_Object thePnt,
2409  in shape_state theState);
2410 
2411 
2412 
2424  ListOfGO GetShapesOnCylinder (in GEOM_Object theShape,
2425  in long theShapeType,
2426  in GEOM_Object theAxis,
2427  in double theRadius,
2428  in shape_state theState);
2429 
2442  ListOfGO GetShapesOnCylinderWithLocation (in GEOM_Object theShape,
2443  in long theShapeType,
2444  in GEOM_Object theAxis,
2445  in GEOM_Object thePnt,
2446  in double theRadius,
2447  in shape_state theState);
2448 
2459  ListOfGO GetShapesOnSphere (in GEOM_Object theShape,
2460  in long theShapeType,
2461  in GEOM_Object theCenter,
2462  in double theRadius,
2463  in shape_state theState);
2464 
2477  ListOfGO GetShapesOnQuadrangle (in GEOM_Object theShape,
2478  in long theShapeType,
2479  in GEOM_Object theTopLeftPoint,
2480  in GEOM_Object theTopRigthPoint,
2481  in GEOM_Object theBottomLeftPoint,
2482  in GEOM_Object theBottomRigthPoint,
2483  in shape_state theState);
2484 
2495  ListOfLong GetShapesOnPlaneIDs (in GEOM_Object theShape,
2496  in long theShapeType,
2497  in GEOM_Object theAx1,
2498  in shape_state theState);
2499 
2511  ListOfLong GetShapesOnPlaneWithLocationIDs (in GEOM_Object theShape,
2512  in long theShapeType,
2513  in GEOM_Object theAx1,
2514  in GEOM_Object thePnt,
2515  in shape_state theState);
2516 
2528  ListOfLong GetShapesOnCylinderIDs (in GEOM_Object theShape,
2529  in long theShapeType,
2530  in GEOM_Object theAxis,
2531  in double theRadius,
2532  in shape_state theState);
2533 
2546  ListOfLong GetShapesOnCylinderWithLocationIDs (in GEOM_Object theShape,
2547  in long theShapeType,
2548  in GEOM_Object theAxis,
2549  in GEOM_Object thePnt,
2550  in double theRadius,
2551  in shape_state theState);
2552 
2563  ListOfLong GetShapesOnSphereIDs (in GEOM_Object theShape,
2564  in long theShapeType,
2565  in GEOM_Object theCenter,
2566  in double theRadius,
2567  in shape_state theState);
2568 
2581  ListOfLong GetShapesOnQuadrangleIDs (in GEOM_Object theShape,
2582  in long theShapeType,
2583  in GEOM_Object theTopLeftPoint,
2584  in GEOM_Object theTopRigthPoint,
2585  in GEOM_Object theBottomLeftPoint,
2586  in GEOM_Object theBottomRigthPoint,
2587  in shape_state theState);
2588 
2597  ListOfLong GetShapesOnBoxIDs (in GEOM_Object theBox,
2598  in GEOM_Object theShape,
2599  in long theShapeType,
2600  in shape_state theState);
2601 
2610  ListOfGO GetShapesOnBox (in GEOM_Object theBox,
2611  in GEOM_Object theShape,
2612  in long theShapeType,
2613  in shape_state theState);
2614 
2623  ListOfLong GetShapesOnShapeIDs (in GEOM_Object theCheckShape,
2624  in GEOM_Object theShape,
2625  in short theShapeType,
2626  in shape_state theState);
2627 
2636  ListOfGO GetShapesOnShape (in GEOM_Object theCheckShape,
2637  in GEOM_Object theShape,
2638  in short theShapeType,
2639  in shape_state theState);
2640 
2649  GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
2650  in GEOM_Object theShape,
2651  in short theShapeType,
2652  in shape_state theState);
2653 
2662  GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
2663  in GEOM_Object theShapeWhat);
2664 
2668  GEOM_Object GetInPlaceOld (in GEOM_Object theShapeWhere,
2669  in GEOM_Object theShapeWhat);
2670 
2686  GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
2687  in GEOM_Object theShapeWhat);
2688 
2696  GEOM_Object GetSame (in GEOM_Object theShapeWhere,
2697  in GEOM_Object theShapeWhat);
2698 
2706  ListOfLong GetSameIDs (in GEOM_Object theShapeWhere,
2707  in GEOM_Object theShapeWhat);
2708 
2720  GEOM_Object ExtendEdge(in GEOM_Object theEdge,
2721  in double theMin,
2722  in double theMax);
2723 
2739  GEOM_Object ExtendFace(in GEOM_Object theFace,
2740  in double theUMin,
2741  in double theUMax,
2742  in double theVMin,
2743  in double theVMax);
2744 
2754  GEOM_Object MakeSurfaceFromFace(in GEOM_Object theFace);
2755 
2762  ListOfGO GetSubShapeEdgeSorted (in GEOM_Object theShape,
2763  in GEOM_Object theStartPoint);
2764 
2780  ListOfGO GetSubShapesWithTolerance(in GEOM_Object theShape,
2781  in short theShapeType,
2782  in comparison_condition theCondition,
2783  in double theTolerance);
2784 
2790  {
2793  EST_Added
2794  };
2795 
2801  {
2803  ListOfLong indices;
2804  };
2805 
2806  typedef sequence<ExtractionStat> ExtractionStats;
2807 
2818  GEOM_Object MakeExtraction(in GEOM_Object theShape,
2819  in ListOfLong theSubShapeIDs,
2820  out ExtractionStats theStats);
2821 
2822  };
2823 
2824  // # GEOM_IBlocksOperations:
2831  {
2832 
2833  // # Creation of blocks
2834 
2841  GEOM_Object MakeQuad (in GEOM_Object theEdge1,
2842  in GEOM_Object theEdge2,
2843  in GEOM_Object theEdge3,
2844  in GEOM_Object theEdge4);
2845 
2853  GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
2854  in GEOM_Object theEdge2);
2855 
2863  GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
2864  in GEOM_Object thePnt2,
2865  in GEOM_Object thePnt3,
2866  in GEOM_Object thePnt4);
2867 
2876  GEOM_Object MakeHexa (in GEOM_Object theFace1,
2877  in GEOM_Object theFace2,
2878  in GEOM_Object theFace3,
2879  in GEOM_Object theFace4,
2880  in GEOM_Object theFace5,
2881  in GEOM_Object theFace6);
2882 
2890  GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
2891  in GEOM_Object theFace2);
2892 
2893 
2894  // # Extract elements of blocks and blocks compounds
2895 
2896 
2905  GEOM_Object GetPoint (in GEOM_Object theShape,
2906  in double theX,
2907  in double theY,
2908  in double theZ,
2909  in double theEpsilon);
2910 
2917  GEOM_Object GetVertexNearPoint (in GEOM_Object theShape,
2918  in GEOM_Object thePoint);
2919 
2926  GEOM_Object GetEdge (in GEOM_Object theShape,
2927  in GEOM_Object thePoint1,
2928  in GEOM_Object thePoint2);
2929 
2937  in GEOM_Object thePoint);
2938 
2945  GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
2946  in GEOM_Object thePoint1,
2947  in GEOM_Object thePoint2,
2948  in GEOM_Object thePoint3,
2949  in GEOM_Object thePoint4);
2950 
2957  GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
2958  in GEOM_Object theEdge1,
2959  in GEOM_Object theEdge2);
2960 
2967  GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
2968  in GEOM_Object theFace);
2969 
2976  GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
2977  in GEOM_Object thePoint);
2978 
2985  GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
2986  in GEOM_Object theVector);
2987 
2999  GEOM_Object GetShapesNearPoint (in GEOM_Object theShape,
3000  in GEOM_Object thePoint,
3001  in long theShapeType,
3002  in double theTolerance);
3003 
3004  // # Extract blocks from blocks compounds
3005 
3006 
3016  boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
3017  in long theMinNbFaces,
3018  in long theMaxNbFaces,
3019  out long theNbBlocks);
3020 
3025  {
3026  /* Each element of the compound should be a Block */
3028 
3029  /* An element is a potential block, but has degenerated and/or seam edge(s). */
3031 
3032  /* A connection between two Blocks should be an entire face or an entire edge */
3034 
3035  /* The compound should be connexe */
3037 
3038  /* The glue between two quadrangle faces should be applied */
3039  NOT_GLUED
3040  };
3041 
3045  struct BCError
3046  {
3048  ListOfLong incriminated;
3049  };
3050 
3054  typedef sequence<BCError> BCErrors;
3055 
3073  boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
3074  in double theToleranceC1,
3075  out BCErrors theErrors);
3076 
3084  string PrintBCErrors (in GEOM_Object theCompound,
3085  in BCErrors theErrors);
3086 
3099  GEOM_Object GetNonBlocks (in GEOM_Object theShape,
3100  in double theToleranceC1,
3101  out GEOM_Object theNonQuads);
3102 
3115  in long theOptimumNbFaces);
3116 
3124  GEOM_Object UnionFaces (in GEOM_Object theShape);
3125 
3134  GEOM_Object CheckAndImprove (in GEOM_Object theCompound);
3135 
3145  ListOfGO ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
3146  in long theMinNbFaces,
3147  in long theMaxNbFaces);
3148 
3156  GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
3157  in GEOM_Object thePoint);
3158 
3165  GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
3166  in ListOfGO theParts);
3167 
3174  ListOfGO GetBlocksByParts (in GEOM_Object theCompound,
3175  in ListOfGO theParts);
3176 
3177  // # Operations on blocks with gluing of result
3178 
3191  GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
3192  in long theDirFace1,
3193  in long theDirFace2,
3194  in long theNbTimes);
3195 
3204  GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
3205  in long theDirFace1U,
3206  in long theDirFace2U,
3207  in long theNbTimesU,
3208  in long theDirFace1V,
3209  in long theDirFace2V,
3210  in long theNbTimesV);
3211 
3212  // # Special operation - propagation
3213 
3214 
3224  ListOfGO Propagate (in GEOM_Object theShape);
3225  };
3226 
3227  // # GEOM_IBooleanOperations
3232  {
3243  GEOM_Object MakeBoolean (in GEOM_Object theShape1,
3244  in GEOM_Object theShape2,
3245  in long theOperation,
3246  in boolean IsCheckSelfInte);
3257  GEOM_Object MakeFuse (in GEOM_Object theShape1,
3258  in GEOM_Object theShape2,
3259  in boolean IsCheckSelfInte,
3260  in boolean IsRmExtraEdges);
3261 
3271  GEOM_Object MakeFuseList (in ListOfGO theShapes,
3272  in boolean IsCheckSelfInte,
3273  in boolean IsRmExtraEdges);
3274 
3282  GEOM_Object MakeCommonList (in ListOfGO theShapes,
3283  in boolean IsCheckSelfInte);
3284 
3293  GEOM_Object MakeCutList (in GEOM_Object theMainShape,
3294  in ListOfGO theShapes,
3295  in boolean IsCheckSelfInte);
3296 
3323  GEOM_Object MakePartition (in ListOfGO theShapes,
3324  in ListOfGO theTools,
3325  in ListOfGO theKeepInside,
3326  in ListOfGO theRemoveInside,
3327  in short theLimit,
3328  in boolean theRemoveWebs,
3329  in ListOfLong theMaterials,
3330  in short theKeepNonlimitShapes);
3331 
3349  GEOM_Object MakePartitionNonSelfIntersectedShape (in ListOfGO theShapes,
3350  in ListOfGO theTools,
3351  in ListOfGO theKeepInside,
3352  in ListOfGO theRemoveInside,
3353  in short theLimit,
3354  in boolean theRemoveWebs,
3355  in ListOfLong theMaterials,
3356  in short theKeepNonlimitShapes,
3357  in boolean IsCheckSelfInte);
3358 
3376  GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
3377  in GEOM_Object thePlane);
3378  };
3379 
3380  // # GEOM_ICurvesOperations:
3387  {
3395  GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
3396  in GEOM_Object theVec,
3397  in double theR);
3403  GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
3404  in GEOM_Object thePnt2,
3405  in GEOM_Object thePnt3);
3412  GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
3413  in GEOM_Object thePnt2,
3414  in GEOM_Object thePnt3);
3423  GEOM_Object MakeEllipse (in GEOM_Object thePnt,
3424  in GEOM_Object theVec,
3425  in double theRMajor,
3426  in double theRMinor);
3427 
3437  GEOM_Object MakeEllipseVec (in GEOM_Object thePnt,
3438  in GEOM_Object theVec,
3439  in double theRMajor,
3440  in double theRMinor,
3441  in GEOM_Object theVecMaj);
3442 
3450  GEOM_Object MakeArc (in GEOM_Object thePnt1,
3451  in GEOM_Object thePnt2,
3452  in GEOM_Object thePnt3);
3453 
3462  GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
3463  in GEOM_Object thePnt1,
3464  in GEOM_Object thePnt2,
3465  in boolean theSense);
3466 
3475  GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter,
3476  in GEOM_Object thePnt1,
3477  in GEOM_Object thePnt2);
3478 
3479 
3486  GEOM_Object MakePolyline (in ListOfGO thePoints,
3487  in boolean theIsClosed);
3488 
3495  GEOM_Object MakeSplineBezier (in ListOfGO thePoints,
3496  in boolean theIsClosed);
3497 
3506  GEOM_Object MakeSplineInterpolation (in ListOfGO thePoints,
3507  in boolean theIsClosed,
3508  in boolean theDoReordering);
3509 
3517  GEOM_Object MakeSplineInterpolWithTangents (in ListOfGO thePoints,
3518  in GEOM_Object theFirstVec,
3519  in GEOM_Object theLastVec);
3520 
3532  GEOM_Object MakeCurveParametric(in string thexExpr,
3533  in string theyExpr,
3534  in string thezExpr,
3535  in double theParamMin,
3536  in double theParamMax,
3537  in double theParamStep,
3538  in curve_type theCurveType);
3539 
3551  GEOM_Object MakeCurveParametricNew(in string thexExpr,
3552  in string theyExpr,
3553  in string thezExpr,
3554  in double theParamMin,
3555  in double theParamMax,
3556  in long theParamNbStep,
3557  in curve_type theCurveType);
3558 
3569  GEOM_Object MakeIsoline(in GEOM_Object theFace,
3570  in boolean IsUIsoline,
3571  in double theParameter);
3572 
3608  GEOM_Object MakeSketcher (in string theCommand, in ListOfDouble theWorkingPlane);
3609 
3621  GEOM_Object MakeSketcherOnPlane (in string theCommand, in GEOM_Object theWorkingPlane);
3622 
3647  GEOM_Object Make3DSketcherCommand (in string theCommand);
3648 
3659  GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates);
3660 
3688  GEOM_Object MakePolyline2D (in ListOfListOfDouble theCoordsList,
3689  in string_array theNamesList,
3690  in short_array theTypesList,
3691  in ListOfBool theClosedList,
3692  in ListOfDouble theWorkingPlane);
3693 
3720  GEOM_Object MakePolyline2DOnPlane (in ListOfListOfDouble theCoordsList,
3721  in string_array theNamesList,
3722  in short_array theTypesList,
3723  in ListOfBool theClosedList,
3724  in GEOM_Object theWorkingPlane);
3725 
3726  };
3727 
3728  // # GEOM_ILocalOperations:
3733  {
3740  GEOM_Object MakeFilletAll (in GEOM_Object theShape,
3741  in double theR);
3742 
3752  GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
3753  in double theR,
3754  in ListOfLong theEdges);
3755  GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
3756  in double theR1,
3757  in double theR2,
3758  in ListOfLong theEdges);
3759 
3769  GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
3770  in double theR,
3771  in ListOfLong theFaces);
3772 
3773  GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
3774  in double theR1,
3775  in double theR2,
3776  in ListOfLong theFaces);
3777 
3787  GEOM_Object MakeFillet2D (in GEOM_Object theShape,
3788  in double theR,
3789  in ListOfLong theVertexes);
3790 
3808  GEOM_Object MakeFillet1D (in GEOM_Object theShape,
3809  in double theR,
3810  in ListOfLong theVertexes,
3811  in boolean doIgnoreSecantVertices);
3812 
3819  GEOM_Object MakeChamferAll (in GEOM_Object theShape,
3820  in double theD);
3821 
3833  GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
3834  in double theD1, in double theD2,
3835  in long theFace1, in long theFace2);
3840  GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
3841  in double theD, in double theAngle,
3842  in long theFace1, in long theFace2);
3843 
3857  GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
3858  in double theD1, in double theD2,
3859  in ListOfLong theFaces);
3864  GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
3865  in double theD, in double theAngle,
3866  in ListOfLong theFaces);
3867 
3876  GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
3877  in double theD1, in double theD2,
3878  in ListOfLong theEdges);
3883  GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
3884  in double theD, in double theAngle,
3885  in ListOfLong theEdges);
3886 
3897  GEOM_Object MakeArchimede (in GEOM_Object theShape,
3898  in double theWeight,
3899  in double theWaterDensity,
3900  in double theMeshDeflection);
3901 
3907  long GetSubShapeIndex (in GEOM_Object theShape, in GEOM_Object theSubShape);
3908  };
3909 
3910  // # GEOM_IHealingOperations:
3917  {
3928  GEOM_Object ProcessShape (in GEOM_Object theShapes,
3929  in string_array theOperators,
3930  in string_array theParameters,
3931  in string_array theValues);
3932 
3944  void GetShapeProcessParameters (out string_array theOperators,
3945  out string_array theParameters,
3946  out string_array theValues);
3957  void GetOperatorParameters (in string theOperator,
3958  out string_array theParameters,
3959  out string_array theValues);
3960 
3968  GEOM_Object SuppressFaces (in GEOM_Object theObject, in short_array theFaces);
3969 
3979  GEOM_Object CloseContour (in GEOM_Object theObject, in short_array theWires,
3980  in boolean isCommonVertex);
3981 
3989  GEOM_Object RemoveIntWires (in GEOM_Object theObject, in short_array theWires);
3990 
3998  GEOM_Object FillHoles (in GEOM_Object theObject, in short_array theWires);
3999 
4006  GEOM_Object Sew (in ListOfGO theObjects, in double theTolerance);
4007 
4014  GEOM_Object SewAllowNonManifold(in ListOfGO theObjects, in double theTolerance);
4015 
4022  GEOM_Object RemoveInternalFaces (in ListOfGO theSolids);
4023 
4035  GEOM_Object DivideEdge (in GEOM_Object theObject, in short theEdgeIndex,
4036  in double theValue, in boolean isByParameter);
4037 
4047  GEOM_Object DivideEdgeByPoint (in GEOM_Object theObject,
4048  in short theEdgeIndex,
4049  in ListOfGO thePoints);
4050 
4058  GEOM_Object FuseCollinearEdgesWithinWire (in GEOM_Object theWire,
4059  in ListOfGO theVertices);
4060 
4069  boolean GetFreeBoundary (in ListOfGO theObjects,
4070  out ListOfGO theClosedWires,
4071  out ListOfGO theOpenWires);
4072 
4078  GEOM_Object ChangeOrientation (in GEOM_Object theObject);
4079  GEOM_Object ChangeOrientationCopy (in GEOM_Object theObject);
4080 
4087  GEOM_Object LimitTolerance (in GEOM_Object theObject, in double theTolerance);
4088 
4089 
4094  ModifStatistics GetStatistics();
4095  };
4096 
4097  // # GEOM_IInsertOperations:
4103  {
4107  GEOM_Object MakeCopy (in GEOM_Object theOriginal);
4108 
4118  void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName);
4119 
4133  ListOfGBO ImportFile (in string theFileName, in string theFormatName);
4134 
4145  string ReadValue (in string theFileName, in string theFormatName, in string theParameterName);
4146 
4153  GEOM_Object RestoreShape (in SALOMEDS::TMPFile theStream);
4154 
4160  long LoadTexture(in string theTextureFile);
4161 
4169  long AddTexture(in long theWidth, in long theHeight, in SALOMEDS::TMPFile theTexture);
4170 
4178  SALOMEDS::TMPFile GetTexture(in long theID, out long theWidth, out long theHeight);
4179 
4184  ListOfLong GetAllTextures();
4185 
4190  {
4191  string myName;
4192  long myNumber;
4194  };
4195 
4199  typedef sequence<TransferDatum> ListOfTransferDatum;
4200 
4215  boolean TransferData(in GEOM_Object theObjectFrom,
4216  in GEOM_Object theObjectTo,
4217  in find_shape_method theFindMethod,
4218  out ListOfTransferDatum theResult);
4219 
4220  };
4221 
4222  // # GEOM_IKindOfShape:
4227  {
4228  enum shape_kind {
4230  //COMPOSITEs
4235  // SOLIDs
4252  // FACEs
4273  // EDGEs
4288  // VERTEX
4290  // ADVANCED shapes
4293  ADVANCED
4294  };
4295  };
4296 
4297  // # GEOM_IMeasureOperations:
4304  {
4315  //short KindOfShape (in GEOM_Object theShape,
4316  GEOM_IKindOfShape::shape_kind KindOfShape (in GEOM_Object theShape,
4317  out ListOfLong theIntegers,
4318  out ListOfDouble theDoubles);
4319 
4331  void GetPosition (in GEOM_Object theShape,
4332  out double Ox, out double Oy, out double Oz,
4333  out double Zx, out double Zy, out double Zz,
4334  out double Xx, out double Xy, out double Xz);
4335 
4346  void GetBasicProperties (in GEOM_Object theShape,
4347  in double theTolerance,
4348  out double theLength,
4349  out double theSurfArea,
4350  out double theVolume);
4351 
4357  GEOM_Object GetCentreOfMass (in GEOM_Object theShape);
4358 
4359  /*
4360  * Get the vertex by index for 1D objects depends the edge/wire orientation
4361  * \param theShape Shape (wire or edge) to find the vertex on it
4362  * \param theIndex Index of vertex sub-shape
4363  * \return New GEOM_Object, vertex.
4364  */
4365  GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long index );
4366 
4375  GEOM_Object GetNormal (in GEOM_Object theFace,
4376  in GEOM_Object theOptionalPoint);
4377 
4385  void GetInertia (in GEOM_Object theShape,
4386  out double I11, out double I12, out double I13,
4387  out double I21, out double I22, out double I23,
4388  out double I31, out double I32, out double I33,
4389  out double Ix , out double Iy , out double Iz);
4390 
4400  void GetBoundingBox (in GEOM_Object theShape,
4401  in boolean precise,
4402  out double Xmin, out double Xmax,
4403  out double Ymin, out double Ymax,
4404  out double Zmin, out double Zmax);
4405 
4412  GEOM_Object MakeBoundingBox (in GEOM_Object theShape,
4413  in boolean precise);
4414 
4423  void GetTolerance (in GEOM_Object theShape,
4424  out double FaceMin, out double FaceMax,
4425  out double EdgeMin, out double EdgeMax,
4426  out double VertMin, out double VertMax);
4427 
4432  {
4433  /* for vertices */
4437 
4438  /* for edges */
4448 
4452 
4453  /* for wires */
4456  SelfIntersectingWire, /* on a face */
4457 
4458  /* for faces */
4464 
4465  /* for shells */
4468 
4469  /* for shapes */
4473 
4475 
4478 
4480 
4481  /* for exception */
4482  CheckFail
4483  };
4484 
4488  struct ShapeError
4489  {
4491  ListOfLong incriminated;
4492  };
4493 
4497  typedef sequence<ShapeError> ShapeErrors;
4498 
4505  boolean CheckShape (in GEOM_Object theShape,
4506  out ShapeErrors theErrors);
4507 
4514  boolean CheckShapeWithGeometry (in GEOM_Object theShape,
4515  out ShapeErrors theErrors);
4516 
4524  string PrintShapeErrors (in GEOM_Object theShape,
4525  in ShapeErrors theErrors);
4526 
4534  boolean CheckSelfIntersections (in GEOM_Object theShape,
4535  in long theCheckLevel,
4536  out ListOfLong theIntersections);
4537 
4548  boolean CheckSelfIntersectionsFast (in GEOM_Object theShape,
4549  in float theDeflection,
4550  in double theTolerance,
4551  out ListOfLong theIntersections);
4552 
4559  boolean CheckBOPArguments (in GEOM_Object theShape);
4560 
4574  boolean FastIntersect (in GEOM_Object theShape1,
4575  in GEOM_Object theShape2,
4576  in double theTolerance,
4577  in float theDeflection,
4578  out ListOfLong theIntersections1,
4579  out ListOfLong theIntersections2);
4580 
4586  string IsGoodForSolid (in GEOM_Object theShape);
4587 
4593  string WhatIs (in GEOM_Object theShape);
4594 
4603  ListOfBool AreCoordsInside(in GEOM_Object theShape, in ListOfDouble coords, in double tolerance);
4604 
4612  double GetMinDistance (in GEOM_Object theShape1, in GEOM_Object theShape2,
4613  out double X1, out double Y1, out double Z1,
4614  out double X2, out double Y2, out double Z2);
4615 
4622  long ClosestPoints (in GEOM_Object theShape1,
4623  in GEOM_Object theShape2,
4624  out ListOfDouble theCoords);
4625 
4631  double GetAngle (in GEOM_Object theShape1, in GEOM_Object theShape2);
4632 
4638  double GetAngleBtwVectors (in GEOM_Object theShape1, in GEOM_Object theShape2);
4639 
4643  void PointCoordinates (in GEOM_Object theShape, out double X, out double Y, out double Z);
4644 
4651  double CurveCurvatureByParam (in GEOM_Object theShape, in double theParam);
4652 
4659  double CurveCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
4660 
4668  double MaxSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam,
4669  in double theVParam);
4670 
4677  double MaxSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
4678 
4686  double MinSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam,
4687  in double theVParam);
4688 
4695  double MinSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
4696 
4697  };
4698 
4699  // # GEOM_IGroupOperations:
4704  {
4711  GEOM_Object CreateGroup (in GEOM_Object theMainShape, in long theShapeType);
4712 
4719  void AddObject (in GEOM_Object theGroup, in long theSubShapeId);
4720 
4727  void RemoveObject (in GEOM_Object theGroup, in long theSubShapeId);
4728 
4734  void UnionList (in GEOM_Object theGroup, in ListOfGO theSubShapes);
4735 
4741  void DifferenceList (in GEOM_Object theGroup, in ListOfGO theSubShapes);
4742 
4748  void UnionIDs (in GEOM_Object theGroup, in ListOfLong theSubShapes);
4749 
4755  void DifferenceIDs (in GEOM_Object theGroup, in ListOfLong theSubShapes);
4756 
4765  GEOM_Object UnionGroups (in GEOM_Object theGroup1, in GEOM_Object theGroup2);
4766 
4774  GEOM_Object IntersectGroups (in GEOM_Object theGroup1, in GEOM_Object theGroup2);
4775 
4784  GEOM_Object CutGroups (in GEOM_Object theGroup1, in GEOM_Object theGroup2);
4785 
4793  GEOM_Object UnionListOfGroups (in ListOfGO theGList);
4794 
4802  GEOM_Object IntersectListOfGroups (in ListOfGO theGList);
4803 
4813  GEOM_Object CutListOfGroups (in ListOfGO theGList1,
4814  in ListOfGO theGList2);
4815 
4820  long GetType (in GEOM_Object theGroup);
4821 
4827  GEOM_Object GetMainShape (in GEOM_Object theGroup);
4828 
4833  ListOfLong GetObjects (in GEOM_Object theGroup);
4834  };
4835 
4836  // # GEOM_IFieldOperations:
4841  {
4845  GEOM_Field CreateField(in GEOM_Object shape,
4846  in string name,
4847  in field_data_type type,
4848  in short dimension,
4849  in string_array componentNames);
4853  long CountFields(in GEOM_Object shape);
4854 
4858  ListOfFields GetFields(in GEOM_Object shape);
4859 
4863  GEOM_Field GetField(in GEOM_Object shape, in string name);
4864 
4868  long GetNbSubShapes(in GEOM_Object shape, in short fieldDim);
4869  };
4870 
4871  // # GEOM_Gen:
4877  interface GEOM_Gen : Engines::EngineComponent,SALOMEDS::Driver
4878  {
4883  void Undo (in long theStudyID);
4884 
4885  void Redo (in long theStudyID);
4886 
4894  SALOMEDS::SObject AddInStudy (in SALOMEDS::Study theStudy,
4895  in GEOM_BaseObject theObject,
4896  in string theName,
4897  in GEOM_BaseObject theFather);
4898 
4923  ListOfGO RestoreSubShapesO (in SALOMEDS::Study theStudy,
4924  in GEOM_Object theObject,
4925  in ListOfGO theArgs,
4926  in find_shape_method theFindMethod,
4927  in boolean theInheritFirstArg,
4928  in boolean theAddPrefix);
4929 
4954  ListOfGO RestoreGivenSubShapesO (in SALOMEDS::Study theStudy,
4955  in GEOM_Object theObject,
4956  in ListOfGO theArgs,
4957  in find_shape_method theFindMethod,
4958  in boolean theInheritFirstArg,
4959  in boolean theAddPrefix);
4960 
4985  ListOfGO RestoreSubShapesSO (in SALOMEDS::Study theStudy,
4986  in SALOMEDS::SObject theSObject,
4987  in ListOfGO theArgs,
4988  in find_shape_method theFindMethod,
4989  in boolean theInheritFirstArg,
4990  in boolean theAddPrefix);
4991 
4992  // # Methods to access interfaces for objects creation and transformation
4993 
4994  GEOM_IBasicOperations GetIBasicOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
4995  GEOM_ITransformOperations GetITransformOperations(in long theStudyID) raises (SALOME::SALOME_Exception);
4996  GEOM_I3DPrimOperations GetI3DPrimOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
4997  GEOM_IShapesOperations GetIShapesOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
4998  GEOM_IBooleanOperations GetIBooleanOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
4999  GEOM_ICurvesOperations GetICurvesOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5000  GEOM_ILocalOperations GetILocalOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5001  GEOM_IHealingOperations GetIHealingOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5002  GEOM_IInsertOperations GetIInsertOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5003  GEOM_IMeasureOperations GetIMeasureOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5004  GEOM_IBlocksOperations GetIBlocksOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5005  GEOM_IGroupOperations GetIGroupOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5006  GEOM_IFieldOperations GetIFieldOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
5007 
5008  GEOM_IOperations GetPluginOperations (in long theStudyID,
5009  in string theLibName) raises (SALOME::SALOME_Exception);
5010 
5011  // # Objects Management
5012 
5013 
5018  void RemoveObject (in GEOM_BaseObject theObject);
5019 
5026  GEOM_BaseObject GetObject (in long theStudyID, in string theEntry);
5027 
5035  GEOM_Object AddSubShape (in GEOM_Object theMainShape, in ListOfLong theIndices);
5036 
5037  // # GEOM_Objects IOR Management
5038 
5043  GEOM_Object GetIORFromString (in string theIOR);
5044 
5049  string GetStringFromIOR (in GEOM_Object theObject);
5050 
5055  string GetDumpName (in string theStudyEntry);
5056 
5061  string_array GetAllDumpNames();
5062 
5068  ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy,
5069  //in SObject theSObject,
5070  in Object theObject);
5071 
5084  SALOMEDS::SObject CreateFolder (in string theName,
5085  in SALOMEDS::SObject theFather);
5086 
5094  void MoveToFolder (in GEOM_Object theObject,
5095  in SALOMEDS::SObject theFolder);
5096 
5104  void MoveListToFolder (in ListOfGO theListOfGO,
5105  in SALOMEDS::SObject theFolder);
5106 
5116  void Move( in object_list what,
5117  in SALOMEDS::SObject where,
5118  in long row );
5119 
5127  SALOMEDS::TMPFile GetDependencyTree(in SALOMEDS::Study theStudy,
5128  in string_array theListOfEntries);
5129 
5142  void GetEntriesToReduceStudy(in SALOMEDS::Study theStudy,
5143  inout string_array theSelectedEntries,
5144  inout string_array theParentEntries,
5145  inout string_array theSubEntries,
5146  inout string_array theOtherEntries);
5147 
5148  };
5149 };
5150 
5151 #endif