-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 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
/*!
* \brief Generate dim+1 elements by extrusion of elements along vector
- * \param nodes - nodes to extrude: a list including groups, sub-meshes or a mesh
- * \param edges - edges to extrude: a list including groups, sub-meshes or a mesh
- * \param faces - faces to extrude: a list including groups, sub-meshes or a mesh
- * \param stepVector - vector giving direction and distance of an extrusion step
- * \param nbOfSteps - number of elements to generate from one element
+ * \param nodes - nodes to extrude: a list including groups, sub-meshes or a mesh.
+ * \param edges - edges to extrude: a list including groups, sub-meshes or a mesh.
+ * \param faces - faces to extrude: a list including groups, sub-meshes or a mesh.
+ * \param stepVector - vector giving direction and distance of an extrusion step.
+ * \param nbOfSteps - number of elements to generate from one element.
* \param toMakeGroups - if true, new elements will be included into new groups
* corresponding to groups the input elements included in.
+ * \param scaleFactors - optional scale factors to apply during extrusion; it's
+ * usage depends on \a scalesVariation parameter.
+ * \param scalesVariation - if \c True, \a scaleFactors are spread over all \a NbOfSteps,
+ otherwise \a scaleFactors[i] is applied to nodes at the i-th extrusion step.
+ * \param angles - optional rotation angles to apply during extrusion; it's
+ * usage depends on \a anglesVariation parameter.
+ * \param anglesVariation - if \c True, \a angles are spread over all \a NbOfSteps,
+ otherwise \a angle[i] is applied to nodes at the i-th extrusion step.
* \return ListOfGroups - new groups created if \a toMakeGroups is true
*/
ListOfGroups ExtrusionSweepObjects(in ListOfIDSources nodes,
in ListOfIDSources faces,
in DirStruct stepVector,
in long nbOfSteps,
+ in boolean toMakeGroups,
in double_array scaleFactors,
- in boolean linearVariation,
+ in boolean scaleVariation,
in double_array basePoint,
- in boolean toMakeGroups)
+ in double_array angles,
+ in boolean angleVariation)
raises (SALOME::SALOME_Exception);
/*! Generates new elements by extrusion along the normal to a discretized surface or wire
EXTR_CANT_GET_TANGENT
};
- ListOfGroups ExtrusionAlongPathObjects(in ListOfIDSources Nodes,
- in ListOfIDSources Edges,
- in ListOfIDSources Faces,
+ ListOfGroups ExtrusionAlongPathObjects(in ListOfIDSources Nodes,
+ in ListOfIDSources Edges,
+ in ListOfIDSources Faces,
in SMESH_IDSource Path,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
- in boolean LinearVariation,
+ in boolean AnglesVariation,
in boolean HasRefPoint,
in PointStruct RefPoint,
in boolean MakeGroups,
+ in double_array ScaleFactors,
+ in boolean ScaleVariation,
out Extrusion_Error Error)
raises (SALOME::SALOME_Exception);
in boolean SeparateCornersAndMedium)
raises (SALOME::SALOME_Exception);
- void FindCoincidentNodesOnPartBut (in SMESH_IDSource SubMeshOrGroup,
+ void FindCoincidentNodesOnPartBut (in ListOfIDSources SubMeshOrGroup,
in double Tolerance,
out array_of_long_array GroupsOfNodes,
in ListOfIDSources ExceptSubMeshOrGroups,
* \param MeshOrSubMeshOrGroup Mesh or SubMesh, or Group of elements for searching.
* \return List of groups of equal elements.
*/
- void FindEqualElements (in SMESH_IDSource MeshOrSubMeshOrGroup,
+ void FindEqualElements (in ListOfIDSources MeshOrSubMeshOrGroup,
+ in ListOfIDSources ExceptSubMeshOrGroups,
out array_of_long_array GroupsOfElementsID)
raises (SALOME::SALOME_Exception);
* \brief Merge elements in each given group.
* \param GroupsOfElementsID Groups of elements for merging.
*/
- void MergeElements(in array_of_long_array GroupsOfElementsID)
+ void MergeElements(in array_of_long_array GroupsOfElementsID,
+ in SMESH::ListOfIDSources ElementsToKeep)
raises (SALOME::SALOME_Exception);
/*!
long ProjectPoint(in double x,
in double y,
in double z,
- in SMESH_IDSource meshObject,
in ElementType type,
+ in SMESH_IDSource meshObject,
out double_array projecton)
raises (SALOME::SALOME_Exception);
boolean IsCoherentOrientation2D()
raises (SALOME::SALOME_Exception);
+ /*!
+ * Partition given 1D elements into groups of contiguous edges.
+ * A node where number of meeting edges != 2 is a group end.
+ * An optional startNode is used to orient groups it belongs to.
+ * \return a list of edge groups and a list of corresponding node groups.
+ * If a group is closed, the first and last nodes of the group are same.
+ */
+ array_of_long_array Get1DBranches( in SMESH_IDSource edges,
+ in long startNode,
+ out array_of_long_array nodeGroups)
+ raises (SALOME::SALOME_Exception);
+
/*!
* Return sharp edges of faces and non-manifold ones.
* Optionally add existing edges. Angle is in degrees.
void MakePolyLine(inout ListOfPolySegments segments,
in string groupName)
raises (SALOME::SALOME_Exception);
+
+ /*!
+ * \brief Create a slot of given width around given 1D elements lying on a triangle mesh.
+ * The slot is constructed by cutting faces by cylindrical surfaces made
+ * around each segment. Segments are expected to be created by MakePolyLine().
+ * \return Edges located at the slot boundary
+ */
+ ListOfEdges MakeSlot( in SMESH_GroupBase segments,
+ in double width )
+ raises (SALOME::SALOME_Exception);
+
};
};