SALOME - SMESH
SMESH_Hypothesis.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
// SMESH SMESH : implementaion of SMESH idl descriptions
23
// File : SMESH_Hypothesis.hxx
24
// Author : Paul RASCLE, EDF
25
// Module : SMESH
26
//
27
28
#ifndef _SMESH_HYPOTHESIS_HXX_
29
#define _SMESH_HYPOTHESIS_HXX_
30
31
#include "
SMESH_SMESH.hxx
"
32
33
#include "
SMESHDS_Hypothesis.hxx
"
34
35
class
SMESH_Gen
;
36
class
TopoDS_Shape;
37
class
SMESH_Mesh
;
38
39
enum
MeshDimension
// dimension of mesh
40
{
41
MeshDim_0D
= 0,
42
MeshDim_1D
,
43
MeshDim_2D
,
44
MeshDim_3D
45
};
46
47
class
SMESH_EXPORT
SMESH_Hypothesis
:
public
SMESHDS_Hypothesis
48
{
49
public
:
50
enum
Hypothesis_Status
// in the order of severity
51
{
52
HYP_OK = 0,
53
HYP_MISSING
,
// algo misses a hypothesis
54
HYP_CONCURENT
,
// several applicable hypotheses
55
HYP_BAD_PARAMETER
,
// hypothesis has a bad parameter value
56
HYP_HIDDEN_ALGO
,
// an algo is hidden by an upper dim algo generating all-dim elements
57
HYP_HIDING_ALGO
,
// an algo hides lower dim algos by generating all-dim elements
58
HYP_UNKNOWN_FATAL
,
// --- all statuses below should be considered as fatal
59
// for Add/RemoveHypothesis operations
60
HYP_INCOMPATIBLE
,
// hypothesis does not fit algo
61
HYP_NOTCONFORM
,
// not conform mesh is produced appling a hypothesis
62
HYP_ALREADY_EXIST
,
// such hypothesis already exist
63
HYP_BAD_DIM
,
// bad dimension
64
HYP_BAD_SUBSHAPE
,
// shape is neither the main one, nor its subshape, nor a group
65
HYP_BAD_GEOMETRY
,
// shape geometry mismatches algorithm's expectation
66
HYP_NEED_SHAPE
// algorithm can work on shape only
67
};
68
static
bool
IsStatusFatal
(
Hypothesis_Status
theStatus)
69
{
return
theStatus >= HYP_UNKNOWN_FATAL; }
70
71
SMESH_Hypothesis
(
int
hypId,
int
studyId,
SMESH_Gen
* gen);
72
virtual
~
SMESH_Hypothesis
();
73
virtual
int
GetDim()
const
;
74
int
GetStudyId()
const
;
75
virtual
void
NotifySubMeshesHypothesisModification();
76
virtual
int
GetShapeType()
const
;
77
virtual
const
char
* GetLibName()
const
;
78
void
SetLibName(
const
char
* theLibName);
79
80
void
SetParameters(
const
char
*theParameters);
81
char
* GetParameters()
const
;
82
83
void
SetLastParameters(
const
char
* theParameters);
84
char
* GetLastParameters()
const
;
85
void
ClearParameters();
86
93
virtual
bool
SetParametersByMesh(
const
SMESH_Mesh
* theMesh,
const
TopoDS_Shape& theShape)=0;
94
95
struct
TDefaults
96
{
97
double
_elemLength
;
98
int
_nbSegments
;
99
};
104
virtual
bool
SetParametersByDefaults(
const
TDefaults
& dflts,
const
SMESH_Mesh
* theMesh=0)=0;
105
114
virtual
bool
IsAuxiliary
()
const
115
{
return
GetType
() == PARAM_ALGO && _param_algo_dim < 0; }
116
117
protected
:
118
SMESH_Gen
*
_gen
;
119
int
_studyId
;
120
int
_shapeType
;
121
int
_param_algo_dim
;
122
123
private
:
124
std::string
_libName
;
125
std::string
_parameters
;
126
std::string
_lastParameters
;
127
};
128
129
#endif
SMESH_Hypothesis::_libName
std::string _libName
Definition:
SMESH_Hypothesis.hxx:124
MeshDim_2D
Definition:
SMESH_Hypothesis.hxx:43
SMESH_Hypothesis::_studyId
int _studyId
Definition:
SMESH_Hypothesis.hxx:119
SMESH_Hypothesis::HYP_HIDDEN_ALGO
Definition:
SMESH_Hypothesis.hxx:56
SMESH_Hypothesis
Definition:
SMESH_Hypothesis.hxx:47
SMESHDS_Hypothesis
Definition:
SMESHDS_Hypothesis.hxx:36
MeshDim_3D
Definition:
SMESH_Hypothesis.hxx:44
SMESH_Hypothesis::HYP_UNKNOWN_FATAL
Definition:
SMESH_Hypothesis.hxx:58
SMESH_Hypothesis::HYP_CONCURENT
Definition:
SMESH_Hypothesis.hxx:54
SMESH_Hypothesis::IsStatusFatal
static bool IsStatusFatal(Hypothesis_Status theStatus)
Definition:
SMESH_Hypothesis.hxx:68
SMESH_Hypothesis::HYP_BAD_GEOMETRY
Definition:
SMESH_Hypothesis.hxx:65
SMESH_Hypothesis::_lastParameters
std::string _lastParameters
Definition:
SMESH_Hypothesis.hxx:126
SMESH_Hypothesis::_gen
SMESH_Gen * _gen
Definition:
SMESH_Hypothesis.hxx:118
SMESH_Hypothesis::Hypothesis_Status
Hypothesis_Status
Definition:
SMESH_Hypothesis.hxx:50
SMESH_Hypothesis::_parameters
std::string _parameters
Definition:
SMESH_Hypothesis.hxx:125
SMESH_Hypothesis::TDefaults::_elemLength
double _elemLength
Definition:
SMESH_Hypothesis.hxx:97
SMESH_Hypothesis::IsAuxiliary
virtual bool IsAuxiliary() const
Return true if me is an auxiliary hypothesis.
Definition:
SMESH_Hypothesis.hxx:114
MeshDim_0D
Definition:
SMESH_Hypothesis.hxx:41
MeshDim_1D
Definition:
SMESH_Hypothesis.hxx:42
SMESH_Hypothesis::HYP_NOTCONFORM
Definition:
SMESH_Hypothesis.hxx:61
SMESH_Hypothesis::HYP_INCOMPATIBLE
Definition:
SMESH_Hypothesis.hxx:60
SMESH_SMESH.hxx
SMESH_Hypothesis::HYP_BAD_SUBSHAPE
Definition:
SMESH_Hypothesis.hxx:64
SMESH_Gen
Definition:
SMESH_Gen.hxx:62
SMESH_EXPORT
#define SMESH_EXPORT
Definition:
SMESH_SMESH.hxx:36
SMESH_Hypothesis::HYP_BAD_DIM
Definition:
SMESH_Hypothesis.hxx:63
SMESHDS_Hypothesis::GetType
int GetType() const
SMESH_Hypothesis::HYP_BAD_PARAMETER
Definition:
SMESH_Hypothesis.hxx:55
SMESH_Hypothesis::HYP_MISSING
Definition:
SMESH_Hypothesis.hxx:53
MeshDimension
MeshDimension
Definition:
SMESH_Hypothesis.hxx:39
SMESHDS_Hypothesis.hxx
SMESH_Mesh
Definition:
SMESH_Mesh.hxx:54
SMESH_Hypothesis::HYP_HIDING_ALGO
Definition:
SMESH_Hypothesis.hxx:57
SMESH_Hypothesis::TDefaults::_nbSegments
int _nbSegments
Definition:
SMESH_Hypothesis.hxx:98
SMESH_Hypothesis::TDefaults
Definition:
SMESH_Hypothesis.hxx:95
SMESH_Hypothesis::HYP_ALREADY_EXIST
Definition:
SMESH_Hypothesis.hxx:62
SMESH_Hypothesis::_param_algo_dim
int _param_algo_dim
Definition:
SMESH_Hypothesis.hxx:121
SMESH_Hypothesis::_shapeType
int _shapeType
Definition:
SMESH_Hypothesis.hxx:120
root
rpmbuild
BUILD
smesh-6.7.6
inc
SMESH_Hypothesis.hxx
Generated by
1.8.14