X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Gen.hxx;h=4dac76d43965d1ddab2d68b995d92cba5d233094;hp=353cba6df6c66568b8e0dac8dc3413d02581d51c;hb=52d825495306f72048c8754aa5c86c6a390f8262;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/SMESH/SMESH_Gen.hxx b/src/SMESH/SMESH_Gen.hxx index 353cba6df..4dac76d43 100644 --- a/src/SMESH/SMESH_Gen.hxx +++ b/src/SMESH/SMESH_Gen.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 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 @@ -35,10 +35,6 @@ #include "SMESH_Hypothesis.hxx" #include "SMESH_ComputeError.hxx" #include "SMESH_Algo.hxx" -#include "SMESH_0D_Algo.hxx" -#include "SMESH_1D_Algo.hxx" -#include "SMESH_2D_Algo.hxx" -#include "SMESH_3D_Algo.hxx" #include "SMESH_Mesh.hxx" #include "chrono.hxx" @@ -47,6 +43,8 @@ #include #include +#include +#include class SMESHDS_Document; @@ -72,6 +70,8 @@ public: /*! * \brief Computes aMesh on aShape + * \param aShapeOnly - if true, algo->OnlyUnaryInput() feature is ignored and + * only \a aShape is computed. * \param anUpward - compute from vertices up to more complex shape (internal usage) * \param aDim - upper level dimension of the mesh computation * \param aShapesId - list of shapes with computed mesh entities (elements or nodes) @@ -79,16 +79,17 @@ public: */ bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape, + const bool aShapeOnly=false, const bool anUpward=false, const ::MeshDimension aDim=::MeshDim_3D, TSetOfInt* aShapesId=0); -#ifdef WITH_SMESH_CANCEL_COMPUTE void PrepareCompute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape); void CancelCompute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape); -#endif + + const SMESH_subMesh* GetCurrentSubMesh() const { return _sm_current; } /*! * \brief evaluates size of prospective mesh on a shape @@ -144,16 +145,21 @@ public: 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, TopoDS_Shape* assignedTo=0); + SMESH_Algo* GetAlgo(SMESH_subMesh * aSubMesh, TopoDS_Shape* assignedTo=0); + static bool IsGlobalHypothesis(const SMESH_Hypothesis* theHyp, SMESH_Mesh& aMesh); + static std::vector< std::string > GetPluginXMLPaths(); + int GetANewId(); - std::map < int, SMESH_Algo * >_mapAlgo; - std::map < int, SMESH_0D_Algo * >_map0D_Algo; - std::map < int, SMESH_1D_Algo * >_map1D_Algo; - std::map < int, SMESH_2D_Algo * >_map2D_Algo; - std::map < int, SMESH_3D_Algo * >_map3D_Algo; + // std::map < int, SMESH_Algo * >_mapAlgo; + // std::map < int, SMESH_0D_Algo * >_map0D_Algo; + // std::map < int, SMESH_1D_Algo * >_map1D_Algo; + // std::map < int, SMESH_2D_Algo * >_map2D_Algo; + // std::map < int, SMESH_3D_Algo * >_map3D_Algo; private: @@ -166,14 +172,13 @@ private: // number of segments per diagonal of boundary box of geometry by which // default segment length of appropriate 1D hypotheses is defined int _segmentation; - // default of segments + // default number of segments int _nbSegments; + counters *_counters; -#ifdef WITH_SMESH_CANCEL_COMPUTE - volatile bool _compute_canceled; + volatile bool _compute_canceled; SMESH_subMesh* _sm_current; -#endif }; #endif