X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers_I%2FStdMeshers_i.cxx;h=9c62d7dd0e8795f4451bab1947250816e2965f0b;hp=e67a54585f9a31713b46d6f1c23b50c9a641b7a7;hb=a274ade365bd0f0e19d56c577acc4a13aa1972a7;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/src/StdMeshers_I/StdMeshers_i.cxx b/src/StdMeshers_I/StdMeshers_i.cxx index e67a54585..9c62d7dd0 100644 --- a/src/StdMeshers_I/StdMeshers_i.cxx +++ b/src/StdMeshers_I/StdMeshers_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH StdMeshers : implementaion of SMESH idl descriptions +// SMESH StdMeshers : implementation of SMESH idl descriptions // File : StdMeshers_i.cxx // Author : Julia DOROVSKIKH // Module : SMESH @@ -31,56 +31,77 @@ #include "utilities.h" -#include "StdMeshers_LocalLength_i.hxx" -#include "StdMeshers_AutomaticLength_i.hxx" -#include "StdMeshers_StartEndLength_i.hxx" +#include "StdMeshers_Adaptive1D_i.hxx" #include "StdMeshers_Arithmetic1D_i.hxx" -#include "StdMeshers_FixedPoints1D_i.hxx" -#include "StdMeshers_NumberOfSegments_i.hxx" +#include "StdMeshers_AutomaticLength_i.hxx" +#include "StdMeshers_BlockRenumber_i.hxx" +#include "StdMeshers_CartesianParameters3D_i.hxx" +#include "StdMeshers_Cartesian_3D_i.hxx" +#include "StdMeshers_CompositeSegment_1D_i.hxx" #include "StdMeshers_Deflection1D_i.hxx" -#include "StdMeshers_Propagation_i.hxx" +#include "StdMeshers_FixedPoints1D_i.hxx" +#include "StdMeshers_Geometric1D_i.hxx" +#include "StdMeshers_Hexa_3D_i.hxx" +#include "StdMeshers_ImportSource1D_i.hxx" +#include "StdMeshers_ImportSource2D_i.hxx" +#include "StdMeshers_Import_1D2D_i.hxx" +#include "StdMeshers_Import_1D_i.hxx" +#include "StdMeshers_LayerDistribution2D_i.hxx" +#include "StdMeshers_LayerDistribution_i.hxx" #include "StdMeshers_LengthFromEdges_i.hxx" -#include "StdMeshers_QuadranglePreference_i.hxx" -//#include "StdMeshers_TrianglePreference_i.hxx" -#include "StdMeshers_QuadraticMesh_i.hxx" +#include "StdMeshers_LocalLength_i.hxx" #include "StdMeshers_MaxElementArea_i.hxx" #include "StdMeshers_MaxElementVolume_i.hxx" +#include "StdMeshers_MaxLength_i.hxx" #include "StdMeshers_NotConformAllowed_i.hxx" -#include "StdMeshers_ProjectionSource3D_i.hxx" -#include "StdMeshers_ProjectionSource2D_i.hxx" -#include "StdMeshers_ProjectionSource1D_i.hxx" -#include "StdMeshers_NumberOfLayers_i.hxx" -#include "StdMeshers_LayerDistribution_i.hxx" #include "StdMeshers_NumberOfLayers2D_i.hxx" -#include "StdMeshers_LayerDistribution2D_i.hxx" -#include "StdMeshers_SegmentLengthAroundVertex_i.hxx" -#include "StdMeshers_MaxLength_i.hxx" +#include "StdMeshers_NumberOfLayers_i.hxx" +#include "StdMeshers_NumberOfSegments_i.hxx" +#include "StdMeshers_PolygonPerFace_2D_i.hxx" +#include "StdMeshers_PolyhedronPerSolid_3D_i.hxx" +#include "StdMeshers_Prism_3D_i.hxx" +#include "StdMeshers_ProjectionSource1D_i.hxx" +#include "StdMeshers_ProjectionSource2D_i.hxx" +#include "StdMeshers_ProjectionSource3D_i.hxx" +#include "StdMeshers_Projection_1D_2D_3D_i.hxx" +#include "StdMeshers_Propagation_i.hxx" #include "StdMeshers_QuadrangleParams_i.hxx" -#include "StdMeshers_ImportSource1D_i.hxx" -#include "StdMeshers_ImportSource2D_i.hxx" -#include "StdMeshers_Cartesian_3D_i.hxx" - -#include "StdMeshers_Regular_1D_i.hxx" -#include "StdMeshers_MEFISTO_2D_i.hxx" +#include "StdMeshers_QuadranglePreference_i.hxx" #include "StdMeshers_Quadrangle_2D_i.hxx" -#include "StdMeshers_Hexa_3D_i.hxx" -#include "StdMeshers_Projection_1D_2D_3D_i.hxx" -#include "StdMeshers_Prism_3D_i.hxx" +#include "StdMeshers_QuadraticMesh_i.hxx" +#include "StdMeshers_RadialQuadrangle_1D2D_i.hxx" +#include "StdMeshers_Regular_1D_i.hxx" #include "StdMeshers_SegmentAroundVertex_0D_i.hxx" -#include "StdMeshers_CompositeSegment_1D_i.hxx" +#include "StdMeshers_SegmentLengthAroundVertex_i.hxx" +#include "StdMeshers_StartEndLength_i.hxx" #include "StdMeshers_UseExisting_1D2D_i.hxx" -#include "StdMeshers_RadialQuadrangle_1D2D_i.hxx" -#include "StdMeshers_Import_1D_i.hxx" -#include "StdMeshers_Import_1D2D_i.hxx" -#include "StdMeshers_ViscousLayers_i.hxx" #include "StdMeshers_ViscousLayers2D_i.hxx" -#include "StdMeshers_CartesianParameters3D_i.hxx" +#include "StdMeshers_ViscousLayers_i.hxx" +#ifdef ENABLE_MEFISTO + #include "StdMeshers_MEFISTO_2D_i.hxx" +#endif + +namespace SMESH { + class ApplicableToAny + { + public: + static bool IsApplicable( const TopoDS_Shape &S, bool /*toCheckAll*/, int algoDim ) + { + return GenericHypothesisCreator_i::IsShapeOfDim( S, algoDim ); + } + }; +} -template class StdHypothesisCreator_i:public HypothesisCreator_i +template +class StdHypothesisCreator_i : public HypothesisCreator_i< T > { public: // as we have 'module StdMeshers' in SMESH_BasicHypothesis.idl virtual std::string GetModuleName() { return "StdMeshers"; } + virtual bool IsApplicable( const TopoDS_Shape & S, bool toCheckAll, int algoDim ) + { + return TIsApplicable::IsApplicable( S, toCheckAll, algoDim ); + } }; //============================================================================= @@ -95,11 +116,10 @@ class QuadrangleParamsCreator : public StdHypothesisCreator_iSetQuadType( TYPE ); return h; } @@ -116,8 +136,6 @@ extern "C" STDMESHERS_I_EXPORT GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypName) { - MESSAGE("Get HypothesisCreator for " << aHypName); - GenericHypothesisCreator_i* aCreator = 0; // Hypotheses @@ -133,6 +151,8 @@ STDMESHERS_I_EXPORT aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Propagation") == 0) aCreator = new StdHypothesisCreator_i; + else if (strcmp(aHypName, "PropagOfDistribution") == 0) + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "MaxElementArea") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "MaxElementVolume") == 0) @@ -141,10 +161,14 @@ STDMESHERS_I_EXPORT aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Deflection1D") == 0) aCreator = new StdHypothesisCreator_i; + else if (strcmp(aHypName, "Adaptive1D") == 0) + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "FixedPoints1D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Arithmetic1D") == 0) aCreator = new StdHypothesisCreator_i; + else if (strcmp(aHypName, "GeometricProgression") == 0) + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "AutomaticLength") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "QuadranglePreference") == 0) @@ -184,16 +208,22 @@ STDMESHERS_I_EXPORT aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "CartesianParameters3D") == 0) aCreator = new StdHypothesisCreator_i; + else if (strcmp(aHypName, "BlockRenumber") == 0) + aCreator = new StdHypothesisCreator_i; // Algorithms else if (strcmp(aHypName, "Regular_1D") == 0) aCreator = new StdHypothesisCreator_i; +#ifdef ENABLE_MEFISTO else if (strcmp(aHypName, "MEFISTO_2D") == 0) aCreator = new StdHypothesisCreator_i; +#endif else if (strcmp(aHypName, "Quadrangle_2D") == 0) - aCreator = new StdHypothesisCreator_i; + aCreator = new StdHypothesisCreator_i; + else if (strcmp(aHypName, "QuadFromMedialAxis_1D2D") == 0) + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Hexa_3D") == 0) - aCreator = new StdHypothesisCreator_i; + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Projection_1D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Projection_1D2D") == 0) @@ -201,11 +231,11 @@ STDMESHERS_I_EXPORT else if (strcmp(aHypName, "Projection_2D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Projection_3D") == 0) - aCreator = new StdHypothesisCreator_i; + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Prism_3D") == 0) - aCreator = new StdHypothesisCreator_i; + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "RadialPrism_3D") == 0) - aCreator = new StdHypothesisCreator_i; + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "SegmentAroundVertex_0D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "CompositeSegment_1D") == 0) @@ -215,14 +245,17 @@ STDMESHERS_I_EXPORT else if (strcmp(aHypName, "UseExisting_2D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "RadialQuadrangle_1D2D") == 0) - aCreator = new StdHypothesisCreator_i; + aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Import_1D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Import_1D2D") == 0) aCreator = new StdHypothesisCreator_i; else if (strcmp(aHypName, "Cartesian_3D") == 0) aCreator = new StdHypothesisCreator_i; - else ; + else if (strcmp(aHypName, "PolygonPerFace_2D") == 0) + aCreator = new StdHypothesisCreator_i; + else if (strcmp(aHypName, "PolyhedronPerSolid_3D") == 0) + aCreator = new StdHypothesisCreator_i; return aCreator; }