X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_MeshEditor_i.hxx;h=e0f054d5c978438a9b08129c9aefbccc9cade000;hp=07435e3a6fec2bd9f4243f68e7ea2455f72c92d0;hb=b13aae09cfc72606a138e92f34550ec45b72512e;hpb=ba9f67eab1d9fc864dc14e5bc9605d99d7793500 diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx index 07435e3a6..e0f054d5c 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.hxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.hxx @@ -1,4 +1,4 @@ -// 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 @@ -6,7 +6,7 @@ // 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 @@ -42,6 +42,7 @@ class SMESH_Mesh_i; namespace MeshEditor_I { struct TPreviewMesh; + struct ExtrusionParams; } class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor @@ -89,6 +90,7 @@ public: SMESH::SMESH_IDSource_ptr MakeIDSource(const SMESH::long_array& IDsOfElements, SMESH::ElementType type); static bool IsTemporaryIDSource( SMESH::SMESH_IDSource_ptr& idSource ); + static CORBA::Long* GetTemporaryIDs( SMESH::SMESH_IDSource_ptr& idSource, int& nbIds ); CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements) throw (SALOME::SALOME_Exception); @@ -202,6 +204,18 @@ public: const SMESH::DirStruct& theDirection, CORBA::Long theFace, const SMESH::PointStruct& thePoint) throw (SALOME::SALOME_Exception); + /*! + * \brief Reorient faces basing on orientation of adjacent volumes. + * \param faces - a list of objects containing face to reorient + * \param volumes - an object containing volumes. + * \param outsideNormal - to orient faces to have their normal + * pointing either \a outside or \a inside the adjacent volumes. + * \return number of reoriented faces. + */ + CORBA::Long Reorient2DBy3D(const SMESH::ListOfIDSources & faces, + SMESH::SMESH_IDSource_ptr volumes, + CORBA::Boolean outsideNormal) + throw (SALOME::SALOME_Exception); // Split/Join faces CORBA::Boolean TriToQuad (const SMESH::long_array & IDsOfElements, @@ -232,6 +246,12 @@ public: 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); CORBA::Boolean Smooth(const SMESH::long_array & IDsOfElements, const SMESH::long_array & IDsOfFixedNodes, @@ -339,6 +359,14 @@ public: const SMESH::DirStruct & StepVector, CORBA::Long NbOfSteps) throw (SALOME::SALOME_Exception); + SMESH::ListOfGroups* ExtrusionByNormal(SMESH::SMESH_IDSource_ptr object, + CORBA::Double stepSize, + CORBA::Long nbOfSteps, + CORBA::Boolean byAverageNormal, + CORBA::Boolean useInputElemsOnly, + CORBA::Boolean makeGroups, + CORBA::Short dim) + throw (SALOME::SALOME_Exception); void AdvancedExtrusion(const SMESH::long_array & theIDsOfElements, const SMESH::DirStruct & theStepVector, CORBA::Long theNbOfSteps, @@ -723,6 +751,10 @@ public: 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); @@ -912,12 +944,15 @@ public: * The nodes of the internal faces at the boundaries of the groups are doubled. * In option, the internal faces are replaced by flat elements. * Triangles are transformed in prisms, and quadrangles in hexahedrons. - * @param theDomains - list of groups of volumes - * @param createJointElems - if TRUE, create the elements - * @return TRUE if operation has been completed successfully, FALSE otherwise + * \param theDomains - list of groups of volumes + * \param createJointElems - if TRUE, create the elements + * \param onAllBoundaries - if TRUE, the nodes and elements are also create on + * the boundary between \a theDomains and the rest mesh + * \return TRUE if operation has been completed successfully, FALSE otherwise */ CORBA::Boolean DoubleNodesOnGroupBoundaries( const SMESH::ListOfGroups& theDomains, - CORBA::Boolean createJointElems ) + CORBA::Boolean createJointElems, + CORBA::Boolean onAllBoundaries ) throw (SALOME::SALOME_Exception); /*! * \brief Double nodes on some external faces and create flat elements. @@ -999,11 +1034,9 @@ private: //!< private methods const bool MakeGroups, const SMDSAbs_ElementType ElementType=SMDSAbs_All) throw (SALOME::SALOME_Exception); - SMESH::ListOfGroups* extrusionSweep(const SMESH::long_array & IDsOfElements, - const SMESH::DirStruct & StepVector, - CORBA::Long NbOfSteps, - bool MakeGroups, - const SMDSAbs_ElementType ElementType=SMDSAbs_All) + SMESH::ListOfGroups* extrusionSweep(const SMESH::long_array & IDsOfElements, + MeshEditor_I::ExtrusionParams& params, + const SMDSAbs_ElementType ElementType=SMDSAbs_All) throw (SALOME::SALOME_Exception); SMESH::ListOfGroups* advancedExtrusion(const SMESH::long_array & theIDsOfElements, const SMESH::DirStruct & theStepVector, @@ -1077,6 +1110,8 @@ private: //!< private methods string generateGroupName(const string& thePrefix); + void prepareIdSource(SMESH::SMESH_IDSource_ptr theObject); + private: //!< fields SMESH_Mesh_i* myMesh_i; @@ -1090,8 +1125,8 @@ private: //!< fields // temporary IDSources struct _IDSource; - std::list< _IDSource* > myAuxIDSources; - void deleteAuxIDSources(); + // std::list< _IDSource* > myAuxIDSources; + // void deleteAuxIDSources(); }; #endif