X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_MeshEditor_i.hxx;h=d2f563f5420161292376fb34088f73dd267f8690;hb=f83eeba172516e213bf925fc0457100bdb3bff54;hp=72a5c31c24420448868d0fa324545933fa43cc77;hpb=3a821b48ba986795abde72f524fa1a62a5802df2;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx index 72a5c31c2..d2f563f54 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.hxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.hxx @@ -1,4 +1,4 @@ -// 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 @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses +// SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes // File : SMESH_MeshEditor_i.hxx // Author : Nicolas REJNERI // Module : SMESH @@ -65,27 +65,27 @@ public: /*! * Return data of mesh edition preview */ - SMESH::MeshPreviewStruct* GetPreviewData() throw (SALOME::SALOME_Exception); + SMESH::MeshPreviewStruct* GetPreviewData() ; /*! * If during last operation of MeshEditor some nodes were * created this method returns list of their IDs, if new nodes * not created - returns an empty list */ - SMESH::long_array* GetLastCreatedNodes() throw (SALOME::SALOME_Exception); + SMESH::long_array* GetLastCreatedNodes() ; /*! * If during last operation of MeshEditor some elements were * created this method returns list of their IDs, if new elements * not created - returns an empty list */ - SMESH::long_array* GetLastCreatedElems() throw (SALOME::SALOME_Exception); + SMESH::long_array* GetLastCreatedElems() ; /*! * \brief Clears sequences of last created elements and nodes */ - void ClearLastCreated() throw (SALOME::SALOME_Exception); + void ClearLastCreated() ; /*! * \brief Returns description of an error/warning occurred during the last operation */ - SMESH::ComputeError* GetLastError() throw (SALOME::SALOME_Exception); + SMESH::ComputeError* GetLastError() ; /*! * \brief Wrap a sequence of ids in a SMESH_IDSource @@ -95,38 +95,43 @@ public: static bool IsTemporaryIDSource( SMESH::SMESH_IDSource_ptr& idSource ); static CORBA::Long* GetTemporaryIDs( SMESH::SMESH_IDSource_ptr& idSource, int& nbIds ); + /*! + * \brief Generates the unique group name + */ + std::string GenerateGroupName(const std::string& thePrefix); + CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean RemoveNodes (const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception); + ; CORBA::Long RemoveOrphanNodes() - throw (SALOME::SALOME_Exception); + ; /*! * Methods for creation new elements. * Returns ID of created element or 0 if element not created */ CORBA::Long AddNode(CORBA::Double x, CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception); + ; CORBA::Long Add0DElement(CORBA::Long IDOfNode, CORBA::Boolean DuplicateElements) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddBall(CORBA::Long IDOfNodem, CORBA::Double diameter) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddEdge(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddFace(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddPolygonalFace(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddQuadPolygonalFace(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddVolume(const SMESH::long_array & IDsOfNodes) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddPolyhedralVolume(const SMESH::long_array & IDsOfNodes, const SMESH::long_array & Quantities) - throw (SALOME::SALOME_Exception); + ; CORBA::Long AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Create 0D elements on all nodes of the given object except those @@ -141,7 +146,7 @@ public: SMESH::SMESH_IDSource_ptr Create0DElementsOnAllNodes(SMESH::SMESH_IDSource_ptr theObject, const char* theGroupName, CORBA::Boolean theDuplicateElements) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Bind a node to a vertex @@ -149,7 +154,7 @@ public: * \param VertexID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0] */ void SetNodeOnVertex(CORBA::Long NodeID, CORBA::Long VertexID) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Store node position on an edge * \param NodeID - node ID @@ -158,7 +163,7 @@ public: */ void SetNodeOnEdge(CORBA::Long NodeID, CORBA::Long EdgeID, CORBA::Double paramOnEdge) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Store node position on a face * \param NodeID - node ID @@ -168,35 +173,35 @@ public: */ void SetNodeOnFace(CORBA::Long NodeID, CORBA::Long FaceID, CORBA::Double u, CORBA::Double v) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Bind a node to a solid * \param NodeID - node ID * \param SolidID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0] */ void SetNodeInVolume(CORBA::Long NodeID, CORBA::Long SolidID) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Bind an element to a shape * \param ElementID - element ID * \param ShapeID - shape ID available through GEOM_Object.GetSubShapeIndices()[0] */ void SetMeshElementOnShape(CORBA::Long ElementID, CORBA::Long ShapeID) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean MoveNode(CORBA::Long NodeID, CORBA::Double x, CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean InverseDiag(CORBA::Long NodeID1, CORBA::Long NodeID2) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean DeleteDiag(CORBA::Long NodeID1, CORBA::Long NodeID2) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean Reorient(const SMESH::long_array & IDsOfElements) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean ReorientObject(SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Reorient faces contained in \a the2Dgroup. @@ -210,7 +215,7 @@ public: CORBA::Long Reorient2D(SMESH::SMESH_IDSource_ptr the2Dgroup, const SMESH::DirStruct& theDirection, CORBA::Long theFace, - const SMESH::PointStruct& thePoint) throw (SALOME::SALOME_Exception); + const SMESH::PointStruct& thePoint) ; /*! * \brief Reorient faces basing on orientation of adjacent volumes. * \param faces - a list of objects containing face to reorient @@ -222,121 +227,123 @@ public: CORBA::Long Reorient2DBy3D(const SMESH::ListOfIDSources & faces, SMESH::SMESH_IDSource_ptr volumes, CORBA::Boolean outsideNormal) - throw (SALOME::SALOME_Exception); + ; // Split/Join CORBA::Boolean TriToQuad (const SMESH::long_array & IDsOfElements, SMESH::NumericalFunctor_ptr Criterion, CORBA::Double MaxAngle) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean TriToQuadObject (SMESH::SMESH_IDSource_ptr theObject, SMESH::NumericalFunctor_ptr Criterion, CORBA::Double MaxAngle) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean QuadToTri (const SMESH::long_array & IDsOfElements, SMESH::NumericalFunctor_ptr Criterion) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean QuadToTriObject (SMESH::SMESH_IDSource_ptr theObject, SMESH::NumericalFunctor_ptr Criterion) - throw (SALOME::SALOME_Exception); + ; void QuadTo4Tri (SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean SplitQuad (const SMESH::long_array & IDsOfElements, CORBA::Boolean Diag13) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean SplitQuadObject (SMESH::SMESH_IDSource_ptr theObject, CORBA::Boolean Diag13) - throw (SALOME::SALOME_Exception); + ; CORBA::Long BestSplit (CORBA::Long IDOfQuad, SMESH::NumericalFunctor_ptr Criterion) - throw (SALOME::SALOME_Exception); + ; void SplitVolumesIntoTetra(SMESH::SMESH_IDSource_ptr elems, CORBA::Short methodFlags) - throw (SALOME::SALOME_Exception); + ; void SplitHexahedraIntoPrisms(SMESH::SMESH_IDSource_ptr elems, const SMESH::PointStruct & startHexPoint, const SMESH::DirStruct& facetToSplitNormal, CORBA::Short methodFlags, CORBA::Boolean allDomains) - throw (SALOME::SALOME_Exception); + ; void SplitBiQuadraticIntoLinear(const SMESH::ListOfIDSources& elems) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean Smooth(const SMESH::long_array & IDsOfElements, const SMESH::long_array & IDsOfFixedNodes, CORBA::Long MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean SmoothObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::long_array & IDsOfFixedNodes, CORBA::Long MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean SmoothParametric(const SMESH::long_array & IDsOfElements, const SMESH::long_array & IDsOfFixedNodes, CORBA::Long MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean SmoothParametricObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::long_array & IDsOfFixedNodes, CORBA::Long MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean smooth(const SMESH::long_array & IDsOfElements, const SMESH::long_array & IDsOfFixedNodes, CORBA::Long MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method, bool IsParametric) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean smoothObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::long_array & IDsOfFixedNodes, CORBA::Long MaxNbOfIterations, CORBA::Double MaxAspectRatio, SMESH::SMESH_MeshEditor::Smooth_Method Method, bool IsParametric) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean ConvertFromQuadratic() - throw (SALOME::SALOME_Exception); + ; void ConvertFromQuadraticObject(SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception); + ; void ConvertToQuadratic(CORBA::Boolean Force3d) - throw (SALOME::SALOME_Exception); + ; void ConvertToQuadraticObject(CORBA::Boolean theForce3d, SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception); + ; void ConvertToBiQuadratic(CORBA::Boolean theForce3d, SMESH::SMESH_IDSource_ptr theObject) - throw (SALOME::SALOME_Exception); + ; - void RenumberNodes() throw (SALOME::SALOME_Exception); - void RenumberElements() throw (SALOME::SALOME_Exception); + void RenumberNodes() ; + void RenumberElements() ; - 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) - 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) - throw (SALOME::SALOME_Exception); + 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) + ; SMESH::ListOfGroups* ExtrusionByNormal(const SMESH::ListOfIDSources& objects, CORBA::Double stepSize, @@ -345,30 +352,32 @@ public: CORBA::Boolean useInputElemsOnly, CORBA::Boolean makeGroups, CORBA::Short dim) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* AdvancedExtrusion(const SMESH::long_array & theIDsOfElements, const SMESH::DirStruct & theStepVector, CORBA::Long theNbOfSteps, CORBA::Long theExtrFlags, CORBA::Double theSewTolerance, CORBA::Boolean theMakeGroups) - 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::double_array* LinearAnglesVariation(SMESH::SMESH_Mesh_ptr PathMesh, GEOM::GEOM_Object_ptr PathShape, @@ -378,152 +387,155 @@ public: const SMESH::AxisStruct & Axis, SMESH::SMESH_MeshEditor::MirrorType MirrorType, CORBA::Boolean Copy) - throw (SALOME::SALOME_Exception); + ; void MirrorObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::AxisStruct & Axis, SMESH::SMESH_MeshEditor::MirrorType MirrorType, CORBA::Boolean Copy) - throw (SALOME::SALOME_Exception); + ; void Translate(const SMESH::long_array & IDsOfElements, const SMESH::DirStruct & Vector, CORBA::Boolean Copy) - throw (SALOME::SALOME_Exception); + ; void TranslateObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::DirStruct & Vector, CORBA::Boolean Copy) - throw (SALOME::SALOME_Exception); + ; void Rotate(const SMESH::long_array & IDsOfElements, const SMESH::AxisStruct & Axis, CORBA::Double Angle, CORBA::Boolean Copy) - throw (SALOME::SALOME_Exception); + ; void RotateObject(SMESH::SMESH_IDSource_ptr theObject, const SMESH::AxisStruct & Axis, CORBA::Double Angle, CORBA::Boolean Copy) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* MirrorMakeGroups(const SMESH::long_array& IDsOfElements, const SMESH::AxisStruct& Mirror, SMESH::SMESH_MeshEditor::MirrorType MirrorType) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* MirrorObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object, const SMESH::AxisStruct& Mirror, SMESH::SMESH_MeshEditor::MirrorType MirrorType) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* TranslateMakeGroups(const SMESH::long_array& IDsOfElements, const SMESH::DirStruct& Vector) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* TranslateObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object, const SMESH::DirStruct& Vector) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* RotateMakeGroups(const SMESH::long_array& IDsOfElements, const SMESH::AxisStruct& Axis, CORBA::Double AngleInRadians) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* RotateObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object, const SMESH::AxisStruct& Axis, CORBA::Double AngleInRadians) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr MirrorMakeMesh(const SMESH::long_array& IDsOfElements, const SMESH::AxisStruct& Mirror, SMESH::SMESH_MeshEditor::MirrorType MirrorType, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr MirrorObjectMakeMesh(SMESH::SMESH_IDSource_ptr Object, const SMESH::AxisStruct& Mirror, SMESH::SMESH_MeshEditor::MirrorType MirrorType, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr TranslateMakeMesh(const SMESH::long_array& IDsOfElements, const SMESH::DirStruct& Vector, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr TranslateObjectMakeMesh(SMESH::SMESH_IDSource_ptr Object, const SMESH::DirStruct& Vector, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr RotateMakeMesh(const SMESH::long_array& IDsOfElements, const SMESH::AxisStruct& Axis, CORBA::Double AngleInRadians, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr RotateObjectMakeMesh(SMESH::SMESH_IDSource_ptr Object, const SMESH::AxisStruct& Axis, CORBA::Double AngleInRadians, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; void Scale(SMESH::SMESH_IDSource_ptr theObject, const SMESH::PointStruct& thePoint, const SMESH::double_array& theScaleFact, CORBA::Boolean theCopy) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* ScaleMakeGroups(SMESH::SMESH_IDSource_ptr theObject, const SMESH::PointStruct& thePoint, const SMESH::double_array& theScaleFact) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr ScaleMakeMesh(SMESH::SMESH_IDSource_ptr Object, const SMESH::PointStruct& Point, const SMESH::double_array& theScaleFact, CORBA::Boolean CopyGroups, const char* MeshName) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr Offset( SMESH::SMESH_IDSource_ptr theObject, CORBA::Double Value, CORBA::Boolean CopyGroups, + CORBA::Boolean CopyElements, const char* MeshName, SMESH::ListOfGroups_out Groups) - throw (SALOME::SALOME_Exception); + ; void FindCoincidentNodes (CORBA::Double Tolerance, SMESH::array_of_long_array_out GroupsOfNodes, CORBA::Boolean SeparateCornersAndMedium) - throw (SALOME::SALOME_Exception); + ; void FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr Object, CORBA::Double Tolerance, 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, CORBA::Boolean SeparateCornersAndMedium) - throw (SALOME::SALOME_Exception); + ; void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes, 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) - throw (SALOME::SALOME_Exception); + ; + void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID, + const SMESH::ListOfIDSources& ElementsToKeep) + ; void MergeEqualElements() - throw (SALOME::SALOME_Exception); + ; CORBA::Long MoveClosestNodeToPoint(CORBA::Double x, CORBA::Double y, CORBA::Double z, CORBA::Long nodeID) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Return ID of node closest to a given point */ CORBA::Long FindNodeClosestTo(CORBA::Double x, CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception); + ; /*! * Return elements of given type where the given point is IN or ON. * 'ALL' type means elements of any type excluding nodes @@ -532,7 +544,7 @@ public: CORBA::Double y, CORBA::Double z, SMESH::ElementType type) - throw (SALOME::SALOME_Exception); + ; /*! * Searching among the given elements, return elements of given type * where the given point is IN or ON. @@ -543,44 +555,78 @@ public: CORBA::Double y, CORBA::Double z, SMESH::ElementType type) - throw (SALOME::SALOME_Exception); + ; + + /*! + * Project a point to a mesh object. + * Return ID of an element of given type where the given point is projected + * and coordinates of the projection point. + * In the case if nothing found, return -1 and [] + */ + CORBA::Long ProjectPoint(CORBA::Double x, + CORBA::Double y, + CORBA::Double z, + SMESH::ElementType type, + SMESH::SMESH_IDSource_ptr meshObject, + SMESH::double_array_out projecton) + ; /*! * Return point state in a closed 2D mesh in terms of TopAbs_State enumeration. * TopAbs_UNKNOWN state means that either mesh is wrong or the analysis fails. */ CORBA::Short GetPointState(CORBA::Double x, CORBA::Double y, CORBA::Double z) - throw (SALOME::SALOME_Exception); + ; /*! * Check if a 2D mesh is manifold */ CORBA::Boolean IsManifold() - throw (SALOME::SALOME_Exception); + ; /*! * Check if orientation of 2D elements is coherent */ 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) + ; + + /*! + * Return sharp edges of faces and non-manifold ones. Optionally adds existing edges. + */ + SMESH::ListOfEdges* FindSharpEdges(CORBA::Double angle, CORBA::Boolean addExisting) + ; /*! * Returns all or only closed FreeBorder's. */ SMESH::ListOfFreeBorders* FindFreeBorders(CORBA::Boolean closedOnly) - throw (SALOME::SALOME_Exception); + ; /*! * Fill with 2D elements a hole defined by a FreeBorder. + * Optionally add new faces to a given group, which is returned */ - void FillHole(const SMESH::FreeBorder& hole) - throw (SALOME::SALOME_Exception); + SMESH::SMESH_Group_ptr FillHole(const SMESH::FreeBorder& hole, + const char* groupName) + ; SMESH::CoincidentFreeBorders* FindCoincidentFreeBorders(CORBA::Double tolerance); CORBA::Short SewCoincidentFreeBorders(const SMESH::CoincidentFreeBorders& freeBorders, CORBA::Boolean createPolygons, CORBA::Boolean createPolyedrs) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_MeshEditor::Sew_Error SewFreeBorders(CORBA::Long FirstNodeID1, @@ -590,13 +636,13 @@ public: CORBA::Long SecondNodeID2, CORBA::Long LastNodeID2, CORBA::Boolean CreatePolygons, - CORBA::Boolean CreatePolyedrs) throw (SALOME::SALOME_Exception); + CORBA::Boolean CreatePolyedrs) ; SMESH::SMESH_MeshEditor::Sew_Error SewConformFreeBorders(CORBA::Long FirstNodeID1, CORBA::Long SecondNodeID1, CORBA::Long LastNodeID1, CORBA::Long FirstNodeID2, - CORBA::Long SecondNodeID2) throw (SALOME::SALOME_Exception); + CORBA::Long SecondNodeID2) ; SMESH::SMESH_MeshEditor::Sew_Error SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder, CORBA::Long SecondNodeIDOnFreeBorder, @@ -604,14 +650,14 @@ public: CORBA::Long FirstNodeIDOnSide, CORBA::Long LastNodeIDOnSide, CORBA::Boolean CreatePolygons, - CORBA::Boolean CreatePolyedrs) throw (SALOME::SALOME_Exception); + CORBA::Boolean CreatePolyedrs) ; SMESH::SMESH_MeshEditor::Sew_Error SewSideElements(const SMESH::long_array& IDsOfSide1Elements, const SMESH::long_array& IDsOfSide2Elements, CORBA::Long NodeID1OfSide1ToMerge, CORBA::Long NodeID1OfSide2ToMerge, CORBA::Long NodeID2OfSide1ToMerge, - CORBA::Long NodeID2OfSide2ToMerge) throw (SALOME::SALOME_Exception); + CORBA::Long NodeID2OfSide2ToMerge) ; /*! * Set new nodes for given element. @@ -619,23 +665,23 @@ public: * element - returns false */ CORBA::Boolean ChangeElemNodes(CORBA::Long ide, const SMESH::long_array& newIDs) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Group_ptr DoubleElements(SMESH::SMESH_IDSource_ptr theElements, const char* theGroupName) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean DoubleNodes( const SMESH::long_array& theNodes, const SMESH::long_array& theModifiedElems ) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean DoubleNode( CORBA::Long theNodeId, const SMESH::long_array& theModifiedElems ) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean DoubleNodeGroup( SMESH::SMESH_GroupBase_ptr theNodes, SMESH::SMESH_GroupBase_ptr theModifiedElems ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements. @@ -647,15 +693,15 @@ public: */ SMESH::SMESH_Group_ptr DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, SMESH::SMESH_GroupBase_ptr theModifiedElems ) - throw (SALOME::SALOME_Exception); + ; CORBA::Boolean DoubleNodeGroups( const SMESH::ListOfGroups& theNodes, const SMESH::ListOfGroups& theModifiedElems ) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Group_ptr DoubleNodeGroupsNew( const SMESH::ListOfGroups& theNodes, const SMESH::ListOfGroups& theModifiedElems ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -670,7 +716,7 @@ public: CORBA::Boolean DoubleNodeElem( const SMESH::long_array& theElems, const SMESH::long_array& theNodesNot, const SMESH::long_array& theAffectedElems ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -686,7 +732,7 @@ public: CORBA::Boolean DoubleNodeElemInRegion( const SMESH::long_array& theElems, const SMESH::long_array& theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -700,7 +746,7 @@ public: CORBA::Boolean DoubleNodeElemGroup( SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, SMESH::SMESH_GroupBase_ptr theAffectedElems ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -715,14 +761,14 @@ public: SMESH::SMESH_Group_ptr DoubleNodeElemGroupNew( SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, SMESH::SMESH_GroupBase_ptr theAffectedElems ) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* DoubleNodeElemGroup2New(SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, SMESH::SMESH_GroupBase_ptr theAffectedElems, CORBA::Boolean theElemGroupNeeded, CORBA::Boolean theNodeGroupNeeded) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -737,7 +783,7 @@ public: CORBA::Boolean DoubleNodeElemGroupInRegion( SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -752,7 +798,7 @@ public: CORBA::Boolean DoubleNodeElemGroups( const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, const SMESH::ListOfGroups& theAffectedElems ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -767,14 +813,14 @@ public: SMESH::SMESH_Group_ptr DoubleNodeElemGroupsNew( const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, const SMESH::ListOfGroups& theAffectedElems ) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* DoubleNodeElemGroups2New(const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, const SMESH::ListOfGroups& theAffectedElems, CORBA::Boolean theElemGroupNeeded, CORBA::Boolean theNodeGroupNeeded) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -790,7 +836,7 @@ public: CORBA::Boolean DoubleNodeElemGroupsInRegion( const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Identify the elements that will be affected by node duplication (actual duplication is not performed. @@ -806,7 +852,7 @@ public: SMESH::ListOfGroups* AffectedElemGroupsInRegion( const SMESH::ListOfGroups& theElems, const SMESH::ListOfGroups& theNodesNot, GEOM::GEOM_Object_ptr theShape ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Double nodes on shared faces between groups of volumes and create flat elements on demand. @@ -823,7 +869,7 @@ public: CORBA::Boolean DoubleNodesOnGroupBoundaries( const SMESH::ListOfGroups& theDomains, CORBA::Boolean createJointElems, CORBA::Boolean onAllBoundaries ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Double nodes on some external faces and create flat elements. * Flat elements are mainly used by some types of mechanic calculations. @@ -834,7 +880,7 @@ public: * @return TRUE if operation has been completed successfully, FALSE otherwise */ CORBA::Boolean CreateFlatElementsOnFacesGroups( const SMESH::ListOfGroups& theGroupsOfFaces ) - throw (SALOME::SALOME_Exception); + ; /*! * \brief identify all the elements around a geom shape, get the faces delimiting the hole @@ -847,7 +893,7 @@ public: const char* groupName, const SMESH::double_array& theNodesCoords, SMESH::array_of_long_array_out GroupsOfNodes) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Generated skin mesh (containing 2D cells) from 3D mesh @@ -855,7 +901,7 @@ public: * \return TRUE if operation has been completed successfully, FALSE otherwise */ CORBA::Boolean Make2DMeshFrom3D() - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr MakeBoundaryMesh(SMESH::SMESH_IDSource_ptr elements, SMESH::Bnd_Dimension dimension, @@ -864,7 +910,7 @@ public: CORBA::Boolean toCopyElements, CORBA::Boolean toCopyMissingBondary, SMESH::SMESH_Group_out group) - throw (SALOME::SALOME_Exception); + ; CORBA::Long MakeBoundaryElements(SMESH::Bnd_Dimension dimension, const char* groupName, @@ -873,7 +919,7 @@ public: const SMESH::ListOfIDSources& groups, SMESH::SMESH_Mesh_out mesh, SMESH::SMESH_Group_out group) - throw (SALOME::SALOME_Exception); + ; /*! * \brief Create a polyline consisting of 1D mesh elements each lying on a 2D element of @@ -892,8 +938,18 @@ public: * be added. */ void MakePolyLine(SMESH::ListOfPolySegments& segments, - const char* groupName) - throw (SALOME::SALOME_Exception); + const char* groupName) + ; + + /*! + * \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) + ; private: //!< private methods @@ -915,7 +971,7 @@ public: * \brief Return groups by their IDs */ SMESH::ListOfGroups* getGroups(const std::list* groupIDs) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* mirror(TIDSortedElemSet & IDsOfElements, const SMESH::AxisStruct & Axis, @@ -923,20 +979,20 @@ public: CORBA::Boolean Copy, bool MakeGroups, ::SMESH_Mesh* TargetMesh=0) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* translate(TIDSortedElemSet & IDsOfElements, const SMESH::DirStruct & Vector, CORBA::Boolean Copy, bool MakeGroups, ::SMESH_Mesh* TargetMesh=0) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* rotate(TIDSortedElemSet & IDsOfElements, const SMESH::AxisStruct & Axis, CORBA::Double Angle, CORBA::Boolean Copy, bool MakeGroups, ::SMESH_Mesh* TargetMesh=0) - throw (SALOME::SALOME_Exception); + ; SMESH::ListOfGroups* scale(SMESH::SMESH_IDSource_ptr theObject, const SMESH::PointStruct& thePoint, @@ -944,20 +1000,18 @@ public: CORBA::Boolean theCopy, bool theMakeGroups, ::SMESH_Mesh* theTargetMesh=0) - throw (SALOME::SALOME_Exception); + ; void convertToQuadratic(CORBA::Boolean theForce3d, CORBA::Boolean theToBiQuad, SMESH::SMESH_IDSource_ptr theObject = SMESH::SMESH_IDSource::_nil()) - throw (SALOME::SALOME_Exception); + ; SMESH::SMESH_Mesh_ptr makeMesh(const char* theMeshName); void dumpGroupsList(SMESH::TPythonDump & theDumpPython, const SMESH::ListOfGroups * theGroupList); - std::string generateGroupName(const std::string& thePrefix); - void prepareIdSource(SMESH::SMESH_IDSource_ptr theObject);