Version: 6.3.1

idl/GEOM_Gen.idl

Go to the documentation of this file.
00001 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 //  File   : GEOM_Gen.idl
00023 //  Author : Sergey RUIN
00024 
00025 #ifndef __GEOM_GEN__
00026 #define __GEOM_GEN__
00027 
00028 #include "SALOME_Exception.idl"
00029 #include "SALOME_Component.idl"
00030 #include "SALOMEDS.idl"
00031 #include "SALOMEDS_Attributes.idl"
00032 
00033 #include "SALOME_GenericObj.idl"
00034 
00035 module GEOM
00036 {
00040   enum shape_type { COMPOUND, COMPSOLID, SOLID, SHELL,
00041                     FACE, WIRE, EDGE, VERTEX, SHAPE };
00042 
00046   enum marker_type { MT_NONE, MT_POINT, MT_PLUS, MT_STAR, MT_O, MT_X, MT_O_POINT, MT_O_PLUS,
00047                      MT_O_STAR, MT_O_X, MT_BALL, MT_RING1, MT_RING2, MT_RING3, MT_USER };
00048 
00052   enum marker_size { MS_NONE, MS_10, MS_15, MS_20, MS_25, MS_30, MS_35,
00053                      MS_40, MS_45, MS_50, MS_55, MS_60, MS_65, MS_70 };
00054 
00059   enum shape_state
00060   {
00062     ST_ON,
00063 
00069     ST_OUT,
00070 
00075     ST_ONOUT,
00076 
00083     ST_IN,
00084 
00089     ST_ONIN
00090   };
00091 
00097   enum find_shape_method
00098   {
00100     FSM_GetInPlace,
00101 
00105     FSM_Transformed,
00106 
00108     FSM_GetSame,
00109 
00111     FSM_GetShapesOnShape,
00112 
00114     FSM_GetInPlaceByHistory,
00115 
00119     FSM_MultiTransformed
00120   };
00121 
00126   enum filling_oper_method
00127   {
00129     FOM_Default,
00130 
00132     FOM_UseOri,
00133 
00135     FOM_AutoCorrect
00136   };
00137 
00142   enum curve_type {
00144     Polyline,
00145     
00147     Bezier,
00148 
00150     Interpolation
00151   };
00152 
00153 
00154   typedef sequence<string>      string_array;
00155   typedef sequence<short>       short_array;
00156   typedef sequence<boolean>     ListOfBool;
00157   typedef sequence<long>        ListOfLong;
00158   typedef sequence<double>      ListOfDouble;
00159 
00160   interface GEOM_Object;
00161 
00162   typedef sequence<GEOM_Object> ListOfGO;
00163 
00167   interface GEOM_Object : SALOME::GenericObj
00168   {
00169 
00173     string GetEntry();
00174 
00178     long GetStudyID();
00179 
00183     long GetType();
00184 
00188     shape_type GetShapeType();
00189 
00197     shape_type GetTopologyType();
00198 
00206     shape_type GetMinShapeType();
00207 
00215     shape_type GetMaxShapeType();
00216 
00221     void SetName (in string theName);
00222 
00226     string GetName();
00227 
00232     void SetColor(in SALOMEDS::Color theColor);
00233 
00237     SALOMEDS::Color GetColor();
00238 
00243     void SetAutoColor(in boolean theAutoColor);
00244 
00248     boolean GetAutoColor();
00249 
00255     void SetMarkerStd(in marker_type theType, in marker_size theSize );
00256 
00262     void SetMarkerTexture(in long theTextureId);
00263 
00268     marker_type GetMarkerType();
00269 
00274     marker_size GetMarkerSize();
00275 
00280     long GetMarkerTexture();
00281 
00285     void SetStudyEntry (in string theEntry);
00286 
00290     string GetStudyEntry();
00291 
00297     ListOfGO GetDependency();
00298 
00303     ListOfGO GetLastDependency();
00304 
00308     long long getShape();
00309 
00319     SALOMEDS::TMPFile GetShapeStream();
00320 
00321     /*
00322      *  Returns True if this object is not a sub shape of another object.
00323      */
00324     boolean IsMainShape();
00325 
00326     /*
00327      *  Get a list of ID's of sub shapes in the main shape.
00328      *  \note Internal method, suppopsed to be used only by GEOM_Client
00329      */
00330     ListOfLong GetSubShapeIndices();
00331 
00332     /*
00333      *  Get a main shape object to which this object is a sub shape
00334      *  \note Internal method, suppopsed to be used only by GEOM_Client
00335      */
00336     GEOM_Object GetMainShape();
00337 
00338     /*
00339      *  Return true if geom object representes a shape.
00340      *  For example, method return false for GEOM_MARKER
00341      */
00342      boolean IsShape();
00343 
00344     /*
00345      *  Return true if passed object is identical to this object
00346      *  \param other object being compared with this one
00347      */
00348     boolean IsSame(in GEOM_Object other);
00349 
00355     void SetParameters (in string theParameters);
00356 
00360     string GetParameters();
00361   };
00362 
00363 
00367   interface GEOM_IOperations : SALOME::GenericObj
00368   {
00372     boolean IsDone();
00373 
00379     void SetErrorCode (in string theErrorID);
00380 
00384     string GetErrorCode();
00385 
00389     long GetStudyID();
00390 
00394     void StartOperation();
00395 
00399     void FinishOperation();
00400 
00404     void AbortOperation();
00405   };
00406 
00411   interface GEOM_IBasicOperations : GEOM_IOperations
00412   {
00420     GEOM_Object MakePointXYZ (in double theX, in double theY, in double theZ);
00421 
00431     GEOM_Object MakePointWithReference (in GEOM_Object theReference,
00432                                         in double theX, in double theY, in double theZ);
00433 
00440     GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
00441                                   in double theParameter);
00442 
00452     GEOM_Object MakePointOnCurveByLength (in GEOM_Object theRefCurve,
00453                                           in double      theLength,
00454                                           in GEOM_Object theStartPoint);
00455 
00464     GEOM_Object MakePointOnCurveByCoord (in GEOM_Object theRefCurve,
00465                                          in double theXParameter,
00466                                          in double theYarameter,
00467                                          in double theZPameter);
00468 
00477     GEOM_Object MakePointOnSurface (in GEOM_Object theRefSurf,
00478                                     in double theUParameter,
00479                                     in double theVParameter);
00480 
00489     GEOM_Object MakePointOnSurfaceByCoord (in GEOM_Object theRefSurf,
00490                                            in double theXParameter,
00491                                            in double theYarameter,
00492                                            in double theZPameter);
00493 
00494 
00500     GEOM_Object MakePointOnLinesIntersection (in GEOM_Object theRefLine1,
00501                                               in GEOM_Object theRefLine2);
00502 
00511      GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
00512                                      in double theParameter);
00513 
00521     GEOM_Object MakeVectorDXDYDZ (in double theDX,
00522                                   in double theDY,
00523                                   in double theDZ);
00524 
00531     GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
00532 
00540     GEOM_Object MakeLine (in GEOM_Object thePnt, in GEOM_Object theDir);
00541 
00548     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
00549 
00556     GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1, in GEOM_Object theFace2);
00557 
00566     GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
00567                                    in GEOM_Object thePnt2,
00568                                    in GEOM_Object thePnt3,
00569                                    in double theTrimSize);
00570 
00579     GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
00580                                  in GEOM_Object theVec,
00581                                  in double theTrimSize);
00582 
00589     GEOM_Object MakePlaneFace (in GEOM_Object theFace,
00590                                in double theTrimSize);
00591 
00599     GEOM_Object MakePlane2Vec (in GEOM_Object theVec1,
00600                                in GEOM_Object theVec2,
00601                                in double theTrimSize);
00602 
00610     GEOM_Object MakePlaneLCS (in GEOM_Object theLCS,
00611                               in double theTrimSize,
00612                               in double theOrientation);
00613 
00621     GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
00622                             in double theXDX, in double theXDY, in double theXDZ,
00623                             in double theYDX, in double theYDY, in double theYDZ);
00624 
00630     GEOM_Object MakeMarkerFromShape (in GEOM_Object theShape);
00631 
00639     GEOM_Object MakeMarkerPntTwoVec (in GEOM_Object theOrigin,
00640                                      in GEOM_Object theXVec, in GEOM_Object theYVec);
00641 
00651     GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
00652                                        in double theParameterU,
00653                                        in double theParameterV,
00654                                        in double theTrimSize);
00655   };
00656 
00657   interface GEOM_ITransformOperations : GEOM_IOperations
00658   {
00666     GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
00667                                     in GEOM_Object thePoint1,
00668                                     in GEOM_Object thePoint2);
00669 
00678     GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
00679                                         in GEOM_Object thePoint1,
00680                                         in GEOM_Object thePoint2);
00681 
00688     GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
00689                                  in double theDX, in double theDY, in double theDZ);
00690 
00698     GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
00699                                      in double theDX, in double theDY, in double theDZ);
00700 
00701 
00708     GEOM_Object TranslateVector (in GEOM_Object theObject,
00709                                  in GEOM_Object theVector);
00710 
00718     GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
00719                                      in GEOM_Object theVector);
00720 
00730     GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
00731                                          in GEOM_Object theVector,
00732                                          in double      theDistance,
00733                                          in boolean     theCopy);
00734 
00744     GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
00745                                   in GEOM_Object theVector,
00746                                   in double theStep,
00747                                   in long theNbTimes);
00748 
00761     GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
00762                                   in GEOM_Object theVector1,
00763                                   in double theStep1,
00764                                   in long theNbTimes1,
00765                                   in GEOM_Object theVector2,
00766                                   in double theStep2,
00767                                   in long theNbTimes2);
00768 
00777     GEOM_Object RotateThreePoints (in GEOM_Object theObject,
00778                                    in GEOM_Object theCentPoint,
00779                                    in GEOM_Object thePoint1,
00780                                    in GEOM_Object thePoint2);
00781 
00782 
00792     GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
00793                                        in GEOM_Object theCentPoint,
00794                                        in GEOM_Object thePoint1,
00795                                        in GEOM_Object thePoint2);
00796 
00804     GEOM_Object Rotate (in GEOM_Object theObject,
00805                         in GEOM_Object theAxis,
00806                         in double theAngle);
00807 
00808 
00817     GEOM_Object RotateCopy (in GEOM_Object theObject,
00818                             in GEOM_Object theAxis,
00819                             in double theAngle);
00820 
00821 
00831     GEOM_Object MultiRotate1D (in GEOM_Object theObject,
00832                                in GEOM_Object theAxis,
00833                                in long theNbTimes);
00834 
00850     GEOM_Object MultiRotate2D (in GEOM_Object theObject,
00851                                in GEOM_Object theAxis,
00852                                in double theAngle,
00853                                in long theNbTimes1,
00854                                in double theStep,
00855                                in long theNbTimes2);
00856 
00863     GEOM_Object MirrorPlane (in GEOM_Object theObject, in GEOM_Object thePlane);
00864 
00872     GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject, in GEOM_Object thePlane);
00873 
00881     GEOM_Object MirrorAxis (in GEOM_Object theObject, in GEOM_Object theAxis);
00882 
00890     GEOM_Object MirrorAxisCopy (in GEOM_Object theObject, in GEOM_Object theAxis);
00891 
00898     GEOM_Object MirrorPoint (in GEOM_Object theObject, in GEOM_Object thePoint);
00899 
00906     GEOM_Object MirrorPointCopy (in GEOM_Object theObject, in GEOM_Object thePoint);
00907 
00914     GEOM_Object OffsetShape (in GEOM_Object theObject, in double theOffset);
00915 
00922     GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, in double theOffset);
00923 
00930     GEOM_Object ProjectShapeCopy (in GEOM_Object theSource, in GEOM_Object theTarget);
00931 
00939     GEOM_Object ScaleShape (in GEOM_Object theObject, in GEOM_Object thePoint,
00940                             in double theFactor);
00941 
00949     GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, in GEOM_Object thePoint,
00950                                 in double theFactor);
00951 
00959     GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject,
00960                                      in GEOM_Object thePoint,
00961                                      in double theFactorX,
00962                                      in double theFactorY,
00963                                      in double theFactorZ);
00964 
00973     GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject,
00974                                          in GEOM_Object thePoint,
00975                                          in double theFactorX,
00976                                          in double theFactorY,
00977                                          in double theFactorZ);
00978 
00990     GEOM_Object PositionShape (in GEOM_Object theObject,
00991                                in GEOM_Object theStartLCS,
00992                                in GEOM_Object theEndLCS);
00993 
01006     GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
01007                                    in GEOM_Object theStartLCS,
01008                                    in GEOM_Object theEndLCS);
01009 
01019     GEOM_Object PositionAlongPath (in GEOM_Object theObject,
01020                                    in GEOM_Object thePath,
01021                                    in double theDistance,
01022                                    in boolean theCopy,
01023                                    in boolean theReverse);
01024 
01033     GEOM_Object TransformLikeOtherCopy (in GEOM_Object theObject,
01034                                         in GEOM_Object theSample);
01035 
01041     GEOM_Object RecomputeObject (in GEOM_Object theObject);
01042   };
01043 
01049   interface GEOM_I3DPrimOperations : GEOM_IOperations
01050   {
01060     GEOM_Object MakeBoxDXDYDZ (in double theDX, in double theDY, in double theDZ);
01061 
01069     GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
01070 
01080     GEOM_Object MakeFaceHW (in double theH, in double theW, in short theOrientation);
01089     GEOM_Object MakeFaceObjHW (in GEOM_Object theObj, in double theH, in double theW);
01097     GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt,
01098                                  in GEOM_Object theVec,
01099                                  in double theR);
01105     GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1,
01106                                   in GEOM_Object thePnt2,
01107                                   in GEOM_Object thePnt3);
01108 
01116     GEOM_Object MakeDiskR (in double theR, in short theOrientation);
01117 
01126     GEOM_Object MakeCylinderRH (in double theR, in double theH);
01127 
01136     GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
01137                                       in GEOM_Object theAxis,
01138                                       in double      theR,
01139                                       in double      theH);
01140 
01152     GEOM_Object MakeConeR1R2H (in double theR1, in double theR2, in double theH);
01153 
01165     GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
01166                                      in GEOM_Object theAxis,
01167                                      in double      theR1,
01168                                      in double      theR2,
01169                                      in double      theH);
01170 
01177     GEOM_Object MakeTorusRR (in double theRMajor,
01178                              in double theRMinor);
01179 
01188     GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
01189                                    in GEOM_Object theVec,
01190                                    in double theRMajor,
01191                                    in double theRMinor);
01192 
01198     GEOM_Object MakeSphereR (in double theR);
01199 
01206     GEOM_Object MakeSpherePntR (in GEOM_Object thePnt, in double theR);
01207 
01217     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
01218                                in GEOM_Object theVec,
01219                                in double      theH);
01220     /*  The Same Prism but in 2 directions (forward&backward) */
01221     GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
01222                                     in GEOM_Object theVec,
01223                                     in double      theH);
01224     /*  The Same as MakePrismVecH but with scaling */
01225     GEOM_Object MakePrismVecHWithScaling (in GEOM_Object theBase,
01226                                           in GEOM_Object theVec,
01227                                           in double      theH,
01228                                           in double      theScaleFactor);
01229 
01237     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
01238                                  in GEOM_Object thePoint1,
01239                                  in GEOM_Object thePoint2);
01240     /*  The same prism but in two directions forward&backward */
01241     GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
01242                                       in GEOM_Object thePoint1,
01243                                       in GEOM_Object thePoint2);
01244     /*  The Same as MakePrismTwoPnt but with scaling */
01245     GEOM_Object MakePrismTwoPntWithScaling (in GEOM_Object theBase,
01246                                             in GEOM_Object thePoint1,
01247                                             in GEOM_Object thePoint2,
01248                                             in double      theScaleFactor);
01249 
01256     GEOM_Object MakePrismDXDYDZ (in GEOM_Object theBase,
01257                                    in double theDX, in double theDY, in double theDZ);
01258     /*  The same prism but in two directions forward&backward */
01259     GEOM_Object MakePrismDXDYDZ2Ways (in GEOM_Object theBase,
01260                                       in double theDX, in double theDY, in double theDZ);
01261     /*  The Same as MakePrismDXDYDZ but with scaling */
01262     GEOM_Object MakePrismDXDYDZWithScaling (in GEOM_Object theBase,
01263                                             in double theDX, in double theDY, in double theDZ,
01264                                             in double theScaleFactor);
01265 
01273     GEOM_Object MakePipe (in GEOM_Object theBase, in GEOM_Object thePath);
01274 
01284     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
01285                                          in GEOM_Object theAxis,
01286                                          in double theAngle);
01287     /*  The Same Revolution but in both ways forward&backward */
01288     GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
01289                                               in GEOM_Object theAxis,
01290                                               in double theAngle);
01291 
01302     GEOM_Object MakeFilling (in GEOM_Object theShape,
01303                              in long theMinDeg, in long theMaxDeg,
01304                              in double theTol2D, in double theTol3D,
01305                              in long theNbIter,
01306                              in filling_oper_method theMethod,
01307                              in boolean theApprox);
01308 
01317     GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
01318                                  in boolean theModeSolid,
01319                                  in double thePreci,
01320                                  in boolean theRuled);
01321 
01337     GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
01338                                                in ListOfGO theLocations,
01339                                                in GEOM_Object thePath,
01340                                                in boolean theWithContact ,
01341                                                in boolean theWithCorrection );
01342 
01359     GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
01360                                            in ListOfGO theSeqSubBases,
01361                                            in ListOfGO theLocations,
01362                                            in GEOM_Object thePath,
01363                                            in boolean theWithContact ,
01364                                            in boolean theWithCorrection );
01365 
01372     GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
01373                                            in ListOfGO theLocations);
01374 
01386     GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase,
01387                                              in GEOM_Object thePath,
01388                                              in GEOM_Object theVec);
01389 
01390   };
01391 
01397   interface GEOM_IShapesOperations : GEOM_IOperations
01398   {
01405     GEOM_Object MakeEdge (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
01406 
01417     GEOM_Object MakeEdgeOnCurveByLength (in GEOM_Object theRefCurve,
01418                                          in double      theLength,
01419                                          in GEOM_Object theStartPoint);
01420 
01428     GEOM_Object MakeEdgeWire (in GEOM_Object theWire,
01429                               in double theLinearTolerance,
01430                               in double theAngularTolerance);
01431 
01439     GEOM_Object MakeWire (in ListOfGO theEdgesAndWires,
01440                           in double   theTolerance);
01441 
01449     GEOM_Object MakeFace (in GEOM_Object theWire, in boolean isPlanarWanted);
01450 
01458     GEOM_Object MakeFaceWires (in ListOfGO theWires, in boolean isPlanarWanted);
01459 
01465     GEOM_Object MakeShell (in ListOfGO theFacesAndShells);
01466 
01472     GEOM_Object MakeSolidShell (in GEOM_Object theShell);
01473 
01479     GEOM_Object MakeSolidShells (in ListOfGO theShells);
01480 
01486     GEOM_Object MakeCompound (in ListOfGO theShapes);
01487 
01495     GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance, in boolean doKeepNonSolids);
01496 
01503     ListOfGO GetGlueFaces (in GEOM_Object theShape, in double theTolerance);
01504 
01517     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance,
01518                                      in ListOfGO theFaces, in boolean doKeepNonSolids,
01519                                      in boolean doGlueAllEdges);
01520 
01527     GEOM_Object MakeGlueEdges (in GEOM_Object theShape, in double theTolerance);
01528 
01535     ListOfGO GetGlueEdges (in GEOM_Object theShape, in double theTolerance);
01536 
01545     GEOM_Object MakeGlueEdgesByList (in GEOM_Object theShape,
01546                                      in double theTolerance,
01547                                      in ListOfGO theEdges);
01548 
01557     ListOfGO GetExistingSubObjects (in GEOM_Object theShape,
01558                                     in boolean     theGroupsOnly);
01559 
01563     ListOfGO MakeExplode (in GEOM_Object theShape,
01564                           in long        theShapeType,
01565                           in boolean     isSorted);
01566 
01576     ListOfGO MakeAllSubShapes (in GEOM_Object theShape,
01577                                in long        theShapeType,
01578                                in boolean     isSorted);
01579 
01589     ListOfGO ExtractSubShapes (in GEOM_Object theShape,
01590                                in long        theShapeType,
01591                                in boolean     isSorted);
01592 
01596     ListOfLong SubShapeAllIDs (in GEOM_Object theShape,
01597                                in long        theShapeType,
01598                                in boolean     isSorted);
01599 
01610     ListOfLong GetAllSubShapesIDs (in GEOM_Object theShape,
01611                                    in long        theShapeType,
01612                                    in boolean     isSorted);
01613 
01622     GEOM_Object GetSubShape (in GEOM_Object theMainShape,
01623                              in long        theID);
01624 
01633     ListOfGO MakeSubShapes (in GEOM_Object theMainShape,
01634                             in ListOfLong  theIndices);
01635 
01642     long GetSubShapeIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
01643 
01652     long GetTopologyIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
01653 
01663     string GetShapeTypeString (in GEOM_Object theShape);
01664 
01670     long NumberOfFaces (in GEOM_Object theShape);
01671 
01677     long NumberOfEdges (in GEOM_Object theShape);
01678 
01685     long NumberOfSubShapes (in GEOM_Object theShape,
01686                             in long        theShapeType);
01687 
01693     GEOM_Object ChangeOrientation (in GEOM_Object theShape);
01694 
01701     ListOfLong GetFreeFacesIDs (in GEOM_Object theShape);
01702 
01710     ListOfGO GetSharedShapes (in GEOM_Object theShape1,
01711                               in GEOM_Object theShape2,
01712                               in long        theShapeType);
01713 
01720     ListOfGO GetSharedShapesMulti (in ListOfGO theShapes,
01721                                    in long     theShapeType);
01722 
01733     ListOfGO GetShapesOnPlane (in GEOM_Object theShape,
01734                                in long        theShapeType,
01735                                in GEOM_Object theAx1,
01736                                in shape_state theState);
01748     ListOfGO GetShapesOnPlaneWithLocation (in GEOM_Object theShape,
01749                                            in long        theShapeType,
01750                                            in GEOM_Object theAx1,
01751                                            in GEOM_Object thePnt,
01752                                            in shape_state theState);
01753 
01754 
01755 
01767     ListOfGO GetShapesOnCylinder (in GEOM_Object theShape,
01768                                   in long        theShapeType,
01769                                   in GEOM_Object theAxis,
01770                                   in double      theRadius,
01771                                   in shape_state theState);
01772 
01785     ListOfGO GetShapesOnCylinderWithLocation (in GEOM_Object theShape,
01786                                               in long        theShapeType,
01787                                               in GEOM_Object theAxis,
01788                                               in GEOM_Object thePnt,
01789                                               in double      theRadius,
01790                                               in shape_state theState);
01791 
01802     ListOfGO GetShapesOnSphere (in GEOM_Object theShape,
01803                                 in long        theShapeType,
01804                                 in GEOM_Object theCenter,
01805                                 in double      theRadius,
01806                                 in shape_state theState);
01807 
01820     ListOfGO GetShapesOnQuadrangle (in GEOM_Object theShape,
01821                                     in long        theShapeType,
01822                                     in GEOM_Object theTopLeftPoint,
01823                                     in GEOM_Object theTopRigthPoint,
01824                                     in GEOM_Object theBottomLeftPoint,
01825                                     in GEOM_Object theBottomRigthPoint,
01826                                     in shape_state theState);
01827 
01838     ListOfLong GetShapesOnPlaneIDs (in GEOM_Object theShape,
01839                                     in long        theShapeType,
01840                                     in GEOM_Object theAx1,
01841                                     in shape_state theState);
01842 
01854     ListOfLong GetShapesOnPlaneWithLocationIDs (in GEOM_Object theShape,
01855                                                 in long        theShapeType,
01856                                                 in GEOM_Object theAx1,
01857                                                 in GEOM_Object thePnt,
01858                                                 in shape_state theState);
01859 
01871     ListOfLong GetShapesOnCylinderIDs (in GEOM_Object theShape,
01872                                        in long        theShapeType,
01873                                        in GEOM_Object theAxis,
01874                                        in double      theRadius,
01875                                        in shape_state theState);
01876 
01889     ListOfLong GetShapesOnCylinderWithLocationIDs (in GEOM_Object theShape,
01890                                                    in long        theShapeType,
01891                                                    in GEOM_Object theAxis,
01892                                                    in GEOM_Object thePnt,
01893                                                    in double      theRadius,
01894                                                    in shape_state theState);
01895 
01906     ListOfLong GetShapesOnSphereIDs (in GEOM_Object theShape,
01907                                      in long        theShapeType,
01908                                      in GEOM_Object theCenter,
01909                                      in double      theRadius,
01910                                      in shape_state theState);
01911 
01924     ListOfLong GetShapesOnQuadrangleIDs (in GEOM_Object theShape,
01925                                          in long        theShapeType,
01926                                          in GEOM_Object theTopLeftPoint,
01927                                          in GEOM_Object theTopRigthPoint,
01928                                          in GEOM_Object theBottomLeftPoint,
01929                                          in GEOM_Object theBottomRigthPoint,
01930                                          in shape_state theState);
01931 
01940     ListOfLong GetShapesOnBoxIDs (in GEOM_Object theBox,
01941                                   in GEOM_Object theShape,
01942                                   in long        theShapeType,
01943                                   in shape_state theState);
01944 
01953     ListOfGO GetShapesOnBox (in GEOM_Object theBox,
01954                              in GEOM_Object theShape,
01955                              in long        theShapeType,
01956                              in shape_state theState);
01957 
01966     ListOfLong GetShapesOnShapeIDs (in GEOM_Object theCheckShape,
01967                                     in GEOM_Object theShape,
01968                                     in short       theShapeType,
01969                                     in shape_state theState);
01970 
01979     ListOfGO GetShapesOnShape (in GEOM_Object theCheckShape,
01980                                in GEOM_Object theShape,
01981                                in short       theShapeType,
01982                                in shape_state theState);
01983 
01992     GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
01993                                             in GEOM_Object theShape,
01994                                             in short       theShapeType,
01995                                             in shape_state theState);
01996 
02004     GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
02005                             in GEOM_Object theShapeWhat);
02006 
02021     GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
02022                                      in GEOM_Object theShapeWhat);
02023 
02031     GEOM_Object GetSame (in GEOM_Object theShapeWhere,
02032                                 in GEOM_Object theShapeWhat);
02033   };
02034 
02040   interface GEOM_IBlocksOperations : GEOM_IOperations
02041   {
02052     GEOM_Object MakeQuad (in GEOM_Object theEdge1,
02053                           in GEOM_Object theEdge2,
02054                           in GEOM_Object theEdge3,
02055                           in GEOM_Object theEdge4);
02056 
02063     GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
02064                                 in GEOM_Object theEdge2);
02065 
02072     GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
02073                                    in GEOM_Object thePnt2,
02074                                    in GEOM_Object thePnt3,
02075                                    in GEOM_Object thePnt4);
02076 
02083     GEOM_Object MakeHexa (in GEOM_Object theFace1,
02084                           in GEOM_Object theFace2,
02085                           in GEOM_Object theFace3,
02086                           in GEOM_Object theFace4,
02087                           in GEOM_Object theFace5,
02088                           in GEOM_Object theFace6);
02089 
02096     GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
02097                                 in GEOM_Object theFace2);
02098 
02111     GEOM_Object GetPoint (in GEOM_Object theShape,
02112                           in double      theX,
02113                           in double      theY,
02114                           in double      theZ,
02115                           in double      theEpsilon);
02116 
02123     GEOM_Object GetVertexNearPoint (in GEOM_Object theShape,
02124                                     in GEOM_Object thePoint);
02125 
02132     GEOM_Object GetEdge (in GEOM_Object theShape,
02133                          in GEOM_Object thePoint1,
02134                          in GEOM_Object thePoint2);
02135 
02142     GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
02143                                   in GEOM_Object thePoint);
02144 
02151     GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
02152                                  in GEOM_Object thePoint1,
02153                                  in GEOM_Object thePoint2,
02154                                  in GEOM_Object thePoint3,
02155                                  in GEOM_Object thePoint4);
02156 
02163     GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
02164                                 in GEOM_Object theEdge1,
02165                                 in GEOM_Object theEdge2);
02166 
02173     GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
02174                                  in GEOM_Object theFace);
02175 
02182     GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
02183                                   in GEOM_Object thePoint);
02184 
02191     GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
02192                                   in GEOM_Object theVector);
02193 
02205     GEOM_Object GetShapesNearPoint (in GEOM_Object theShape,
02206                                     in GEOM_Object thePoint,
02207                                     in long        theShapeType,
02208                                     in double      theTolerance);
02209 
02223     boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
02224                                 in long        theMinNbFaces,
02225                                 in long        theMaxNbFaces,
02226                                 out long       theNbBlocks);
02227 
02231     enum BCErrorType
02232     {
02233       /* Each element of the compound should be a Block */
02234       NOT_BLOCK,
02235 
02236       /* An element is a potential block, but has degenerated and/or seam edge(s). */
02237       EXTRA_EDGE,
02238 
02239       /* A connection between two Blocks should be an entire face or an entire edge */
02240       INVALID_CONNECTION,
02241 
02242       /* The compound should be connexe */
02243       NOT_CONNECTED,
02244 
02245       /* The glue between two quadrangle faces should be applied */
02246       NOT_GLUED
02247     };
02248 
02252     struct BCError
02253     {
02254       BCErrorType error;
02255       ListOfLong  incriminated;
02256     };
02257 
02261     typedef sequence<BCError> BCErrors;
02262 
02276     boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
02277                                    out BCErrors   theErrors);
02278 
02286     string PrintBCErrors (in GEOM_Object theCompound,
02287                           in BCErrors    theErrors);
02288 
02299     GEOM_Object RemoveExtraEdges (in GEOM_Object theShape,
02300                                   in long        theOptimumNbFaces);
02301 
02309     GEOM_Object CheckAndImprove (in GEOM_Object theCompound);
02310 
02319     ListOfGO ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
02320                                       in long        theMinNbFaces,
02321                                       in long        theMaxNbFaces);
02322 
02330     GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
02331                                    in GEOM_Object thePoint);
02332 
02339     GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
02340                                  in ListOfGO    theParts);
02341 
02348     ListOfGO GetBlocksByParts (in GEOM_Object theCompound,
02349                                in ListOfGO    theParts);
02350 
02366     GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
02367                                            in long        theDirFace1,
02368                                            in long        theDirFace2,
02369                                            in long        theNbTimes);
02370 
02379     GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
02380                                            in long        theDirFace1U,
02381                                            in long        theDirFace2U,
02382                                            in long        theNbTimesU,
02383                                            in long        theDirFace1V,
02384                                            in long        theDirFace2V,
02385                                            in long        theNbTimesV);
02386 
02399     ListOfGO Propagate (in GEOM_Object theShape);
02400   };
02401 
02405   interface GEOM_IBooleanOperations : GEOM_IOperations
02406   {
02415     GEOM_Object MakeBoolean (in GEOM_Object theShape1,
02416                              in GEOM_Object theShape2,
02417                              in long theOperation);
02418 
02444     GEOM_Object MakePartition (in ListOfGO   theShapes,
02445                                in ListOfGO   theTools,
02446                                in ListOfGO   theKeepInside,
02447                                in ListOfGO   theRemoveInside,
02448                                in short      theLimit,
02449                                in boolean    theRemoveWebs,
02450                                in ListOfLong theMaterials,
02451                                in short      theKeepNonlimitShapes);
02452 
02466     GEOM_Object MakePartitionNonSelfIntersectedShape (in ListOfGO   theShapes,
02467                                                       in ListOfGO   theTools,
02468                                                       in ListOfGO   theKeepInside,
02469                                                       in ListOfGO   theRemoveInside,
02470                                                       in short      theLimit,
02471                                                       in boolean    theRemoveWebs,
02472                                                       in ListOfLong theMaterials,
02473                                                       in short      theKeepNonlimitShapes);
02474 
02481     GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
02482                                    in GEOM_Object thePlane);
02483   };
02484 
02489   interface GEOM_ICurvesOperations : GEOM_IOperations
02490   {
02498     GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
02499                                    in GEOM_Object theVec,
02500                                    in double theR);
02506     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
02507                                     in GEOM_Object thePnt2,
02508                                     in GEOM_Object thePnt3);
02515     GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
02516                                       in GEOM_Object thePnt2,
02517                                       in GEOM_Object thePnt3);
02526     GEOM_Object MakeEllipse (in GEOM_Object thePnt,
02527                              in GEOM_Object theVec,
02528                              in double theRMajor,
02529                              in double theRMinor);
02530 
02540     GEOM_Object MakeEllipseVec (in GEOM_Object thePnt,
02541                                 in GEOM_Object theVec,
02542                                 in double theRMajor,
02543                                 in double theRMinor,
02544                                 in GEOM_Object theVecMaj);
02545 
02553     GEOM_Object MakeArc (in GEOM_Object thePnt1,
02554                          in GEOM_Object thePnt2,
02555                          in GEOM_Object thePnt3);
02556 
02565     GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
02566                                in GEOM_Object thePnt1,
02567                                in GEOM_Object thePnt2,
02568                                in boolean theSense);
02569 
02578     GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter,
02579                                   in GEOM_Object thePnt1,
02580                                   in GEOM_Object thePnt2);
02581 
02582 
02589     GEOM_Object MakePolyline (in ListOfGO thePoints,
02590                               in boolean  theIsClosed);
02591 
02598     GEOM_Object MakeSplineBezier (in ListOfGO thePoints,
02599                                   in boolean  theIsClosed);
02600 
02609     GEOM_Object MakeSplineInterpolation (in ListOfGO thePoints,
02610                                          in boolean  theIsClosed,
02611                                          in boolean  theDoReordering);
02612 
02624     GEOM_Object MakeCurveParametric(in string thexExpr,
02625                         in string theyExpr,
02626                         in string thezExpr,
02627                         in double theParamMin,
02628                         in double theParamMax,
02629                         in double theParamStep,
02630                         in curve_type theCurveType);
02631 
02666     GEOM_Object MakeSketcher (in string theCommand, in ListOfDouble theWorkingPlane);
02667 
02676     GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates);
02677 
02687     GEOM_Object MakeSketcherOnPlane (in string theCommand, in GEOM_Object theWorkingPlane);
02688   };
02689 
02693   interface GEOM_ILocalOperations : GEOM_IOperations
02694   {
02701     GEOM_Object MakeFilletAll (in GEOM_Object theShape,
02702                                in double      theR);
02703 
02713     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
02714                                  in double      theR,
02715                                  in ListOfLong  theEdges);
02716     GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
02717                                      in double      theR1,
02718                                      in double      theR2,
02719                                      in ListOfLong  theEdges);
02720 
02730     GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
02731                                  in double      theR,
02732                                  in ListOfLong  theFaces);
02733 
02734     GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
02735                                      in double      theR1,
02736                                      in double      theR2,
02737                                      in ListOfLong  theFaces);
02738 
02748     GEOM_Object MakeFillet2D (in GEOM_Object theShape,
02749                               in double      theR,
02750                               in ListOfLong  theVertexes);
02751 
02763     GEOM_Object MakeFillet1D (in GEOM_Object theShape,
02764                               in double      theR,
02765                               in ListOfLong  theVertexes);
02766 
02773     GEOM_Object MakeChamferAll (in GEOM_Object theShape,
02774                                 in double      theD);
02775 
02787     GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
02788                                  in double theD1, in double theD2,
02789                                  in long theFace1, in long theFace2);
02794     GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
02795                                    in double theD, in double theAngle,
02796                                    in long theFace1, in long theFace2);
02797 
02811     GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
02812                                   in double theD1, in double theD2,
02813                                   in ListOfLong theFaces);
02818     GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
02819                                     in double theD, in double theAngle,
02820                                     in ListOfLong theFaces);
02821 
02830     GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
02831                                   in double theD1, in double theD2,
02832                                   in ListOfLong theEdges);
02837     GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
02838                                     in double theD, in double theAngle,
02839                                     in ListOfLong theEdges);
02840 
02851     GEOM_Object MakeArchimede (in GEOM_Object theShape,
02852                                in double theWeight,
02853                                in double theWaterDensity,
02854                                in double theMeshDeflection);
02855 
02860     long GetSubShapeIndex (in GEOM_Object theShape, in GEOM_Object theSubShape);
02861   };
02862 
02867   interface GEOM_IHealingOperations : GEOM_IOperations
02868   {
02879     GEOM_Object ProcessShape (in GEOM_Object theShapes,
02880                               in string_array theOperators,
02881                               in string_array theParameters,
02882                               in string_array theValues);
02883 
02893     void GetShapeProcessParameters (out string_array theOperators,
02894                                     out string_array theParameters,
02895                                     out string_array theValues);
02905     void GetOperatorParameters (in string theOperator,
02906                                 out string_array theParameters,
02907                                 out string_array theValues);
02908 
02916     GEOM_Object SuppressFaces (in GEOM_Object theObject, in short_array theFaces);
02917 
02927     GEOM_Object CloseContour (in GEOM_Object theObject, in short_array theWires,
02928                               in boolean isCommonVertex);
02929 
02937     GEOM_Object RemoveIntWires (in GEOM_Object theObject, in short_array theWires);
02938 
02946     GEOM_Object FillHoles (in GEOM_Object theObject, in short_array theWires);
02947 
02954     GEOM_Object Sew (in GEOM_Object theObject, in double theTolerance);
02955 
02967     GEOM_Object DivideEdge (in GEOM_Object theObject, in short theEdgeIndex,
02968                             in double theValue, in boolean isByParameter);
02969 
02978     boolean GetFreeBoundary (in GEOM_Object theObject,
02979                              out ListOfGO theClosedWires,
02980                              out ListOfGO theOpenWires);
02981 
02987     GEOM_Object ChangeOrientation (in GEOM_Object theObject);
02988     GEOM_Object ChangeOrientationCopy (in GEOM_Object theObject);
02989 
02996     GEOM_Object LimitTolerance (in GEOM_Object theObject, in double theTolerance);
02997 
02998   };
02999 
03004   interface GEOM_IInsertOperations : GEOM_IOperations
03005   {
03009     GEOM_Object MakeCopy (in GEOM_Object theOriginal);
03010 
03018     void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName);
03019 
03030     GEOM_Object ImportFile (in string theFileName, in string theFormatName);
03031 
03038     void ImportTranslators (out string_array theFormats,
03039                             out string_array thePatterns);
03040 
03047     void ExportTranslators (out string_array theFormats,
03048                             out string_array thePatterns);
03049 
03055     long LoadTexture(in string theTextureFile);
03056 
03064     long AddTexture(in long theWidth, in long theHeight, in SALOMEDS::TMPFile theTexture);
03065 
03073     SALOMEDS::TMPFile GetTexture(in long theID, out long theWidth, out long theHeight);
03074 
03079     ListOfLong GetAllTextures();
03080   };
03081 
03085   interface GEOM_IKindOfShape
03086   {
03087     enum shape_kind {
03088       NO_SHAPE,
03089       // COMPOSITEs
03090       COMPOUND,
03091       COMPSOLID,
03092       SHELL,
03093       WIRE,
03094       // SOLIDs
03095       SPHERE,       // full sphere
03096       CYLINDER,     // cylinder
03097       BOX,          // box with faces, parallel to global coordinate planes
03098       ROTATED_BOX,  // other box
03099       TORUS,        // full torus
03100       CONE,         // cone
03101       POLYHEDRON,   // solid, bounded by polygons
03102       SOLID,        // other solid
03103       // FACEs
03104       SPHERE2D,     // spherical face (closed)
03105       CYLINDER2D,   // cylindrical face with defined height
03106       TORUS2D,      // toroidal face (closed)
03107       CONE2D,       // conical face with defined height
03108       DISK_CIRCLE,  // planar, bounded by circle
03109       DISK_ELLIPSE, // planar, bounded by ellipse
03110       POLYGON,      // planar, bounded by segments
03111       PLANE,        // infinite planar
03112       PLANAR,       // other planar
03113       FACE,         // other face
03114       // EDGEs
03115       CIRCLE,       // full circle
03116       ARC_CIRCLE,   // arc of circle
03117       ELLIPSE,      // full ellipse
03118       ARC_ELLIPSE,  // arc of ellipse
03119       LINE,         // infinite segment
03120       SEGMENT,      // segment
03121       EDGE,         // other edge
03122       // VERTEX
03123       VERTEX,
03124       // ADVANCED shapes
03125       ADVANCED      // all advanced shapes (temporary implementation)
03126     };
03127   };
03128 
03129 
03135   interface GEOM_IMeasureOperations : GEOM_IOperations
03136   {
03147     //short KindOfShape (in GEOM_Object   theShape,
03148     GEOM_IKindOfShape::shape_kind KindOfShape (in  GEOM_Object  theShape,
03149                                                out ListOfLong   theIntegers,
03150                                                out ListOfDouble theDoubles);
03151 
03163     void GetPosition (in GEOM_Object theShape,
03164                       out double Ox, out double Oy, out double Oz,
03165                       out double Zx, out double Zy, out double Zz,
03166                       out double Xx, out double Xy, out double Xz);
03167 
03177     void GetBasicProperties (in GEOM_Object theShape,
03178                              out double theLength,
03179                              out double theSurfArea,
03180                              out double theVolume);
03181 
03187     GEOM_Object GetCentreOfMass (in GEOM_Object theShape);
03188 
03189     /*
03190      *  Get the vertex by index for 1D objects depends the edge/wire orientation
03191      *  \param theShape Shape (wire or edge) to find the vertex on it
03192      *  \param theIndex Index of vertex subshape
03193      *  \return New GEOM_Object, vertex.
03194      */
03195     GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long index );
03196 
03205     GEOM_Object GetNormal (in GEOM_Object theFace,
03206                            in GEOM_Object theOptionalPoint);
03207 
03215     void GetInertia (in GEOM_Object theShape,
03216                      out double I11, out double I12, out double I13,
03217                      out double I21, out double I22, out double I23,
03218                      out double I31, out double I32, out double I33,
03219                      out double Ix , out double Iy , out double Iz);
03220 
03229     void GetBoundingBox (in GEOM_Object theShape,
03230                          out double Xmin, out double Xmax,
03231                          out double Ymin, out double Ymax,
03232                          out double Zmin, out double Zmax);
03233 
03242     void GetTolerance (in GEOM_Object theShape,
03243                        out double FaceMin, out double FaceMax,
03244                        out double EdgeMin, out double EdgeMax,
03245                        out double VertMin, out double VertMax);
03246 
03253     boolean CheckShape (in GEOM_Object theShape,
03254                         out string     theDescription);
03255 
03262     boolean CheckShapeWithGeometry (in GEOM_Object theShape,
03263                                     out string     theDescription);
03264 
03270     string IsGoodForSolid (in GEOM_Object theShape);
03271 
03277     string WhatIs (in GEOM_Object theShape);
03278 
03287     ListOfBool AreCoordsInside(in GEOM_Object theShape, in ListOfDouble coords, in double tolerance);
03288 
03296     double GetMinDistance (in GEOM_Object theShape1, in GEOM_Object theShape2,
03297                            out double X1, out double Y1, out double Z1,
03298                            out double X2, out double Y2, out double Z2);
03299 
03305     double GetAngle (in GEOM_Object theShape1, in GEOM_Object theShape2);
03306 
03312     double GetAngleBtwVectors (in GEOM_Object theShape1, in GEOM_Object theShape2);
03313 
03317     void PointCoordinates (in GEOM_Object theShape, out double X, out double Y, out double Z);
03318 
03325     double CurveCurvatureByParam (in GEOM_Object theShape, in double theParam);
03326 
03333     double CurveCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
03334 
03342     double MaxSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam,
03343                                        in double theVParam);
03344 
03351     double MaxSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
03352 
03360     double MinSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam,
03361                                        in double theVParam);
03362 
03369     double MinSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
03370 
03371   };
03372 
03373 
03377   interface GEOM_IGroupOperations : GEOM_IOperations
03378   {
03385     GEOM_Object CreateGroup (in GEOM_Object theMainShape, in long theShapeType);
03386 
03393     void AddObject (in GEOM_Object theGroup, in long theSubShapeId);
03394 
03401     void RemoveObject (in GEOM_Object theGroup, in long theSubShapeId);
03402 
03408     void UnionList (in GEOM_Object theGroup, in ListOfGO theSubShapes);
03409 
03415     void DifferenceList (in GEOM_Object theGroup, in ListOfGO theSubShapes);
03416 
03422     void UnionIDs (in GEOM_Object theGroup, in ListOfLong theSubShapes);
03423 
03429     void DifferenceIDs (in GEOM_Object theGroup, in ListOfLong theSubShapes);
03430 
03435     long GetType (in GEOM_Object theGroup);
03436 
03442     GEOM_Object GetMainShape (in GEOM_Object theGroup);
03443 
03448     ListOfLong GetObjects (in GEOM_Object theGroup);
03449   };
03450 
03451 
03455   interface GEOM_IAdvancedOperations : GEOM_IOperations
03456   {
03470     ListOfGO MakePipeTShape (in double theR1, in double theW1, in double theL1,
03471                              in double theR2, in double theW2, in double theL2,
03472                              in boolean theHexMesh);
03490     ListOfGO MakePipeTShapeWithPosition (in double theR1, in double theW1, in double theL1,
03491                                          in double theR2, in double theW2, in double theL2,
03492                                          in boolean theHexMesh,
03493                                          in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
03510     ListOfGO MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1,
03511                                     in double theR2, in double theW2, in double theL2,
03512                                     in double theH, in double theW, in boolean theHexMesh);
03533     ListOfGO MakePipeTShapeChamferWithPosition (in double theR1, in double theW1, in double theL1,
03534                                                 in double theR2, in double theW2, in double theL2,
03535                                                 in double theH, in double theW, in boolean theHexMesh,
03536                                                 in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
03552     ListOfGO MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1,
03553                                    in double theR2, in double theW2, in double theL2,
03554                                    in double theRF, in boolean theHexMesh);
03574     ListOfGO MakePipeTShapeFilletWithPosition (in double theR1, in double theW1, in double theL1,
03575                                                in double theR2, in double theW2, in double theL2,
03576                                                in double theRF, in boolean theHexMesh,
03577                                                in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
03578     /*@@ insert new functions before this line @@ do not remove this line @@*/
03579   };
03580 
03585   interface GEOM_Gen : Engines::EngineComponent,SALOMEDS::Driver
03586   {
03591     void Undo (in long theStudyID);
03592 
03593     void Redo (in long theStudyID);
03594 
03601     SALOMEDS::SObject AddInStudy (in SALOMEDS::Study theStudy,
03602                                   in GEOM_Object theObject,
03603                                   in string theName,
03604                                   in GEOM_Object theFather);
03605 
03629     ListOfGO RestoreSubShapesO (in SALOMEDS::Study   theStudy,
03630                                 in GEOM_Object       theObject,
03631                                 in ListOfGO          theArgs,
03632                                 in find_shape_method theFindMethod,
03633                                 in boolean           theInheritFirstArg,
03634                                 in boolean           theAddPrefix);
03635 
03659     ListOfGO RestoreGivenSubShapesO (in SALOMEDS::Study   theStudy,
03660                                      in GEOM_Object       theObject,
03661                                      in ListOfGO          theArgs,
03662                                      in find_shape_method theFindMethod,
03663                                      in boolean           theInheritFirstArg,
03664                                      in boolean           theAddPrefix);
03665 
03672     ListOfGO RestoreSubShapesSO (in SALOMEDS::Study   theStudy,
03673                                  in SALOMEDS::SObject theSObject,
03674                                  in ListOfGO          theArgs,
03675                                  in find_shape_method theFindMethod,
03676                                  in boolean           theInheritFirstArg,
03677                                  in boolean           theAddPrefix);
03678 
03682     GEOM_IBasicOperations     GetIBasicOperations    (in long theStudyID) raises (SALOME::SALOME_Exception);
03683     GEOM_ITransformOperations GetITransformOperations(in long theStudyID) raises (SALOME::SALOME_Exception);
03684     GEOM_I3DPrimOperations    GetI3DPrimOperations   (in long theStudyID) raises (SALOME::SALOME_Exception);
03685     GEOM_IShapesOperations    GetIShapesOperations   (in long theStudyID) raises (SALOME::SALOME_Exception);
03686     GEOM_IBooleanOperations   GetIBooleanOperations  (in long theStudyID) raises (SALOME::SALOME_Exception);
03687     GEOM_ICurvesOperations    GetICurvesOperations   (in long theStudyID) raises (SALOME::SALOME_Exception);
03688     GEOM_ILocalOperations     GetILocalOperations    (in long theStudyID) raises (SALOME::SALOME_Exception);
03689     GEOM_IHealingOperations   GetIHealingOperations  (in long theStudyID) raises (SALOME::SALOME_Exception);
03690     GEOM_IInsertOperations    GetIInsertOperations   (in long theStudyID) raises (SALOME::SALOME_Exception);
03691     GEOM_IMeasureOperations   GetIMeasureOperations  (in long theStudyID) raises (SALOME::SALOME_Exception);
03692     GEOM_IBlocksOperations    GetIBlocksOperations   (in long theStudyID) raises (SALOME::SALOME_Exception);
03693     GEOM_IGroupOperations     GetIGroupOperations    (in long theStudyID) raises (SALOME::SALOME_Exception);
03694     GEOM_IAdvancedOperations  GetIAdvancedOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
03695 
03704     void RemoveObject (in GEOM_Object theObject);
03705 
03712     GEOM_Object GetObject (in long theStudyID, in string theEntry);
03713 
03721     GEOM_Object AddSubShape (in GEOM_Object theMainShape, in ListOfLong theIndices);
03722 
03731     GEOM_Object GetIORFromString (in string theIOR);
03732 
03737     string GetStringFromIOR (in GEOM_Object theObject);
03738 
03743     string GetDumpName (in string theStudyEntry);
03744 
03749     string_array GetAllDumpNames();
03750 
03756     ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy,
03757                                        //in SObject theSObject,
03758                                        in Object theObject);
03759   };
03760 };
03761 
03762 #endif
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS