-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
SI_ALL // all interferences
};
- /*!
+ /**
+ * This enumeration represents comparison conditions.
+ */
+ enum comparison_condition
+ {
+ CC_GT, ///< Greater then
+ CC_GE, ///< Greater then or equal to
+ CC_LT, ///< Less then
+ CC_LE ///< Less then or equal to
+ };
+
+ /*!
* \brief Object creation parameters
*
* Is returned by GEOM_Object::GetCreationInformation()
string operationName;
Parameters params;
};
+ typedef sequence<CreationInformation> CreationInformationSeq;
/*!
* \brief Reporting on shape healing
typedef sequence<long> ListOfLong;
typedef sequence<double> ListOfDouble;
typedef sequence<ListOfDouble> ListOfListOfDouble;
+ typedef sequence<ListOfLong> ListOfListOfLong;
+ interface GEOM_Gen;
interface GEOM_Object;
interface GEOM_BaseObject;
interface GEOM_Field;
string GetEntry();
/*!
- * \brief Get ID of study, where the object is created.
- */
- long GetStudyID();
-
- /*!
- * \brief Get internal type of the object (POINT, BOX, CYLINDER, EXTRUSION...).
+ * \brief Get internal type of operation created this object (POINT, BOX, CYLINDER, EXTRUSION...).
+ * \note To get topological information on the object, use \ref GEOM_IMeasureOperations::WhatIs() "WhatIs()"
+ * or \ref GEOM_IMeasureOperations::KindOfShape() "KindOfShape()" operation.
*/
long GetType();
/*!
* \brief Return name of operation and values of parameters used for object creation
*/
- CreationInformation GetCreationInformation();
+ CreationInformationSeq GetCreationInformation();
+
+ /*!
+ * \brief Return the engine creating this object
+ */
+ GEOM_Gen GetGen();
};
//# GEOM_Object
*
* This function is useful for the compounds only; for simple shapes it
* exactly the same value as GetShapeType().
- * Note, that compounds are procesed recursively.
+ * Note, that compounds are processed recursively.
*
* \sa GetShapeType(), GetTopologyType(), GetMaxShapeType()
*/
*
* This function is useful for the compounds only; for simple shapes it
* exactly the same value as GetShapeType().
- * Note, that compounds are procesed recursively.
+ * Note, that compounds are processed recursively.
*
* \sa GetShapeType(), GetTopologyType(), GetMinShapeType()
*/
shape_type GetMaxShapeType();
+ /*!
+ * \brief Returns a name of a sub-shape if the sub-shape is published in the study
+ * \param subID - sub-shape ID
+ * \return string - the found name or an empty string if the sub-shape does not
+ * exits or is not published in the study
+ *
+ * \note Only sub-shapes directly retrieved (using e.g. ExtractSubShapes() or
+ * via group creation) can be found. Also, as sub-shape can be published in the study
+ * many times, only the first found name is returned.
+ */
+ string GetSubShapeName(in long subID);
+
/*!
* \brief Set color of the object.
*
*/
GEOM_Object GetMainShape();
+ /*
+ * \brief Returns true if the current object has connection to a parametrical model
+ * which can be modified by parameters change.
+ */
+ boolean IsParametrical();
+
};
//# GEOM_Field
/*!
* \brief Set the operation error code
- * \param theErrorID is a string describing the error occured
+ * \param theErrorID is a string describing the error occurred
* \note This method is supposed to be used only by interfaces inheriting from IOperations.
*/
void SetErrorCode (in string theErrorID);
*/
string GetErrorCode();
- /*!
- * \brief Get ID of study, where the operation is defined
- */
- long GetStudyID();
-
/*!
* \brief Opens a new transaction
*/
void StartOperation();
/*!
- * \brief Closes the previously opened trasaction
+ * \brief Closes the previously opened transaction
*/
void FinishOperation();
* Create a point, corresponding to the given parameter on the given curve.
* \param theRefCurve The referenced curve.
* \param theParameter Value of parameter on the referenced curve.
+ * \param takeOrientationIntoAccount flag that tells if it is necessary
+ * to take the curve's orientation into account.
* \return New GEOM_Object, containing the created point.
*/
GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
- in double theParameter);
+ in double theParameter,
+ in boolean takeOrientationIntoAccount);
/*!
* \brief Create a point, corresponding to the given length on the given curve.
* \param theFace The referenced face.
* \return New GEOM_Object, containing the created point.
*/
- GEOM_Object MakePointOnFace (in GEOM_Object theFace);
+ GEOM_Object MakePointOnFace (in GEOM_Object theFace,
+ in long theNumberOfPnts);
/*!
* \brief Create a point, on two lines intersection.
GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
/*!
- * C\brief reate a line, passing through the given point
- * and parrallel to the given direction
+ * \brief Create a line, passing through the given point
+ * and parallel to the given direction
* \param thePnt Point. The resulting line will pass through it.
* \param theDir Direction. The resulting line will be parallel to it.
* \return New GEOM_Object, containing the created line.
* \brief Create a plane, passing through the three given points
* \param thePnt1 First of three points, defining the plane.
* \param thePnt2 Second of three points, defining the plane.
- * \param thePnt3 Fird of three points, defining the plane.
+ * \param thePnt3 Third of three points, defining the plane.
* \param theTrimSize Half size of a side of quadrangle face, representing the plane.
* \return New GEOM_Object, containing the created plane.
*/
* \brief Replace the given object by its offset.
* \param theObject The base object for the offset.
* \param theOffset Offset value.
+ * \param theJoinByPipes To join offset surfaces by pipes or by intersection.
* \return theObject.
*/
- GEOM_Object OffsetShape (in GEOM_Object theObject, in double theOffset);
+ GEOM_Object OffsetShape (in GEOM_Object theObject,
+ in double theOffset,
+ in boolean theJoinByPipes);
/*!
* \brief Create new object as offset of the given one.
* \param theObject The base object for the offset.
* \param theOffset Offset value.
+ * \param theJoinByPipes To join offset surfaces by pipes or by intersection.
* \return New GEOM_Object, containing the offset object.
*/
- GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, in double theOffset);
+ GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
+ in double theOffset,
+ in boolean theJoinByPipes);
/*!
* \brief Create new object as projection of the given one on a 2D surface.
* \return theObject.
*/
GEOM_Object RecomputeObject (in GEOM_Object theObject);
+
+ /*!
+ * \brief Compute the projection of a wire or a face on a cylinder.
+ *
+ * This method computes a wire or a face or a compound of faces
+ * that represents a projection of the source shape onto cylinder.
+ * The cylinder's coordinate system is the same as the global coordinate
+ * system.
+ *
+ * \param theObject The object to be projected. It can be either
+ * a planar wire or a face.
+ * \param theRadius The radius of the cylinder.
+ * \param theStartAngle The starting angle from the cylinder's X axis
+ * around Z axis. The angle from which the projection is started.
+ * \param theAngleLength The projection length angle. The angle in which
+ * to project the total length of the wire. If it is negative the
+ * projection is not scaled and natural wire length is kept for
+ * the projection.
+ * \param theAngleRotation the desired angle between the tangent vector
+ * to the first curve at the first point of the theObject's
+ * projection in 2D space and U-direction of cylinder's 2D space.
+ * \return A wire or a face or a compound of faces that represents a
+ * projection of the source shape onto a cylinder.
+ */
+ GEOM_Object MakeProjectionOnCylinder (in GEOM_Object theObject,
+ in double theRadius,
+ in double theStartAngle,
+ in double theAngleLength,
+ in double theAngleRotation);
};
/*!
/*!
- * \brief Add / Remove material to / from a solid by extrusion of the base shape on the given distance.
+ * \brief Add / Remove material to / from a solid by extrusion of the base shape on the given distance.
* \param theInitShape Initial shape on which to perform the feature.It has to be a solid or
* a compound made of a single solid
* \param theBase Edge or wire defining the base shape to be extruded.
* \param theHeight Prism dimension along the normal of the face.
* \param theAngle Draft angel in degrees
* \param theFuse If true material is added else material is removed
+ * \param theInvert If true material changes the direction
* \return New GEOM_Object, containing the modified shape
*/
GEOM_Object MakeDraftPrism (in GEOM_Object theInitShape,
in GEOM_Object theBase,
in double theHeight,
in double theAngle,
- in boolean theFuse);
+ in boolean theFuse,
+ in boolean theInvert);
/*!
* \brief Create a shape by extrusion of the base shape along
* the path shape. The path shape can be a wire or an edge.
* \param theBase Base shape to be extruded.
* \param thePath Path shape to extrude the base shape along it.
- * \return New GEOM_Object, containing the created pipe.
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
*/
- GEOM_Object MakePipe (in GEOM_Object theBase, in GEOM_Object thePath);
+ ListOfGO MakePipe (in GEOM_Object theBase,
+ in GEOM_Object thePath,
+ in boolean IsGenerateGroups);
/*!
* \brief Create a shape by revolution of the base shape around the axis
*
* The path shape can be a wire or an edge.
* the several profiles can be specified in the several locations of path.
- * \param theSeqBases - list of Bases shape to be extruded.
+ * \param theSeqBases - list of Bases shape to be extruded.
* \param theLocations - list of locations on the path corresponding
* specified list of the Bases shapes. Number of locations
* should be equal to number of bases or list of locations can be empty.
* \param thePath - Path shape to extrude the base shape along it.
* \param theWithContact - the mode defining that the section is translated to be in
- * contact with the spine.
+ * contact with the spine. Ignored if IsBySteps is set.
* \param theWithCorrection - defining that the section is rotated to be
- * orthogonal to the spine tangent in the correspondent point
- * \return New GEOM_Object, containing the created pipe.
- */
- GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
- in ListOfGO theLocations,
- in GEOM_Object thePath,
- in boolean theWithContact ,
- in boolean theWithCorrection );
+ * orthogonal to the spine tangent in
+ * the correspondent point. Ignored if IsBySteps is set.
+ * \param IsBySteps - flag that tells if the result should be created
+ * step by step or as a whole. If IsBySteps is set no correction
+ * of bases is allowed.
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeWithDifferentSections (in ListOfGO theSeqBases,
+ in ListOfGO theLocations,
+ in GEOM_Object thePath,
+ in boolean theWithContact ,
+ in boolean theWithCorrection,
+ in boolean IsBySteps,
+ in boolean IsGenerateGroups);
/*!
* \brief Create a shape by extrusion of the profile shape along
*
* The path shape can be a shell or a face.
* the several profiles can be specified in the several locations of path.
- * \param theSeqBases - list of Bases shape to be extruded.
+ * \param theSeqBases - list of Bases shape to be extruded.
* \param theSeqSubBases - list of corresponding sub-shapes of section shapes.
* \param theLocations - list of locations on the path corresponding
* specified list of the Bases shapes. Number of locations
* contact with the spine.
* \param theWithCorrection - defining that the section is rotated to be
* orthogonal to the spine tangent in the correspondent point
- * \return New GEOM_Object, containing the created pipe.
- */
- GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
- in ListOfGO theSeqSubBases,
- in ListOfGO theLocations,
- in GEOM_Object thePath,
- in boolean theWithContact ,
- in boolean theWithCorrection );
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeWithShellSections (in ListOfGO theSeqBases,
+ in ListOfGO theSeqSubBases,
+ in ListOfGO theLocations,
+ in GEOM_Object thePath,
+ in boolean theWithContact,
+ in boolean theWithCorrection,
+ in boolean IsGenerateGroups);
/*!
* \brief Create solids between given sections
* \param theSeqBases - list of sections (shell or face).
* \param theLocations - list of corresponding vertexes
- * \return New GEOM_Object, containing the created solids.
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
*/
- GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
- in ListOfGO theLocations);
+ ListOfGO MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
+ in ListOfGO theLocations,
+ in boolean IsGenerateGroups);
/*!
* \brief Create a shape by extrusion of the base shape along
* \param theBase Base shape to be extruded.
* \param thePath Path shape to extrude the base shape along it.
* \param theVec Vector defines a constant binormal direction to keep the
- * same angle beetween the Direction and the sections
+ * same angle between the Direction and the sections
* along the sweep surface.
- * \return New GEOM_Object, containing the created pipe.
- */
- GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase,
- in GEOM_Object thePath,
- in GEOM_Object theVec);
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeBiNormalAlongVector (in GEOM_Object theBase,
+ in GEOM_Object thePath,
+ in GEOM_Object theVec,
+ in boolean IsGenerateGroups);
/*!
- * \brief Make a thick solid from a surface shape (face or shell)
- * \param theObject Surface from which the thick solid is made
+ * \brief Make a thick solid from a shape.
+ *
+ * If the input is a surface shape (face or shell) the result is
+ * a thick solid. If an input shape is a solid the result is a hollowed
+ * solid with removed faces.
+ * \param theObject face or shell to get thick solid or solid to get
+ * hollowed solid.
+ * \param theFacesIDs the list of face IDs to be removed from the result.
+ * It can be empty.
* \param theThickness Value of the thickness
- * \param isCopy To make a copy of \a theObject ot to modify \a theObject.
+ * \param isCopy To make a copy of \a theObject or to modify \a theObject
+ * \param isInside If true the thickness is applied towards inside
* \return New GEOM_Object, containing the created pipe if isCopy = true
* or the modified object if isCopy = false
*/
GEOM_Object MakeThickening (in GEOM_Object theObject,
- in double theThickness,
- in boolean isCopy);
+ in ListOfLong theFacesIDs,
+ in double theThickness,
+ in boolean isCopy,
+ in boolean isInside);
/*!
in long theShapeType);
/*!
- * \brief Get all sub-shapes, shared by all shapes in the list \a theShapes.
+ * \brief Get sub-shapes, shared by input shapes.
* \param theShapes Shapes to find common sub-shapes of.
* \param theShapeType Type of sub-shapes to be retrieved.
- * \return List of objects, that are sub-shapes of all given shapes.
+ * \param theMultiShare Specifies what type of shares should be checked:
+ * - \c TRUE: search sub-shapes from 1st input shape shared with all other input shapes;
+ * - \c FALSE: causes to search sub-shapes shared between couples of input shapes.
+ * \note If \a theShapes contains single compound, the shares between all possible couples of
+ * its top-level shapes are returned; otherwise, only shares between 1st input shape
+ * and all rest input shapes are returned.
+ *
+ * \return List of all found sub-shapes.
*/
ListOfGO GetSharedShapesMulti (in ListOfGO theShapes,
- in long theShapeType);
+ in long theShapeType,
+ in boolean theMultiShare);
/*!
* \brief Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
* \param theShape Shape to find sub-shapes of.
* \param theShapeType Type of sub-shapes to be retrieved.
* \param theTopLeftPoint Top left quadrangle corner
- * \param theTopRigthPoint Top right quadrangle corner
+ * \param theTopRightPoint Top right quadrangle corner
* \param theBottomLeftPoint Bottom left quadrangle corner
- * \param theBottomRigthPoint Bottom right quadrangle corner
+ * \param theBottomRightPoint Bottom right quadrangle corner
* \param theState The state of the sub-shapes to find.
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnQuadrangle (in GEOM_Object theShape,
in long theShapeType,
in GEOM_Object theTopLeftPoint,
- in GEOM_Object theTopRigthPoint,
+ in GEOM_Object theTopRightPoint,
in GEOM_Object theBottomLeftPoint,
- in GEOM_Object theBottomRigthPoint,
+ in GEOM_Object theBottomRightPoint,
in shape_state theState);
/*!
* \param theShape Shape to find sub-shapes of.
* \param theShapeType Type of sub-shapes to be retrieved.
* \param theTopLeftPoint Top left quadrangle corner
- * \param theTopRigthPoint Top right quadrangle corner
+ * \param theTopRightPoint Top right quadrangle corner
* \param theBottomLeftPoint Bottom left quadrangle corner
- * \param theBottomRigthPoint Bottom right quadrangle corner
+ * \param theBottomRightPoint Bottom right quadrangle corner
* \param theState The state of the sub-shapes to find.
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnQuadrangleIDs (in GEOM_Object theShape,
in long theShapeType,
in GEOM_Object theTopLeftPoint,
- in GEOM_Object theTopRigthPoint,
+ in GEOM_Object theTopRightPoint,
in GEOM_Object theBottomLeftPoint,
- in GEOM_Object theBottomRigthPoint,
+ in GEOM_Object theBottomRightPoint,
in shape_state theState);
/*!
* coincident with \a theShapeWhat or could be a part of it.
* \param theShapeWhere Shape to find sub-shapes of.
* \param theShapeWhat Shape, specifying what to find.
- * \return Group of all found sub-shapes or a single found sub-shape.
+ * \return Compound which includes all found sub-shapes if they have different types;
+ * or group of all found shapes of the equal type; or a single found sub-shape.
*/
GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat);
*
* \param theShapeWhere Shape to find sub-shapes of.
* \param theShapeWhat Shape, specifying what to find.
- * \return Group of all found sub-shapes or a single found sub-shape.
+ * \return Compound which includes all found sub-shapes if they have different types;
+ * or group of all found shapes of the equal type; or a single found sub-shape.
*/
GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat);
+ /*!
+ * \brief A sort of GetInPlace functionality, returning for each sub-shape ID of
+ * \a theShapeWhat a list of corresponding sub-shape IDs of \a theShapeWhere.
+ * For example, if theShapeWhat is a box and theShapeWhere is this box cut into
+ * two parts by a plane, then the result can be as this:
+ * len( result_list ) = 35,
+ * result_list[ 1 ] = [ 2, 36 ], which means that the box turned into two solids
+ * with IDs 2 and 36 within theShapeWhere
+ */
+ ListOfListOfLong GetInPlaceMap (in GEOM_Object theShapeWhere,
+ in GEOM_Object theShapeWhat);
+
/*!
* \brief Get sub-shape of theShapeWhere, which are
* coincident with \a theShapeWhat that can either SOLID, FACE, EDGE or VERTEX.
*/
GEOM_Object MakeSurfaceFromFace(in GEOM_Object theFace);
+ /*!
+ * \brief Explode a shape into edges sorted in a row from a starting point.
+ * \param theShape - the shape to be exploded on edges.
+ * \param theStartPoint - the starting point.
+ * \return Ordered list of edges sorted in a row from a starting point.
+ */
+ ListOfGO GetSubShapeEdgeSorted (in GEOM_Object theShape,
+ in GEOM_Object theStartPoint);
+
+ /*!
+ * \brief Return the list of subshapes that satisfies a certain tolerance
+ * criterion. The user defines the type of shapes to be returned, the
+ * condition and the tolerance value. The operation is defined for
+ * faces, edges and vertices only. E.g. for theShapeType FACE, theCondition
+ * CC_GT and theTolerance 1.e-7 this method returns all faces of theShape
+ * that have tolerances greater then 1.e7.
+ *
+ * \param theShape the shape to be exploded
+ * \param theShapeType the type of shapes to be returned. Can have the
+ * values FACE, EDGE and VERTEX only.
+ * \param theCondition the condition type.
+ * \param theTolerance the tolerance filter.
+ * \return the list of shapes that satisfy the conditions.
+ */
+ ListOfGO GetSubShapesWithTolerance(in GEOM_Object theShape,
+ in short theShapeType,
+ in comparison_condition theCondition,
+ in double theTolerance);
+
+ /**
+ * This enumeration represents an extraction statistics type. It is used in
+ * the interface GEOM_IShapesOperations::MakeExtraction.
+ */
+ enum ExtractionStatType
+ {
+ EST_Removed, ///< Removed sub-shapes
+ EST_Modified, ///< Modified sub-shapes
+ EST_Added ///< Newly created sub-shapes
+ };
+
+ /*!
+ * This structure defines a format of extraction statistics. It is used in
+ * the interface GEOM_IShapesOperations::MakeExtraction.
+ */
+ struct ExtractionStat
+ {
+ ExtractionStatType type; ///< Type of extraction statistics.
+ ListOfLong indices; ///< Shape indices touched by this type of modification.
+ };
+
+ typedef sequence<ExtractionStat> ExtractionStats;
+
+ /*!
+ * \brief Return the shape that is constructed from theShape without
+ * extracted sub-shapes from the input list.
+ *
+ * \param theShape the original shape.
+ * \param theSubShapeIDs the list of sub-shape IDs to be extracted from
+ * the original shape.
+ * \param theStats the operation statistics. Output parameter.
+ * \return the shape without extracted sub-shapes.
+ */
+ GEOM_Object MakeExtraction(in GEOM_Object theShape,
+ in ListOfLong theSubShapeIDs,
+ out ExtractionStats theStats);
+
};
// # GEOM_IBlocksOperations:
/*!
* \brief Create a quadrangle face from four edges. Order of Edges is not
- * important. It is not necessary that edges share the same vertex.
+ * important. It is not necessary that edges share the same vertex.
* \param theEdge1,theEdge2,theEdge3,theEdge4 Edges for the face bound.
* \return New GEOM_Object, containing the created face.
*/
* \brief Create a hexahedral solid, bounded by the six given faces. Order of
* faces is not important.
*
- * It is not necessary that Faces share the same edge.
+ * It is not necessary that Faces share the same edge.
* \param theFace1,theFace2,theFace3,theFace4,theFace5,theFace6 Faces for the hexahedral solid.
* \return New GEOM_Object, containing the created solid.
*/
* - The glue between two quadrangle faces should be applied.
* \note Single block is also accepted as a valid compound of blocks.
* \param theCompound The compound to check.
+ * \param theToleranceC1 the tolerance to check if two neighbor edges are
+ * collinear in the common vertex with this tolerance. Negative
+ * value means that C1 criterion is not used (old implementation).
* \param theErrors Structure, containing discovered errors and incriminated sub-shapes.
* \return TRUE, if the given shape is a compound of blocks.
*/
boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
+ in double theToleranceC1,
out BCErrors theErrors);
/*!
* \brief Retrieve all non blocks solids and faces from a shape.
*
* \param theShape The shape to explore.
+ * \param theToleranceC1 the tolerance to check if two neighbor edges are
+ * collinear in the common vertex with this tolerance. Negative
+ * value means that C1 criterion is not used (old implementation).
* \param theNonQuads Output parameter. Group of all non quadrangular faces.
*
* \return Group of all non block solids (= not 6 faces, or with 6
* faces, but with the presence of non-quadrangular faces).
*/
- GEOM_Object GetNonBlocks (in GEOM_Object theShape, out GEOM_Object theNonQuads);
+ GEOM_Object GetNonBlocks (in GEOM_Object theShape,
+ in double theToleranceC1,
+ out GEOM_Object theNonQuads);
/*!
* \brief Remove all seam and degenerated edges from \a theShape.
*
* Propagation group is a set of all edges, opposite to one (main)
* edge of this group directly or through other opposite edges.
- * Notion of Opposite Edge make sence only on quadrangle face.
+ * Notion of Opposite Edge make sense only on quadrangle face.
* \param theShape Shape to build propagation groups on.
* \return List of GEOM_Object, each of them is a propagation group.
*/
* \param theRemoveInside Shapes, inside which the results will be deleted.
* Each shape from theRemoveInside must belong to theShapes also.
* \param theRemoveWebs If TRUE, perform Glue 3D algorithm.
- * \param theMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
+ * \param theMaterials Material indices for each shape. Make sense, only if theRemoveWebs is TRUE.
*
* \return New GEOM_Object, containing the result shapes.
*/
/*!
* \brief Perform partition operation.
*
- * This method may be usefull if it is needed to make a partition for
+ * This method may be useful if it is needed to make a partition for
* a compound containing nonintersected shapes. Performance will be better
* since intersection between shapes from compound is not performed.
*
* \param theShape Shape to be intersected.
* \param thePlane Tool shape, to intersect theShape.
* \return New GEOM_Object, containing the result shape.
+ *
+ * \note This operation is a shortcut to the more general \ref MakePartition
+ * operation, where \a theShape specifies single "object" (shape being partitioned)
+ * and \a thePlane specifies single "tool" (intersector shape). Other parameters of
+ * \ref MakePartition operation have default values:
+ * - \a theLimit: GEOM::SHAPE (shape limit corresponds to the type of \a theShape)
+ * - \a theKeepNonlimitShapes: 0
+ * - \a theKeepInside, \a theRemoveInside, \a theRemoveWebs,
+ * \a theMaterials (obsolete parameters): empty
+ *
+ * \sa MakePartition, MakePartitionNonSelfIntersectedShape
*/
GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
in GEOM_Object thePlane);
* \param theVertexes Global indices of vertexes to perform fillet on.
* \note Global index of sub-shape can be obtained, using method
* <VAR>GEOM_IShapesOperations.GetSubShapeIndex()</VAR>.
- * \note The list of vertices coudl be empty, in this case fillet fill be done
+ * \note The list of vertices could be empty, in this case fillet fill be done
* at all vertices in given wire
* \param doIgnoreSecantVertices If FALSE, fillet radius is always limited
* by the length of the edges, nearest to the fillet vertex.
in double theD1, in double theD2,
in long theFace1, in long theFace2);
/*!
- * \brief The Same but with params theD = Chamfer Lenght
+ * \brief The Same but with params theD = Chamfer Length
* and theAngle = Chamfer Angle (Angle in radians)
*/
GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
in double theD1, in double theD2,
in ListOfLong theFaces);
/*!
- * The Same but with params theD = Chamfer Lenght
+ * The Same but with params theD = Chamfer Length
* and theAngle = Chamfer Angle (Angle in radians)
*/
GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
in double theD1, in double theD2,
in ListOfLong theEdges);
/*!
- * The Same but with params theD = Chamfer Lenght
+ * The Same but with params theD = Chamfer Length
* and theAngle = Chamfer Angle (Angle in radians)
*/
GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
* \param theObjects Shapes to get free boundary of.
* \param theClosedWires Output. Closed wires on the free boundary of the given shape.
* \param theOpenWires Output. Open wires on the free boundary of the given shape.
- * \return FALSE, if an error(s) occured during the method execution.
+ * \return FALSE, if an error(s) occurred during the method execution.
*/
boolean GetFreeBoundary (in ListOfGO theObjects,
out ListOfGO theClosedWires,
SALOMEDS::TMPFile GetTexture(in long theID, out long theWidth, out long theHeight);
/*!
- * \brief Get list of all avaiable texture IDs
- * \return list of all texture IDs avaiable for the current study
+ * \brief Get list of all available texture IDs
+ * \return list of all texture IDs available for the current study
*/
ListOfLong GetAllTextures();
};
/*!
- * \brief Sequence of non-topological information tranfer data.
+ * \brief Sequence of non-topological information transfer data.
*/
typedef sequence<TransferDatum> ListOfTransferDatum;
* \param theResult statistics of the operation. Output parameter. It
* represents a sequence of Transfer Datum. A datum has the type
* (string code), the total number of items of this type and
- * the number of transfered items.
+ * the number of transferred items.
* \return true in case of success; otherwise false.
*/
boolean TransferData(in GEOM_Object theObjectFrom,
// VERTEX
VERTEX,
// ADVANCED shapes
+ LCS,
/*! all advanced shapes (temporary implementation) */
ADVANCED
};
* \brief Get summarized length of all wires,
* area of surface and volume of the given shape.
* \param theShape Shape to define properties of.
+ * \param theTolerance maximal relative error of area and volume computation.
* \param theLength Output. Summarized length of all wires of the given shape.
* \param theSurfArea Output. Area of surface of the given shape.
* \param theVolume Output. Volume of the given shape.
* \return Returns shape properties through the last three arguments.
*/
void GetBasicProperties (in GEOM_Object theShape,
+ in double theTolerance,
out double theLength,
out double theSurfArea,
out double theVolume);
GEOM_Object GetCentreOfMass (in GEOM_Object theShape);
/*
- * Get the vertex by index for 1D objects depends the edge/wire orientation
+ * Get the vertex by index for 1D objects
* \param theShape Shape (wire or edge) to find the vertex on it
* \param theIndex Index of vertex sub-shape
+ * \param theUseOri To consider edge/wire orientation or not
* \return New GEOM_Object, vertex.
*/
- GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long index );
+ GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long theIndex, in boolean theUseOri );
/*!
* \brief Get a vector, representing the normal of theFace.
in long theCheckLevel,
out ListOfLong theIntersections);
+ /*!
+ * \brief Detect self-intersections of the given shape with algorithm based on mesh intersections.
+ * \param theShape Shape to check validity of.
+ * \param theDeflection Linear deflection coefficient that specifies quality of tessellation.
+ * \param theTolerance Specifies a distance between sub-shapes used for detecting gaps:
+ * - if \a theTolerance <= 0, algorithm detects intersections
+ * - if \a theTolerance > 0, algorithm detects gaps
+ * \param theIntersections Output. List of intersected sub-shapes IDs, it contains pairs of IDs.
+ * \return TRUE, if the shape does not have any self-intersections.
+ */
+ boolean CheckSelfIntersectionsFast (in GEOM_Object theShape,
+ in float theDeflection,
+ in double theTolerance,
+ out ListOfLong theIntersections);
+
+ /*!
+ * \brief Check boolean and partition operations arguments.
+ * \param theShape the argument of an operation to be checked.
+ * \return TRUE if the argument is valid for a boolean or partition
+ * operation; FALSE otherwise.
+ */
+ boolean CheckBOPArguments (in GEOM_Object theShape);
+
/*!
* \brief Detect intersections of the given shapes with algorithm based on mesh intersections.
* \param theShape1 First source object
* \param theTolerance Specifies a distance between shapes used for detecting gaps:
* - if \a theTolerance <= 0, algorithm detects intersections
* - if \a theTolerance > 0, algorithm detects gaps
- * \param theDeflection Linear deflection coefficient that specifies quality of tesselation:
+ * \param theDeflection Linear deflection coefficient that specifies quality of tessellation:
* - if \a theDeflection <= 0, default deflection 0.001 is used
* \param theIntersections1 Output: contains list of sub-shapes IDs from 1st shape that localize intersection
* \param theIntersections2 Output: contains list of sub-shapes IDs from 2nd shape that localize intersection
*/
double GetAngleBtwVectors (in GEOM_Object theShape1, in GEOM_Object theShape2);
+ /*!
+ * \brief The function takes a single face with holes and returns a list of faces,
+ * first of them is the original face without holes, and the other faces are placed
+ * on the same surface as the original face but bounded by each hole wire.
+ * If the original face has no holes, it will be returned as an output
+ * \param theShape face, to perform operation.
+ * \return ListOfGO, containing the result original face and faces from holes.
+ */
+ ListOfGO PatchFace(in GEOM_Object theShape);
+
/*!
* \brief Get point coordinates
*/
*/
double MinSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint);
+ /*!
+ * \brief Get vector of curvature of surface in the given point along the given direction.
+ * \param theShape - face.
+ * \param thePoint - point.
+ * \param theDirection - direction.
+ * \note Before the calculation of curvature, the point and the direction
+ * are projected to the face, if the point does not lay on it or
+ * the direction is not tangent to it initially.
+ * \return Vector of curvature. The returned vector is codirectional with
+ * the normal to the face in the given point in case of positive
+ * curvature value and opposite to the normal in case of negative
+ * curvature. The normal of the returned vector is equal to the
+ * absolute value of the curvature.
+ */
+ GEOM_Object SurfaceCurvatureByPointAndDirection (in GEOM_Object theShape,
+ in GEOM_Object thePoint,
+ in GEOM_Object theDirection);
+
+ /*!
+ * \brief Convert X,Y,Z points coordinates to UV parameters on the given surface.
+ \param theSurf the given face. It can be also a shell or a compound with one face.
+ \param theXYZlist float list of size 3*N where N is the number of points
+ for which we want their U,V coordinates.
+ If the user enters a list of size not divisible by 3
+ an exception will be thrown.
+ \param theIsNormalized if True, the returned parameters will be in range [0, 1].
+ \return list of float of size 2*N.
+ */
+ ListOfDouble XYZtoUV(in GEOM_Object theSurf,
+ in ListOfDouble theXYZlist,
+ in boolean theIsNormalized);
+
+ /*!
+ * \brief Convert UV parameters on the given surface to 3D points coordinates.
+ \param theSurf the given face. It can be also a shell or a compound with one face.
+ \param theUVlist float list of size 2*N where N is the number of points
+ for which we want their X,Y,Z coordinates.
+ If the user enters a list of non-even size
+ an exception will be thrown.
+ \param theIsNormalized if True, the input parameters are expected to be in range [0, 1].
+ \return list of float of size 3*N.
+ */
+ ListOfDouble UVtoXYZ(in GEOM_Object theSurf,
+ in ListOfDouble theUVlist,
+ in boolean theIsNormalized);
+
+ //! Methods and structure for implement CheckConformity tool
+
+ /*!
+ * \brief Structure for store shapes from failed checks.
+ * If failed check on small edges, then second shape is null
+ */
+ struct PairOfShape
+ {
+ GEOM_Object first;
+ GEOM_Object second;
+ };
+
+ /*!
+ * \brief Structure for store result of check
+ * store type of check as number and failed shapes
+ */
+ struct CheckResult
+ {
+ long type;
+ PairOfShape failedShapes;
+ };
+
+ typedef sequence<PairOfShape> SequenceOfPairOfShape;
+ typedef sequence<CheckResult> CheckResults;
+
+ /*!
+ * \brief Perform analyse of shape and return all failed checks.
+ *
+ * \param theShape Shape for check.
+ */
+ CheckResults CheckConformityShape(in GEOM_Object theShape);
+
+ /*!
+ * \brief Find all self-intersected 2D curves.
+ *
+ * \param theResults result of check - list of failed checks and sub-shapes.
+ */
+ SequenceOfPairOfShape SelfIntersected2D(in CheckResults theResults);
+
+ /*!
+ * \brief Find pairs of interfering sub-shapes, by default all pairs of interfering shapes are returned.
+ * Avaliable types:
+ * - vertices touched by tolerance;
+ * - vertex touching an edge in the inner point;
+ * - vertex lying on the inner point of a face;
+ * - edges intersecting by inner points;
+ * - edge touching/intersecting face in the inner point;
+ * - faces intersection by inner point
+ *
+ * \param theResults result of check - list of failed checks and sub-shapes.
+ * \param theShapeType1 Type of shape.
+ * \param theShapeType2 Type of shape.
+ */
+ SequenceOfPairOfShape InterferingSubshapes(in CheckResults theResults,
+ in long theShapeType1,
+ in long theShapeType2);
+
+ /*!
+ * \brief Find edges, which are fully covered by tolerances of vertices.
+ *
+ * \param theResults result of check - list of failed checks and sub-shapes.
+ */
+ ListOfGO SmallEdges(in CheckResults theResults);
+
+ /*!
+ * \brief find remote objects (sub-shape on a shape).
+ * Avaliable types:
+ * - vertex far from edge;
+ * - vertex far from face;
+ * - edge far from face
+ *
+ * \param theResults result of check - list of failed checks and sub-shapes.
+ * \param theShapeType Type of shape.
+ * \param theSubShapeType Type of sub-shape.
+ * \param theTolerance tolerance, by default used tolerance of sub-shape.
+ */
+ SequenceOfPairOfShape DistantShapes(in CheckResults theResults,
+ in long theShapeType,
+ in long theSubShapeType,
+ in double theTolerance);
+
+ /*!
+ * \brief Compute possible tolerance for the shape, minimize tolerance of shape as well
+ * as tolerance of sub-shapes as much as possible
+ *
+ * \param theShape Shape for update.
+ */
+ double UpdateTolerance(in GEOM_Object theShape);
+
+ /*!
+ * \brief Get the calculator for the proximity value between the given shapes.
+ * \param theShape1,theShape2 Shapes to find proximity.
+ * \return The calculator object.
+ */
+ GEOM_Object ShapeProximityCalculator(in GEOM_Object theShape1, in GEOM_Object theShape2);
+
+ /*!
+ * \brief Set number sample points to compute the coarse proximity.
+ * \param theCalculator Proximity calculator.
+ * \param theShape Shape to be samples.
+ * \param theNbSamples Number of samples points.
+ */
+ void SetShapeSampling(in GEOM_Object theCalculator,
+ in GEOM_Object theShape,
+ in long theNbSamples);
+
+ /*!
+ * \brief Compute coarse value of the proximity basing on the polygonal representation of shapes.
+ * \param theCalculator Proximity calculator.
+ * \return Proximity value.
+ */
+ double GetCoarseProximity(in GEOM_Object theCalculator);
+
+ /*!
+ * \brief Compute precise value of the proximity basing on the exact shapes.
+ * \param theCalculator Proximity calculator.
+ * \return Proximity value.
+ */
+ double GetPreciseProximity(in GEOM_Object theCalculator);
+
};
// # GEOM_IGroupOperations:
interface GEOM_IGroupOperations : GEOM_IOperations
{
/*!
- * \brief Creates a new group which will store sub-shapes of theMainShape
+ * \brief Creates a new group which will store sub-shapes of theMainShape
* \param theMainShape is a GEOM_Object on which the group is selected
* \param theShapeType defines a shape type of the group
* \return a newly created GEOM group
void RemoveObject (in GEOM_Object theGroup, in long theSubShapeId);
/*!
- * \brief Adds to the group all the given shapes. No errors, if some shapes are alredy included.
+ * \brief Adds to the group all the given shapes. No errors, if some shapes are already included.
* \param theGroup is a GEOM group to which the new sub-shapes are added.
* \param theSubShapes is a list of sub-shapes to be added.
*/
void DifferenceList (in GEOM_Object theGroup, in ListOfGO theSubShapes);
/*!
- * \brief Adds to the group all the given shapes. No errors, if some shapes are alredy included.
+ * \brief Adds to the group all the given shapes. No errors, if some shapes are already included.
* \param theGroup is a GEOM group to which the new sub-shapes are added.
* \param theSubShapes is a list of IDs of sub-shapes to be added.
*/
long GetNbSubShapes(in GEOM_Object shape, in short fieldDim);
};
- // # GEOM_Gen:
+ // # GEOM_ITestOperations:
+ /*!
+ * \brief Interface for testing operations.
+ */
+ interface GEOM_ITestOperations : GEOM_IOperations
+ {
+ /*!
+ * \brief Build a mesh on the given shape.
+ * \param shape is a source object
+ * \param linearDeflection is a linear deflection
+ * \param isRelative says if given value of deflection is relative to shape's bounding box
+ * \param angularDeflection is an angular deflection for edges in radians
+ * \return true in case of success; otherwise false.
+ */
+ boolean Tesselate(in GEOM_Object shape, in double linearDeflection,
+ in boolean isRelative, in double angularDeflection);
+ };
+
+ // # GEOM_ICanonicalRecognition:
+ /*!
+ * \brief Interface for canonical recognition operations.
+ */
+ interface GEOM_ICanonicalRecognition : GEOM_IOperations
+ {
+ /*!
+ * check if the shape is planar
+ */
+ boolean isPlane(in GEOM_Object shape, in double tolerance, inout ListOfDouble normal, inout ListOfDouble origin);
+
+ /*!
+ * check if shape is spherical
+ */
+ boolean isSphere(in GEOM_Object shape, in double tolerance, inout ListOfDouble origin, inout double radius);
+
+ /*!
+ * check if shape is conical
+ */
+ boolean isCone(in GEOM_Object shape, in double tolerance, inout ListOfDouble axis, inout ListOfDouble apex, inout double halfAngle);
+
+ /*!
+ * check if shape is cylinder
+ */
+ boolean isCylinder(in GEOM_Object shape, in double tolerance, inout ListOfDouble axis, inout ListOfDouble origin, inout double radius);
+
+ /*!
+ * check if edge / wire is line
+ */
+ boolean isLine(in GEOM_Object edge, in double tolerance, inout ListOfDouble direction, inout ListOfDouble origin);
+
+ /*!
+ * check if edge / wire is circle
+ */
+ boolean isCircle(in GEOM_Object edge, in double tolerance, inout ListOfDouble normal, inout ListOfDouble origin, inout double radius);
+
+ /*!
+ * check if edge / wire is ellipse
+ */
+ boolean isEllipse(in GEOM_Object edge, in double tolerance, inout ListOfDouble normal, inout ListOfDouble dirX, inout ListOfDouble origin, inout double majorRadius, inout double minorRadius);
+ };
+
+ // # GEOM_Gen:
/*!
* \brief Interface to access other GEOM interfaces.
*
* \brief Undo/Redo Management
*/
- void Undo (in long theStudyID);
+ void Undo ();
- void Redo (in long theStudyID);
+ void Redo ();
/*!
* \brief Publishing management
* if theFather is not NULL the object is placed under thFather's SObject.
* Returns a SObject where theObject is placed
*/
- SALOMEDS::SObject AddInStudy (in SALOMEDS::Study theStudy,
- in GEOM_BaseObject theObject,
+ SALOMEDS::SObject AddInStudy (in GEOM_BaseObject theObject,
in string theName,
in GEOM_BaseObject theFather);
* \brief Publish sub-shapes, standing for arguments and sub-shapes of arguments
*
* To be used from python scripts out of geompy.addToStudy (non-default usage)
- * \param theStudy the study, in which theObject is published already,
- * and in which the arguments will be published
* \param theObject published GEOM_Object, arguments of which will be published
* \param theArgs list of GEOM_Object, operation arguments to be published.
* If this list is empty, all operation arguments will be published
* in place of sub-shapes of the first argument,
* because the whole shape corresponds to the first argument.
* Mainly to be used after transformations, but it also can be
- * usefull after partition with one object shape, and some other
+ * useful after partition with one object shape, and some other
* operations, where only the first argument has to be considered.
* If theObject has only one argument shape, this flag is automatically
* considered as True, not regarding really passed value.
* and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
* \return list of published sub-shapes
*/
- ListOfGO RestoreSubShapesO (in SALOMEDS::Study theStudy,
- in GEOM_Object theObject,
+ ListOfGO RestoreSubShapesO (in GEOM_Object theObject,
in ListOfGO theArgs,
in find_shape_method theFindMethod,
in boolean theInheritFirstArg,
* \brief Publish sub-shapes, standing for arguments and sub-shapes of arguments
*
* To be used from python scripts out of geompy.addToStudy (non-default usage)
- * \param theStudy the study, in which theObject is published already,
- * and in which the arguments will be published
* \param theObject published GEOM_Object, arguments of which will be published
* \param theArgs list of GEOM_Object, operation arguments to be published.
* If this list is empty, all operation arguments will be published
* in place of sub-shapes of the first argument,
* because the whole shape corresponds to the first argument.
* Mainly to be used after transformations, but it also can be
- * usefull after partition with one object shape, and some other
+ * useful after partition with one object shape, and some other
* operations, where only the first argument has to be considered.
* If theObject has only one argument shape, this flag is automatically
* considered as True, not regarding really passed value.
* and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
* \return list of published sub-shapes
*/
- ListOfGO RestoreGivenSubShapesO (in SALOMEDS::Study theStudy,
- in GEOM_Object theObject,
+ ListOfGO RestoreGivenSubShapesO (in GEOM_Object theObject,
in ListOfGO theArgs,
in find_shape_method theFindMethod,
in boolean theInheritFirstArg,
*
* To be used from GUI and from geompy.addToStudy.
* Work like the above method, but accepts study object theSObject instead of GEOM_Object.
- * \param theStudy the study, in which theObject is published already,
- * and in which the arguments will be published
* \param theSObject study object, referencing GEOM_Object, arguments of which will be published
* \param theArgs list of GEOM_Object, operation arguments to be published.
* If this list is empty, all operation arguments will be published
* in place of sub-shapes of the first argument,
* because the whole shape corresponds to the first argument.
* Mainly to be used after transformations, but it also can be
- * usefull after partition with one object shape, and some other
+ * useful after partition with one object shape, and some other
* operations, where only the first argument has to be considered.
* If theObject has only one argument shape, this flag is automatically
* considered as True, not regarding really passed value.
* \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
* and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
*/
- ListOfGO RestoreSubShapesSO (in SALOMEDS::Study theStudy,
- in SALOMEDS::SObject theSObject,
+ ListOfGO RestoreSubShapesSO (in SALOMEDS::SObject theSObject,
in ListOfGO theArgs,
in find_shape_method theFindMethod,
in boolean theInheritFirstArg,
// # Methods to access interfaces for objects creation and transformation
- GEOM_IBasicOperations GetIBasicOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_ITransformOperations GetITransformOperations(in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_I3DPrimOperations GetI3DPrimOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IShapesOperations GetIShapesOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IBooleanOperations GetIBooleanOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_ICurvesOperations GetICurvesOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_ILocalOperations GetILocalOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IHealingOperations GetIHealingOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IInsertOperations GetIInsertOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IMeasureOperations GetIMeasureOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IBlocksOperations GetIBlocksOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IGroupOperations GetIGroupOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
- GEOM_IFieldOperations GetIFieldOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
-
- GEOM_IOperations GetPluginOperations (in long theStudyID,
- in string theLibName) raises (SALOME::SALOME_Exception);
+ GEOM_IBasicOperations GetIBasicOperations () raises (SALOME::SALOME_Exception);
+ GEOM_ITransformOperations GetITransformOperations () raises (SALOME::SALOME_Exception);
+ GEOM_I3DPrimOperations GetI3DPrimOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IShapesOperations GetIShapesOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IBooleanOperations GetIBooleanOperations () raises (SALOME::SALOME_Exception);
+ GEOM_ICurvesOperations GetICurvesOperations () raises (SALOME::SALOME_Exception);
+ GEOM_ILocalOperations GetILocalOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IHealingOperations GetIHealingOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IInsertOperations GetIInsertOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IMeasureOperations GetIMeasureOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IBlocksOperations GetIBlocksOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IGroupOperations GetIGroupOperations () raises (SALOME::SALOME_Exception);
+ GEOM_IFieldOperations GetIFieldOperations () raises (SALOME::SALOME_Exception);
+ GEOM_ITestOperations GetITestOperations () raises (SALOME::SALOME_Exception);
+ GEOM_ICanonicalRecognition GetICanonicalRecognition() raises (SALOME::SALOME_Exception);
+
+ GEOM_IOperations GetPluginOperations (in string theLibName) raises (SALOME::SALOME_Exception);
// # Objects Management
/*!
* \brief Returns an object defined by the study and its entry in the GEOM component
- * \param theStudyID is a SALOMEDS Study ID
* \param theEntry is an entry of the requested GEOM_Object in the GEOM component
* \note if the object has not previously been created a NULL GEOM_Object is returned
*/
- GEOM_BaseObject GetObject (in long theStudyID, in string theEntry);
+ GEOM_BaseObject GetObject (in string theEntry);
/*!
* \brief Add a sub-shape defined by indices in \a theIndices
/*!
* \brief Returns a GEOM_Object defined by its IOR
- * \param theIOR a string containg an IOR of the requested GEOM_Object
+ * \param theIOR a string containing an IOR of the requested GEOM_Object
*/
GEOM_Object GetIORFromString (in string theIOR);
/*!
* \brief Publishes the named sub-shapes of given object in the study.
- * \param theStudy The study in which the object is published
* \param theObject The object which named sub-shapes are published
*/
- ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy,
- //in SObject theSObject,
+ ListOfGO PublishNamedShapesInStudy(//in SObject theSObject,
in Object theObject);
/*!
/*!
* \brief Collects dependencies of the given objects from other ones
- * \param theStudy The study in which the object is published
* \param theListOfEntries List of GEOM object entries in OCAF tree (not in study)
* \return Struct of dependent entries and its links as a byte array
* \note This method is supposed to be used by GUI only.
*/
- SALOMEDS::TMPFile GetDependencyTree(in SALOMEDS::Study theStudy,
- in string_array theListOfEntries);
+ SALOMEDS::TMPFile GetDependencyTree(in string_array theListOfEntries);
/*!
* \brief Fills 3 lists that is used to reduce study of redundant objects:
* - dependencies of the given objects from other ones;
* - children of the given objects;
* - all other objects in study.
- * \param theStudy The study in which the object was published
* \param theSelectedEntries List of GEOM object entries in OCAF tree
* \param theParentEntries List of GEOM object entries on which the given objects depend
* \param theSubEntries Children entries list of the given objects
* \param theOtherEntries List of GEOM object entries which are in the study, but not in parents and children lists
* \note This method is supposed to be used by GUI only.
*/
- void GetEntriesToReduceStudy(in SALOMEDS::Study theStudy,
- inout string_array theSelectedEntries,
- inout string_array theParentEntries,
- inout string_array theSubEntries,
- inout string_array theOtherEntries);
+ void GetEntriesToReduceStudy(inout string_array theSelectedEntries,
+ inout string_array theParentEntries,
+ inout string_array theSubEntries,
+ inout string_array theOtherEntries);
+
+ /*
+ * \brief Breaks links to parametrical mode for parametrical shape
+ */
+ void BreakLink(in string theEntry);
};
};