Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SALOME Mesh Module Developer
Use the SpherePadder SMESH Plugin
Todo List
Packages
Data Structures
Files
File List
idl
src
Controls
Driver
DriverCGNS
DriverDAT
DriverGMF
DriverMED
DriverSTL
DriverUNV
MEDWrapper
MEFISTO2
OBJECT
PluginUtils
SMDS
SMESH
memoire.h
SMESH_Algo.cxx
SMESH_Algo.hxx
SMESH_Gen.cxx
SMESH_Gen.hxx
SMESH_Group.cxx
SMESH_Group.hxx
SMESH_HypoFilter.cxx
SMESH_HypoFilter.hxx
SMESH_Hypothesis.cxx
SMESH_Hypothesis.hxx
SMESH_Mesh.cxx
SMESH_Mesh.hxx
SMESH_MeshEditor.cxx
SMESH_MeshEditor.hxx
SMESH_MesherHelper.cxx
SMESH_MesherHelper.hxx
SMESH_Pattern.cxx
SMESH_Pattern.hxx
SMESH_ProxyMesh.cxx
SMESH_ProxyMesh.hxx
SMESH_SMESH.hxx
SMESH_subMesh.cxx
SMESH_subMesh.hxx
SMESH_subMeshEventListener.hxx
SMESH_I
SMESH_SWIG_WITHIHM
SMESHClient
SMESHDS
SMESHFiltersSelection
SMESHGUI
SMESHUtils
StdMeshers
StdMeshers_I
StdMeshersGUI
Tools
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