X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshOp.h;h=8ca98864e66f2aec446b911d5fef3e9552ec5f33;hp=c7b11d43742bc5bcf1902ead812365699f4e1aa8;hb=6bac08c1a81f34d3f21c550bd92f83654b2546a5;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.h b/src/SMESHGUI/SMESHGUI_MeshOp.h index c7b11d437..8ca98864e 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.h +++ b/src/SMESHGUI/SMESHGUI_MeshOp.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -36,6 +36,7 @@ class HypothesesSet; class SMESHGUI_MeshDlg; class SMESHGUI_ShapeByMeshOp; class HypothesisData; +class SMESHGUI_GenericHypothesisCreator; /*! * \brief Operation for mech creation or editing @@ -48,6 +49,7 @@ class SMESHGUI_EXPORT SMESHGUI_MeshOp : public SMESHGUI_SelectionOp public: enum HypType{ Algo = 0, MainHyp, AddHyp, NbHypTypes }; + enum MeshType{ MT_ANY = 0, MT_TRIANGULAR, MT_QUADRILATERAL, MT_TETRAHEDRAL, MT_HEXAHEDRAL }; typedef std::pair THypItem; typedef QList< THypItem > THypList; @@ -83,6 +85,7 @@ protected slots: void processSet(); void onHypoCreated( int ); void onHypoEdited( int ); + void onAlgoSetByMeshType( const int, const int ); private: typedef QList THypDataList; // typedef: list of hypothesis data @@ -93,12 +96,12 @@ private: QStringList&, THypDataList&, HypothesisData* = 0 ) const; - static void existingHyps( const int, + void existingHyps( const int, const int, _PTR(SObject), QStringList&, THypList&, - HypothesisData* = 0 ); + HypothesisData* = 0 ) const; HypothesisData* hypData( const int, const int, const int ); // access to myAvailableHypData @@ -109,11 +112,16 @@ private: bool createMesh( QString&, QStringList& ); bool createSubMesh( QString&, QStringList& ); bool editMeshOrSubMesh( QString& ); + bool checkSubMeshConcurrency( SMESH::SMESH_Mesh_ptr mesh, + SMESH::SMESH_subMesh_ptr submesh, + bool askUser=false); int currentHyp( const int, const int ) const; + bool isSelectedHyp( int, int, int ) const; + int nbDlgHypTypes( const int ) const; bool isAccessibleDim( const int ) const; void setCurrentHyp( const int, const int, const int ); - void setDefaultName() const; + void setDefaultName( const QString& prefix="" ) const; SMESH::SMESH_Hypothesis_var getAlgo( const int ); void readMesh(); QString name( _PTR(SObject) ) const; @@ -121,28 +129,33 @@ private: const THypList& ) const; SMESH::SMESH_Hypothesis_var getInitParamsHypothesis( const QString&, const QString& ) const; + void initHypCreator( SMESHGUI_GenericHypothesisCreator* aCreator ); bool isSubshapeOk() const; char* isSubmeshIgnored() const; _PTR(SObject) getSubmeshByGeom() const; void selectObject( _PTR(SObject) ) const; + void createMeshTypeList( QStringList& ); + void setAvailableMeshType( const QStringList& ); + void setFilteredAlgoData( const int, const int ); private: + SMESHGUI_MeshDlg* myDlg; SMESHGUI_ShapeByMeshOp* myShapeByMeshOp; bool myToCreate; bool myIsMesh; bool myIsOnGeometry; //!< TRUE if edited mesh accotiated with geometrical object + bool myHasConcurrentSubBefore; TDim2Type2HypList myExistingHyps; //!< all hypothesis of SMESH module TDim2Type2HypList myObjHyps; //!< hypothesis assigned to the current // edited mesh/sub-mesh - // hypdata corresponding to hypotheses present in myDlg THypDataList myAvailableHypData[4][NbHypTypes]; - + THypDataList myFilteredAlgoData[4]; bool myIgnoreAlgoSelection; HypothesesSet* myHypoSet; - int myDim, myType; + int myDim, myType, myMaxShapeDim; QString myObjectToSelect; };