-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014 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
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
/*!
* \brief Marker type
*/
- enum marker_type { MT_NONE, MT_POINT, MT_PLUS, MT_STAR, MT_O, MT_X, MT_O_POINT, MT_O_PLUS,
- MT_O_STAR, MT_O_X, MT_BALL, MT_RING1, MT_RING2, MT_RING3, MT_USER };
+ enum marker_type { MT_NONE, MT_POINT, MT_PLUS, MT_STAR, MT_X, MT_O, MT_O_POINT, MT_O_PLUS,
+ MT_O_STAR, MT_O_X, MT_RING1, MT_RING2, MT_RING3, MT_BALL, MT_USER };
/*!
* /brief Marker size
*/
long GetType();
+ /*!
+ * \brief Get value of a modification counter of the object
+ */
+ long GetTick();
+
/*!
* \brief Set a Study entry where this object was published.
*/
*/
GEOM_Object ProjectShapeCopy (in GEOM_Object theSource, in GEOM_Object theTarget);
+ /*!
+ * \brief Create a projection projection of the given point on a wire or
+ * an edge.
+ *
+ * If there are no solutions or there are 2 or more solutions It throws an
+ * exception.
+ * \param thePoint the point to be projected.
+ * \param theWire the wire. The edge is accepted as well.
+ * \param thePointOnEdge the projection point.
+ * \param theEdgeInWireIndex the index of an edge in a wire.
+ * \return the parameter of projection point on edge.
+ */
+ double ProjectPointOnWire (in GEOM_Object thePoint,
+ in GEOM_Object theWire,
+ out GEOM_Object thePointOnEdge,
+ out long theEdgeInWireIndex);
+
/*!
* \brief Scale the given object by the factor.
* \param theObject The object to be scaled.
* \param theShape2 Second argument for boolean operation.
* \param theOperation Indicates the operation to be done:
* 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
+ * \param IsCheckSelfInte If TRUE, perform check self intersection
+ * of arguments before an operation.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeBoolean (in GEOM_Object theShape1,
in GEOM_Object theShape2,
- in long theOperation);
+ in long theOperation,
+ in boolean IsCheckSelfInte);
+ /*!
+ * \brief Perform fusion boolean operation on two given shapes.
+ * \param theShape1 First argument for fuse operation.
+ * \param theShape2 Second argument for fuse operation.
+ * \param IsCheckSelfInte If TRUE, perform check self intersection
+ * of arguments before an operation.
+ * \param IsRmExtraEdges If TRUE, perform removal of extra edges
+ * during an operation.
+ * \return New GEOM_Object, containing the result shape.
+ */
+ GEOM_Object MakeFuse (in GEOM_Object theShape1,
+ in GEOM_Object theShape2,
+ in boolean IsCheckSelfInte,
+ in boolean IsRmExtraEdges);
/*!
* \brief Perform fusion boolean operation on list of objects.
* \param theShapes Shapes to be fused.
+ * \param IsCheckSelfInte If TRUE, perform check self intersection
+ * of arguments before an operation.
+ * \param IsRmExtraEdges If TRUE, perform removal of extra edges
+ * during an operation.
* \return New GEOM_Object, containing the result shape.
*/
- GEOM_Object MakeFuseList (in ListOfGO theShapes);
+ GEOM_Object MakeFuseList (in ListOfGO theShapes,
+ in boolean IsCheckSelfInte,
+ in boolean IsRmExtraEdges);
/*!
* \brief Perform common boolean operation on list of objects.
* \param theShapes Shapes for common operation.
+ * \param IsCheckSelfInte If TRUE, perform check self intersection
+ * of arguments before an operation.
* \return New GEOM_Object, containing the result shape.
*/
- GEOM_Object MakeCommonList (in ListOfGO theShapes);
+ GEOM_Object MakeCommonList (in ListOfGO theShapes,
+ in boolean IsCheckSelfInte);
/*!
* \brief Perform cutting of list of objects from theMainShape.
* \param theMainShape the object for cut operation.
* \param theShapes Shapes to be cut from theMainShape (tools).
+ * \param IsCheckSelfInte If TRUE, perform check self intersection
+ * of arguments before an operation.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeCutList (in GEOM_Object theMainShape,
- in ListOfGO theShapes);
+ in ListOfGO theShapes,
+ in boolean IsCheckSelfInte);
/*!
* \brief Perform partition operation.
* a compound containing nonintersected shapes. Performance will be better
* since intersection between shapes from compound is not performed.
*
- * Description of all parameters as in previous method MakePartition()
+ * Description of all parameters as in previous method MakePartition().
+ * One additional parameter is provided:
+ * \param IsCheckSelfInte If TRUE, perform check self intersection
+ * of arguments before an operation.
*
* \note Passed compounds (via ListShapes or via ListTools)
* have to consist of nonintersecting shapes.
in short theLimit,
in boolean theRemoveWebs,
in ListOfLong theMaterials,
- in short theKeepNonlimitShapes);
+ in short theKeepNonlimitShapes,
+ in boolean IsCheckSelfInte);
/*!
* \brief Perform partition of the Shape with the Plane
in long theParamNbStep,
in curve_type theCurveType);
+ /*!
+ * \brief Creates an isoline curve on a face.
+ * \param theFace the face for which an isoline is created.
+ * \param IsUIsoline True for U-isoline creation; False for V-isoline
+ * creation.
+ * \param theParameter the U parameter for U-isoline or V parameter
+ * for V-isoline.
+ * \return New GEOM_Object, containing the created isoline edge or a
+ * compound of edges.
+ */
+ GEOM_Object MakeIsoline(in GEOM_Object theFace,
+ in boolean IsUIsoline,
+ in double theParameter);
+
/*!
* \brief Create a sketcher (wire or face), following the textual description,
* passed through \a theCommand argument.
* If format 'IGES_SCALE' is used instead of 'IGES' or
* format 'STEP_SCALE' is used instead of 'STEP',
* file length unit will be ignored (set to 'meter') and result model will be scaled.
- * \return New GEOM_Object, containing the imported shape.
+ * \return List of GEOM_Object, containing the created shape and groups of materials.
*/
- GEOM_Object ImportFile (in string theFileName, in string theFormatName);
+ ListOfGO ImportFile (in string theFileName, in string theFormatName);
/*!
* \brief Read a value of parameter from a file, containing a shape.
* \return boolean indicating if export was successful.
*/
boolean ExportXAO(in GEOM_Object shape,
- in ListOfGO groups, in ListOfGO fields,
+ in ListOfGO groups, in ListOfFields fields,
in string author, in string fileName);
/*!
* \return boolean indicating if import was successful.
*/
boolean ImportXAO(in string fileName, out GEOM_Object shape,
- out ListOfGO subShapes, out ListOfGO groups, out ListOfGO fields);
+ out ListOfGO subShapes, out ListOfGO groups, out ListOfFields fields);
};
// # GEOM_IKindOfShape:
/*!
*
* Create a smoothing surface from a set of points
- * \param thelPoints list of points
+ * \param thelPoints list of points. Compounds of points are accepted as well.
+ * \param theNbMax maximum number of Bezier pieces in the resulting surface.
+ * \param theDegMax maximum degree of the resulting BSpline surface
+ * \param theDMax specifies maximum value of the GeomPlate_PlateG0Criterion criterion.
* \return New GEOM_Object, containing the created shape.
*/
- GEOM_Object MakeSmoothingSurface (in ListOfGO thelPoints);
+ GEOM_Object MakeSmoothingSurface (in ListOfGO thelPoints,
+ in long theNbMax,
+ in long theDegMax,
+ in double theDMax);
/*@@ insert new functions before this line @@ do not remove this line @@*/
};