SALOME - SMESH
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
StdMeshers_AutomaticLength Class Reference

1D Hypothesis to compute segment length free of thinking More...

#include <StdMeshers_AutomaticLength.hxx>

Inheritance diagram for StdMeshers_AutomaticLength:
Inheritance graph
Collaboration diagram for StdMeshers_AutomaticLength:
Collaboration graph

Public Types

enum  Hypothesis_Status {
  HYP_OK = 0, HYP_MISSING, HYP_CONCURENT, HYP_BAD_PARAMETER,
  HYP_HIDDEN_ALGO, HYP_HIDING_ALGO, HYP_UNKNOWN_FATAL, HYP_INCOMPATIBLE,
  HYP_NOTCONFORM, HYP_ALREADY_EXIST, HYP_BAD_DIM, HYP_BAD_SUBSHAPE,
  HYP_BAD_GEOMETRY, HYP_NEED_SHAPE
}
enum  hypothesis_type {
  PARAM_ALGO, ALGO_0D, ALGO_1D, ALGO_2D,
  ALGO_3D
}

Public Member Functions

 StdMeshers_AutomaticLength (int hypId, int studyId, SMESH_Gen *gen)
virtual ~StdMeshers_AutomaticLength ()
double GetLength (const SMESH_Mesh *aMesh, const TopoDS_Shape &anEdge) throw ( SMESH_Exception )
 Computes segment for a given edge.
double GetLength (const SMESH_Mesh *aMesh, const double edgeLength) throw ( SMESH_Exception )
 Computes segment length for an edge of given length.
void SetFineness (double theFineness) throw ( SMESH_Exception )
 Set Fineness.
double GetFineness () const
 Return mesh Fineness.
virtual std::ostream & SaveTo (std::ostream &save)
virtual std::istream & LoadFrom (std::istream &load)
virtual bool SetParametersByMesh (const SMESH_Mesh *theMesh, const TopoDS_Shape &theShape)
 Initialize Fineness by the mesh built on the geometry.
virtual bool SetParametersByDefaults (const TDefaults &dflts, const SMESH_Mesh *theMesh=0)
 Initialize my parameter values by default parameters.
virtual int GetDim () const
int GetStudyId () const
virtual void NotifySubMeshesHypothesisModification ()
virtual int GetShapeType () const
virtual const char * GetLibName () const
void SetLibName (const char *theLibName)
void SetParameters (const char *theParameters)
char * GetParameters () const
void SetLastParameters (const char *theParameters)
char * GetLastParameters () const
void ClearParameters ()
virtual bool IsAuxiliary () const
 Return true if me is an auxiliary hypothesis.
const char * GetName () const
int GetID () const
int GetType () const

Static Public Member Functions

static bool IsStatusFatal (Hypothesis_Status theStatus)

Protected Attributes

std::map< const TopoDS_TShape
*, double > 
_TShapeToLength
const SMESH_Mesh_mesh
double _fineness
double _S0
double _minLen
SMESH_Gen_gen
int _studyId
int _shapeType
int _param_algo_dim
std::string _name
int _hypId
int _type

Friends

std::ostream & operator<< (std::ostream &save, StdMeshers_AutomaticLength &hyp)
std::istream & operator>> (std::istream &load, StdMeshers_AutomaticLength &hyp)

Detailed Description

1D Hypothesis to compute segment length free of thinking

It computes segment length basing on max shape size to shortest edge length ratio: S = S0 * f(L/Lmin) where f(x) = 1 + (2/Pi * 7 * atan(x/5) )

Definition at line 48 of file StdMeshers_AutomaticLength.hxx.


Member Enumeration Documentation

Enumerator:
HYP_OK 
HYP_MISSING 
HYP_CONCURENT 
HYP_BAD_PARAMETER 
HYP_HIDDEN_ALGO 
HYP_HIDING_ALGO 
HYP_UNKNOWN_FATAL 
HYP_INCOMPATIBLE 
HYP_NOTCONFORM 
HYP_ALREADY_EXIST 
HYP_BAD_DIM 
HYP_BAD_SUBSHAPE 
HYP_BAD_GEOMETRY 
HYP_NEED_SHAPE 

Definition at line 50 of file SMESH_Hypothesis.hxx.

Enumerator:
PARAM_ALGO 
ALGO_0D 
ALGO_1D 
ALGO_2D 
ALGO_3D 

Definition at line 49 of file SMESHDS_Hypothesis.hxx.


Constructor & Destructor Documentation


Member Function Documentation

double StdMeshers_AutomaticLength::GetLength ( const SMESH_Mesh aMesh,
const TopoDS_Shape anEdge 
) throw ( SMESH_Exception )

Computes segment for a given edge.

double StdMeshers_AutomaticLength::GetLength ( const SMESH_Mesh aMesh,
const double  edgeLength 
) throw ( SMESH_Exception )

Computes segment length for an edge of given length.

void StdMeshers_AutomaticLength::SetFineness ( double  theFineness) throw ( SMESH_Exception )

Set Fineness.

Parameters:
theFineness- The Fineness value [0.0-1.0], 0 - coarse mesh 1 - fine mesh

Raise if theFineness is out of range The "Initial Number of Elements on the Shortest Edge" (S0) is divided by (0.5 + 4.5 x theFineness)

Return mesh Fineness.

Return values:
double- Fineness value [0.0-1.0]

Definition at line 83 of file StdMeshers_AutomaticLength.hxx.

virtual std::ostream& StdMeshers_AutomaticLength::SaveTo ( std::ostream &  save) [virtual]

Implements SMESHDS_Hypothesis.

virtual std::istream& StdMeshers_AutomaticLength::LoadFrom ( std::istream &  load) [virtual]

Implements SMESHDS_Hypothesis.

virtual bool StdMeshers_AutomaticLength::SetParametersByMesh ( const SMESH_Mesh theMesh,
const TopoDS_Shape theShape 
) [virtual]

Initialize Fineness by the mesh built on the geometry.

Parameters:
theMesh- the built mesh
theShape- the geometry of interest
Return values:
bool- true if parameter values have been successfully defined

Implements SMESH_Hypothesis.

virtual bool StdMeshers_AutomaticLength::SetParametersByDefaults ( const TDefaults dflts,
const SMESH_Mesh theMesh = 0 
) [virtual]

Initialize my parameter values by default parameters.

Return values:
bool- true if parameter values have been successfully defined

Implements SMESH_Hypothesis.

static bool SMESH_Hypothesis::IsStatusFatal ( Hypothesis_Status  theStatus) [static, inherited]

Definition at line 68 of file SMESH_Hypothesis.hxx.

virtual int SMESH_Hypothesis::GetDim ( ) const [virtual, inherited]

Referenced by SMESH_Gen::TAlgoStateError::Set().

Here is the caller graph for this function:

int SMESH_Hypothesis::GetStudyId ( ) const [inherited]
virtual void SMESH_Hypothesis::NotifySubMeshesHypothesisModification ( ) [virtual, inherited]
virtual int SMESH_Hypothesis::GetShapeType ( ) const [virtual, inherited]
virtual const char* SMESH_Hypothesis::GetLibName ( ) const [virtual, inherited]
void SMESH_Hypothesis::SetLibName ( const char *  theLibName) [inherited]
void SMESH_Hypothesis::SetParameters ( const char *  theParameters) [inherited]
char* SMESH_Hypothesis::GetParameters ( ) const [inherited]
void SMESH_Hypothesis::SetLastParameters ( const char *  theParameters) [inherited]
char* SMESH_Hypothesis::GetLastParameters ( ) const [inherited]
void SMESH_Hypothesis::ClearParameters ( ) [inherited]
virtual bool SMESH_Hypothesis::IsAuxiliary ( ) const [virtual, inherited]

Return true if me is an auxiliary hypothesis.

Return values:
bool- auxiliary or not

An auxiliary hypothesis is optional, i.e. an algorithm can work without it and another hypothesis of the same dimention can be assigned to the shape

Definition at line 114 of file SMESH_Hypothesis.hxx.

References SMESHDS_Hypothesis::GetType().

Here is the call graph for this function:

const char* SMESHDS_Hypothesis::GetName ( ) const [inherited]
int SMESHDS_Hypothesis::GetID ( ) const [inherited]
int SMESHDS_Hypothesis::GetType ( ) const [inherited]

Referenced by SMESH_Hypothesis::IsAuxiliary().

Here is the caller graph for this function:


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  save,
StdMeshers_AutomaticLength hyp 
) [friend]
std::istream& operator>> ( std::istream &  load,
StdMeshers_AutomaticLength hyp 
) [friend]

Field Documentation

std::map<const TopoDS_TShape*, double> StdMeshers_AutomaticLength::_TShapeToLength [protected]

Definition at line 105 of file StdMeshers_AutomaticLength.hxx.

Definition at line 106 of file StdMeshers_AutomaticLength.hxx.

Definition at line 107 of file StdMeshers_AutomaticLength.hxx.

double StdMeshers_AutomaticLength::_S0 [protected]

Definition at line 107 of file StdMeshers_AutomaticLength.hxx.

Definition at line 107 of file StdMeshers_AutomaticLength.hxx.

SMESH_Gen* SMESH_Hypothesis::_gen [protected, inherited]

Definition at line 118 of file SMESH_Hypothesis.hxx.

int SMESH_Hypothesis::_studyId [protected, inherited]

Definition at line 119 of file SMESH_Hypothesis.hxx.

int SMESH_Hypothesis::_shapeType [protected, inherited]

Definition at line 120 of file SMESH_Hypothesis.hxx.

int SMESH_Hypothesis::_param_algo_dim [protected, inherited]

Definition at line 121 of file SMESH_Hypothesis.hxx.

std::string SMESHDS_Hypothesis::_name [protected, inherited]

Definition at line 52 of file SMESHDS_Hypothesis.hxx.

int SMESHDS_Hypothesis::_hypId [protected, inherited]

Definition at line 53 of file SMESHDS_Hypothesis.hxx.

int SMESHDS_Hypothesis::_type [protected, inherited]

Definition at line 54 of file SMESHDS_Hypothesis.hxx.