X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_MeshEditor_i.hxx;h=bce7c4c4c4c291ca722a823ed11ea2b0033537f2;hb=83811dbaaef9bb88b6ed0c5fe83fe1ab68d8d436;hp=e53011e772100d708b1108fe453d087f90f507c1;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx index e53011e77..bce7c4c4c 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 @@ -74,6 +74,10 @@ public: * not created - returns an empty list */ SMESH::long_array* GetLastCreatedElems() throw (SALOME::SALOME_Exception); + /*! + * \brief Clears sequences of last created elements and nodes + */ + void ClearLastCreated() throw (SALOME::SALOME_Exception); /*! * \brief Returns description of an error/warning occured during the last operation */ @@ -85,6 +89,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); @@ -198,6 +203,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, @@ -214,6 +231,8 @@ public: 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); @@ -226,6 +245,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, @@ -717,6 +742,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); @@ -906,12 +935,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. @@ -1071,6 +1103,8 @@ private: //!< private methods string generateGroupName(const string& thePrefix); + void prepareIdSource(SMESH::SMESH_IDSource_ptr theObject); + private: //!< fields SMESH_Mesh_i* myMesh_i; @@ -1084,8 +1118,8 @@ private: //!< fields // temporary IDSources struct _IDSource; - std::list< _IDSource* > myAuxIDSources; - void deleteAuxIDSources(); + // std::list< _IDSource* > myAuxIDSources; + // void deleteAuxIDSources(); }; #endif