DCQ:prepare 2.0.0

This commit is contained in:
yfr 2004-07-20 07:36:59 +00:00
parent bc37f0b49f
commit baa66acb33
36 changed files with 0 additions and 16605 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,98 +0,0 @@
<HTML><b>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_LocalLength</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void SetLength ( in double length )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>SetLength ( length )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>double GetLength ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLength ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_NumberOfSegments</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void SetNumberOfSegments ( in long segmentsNumber )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>SetNumberOfSegments ( segmentsNumber )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetNumberOfSegments ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfSegments ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MaxElementArea</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void SetMaxElementArea ( in double area )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>SetMaxElementArea ( area )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>double GetMaxElementArea ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMaxElementArea ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MaxElementVolume</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void SetMaxElementVolume ( in double volume )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>SetMaxElementVolume ( volume )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>double GetMaxElementVolume ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMaxElementVolume ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Regular_1D</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MEFISTO_2D</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Quadrangle_2D</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Hexa_3D</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
</b></HTML>

View File

@ -1,30 +0,0 @@
<HTML><b>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Gen</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Hypothesis CreateHypothesis ( in string anHyp, in long studyId )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateHypothesis ( anHyp, studyId )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh Init ( in GEOM_Gen geomEngine, in long studyId, in GEOM_Shape aShape )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = Init ( geomEngine, studyId, aShape )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean Compute ( in SMESH_Mesh aMesh, in GEOM_Shape aSubShape )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = Compute ( aMesh, aSubShape )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean IsReadyToCompute ( in SMESH_Mesh aMesh, in GEOM_Shape aSubShape )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = IsReadyToCompute ( aMesh, aSubShape )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long_array GetSubShapesId ( in GEOM_Gen geomEngine, in long studyId, in GEOM_Shape mainShape, in shape_array listOfSubShape )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetSubShapesId ( geomEngine, studyId, mainShape, listOfSubShape )</b></div></td>
</tr>
</table><br>
</b></HTML>

View File

@ -1,54 +0,0 @@
<HTML><b>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Hypothesis</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>string GetName ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetName ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetId ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Algo</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>ListOfHypothesisName GetCompatibleHypothesis ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetCompatibleHypothesis ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_1D_Algo</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_2D_Algo</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_3D_Algo</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
</table><br>
</b></HTML>

View File

@ -1,166 +0,0 @@
<HTML><b>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Mesh</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>SMESH_subMesh GetElementsOnShape ( in GEOM_Shape aSubShape )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetElementsOnShape ( aSubShape )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean AddHypothesis ( in GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddHypothesis ( aSubShape, anHyp )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean RemoveHypothesis ( in GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveHypothesis ( aSubShape, anHyp )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>ListOfHypothesis GetHypothesisList ( in GEOM_Shape aSubShape )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetHypothesisList ( aSubShape )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>log_array GetLog ( in boolean clearAfterGet )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLog ( clearAfterGet )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void ClearLog ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>ClearLog ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetId ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetStudyId ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetStudyId ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>SMESH_MeshEditor GetMeshEditor ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMeshEditor ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void ExportDAT ( in string file )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>ExportDAT ( file )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void ExportMED ( in string file )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>ExportMED ( file )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>void ExportUNV ( in string file )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>ExportUNV ( file )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>MESH GetMEDMesh ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMEDMesh ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbNodes ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbNodes ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbEdges ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbEdges ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbFaces ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbFaces ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbTriangles ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbTriangles ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbQuadrangles ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbQuadrangles ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbVolumes ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbVolumes ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbTetras ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbTetras ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbHexas ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbHexas ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long NbSubMesh ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbSubMesh ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_subMesh</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetNumberOfElements ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfElements ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetNumberOfNodes ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfNodes ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long_array GetElementsId ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetElementsId ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long_array GetNodesId ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNodesId ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh GetFather ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetFather ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>long GetId ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId ( )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>FAMILY GetFamily ( )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetFamily ( )</b></div></td>
</tr>
</table><br>
<table width="100%" BORDER>
<tr bgcolor="#FFFFCC">
<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MeshEditor</i></div></b></font></td>
</tr>
<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean RemoveElements ( in long_array IDsOfElements )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveElements ( IDsOfElements )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean RemoveNodes ( in long_array IDsOfNodes )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveNodes ( IDsOfNodes )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean AddNode ( in double x, in double y, in double z )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddNode ( x, y, z )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean AddEdge ( in long_array IDsOfNodes )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddEdge ( IDsOfNodes )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean AddFace ( in long_array IDsOfNodes )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddFace ( IDsOfNodes )</b></div></td>
</tr>
<tr>
<td bgcolor= "lightgreen"><div align="center"><b>boolean AddVolume ( in long_array IDsOfNodes )</b></div></td>
<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddVolume ( IDsOfNodes )</b></div></td>
</tr>
</table><br>
</b></HTML>

View File

@ -1,203 +0,0 @@
# Doxyfile 1.3-rc1
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "SALOME - SMESH - v.1.3.0"
PROJECT_NUMBER = id#1.1
OUTPUT_DIRECTORY = ../
OUTPUT_LANGUAGE = English
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = NO
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = YES
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
SHORT_NAMES = NO
HIDE_SCOPE_NAMES = NO
VERBATIM_HEADERS = YES
SHOW_INCLUDE_FILES = YES
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 5
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ALIASES =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 25
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = YES
SHOW_USED_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = log.txt
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ../../../share/salome/idl/SMESH_Gen.idl \
../../../share/salome/idl/SMESH_Mesh.idl \
../../../share/salome/idl/SMESH_BasicHypothesis.idl \
../../../share/salome/idl/SMESH_Hypothesis.idl
FILE_PATTERNS =
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = sources/
INPUT_FILTER =
FILTER_SOURCE_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = sources/myheader.html
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = YES
TOC_EXPAND = YES
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_SCHEMA =
XML_DTD =
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = NO
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = jpg
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1200
GENERATE_LEGEND = NO
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
CGI_NAME = search.cgi
CGI_URL =
DOC_URL =
DOC_ABSPATH =
BIN_ABSPATH = /usr/local/bin/
EXT_DOC_PATHS =

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,24 +0,0 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
<title>Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body>
&nbsp;
<center><table WIDTH="96%" >
<tr>
<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
<td>
<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
</td>
</tr>
</table></center>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,49 +0,0 @@
H1 { text-align: center; }
CAPTION { font-weight: bold }
A.qindex {}
A.qindexRef {}
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code { text-decoration: none; font-weight: normal; color: #4444ee }
A.codeRef { font-weight: normal; color: #4444ee }
A:hover { text-decoration: none; background-color: lightblue }
DL.el { margin-left: -1cm }
DIV.fragment { width: 100%; border: none; background-color: #CCCCCC }
DIV.ah { background-color: #CCCCCC; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
TD.md { background-color: lightblue; font-weight: bold; }
TD.mdname1 { background-color: lightblue; font-weight: bold; color: #602020; }
TD.mdname { background-color: lightblue; font-weight: bold; color: #602020; width: 600px; }
DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
BODY { background: url(sources/bg_salome.gif) }
TD.indexkey {
background-color: #CCCCCC;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px
}
TD.indexvalue {
background-color: #CCCCCC;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px
}
span.keyword { color: #008000 }
span.keywordtype { color: #604020 }
span.keywordflow { color: #e08000 }
span.comment { color: #800000 }
span.preprocessor { color: #806020 }
span.stringliteral { color: #002080 }
span.charliteral { color: #008080 }

View File

@ -1,46 +0,0 @@
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR"
content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
<title>Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body>
&nbsp;
<center>
<table width="96%">
<tbody>
<tr>
<td><a href="http://www.opencascade.com"><img
src="sources/logocorp.gif" border="0" height="46" width="122">
</a></td>
<td>
<div align="right"><a href="http://www.opencascade.org/SALOME/"><img
src="sources/application.gif" border="0" height="46" width="108">
</a></div>
</td>
</tr>
</tbody>
</table>
</center>
<!-- Generated by Doxygen 1.3-rc2 -->
<ul>
<li><b>SALOME SMESH module</b>
<ul>
<li><a href="HTML/SMESH_Gen.html">Mapping of SMESH_Gen functions</a></li>
<li><a href="HTML/SMESH_BasicHypothesis.html">Mapping of SMESH_BasicHypothesis functions</a></li>
<li><a href="HTML/SMESH_Hypothesis.html">Mapping of SMESH_Hypothesis functions</a></li>
<li><a href="HTML/SMESH_Mesh.html">Mapping of SMESH_Mesh functions</a></li>
</ul>
</li>
</ul>
<br>
</body>
</html>

View File

@ -1,20 +0,0 @@
foldersTree = gFld("<b>SALOME v.1.3.0 </b>", "", "")
insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
aux2 = insFld(aux1, gFld("Modules", ""))
aux3 = insFld(aux2, gFld("SALOME SMESH module", ""))
/*! insDoc(aux3, gLnk("Overview", "", "overview_SMESH.html"))*/
aux4 = insFld(aux3, gFld("Packages", ""))
insDoc(aux4, gLnk("SMESH", "", "namespaceSMESH.html"))
/*! insDoc(aux3, gLnk("Examples", "", "examples_SMESH.html"))
*/
insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
insDoc(aux1, gLnk("File List", "", "files.html"))
aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
insDoc(aux1, gLnk("Mapping of SMESH IDL definitions to Python language", "", "page2.html"))

View File

@ -1,505 +0,0 @@
//****************************************************************
// You are free to copy the "Folder-Tree" script as long as you
// keep this copyright notice:
// Script found in: http://www.geocities.com/Paris/LeftBank/2178/
// Author: Marcelino Alves Martins (martins@hks.com) December '97.
//****************************************************************
//Log of changes:
// 17 Feb 98 - Fix initialization flashing problem with Netscape
//
// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS;
// make the ftien4 a js file
//
// DvH: Dec 2000 - Made some minor changes to support external
// references
// Definition of class Folder
// *****************************************************************
function Folder(folderDescription, tagName, hreference) //constructor
{
//constant data
this.desc = folderDescription
this.tagName = tagName
this.hreference = hreference
this.id = -1
this.navObj = 0
this.iconImg = 0
this.nodeImg = 0
this.isLastNode = 0
//dynamic data
this.isOpen = true
this.iconSrc = "ftv2folderopen.png"
this.children = new Array
this.nChildren = 0
//methods
this.initialize = initializeFolder
this.setState = setStateFolder
this.addChild = addChild
this.createIndex = createEntryIndex
this.hide = hideFolder
this.display = display
this.renderOb = drawFolder
this.totalHeight = totalHeight
this.subEntries = folderSubEntries
this.outputLink = outputFolderLink
}
function setStateFolder(isOpen)
{
var subEntries
var totalHeight
var fIt = 0
var i=0
if (isOpen == this.isOpen)
return
if (browserVersion == 2)
{
totalHeight = 0
for (i=0; i < this.nChildren; i++)
totalHeight = totalHeight + this.children[i].navObj.clip.height
subEntries = this.subEntries()
if (this.isOpen)
totalHeight = 0 - totalHeight
for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++)
indexOfEntries[fIt].navObj.moveBy(0, totalHeight)
}
this.isOpen = isOpen
propagateChangesInState(this)
}
function propagateChangesInState(folder)
{
var i=0
if (folder.isOpen)
{
if (folder.nodeImg)
if (folder.isLastNode)
folder.nodeImg.src = "ftv2mlastnode.png"
else
folder.nodeImg.src = "ftv2mnode.png"
folder.iconImg.src = "ftv2folderopen.png"
for (i=0; i<folder.nChildren; i++)
folder.children[i].display()
}
else
{
if (folder.nodeImg)
if (folder.isLastNode)
folder.nodeImg.src = "ftv2plastnode.png"
else
folder.nodeImg.src = "ftv2pnode.png"
folder.iconImg.src = "ftv2folderclosed.png"
for (i=0; i<folder.nChildren; i++)
folder.children[i].hide()
}
}
function hideFolder()
{
if (browserVersion == 1 || browserVersion == 3) {
if (this.navObj.style.display == "none")
return
this.navObj.style.display = "none"
} else {
if (this.navObj.visibility == "hidden")
return
this.navObj.visibility = "hidden"
}
this.setState(0)
}
function initializeFolder(level, lastNode, leftSide)
{
var j=0
var i=0
var numberOfFolders
var numberOfDocs
var nc
nc = this.nChildren
this.createIndex()
var auxEv = ""
if (browserVersion > 0)
auxEv = "<a href='javascript:clickOnNode("+this.id+")'>"
else
auxEv = "<a>"
if (level>0)
if (lastNode) //the last 'brother' in the children array
{
this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>")
// leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
this.isLastNode = 1
}
else
{
this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>")
leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
this.isLastNode = 0
}
else
this.renderOb("")
if (nc > 0)
{
level = level + 1
for (i=0 ; i < this.nChildren; i++)
{
if (i == this.nChildren-1)
this.children[i].initialize(level, 1, leftSide)
else
this.children[i].initialize(level, 0, leftSide)
}
}
}
function drawFolder(leftSide)
{
if (browserVersion == 2) {
if (!doc.yPos)
doc.yPos=8
doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
}
if (browserVersion == 3)
{
doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>")
}
doc.write("\n<table ")
if (browserVersion == 1)
doc.write(" id='folder" + this.id + "' style='position:block;' ")
doc.write(" border=0 cellspacing=0 cellpadding=0>")
doc.write("\n<tr><td>")
doc.write(leftSide)
this.outputLink()
doc.write("<img name='folderIcon" + this.id + "' ")
doc.write("src='" + this.iconSrc+"' border=0></a>")
doc.write("</td>\n<td valign=middle nowrap>")
if (USETEXTLINKS)
{
this.outputLink()
doc.write(this.desc + "</a>")
}
else
doc.write(this.desc)
/*!
if (this.tagName!="")
{
doc.write(" [external]")
}
*/
doc.write("</td>")
doc.write("\n</table>\n")
if (browserVersion == 2) {
doc.write("</layer>")
}
if (browserVersion == 3) {
doc.write("</div>")
}
if (browserVersion == 1) {
this.navObj = doc.all["folder"+this.id]
this.iconImg = doc.all["folderIcon"+this.id]
this.nodeImg = doc.all["nodeIcon"+this.id]
} else if (browserVersion == 2) {
this.navObj = doc.layers["folder"+this.id]
this.iconImg = this.navObj.document.images["folderIcon"+this.id]
this.nodeImg = this.navObj.document.images["nodeIcon"+this.id]
doc.yPos=doc.yPos+this.navObj.clip.height
} else if (browserVersion == 3) {
this.navObj = doc.getElementById("folder"+this.id)
this.iconImg = doc.images.namedItem("folderIcon"+this.id)
this.nodeImg = doc.images.namedItem("nodeIcon"+this.id)
}
}
function outputFolderLink()
{
if (this.hreference)
{
doc.write("<a ")
if (this.tagName)
{
doc.write("doxygen='" + this.tagName + "' ");
}
doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ")
if (browserVersion > 0)
doc.write("onClick='javascript:clickOnFolder("+this.id+")'")
doc.write(">")
}
else
doc.write("<a>")
}
function addChild(childNode)
{
this.children[this.nChildren] = childNode
this.nChildren++
return childNode
}
function folderSubEntries()
{
var i = 0
var se = this.nChildren
for (i=0; i < this.nChildren; i++){
if (this.children[i].children) //is a folder
se = se + this.children[i].subEntries()
}
return se
}
// Definition of class Item (a document or link inside a Folder)
// *************************************************************
function Item(itemDescription, tagName, itemLink) // Constructor
{
// constant data
this.desc = itemDescription
this.tagName = tagName
this.link = itemLink
this.id = -1 //initialized in initalize()
this.navObj = 0 //initialized in render()
this.iconImg = 0 //initialized in render()
this.iconSrc = "ftv2doc.png"
// methods
this.initialize = initializeItem
this.createIndex = createEntryIndex
this.hide = hideItem
this.display = display
this.renderOb = drawItem
this.totalHeight = totalHeight
}
function hideItem()
{
if (browserVersion == 1 || browserVersion == 3) {
if (this.navObj.style.display == "none")
return
this.navObj.style.display = "none"
} else {
if (this.navObj.visibility == "hidden")
return
this.navObj.visibility = "hidden"
}
}
function initializeItem(level, lastNode, leftSide)
{
this.createIndex()
if (level>0)
if (lastNode) //the last 'brother' in the children array
{
this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>")
leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
}
else
{
this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>")
leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
}
else
this.renderOb("")
}
function drawItem(leftSide)
{
if (browserVersion == 2)
doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
if (browserVersion == 3)
doc.write("<div id='item" + this.id + "' style='display:block;'>")
doc.write("\n<table ")
if (browserVersion == 1)
doc.write(" id='item" + this.id + "' style='position:block;' ")
doc.write(" border=0 cellspacing=0 cellpadding=0>\n")
doc.write("<tr><td>")
doc.write(leftSide)
if (this.link!="")
{
doc.write("<a href=" + this.link + ">")
}
doc.write("<img id='itemIcon"+this.id+"' ")
doc.write("src='"+this.iconSrc+"' border=0>")
if (this.link!="")
{
doc.write("</a>")
}
doc.write("</td>\n<td valign=middle nowrap>")
if (USETEXTLINKS && this.link!="")
doc.write("<a href=" + this.link + ">" + this.desc + "</a>")
else
doc.write(this.desc)
/*!
if (this.tagName!="")
{
doc.write(" [external]");
}
*/
doc.write("\n</table>\n")
if (browserVersion == 2)
doc.write("</layer>")
if (browserVersion == 3)
doc.write("</div>")
if (browserVersion == 1) {
this.navObj = doc.all["item"+this.id]
this.iconImg = doc.all["itemIcon"+this.id]
} else if (browserVersion == 2) {
this.navObj = doc.layers["item"+this.id]
this.iconImg = this.navObj.document.images["itemIcon"+this.id]
doc.yPos=doc.yPos+this.navObj.clip.height
} else if (browserVersion == 3) {
this.navObj = doc.getElementById("item"+this.id)
this.iconImg = doc.images.namedItem("itemIcon"+this.id)
}
}
// Methods common to both objects (pseudo-inheritance)
// ********************************************************
function display()
{
if (browserVersion == 1 || browserVersion == 3)
this.navObj.style.display = "block"
else
this.navObj.visibility = "show"
}
function createEntryIndex()
{
this.id = nEntries
indexOfEntries[nEntries] = this
nEntries++
}
// total height of subEntries open
function totalHeight() //used with browserVersion == 2
{
var h = this.navObj.clip.height
var i = 0
if (this.isOpen) //is a folder and _is_ open
for (i=0 ; i < this.nChildren; i++)
h = h + this.children[i].totalHeight()
return h
}
// Events
// *********************************************************
function clickOnFolder(folderId)
{
var clicked = indexOfEntries[folderId]
if (!clicked.isOpen)
clickOnNode(folderId)
return
if (clicked.isSelected)
return
}
function clickOnNode(folderId)
{
var clickedFolder = 0
var state = 0
clickedFolder = indexOfEntries[folderId]
state = clickedFolder.isOpen
clickedFolder.setState(!state) //open<->close
}
function initializeDocument()
{
doc = document;
if (doc.all)
browserVersion = 1 //IE4
else
if (doc.layers)
browserVersion = 2 //NS4
else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
browserVersion = 3 //mozilla
else
browserVersion = 0 //other
foldersTree.initialize(0, 1, "")
foldersTree.display()
if (browserVersion > 0)
{
if(browserVersion != 3)
doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>")
// close the whole tree
clickOnNode(0)
// open the root folder
clickOnNode(0)
}
}
// Auxiliary Functions for Folder-Treee backward compatibility
// *********************************************************
function gFld(description, tagName, hreference)
{
folder = new Folder(description, tagName, hreference)
return folder
}
function gLnk(description, tagName, linkData)
{
fullLink = ""
if (linkData!="")
{
fullLink = "'"+linkData+"' target=\"basefrm\""
}
linkItem = new Item(description, tagName, fullLink)
return linkItem
}
function insFld(parentFolder, childFolder)
{
return parentFolder.addChild(childFolder)
}
function insDoc(parentFolder, document)
{
parentFolder.addChild(document)
}
// Global variables
// ****************
USETEXTLINKS = 1
indexOfEntries = new Array
nEntries = 0
doc = document
browserVersion = 0
selectedFolder=0

View File

@ -1,39 +0,0 @@
# -* Makefile *-
#
# Author : Vasily Rusyaev (Open Cascade NN)
# Date : 13/02/2003
# $Header:
#
# source path
top_srcdir=@top_srcdir@
root_srcdir=@ROOT_SRCDIR@
top_builddir=../..
srcdir=@srcdir@
VPATH=.:@srcdir@
doxygen=@DOXYGEN@
@COMMENCE@
doc:
cp -fr $(srcdir)/INPUT ./; \
cd INPUT; \
sed 's|../../../share/salome|$(root_srcdir)|' doxyfile > doxyfile1; \
mv -f doxyfile1 doxyfile; \
$(doxygen) ./doxyfile; \
cd ..; \
cp -fr $(srcdir)/INPUT/sources/static/*.* ./html/
cp -fr $(srcdir)/INPUT/sources/ html/
cp -fr $(srcdir)/INPUT/HTML/ html/
clean:
rm -rf html
distclean: clean
rm -rf INPUT
install:
$(INSTALL) -d $(docdir); \
cp -rf html $(docdir)
uninstall:
rm -rf $(docdir)/html

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,230 +0,0 @@
<!DOCTYPE HTML PUBLIC "HTML 4.01 Transitional">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Geometry module in SALOME environnement </title>
</head>
<body>
<h1>SMESH starting tutorial</h1>
<h2>2D meshing with MEFISTO</h2>
<h3>Overview</h3>
<p><i>Before following this tutorial you need to create or import a geometry.
Please refere to the GEOM module documentation to do so.</i></p>
<p>Now we have to load SMESH component. To do so&nbsp;: </p>
<ul>
<li>click on the SMESH icon or on 'SMESH' into the combo box of resources
on botton left.</li>
</ul>
<p><i>SMESH is used to mesh edges, faces and volums each one thanks to a
specialised algorithm. To mesh an entity which degree is n, one must have all
its lower degree entities meshed. For instance, to mesh a face requires a
previous meshing of all its edges. In the example MEFISTO meshes faces, and
Regular_1D meshes edges. MEFISTO doesn't check how edges are meshed. The only
test it does is to verify that edges are meshed before starting its work.
MEFISTO requires an hypothesis&nbsp;: maximum area of triangles. Regular_1D
requires one hypothesis among two: number of segments per edge <u>or</u>
length of segment.</i>&nbsp; </p>
<p>The entire operation is done by :</p>
<ol>
<li>init a mesh object associated to a geometrical object</li>
<li>choosing an <u>algorithm</u> for meshing faces, here MEFISTO is
choosen</li>
<li>choosing an <u>algorithm</u> for meshing edges, here Regular1d is
choosen</li>
<li>creating <u>hypothesis</u> of calculation. We need to inform :
<ul>
<li>the number of segments per edge</li>
<li>the maximum area per triangle of meshing</li>
</ul>
</li>
<li>setting or attaching algorithm and hypothesis to the object loaded</li>
<li>launching computation</li>
<li>displaying the result in the best mode.</li>
</ol>
<img alt="" src="SMESHOverview.png">
<h3>Details</h3>
<p>Below are explained those 6 steps precisely&nbsp;: </p>
<ol>
<li><p><u>init a mesh object associated to a geometrical object :</u></p>
<p><img src="MeshInit.png"></p>
<ul>
<li>In the menu bar on the top, find the <u>Mesh</u> menu and click on
<u>Init.</u></li>
<li>Then in the dialog box select the topology into Geometry field of
ObjectBrowser or Viewer, give a name an click on Ok.</li>
<li>The topology is now known inside SMESH component.</li>
</ul>
</li>
<li><p>define algorithms for meshing&nbsp;: </p>
<p><img src="SelectAlgorithms.png"></p>
<ul>
<li>In the menu bar, find <u>Hypothesis</u>, <u>Algorithm</u> then
click on <u>Mefisto.</u></li>
<li>Do the same to load 'Regular1D'.</li>
<li>Remember, Regular1D is needed for edge meshing.</li>
</ul>
</li>
<li><p>define <u>hypothesis</u> of calculation&nbsp;:<br>
In the menu bar, find <u>Hypothesis</u> then Hypothesis and click on
Segments. Then in the dialog box give a name for <u>hypothesis</u> and a
value that is the number of segments per edge. Enter 7 segments for
example.<br>
Do the same for 'Max. Element Area' argument that is the maximum surface
of triangles builded during meshing. Enter 2500 here.</p>
</li>
<li><p>Attach previous arguments (hypothesis) and algorithm to the
topology&nbsp;:<br>
Select the object in the Object Browser then using pop up menu (right
click on object),<br>
'Set algorithm' and 'Set Hypothesis' into specialized dialog boxes.<br>
You can also find these methods in the menu 'Hypothesis'.</p>
</li>
<li><p>Selecting the mesh object before, start computation in the pop up
menu; click on 'Compute'.</p>
</li>
<li><p>Update the display using '<i>Update'</i> if necessary.<br>
Note&nbsp;: in <i>Preferencies</i>&nbsp;/ <i>Mesh</i> menu there is an
option to have an automatic update of the display after operations that
modify it such as Compute, adding nodesâ&#x20ac;¦ If this option is not
setted user must make an update of the display manually.<br>
<br>
You may also adjust the display '<i>Properties' / 'Display Mode</i>' has
you prefer&nbsp;; shading, wireframe or shrink,<br>
and adjust color and size attributs in a specific dialog box shown
below.</p>
<p><img src="SetColor.png"></p>
</li>
</ol>
<h3>Final result of meshing</h3>
<p>At this final step you can observe the result of 2D meshing of faces by
MEFISTO.</p>
<p>Note&nbsp;: it is possible to change an hypothesis by mean the pop up then
<i>Edit</i> and finally compute again.</p>
<p><img src="MeshResult.png"></p>
<h2>Meshing with global and local hypothesis</h2>
<h3>details</h3>
<p><i>We would now make a mesh as before but with a local modification of
parameter (hypothesis) on an edge. We first have to explode the initial
topology in GEOMETRY component. This operation will give us access to sub
shapes edges of geom.brep.</i></p>
<ol>
<li><p>import or create a geometry as before</p>
</li>
<li><p>call 'Explode' method found in 'New Entity' on the menu bar&nbsp;;
(remember the tip about Automatic/Store&nbsp;!) </p>
<p><img src="SubShapesSelection.png"></p>
</li>
<li><p>select the main object, choose 'Edge' in the combo box and click on
Ok.<br>
<u>Note</u>&nbsp;: do not click on 'select sub shape' at anytime. This
function is used with OCC viewer for individual sub shape selection not
yet available with VTK.<br>
<br>
Now the object browser contents all edges as sub shapes of the main
topology. Select the first edge <i>Edge_&nbsp;1</i> and display only it.
Use the pop up 'Display only' mode for this.<br>
You may also rename the edge to remember it for future meshing.<br>
<i>Our scope&nbsp;: apply a local hypothesis on this edge.<br>
</i></p>
</li>
<li><p>The job is now finished for GEOMETRY component.</p>
</li>
<li><p>Load SMESH component and use menus 'Mesh' and 'Init' to load the
topology into SMESH as before.<br>
(Already defined if you have kept the previous study.)</p>
</li>
<li><p>Define algorithms Regular_1D and Mefisto using menus 'Hypothesis'
and 'Algorithm'.</p>
</li>
<li><p>Define hypothesis 'Segments' = 7 and 'Max. Element Area' = 2500.
(Already defined ifâ&#x20ac;¦) </p>
</li>
<li><p>Define another hypothesis 'Local length' = 100 to be used only as
local parameter for the edge.</p>
</li>
<li><p>Now we have to attach algorithms and hypothesis to topologies, the
global and the sub shape edge.<br>
For the main topology, select it and use 'Set algorithms' and 'Set
Hypothesis' and attach&nbsp;:<br>
hypothesis 'Segments' = 7 and 'Max. Element Area' = 2500.</p>
</li>
<li><p>To set a local parameter of meshing on the edge we do :<br>
click on 'Mesh' menu then 'Add Sub Mesh'. On the dialog box select the
main object then sub object edge from Object Browser and GEOMETRY field.
Give it a local name; for example <i>myEdge</i> or anyone.</p>
<p><img src="SubMeshContruction.png"></p>
</li>
<li><p>Set the algorithm used for edge meshing. Here use Regular_&nbsp;1D.
</p>
</li>
<li><p>Set a local hypothesis to the edge. Use 'Local length' = 100.</p>
</li>
<li><p>'<i>Compute'</i> (and '<i>Update'</i> display if necessary see
before) the main&nbsp;mesh object. This will compute also the edge sub
shape.<br>
Do not forget to activate the display&nbsp;mode Wireframe,
Shading&nbsp;or Shrink; see in pop up menu '<i>Properties'</i>,
'<i>Display mode'</i>â&#x20ac;¦ </p>
</li>
<li><p>Move the point of view&nbsp;to watch the edge meshed with a local
hypothesis 'Local length' = 100. </p>
</li>
</ol>
<h3>The result of second meshing</h3>
<p>As we see below, the effect produced by setting a local hypothesis setted
on the edge <i>Edge_&nbsp;1.</i></p>
<p align="left">Compare to another edge that have the same physical
length.</p>
<p><img src="MeshResult2.png"></p>
<h2>Using PYTHON interpretor to import an example script</h2>
It is easy to import an example of meshing procedure using PYTHON interpretor
:
<ul>
<li>Load SMESH component with VTK viewer.</li>
<li>Just type <i>'import geomMesh.py'</i> in the textual window of
PYTHON.</li>
<li>Validate with the <i>Enter</i> key.</li>
<li>You just have to run 'Compute' then choose a display mode to see the
result.</li>
</ul>
This imported example is very similar to the last exercice. It uses a local
hypothesis on an edge too.
<p><img src="ImportResult.png"></p>
<h2>Control features</h2>
<p>Test now a control function of area for mesh resulting triangles.</p>
<p>Find <i>Control</i> on the menu bar then <i>Cells</i> and <i>Area</i>. The
image below displays areas with a color depending on its value in the scalar
bar shown on the left.<br>
Scalar bar general parameters are setted in <i>Preferencies</i>&nbsp;/
<i>Mesh</i> / <i>Scalar Bar</i>.</p>
<p>Specific range parameters are changed with the pop up menu.</p>
<p><img src="ControlFeature.png"></p>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,50 +0,0 @@
# SMESH OBJECT : interactive object for SMESH visualization
#
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#
#
#
# File : Makefile.in
# Module : SMESH
top_srcdir=@top_srcdir@
top_builddir=../..
srcdir=@srcdir@
VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
@COMMENCE@
EXPORT_HEADERS = SMESH_Controls.hxx
# Libraries targets
LIB = libSMESHControls.la
LIB_SRC = SMESH_Controls.cxx
# Executables targets
BIN = SMESHControls
BIN_SRC =
CPPFLAGS+=$(OCC_INCLUDES) $(BOOST_CPPFLAGS)
LDFLAGS+=$(OCC_KERNEL_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSMDS
@CONCLUDE@

View File

@ -1,42 +0,0 @@
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#include "SMESH_Controls.hxx"
int main(int argc, char** argv)
{
using namespace SMESH::Controls;
new MinimumAngle();
new AspectRatio();
new Warping();
new Taper();
new Skew();
new Area();
new Length();
new MultiConnection();
new FreeBorders();
new LessThan();
new MoreThan();
new EqualTo();
new LogicalNOT();
new LogicalAND();
new LogicalOR();
return 1;
}

View File

@ -1,774 +0,0 @@
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#include <set>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <gp_XYZ.hxx>
#include <Precision.hxx>
#include <TColgp_SequenceOfXYZ.hxx>
#include <TColStd_MapOfInteger.hxx>
#include "SMDS_Mesh.hxx"
#include "SMDS_Iterator.hxx"
#include "SMDS_MeshElement.hxx"
#include "SMDS_MeshNode.hxx"
#include "SMESH_Controls.hxx"
/*
AUXILIARY METHODS
*/
static inline double getAngle( const gp_XYZ& P1, const gp_XYZ& P2, const gp_XYZ& P3 )
{
return gp_Vec( P1 - P2 ).Angle( gp_Vec( P3 - P2 ) );
}
static inline double getArea( const gp_XYZ& P1, const gp_XYZ& P2, const gp_XYZ& P3 )
{
gp_Vec aVec1( P2 - P1 );
gp_Vec aVec2( P3 - P1 );
return ( aVec1 ^ aVec2 ).Magnitude() * 0.5;
}
static inline double getArea( const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3 )
{
return getArea( P1.XYZ(), P2.XYZ(), P3.XYZ() );
}
static inline double getDistance( const gp_XYZ& P1, const gp_XYZ& P2 )
{
double aDist = gp_Pnt( P1 ).Distance( gp_Pnt( P2 ) );
return aDist;
}
static int getNbMultiConnection( SMDS_Mesh* theMesh, const int theId )
{
if ( theMesh == 0 )
return 0;
const SMDS_MeshElement* anEdge = theMesh->FindElement( theId );
if ( anEdge == 0 || anEdge->GetType() != SMDSAbs_Edge || anEdge->NbNodes() != 2 )
return 0;
TColStd_MapOfInteger aMap;
int aResult = 0;
SMDS_ElemIteratorPtr anIter = anEdge->nodesIterator();
if ( anIter != 0 )
{
while( anIter->more() )
{
const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
if ( aNode == 0 )
return 0;
SMDS_ElemIteratorPtr anElemIter = aNode->GetInverseElementIterator();
while( anElemIter->more() )
{
const SMDS_MeshElement* anElem = anElemIter->next();
if ( anElem != 0 && anElem->GetType() != SMDSAbs_Edge )
{
int anId = anElem->GetID();
if ( anIter->more() ) // i.e. first node
aMap.Add( anId );
else if ( aMap.Contains( anId ) )
aResult++;
}
}
}
}
return aResult;
}
using namespace SMESH::Controls;
/*
FUNCTORS
*/
/*
Class : NumericalFunctor
Description : Base class for numerical functors
*/
NumericalFunctor::NumericalFunctor():
myMesh(NULL)
{}
void NumericalFunctor::SetMesh( SMDS_Mesh* theMesh )
{
myMesh = theMesh;
}
bool NumericalFunctor::getPoints( const int theId,
TColgp_SequenceOfXYZ& theRes ) const
{
theRes.Clear();
if ( myMesh == 0 )
return false;
// Get nodes of the face
const SMDS_MeshElement* anElem = myMesh->FindElement( theId );
if ( anElem == 0 || anElem->GetType() != GetType() )
return false;
int nbNodes = anElem->NbNodes();
SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
if ( anIter != 0 )
{
while( anIter->more() )
{
const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
if ( aNode != 0 )
theRes.Append( gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
}
}
return true;
}
/*
Class : MinimumAngle
Description : Functor for calculation of minimum angle
*/
double MinimumAngle::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
if ( !getPoints( theId, P ) || P.Length() != 3 && P.Length() != 4 )
return 0;
double aMin;
if ( P.Length() == 3 )
{
double A0 = getAngle( P( 3 ), P( 1 ), P( 2 ) );
double A1 = getAngle( P( 1 ), P( 2 ), P( 3 ) );
double A2 = getAngle( P( 2 ), P( 3 ), P( 1 ) );
aMin = Min( A0, Min( A1, A2 ) );
}
else
{
double A0 = getAngle( P( 4 ), P( 1 ), P( 2 ) );
double A1 = getAngle( P( 1 ), P( 2 ), P( 3 ) );
double A2 = getAngle( P( 2 ), P( 3 ), P( 4 ) );
double A3 = getAngle( P( 3 ), P( 4 ), P( 1 ) );
aMin = Min( Min( A0, A1 ), Min( A2, A3 ) );
}
return aMin * 180 / PI;
}
SMDSAbs_ElementType MinimumAngle::GetType() const
{
return SMDSAbs_Face;
}
/*
Class : AspectRatio
Description : Functor for calculating aspect ratio
*/
double AspectRatio::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
if ( !getPoints( theId, P ) || P.Length() != 3 && P.Length() != 4 )
return 0;
int nbNodes = P.Length();
// Compute lengths of the sides
double aLen[ nbNodes ];
for ( int i = 0; i < nbNodes - 1; i++ )
aLen[ i ] = getDistance( P( i + 1 ), P( i + 2 ) );
aLen[ nbNodes - 1 ] = getDistance( P( 1 ), P( nbNodes ) );
// Compute aspect ratio
if ( nbNodes == 3 )
{
double aMaxLen = Max( aLen[ 0 ], Max( aLen[ 1 ], aLen[ 2 ] ) );
double anArea = getArea( P( 1 ), P( 2 ), P( 3 ) );
static double aCoef = sqrt( 3. ) / 4;
return anArea != 0 ? aCoef * aMaxLen * aMaxLen / anArea : 0;
}
else
{
double aMaxLen = Max( Max( aLen[ 0 ], aLen[ 1 ] ), Max( aLen[ 2 ], aLen[ 3 ] ) );
double aMinLen = Min( Min( aLen[ 0 ], aLen[ 1 ] ), Min( aLen[ 2 ], aLen[ 3 ] ) );
return aMinLen != 0 ? aMaxLen / aMinLen : 0;
}
}
SMDSAbs_ElementType AspectRatio::GetType() const
{
return SMDSAbs_Face;
}
/*
Class : Warping
Description : Functor for calculating warping
*/
double Warping::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
if ( !getPoints( theId, P ) || P.Length() != 4 )
return 0;
gp_XYZ G = ( P( 1 ) + P( 2 ) + P( 3 ) + P( 4 ) ) / 4;
double A1 = ComputeA( P( 1 ), P( 2 ), P( 3 ), G );
double A2 = ComputeA( P( 2 ), P( 3 ), P( 4 ), G );
double A3 = ComputeA( P( 3 ), P( 4 ), P( 1 ), G );
double A4 = ComputeA( P( 4 ), P( 1 ), P( 2 ), G );
return Max( Max( A1, A2 ), Max( A3, A4 ) );
}
double Warping::ComputeA( const gp_XYZ& thePnt1,
const gp_XYZ& thePnt2,
const gp_XYZ& thePnt3,
const gp_XYZ& theG ) const
{
double aLen1 = gp_Pnt( thePnt1 ).Distance( gp_Pnt( thePnt2 ) );
double aLen2 = gp_Pnt( thePnt2 ).Distance( gp_Pnt( thePnt3 ) );
double L = Min( aLen1, aLen2 ) * 0.5;
gp_XYZ GI = ( thePnt2 - thePnt1 ) / 2. - theG;
gp_XYZ GJ = ( thePnt3 - thePnt2 ) / 2. - theG;
gp_XYZ N = GI.Crossed( GJ );
N.Normalize();
double H = gp_Vec( thePnt2 - theG ).Dot( gp_Vec( N ) );
return asin( fabs( H / L ) ) * 180 / PI;
}
SMDSAbs_ElementType Warping::GetType() const
{
return SMDSAbs_Face;
}
/*
Class : Taper
Description : Functor for calculating taper
*/
double Taper::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
if ( !getPoints( theId, P ) || P.Length() != 4 )
return 0;
// Compute taper
double J1 = getArea( P( 4 ), P( 1 ), P( 2 ) ) / 2;
double J2 = getArea( P( 3 ), P( 1 ), P( 2 ) ) / 2;
double J3 = getArea( P( 2 ), P( 3 ), P( 4 ) ) / 2;
double J4 = getArea( P( 3 ), P( 4 ), P( 1 ) ) / 2;
double JA = 0.25 * ( J1 + J2 + J3 + J4 );
double T1 = fabs( ( J1 - JA ) / JA );
double T2 = fabs( ( J2 - JA ) / JA );
double T3 = fabs( ( J3 - JA ) / JA );
double T4 = fabs( ( J4 - JA ) / JA );
return Max( Max( T1, T2 ), Max( T3, T4 ) );
}
SMDSAbs_ElementType Taper::GetType() const
{
return SMDSAbs_Face;
}
/*
Class : Skew
Description : Functor for calculating skew in degrees
*/
static inline double skewAngle( const gp_XYZ& p1, const gp_XYZ& p2, const gp_XYZ& p3 )
{
gp_XYZ p12 = ( p2 + p1 ) / 2;
gp_XYZ p23 = ( p3 + p2 ) / 2;
gp_XYZ p31 = ( p3 + p1 ) / 2;
return gp_Vec( p31 - p2 ).Angle( p12 - p23 );
}
double Skew::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
if ( !getPoints( theId, P ) || P.Length() != 3 && P.Length() != 4 )
return 0;
// Compute skew
static double PI2 = PI / 2;
if ( P.Length() == 3 )
{
double A0 = fabs( PI2 - skewAngle( P( 3 ), P( 1 ), P( 2 ) ) );
double A1 = fabs( PI2 - skewAngle( P( 1 ), P( 2 ), P( 3 ) ) );
double A2 = fabs( PI2 - skewAngle( P( 2 ), P( 3 ), P( 1 ) ) );
return Max( A0, Max( A1, A2 ) ) * 180 / PI;
}
else
{
gp_XYZ p12 = ( P( 1 ) + P( 2 ) ) / 2;
gp_XYZ p23 = ( P( 2 ) + P( 3 ) ) / 2;
gp_XYZ p34 = ( P( 3 ) + P( 4 ) ) / 2;
gp_XYZ p41 = ( P( 4 ) + P( 1 ) ) / 2;
double A = fabs( PI2 - gp_Vec( p34 - p12 ).Angle( p23 - p41 ) );
return A * 180 / PI;
}
}
SMDSAbs_ElementType Skew::GetType() const
{
return SMDSAbs_Face;
}
/*
Class : Area
Description : Functor for calculating area
*/
double Area::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
if ( !getPoints( theId, P ) || P.Length() != 3 && P.Length() != 4 )
return 0;
if ( P.Length() == 3 )
return getArea( P( 1 ), P( 2 ), P( 3 ) );
else
return getArea( P( 1 ), P( 2 ), P( 3 ) ) + getArea( P( 1 ), P( 3 ), P( 4 ) );
}
SMDSAbs_ElementType Area::GetType() const
{
return SMDSAbs_Face;
}
/*
Class : Length
Description : Functor for calculating length off edge
*/
double Length::GetValue( long theId )
{
TColgp_SequenceOfXYZ P;
return getPoints( theId, P ) && P.Length() == 2 ? getDistance( P( 1 ), P( 2 ) ) : 0;
}
SMDSAbs_ElementType Length::GetType() const
{
return SMDSAbs_Edge;
}
/*
Class : MultiConnection
Description : Functor for calculating number of faces conneted to the edge
*/
double MultiConnection::GetValue( long theId )
{
return getNbMultiConnection( myMesh, theId );
}
SMDSAbs_ElementType MultiConnection::GetType() const
{
return SMDSAbs_Edge;
}
/*
PREDICATES
*/
/*
Class : FreeBorders
Description : Predicate for free borders
*/
FreeBorders::FreeBorders()
{
myMesh = 0;
}
void FreeBorders::SetMesh( SMDS_Mesh* theMesh )
{
myMesh = theMesh;
}
bool FreeBorders::IsSatisfy( long theId )
{
return getNbMultiConnection( myMesh, theId ) == 1;
}
SMDSAbs_ElementType FreeBorders::GetType() const
{
return SMDSAbs_Edge;
}
/*
Class : FreeEdges
Description : Predicate for free Edges
*/
FreeEdges::FreeEdges()
{
myMesh = 0;
}
void FreeEdges::SetMesh( SMDS_Mesh* theMesh )
{
myMesh = theMesh;
}
bool FreeEdges::IsSatisfy( long theId )
{
return getNbMultiConnection( myMesh, theId ) == 1;
}
SMDSAbs_ElementType FreeEdges::GetType() const
{
return SMDSAbs_Face;
}
FreeEdges::Border::Border(long thePntId1, long thePntId2){
PntId[0] = thePntId1; PntId[1] = thePntId2;
if(thePntId1 > thePntId2){
PntId[1] = thePntId1; PntId[0] = thePntId2;
}
}
//bool operator<(const FreeEdges::Border& x, const FreeEdges::Border& y){
// if(x.PntId[0] < y.PntId[0]) return true;
// if(x.PntId[0] == y.PntId[0])
// if(x.PntId[1] < y.PntId[1]) return true;
// return false;
//}
namespace SMESH{
namespace Controls{
struct EdgeBorder: public FreeEdges::Border{
long ElemId;
EdgeBorder(long theElemId, long thePntId1, long thePntId2):
FreeEdges::Border(thePntId1,thePntId2),
ElemId(theElemId)
{}
};
bool operator<(const FreeEdges::Border& x, const FreeEdges::Border& y){
if(x.PntId[0] < y.PntId[0]) return true;
if(x.PntId[0] == y.PntId[0])
if(x.PntId[1] < y.PntId[1]) return true;
return false;
}
typedef std::set<EdgeBorder> EdgeBorderS;
inline void UpdateBorders(const EdgeBorder& theBorder,
EdgeBorderS& theRegistry,
EdgeBorderS& theContainer)
{
if(theRegistry.find(theBorder) == theRegistry.end()){
theRegistry.insert(theBorder);
theContainer.insert(theBorder);
}else{
theContainer.erase(theBorder);
}
}
}
}
void FreeEdges::GetBoreders(Borders& theBorders)
{
EdgeBorderS aRegistry;
EdgeBorderS aContainer;
SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
for(; anIter->more(); ){
const SMDS_MeshFace* anElem = anIter->next();
long anElemId = anElem->GetID();
SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
long aNodeId[2];
const SMDS_MeshElement* aNode;
if(aNodesIter->more()){
aNode = aNodesIter->next();
aNodeId[0] = aNodeId[1] = aNode->GetID();
}
for(; aNodesIter->more(); ){
aNode = aNodesIter->next();
EdgeBorder aBorder(anElemId,aNodeId[1],aNode->GetID());
aNodeId[1] = aNode->GetID();
//std::cout<<aBorder.PntId[0]<<"; "<<aBorder.PntId[1]<<"; "<<aBorder.ElemId<<"\n";
UpdateBorders(aBorder,aRegistry,aContainer);
}
EdgeBorder aBorder(anElemId,aNodeId[0],aNodeId[1]);
UpdateBorders(aBorder,aRegistry,aContainer);
}
//std::cout<<"aContainer.size() = "<<aContainer.size()<<"\n";
if(aContainer.size()){
EdgeBorderS::const_iterator anIter = aContainer.begin();
for(; anIter != aContainer.end(); anIter++){
const EdgeBorder& aBorder = *anIter;
//std::cout<<aBorder.PntId[0]<<"; "<<aBorder.PntId[1]<<"; "<<aBorder.ElemId<<"\n";
theBorders.insert(Borders::value_type(aBorder.ElemId,aBorder));
}
}
}
/*
Class : Comparator
Description : Base class for comparators
*/
Comparator::Comparator():
myMargin(0)
{}
Comparator::~Comparator()
{}
void Comparator::SetMesh( SMDS_Mesh* theMesh )
{
if ( myFunctor )
myFunctor->SetMesh( theMesh );
}
void Comparator::SetMargin( double theValue )
{
myMargin = theValue;
}
void Comparator::SetNumFunctor( NumericalFunctorPtr theFunct )
{
myFunctor = theFunct;
}
SMDSAbs_ElementType Comparator::GetType() const
{
return myFunctor ? myFunctor->GetType() : SMDSAbs_All;
}
/*
Class : LessThan
Description : Comparator "<"
*/
bool LessThan::IsSatisfy( long theId )
{
return myFunctor && myFunctor->GetValue( theId ) < myMargin;
}
/*
Class : MoreThan
Description : Comparator ">"
*/
bool MoreThan::IsSatisfy( long theId )
{
return myFunctor && myFunctor->GetValue( theId ) > myMargin;
}
/*
Class : EqualTo
Description : Comparator "="
*/
EqualTo::EqualTo():
myToler(Precision::Confusion())
{}
bool EqualTo::IsSatisfy( long theId )
{
return myFunctor && fabs( myFunctor->GetValue( theId ) - myMargin ) < myToler;
}
void EqualTo::SetTolerance( double theToler )
{
myToler = theToler;
}
/*
Class : LogicalNOT
Description : Logical NOT predicate
*/
LogicalNOT::LogicalNOT()
{}
LogicalNOT::~LogicalNOT()
{}
bool LogicalNOT::IsSatisfy( long theId )
{
return myPredicate && !myPredicate->IsSatisfy( theId );
}
void LogicalNOT::SetMesh( SMDS_Mesh* theMesh )
{
if ( myPredicate )
myPredicate->SetMesh( theMesh );
}
void LogicalNOT::SetPredicate( PredicatePtr thePred )
{
myPredicate = thePred;
}
SMDSAbs_ElementType LogicalNOT::GetType() const
{
return myPredicate ? myPredicate->GetType() : SMDSAbs_All;
}
/*
Class : LogicalBinary
Description : Base class for binary logical predicate
*/
LogicalBinary::LogicalBinary()
{}
LogicalBinary::~LogicalBinary()
{}
void LogicalBinary::SetMesh( SMDS_Mesh* theMesh )
{
if ( myPredicate1 )
myPredicate1->SetMesh( theMesh );
if ( myPredicate2 )
myPredicate2->SetMesh( theMesh );
}
void LogicalBinary::SetPredicate1( PredicatePtr thePredicate )
{
myPredicate1 = thePredicate;
}
void LogicalBinary::SetPredicate2( PredicatePtr thePredicate )
{
myPredicate2 = thePredicate;
}
SMDSAbs_ElementType LogicalBinary::GetType() const
{
if ( !myPredicate1 || !myPredicate2 )
return SMDSAbs_All;
SMDSAbs_ElementType aType1 = myPredicate1->GetType();
SMDSAbs_ElementType aType2 = myPredicate2->GetType();
return aType1 == aType2 ? aType1 : SMDSAbs_All;
}
/*
Class : LogicalAND
Description : Logical AND
*/
bool LogicalAND::IsSatisfy( long theId )
{
return
myPredicate1 &&
myPredicate2 &&
myPredicate1->IsSatisfy( theId ) &&
myPredicate2->IsSatisfy( theId );
}
/*
Class : LogicalOR
Description : Logical OR
*/
bool LogicalOR::IsSatisfy( long theId )
{
return
myPredicate1 &&
myPredicate2 &&
myPredicate1->IsSatisfy( theId ) ||
myPredicate2->IsSatisfy( theId );
}
/*
FILTER
*/
Filter::Filter()
{}
Filter::~Filter()
{}
void Filter::SetPredicate( PredicatePtr thePredicate )
{
myPredicate = thePredicate;
}
Filter::TIdSequence
Filter::GetElementsId( SMDS_Mesh* theMesh )
{
TIdSequence aSequence;
if ( !theMesh || !myPredicate ) return aSequence;
myPredicate->SetMesh( theMesh );
SMDSAbs_ElementType aType = myPredicate->GetType();
switch(aType){
case SMDSAbs_Edge:{
SMDS_EdgeIteratorPtr anIter = theMesh->edgesIterator();
if ( anIter != 0 ) {
while( anIter->more() ) {
const SMDS_MeshElement* anElem = anIter->next();
long anId = anElem->GetID();
if ( myPredicate->IsSatisfy( anId ) )
aSequence.push_back( anId );
}
}
}
case SMDSAbs_Face:{
SMDS_FaceIteratorPtr anIter = theMesh->facesIterator();
if ( anIter != 0 ) {
while( anIter->more() ) {
const SMDS_MeshElement* anElem = anIter->next();
long anId = anElem->GetID();
if ( myPredicate->IsSatisfy( anId ) )
aSequence.push_back( anId );
}
}
}
}
return aSequence;
}

View File

@ -1,340 +0,0 @@
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
#ifndef _SMESH_CONTROLS_HXX_
#define _SMESH_CONTROLS_HXX_
#include <map>
#include <vector>
#include <boost/shared_ptr.hpp>
#include "SMDSAbs_ElementType.hxx"
class SMDS_Mesh;
class gp_Pnt;
class gp_XYZ;
class TColgp_SequenceOfXYZ;
namespace SMESH{
namespace Controls{
class Functor{
public:
~Functor(){}
virtual void SetMesh( SMDS_Mesh* theMesh ) = 0;
};
typedef boost::shared_ptr<Functor> FunctorPtr;
class NumericalFunctor: public virtual Functor{
public:
NumericalFunctor();
virtual void SetMesh( SMDS_Mesh* theMesh );
virtual double GetValue( long theElementId ) = 0;
virtual SMDSAbs_ElementType GetType() const = 0;
protected:
bool getPoints( const int theId,
TColgp_SequenceOfXYZ& theRes ) const;
protected:
SMDS_Mesh* myMesh;
};
typedef boost::shared_ptr<NumericalFunctor> NumericalFunctorPtr;
/*
Class : SMESH_MinimumAngle
Description : Functor for calculation of minimum angle
*/
class MinimumAngle: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
Class : AspectRatio
Description : Functor for calculating aspect ratio
*/
class AspectRatio: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
Class : Warping
Description : Functor for calculating warping
*/
class Warping: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
private:
double ComputeA( const gp_XYZ&, const gp_XYZ&,
const gp_XYZ&, const gp_XYZ& ) const;
};
/*
Class : Taper
Description : Functor for calculating taper
*/
class Taper: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
Class : Skew
Description : Functor for calculating skew in degrees
*/
class Skew: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
Class : Area
Description : Functor for calculating area
*/
class Area: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
Class : Length
Description : Functor for calculating length of edge
*/
class Length: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
Class : MultiConnection
Description : Functor for calculating number of faces conneted to the edge
*/
class MultiConnection: public virtual NumericalFunctor{
public:
virtual double GetValue( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
};
/*
PREDICATES
*/
/*
Class : Predicate
Description : Base class for all predicates
*/
class Predicate: public virtual Functor{
public:
virtual bool IsSatisfy( long theElementId ) = 0;
virtual SMDSAbs_ElementType GetType() const = 0;
};
typedef boost::shared_ptr<Predicate> PredicatePtr;
/*
Class : FreeBorders
Description : Predicate for free borders
*/
class FreeBorders: public virtual Predicate{
public:
FreeBorders();
virtual void SetMesh( SMDS_Mesh* theMesh );
virtual bool IsSatisfy( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
protected:
SMDS_Mesh* myMesh;
};
/*
Class : FreeEdges
Description : Predicate for free Edges
*/
class FreeEdges: public virtual Predicate{
public:
FreeEdges();
virtual void SetMesh( SMDS_Mesh* theMesh );
virtual bool IsSatisfy( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
struct Border{
long PntId[2];
Border(long thePntId1, long thePntId2);
};
typedef long TElemId;
typedef std::map<TElemId,Border> Borders;
void GetBoreders(Borders& theBorders);
protected:
SMDS_Mesh* myMesh;
};
typedef boost::shared_ptr<FreeEdges> FreeEdgesPtr;
/*
Class : Comparator
Description : Base class for comparators
*/
class Comparator: public virtual Predicate{
public:
Comparator();
virtual ~Comparator();
virtual void SetMesh( SMDS_Mesh* theMesh );
virtual void SetMargin(double theValue);
virtual void SetNumFunctor(NumericalFunctorPtr theFunct);
virtual bool IsSatisfy( long theElementId ) = 0;
virtual SMDSAbs_ElementType GetType() const;
protected:
double myMargin;
NumericalFunctorPtr myFunctor;
};
typedef boost::shared_ptr<Comparator> ComparatorPtr;
/*
Class : LessThan
Description : Comparator "<"
*/
class LessThan: public virtual Comparator{
public:
virtual bool IsSatisfy( long theElementId );
};
/*
Class : MoreThan
Description : Comparator ">"
*/
class MoreThan: public virtual Comparator{
public:
virtual bool IsSatisfy( long theElementId );
};
/*
Class : EqualTo
Description : Comparator "="
*/
class EqualTo: public virtual Comparator{
public:
EqualTo();
virtual bool IsSatisfy( long theElementId );
virtual void SetTolerance( double theTol );
private:
double myToler;
};
typedef boost::shared_ptr<EqualTo> EqualToPtr;
/*
Class : LogicalNOT
Description : Logical NOT predicate
*/
class LogicalNOT: public virtual Predicate{
public:
LogicalNOT();
virtual ~LogicalNOT();
virtual bool IsSatisfy( long theElementId );
virtual void SetMesh( SMDS_Mesh* theMesh );
virtual void SetPredicate(PredicatePtr thePred);
virtual SMDSAbs_ElementType GetType() const;
private:
PredicatePtr myPredicate;
};
typedef boost::shared_ptr<LogicalNOT> LogicalNOTPtr;
/*
Class : LogicalBinary
Description : Base class for binary logical predicate
*/
class LogicalBinary: public virtual Predicate{
public:
LogicalBinary();
virtual ~LogicalBinary();
virtual void SetMesh( SMDS_Mesh* theMesh );
virtual void SetPredicate1(PredicatePtr thePred);
virtual void SetPredicate2(PredicatePtr thePred);
virtual SMDSAbs_ElementType GetType() const;
protected:
PredicatePtr myPredicate1;
PredicatePtr myPredicate2;
};
typedef boost::shared_ptr<LogicalBinary> LogicalBinaryPtr;
/*
Class : LogicalAND
Description : Logical AND
*/
class LogicalAND: public virtual LogicalBinary{
public:
virtual bool IsSatisfy( long theElementId );
};
/*
Class : LogicalOR
Description : Logical OR
*/
class LogicalOR: public virtual LogicalBinary{
public:
virtual bool IsSatisfy( long theElementId );
};
/*
FILTER
*/
class Filter{
public:
Filter();
virtual ~Filter();
virtual void SetPredicate(PredicatePtr thePred);
typedef std::vector<long> TIdSequence;
virtual TIdSequence GetElementsId( SMDS_Mesh* theMesh );
protected:
PredicatePtr myPredicate;
};
};
};
#endif