DCQ:prepare 2.0.0
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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 =
|
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 792 B |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1.8 KiB |
@ -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>
|
||||
|
||||
<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>
|
Before Width: | Height: | Size: 14 KiB |
@ -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 }
|
@ -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>
|
||||
|
||||
<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>
|
@ -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"))
|
@ -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+"> </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
|
@ -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
|
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 804 B |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 40 KiB |
@ -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 : </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 : maximum area of triangles. Regular_1D
|
||||
requires one hypothesis among two: number of segments per edge <u>or</u>
|
||||
length of segment.</i> </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 : </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 : </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 :<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 :<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 : in <i>Preferencies</i> / <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… 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 ; 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 : 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 ;
|
||||
(remember the tip about Automatic/Store !) </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> : 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_ 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 : 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…) </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 :<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_ 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 mesh object. This will compute also the edge sub
|
||||
shape.<br>
|
||||
Do not forget to activate the display mode Wireframe,
|
||||
Shading or Shrink; see in pop up menu '<i>Properties'</i>,
|
||||
'<i>Display mode'</i>… </p>
|
||||
</li>
|
||||
<li><p>Move the point of view 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_ 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> /
|
||||
<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>
|
Before Width: | Height: | Size: 1002 B |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 5.0 KiB |
@ -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@
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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
|