-// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2011 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
#include "SMESH_Mesh.hxx"
#include "SMESH_PythonDump.hxx"
+#include "SMESH_MeshEditor.hxx"
#include <list>
class SMESH_MeshEditor;
/*!
* \brief Wrap a sequence of ids in a SMESH_IDSource
*/
- SMESH::SMESH_IDSource_ptr MakeIDSource(const SMESH::long_array& IDsOfElements);
-
+ SMESH::SMESH_IDSource_ptr MakeIDSource(const SMESH::long_array& IDsOfElements,
+ SMESH::ElementType type);
CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements);
CORBA::Boolean RemoveNodes(const SMESH::long_array & IDsOfNodes);
CORBA::Long RemoveOrphanNodes();
void FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr Object,
CORBA::Double Tolerance,
SMESH::array_of_long_array_out GroupsOfNodes);
+ void FindCoincidentNodesOnPartBut(SMESH::SMESH_IDSource_ptr Object,
+ CORBA::Double Tolerance,
+ SMESH::array_of_long_array_out GroupsOfNodes,
+ const SMESH::ListOfIDSources& ExceptSubMeshOrGroups);
void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
void FindEqualElements(SMESH::SMESH_IDSource_ptr Object,
SMESH::array_of_long_array_out GroupsOfElementsID);
*/
int GetMeshId() const { return myMesh->GetId(); }
- CORBA::Boolean DoubleNodes( const SMESH::long_array& theNodes,
+ CORBA::Boolean DoubleNodes( const SMESH::long_array& theNodes,
const SMESH::long_array& theModifiedElems );
CORBA::Boolean DoubleNode( CORBA::Long theNodeId,
const SMESH::ListOfGroups& theNodesNot,
GEOM::GEOM_Object_ptr theShape );
- /*!
- * \brief Generated skin mesh (containing 2D cells) from 3D mesh
- * The created 2D mesh elements based on nodes of free faces of boundary volumes
- * \return TRUE if operation has been completed successfully, FALSE otherwise
- */
- CORBA::Boolean Make2DMeshFrom3D();
+ /*!
+ * \brief Generated skin mesh (containing 2D cells) from 3D mesh
+ * The created 2D mesh elements based on nodes of free faces of boundary volumes
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ */
+ CORBA::Boolean Make2DMeshFrom3D();
+
+ SMESH::SMESH_Mesh_ptr MakeBoundaryMesh(SMESH::SMESH_IDSource_ptr elements,
+ SMESH::Bnd_Dimension dimension,
+ const char* groupName,
+ const char* meshName,
+ CORBA::Boolean toCopyElements,
+ CORBA::Boolean toCopyMissingBondary,
+ SMESH::SMESH_Group_out group);
- private: //!< private methods
+private: //!< private methods
SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
const bool MakeGroups,
const SMDSAbs_ElementType ElementType,
SMESH::SMESH_MeshEditor::Extrusion_Error & theError);
- SMESH::ListOfGroups* mirror(const SMESH::long_array & IDsOfElements,
+ SMESH::ListOfGroups* mirror(TIDSortedElemSet & IDsOfElements,
const SMESH::AxisStruct & Axis,
SMESH::SMESH_MeshEditor::MirrorType MirrorType,
CORBA::Boolean Copy,
const bool MakeGroups,
::SMESH_Mesh* TargetMesh=0);
- SMESH::ListOfGroups* translate(const SMESH::long_array & IDsOfElements,
+ SMESH::ListOfGroups* translate(TIDSortedElemSet & IDsOfElements,
const SMESH::DirStruct & Vector,
CORBA::Boolean Copy,
const bool MakeGroups,
::SMESH_Mesh* TargetMesh=0);
- SMESH::ListOfGroups* rotate(const SMESH::long_array & IDsOfElements,
+ SMESH::ListOfGroups* rotate(TIDSortedElemSet & IDsOfElements,
const SMESH::AxisStruct & Axis,
CORBA::Double Angle,
CORBA::Boolean Copy,
const bool MakeGroups,
::SMESH_Mesh* TargetMesh=0);
- SMESH::ListOfGroups* scale(const SMESH::long_array & theIDsOfElements,
- const SMESH::PointStruct& thePoint,
- const SMESH::double_array& theScaleFact,
- CORBA::Boolean theCopy,
- const bool theMakeGroups,
- ::SMESH_Mesh* theTargetMesh=0);
+ SMESH::ListOfGroups* scale(SMESH::SMESH_IDSource_ptr theObject,
+ const SMESH::PointStruct& thePoint,
+ const SMESH::double_array& theScaleFact,
+ CORBA::Boolean theCopy,
+ const bool theMakeGroups,
+ ::SMESH_Mesh* theTargetMesh=0);
SMESH::SMESH_Mesh_ptr makeMesh(const char* theMeshName);