Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SMESH_Hypothesis.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 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, or (at your option) any later version.
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
23
// SMESH SMESH : implementaion of SMESH idl descriptions
24
// File : SMESH_Hypothesis.hxx
25
// Author : Paul RASCLE, EDF
26
// Module : SMESH
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 assigned to father shapes
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
,
// several applicable hypothesis of same priority assigned
63
HYP_BAD_DIM
,
// bad dimension
64
HYP_BAD_SUBSHAPE
,
// shape is neither the main one, nor its sub-shape, nor a group
65
HYP_BAD_GEOMETRY
,
// shape geometry mismatches algorithm's expectation
66
HYP_NEED_SHAPE
,
// algorithm can work on shape only
67
HYP_INCOMPAT_HYPS
// several additional hypotheses are incompatible one with other
68
};
69
static
bool
IsStatusFatal(
Hypothesis_Status
theStatus)
70
{
return
theStatus >=
HYP_UNKNOWN_FATAL
; }
71
72
SMESH_Hypothesis
(
int
hypId,
int
studyId,
SMESH_Gen
* gen);
73
virtual
~
SMESH_Hypothesis
();
74
virtual
int
GetDim()
const
;
75
int
GetStudyId()
const
;
76
SMESH_Gen
*
GetGen
()
const
{
return
(
SMESH_Gen
*) _gen; }
77
virtual
int
GetShapeType()
const
;
78
virtual
const
char
* GetLibName()
const
;
79
virtual
void
NotifySubMeshesHypothesisModification();
80
void
SetLibName(
const
char
* theLibName);
81
89
virtual
bool
DataDependOnParams
()
const
{
return
false
; }
90
97
virtual
bool
SetParametersByMesh(
const
SMESH_Mesh
* theMesh,
const
TopoDS_Shape& theShape)=0;
98
99
struct
TDefaults
100
{
101
double
_elemLength
;
102
int
_nbSegments
;
103
TopoDS_Shape*
_shape
;
// future shape of the mesh being created
104
};
109
virtual
bool
SetParametersByDefaults(
const
TDefaults
& dflts,
const
SMESH_Mesh
* theMesh=0)=0;
110
119
virtual
bool
IsAuxiliary()
const
120
{
return
GetType
() == PARAM_ALGO && _param_algo_dim < 0; }
121
125
SMESH_Mesh
* GetMeshByPersistentID(
int
id
);
126
127
protected
:
128
SMESH_Gen
*
_gen
;
129
int
_studyId
;
130
int
_shapeType
;
131
int
_param_algo_dim
;
// to be set at descendant hypothesis constructor
132
133
private
:
134
std::string
_libName
;
// name of library of plug-in Engine
135
//std::string _parameters;
136
//std::string _lastParameters;
137
};
138
139
#endif
src
SMESH
SMESH_Hypothesis.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS