X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Gen.hxx;h=17dbe35e63070eb57b0dbbd36bdd81b74d7ed242;hb=2875648bdbc323df97bdb879b60673a2de776889;hp=c74d398bff88d50be355148ec888b049b941cc48;hpb=0b959120c59670d73c0a1f6d46bfa72a6ceb49cf;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_Gen.hxx b/src/SMESH/SMESH_Gen.hxx index c74d398bf..17dbe35e6 100644 --- a/src/SMESH/SMESH_Gen.hxx +++ b/src/SMESH/SMESH_Gen.hxx @@ -1,18 +1,36 @@ -//============================================================================= -// File : SMESH_Gen.hxx -// Created : jeu mai 16 22:53:13 CEST 2002 -// Author : Paul RASCLE, EDF -// Project : SALOME -// Copyright : EDF 2002 -// $Header$ -//============================================================================= +// SMESH SMESH : implementaion of SMESH idl descriptions +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SMESH_Gen.hxx +// Author : Paul RASCLE, EDF +// Module : SMESH +// $Header$ #ifndef _SMESH_GEN_HXX_ #define _SMESH_GEN_HXX_ #include "Utils_SALOME_Exception.hxx" -#include "SMESH_HypothesisFactory.hxx" #include "SMESH_Hypothesis.hxx" #include "SMESH_Algo.hxx" #include "SMESH_1D_Algo.hxx" @@ -26,51 +44,63 @@ #include + typedef struct studyContextStruct { - map mapHypothesis; - map mapMesh; - Handle (SMESHDS_Document) myDocument; -} StudyContextStruct ; + std::map < int, SMESH_Hypothesis * >mapHypothesis; + std::map < int, SMESH_Mesh * >mapMesh; + SMESHDS_Document * myDocument; +} StudyContextStruct; class SMESH_Gen { -public: + public: SMESH_Gen(); ~SMESH_Gen(); - SMESH_Hypothesis* CreateHypothesis(const char* anHyp, int studyId) - throw (SALOME_Exception); - SMESH_Mesh* Init(int studyId, const TopoDS_Shape& aShape) - throw (SALOME_Exception); - bool Compute(::SMESH_Mesh& aMesh, const TopoDS_Shape& aShape) - throw (SALOME_Exception); - StudyContextStruct* GetStudyContext(int studyId); +// SMESH_Hypothesis *CreateHypothesis(const char *anHyp, int studyId) +// throw(SALOME_Exception); + SMESH_Mesh* CreateMesh(int studyId) + throw(SALOME_Exception); + bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape); + + bool CheckAlgoState(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); + // notify on bad state of attached algos, return false + // if Compute() would fail because of some algo bad state + - static int GetShapeDim(const TopoDS_Shape& aShape); - SMESH_Algo* GetAlgo(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); + StudyContextStruct *GetStudyContext(int studyId); + + static int GetShapeDim(const TopAbs_ShapeEnum & aShapeType); + static int GetShapeDim(const TopoDS_Shape & aShape) + { return GetShapeDim( aShape.ShapeType() ); } + SMESH_Algo* GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape); + static bool IsGlobalHypothesis(const SMESH_Hypothesis* theHyp, SMESH_Mesh& aMesh); // inherited methods from SALOMEDS::Driver void Save(int studyId, const char *aUrlOfFile); - void Load(int studyId, const char *aUrlOfFile); - void Close(int studyId); - const char* ComponentDataType(); + void Load(int studyId, const char *aUrlOfFile); + void Close(int studyId); + const char *ComponentDataType(); + + const char *IORToLocalPersistentID(const char *IORString, bool & IsAFile); + const char *LocalPersistentIDToIOR(const char *aLocalPersistentID); + + int GetANewId(); - const char* IORToLocalPersistentID(const char* IORString, bool& IsAFile); - const char* LocalPersistentIDToIOR(const char* aLocalPersistentID); + std::map < int, SMESH_Algo * >_mapAlgo; + std::map < int, SMESH_1D_Algo * >_map1D_Algo; + std::map < int, SMESH_2D_Algo * >_map2D_Algo; + std::map < int, SMESH_3D_Algo * >_map3D_Algo; - SMESH_HypothesisFactory _hypothesisFactory; + private: - map _mapAlgo; - map _map1D_Algo; - map _map2D_Algo; - map _map3D_Algo; + int _localId; // unique Id of created objects, within SMESH_Gen entity + std::map < int, StudyContextStruct * >_mapStudyContext; -private: - int _localId; // unique Id of created objects, within SMESH_Gen entity - map _mapStudyContext; - map _mapHypothesis; + // hypotheses managing + int _hypId; }; #endif