HEXAGON
};
+ /*!
+ * \brief Object creation parameters
+ *
+ * Is returned by GEOM_Object::GetCreationInformation()
+ */
+ struct Parameter
+ {
+ string name;
+ //any value;
+ string value;
+ };
+ typedef sequence<Parameter> Parameters;
+
+ struct CreationInformation
+ {
+ string operationName;
+ Parameters params;
+ };
+
typedef sequence<string> string_array;
typedef sequence<short> short_array;
interface GEOM_Object;
typedef sequence<GEOM_Object> ListOfGO;
+ typedef sequence<SALOMEDS::SObject> object_list;
//# GEOM_Object
/*!
* \brief Return list of notebook variables used for object creation separated by ":" symbol
*/
string GetParameters();
+
+ /*!
+ * \brief Return name of operation and values of parameters used for object creation
+ */
+ CreationInformation GetCreationInformation();
};
- // # GEOM_IOperations:
+ // # GEOM_IOperations:
/*!
* \brief Basic methods of all geometric operations
*/
* \brief Make a thick solid from a surface shape (face or shell)
* \param theObject Surface from which the thick solid is made
* \param theThickness Value of the thickness
+ * \param isCopy To make a copy of \a theObject ot to modify \a theObject.
* \return New GEOM_Object, containing the created pipe if isCopy = true
* or the modified object if isCopy = false
*/
GEOM_Object RemoveExtraEdges (in GEOM_Object theShape,
in long theOptimumNbFaces);
+ /*!
+ * \brief Performs union faces of \a theShape.
+ *
+ * Unite faces sharing one surface.
+ * \param theShape The compound or single solid that contains faces to perform union.
+ * \return Improved shape.
+ */
+ GEOM_Object UnionFaces (in GEOM_Object theShape);
+
/*!
* \brief Check, if the given shape is a blocks compound.
*
*/
GEOM_Object Sew (in GEOM_Object theObject, in double theTolerance);
+ /*!
+ * Sewing of the given object. Allows non-manifold sewing.
+ * \param theObject Shape to be processed.
+ * \param theTolerance Required tolerance value.
+ * \return New GEOM_Object, containing processed shape.
+ */
+ GEOM_Object SewAllowNonManifold(in GEOM_Object theObject, in double theTolerance);
+
+ /*!
+ * Rebuild the topology of theCompound of solids by removing
+ * of the faces that are shared by several solids.
+ * \param theCompound Shape to be processed.
+ * \return New GEOM_Object, containing processed shape.
+ */
+ GEOM_Object RemoveInternalFaces (in GEOM_Object theCompound);
+
/*!
* \brief Addition of a point to a given edge object.
* \param theObject Shape to be processed.
/*!
* \brief Get parameters of bounding box of the given shape
* \param theShape Shape to obtain bounding box of.
+ * \param precise TRUE for precise computation; FALSE for fast one.
* \param Xmin,Xmax Output. Limits of shape along OX axis.
* \param Ymin,Ymax Output. Limits of shape along OY axis.
* \param Zmin,Zmax Output. Limits of shape along OZ axis.
* \return Returns parameters of bounding box through the last six arguments.
*/
void GetBoundingBox (in GEOM_Object theShape,
+ in boolean precise,
out double Xmin, out double Xmax,
out double Ymin, out double Ymax,
out double Zmin, out double Zmax);
/*!
* \brief Get bounding box of the given shape
* \param theShape Shape to obtain bounding box of.
+ * \param precise TRUE for precise computation; FALSE for fast one.
* \return New GEOM_Object, containing the created bounding box.
*/
- GEOM_Object MakeBoundingBox (in GEOM_Object theShape);
+ GEOM_Object MakeBoundingBox (in GEOM_Object theShape,
+ in boolean precise);
/*!
* \brief Get min and max tolerances of sub-shapes of theShape
* \param theR Radius of the disk
* \param theRatio Relative size of the central square diagonal against the disk diameter
* \param theOrientation Plane on which the disk will be built
+ * \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created shape.
*/
GEOM_Object MakeDividedDisk (in double theR,
* \param theVec Vector, normal to the plane of the disk.
* \param theR Disk radius.
* \param theRatio Relative size of the central square diagonal against the disk diameter
+ * \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created disk.
*/
GEOM_Object MakeDividedDiskPntVecR ( in GEOM_Object thePnt,
* Builds a cylinder prepared for hexa meshes
* \param theR Radius of the cylinder
* \param theH Height of the cylinder
+ * \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON
* \return New GEOM_Object, containing the created shape.
*/
GEOM_Object MakeDividedCylinder (in double theR,
in double theH,
in pattern thePattern );
+ /*!
+ *
+ * Create a smoothing surface from a set of points
+ * \param thelPoints list of points
+ * \return New GEOM_Object, containing the created shape.
+ */
+ GEOM_Object MakeSmoothingSurface (in ListOfGO thelPoints);
/*@@ insert new functions before this line @@ do not remove this line @@*/
};
ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy,
//in SObject theSObject,
in Object theObject);
+
+ /*!
+ * \brief Creates a new folder
+ *
+ * Creates a new container (folder) for any GEOM objects.
+ * Folder will have name theName.
+ * If theFather is not NULL, the folder is placed under theFather object.
+ * Otherwise, the folder takes place under root 'Geometry' object.
+ *
+ * \param theName name of the folder
+ * \param theFather parent object
+ * \return SObject represented the created folder.
+ */
+ SALOMEDS::SObject CreateFolder (in string theName,
+ in SALOMEDS::SObject theFather);
+
+ /*!
+ * \brief Moves object to the specified folder
+ *
+ * The moved object should be first published in the study.
+ * \param theObject GEOM object to move
+ * \param theFolder target folder
+ */
+ void MoveToFolder (in GEOM_Object theObject,
+ in SALOMEDS::SObject theFolder);
+
+ /*!
+ * \brief Moves list of objects to the specified folder
+ *
+ * The moved objects should be first published in the study.
+ * \param theListOfGO list of GEOM objects to move
+ * \param theFolder target folder
+ */
+ void MoveListToFolder (in ListOfGO theListOfGO,
+ in SALOMEDS::SObject theFolder);
+
+ /*!
+ * \brief Moves objects to the specified position
+ *
+ * This function is used in the drag-n-drop functionality.
+ *
+ * \param what objects being moved
+ * \param where parent object where objects are moved to
+ * \param row position in the parent object's children list at which objects are moved
+ */
+ void Move( in object_list what,
+ in SALOMEDS::SObject where,
+ in long row );
};
};