-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
void RenumberNodes() throw (SALOME::SALOME_Exception);
void RenumberElements() throw (SALOME::SALOME_Exception);
- SMESH::ListOfGroups* RotationSweepObjects(const SMESH::ListOfIDSources & nodes,
- const SMESH::ListOfIDSources & edges,
- const SMESH::ListOfIDSources & faces,
+ SMESH::ListOfGroups* RotationSweepObjects(const SMESH::ListOfIDSources & Nodes,
+ const SMESH::ListOfIDSources & Edges,
+ const SMESH::ListOfIDSources & Faces,
const SMESH::AxisStruct & Axis,
CORBA::Double AngleInRadians,
CORBA::Long NbOfSteps,
CORBA::Double Tolerance,
- CORBA::Boolean toMakeGroups)
+ CORBA::Boolean ToMakeGroups)
throw (SALOME::SALOME_Exception);
- SMESH::ListOfGroups* ExtrusionSweepObjects(const SMESH::ListOfIDSources & nodes,
- const SMESH::ListOfIDSources & edges,
- const SMESH::ListOfIDSources & faces,
- const SMESH::DirStruct & stepVector,
- CORBA::Long nbOfSteps,
- const SMESH::double_array & theScaleFactors,
- CORBA::Boolean theLinearVariation,
- const SMESH::double_array & theBasePoint,
- CORBA::Boolean toMakeGroups)
+ SMESH::ListOfGroups* ExtrusionSweepObjects(const SMESH::ListOfIDSources & Nodes,
+ const SMESH::ListOfIDSources & Edges,
+ const SMESH::ListOfIDSources & Faces,
+ const SMESH::DirStruct & StepVector,
+ CORBA::Long NbOfSteps,
+ CORBA::Boolean ToMakeGroups,
+ const SMESH::double_array & ScaleFactors,
+ CORBA::Boolean ScalesVariation,
+ const SMESH::double_array & BasePoint,
+ const SMESH::double_array & Angles,
+ CORBA::Boolean AnglesVariation)
throw (SALOME::SALOME_Exception);
SMESH::ListOfGroups* ExtrusionByNormal(const SMESH::ListOfIDSources& objects,
throw (SALOME::SALOME_Exception);
SMESH::ListOfGroups*
- ExtrusionAlongPathObjects(const SMESH::ListOfIDSources & nodes,
- const SMESH::ListOfIDSources & edges,
- const SMESH::ListOfIDSources & faces,
+ ExtrusionAlongPathObjects(const SMESH::ListOfIDSources & Nodes,
+ const SMESH::ListOfIDSources & Edges,
+ const SMESH::ListOfIDSources & Faces,
SMESH::SMESH_IDSource_ptr PathMesh,
GEOM::GEOM_Object_ptr PathShape,
CORBA::Long NodeStart,
CORBA::Boolean HasAngles,
const SMESH::double_array & Angles,
- CORBA::Boolean LinearVariation,
+ CORBA::Boolean AnglesVariation,
CORBA::Boolean HasRefPoint,
const SMESH::PointStruct & RefPoint,
bool MakeGroups,
+ const SMESH::double_array & ScaleFactors,
+ CORBA::Boolean ScalesVariation,
SMESH::SMESH_MeshEditor::Extrusion_Error& Error)
throw (SALOME::SALOME_Exception);
SMESH::array_of_long_array_out GroupsOfNodes,
CORBA::Boolean SeparateCornersAndMedium)
throw (SALOME::SALOME_Exception);
- void FindCoincidentNodesOnPartBut(SMESH::SMESH_IDSource_ptr Object,
+ void FindCoincidentNodesOnPartBut(const SMESH::ListOfIDSources& Objects,
CORBA::Double Tolerance,
SMESH::array_of_long_array_out GroupsOfNodes,
const SMESH::ListOfIDSources& ExceptSubMeshOrGroups,
const SMESH::ListOfIDSources& NodesToKeep,
CORBA::Boolean AvoidMakingHoles )
throw (SALOME::SALOME_Exception);
- void FindEqualElements(SMESH::SMESH_IDSource_ptr Object,
+ void FindEqualElements(const SMESH::ListOfIDSources& Objects,
+ const SMESH::ListOfIDSources& ExceptSubMeshOrGroups,
SMESH::array_of_long_array_out GroupsOfElementsID)
throw (SALOME::SALOME_Exception);
- void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID)
+ void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID,
+ const SMESH::ListOfIDSources& ElementsToKeep)
throw (SALOME::SALOME_Exception);
void MergeEqualElements()
throw (SALOME::SALOME_Exception);
CORBA::Long ProjectPoint(CORBA::Double x,
CORBA::Double y,
CORBA::Double z,
- SMESH::SMESH_IDSource_ptr meshObject,
SMESH::ElementType type,
+ SMESH::SMESH_IDSource_ptr meshObject,
SMESH::double_array_out projecton)
throw (SALOME::SALOME_Exception);
CORBA::Boolean IsCoherentOrientation2D()
throw (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.
+ */
+ SMESH::array_of_long_array* Get1DBranches( SMESH::SMESH_IDSource_ptr edges,
+ CORBA::Long startNode,
+ SMESH::array_of_long_array_out nodeGroups)
+ throw (SALOME::SALOME_Exception);
+
/*!
* Return sharp edges of faces and non-manifold ones. Optionally adds existing edges.
*/
* be added.
*/
void MakePolyLine(SMESH::ListOfPolySegments& segments,
- const char* groupName)
+ const char* groupName)
+ throw (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
+ */
+ SMESH::ListOfEdges* MakeSlot(SMESH::SMESH_GroupBase_ptr segments,
+ CORBA::Double width)
throw (SALOME::SALOME_Exception);