SALOME - SMESH
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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

StdMeshers_AutomaticLength::StdMeshers_AutomaticLength ( int  hypId,
int  studyId,
SMESH_Gen gen 
)
virtual StdMeshers_AutomaticLength::~StdMeshers_AutomaticLength ( )
virtual

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)

double StdMeshers_AutomaticLength::GetFineness ( ) const

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)
staticinherited

Definition at line 68 of file SMESH_Hypothesis.hxx.

virtual int SMESH_Hypothesis::GetDim ( ) const
virtualinherited

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 ( )
virtualinherited
virtual int SMESH_Hypothesis::GetShapeType ( ) const
virtualinherited
virtual const char* SMESH_Hypothesis::GetLibName ( ) const
virtualinherited
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
virtualinherited

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.

const SMESH_Mesh* StdMeshers_AutomaticLength::_mesh
protected

Definition at line 106 of file StdMeshers_AutomaticLength.hxx.

double StdMeshers_AutomaticLength::_fineness
protected

Definition at line 107 of file StdMeshers_AutomaticLength.hxx.

double StdMeshers_AutomaticLength::_S0
protected

Definition at line 107 of file StdMeshers_AutomaticLength.hxx.

double StdMeshers_AutomaticLength::_minLen
protected

Definition at line 107 of file StdMeshers_AutomaticLength.hxx.

SMESH_Gen* SMESH_Hypothesis::_gen
protectedinherited

Definition at line 118 of file SMESH_Hypothesis.hxx.

int SMESH_Hypothesis::_studyId
protectedinherited

Definition at line 119 of file SMESH_Hypothesis.hxx.

int SMESH_Hypothesis::_shapeType
protectedinherited

Definition at line 120 of file SMESH_Hypothesis.hxx.

int SMESH_Hypothesis::_param_algo_dim
protectedinherited

Definition at line 121 of file SMESH_Hypothesis.hxx.

std::string SMESHDS_Hypothesis::_name
protectedinherited

Definition at line 52 of file SMESHDS_Hypothesis.hxx.

int SMESHDS_Hypothesis::_hypId
protectedinherited

Definition at line 53 of file SMESHDS_Hypothesis.hxx.

int SMESHDS_Hypothesis::_type
protectedinherited

Definition at line 54 of file SMESHDS_Hypothesis.hxx.