-This is the version 3.2.0a2 of SMESH
+This is the version 3.2.0b1 of SMESH
Compatible with :
- - KERNEL 3.2.0a2
- - SALOMEGUI 3.2.0a2
- - GEOM 3.2.0a2
- - MED 3.2.0a2
+ - KERNEL 3.2.0b1
+ - SALOMEGUI 3.2.0b1
+ - GEOM 3.2.0b1
+ - MED 3.2.0b1
+# Copyright (C) 2005 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.salome-platform.org/
+#
# -* Makefile *-
#
# Author : Patrick GOLDBRONN (CEA)
mesh_tree_algo_quad.png \
mesh_tree_algo_regular.png \
mesh_tree_algo_tetra.png \
+mesh_tree_algo_netgen_2d3d.png \
+mesh_tree_algo_netgen_2d.png \
mesh_tree_hypo_area.png \
mesh_tree_hypo_length.png \
mesh_tree_hypo.png \
mesh_tree_hypo_segment.png \
mesh_tree_hypo_volume.png \
+mesh_tree_hypo_netgen.png \
+mesh_tree_hypo_netgen_2d.png \
mesh_tree_mesh.png \
mesh_tree_importedmesh.png \
mesh_tree_mesh_warn.png \
SMESH.config \
StdMeshers.xml \
SMESHCatalog.xml \
+SalomeApp.xml \
mesh_pattern.png \
pattern_sample_2d.png \
pattern_sample_3D.png \
mesh_quad_tetrahedron.png \
mesh_quad_pyramid.png \
mesh_quad_pentahedron.png \
-mesh_quad_hexahedron.png
+mesh_quad_hexahedron.png \
+mesh_conv_to_quad.png
BIN_SCRIPT= \
VERSION
+# Copyright (C) 2005 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.salome-platform.org/
+#
# source path
top_srcdir=@top_srcdir@
top_builddir=..
#LDFLAGS+= $(CORBA_LIBS)
LIBS+=$(CORBA_LIBS)
+DOXYGEN = @DOXYGEN@
+DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@
+DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@
+
## Shared libraries
LT_STATIC_EXEC=@LT_STATIC_EXEC@
DYNAMIC_DIRS=@DYNAMIC_DIRS@
Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in
cd $(top_builddir) ; ./config.status
-$(top_builddir)/config.status: $(top_srcdir)/configure
+LOCAL_MAKE = make_commence make_conclude make_omniorb
+
+KERNEL_MAKE = make_module depend SALOMEconfig.h F77config.h sstream envScript
+
+$(top_builddir)/config.status: $(top_srcdir)/configure \
+ $(LOCAL_MAKE:%=$(top_srcdir)/adm_local/unix/%.in) \
+ $(KERNEL_MAKE:%=$(KERNEL_ROOT_DIR)/salome_adm/unix/%.in)
cd $(top_builddir) ; ./config.status --recheck
# VPATH contain $(srcdir), so make configure is good in top_srcdir and we must add target configure otherwise :-)
cd $(top_srcdir) && ./build_configure
-ACLOCAL_SRC = \
+ACLOCAL_KERNEL = \
ac_cxx_bool.m4 check_corba.m4 \
ac_cxx_depend_flag.m4 check_hdf5.m4 enable_pthreads.m4 \
ac_cxx_mutable.m4 check_mico.m4 libtool.m4 \
ACLOCAL_MED = check_Med.m4
ACLOCAL_GEOM = check_GEOM.m4
-$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \
+$(top_srcdir)/aclocal.m4: $(ACLOCAL_KERNEL:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \
$(ACLOCAL_GUI:%=@GUI_ROOT_DIR@/adm_local/unix/config_files/%) \
$(ACLOCAL_MED:%=@MED_ROOT_DIR@/adm_local/unix/config_files/%) \
$(ACLOCAL_GEOM:%=@GEOM_ROOT_DIR@/adm_local/unix/config_files/%)
- cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
+ cd $(top_srcdir) ; aclocal -I adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
-I @GUI_ROOT_DIR@/adm_local/unix/config_files \
-I @MED_ROOT_DIR@/adm_local/unix/config_files \
-I @GEOM_ROOT_DIR@/adm_local/unix/config_files
-
\ No newline at end of file
+
-THIS IS SALOME - SMESH VERSION: 3.2.0a2
+THIS IS SALOME - SMESH VERSION: 3.2.0b1
echo " ./salome_adm/unix/F77config.h \\" >> configure.in_tmp1
echo " ./salome_adm/unix/sstream \\" >> configure.in_tmp1
echo " ./salome_adm/unix/depend \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_omniorb \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_omniorb:${ABS_CONF_DIR}/adm_local/unix/make_omniorb.in \\" >> configure.in_tmp1
echo " ./salome_adm/unix/envScript \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_commence \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_conclude \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_commence:${ABS_CONF_DIR}/adm_local/unix/make_commence.in \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_conclude:${ABS_CONF_DIR}/adm_local/unix/make_conclude.in \\" >> configure.in_tmp1
echo " ./salome_adm/unix/make_module \\" >> configure.in_tmp1
\rm -f configure.in_tmp2 configure.in_tmp3
+# Copyright (C) 2005 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.salome-platform.org/
+#
# -* Makefile *-
#
+# Copyright (C) 2005 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.salome-platform.org/
+#
# -* Makefile *-
#
</script>\r
<style type="text/css">\r
<!--\r
-p.whs1 { font-weight:bold; }\r
+img_whs1 { border:none; width:25px; height:24px; border-style:none; }\r
p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:327px; height:402px; border-style:none; }\r
-p.whs4 { margin-left:0px; }\r
+img_whs3 { border:none; width:404px; height:413px; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+p.whs5 { font-weight:bold; }\r
-->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
- var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs4 {margin-left:1pt; }";\r
- strNSS +="</style>";\r
- document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
if (innerWidth != origWidth || innerHeight != origHeight)\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("MESH module\nViewing meshes\nAbout viewing meshes");\r
+ addTocInfo("MESH module\nViewing meshes\nViewing meshes");\r
addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>About viewing meshes</h1>\r
-\r
-<p>You can get information about your mesh, change its presentation parameters \r
- and access to other useful functionalities by right-clicking on it in \r
- the <span style="font-weight: bold;"><B>Object Browser.</B></span></p>\r
-\r
-<p class="whs1"><span style="font-weight: normal;">Then the \r
- following pop-up menu appears:</span> </p>\r
-\r
-<p> </p>\r
+<h1>Viewing meshes</h1>\r
\r
-<p class="whs2"><img src="image19.jpg" width="327px" height="402px" border="0" class="img_whs3"></p>\r
+<p>After definition of algorithms and hypotheses a new mesh is listed in \r
+ the Object Browser. Right-click on it and select <img src="image28.gif" width="25px" height="24px" border="0" class="img_whs1"> <span \r
+ style="font-weight: bold;"><B>Compute</B></span> - the mesh will be automatically \r
+ displayed in the <span style="font-weight: bold;"><B><a href="files/vtk_3d_viewer.htm">VTK \r
+ 3D Viewer</a>.</B></span> Alternatively click<span style="font-weight: bold;"><B> \r
+ Display only</B></span> to hide all other objects at the same time. </p>\r
\r
<p> </p>\r
\r
-<p>The Update button refreshes the presentation of your mesh in the Object \r
- Browser, applying all recent changes.</p>\r
-\r
-<p>By clicking on <span style="font-weight: bold;"><B>Standard Mesh Infos</B></span> \r
- and <span style="font-weight: bold;"><B>Advanced</B></span> <span style="font-weight: bold;"><B>Mesh \r
- Infos </B></span>you can learn the <span style="font-weight: bold;"><B><a href="files/viewing_mesh_info.htm">Mesh \r
- Infos</a>.</B></span></p>\r
-\r
-<p>Via <span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span> \r
- you can \r
- display the ID numbers of all meshing elements or nodes composing your \r
- mesh in the viewer.</p>\r
-\r
-<p>Via <a href="presentation.htm" style="font-weight: bold;">Display Mode</a>, <a href="display_entity.htm" style="font-weight: bold;">Display \r
- Entity</a>, Colors \r
- / Size, and <a href="transparency.htm" style="font-weight: bold;">Transparency</a> \r
- you can change the way of presentation of your mesh.</p>\r
+<p>After the mesh has appeared in the Viewer, you can select it with left \r
+ mouse click and get \r
+ information about it, change its presentation parameters and access to \r
+ other useful options by right-clicking on the selected mesh<span style="font-weight: bold;"><B>.</B></span></p>\r
\r
-<p>In the <a href="clipping.htm" style="font-weight: bold;">Clipping</a> menu you can create \r
- cross-sections of the selected objects.</p>\r
-\r
-<p>Quality <a href="files/about_quality_controls.htm" style="font-weight: bold;">Controls</a> are described in \r
- the next chapter. </p>\r
-\r
-<p>By clicking on <span style="font-weight: bold;"><B>Display Only</B></span> \r
- you hide all other objects.</p>\r
-\r
-<p>The <span style="font-weight: bold;"><B>Erase</B></span> button deletes the \r
- selected object from the session.</p>\r
+<p> </p>\r
\r
-<p>Using the <span style="font-weight: bold;"><B>Change background</B></span> \r
- button you can set the background color. By default it is black. </p>\r
+<p class="whs2"><img src="image15.jpg" width="404px" height="413px" border="0" class="img_whs3"></p>\r
\r
<p> </p>\r
\r
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="viewing_meshes.htm">Viewing Mesh Infos</a> \r
- operation. </p>\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase all</B></span> \r
+ - allows \r
+ to hide all objects in the viewer</p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Update</B></span> \r
+ - refreshes the presentation of your mesh in the Object Browser, applying \r
+ all recent changes.</p></li>\r
+ \r
+ <li class=kadov-p><p><a href="files/viewing_mesh_info.htm#advanced infos" style="font-weight: bold;">Advanced Mesh Infos</a> \r
+ - provides \r
+ more detailed information about the mesh. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs5"><a href="files/viewing_mesh_info.htm#standard_infos">Standard \r
+ Mesh Infos</a> - <span style="font-weight: normal;">provides basic information \r
+ about the mesh.</span></p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span> \r
+ - allows \r
+ to display the ID numbers of all meshing elements or nodes composing your \r
+ mesh in the viewer.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs5"><a href="presentation.htm" style="font-weight: bold;">Display \r
+ Mode</a> - <span style="font-weight: normal;">allows to select between \r
+ Wireframe, Shading and Nodes presentation.</span></p></li>\r
+ \r
+ <li class=kadov-p><p><a href="display_entity.htm" style="font-weight: bold;">Display Entity</a> \r
+ - allows to display Faces, Edges or both. </p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Colors / Size</B></span> \r
+ - allows to select color and size of meshes.</p></li>\r
+ \r
+ <li class=kadov-p><p><a href="transparency.htm" style="font-weight: bold;">Transparency</a> \r
+ - allows to change the transparency of mesh elements.</p></li>\r
+ \r
+ <li class=kadov-p><p><a href="clipping.htm" style="font-weight: bold;">Clipping</a> - allows \r
+ to create cross-sections of the selected objects.</p></li>\r
+ \r
+ <li class=kadov-p><p><a href="files/about_quality_controls.htm" style="font-weight: bold;">Quality Controls</a> \r
+ - graphically presents various information about meshes.</p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase</B></span> \r
+ - allows to hide the selected mesh from the viewer. </p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Display Only</B></span> \r
+ -allows to display only the selected mesh, hiding all other from the viewer.</p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span> \r
+ - exports an object from the viewer in bmp, png, jpg or jpeg image format. \r
+ </p></li>\r
+ \r
+ <li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span> \r
+ - allows to redefine the background color. By default it is black. </p></li>\r
+</ul>\r
\r
<p> </p>\r
\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Adding Quadratic Nodes and Elements</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; width:148px; height:168px; border-style:none; }\r
+img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("MESH module\nModifying meshes\nAdding quadratic elements");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("smesh.htm");\r
+\r
+ autoSync(1);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ if (window.gbIE4)\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Adding Quadratic Elements</h1>\r
+\r
+<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic \r
+ Elements</B></span>.</p>\r
+\r
+<p>Quadratic Edge in not a straight but a broken line and can be defined \r
+ by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic \r
+ Elements</B></span> differ from ordinary ones in that they consist of Quadratic \r
+ Edges.</p>\r
+\r
+<p class=TODO\r
+ style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
+ add a quadratic element to your mesh:</p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item \r
+ and select one of the following: </p>\r
+\r
+<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic \r
+ Element </B></span>specify the nodes which will form your triangle by selecting \r
+ them in the 3D viewer with pressed Shift button. Their numbers will appear \r
+ in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span> \r
+ (alternatively you can just input numbers in this field without selection).The \r
+ edges formed by the corner nodes will appear in the table. To define the \r
+ middle nodes for each edge double-click on the respective field and input \r
+ the number of the node. All edges and the object formed by them will be \r
+ displayed in the Object browser. When all edges are defined you will be \r
+ able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span> \r
+ button to add the element to the mesh. </p>\r
+\r
+<p class="whs1"> <img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span> \r
+ button for Quadratic Edges switches the first and the last nodes. <span \r
+ style="margin-left: 40px;">For all other elements it reverses the element. \r
+ </span></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
<!--\r
img_whs1 { border:none; width:416px; height:385px; border-style:none; }\r
img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs3 { border:none; width:158px; height:110px; border-style:none; }\r
-img_whs4 { border:none; width:120px; height:48px; border-style:none; }\r
-img_whs5 { border:none; width:234px; height:96px; border-style:none; }\r
-img_whs6 { border:none; width:258px; height:246px; border-style:none; }\r
-img_whs7 { border:none; width:133px; height:56px; border-style:none; }\r
-img_whs8 { border:none; width:425px; height:192px; border-style:none; }\r
-img_whs9 { border:none; width:89px; height:32px; border-style:none; }\r
-p.whs10 { margin-left:0px; }\r
+ul.whs3 { list-style:disc; }\r
+img_whs4 { border:none; width:258px; height:246px; border-style:none; float:left; }\r
+img_whs5 { border:none; width:133px; height:56px; border-style:none; }\r
+img_whs6 { border:none; width:425px; height:192px; border-style:none; }\r
+img_whs7 { border:none; width:89px; height:32px; border-style:none; }\r
+img_whs8 { border:none; width:569px; height:386px; float:none; border-style:none; }\r
+p.whs9 { margin-left:40px; }\r
+img_whs10 { border:none; width:24px; height:26px; border-style:none; }\r
+p.whs11 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs10 {margin-left:1pt; }";\r
+ strNSS += "p.whs11 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p> </p>\r
\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2">This mesh quality criterion resembles to the Aspect ratio \r
- criterion, however, it is applied to 3D mesh elements: tetrahedrons, \r
- pentahedrons, hexahedrons, etc. </p>\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> The Aspect Ratio 3D mesh quality criterion calculates \r
+ the same parameter as the <a href="files/aspect_ratio.htm">Aspect ratio</a> \r
+ criterion, but it is applied to 3D mesh elements: tetrahedrons, pentahedrons, \r
+ hexahedrons, etc. </p>\r
\r
-<p>There are simple formulas to evaluate directly the value of quality \r
- Qk for simplex in 3D. The formulas are :</p>\r
-\r
-<br>\r
+<p> </p>\r
\r
-<p>\95 For tetrahedron :</p>\r
+<ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p><img src="image20.gif" width="258px" height="246px" align="left" border="0" class="img_whs4">The <span style="font-weight: bold;"><B>Aspect \r
+ Ratio</B></span> of a <span style="font-weight: bold;"><B>tetrahedron</B></span> \r
+ 3D element is calculated by the formula:</p></li>\r
+</ul>\r
\r
-<p> <img src="image20.gif" width="258px" height="246px" border="0" class="img_whs6"></p>\r
+<p> </p>\r
\r
-<p> <img src="image19.gif" width="133px" height="56px" border="0" class="img_whs7"></p>\r
+<p> </p>\r
\r
-<p>where :</p>\r
+<p><img src="image19.gif" width="133px" height="56px" border="0" class="img_whs5">,</p>\r
\r
-<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs8"> </p>\r
+<p> </p>\r
\r
-<p>To calculate Sk , it is needed to sum the area of each of the 3 faces \r
- with the formula given with the triangle.</p>\r
+<p>where <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span \r
+ style="font-weight: bold;\r
+ font-style: italic;\r
+ vertical-align: Sub;"><I><B>K</B></I></span> is the sum of surfaces of the faces \r
+ of К and <span style="font-weight: bold; font-style: italic;"><I><B>V</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>K</B></I></span> is the volume of К :</p>\r
\r
<p> </p>\r
\r
-<p>For the other types of element like pentahedron and hexahedron \r
- the formula is the following :</p>\r
+<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs6">T</p>\r
\r
-<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs9"> </p>\r
+<p> </p>\r
\r
-<p>Where Qi are the quality of all the possible simplex (of same dimension \r
- as the element) that compose the element.</p>\r
+<ul type="disc" class="whs3">\r
+ \r
+ <li class=kadov-p><p>Other element types like quadrangle, pentahedron \r
+ and hexahedron use the following formula:</p></li>\r
+</ul>\r
+\r
+<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs7"> , where <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>i</B></I></span> represents the value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>k</B></I></span> for all possible simplexes (of the \r
+ same dimension as the element) that compose the element.</p>\r
+\r
+<p>For example, a hexahedron is split in 6 tetrahedrons, the <span style="font-weight: bold;"><B>Aspect \r
+ ratio 3D</B></span> is calculated for each of them, then the greatest <span \r
+ style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>k</B></I></span> is considered to be the <span \r
+ style="font-weight: bold;"><B>Aspect ratio 3D</B></span> \r
+ criterion for the whole hexahedron.</p>\r
+\r
+<p><img src="pics/image139.gif" x-maintain-ratio="TRUE" width="569px" height="386px" border="0" class="img_whs8"></p>\r
\r
-<p>For example, hexahedron is analysed via 6 tetrahedrons this way:</p>\r
+<p> </p>\r
\r
-<p><img src="image139.gif" border="0" class="img_whs10"> </p>\r
+<p class=TODO>To apply the Aspect Ratio 3D quality criterion to your mesh:</p>\r
\r
-<p> </p>\r
+<p class=TODO> </p>\r
\r
-<p>For 3D elements with quadrangular faces, aspect ratio of such faces\r
-is also analysed and the maximal one over 3D and 2D qualities is taken.</p>\r
+<p class="whs9">1. Display your mesh in the viewer.</p>\r
\r
-<p> </p>\r
+<p class="whs9"> </p>\r
+\r
+<p class="whs9">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ > Aspect Ratio 3D </B></span>or click <img src="image144.gif" width="24px" height="26px" border="0" class="img_whs10"> button of the toolbar. \r
+ Your mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
\r
<p> </p>\r
\r
-<p class="whs10"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of an <a href="quality_controls.htm#bookmark11">Aspect \r
- Ratio quality control</a> operation. </p>\r
+<p class="whs11"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of an <span style="font-weight: bold;"><B><a href="quality_controls.htm#bookmark11">Aspect \r
+ Ratio 3D</B></span> quality control</a> operation. </p>\r
\r
<p> </p>\r
\r
<style type="text/css">\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; border-style:none; width:331px; height:297px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:223px; height:213px; border-style:none; }\r
+p.whs4 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs3 {margin-left:1pt; }";\r
+ strNSS += "p.whs4 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p> </p>\r
\r
-<p><img src="pics/borders_at_multi_connections1.png" x-maintain-ratio="TRUE" width="331px" height="297px" border="0" class="img_whs2"></p>\r
+<p class="whs2"><img src="image151.gif" width="223px" height="213px" border="0" class="img_whs3"></p>\r
\r
<p> </p>\r
\r
-<p>In this picture the borders at multi-connection are displayed in white.</p>\r
+<p>In this picture the borders at multi-connection are displayed in blue.</p>\r
\r
<p> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark2">Borders \r
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Borders \r
at Multi-Connection quality control</a> operation. </p>\r
\r
<p> </p>\r
<p> </p>\r
\r
<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark6">Borders \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark5">Borders \r
at Multi-Connection quality control</a> operation. </p>\r
\r
<p> </p>\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; border-style:none; width:332px; height:327px; float:none; }\r
-p.whs2 { font-weight:bold; }\r
-img_whs3 { border:none; width:326px; height:199px; border-style:none; }\r
-img_whs4 { border:none; width:329px; height:210px; border-style:none; }\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; width:332px; height:327px; float:none; border-style:none; }\r
+p.whs3 { font-weight:bold; margin-left:40px; }\r
+img_whs4 { border:none; width:326px; height:199px; border-style:none; }\r
+p.whs5 { font-weight:bold; }\r
+img_whs6 { border:none; width:329px; height:210px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
\r
<p> </p>\r
\r
-<p><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs1"></p>\r
+<p class="whs1"><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs2"></p>\r
\r
<p> </p>\r
\r
\r
<p> </p>\r
\r
-<p class="whs2"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs4"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2"><span style="font-weight: normal;">If the</span> \r
+<p class="whs5"><span style="font-weight: normal;">If the</span> \r
Auto Apply<span style="font-weight: normal;"> button is on, you can preview \r
the cross-section in the</span> Object window</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs4"></p>\r
+<p class="whs3"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs6"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2"><span style="font-weight: normal;">To get \r
+<p class="whs5"><span style="font-weight: normal;">To get \r
a new object from </span>Clipping, <span style="font-weight: normal;">click</span> \r
Ok. </p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
\r
<p class="whs4"># compute the mesh</p>\r
\r
-<p class="whs3">hexa.Compute() )</p>\r
+<p class="whs3">hexa.Compute() </p>\r
\r
<p class="whs3"> </p>\r
\r
p.whs2 { font-family:'Lucida Console' , monospace; }\r
p.whs3 { font-family:'Times New Roman' , serif; }\r
p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
-p.whs5 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs6 { margin-top:0pt; margin-bottom:0pt; font-family:Tahoma, sans-serif; }\r
-p.whs7 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
+p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
+p.whs6 { margin-top:0pt; margin-bottom:0pt; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p class="whs3"># create vertices</p>\r
\r
-<p class="whs2">px =geompy.MakeVertex(100., 0. ,0. )</p>\r
+<p class="whs2">px = \r
+ geompy.MakeVertex(100., 0. , \r
+ 0. )</p>\r
\r
-<p class="whs2">py =geompy.MakeVertex(0. ,100., 0. )</p>\r
+<p class="whs2">py = \r
+ geompy.MakeVertex(0. , \r
+ 100., 0. )</p>\r
\r
-<p class="whs2">pz =geompy.MakeVertex(0. ,0. , 100.)</p>\r
+<p class="whs2">pz = \r
+ geompy.MakeVertex(0. , \r
+ 0. , 100.)</p>\r
\r
<p class="whs2"> </p>\r
\r
<p class="whs3"># create a vector from \r
two points</p>\r
\r
-<p class="whs2">vxy = geompy.MakeVector(px,py)</p>\r
+<p class="whs2">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
\r
<p class="whs2"> </p>\r
\r
<p class="whs3"># create an arc from \r
three points</p>\r
\r
-<p class="whs2">arc = geompy.MakeArc(py, pz, px)</p>\r
+<p class="whs2">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
\r
<p class="whs2"> </p>\r
\r
<p class="whs3"># create a wire</p>\r
\r
-<p class="whs2">wire = geompy.MakeWire([vxy,arc])</p>\r
+<p class="whs2">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
\r
<p class="whs2">isPlanarFace = 1</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># create a face from the wire</p>\r
+<p class="whs3"># create a face from \r
+ the wire</p>\r
\r
-<p class="whs2">face1 = geompy.MakeFace(wire,isPlanarFace)</p>\r
+<p class="whs2">face1 = geompy.MakeFace(wire, \r
+ isPlanarFace)</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># get edges from the face</p>\r
+<p class="whs3"><span style="font-family: 'Times New Roman', serif;"># \r
+ get edges from the face</span></p>\r
\r
-<p class="whs2">vxy, arc = geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"])</p>\r
+<p class="whs2">vxy,arc = geompy.SubShapeAll(face1,geompy.ShapeType["EDGE"])</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs3"># add objects in the study</p>\r
+<p class="whs3"># add objects in the \r
+ study</p>\r
\r
<p class="whs2">id_face1 = geompy.addToStudy(face1,"Face1")</p>\r
\r
-<p class="whs2">id_arc = geompy.addToStudyInFather(face1,arc,"Arc Edge")</p>\r
+<p class="whs2">id_arc = geompy.addToStudyInFather(face1,arc,"Arc \r
+ Edge")</p>\r
\r
<p class="whs2"> </p>\r
\r
\r
<p class="whs3"># create hexahedral mesh</p>\r
\r
-<p class="whs2">hexa = smesh.Mesh(face1,"Face compound : hexahedrical mesh")</p>\r
+<p class="whs2">hexa = smesh.Mesh(face1, \r
+ "Face compound : hexahedrical mesh")</p>\r
\r
<p class="whs2">algo = hexa.Triangle()</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># define "MaxElementArea"hypothesis</p>\r
+<p class="whs3"># define "MaxElementArea" \r
+ hypothesis</p>\r
\r
<p class="whs2">algo.MaxElementArea(30)</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># create a local hypothesis on the wire</p>\r
+<p class="whs3"># create a local hypothesis \r
+ on the wire</p>\r
\r
<p class="whs2">algo = hexa.Segment(wire)</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># define "NumberOfSegments"hypothesis to cut\r
-a straight edge in a fixed number of segments</p>\r
+<p class="whs3"># define "NumberOfSegments" \r
+ hypothesis to cut a straight edge in a fixed number of segments</p>\r
\r
<p class="whs2">algo.NumberOfSegments(6)</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># define a local "Deflection1D"hypothesis on the arc</p>\r
+<p class="whs3"># define a local "Deflection1D" \r
+ hypothesis on the arc</p>\r
\r
<p class="whs2">algo = hexa.Segment(arc)</p>\r
+\r
<p class="whs2">algo.Deflection1D(1)</p>\r
\r
<p class="whs2"> </p>\r
\r
+<p class="whs2"> </p>\r
+\r
<p class="whs3"># compute the mesh</p>\r
\r
<p class="whs2">hexa.Compute() </p>\r
\r
<h4><a name=bookmark4>Maximum Element Area</a></h4>\r
\r
-<p class="whs4">import smesh</p>\r
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import \r
+ smesh</span></p>\r
\r
<p class="whs4">import geompy</p>\r
\r
<p class="whs4">import salome</p>\r
\r
-<p class="whs4">gg = salome.ImportComponentGUI("GEOM")</p>\r
-\r
-<p class="whs5"> </p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs5"># create vertices</p>\r
+<p class="whs5"># create a face</p>\r
\r
<p class="whs4">px = \r
geompy.MakeVertex(100., 0. , \r
geompy.MakeVertex(0. , \r
0. , 100.)</p>\r
\r
-<p class="whs5"> </p>\r
-\r
-<p class="whs5"># create a vector from \r
- two points</p>\r
+<p class="whs4"> </p>\r
\r
<p class="whs4">vxy = geompy.MakeVector(px, \r
py)</p>\r
\r
-<p class="whs5"> </p>\r
-\r
-<p class="whs5"># create an arc from three \r
- points</p>\r
-\r
<p class="whs4">arc = geompy.MakeArc(py, \r
pz, px)</p>\r
\r
-<p class="whs5"> </p>\r
-\r
-<p class="whs5"># create a wire</p>\r
-\r
<p class="whs4">wire = geompy.MakeWire([vxy, \r
arc])</p>\r
\r
-<p class="whs4">isPlanarFace = 1</p>\r
-\r
-<p class="whs5"> </p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs5"># create a face from the \r
- wire</p>\r
+<p class="whs4">isPlanarFace = 1</p>\r
\r
-<p class="whs4">face1 = geompy.MakeFace(wire, \r
+<p class="whs4">face = geompy.MakeFace(wire, \r
isPlanarFace)</p>\r
\r
-<p class="whs5"> </p>\r
-\r
-<p class="whs5"># add objects in the study</p>\r
-\r
-<p class="whs4">id_face1 = geompy.addToStudy(face1,"Face1")</p>\r
-\r
-<p class="whs5"> </p>\r
-\r
-<p class="whs5"># display faces</p>\r
-\r
-<p class="whs4">gg.createAndDisplayGO(id_face1)</p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs4">gg.setDisplayMode(id_face1,1)</p>\r
+<p class="whs5"># add the face in the \r
+ study</p>\r
\r
-<p class="whs4">gg.setTransparency(id_face1,0.2)</p>\r
+<p class="whs4">id_face = geompy.addToStudy(face, \r
+ "Face to be meshed")</p>\r
\r
-<p class="whs5"> </p>\r
-\r
-<p class="whs5"># create a hexahedral mesh</p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs4">hexa = smesh.Mesh(face1, \r
- "Face compound : hexahedrical mesh")</p>\r
+<p class="whs5"># create a mesh</p>\r
\r
-<p class="whs4">algo = hexa.Triangle()</p>\r
+<p class="whs4">tria_mesh = smesh.Mesh(face, \r
+ "Face : triangulation")</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs5"># define "MaxElementArea" \r
- hypothesis to be applied to each triangle</p>\r
+<p class="whs5"># define 1D meshing:</p>\r
\r
-<p class="whs4">algo.MaxElementArea(7)</p>\r
+<p class="whs4">algo = tria_mesh.Segment()</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs4">algo.NumberOfSegments(20)</p>\r
\r
-<p class="whs5"># create a quadrangle 2D \r
- algorithm for faces</p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs4">hexa.Quadrangle()</p>\r
+<p class="whs5"># define 2D meshing:</p>\r
\r
<p class="whs5"> </p>\r
\r
-<p class="whs5"># create a local hypothesis</p>\r
+<p class="whs5"># assign triangulation \r
+ algorithm</p>\r
\r
-<p class="whs6">algo = hexa.Segment(wire)</p>\r
+<p class="whs4">algo = tria_mesh.Triangle()</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs5"># define "NumberOfSegments" \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
+<p class="whs5"># apply "Max Element \r
+ Area" hypothesis to each triangle</p>\r
\r
-<p class="whs4">algo.NumberOfSegments(10)</p>\r
+<p class="whs4">algo.MaxElementArea(100)</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs4"> </p>\r
\r
<p class="whs5"># compute the mesh</p>\r
\r
-<p class="whs4">hexa.Compute() </p>\r
+<p class="whs4">tria_mesh.Compute() \r
+ </p>\r
\r
<p class="whs4"> </p>\r
\r
\r
<p class="whs4">import StdMeshers</p>\r
\r
+<p class="whs4">import NETGENPlugin</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
<p class="whs4">smesh = salome.lcc.FindOrLoadComponent("FactoryServer", \r
"SMESH")</p>\r
\r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># create a box</p>\r
+<p class="whs5"># create a box</p>\r
\r
<p class="whs4">box = geompy.MakeCylinderRH(30, \r
- 50) #MakeBox(0., 0., 0., 100., 200., 300.)</p>\r
+ 50) #MakeBox(0., 0., 0., </p>\r
+\r
+<p class="whs4">100., 200., 300.)</p>\r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># add the box to the \r
+<p class="whs5"># add the box in the \r
study</p>\r
\r
<p class="whs4">idbox = geompy.addToStudy(box, \r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># create vertices</p>\r
-\r
-<p class="whs4">px = \r
- geompy.MakeVertex(100., 0. , \r
- 0. )</p>\r
-\r
-<p class="whs4">py = \r
- geompy.MakeVertex(0. , \r
- 100., 0. )</p>\r
-\r
-<p class="whs4">pz = \r
- geompy.MakeVertex(0. , \r
- 0. , 100.)</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># create a vector from \r
- two points</p>\r
-\r
-<p class="whs4">vxy = geompy.MakeVector(px, \r
- py)</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># create an arc from \r
- three points</p>\r
-\r
-<p class="whs4">arc = geompy.MakeArc(py, \r
- pz, px)</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># create a wire</p>\r
-\r
-<p class="whs4">wire = geompy.MakeWire([vxy, \r
- arc])</p>\r
-\r
-<p class="whs4">isPlanarFace = 1</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># create a face from \r
- the wire</p>\r
-\r
-<p class="whs4">#face1</p>\r
-\r
-<p class="whs4">box = geompy.MakeFace(wire, \r
- isPlanarFace)</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># add objects in the \r
- study</p>\r
-\r
-<p class="whs4">id_face1 = geompy.addToStudy(box,"Face1")</p>\r
-\r
-<p class="whs4">#geompy.addToStudy(face1,"Face1")</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># display faces</p>\r
-\r
-<p class="whs4">gg.createAndDisplayGO(id_face1)</p>\r
+<p class="whs5"># create a set of hypotheses</p>\r
\r
-<p class="whs4">gg.setDisplayMode(id_face1,1)</p>\r
-\r
-<p class="whs4">gg.setTransparency(id_face1,0.2)</p>\r
-\r
-<p class="whs4"> </p>\r
-\r
-<p class="whs7"># create a hypothesis</p>\r
-\r
-<p class="whs4">print "-------------------------- \r
- create Hypothesis"</p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs4">print "-------------------------- \r
- NumberOfSegments"</p>\r
+<p class="whs5"># Number of Segments</p>\r
\r
<p class="whs4">numberOfSegments \r
= 7</p>\r
\r
<p class="whs4">print hypNbSeg.GetName()</p>\r
\r
-<p class="whs4">print hypNbSeg.GetId()</p>\r
-\r
<p class="whs4">print hypNbSeg.GetNumberOfSegments()</p>\r
\r
<p class="whs4">smeshgui.SetName(salome.ObjectToID(hypNbSeg), \r
- "NumberOfSegments_10")</p>\r
+ "NumberOfSegments_7")</p>\r
\r
-<p class="whs4">print "-------------------------- \r
- MaxElementArea"</p>\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs5"># Max Element Area</p>\r
\r
<p class="whs4">maxElementArea = \r
800</p>\r
\r
<p class="whs4">print hypArea.GetName()</p>\r
\r
-<p class="whs4">print hypArea.GetId()</p>\r
-\r
<p class="whs4">print hypArea.GetMaxElementArea()</p>\r
\r
<p class="whs4">smeshgui.SetName(salome.ObjectToID(hypArea), \r
"MaxElementArea_800")</p>\r
\r
-<p class="whs4">print "-------------------------- \r
- MaxElementVolume"</p>\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs5"># Max Element Volume</p>\r
\r
<p class="whs4">maxElementVolume \r
= 900</p>\r
\r
<p class="whs4">print hypVolume.GetName()</p>\r
\r
-<p class="whs4">print hypVolume.GetId()</p>\r
-\r
<p class="whs4">print hypVolume.GetMaxElementVolume()</p>\r
\r
<p class="whs4">smeshgui.SetName(salome.ObjectToID(hypVolume), \r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># create algorithms</p>\r
+<p class="whs5"># create a set of algorithms</p>\r
\r
-<p class="whs4">print "-------------------------- \r
- create Algorithms"</p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs4">print "-------------------------- \r
- Regular_1D"</p>\r
+<p class="whs5"># Regular_1D</p>\r
\r
<p class="whs4">regular1D = smesh.CreateHypothesis("Regular_1D", \r
"libStdMeshersEngine.so")</p>\r
<p class="whs4">smeshgui.SetName(salome.ObjectToID(regular1D), \r
"Wire Discretisation")</p>\r
\r
-<p class="whs4">print "-------------------------- \r
- MEFISTO_2D"</p>\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs5"># MEFISTO_2D</p>\r
\r
<p class="whs4">mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", \r
"libStdMeshersEngine.so")</p>\r
<p class="whs4">smeshgui.SetName(salome.ObjectToID(mefisto2D), \r
"MEFISTO_2D")</p>\r
\r
-<p class="whs4">#print "-------------------------- \r
- Hexa_3D (Hexahedron meshing algorithm)"</p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs4">hexa3D = smesh.CreateHypothesis("Hexa_3D", \r
- "libStdMeshersEngine.so")</p>\r
+<p class="whs5"># NETGEN_3D (Tetrahedron \r
+ meshing algorithm)</p>\r
\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(hexa3D), \r
- "HEXA_3D")</p>\r
+<p class="whs4">tetra3D = smesh.CreateHypothesis("NETGEN_3D", \r
+ "libNETGENEngine.so")</p>\r
+\r
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(tetra3D), \r
+ "NETGEN_3D")</p>\r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># initialize a mesh \r
+<p class="whs5"># initialize a mesh \r
with the box</p>\r
\r
<p class="whs4">mesh = smesh.CreateMesh(box)</p>\r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># add a hypothesis \r
- to the box</p>\r
-\r
-<p class="whs4">print "-------------------------- \r
- add hypothesis to the box"</p>\r
+<p class="whs5"># add hypotheses and \r
+ algorithms to the box</p>\r
\r
<p class="whs4">mesh.AddHypothesis(box,hypNbSeg)</p>\r
\r
\r
<p class="whs4">mesh.AddHypothesis(box,mefisto2D)</p>\r
\r
-<p class="whs4">mesh.AddHypothesis(box,hexa3D)</p>\r
+<p class="whs4">mesh.AddHypothesis(box,tetra3D)</p>\r
\r
<p class="whs4"> </p>\r
\r
-<p class="whs7"># compute the mesh</p>\r
-\r
-<p class="whs4">print "-------------------------- \r
- compute the mesh of the box"</p>\r
+<p class="whs5"># compute the mesh</p>\r
\r
<p class="whs4">ret = smesh.Compute(mesh,box)</p>\r
\r
-<p class="whs4">print ret</p>\r
-\r
<p class="whs4">if ret == 0:</p>\r
\r
<p class="whs4"> print \r
"probleme when computing the mesh"</p>\r
\r
-<p class="whs4">salome.sg.updateObjBrowser(1)</p>\r
+<p class="whs4">else:</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs4"> print \r
+ "Computation succeded"</p>\r
\r
-<h3>Defining Additional Hypotheses</h3>\r
+<p class="whs4">salome.sg.updateObjBrowser(1) \r
+ </p>\r
+\r
+<p class="whs4"> </p>\r
\r
<h4><a name=bookmark6>Length from Edges</a></h4>\r
\r
-<p class="whs2">import smesh</p>\r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import \r
+ salome</span></p>\r
\r
<p class="whs2">import geompy</p>\r
\r
-<p class="whs2">import salome</p>\r
-\r
-<p class="whs2">gg = salome.ImportComponentGUI("GEOM")</p>\r
+<p class="whs2">import smesh</p>\r
\r
-<p> </p>\r
+<p class="whs2"> </p>\r
\r
-<p># create sketchers</p>\r
+<p class="whs3"># create sketchers</p>\r
\r
<p class="whs2">sketcher1 = geompy.MakeSketcher("Sketcher:F \r
0 0:TT 70 0:TT 70 70:TT 0 70:WW")</p>\r
\r
<p class="whs2">isPlanarFace = 1</p>\r
\r
-<p> </p>\r
+<p class="whs2"> </p>\r
\r
-<p># create faces from two wires</p>\r
+<p class="whs3"># create a face from \r
+ two wires</p>\r
\r
<p class="whs2">face1 = geompy.MakeFaces([sketcher1, \r
sketcher2],isPlanarFace)</p>\r
\r
-<p> </p>\r
+<p class="whs2"> </p>\r
\r
-<p># add objects in the study</p>\r
+<p class="whs3"># add object in the study</p>\r
\r
<p class="whs2">id_face1 = geompy.addToStudy(face1,"Face1")</p>\r
\r
-<p> </p>\r
-\r
-<p># display faces</p>\r
-\r
-<p class="whs2">gg.createAndDisplayGO(id_face1)</p>\r
-\r
-<p class="whs2">gg.setDisplayMode(id_face1,1)</p>\r
-\r
-<p class="whs2">gg.setTransparency(id_face1,0.2)</p>\r
-\r
-<p> </p>\r
+<p class="whs2"> </p>\r
\r
-<p># create a mesh</p>\r
+<p class="whs3"># create a mesh</p>\r
\r
-<p class="whs2">hexa = smesh.Mesh(face1, \r
+<p class="whs2">tria = smesh.Mesh(face1, \r
"Face : triangle 2D mesh")</p>\r
\r
-<p class="whs2">algo = hexa.Triangle()</p>\r
-\r
-<p> </p>\r
-\r
-<p># define "MaxElementArea" hypothesis to be applied to each \r
- triangle</p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs2">algo.MaxElementArea(30)</p>\r
+<p class="whs3"># Define 1D meshing</p>\r
\r
-<p> </p>\r
+<p class="whs2">algo = tria.Segment()</p>\r
\r
-<p># define "LengthFromEdges" hypothesis to build triangles based \r
- on the length of the edges taken from the wire</p>\r
+<p class="whs2">algo.NumberOfSegments(2)</p>\r
\r
-<p class="whs2">algo.LengthFromEdges()</p>\r
+<p class="whs2"> </p>\r
\r
-<p> </p>\r
+<p class="whs3"># create and assign the \r
+ algorithm for 2D meshing with triangles</p>\r
\r
-<p># create local hypothesis</p>\r
+<p class="whs2">algo = tria.Triangle()</p>\r
\r
-<p class="whs2">algo = hexa.Segment()</p>\r
+<p class="whs2"> </p>\r
\r
-<p> </p>\r
+<p class="whs3"># create and assign "LengthFromEdges" \r
+ hypothesis to build triangles </p>\r
\r
-<p># define "NumberOfSegments" hypothesis to cut an edge in a \r
- fixed number of segments</p>\r
+<p class="whs3"># based on the length \r
+ of the edges taken from the wire</p>\r
\r
-<p class="whs2">algo.NumberOfSegments(2)</p>\r
+<p class="whs2">algo.LengthFromEdges()</p>\r
\r
-<p> </p>\r
+<p class="whs2"> </p>\r
\r
-<p># compute the mesh</p>\r
+<p class="whs3"># compute the mesh</p>\r
\r
-<p class="whs2">hexa.Compute() </p>\r
+<p class="whs2">tria.Compute() </p>\r
\r
<p class="whs2"> </p>\r
\r
+<h3>Defining Additional Hypotheses</h3>\r
+\r
<h4><a name=bookmark7>Propagation</a></h4>\r
\r
-<p class="whs2">from geompy import \r
- *</p>\r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from \r
+ geompy import *</span></p>\r
\r
<p class="whs2">import smesh</p>\r
\r
\r
<p class="whs3"># create a solid</p>\r
\r
-<p class="whs2">Block = MakeHexa(FaceX11, \r
+<p class="whs2">box = MakeHexa(FaceX11, \r
FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs3"># create a compound</p>\r
-\r
-<p class="whs2">box = MakeCompound([Block])</p>\r
-\r
-<p class="whs2"> </p>\r
-\r
<p class="whs3"># add in the study</p>\r
\r
<p class="whs2">box_id = addToStudy(box, \r
- "Box compound")</p>\r
+ "Box")</p>\r
\r
<p class="whs2"> </p>\r
\r
mesh on the box</p>\r
\r
<p class="whs2">hexa = smesh.Mesh(box, \r
- "Box compound : hexahedrical mesh")</p>\r
+ "Box : hexahedrical mesh")</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs3"># create an 1D algorithm \r
+ for edges</p>\r
\r
<p class="whs2">algo = hexa.Segment()</p>\r
\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"><span style="font-family: 'Times New Roman', serif;"># \r
- define "Arithmetic1D" hypothesis to cut an edge in several segments \r
- with arithmetic length</span> </p>\r
-\r
-<p class="whs2">increasing</p>\r
+<p class="whs3"># define "Arithmetic1D" \r
+ hypothesis to cut an edge<span style="font-family: 'Times New Roman', serif;"> \r
+ in several segments with increasing length</span></p>\r
\r
<p class="whs2">algo.Arithmetic1D(1, \r
4)</p>\r
<p class="whs2"> </p>\r
\r
<p class="whs3"># define "Propagation" \r
- hypothesis that propagatea all other hypothesis on all edges on the opposite \r
- side in case of quadrangular faces</p>\r
+ hypothesis that propagates all other 1D hypotheses</p>\r
+\r
+<p class="whs3"># from all edges on the \r
+ opposite side of a face in case of quadrangular faces</p>\r
\r
<p class="whs2">algo.Propagation()</p>\r
\r
\r
<p class="whs3"># compute the mesh</p>\r
\r
-<p class="whs2">hexa.Compute() </p>\r
-\r
-<p class="whs2"> </p>\r
+<p class="whs2">hexa.Compute() </p>\r
\r
<h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>\r
\r
\r
<p class="whs4">smeshgui.Init(salome.myStudyId);</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
-<p class="whs5"># create algorithms</p>\r
+<p class="whs6"># create algorithms</p>\r
\r
<p class="whs4">print "-------------------------- \r
create Algorithms"</p>\r
\r
<p class="whs4">salome.sg.updateObjBrowser(1)</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; height:282px; width:259px; }\r
-img_whs2 { border:none; height:287px; width:257px; }\r
+p.whs1 { margin-left:40px; font-weight:bold; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; height:285px; width:260px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
</script>\r
<h1>Display Entity</h1>\r
\r
-<p>In this submenu you can choose to display only faces,</p>\r
+<p>In this submenu you can choose to display only volumes, faces or edges \r
+ or combine them. </p>\r
\r
<p> </p>\r
\r
-<p><img src="image56.jpg" height="282px" width="259px" border="0" class="img_whs1"></p>\r
+<p class="whs1">Only Faces Only \r
+ Edges</p>\r
\r
-<p> </p>\r
-\r
-<p>only edges, </p>\r
-\r
-<p> </p>\r
-\r
-<p><img src="image58.gif" height="287px" width="257px" border="0" class="img_whs2"></p>\r
+<p class="whs2"><img src="image56.jpg" height="285px" width="260px" border="0" class="img_whs3"> <img src="image58.gif" height="285px" width="260px" border="0" class="img_whs3"></p>\r
\r
<p> </p>\r
\r
-<p>or both.</p>\r
-\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
img_whs7 { border:none; width:350px; height:323px; border-style:none; }\r
p.whs8 { margin-left:40px; }\r
img_whs9 { border:none; width:27px; height:24px; border-style:none; }\r
-img_whs10 { border:none; width:434px; height:541px; border-style:none; float:none; }\r
+img_whs10 { border:none; width:434px; height:541px; float:none; border-style:none; }\r
ul.whs11 { list-style:disc; }\r
p.whs12 { margin-left:84px; }\r
img_whs13 { border:none; width:26px; height:25px; border-style:none; }\r
\r
<p class="whs8"> </p>\r
\r
-<p class=TODO><img src="pics/a-extusionalongapath2.png" x-maintain-ratio="TRUE" width="434px" height="541px" border="0" class="img_whs10"></p>\r
+<p class=TODO\r
+ style="margin-left: 80px;"><img src="pics/a-extusionalongapath2.png" x-maintain-ratio="TRUE" width="434px" height="541px" border="0" class="img_whs10"></p>\r
\r
<p class="whs8"> </p>\r
\r
<ul type="disc" class="whs2">\r
\r
<li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
- class=kadov-p><p class="whs3">Arithmetic \r
- 1D</p></li>\r
+ class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>\r
\r
<li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
- class=kadov-p><p class="whs3">Average \r
- Length</p></li>\r
+ class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#Average_length">Average Length</a></p></li>\r
\r
<li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
- class=kadov-p><p class="whs3">Deflection \r
- 1D </p></li>\r
+ class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>\r
\r
<li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
- class=kadov-p><p class="whs3">Number \r
- of segments</p></li>\r
+ class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>\r
\r
<li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
- class=kadov-p><p class="whs3">Start \r
- and end length</p></li>\r
+ class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>\r
</ul>\r
\r
<li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
type=circle\r
- class=kadov-p><p class="whs3">2D \r
- Hypothesis (for meshing of <span style="font-weight: bold;"><B>faces)</B></span>: \r
- </p></li>\r
+ class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm">2D Hypotheses</a> (for meshing \r
+ of <span style="font-weight: bold;"><B>faces)</B></span>: </p></li>\r
</ul>\r
\r
-<ul type="disc" class="whs2">\r
+<ol type="disc" class="whs4">\r
\r
<ul type="disc" class="whs2">\r
\r
<li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
- class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm">Max Element Area</a></p></li>\r
+ class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#max_element_area">Max Element Area</a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#length_from_edges">Length from \r
+ Edges</a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#quadrangle preference">Quadrangle \r
+ Preference</a></p></li>\r
</ul>\r
-</ul>\r
+</ol>\r
\r
<ul type="disc" class="whs2">\r
\r
<p>There also exist some <a href="non_conform_mesh_allowed_hypothesis.htm">Additional \r
Hypotheses</a></p>\r
\r
-<ol type="disc" class="whs4">\r
+<ul type="disc" class="whs2">\r
\r
<ul type="disc" class="whs2">\r
\r
<li class=kadov-p><p>Propagation of 1D Hypothesis on opposite edges</p></li>\r
\r
- <li class=kadov-p><p>Length from edges</p></li>\r
- \r
<li class=kadov-p><p>Non conform mesh allowed</p></li>\r
+ \r
+ <li class=kadov-p><p>Quadratic mesh</p></li>\r
</ul>\r
-</ol>\r
+</ul>\r
\r
<p> </p>\r
\r
\r
<li class=kadov-p><p class="whs1"><a href="../aspect_ratio_3d.htm">Aspect \r
ratio 3D</a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><a href="../volume.htm">Volume</a></p></li>\r
</ul>\r
\r
<p class="whs1"> </p>\r
ul.whs1 { list-style:disc; }\r
p.whs2 { font-weight:bold; }\r
p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:157px; height:132px; border-style:none; }\r
+img_whs4 { border:none; width:155px; height:189px; border-style:none; }\r
img_whs5 { border:none; width:332px; height:222px; float:none; border-style:none; }\r
-img_whs6 { border:none; border-style:none; width:257px; height:247px; float:none; }\r
+img_whs6 { border:none; width:257px; height:247px; float:none; border-style:none; }\r
img_whs7 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
-img_whs8 { border:none; width:260px; height:255px; float:none; }\r
+img_whs8 { border:none; width:260px; height:255px; float:none; border-style:none; }\r
img_whs9 { border:none; width:332px; height:257px; float:none; border-style:none; }\r
-img_whs10 { border:none; width:275px; height:254px; float:none; }\r
+img_whs10 { border:none; width:275px; height:254px; float:none; border-style:none; }\r
h4.whs11 { margin-left:40px; }\r
-img_whs12 { border:none; float:none; width:280px; height:258px; }\r
-img_whs13 { border:none; width:251px; height:258px; float:none; }\r
+img_whs12 { border:none; float:none; width:280px; height:258px; border-style:none; }\r
+img_whs13 { border:none; width:251px; height:258px; float:none; border-style:none; }\r
img_whs14 { border:none; width:350px; height:184px; border-style:none; }\r
img_whs15 { border:none; width:332px; height:430px; float:none; border-style:none; }\r
-img_whs16 { border:none; width:369px; height:360px; float:none; }\r
+img_whs16 { border:none; width:369px; height:360px; float:none; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
</script>\r
<h1>Adding nodes and elements</h1>\r
\r
-<p>In SMESH you can add to your mesh different elements such as:</p>\r
+<p>In MESH you can add to your mesh different elements such as:</p>\r
\r
<p> </p>\r
\r
\r
<li class=kadov-p><p class="whs2"><a href="#Adding_quadrangles">Quadrangles</a></p></li>\r
\r
+ <li class=kadov-p><p class="whs2"><a href="#Adding_polygons">Polygons</a></p></li>\r
+ \r
<li class=kadov-p><p class="whs2"><a href="#Adding_tetrahedrons">Tetrahedrons</a></p></li>\r
\r
<li class=kadov-p><p class="whs2"><a href="#Adding_hexahedrons">Hexahedrons</a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2"><a href="#Adding_polyhedrons">Polyhedrons</a></p></li>\r
</ul>\r
\r
<p> </p>\r
\r
<p class="whs3"> </p>\r
\r
-<p class="whs3"><img src="../image73.gif" width="157px" height="132px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3"> </p>\r
+<p class="whs3"><img src="../image146.gif" width="155px" height="189px" border="0" class="img_whs4"></p>\r
\r
<p class="whs3"> </p>\r
\r
\r
<h4><a name=Adding_nodes>Adding nodes</a></h4>\r
\r
-<p class="whs3"><img src="../pics/addnode.png" x-maintain-ratio="TRUE" width="332px" height="222px" border="0" class="img_whs5"> <img src="../pics/add_node.png" x-maintain-ratio="TRUE" width="257px" height="247px" border="0" class="img_whs6"></p>\r
+<p class="whs3"><img src="../pics/addnode.png" x-maintain-ratio="TRUE" width="332px" height="222px" border="0" class="img_whs5"> </p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"> <img src="../pics/add_node.png" x-maintain-ratio="TRUE" width="257px" height="247px" border="0" class="img_whs6"></p>\r
\r
<p class="whs3"> </p>\r
\r
\r
<p class="whs3"> </p>\r
\r
-<h4><a name=Adding_quadrangles1>Adding polygons </a></h4>\r
+<h4><a name=Adding_polygons>Adding polygons</a><a name=Adding_quadrangles1> \r
+ </a></h4>\r
\r
<h4 class="whs11"><img src="../pics/addpolygon.png" x-maintain-ratio="TRUE" width="332px" height="257px" border="0" class="img_whs9"> <img src="../pics/add_polygone.png" x-maintain-ratio="TRUE" width="251px" height="258px" border="0" class="img_whs13"></h4>\r
\r
\r
<p class="whs3"> </p>\r
\r
-<h4><a name=Adding_hexahedrons1>Adding polyhedrons</a></h4>\r
+<h4><a name=Adding_polyhedrons>Adding polyhedrons</a></h4>\r
\r
<p class="whs3"><img src="../pics/a-createpolyhedralvolume.png" x-maintain-ratio="TRUE" width="332px" height="430px" border="0" class="img_whs15"> <img src="../pics/add_polyhedron.png" x-maintain-ratio="TRUE" width="369px" height="360px" border="0" class="img_whs16"></p>\r
\r
\r
<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Area </B></span>mesh quality \r
control is based on the algorithm of area calculation of meshing \r
- elements . It can be applied to meshes consisting of 2D meshing elements \r
+ elements. It can be applied to meshes consisting of 2D meshing elements \r
with 3 and 4 nodes (triangles and quadrangles). </p>\r
\r
<p> </p>\r
<p class="whs5"> </p>\r
\r
<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of an <a href="../quality_controls.htm#bookmark7">Area \r
+ a sample TUI Script of an <a href="../quality_controls.htm#bookmark6">Area \r
quality control</a> operation. </p>\r
\r
<p> </p>\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; width:332px; height:238px; float:none; border-style:none; }\r
-img_whs2 { border:none; width:309px; height:316px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
-img_whs4 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
-img_whs5 { border:none; width:267px; height:339px; float:none; }\r
-p.whs6 { font-weight:bold; }\r
-img_whs7 { border:none; width:367px; height:224px; border-style:none; float:right; }\r
-img_whs8 { border:none; width:252px; height:243px; float:none; }\r
-p.whs9 { font-weight:bold; margin-left:40px; }\r
-img_whs10 { border:none; width:431px; height:233px; border-style:none; float:right; }\r
-img_whs11 { border:none; width:395px; height:387px; float:none; }\r
-img_whs12 { border:none; width:332px; height:264px; float:none; border-style:none; }\r
-img_whs13 { border:none; width:333px; height:386px; float:none; border-style:none; }\r
-img_whs14 { border:none; width:333px; height:285px; float:none; border-style:none; }\r
-img_whs15 { border:none; width:287px; height:305px; float:none; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { background-color:Transparent; color:#000000; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:332px; height:238px; float:none; border-style:none; }\r
+img_whs5 { border:none; width:309px; height:316px; float:none; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+img_whs7 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
+img_whs8 { border:none; width:267px; height:339px; float:none; border-style:none; }\r
+p.whs9 { font-weight:bold; }\r
+img_whs10 { border:none; width:367px; height:224px; border-style:none; float:right; }\r
+img_whs11 { border:none; width:252px; height:243px; float:none; border-style:none; }\r
+p.whs12 { font-weight:bold; margin-left:40px; }\r
+img_whs13 { border:none; width:431px; height:233px; border-style:none; float:right; }\r
+img_whs14 { border:none; width:395px; height:387px; float:none; border-style:none; }\r
+img_whs15 { border:none; width:332px; height:264px; float:none; border-style:none; }\r
+img_whs16 { border:none; width:368px; height:760px; float:none; border-style:none; }\r
+h3.whs17 { margin-left:40px; }\r
+img_whs18 { border:none; width:365px; height:605px; float:none; border-style:none; }\r
+img_whs19 { border:none; width:287px; height:305px; float:none; border-style:none; }\r
+img_whs20 { border:none; width:205px; height:175px; float:none; border-style:none; }\r
+img_whs21 { border:none; width:195px; height:192px; border-style:none; }\r
+img_whs22 { border:none; width:206px; height:195px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs3 {margin-left:1pt; }";\r
+ strNSS += "p.whs2 {background-color:white; }";\r
+ strNSS += "p.whs6 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
</script>\r
<h1>1D Meshing Hypotheses</h1>\r
\r
-<h3>Arithmetic 1D hypothesis</h3>\r
+<ul type="disc" class="whs1">\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#arithmetic_1D"><span \r
+ style="font-weight: bold;"><B>Arithmetic 1D</B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#Average_length"><span \r
+ style="font-weight: bold;"><B>Average Length</B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#deflection_1D"><span \r
+ style="font-weight: bold;"><B>Deflection 1D </B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#Number_of_elements"><span \r
+ style="font-weight: bold;"><B>Number of segments</B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#start_and_end_length"><span \r
+ style="font-weight: bold;"><B>Start and end length</B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#automatic_length"><span \r
+ style="font-weight: bold;"><B>Automatic Length</B></span></a></p></li>\r
+</ul>\r
+\r
+<h3><a name=arithmetic_1D>Arithmetic 1D hypothesis</a></h3>\r
\r
<p><span style="font-weight: bold;"><B>Arithmetic 1D</B></span> hypothesis allows \r
to split edges into segments with a length that changes in arithmetic \r
\r
<p> </p>\r
\r
-<p><img src="../pics/a-arithmetic1d.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs1"> <img src="../pics/b-ithmetic1d.png" x-maintain-ratio="TRUE" width="309px" height="316px" border="0" class="img_whs2"></p>\r
+<p class="whs3"><img src="../pics/a-arithmetic1d.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs4"> <img src="../pics/b-ithmetic1d.png" x-maintain-ratio="TRUE" width="309px" height="316px" border="0" class="img_whs5"></p>\r
\r
<p> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark">Defining \r
Arithmetic 1D hypothesis</a> operation. </p>\r
\r
-<h3><span style="font-weight: bold;"><B>Deflection</B></span> 1D hypothesis</h3>\r
+<h3><a name=deflection_1D>Deflection 1D hypothesis</a></h3>\r
\r
<p><span style="font-weight: bold;"><B>Deflection ID </B></span>hypothesis can \r
be applied for meshing curvilinear edges composing your geometrical object. \r
\r
<p> </p>\r
\r
-<p><img src="../pics/a-deflection1d.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"> <img src="../pics/b-flection1d.png" x-maintain-ratio="TRUE" width="267px" height="339px" border="0" class="img_whs5"></p>\r
+<p class="whs3"><img src="../pics/a-deflection1d.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs7"> <img src="../pics/b-flection1d.png" x-maintain-ratio="TRUE" width="267px" height="339px" border="0" class="img_whs8"></p>\r
\r
<p> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark9">Defining \r
Deflection 1D hypothesis</a> operation. </p>\r
\r
<p> </p>\r
\r
-<p class="whs6"><img src="../image41.gif" x-maintain-ratio="TRUE" width="367px" height="224px" align="right" border="0" class="img_whs7"></p>\r
+<p class="whs9"><img src="../image41.gif" x-maintain-ratio="TRUE" width="367px" height="224px" align="right" border="0" class="img_whs10"></p>\r
\r
-<h3>Average Length hypothesis</h3>\r
+<h3><a name=Average_length>Average Length hypothesis</a></h3>\r
\r
<p><span style="font-weight: bold;"><B>Average Length </B></span>hypothesis can \r
be applied for meshing of edges composing your geometrical object. Definition \r
\r
<p> </p>\r
\r
-<p><img src="../pics/a-averagelength.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"> <img src="../pics/b-erage_length.png" x-maintain-ratio="TRUE" width="252px" height="243px" border="0" class="img_whs8"></p>\r
+<p class="whs3"><img src="../pics/a-averagelength.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs7"> <img src="../pics/b-erage_length.png" x-maintain-ratio="TRUE" width="252px" height="243px" border="0" class="img_whs11"></p>\r
\r
<p> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark3">Defining \r
Average Length hypothesis</a> operation. </p>\r
\r
<p> </p>\r
\r
-<p class="whs9"><img src="../image46.gif" x-maintain-ratio="TRUE" width="431px" height="233px" align="right" border="0" class="img_whs10"></p>\r
+<p class="whs12"><img src="../image46.gif" x-maintain-ratio="TRUE" width="431px" height="233px" align="right" border="0" class="img_whs13"></p>\r
\r
-<h3>Number of segments hypothesis </h3>\r
+<h3><a name=Number_of_elements>Number of segments hypothesis</a> </h3>\r
\r
<p><span style="font-weight: bold;"><B>Number of segments </B></span>hypothesis \r
can be applied for meshing of edges composing your geometrical object. \r
\r
<p> </p>\r
\r
-<p class="whs3">You can set the type of distribution for this \r
+<p class="whs6">You can set the type of distribution for this \r
hypothesis in the <span style="font-weight: bold;"><B>Hypothesis Construction</B></span> \r
dialog bog : </p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs6"> </p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>Equidistant \r
+ Distribution</B></span> - all segments will have the same length, you define \r
+ only the <span style="font-weight: bold;"><B>Number of Segments</B></span>.</p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>Equidistant \r
- Distribution</B></span> - all segments will have the same length</p>\r
+<p class="whs6"> </p>\r
\r
-<p><img src="../pics/a-nbsegments1.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs1"> <img src="../pics/b-mberofsegments.png" x-maintain-ratio="TRUE" width="395px" height="387px" border="0" class="img_whs11"></p>\r
+<p class="whs3"><img src="../pics/a-nbsegments1.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs4"> <img src="../pics/b-mberofsegments.png" x-maintain-ratio="TRUE" width="395px" height="387px" border="0" class="img_whs14"></p>\r
\r
<p> </p>\r
\r
-<p class="whs6">Scale Distribution - <span style="font-weight: normal;">each \r
+<p class="whs9">Scale Distribution - <span style="font-weight: normal;">each \r
next segment differs from the previous according to the formula:</span> \r
A<span style="vertical-align: Sub;">i+1</span> = A<span style="vertical-align: Sub;">i \r
- </span>* k, <span style="font-weight: normal;">where</span> k <span style="font-weight: normal;">is</span> \r
- Scale Factor </p>\r
+ </span>* k, <span style="font-weight: normal;">where</span> k <span style="font-weight: normal;">is \r
+ a</span> Scale Factor. </p>\r
\r
-<p class="whs6"><img src="../pics/a-nbsegments2.png" x-maintain-ratio="TRUE" width="332px" height="264px" border="0" class="img_whs12">\</p>\r
+<p class="whs12"><img src="../pics/a-nbsegments2.png" x-maintain-ratio="TRUE" width="332px" height="264px" border="0" class="img_whs15">\</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs9"> </p>\r
\r
-<p class="whs6">Distribution with Table Density - <span style="font-weight: normal;">you \r
- input a number of pairs</span> t - F(t) <span style="font-weight: normal;">and \r
- the program computes the formula, which will rule the change of length \r
- of segments.</span></p>\r
+<p class="whs9">Distribution with Table Density - <span style="font-weight: normal;">you \r
+ input a number of pairs</span> t - F(t),<span style="font-weight: normal;"> \r
+ where </span>t<span style="font-weight: normal;"> ranges from 0 to 1,</span> \r
+ <span style="font-weight: normal;">and \r
+ the module computes the formula, which will rule the change of length \r
+ of segments and shows the curve in the plot. You can select the </span>Conversion \r
+ mode<span style="font-weight: normal;"> from </span>Exponent<span style="font-weight: normal;"> \r
+ and </span>Cut negative<span style="font-weight: normal;">. </span></p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs9"> </p>\r
\r
-<p class="whs6"><img src="../pics/a-nbsegments3.png" x-maintain-ratio="TRUE" width="333px" height="386px" border="0" class="img_whs13"></p>\r
+<p class="whs12"><img src="../pics/distributionwithtabledensity.png" x-maintain-ratio="TRUE" width="368px" height="760px" border="0" class="img_whs16"></p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs9"> </p>\r
\r
-<p class="whs6">Distribution with Analytic Density - <span \r
+<p class="whs9">Distribution with Analytic Density - <span \r
style="font-weight: normal;">you input the formula, which will rule the \r
- change of length of segments</span></p>\r
+ change of length of segments and the module shows the curve in the plot.</span></p>\r
\r
-<h3><img src="../pics/a-nbsegments4.png" x-maintain-ratio="TRUE" width="333px" height="285px" border="0" class="img_whs14"></h3>\r
+<h3 class="whs17"><img src="../pics/distributionwithanalyticdensity.png" x-maintain-ratio="TRUE" width="365px" height="605px" border="0" class="img_whs18"></h3>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark9">Defining \r
Number of Segments hypothesis</a> operation. </p>\r
\r
<h3> </h3>\r
\r
-<h3>Start and End Length hypothesis.</h3>\r
+<h3><a name=start_and_end_length>Start and End Length hypothesis.</a></h3>\r
\r
<p><span style="font-weight: bold;"><B>Start and End Length</B></span> hypothesis \r
allows to divide a geometrical edge into segments so that the first and \r
\r
<p> </p>\r
\r
-<p><img src="../pics/a-startendlength.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs1"> <img src="../pics/b-art_end_length.png" x-maintain-ratio="TRUE" width="287px" height="305px" border="0" class="img_whs15"></p>\r
+<p class="whs3"><img src="../pics/a-startendlength.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs4"> <img src="../pics/b-art_end_length.png" x-maintain-ratio="TRUE" width="287px" height="305px" border="0" class="img_whs19"></p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs6"> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark3">Defining \r
Start and End Length hypothesis</a> \r
operation. </p>\r
\r
+<p class="whs6"> </p>\r
+\r
+<h3><a name=automatic_length>Automatic Length</a></h3>\r
+\r
+<p>This hypothesis is automatically applied when you select <span style="font-weight: bold;"><B>Assign \r
+ a set of hypotheses</B></span> option in Create Mesh menu. </p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs3"><img src="../pics/automaticlength.png" x-maintain-ratio="TRUE" width="205px" height="175px" border="0" class="img_whs20"> </p>\r
+\r
+<p> </p>\r
+\r
+<p>The dialog box prompts you to define the quality of the future mesh \r
+ by only one parameter, which is <span style="font-weight: bold;"><B>Fineness</B></span>, \r
+ ranging from 0 (coarse mesh, low number of elements) to 1 (extremely fine \r
+ mesh, great number of elements). Compare one and the same object (sphere) \r
+ meshed with minimum and maximum value of this parameter. </p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs3"><img src="../image147.gif" width="195px" height="192px" border="0" class="img_whs21"> <img src="../image148.gif" width="206px" height="195px" border="0" class="img_whs22"></p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<style type="text/css">\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-p.whs3 { margin-left:80px; }\r
-img_whs4 { border:none; width:238px; height:205px; border-style:none; }\r
-p.whs5 { margin-left:0px; }\r
-img_whs6 { border:none; width:226px; height:70px; border-style:none; }\r
-p.whs7 { margin-left:40px; }\r
-img_whs8 { border:none; width:25px; height:24px; border-style:none; }\r
-img_whs9 { border:none; width:439px; height:313px; border-style:none; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:120px; height:56px; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:158px; height:110px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:120px; height:48px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:234px; height:96px; float:none; border-style:none; }\r
+p.whs8 { margin-left:0px; }\r
+p.whs9 { margin-left:36px; }\r
+img_whs10 { border:none; width:622px; height:412px; float:none; border-style:none; }\r
+p.whs11 { margin-left:80px; }\r
+img_whs12 { border:none; width:25px; height:24px; border-style:none; }\r
+img_whs13 { border:none; width:439px; height:313px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs5 {margin-left:1pt; }";\r
+ strNSS += "p.whs8 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
<h1>Aspect Ratio</h1>\r
\r
<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The <span style="font-weight: bold;"><B>Aspect Ratio</B></span> \r
- quality criterion for mesh elements is defined as follows:</p>\r
+ quality criterion for mesh elements reveals the degree of conformity of \r
+ a mesh element to the regular element of its type (with all edges having \r
+ the same length). The \r
+ criterion can be defined as </p>\r
+\r
+<p class="whs2"><img src="../image142.gif" width="120px" height="56px" border="0" class="img_whs3">where <span style="font-weight: bold; font-style: italic;"><I><B>К</B></I></span> \r
+ is the considered element of the mesh, <span style="font-weight: bold; font-style: italic;"><I><B>h</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>max</B></I></span> is the diameter of the element \r
+ К (i.e. the length of the longest edge), <span style="font-weight: bold; font-style: italic;"><I><B>р</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>к</B></I></span> is the radius of the sphere \r
+ inscribed in the element K, and <span style="font-weight: bold; font-style: italic;"><I><B>a</B></I></span> \r
+ is a normalisation value chosen so that <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>K</B></I></span> = 1 when К is an equilateral \r
+ simplex. </p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p>The value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>K</B></I></span> varies between 1 and +oo and the \r
+ closer it is to 1, the better the element К is. </p>\r
+\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p>The <span style="font-weight: bold;"><B>Aspect Ratio</B></span> \r
+ of a <span style="font-weight: bold;"><B>triangle</B></span> 2D element consisting \r
+ of 3 nodes is calculated by the formula:</p></li>\r
+</ul>\r
\r
<p> </p>\r
\r
-<ul type="disc" class="whs2">\r
- \r
- <li class=kadov-p><p>For a <span style="font-weight: bold;"><B>triangle</B></span> \r
- 2D element consisting of 3 nodes the <span style="font-weight: bold;"><B>Aspect \r
- Ratio</B></span> is calculated by formula:\r
-<p> </p>\r
+<p class="whs2"><img src="../pics/image21.gif" x-maintain-ratio="TRUE" width="158px" height="110px" border="0" class="img_whs5"></p>\r
\r
-<p><img src="../image21.gif" width="158px" height="110px" border="0" class="img_whs3"></p>\r
+<p class="whs2"><img src="../pics/image23.gif" x-maintain-ratio="TRUE" width="120px" height="48px" border="0" class="img_whs6"> ,</p>\r
\r
-<p><img src="../image23.gif" width="120px" height="48px" border="0" class="img_whs4"></p>\r
+<p class="whs2"> </p>\r
\r
-<p>where :</p>\r
+<p class="whs2">where <span style="font-weight: bold; font-style: italic;"><I><B>р</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>к</B></I></span> is the half perimeter of the \r
+ element K and <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span \r
+ style="vertical-align: Sub;\r
+ font-weight: bold;\r
+ font-style: italic;"><I><B>K</B></I></span> is its surface.</p>\r
\r
-<p> </p>\r
+<p class="whs2"> </p>\r
\r
-<p><img src="../image27.gif" width="234px" height="96px" border="0" class="img_whs5"></p>\r
+<p class="whs2"><img src="../pics/image27.gif" x-maintain-ratio="TRUE" width="234px" height="96px" border="0" class="img_whs7"></p>\r
\r
-<p> </p>\r
+<p class="whs8"> </p>\r
\r
-<p> </p>\r
-</li>\r
-\r
- <li class=kadov-p><p class="whs5">For a <span style="font-weight: bold;"><B>quadrangle</B></span> \r
- 2D element consisting of 4 nodes the \r
- <span style="font-weight: bold;"><B>Aspect Ratio </B></span>is the\r
- quality of the worst triange which can be built taking three nodes of\r
- the quadrangle. There are four triangles to consider:</p></li>\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p class="whs8">The <span style="font-weight: bold;"><B>Aspect \r
+ Ratio</B></span> of a <span style="font-weight: bold;"><B>quadrangle</B></span> 2D \r
+ element consisting of 4 nodes is the worst (i.e. the greatest) value from \r
+ all triangles which can be built taking three nodes of the quadrangle. \r
+ There are four triangles to consider: </p></li>\r
+</ul>\r
\r
-<p><img src="../image138.gif" width="566px" border="0" class="img_whs6"></p>\r
+<p class="whs9"><img src="../pics/image138.gif" x-maintain-ratio="TRUE" width="622px" height="412px" border="0" class="img_whs10"></p>\r
\r
-</ul>\r
+<p class="whs9">Note, that the Aspect Ratio criterion is \r
+ applicable to 2D mesh elements only. For 3D elements we use the <a href="../aspect_ratio_3d.htm">Aspect \r
+ Ratio 3D</a> criterion. </p>\r
\r
+<p class="whs11"> </p>\r
\r
<p class=TODO>To apply the Aspect Ratio quality criterion to your mesh:</p>\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs7">1. Display your mesh in the viewer.</p>\r
+<p class="whs2">1. Display your mesh in the viewer.</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs7">2. Choose <span style="font-weight: bold;"><B>Controls \r
- > Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs8"> button in the toolbar. \r
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ > Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs12"> button in the toolbar. \r
Your mesh will be displayed in the viewer with its elements colored according \r
to the applied mesh quality control criterion:</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs7"><img src="../image94.jpg" width="439px" height="313px" border="0" class="img_whs9"></p>\r
+<p class="whs2"><img src="../image94.jpg" width="439px" height="313px" border="0" class="img_whs13"></p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs8"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of an <a href="../quality_controls.htm#bookmark8">Aspect \r
Ratio quality control</a> operation. </p>\r
\r
<!--\r
p.whs1 { margin-left:40px; }\r
img_whs2 { border:none; width:21px; height:21px; border-style:none; }\r
-img_whs3 { border:none; width:306px; height:425px; border-style:none; float:none; }\r
+img_whs3 { border:none; width:306px; height:425px; float:none; border-style:none; }\r
ul.whs4 { list-style:disc; }\r
p.whs5 { margin-left:40px; font-weight:normal; }\r
-->\r
</B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
the operation.</p>\r
\r
+<p class="whs1"> </p>\r
+\r
+<p> <span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark12">Change \r
+ Orientation</a> operation. </p>\r
+\r
<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
p.whs3 { margin-left:40px; }\r
img_whs4 { border:none; width:22px; height:24px; border-style:none; }\r
p.whs5 { margin-left:80px; }\r
-img_whs6 { border:none; border-style:none; width:309px; height:296px; float:none; }\r
+img_whs6 { border:none; border-style:none; width:355px; height:296px; float:none; }\r
img_whs7 { border:none; width:173px; height:88px; border-style:none; }\r
img_whs8 { border:none; width:34px; height:29px; border-style:none; }\r
img_whs9 { border:none; width:29px; height:28px; border-style:none; }\r
img_whs10 { border:none; width:30px; height:29px; border-style:none; }\r
img_whs11 { border:none; width:232px; height:142px; border-style:none; float:right; }\r
img_whs12 { border:none; width:25px; height:24px; border-style:none; }\r
-img_whs13 { border:none; width:293px; height:350px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
\r
<p class="whs3"> </p>\r
\r
-<p class="whs5"><img src="../pics/c-createmesh.png" x-maintain-ratio="TRUE" width="309px" height="296px" border="0" class="img_whs6"></p>\r
+<p class="whs5"><img src="../pics/createmesh-inv.png" x-maintain-ratio="TRUE" width="355px" height="296px" border="0" class="img_whs6"></p>\r
\r
<p class="whs5"> </p>\r
\r
<p class="whs3"> </p>\r
\r
<p class="whs3">3. Now, when everything is ready, select \r
- your mesh in the <span style="font-weight: bold;"><B>Object Browser</B></span>.<span> \r
- </span><span> From \r
- the </span><span style="font-weight: bold;"><B>Mesh </B></span><span>menu select</span><span \r
- style="font-weight: bold;"><B> Compute </B></span><span>or click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs12"> button of the toolbar. </span></p>\r
+ your mesh in the <span style="font-weight: bold;"><B>Object Browser</B></span>. \r
+ From the \r
+ <span style="font-weight: bold;"><B>Mesh </B></span>menu select<span style="font-weight: bold;"><B> \r
+ Compute </B></span>or click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs12"> button of the toolbar. </p>\r
\r
-<p class="whs3">If you've done everything right, you'll obtain \r
- something like this. <img src="../image129.gif" width="293px" height="350px" border="0" class="img_whs13"></p>\r
+<p class="whs3"> </p>\r
\r
<p class="whs3">Consider trying a sample script for construction \r
of a mesh from our <a href="../constructing_meshes.htm">TUI Scripts</a> \r
p.whs3 { margin-left:40px; }\r
img_whs4 { border:none; width:27px; height:25px; border-style:none; }\r
p.whs5 { margin-left:80px; }\r
-img_whs6 { border:none; width:332px; height:300px; float:none; border-style:none; }\r
-img_whs7 { border:none; width:224px; height:212px; border-style:none; }\r
+img_whs6 { border:none; border-style:none; width:355px; height:326px; float:none; }\r
+p.whs7 { margin-left:38px; }\r
+img_whs8 { border:none; width:224px; height:212px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
\r
<p class="whs3"> </p>\r
\r
-<p class="whs5"><img src="../pics/submeshconstruction.png" x-maintain-ratio="TRUE" width="332px" height="300px" border="0" class="img_whs6"></p>\r
+<p class="whs5"><img src="../pics/createmesh-inv2.png" x-maintain-ratio="TRUE" width="355px" height="326px" border="0" class="img_whs6"></p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">It allows to define the <span style="font-weight: bold;"><B>Name</B></span>, \r
+ the parent <span style="font-weight: bold;"><B>Mesh</B></span> and the <span \r
+ style="font-weight: bold;"><B>Geometry</B></span> (e.g. a face if the parent \r
+ mesh has been built on box) of the submesh. You can define algorithms \r
+ and hypotheses in the same way as in <a href="constructing_meshes.htm">Create \r
+ mesh</a> menu. </p>\r
\r
<p class="whs5"> </p>\r
\r
\r
<p class="whs3"> </p>\r
\r
-<p class="whs3"><img src="../image10.jpg" width="224px" height="212px" border="0" class="img_whs7"></p>\r
+<p class="whs3"><img src="../image10.jpg" width="224px" height="212px" border="0" class="img_whs8"></p>\r
\r
<p class="whs3"> </p>\r
\r
table.whs9 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
col.whs10 { width:33.382%; }\r
col.whs11 { width:66.618%; }\r
-tr.whs12 { x-cell-content-align:top; }\r
+tr.whs12 { x-cell-content-align:top; height:587px; }\r
td.whs13 { width:33.382%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }\r
-img_whs14 { border:none; width:312px; height:565px; float:none; border-style:none; }\r
+img_whs14 { border:none; width:312px; height:621px; float:none; border-style:none; }\r
td.whs15 { width:66.618%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }\r
p.whs16 { margin-left:0px; }\r
img_whs17 { border:none; width:145px; height:150px; border-style:none; float:left; }\r
img_whs18 { border:none; width:149px; height:158px; border-style:none; }\r
col.whs19 { width:33.48%; }\r
col.whs20 { width:66.52%; }\r
-td.whs21 { width:33.48%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs22 { border:none; width:312px; height:312px; float:none; border-style:none; }\r
-td.whs23 { width:66.52%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs24 { border:none; width:135px; height:150px; border-style:none; }\r
-p.whs25 { margin-left:80px; }\r
+tr.whs21 { x-cell-content-align:top; }\r
+td.whs22 { width:33.48%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs23 { border:none; width:312px; height:312px; float:none; border-style:none; }\r
+td.whs24 { width:66.52%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs25 { border:none; width:135px; height:150px; border-style:none; }\r
+p.whs26 { margin-left:80px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
\r
<h3>Standalone Group </h3>\r
\r
-<p class="whs7">The box for creation of a <span style="font-weight: bold;"><B>Standalone \r
- Group</B></span> appears by default. <span style="font-weight: bold;"><B>Standalone \r
+<p class="whs7"><span style="font-weight: bold;"><B>Standalone \r
Group</B></span> consists of mesh elements, which you can define in two possible \r
ways.</p>\r
\r
<p class="whs7"><span style="font-weight: bold;"><B>Select from \r
</B></span>set of fields allows to choose a submesh or an existing group whose \r
elements of the previously defined type will be added to the list of elements \r
- which will form your group.</p>\r
+ which will form your group. </p>\r
+\r
+<p class="whs7"><span style="font-weight: bold;"><B>Color Number</B></span> \r
+ (integer only, ranging from 0 to 9999) - allows to assign to the group \r
+ a certain index, for example, defining boundary conditions. This feature \r
+ introduces a useful element of preprocessing in Mesh module. Note that \r
+ <span style="font-weight: bold;"><B>Color number</B></span> attribute has nothing \r
+ to do with the colors used for the display of the elements of the group.</p>\r
\r
<p class="whs7"> </p>\r
\r
\r
<tr valign="top" class="whs12">\r
<td width="33.382%" class="whs13">\r
-<p class="whs1"><img src="../pics/creategroup.png" x-maintain-ratio="TRUE" width="312px" height="565px" border="0" class="img_whs14"></td>\r
+<p class="whs1"><img src="../pics/creategroup.png" x-maintain-ratio="TRUE" width="312px" height="621px" border="0" class="img_whs14"></td>\r
<td width="66.618%" class="whs15">\r
<p class="whs16"><img src="../image130.gif" width="145px" height="150px" align="left" border="0" class="img_whs17"> </p>\r
<p class="whs16"> </p>\r
of a certain type belonging to the selected<span style="font-weight: bold;"> \r
<B></B></span>geometrical object. To define a group select in the Objet Browser \r
or in the 3D viewer a geometrical object from which the elements will \r
- be taken. After confirmation of the operation MESH will create a new group \r
- of mesh elements.</p>\r
+ be taken. After confirmation of the operation a new group of mesh elements \r
+ will be created.</p>\r
\r
<p class="whs3"> </p>\r
\r
<col class="whs19">\r
<col class="whs20">\r
\r
-<tr valign="top" class="whs12">\r
-<td width="33.48%" class="whs21">\r
-<p><img src="../pics/a-creategroup.png" x-maintain-ratio="TRUE" width="312px" height="312px" border="0" class="img_whs22"></td>\r
-<td width="66.52%" class="whs23">\r
-<p><img src="../image132.gif" width="135px" height="150px" border="0" class="img_whs24"> In this picture the cells which belong to a certain face \r
+<tr valign="top" class="whs21">\r
+<td width="33.48%" class="whs22">\r
+<p><img src="../pics/a-creategroup.png" x-maintain-ratio="TRUE" width="312px" height="312px" border="0" class="img_whs23"></td>\r
+<td width="66.52%" class="whs24">\r
+<p><img src="../image132.gif" width="135px" height="150px" border="0" class="img_whs25"> In this picture the cells which belong to a certain face \r
are selected in green. </td></tr>\r
</table>\r
\r
\r
<p class="whs16"> </p>\r
\r
-<p class="whs25"> </p>\r
+<p class="whs26"> </p>\r
\r
<p> </p>\r
\r
ul.whs5 { list-style:disc; }\r
p.whs6 { margin-left:40px; font-weight:normal; }\r
p.whs7 { margin-left:40px; font-weight:bold; }\r
-table.whs8 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs9 { width:50%; }\r
-tr.whs10 { x-cell-content-align:top; }\r
-td.whs11 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs12 { border:none; width:353px; height:300px; border-style:none; }\r
-td.whs13 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-p.whs14 { margin-left:0px; }\r
+p.whs8 { font-weight:bold; margin-left:0px; }\r
+p.whs9 { margin-left:0px; }\r
+table.whs10 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
+col.whs11 { width:50%; }\r
+tr.whs12 { x-cell-content-align:top; }\r
+td.whs13 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs14 { border:none; width:353px; height:300px; border-style:none; }\r
+td.whs15 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs14 {margin-left:1pt; }";\r
+ strNSS += "p.whs8 {margin-left:1pt; }";\r
+ strNSS += "p.whs9 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<ul type="disc" class="whs5">\r
\r
- <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>The main list </B></span>shall contain the quadrangles \r
- which will be cutted. You can click on an quadrangle in the 3D viewer \r
- and it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
- </B></span>button and the ID of this quadrangle will be added to the list. \r
- To remove a selected element or elements from the list click the <span \r
- style="font-weight: bold;"><B>Remove </B></span>button. The <span style="font-weight: bold;"><B>Sort \r
- </B></span>button allows to sort the list of IDs. The <span style="font-weight: bold;"><B>F</B></span><span \r
- style="font-weight: bold;"><B>ilter </B></span>button allows to apply a definite \r
- filter to selection of quadrangles.</p></li>\r
+ <li class=kadov-p><p class="whs6">The \r
+ main list<span style="font-weight: bold;"> <B></B></span>contains the list of \r
+ quadrangles. You can click on an quadrangle in the 3D viewer and it will \r
+ be highlighted (lock Shift keyboard button to select several quadrangles). \r
+ <span style="margin-left: 0px; font-weight: bold;"><B>Click Add </B></span><span \r
+ style="margin-left: 0px;">button and the ID of this quadrangle will be \r
+ added to the list. To remove a selected element or elements from the list \r
+ click </span><span style="margin-left: 0px; font-weight: bold;"><B>Remove \r
+ </B></span><span style="margin-left: 0px;">button. </span><span style="margin-left: 0px; font-weight: bold;"><B>Sort \r
+ list </B></span><span style="margin-left: 0px;">button allows to sort the \r
+ list of IDs. </span><span style="margin-left: 0px; font-weight: bold;"><B>Filter \r
+ </B></span><span style="margin-left: 0px;">button allows to apply a definite \r
+ filter to the selection of quadrangles.</span></p></li>\r
\r
<li class=kadov-p><p class="whs6"><span \r
style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to \r
modify the orientation of all quadrangles of the currently displayed mesh \r
or submesh.</p></li>\r
\r
+ <li class=kadov-p><p class="whs7">Preview \r
+ - <span style="font-weight: normal;">provides a preview of cutting in \r
+ the viewer.</span> </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs8">Criterion</p></li>\r
+ \r
<li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Use diagonal 2-4 </B></span>radio button allows \r
+ style="font-weight: bold;"><B>Use diagonal 1-3 </B></span>and<span style="font-weight: bold;"><B> \r
+ Use diagonal 2-4 </B></span> allows \r
to specify the opposite corners which will be connected by the cutting \r
edge.</p></li>\r
\r
- <li class=kadov-p><p class="whs7">Preview \r
- </p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Criterion</B></span> menu allows to apply the operation \r
- only to those object which meet the chosen criterion (from the list of \r
- Quality Controls, i.e. Skew, Warping, Minimum Angle, etc.)</p></li>\r
+ <li class=kadov-p><p class="whs7">Use \r
+ numeric factor - <span style="margin-left: 40px; font-weight: normal;"> allows \r
+ to apply the operation only to those objects which meet the chosen criterion \r
+ (from the list of Quality Controls, i.e. Skew, Warping, Minimum Angle, \r
+ etc.)</span></p></li>\r
\r
- <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose quadrangle elements will be \r
- automatically added to the list.</p></li>\r
+ <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Select \r
+ from -</B></span> allows to choose a submesh or an existing group whose quadrangle \r
+ elements will be automatically added to the list.</p></li>\r
</ul>\r
\r
<p class="whs2"> </p>\r
\r
<p class="whs2"> </p>\r
\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
-<col class="whs9">\r
-<col class="whs9">\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs10">\r
+<col class="whs11">\r
+<col class="whs11">\r
\r
-<tr valign="top" class="whs10">\r
-<td width="50%" class="whs11">\r
-<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs12"></td>\r
+<tr valign="top" class="whs12">\r
<td width="50%" class="whs13">\r
-<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs12"></td></tr>\r
+<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs14"></td>\r
+<td width="50%" class="whs15">\r
+<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs14"></td></tr>\r
</table>\r
\r
-<p class="whs14"> </p>\r
+<p class="whs9"> </p>\r
\r
<p> <span style="font-weight: bold;"><B>See \r
Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark7">Cutting \r
<!--\r
p.whs1 { margin-left:40px; }\r
img_whs2 { border:none; width:21px; height:22px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:312px; height:565px; float:none; }\r
+img_whs3 { border:none; width:400px; height:622px; float:none; }\r
p.whs4 { font-weight:normal; }\r
p.whs5 { margin-left:0px; }\r
-->\r
\r
<p class="whs1"> </p>\r
\r
-<p class="whs1"><img src="../pics/editgroup.png" x-maintain-ratio="TRUE" width="312px" height="565px" border="0" class="img_whs3"></p>\r
+<p class="whs1"><img src="../pics/editgroup.png" x-maintain-ratio="TRUE" width="400px" height="622px" border="0" class="img_whs3"></p>\r
\r
<p class="whs4"> </p>\r
\r
<p class="whs1">In this dialog box you can modify the name<span \r
style="font-weight: bold;"> <B></B></span>of your group and add or remove the \r
elements forming it. For more information <a href="creating_groups.htm">see \r
- here</a>.</p>\r
-\r
-<p class="whs1"> </p>\r
+ Creating Groups </a><span style="margin-left: 40px;">page.</span></p>\r
\r
<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
</B></span>or <span style="font-weight: bold;"><B> Apply \r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:513px; height:269px; float:none; border-style:none; }\r
-img_whs4 { border:none; width:447px; height:266px; float:none; border-style:none; }\r
+img_whs3 { border:none; border-style:none; width:437px; height:283px; float:none; }\r
+img_whs4 { border:none; border-style:none; width:436px; height:307px; float:none; }\r
p.whs5 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"><img src="../pics/importmesh.png" x-maintain-ratio="TRUE" width="513px" height="269px" border="0" class="img_whs3"> </p>\r
+<p class="whs2"><img src="../pics/meshimportmesh.png" x-maintain-ratio="TRUE" width="437px" height="283px" border="0" class="img_whs3"> </p>\r
\r
<p class="whs2"> </p>\r
\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"><img src="../pics/a-exportmesh.png" x-maintain-ratio="TRUE" width="447px" height="266px" border="0" class="img_whs4"></p>\r
+<p class="whs2"><img src="../pics/meshexportmesh.png" x-maintain-ratio="TRUE" width="436px" height="307px" border="0" class="img_whs4"></p>\r
\r
<p class="whs2"> </p>\r
\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
ul.whs2 { list-style:disc; }\r
ul.whs3 { list-style:circle; }\r
-p.whs4 { margin-left:40px; }\r
-img_whs5 { border:none; width:472px; height:355px; float:right; }\r
-p.whs6 { margin-left:40px; font-weight:bold; }\r
+p.whs4 { background-color:Transparent; color:#000000; }\r
+p.whs5 { margin-left:40px; }\r
+img_whs6 { border:none; width:472px; height:355px; border-style:none; float:right; }\r
+p.whs7 { margin-left:40px; font-weight:bold; }\r
-->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs4 {background-color:white; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
function reDo() {\r
if (innerWidth != origWidth || innerHeight != origHeight)\r
\r
<ul type="disc" class="whs2">\r
\r
- <li class=kadov-p><p>import and export of meshes in MED format,</p></li>\r
+ <li class=kadov-p><p><a href="importing_and_exporting_meshes.htm">import \r
+ and export of meshes in MED format</a>,</p></li>\r
\r
- <li class=kadov-p><p>meshing geometrical models previously created \r
- or imported by the GEOM component. MESH module allows to apply 1D, 2D, \r
- 3D meshing algorithms and a set of hypotheses:</p></li>\r
+ <li class=kadov-p><p><a href="constructing_meshes.htm">meshing geometrical \r
+ models</a> previously created or imported by the GEOM component. MESH \r
+ module allows to apply 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>\r
\r
<ul type="circle" class="whs3">\r
\r
- <li class=kadov-p><p>Local length</p></li>\r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#Average_length">Average Length</a></p></li>\r
\r
- <li class=kadov-p><p>Number of segments</p></li>\r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>\r
\r
- <li class=kadov-p><p>Max Element Area</p></li>\r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>\r
\r
- <li class=kadov-p><p>Max Element Volume</p></li>\r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>\r
+ \r
+ <li class=kadov-p><p><a href="arithmetic_1d.htm#automatic_length">Automatic \r
+ Length</a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="max._element_area_hypothesis.htm#max_element_area">Max Element Area</a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs4"><a href="max._element_area_hypothesis.htm#length_from_edges">Length from \r
+ Edges</a></p></li>\r
+ \r
+ <li class=kadov-p><p><a href="max._element_area_hypothesis.htm#quadrangle preference">Quadrangle \r
+ Preference</a></p></li>\r
+ \r
+ <li class=kadov-p><p><a href="max._element_volume_hypothsis.htm">Max \r
+ Element Volume</a></p></li>\r
</ul>\r
\r
<li class=kadov-p><p>modification of locally generated meshes by</p></li>\r
\r
<ul type="circle" class="whs3">\r
\r
- <li class=kadov-p><p>Addition/deletion of nodes and elements</p></li>\r
+ <li class=kadov-p><p><a href="adding_nodes_and_elements.htm">Addition</a> \r
+ of nodes and elements</p></li>\r
\r
- <li class=kadov-p><p>Moving nodes and elements</p></li>\r
+ <li class=kadov-p><p><a href="removing_nodes_and_elements.htm">Removal</a> \r
+ of nodes and elements</p></li>\r
</ul>\r
\r
- <li class=kadov-p><p>grouping mesh elements and performing operations \r
- on these groups </p></li>\r
+ <li class=kadov-p><p><a href="creating_groups.htm">grouping mesh elements</a> \r
+ and <a href="using_operations_on_groups.htm">performing operations on \r
+ these groups</a> </p></li>\r
\r
- <li class=kadov-p><p>quality control of meshes basing on a set of definite \r
- criteria -</p></li>\r
+ <li class=kadov-p><p><a href="about_quality_controls.htm">quality control</a> \r
+ of meshes basing on a set of definite criteria -</p></li>\r
</ul>\r
\r
-<p class="whs4"><img src="../image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs5"></p>\r
+<p class="whs5"><img src="../image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs6"></p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">for edges:</p>\r
+<p class="whs7">for edges:</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
\r
<ul type="disc" class="whs2">\r
\r
<ul type="circle" class="whs3">\r
\r
- <li class=kadov-p><p>Length of edges </p></li>\r
+ <li class=kadov-p><p><a href="../length.htm">Length of edges</a> \r
+ </p></li>\r
\r
- <li class=kadov-p><p>Borders at multi-connections</p></li>\r
+ <li class=kadov-p><p><a href="../borders_at_multi-connection.htm">Borders \r
+ at multi-connection</a></p></li>\r
\r
- <li class=kadov-p><p>Free borders</p></li>\r
+ <li class=kadov-p><p><a href="../free_borders.htm">Free borders</a></p></li>\r
</ul>\r
</ul>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs6">for faces:</p>\r
+<p class="whs7">for faces:</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
\r
<ul type="disc" class="whs2">\r
\r
<ul type="circle" class="whs3">\r
\r
- <li class=kadov-p><p>Area </p></li>\r
+ <li class=kadov-p><p><a href="area_of_elements.htm">Area</a> </p></li>\r
\r
- <li class=kadov-p><p>Free edges</p></li>\r
+ <li class=kadov-p><p><a href="../free_edges.htm">Free edges</a></p></li>\r
\r
- <li class=kadov-p><p>Borders at multi-connection 2D</p></li>\r
+ <li class=kadov-p><p><a href="../borders_at_multiconnection_2d.htm">Borders \r
+ at multi-connection 2D</a></p></li>\r
\r
- <li class=kadov-p><p>Length 2D</p></li>\r
+ <li class=kadov-p><p><a href="length_of_edges.htm">Length 2D</a></p></li>\r
\r
- <li class=kadov-p><p>Minimum angle</p></li>\r
+ <li class=kadov-p><p><a href="minimum_angle.htm">Minimum angle</a></p></li>\r
\r
- <li class=kadov-p><p>Taper</p></li>\r
+ <li class=kadov-p><p><a href="taper.htm">Taper</a></p></li>\r
\r
- <li class=kadov-p><p>Aspect Ratio</p></li>\r
+ <li class=kadov-p><p><a href="aspect_ratio.htm">Aspect Ratio</a></p></li>\r
\r
- <li class=kadov-p><p>Warping </p></li>\r
+ <li class=kadov-p><p><a href="warp.htm">Warping</a> </p></li>\r
\r
- <li class=kadov-p><p>Skew</p></li>\r
+ <li class=kadov-p><p><a href="skew.htm">Skew</a></p></li>\r
</ul>\r
</ul>\r
\r
<p> </p>\r
\r
-<p class="whs6">for solids:</p>\r
+<p class="whs7">for solids:</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
<ul type="disc" class="whs2">\r
\r
<ul type="circle" class="whs3">\r
\r
- <li class=kadov-p><p>Aspect ratio 3D</p></li>\r
+ <li class=kadov-p><p><a href="../aspect_ratio_3d.htm">Aspect ratio \r
+ 3D</a></p></li>\r
+ \r
+ <li class=kadov-p><p><a href="../volume.htm">Volume</a></p></li>\r
</ul>\r
</ul>\r
\r
<p class="whs2"> </p>\r
\r
<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../quality_controls.htm#bookmark5"> Length \r
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark4"> Length \r
2D quality control</a> operation. </p>\r
\r
<p> </p>\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:80px; }\r
-img_whs3 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
-p.whs4 { margin-left:0px; }\r
-p.whs5 { margin-left:40px; }\r
-img_whs6 { border:none; width:455px; height:385px; float:none; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { background-color:Transparent; color:#000000; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
+p.whs5 { margin-left:80px; }\r
+p.whs6 { margin-left:0px; }\r
+img_whs7 { border:none; width:455px; height:385px; float:none; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs4 {margin-left:1pt; }";\r
+ strNSS += "p.whs2 {background-color:white; }";\r
+ strNSS += "p.whs6 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
{\r
if (window.addTocInfo)\r
{\r
- addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nMax Element Area hypothesis");\r
+ addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\n2D Meshing Hypotheses");\r
addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
\r
}\r
document.location.reload();\r
//-->\r
</script>\r
-<h1>Max Element Area hypothesis</h1>\r
+<h1>2D Meshing Hypotheses</h1>\r
\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"></B></span> <span style="font-weight: bold;"><B>Max \r
- Element Area </B></span>hypothesis is applied for meshing of 2D faces composing \r
- your geometrical object. Definition of this hypothesis consists of setting \r
- the <span style="font-weight: bold;"><B>maximum area </B></span>of meshing elements \r
- (depending on the chosen meshing algorithm it can be <span style="font-weight: bold;"><B>triangles</B></span> \r
- or <span style="font-weight: bold;"><B>quadrangles</B></span>), which will compose \r
- the mesh of these 2D faces. </p>\r
+<ul type="disc" class="whs1">\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#max_element_area"><span \r
+ style="font-weight: bold;"><B>Max Element Area</B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#length_from_edges"><span \r
+ style="font-weight: bold;"><B>Length from Edges</B></span></a></p></li>\r
+ \r
+ <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+ class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#quadrangle preference" style="font-weight: bold;">Quadrangle \r
+ Preference</a></p></li>\r
+</ul>\r
+\r
+<h3><a name=max_element_area>Max Element Area </a></h3>\r
+\r
+<p><span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
+ is applied for meshing of 2D faces composing your geometrical object. \r
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
+ area </B></span>of meshing elements (depending on the chosen meshing algorithm \r
+ it can be <span style="font-weight: bold;"><B>triangles</B></span> or <span style="font-weight: bold;"><B>quadrangles</B></span>), \r
+ which will compose the mesh of these 2D faces. </p>\r
\r
<p> </p>\r
\r
-<p class="whs2"><img src="../pics/a-maxelarea.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/a-maxelarea.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark4">Maximum \r
Element Area hypothesis</a> operation. </p>\r
\r
<p> </p>\r
\r
-<p class="whs5"><img src="../pics/max_el_area.png" x-maintain-ratio="TRUE" width="455px" height="385px" border="0" class="img_whs6"></p>\r
+<p class="whs3"><img src="../pics/max_el_area.png" x-maintain-ratio="TRUE" width="455px" height="385px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<h3><a name=length_from_edges>Length from Edges</a></h3>\r
+\r
+<p><span style="font-weight: bold;"><B>Length from edges</B></span> hypothesis \r
+ builds 1D mesh segments having a length calculated as an average edge \r
+ length for a given wire. </p>\r
+\r
+<p> </p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark6">Length \r
+ from Edges hypothesis</a> operation. </p>\r
+\r
+<p> </p>\r
+\r
+<h3><a name="quadrangle preference">Quadrangle Preference</a></h3>\r
+\r
+<p>This algorithm can be used only together with Quadrangle (Mapping) algorithm. \r
+ It allows to build quadrangular meshes even if the number of nodes at \r
+ the opposite edges of a meshed face is not equal, otherwise this mesh \r
+ will contain some triangular elements.</p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<style type="text/css">\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:80px; }\r
-img_whs3 { border:none; border-style:none; width:332px; height:212px; float:none; }\r
-p.whs4 { margin-left:0px; }\r
+p.whs2 { margin-left:48px; }\r
+img_whs3 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
+p.whs4 { margin-left:80px; }\r
+p.whs5 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs4 {margin-left:1pt; }";\r
+ strNSS += "p.whs5 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p class="whs2"><img src="../pics/a-maxelvolume.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs3"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark5">Maximum \r
Element Volume hypothesis</a> operation. </p>\r
\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
p.whs2 { margin-left:40px; }\r
img_whs3 { border:none; width:312px; height:488px; float:none; border-style:none; }\r
-img_whs4 { border:none; width:341px; height:375px; float:none; }\r
-img_whs5 { border:none; float:none; width:347px; height:376px; }\r
+img_whs4 { border:none; width:341px; height:375px; float:none; border-style:none; }\r
+img_whs5 { border:none; float:none; width:347px; height:376px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
<p class="whs2"> </p>\r
\r
<p> <span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark3">Merging \r
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark3">Merge \r
Nodes</a> operation. </p>\r
\r
<p> </p>\r
menu. These hypotheses are actually changes in the rules of mesh creation \r
and as such don't possess adjustable values. </p>\r
\r
-<h3> </h3>\r
-\r
<h3>Non Conform mesh allowed hypothesis</h3>\r
\r
<p><span style="font-weight: bold;"><B>Non Conform mesh allowed</B></span> hypothesis \r
allows to generate non-conform meshes (that is, meshes having some edges \r
ending on an edge or face of adjacent elements). </p>\r
\r
-<h3> </h3>\r
+<h3>Quadratic Mesh</h3>\r
+\r
+<p>Quadratic Mesh hypothesis allows to build a quadratic mesh (whose edges \r
+ are not straight but broken lines and can be defined by three points: \r
+ first, middle and last) instead of an ordinary one. </p>\r
\r
<h3>Propagation of 1D Hypothesis on opposite edges</h3>\r
\r
-<p><span style="font-weight: bold;"><B>P</B></span><span style="font-weight: bold;"><B>ropagation \r
- of 1D Hypothesis on opposite edges </B></span>allows to propagate a set hypothesis \r
- onto an opposite edge. If a local hypothesis and propagation are set on \r
- one of edges of a quadrangular face, the opposite edge will have the same \r
- hypothesis, unless another hypothesis has been locally set on such opposite \r
- edge.</p>\r
+<p><span style="font-weight: bold;"><B>Propagation of 1D Hypothesis on opposite \r
+ edges </B></span>allows to propagate a hypothesis onto an opposite edge. If \r
+ a local hypothesis and propagation are defined on an edge of a quadrangular \r
+ face, the opposite edge will have the same hypothesis, unless another \r
+ hypothesis has been locally defined on the opposite edge.</p>\r
\r
<p class="whs1"> </p>\r
\r
<p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark6">Propagation \r
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark7">Propagation \r
hypothesis</a> operation. </p>\r
\r
<p> </p>\r
\r
-<h3>Length from edges hypothesis </h3>\r
-\r
-<p><span style="font-weight: bold;"><B>Length from edges</B></span> hypothesis \r
- builds 1D mesh segments having a length calculated as an average edge \r
- length for a given wire. </p>\r
-\r
-<p> </p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark7">Length \r
- from Edges hypothesis</a> operation. </p>\r
-\r
<p> </p>\r
\r
<p class="whs2"> </p>\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; border-style:none; width:309px; height:296px; float:none; }\r
+img_whs1 { border:none; border-style:none; width:355px; height:296px; float:none; }\r
img_whs2 { border:none; width:30px; height:29px; border-style:none; }\r
-img_whs3 { border:none; float:none; width:386px; height:336px; border-style:none; }\r
-img_whs4 { border:none; float:none; width:386px; height:338px; border-style:none; }\r
-p.whs5 { margin-left:0px; }\r
-p.whs6 { margin-left:0px; font-weight:bold; }\r
-img_whs7 { border:none; width:388px; height:341px; float:none; border-style:none; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; float:none; width:386px; height:336px; border-style:none; }\r
+img_whs5 { border:none; float:none; width:386px; height:338px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+p.whs7 { font-weight:bold; margin-left:40px; }\r
+img_whs8 { border:none; width:388px; height:341px; float:none; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs5 {margin-left:1pt; }";\r
strNSS += "p.whs6 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
\r
<p> </p>\r
\r
-<p class=TODO><img src="../pics/c-editmesh.png" x-maintain-ratio="TRUE" width="309px" height="296px" border="0" class="img_whs1"></p>\r
+<p class=TODO\r
+ style="margin-left: 40px;"><img src="../pics/createmesh-inv3.png" x-maintain-ratio="TRUE" width="355px" height="296px" border="0" class="img_whs1"></p>\r
\r
<p>You can also change values for the current hypothesis by clicking the \r
<img src="../image122.gif" width="30px" height="29px" border="0" class="img_whs2"> button. </p>\r
\r
<p> </p>\r
\r
-<p><img src="../pics/edit_mesh1.png" x-maintain-ratio="TRUE" width="386px" height="336px" border="0" class="img_whs3"> <img src="../pics/edit_mesh_remove_hyp.png" x-maintain-ratio="TRUE" width="386px" height="338px" border="0" class="img_whs4"></p>\r
+<p class="whs3"><img src="../pics/edit_mesh1.png" x-maintain-ratio="TRUE" width="386px" height="336px" border="0" class="img_whs4"> <img src="../pics/edit_mesh_remove_hyp.png" x-maintain-ratio="TRUE" width="386px" height="338px" border="0" class="img_whs5"></p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
-<p class="whs6"><img src="../pics/edit_mesh_change_value_hyp.png" x-maintain-ratio="TRUE" width="388px" height="341px" border="0" class="img_whs7"></p>\r
+<p class="whs7"><img src="../pics/edit_mesh_change_value_hyp.png" x-maintain-ratio="TRUE" width="388px" height="341px" border="0" class="img_whs8"></p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
-<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of an <a href="../constructing_meshes.htm#bookmark2">Edit \r
Mesh</a> operation. </p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
<p> </p>\r
\r
</script>\r
<style type="text/css">\r
<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:27px; height:25px; border-style:none; }\r
-img_whs3 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
-p.whs4 { margin-left:0px; }\r
-img_whs5 { border:none; width:36px; height:38px; float:none; border-style:none; }\r
-table.whs6 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs7 { width:31.569%; }\r
-col.whs8 { width:68.431%; }\r
-tr.whs9 { x-cell-content-align:top; }\r
-td.whs10 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs11 { border:none; border-style:none; width:245px; height:289px; float:none; }\r
-td.whs12 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs13 { border:none; border-style:none; width:252px; height:288px; float:none; }\r
-table.whs14 { x-cell-content-align:top; border-spacing:0px; width:55.882%; }\r
-col.whs15 { width:47.72%; }\r
-col.whs16 { width:52.28%; }\r
-img_whs17 { border:none; border-style:none; width:219px; height:210px; float:none; }\r
-img_whs18 { border:none; border-style:none; float:none; width:240px; height:209px; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { margin-left:40px; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:27px; height:25px; border-style:none; }\r
+img_whs5 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+img_whs7 { border:none; width:36px; height:38px; float:none; border-style:none; }\r
+table.whs8 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
+col.whs9 { width:31.569%; }\r
+col.whs10 { width:68.431%; }\r
+tr.whs11 { x-cell-content-align:top; }\r
+td.whs12 { width:31.569%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs13 { border:none; width:245px; height:289px; float:none; border-style:none; }\r
+td.whs14 { width:68.431%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs15 { border:none; width:252px; height:288px; float:none; border-style:none; }\r
+table.whs16 { x-cell-content-align:top; width:55.882%; border-spacing:0px; }\r
+col.whs17 { width:47.72%; }\r
+col.whs18 { width:52.28%; }\r
+td.whs19 { width:47.72%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs20 { border:none; width:219px; height:210px; float:none; border-style:none; }\r
+td.whs21 { width:52.28%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs22 { border:none; float:none; width:240px; height:209px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs4 {margin-left:1pt; }";\r
+ strNSS += "p.whs6 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
</script>\r
<h1>Removing nodes and elements</h1>\r
\r
-<p>In SMESH you can remove nodes and all types of cells of your mesh. </p>\r
+<p>In MESH you can remove nodes and all types of cells of your mesh. </p>\r
\r
<p> </p>\r
\r
-<p class=TODO>To remove a node:</p>\r
+<ul type="disc" class="whs1">\r
+ \r
+ <li class=kadov-p><p class="whs2"><a \r
+ href="#remove_a_node"\r
+ style="font-weight: bold;"><span style="font-weight: bold;"><B>Nodes</a> \r
+ </B></span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2"><a \r
+ href="#remove_an_element"\r
+ style="font-weight: bold;">Elements</a></p></li>\r
+</ul>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO><a name=remove_a_node>To remove a node:</a></p>\r
\r
<p class=TODO\r
style="margin-left: 40px;"> </p>\r
\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
+<p class="whs3">1. Select your mesh in the Object Browser \r
or in the 3D viewer.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification \r
</B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
- nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
+ nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs4"> icon in the toolbar. The \r
following dialog box will appear:</p>\r
\r
<p> </p>\r
\r
-<p class="whs1"><img src="../pics/removenodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/removenodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">In this dialog box you can specify one or \r
+<p class="whs3">In this dialog box you can specify one or \r
several nodes (with pressed Shift button) by choosing them in the 3D viewer.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+<p class="whs3">3. Click <span style="font-weight: bold;"><B>OK \r
</B></span>or <span style="font-weight: bold;"><B>Apply </B></span> to \r
confirm deletion of the specified nodes.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs4"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs5">Be careful while removing \r
+<p class="whs6"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7">Be careful while removing \r
nodes because if you remove a definite node of your mesh all adjacent \r
elements will be also deleted.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
-<col class="whs7">\r
-<col class="whs8">\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
+<col class="whs9">\r
+<col class="whs10">\r
\r
-<tr valign="top" class="whs9">\r
-<td width="31.569%" class="whs10">\r
-<p><img src="../pics/remove_nodes1.png" x-maintain-ratio="TRUE" width="245px" height="289px" border="0" class="img_whs11"></td>\r
-<td width="68.431%" class="whs12">\r
-<p><img src="../pics/remove_nodes2.png" x-maintain-ratio="TRUE" width="252px" height="288px" border="0" class="img_whs13"></td></tr>\r
+<tr valign="top" class="whs11">\r
+<td width="31.569%" class="whs12">\r
+<p><img src="../pics/remove_nodes1.png" x-maintain-ratio="TRUE" width="245px" height="289px" border="0" class="img_whs13"></td>\r
+<td width="68.431%" class="whs14">\r
+<p><img src="../pics/remove_nodes2.png" x-maintain-ratio="TRUE" width="252px" height="288px" border="0" class="img_whs15"></td></tr>\r
</table>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs6"> </p>\r
\r
<p> </p>\r
\r
-<p class=TODO>To remove an element:</p>\r
+<p class=TODO><a name=remove_an_element>To remove an element:</a></p>\r
\r
<p class=TODO\r
style="margin-left: 40px;"> </p>\r
\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
+<p class="whs3">1. Select your mesh in the Object Browser \r
or in the 3D viewer.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification \r
</B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
- elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
+ elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs4"> icon in the toolbar. The \r
following dialog box will appear:</p>\r
\r
<p> </p>\r
\r
-<p class="whs1"><img src="../pics/removeelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/removeelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">In this dialog box you can specify one or \r
+<p class="whs3">In this dialog box you can specify one or \r
several elements of your mesh (with pressed Shift button) by choosing \r
them in the 3D viewer.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+<p class="whs3">3. Click <span style="font-weight: bold;"><B>OK \r
</B></span>or <span style="font-weight: bold;"><B>Apply </B></span> to \r
confirm deletion of the specified elements.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<table x-use-null-cells width="55.882%" cellspacing="0" class="whs14">\r
-<col class="whs15">\r
-<col class="whs16">\r
+<table x-use-null-cells cellspacing="0" width="55.882%" class="whs16">\r
+<col class="whs17">\r
+<col class="whs18">\r
\r
-<tr valign="top" class="whs9">\r
-<td width="47.72%" class="whs10">\r
-<p><img src="../pics/remove_elements1.png" x-maintain-ratio="TRUE" width="219px" height="210px" border="0" class="img_whs17"></td>\r
-<td width="52.28%" class="whs12">\r
-<p><img src="../pics/remove_elements2.png" x-maintain-ratio="TRUE" width="240px" height="209px" border="0" class="img_whs18"></td></tr>\r
+<tr valign="top" class="whs11">\r
+<td width="47.72%" class="whs19">\r
+<p><img src="../pics/remove_elements1.png" x-maintain-ratio="TRUE" width="219px" height="210px" border="0" class="img_whs20"></td>\r
+<td width="52.28%" class="whs21">\r
+<p><img src="../pics/remove_elements2.png" x-maintain-ratio="TRUE" width="240px" height="209px" border="0" class="img_whs22"></td></tr>\r
</table>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs6"> </p>\r
\r
<p> </p>\r
\r
</script>\r
<style type="text/css">\r
<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:29px; height:23px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:332px; height:231px; float:none; }\r
-img_whs4 { border:none; width:26px; height:25px; border-style:none; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { margin-left:40px; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:29px; height:23px; border-style:none; }\r
+img_whs5 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:26px; height:25px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
</script>\r
<h1>Renumbering nodes and elements</h1>\r
\r
-<p>In SMESH you can renumber the nodes and elements of your mesh.</p>\r
+<p>In MESH you can renumber the nodes and elements of your mesh.</p>\r
\r
<p> </p>\r
\r
-<p class=TODO>To renumber the nodes of your mesh:</p>\r
+<ul type="disc" class="whs1">\r
+ \r
+ <li class=kadov-p><p class="whs2"><a \r
+ href="#renumber_nodes">Nodes</a> </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2"><a \r
+ href="#renumber_elements"\r
+ style="font-weight: bold;">Elements</a></p></li>\r
+</ul>\r
+\r
+<p> </p>\r
+\r
+<p class=TODO><a name=renumber_nodes>To renumber the nodes of your mesh:</a></p>\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Modification \r
</B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
and choose the <span style="font-weight: bold;"><B>Nodes </B></span>item or click \r
- <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following dialog box will \r
+ <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
appear: </p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1"><img src="../pics/renumbernodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/renumbernodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+<p class="whs3">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
</B></span>field by selecting your mesh in the Object Browser or in the 3D \r
viewer.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+<p class="whs3">3. Click the <span style="font-weight: bold;"><B>Apply \r
</B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
to perform the operation.</span></p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class=TODO>To renumber the elements of your mesh:</p>\r
+<p class=TODO><a name=renumber_elements>To renumber the elements of your \r
+ mesh:</a></p>\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Modification \r
</B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
and choose the <span style="font-weight: bold;"><B>Elements </B></span>item or \r
- click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
+ click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs6"> button in the toolbar. The following dialog box will \r
appear: </p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1"><img src="../pics/renumberelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/renumberelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+<p class="whs3">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
</B></span>field by selecting your mesh in the Object Browser or in the 3D \r
viewer.</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+<p class="whs3">3. Click the <span style="font-weight: bold;"><B>Apply \r
</B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
to perform the operation.</span></p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
<p> <span style="font-weight: bold;"><B>See \r
Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark2">Renumbering \r
\r
<p> </p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
<style type="text/css">\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:0px; text-indent:48px; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:453px; height:411px; border-style:none; }\r
-img_whs5 { border:none; width:24px; height:23px; border-style:none; }\r
-img_whs6 { border:none; width:448px; height:323px; border-style:none; }\r
-p.whs7 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:453px; height:411px; border-style:none; }\r
+img_whs4 { border:none; width:24px; height:23px; border-style:none; }\r
+img_whs5 { border:none; width:448px; height:323px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs2 {margin-left:1pt; }";\r
- strNSS += "p.whs7 {margin-left:1pt; }";\r
+ strNSS += "p.whs6 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Skew</B></span> mesh quality \r
criterion reflects the angle between the lines that join opposite sides \r
of the element. SKEW is \r
- a maximum value of all skew angles. </p>\r
-\r
-<p class="whs2">This mesh quality criterion \r
- can be applied to elements composed of 4 and 3 nodes (quadrangles and \r
- triangles)</p>\r
+ a maximum value of all skew angles. <span style="margin-left: 0px; text-indent: 48px;">This \r
+ mesh quality criterion can be applied to elements composed of 4 and 3 \r
+ nodes (quadrangles and triangles)</span></p>\r
\r
<p> </p>\r
\r
-<p class="whs3"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs4"></p>\r
+<p class="whs2"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs3"></p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs2"> </p>\r
\r
<p class=TODO>To apply the Skew quality criterion to your mesh:</p>\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs3">1. Display your mesh in the viewer.</p>\r
+<p class="whs2">1. Display your mesh in the viewer.</p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
- > Skew </B></span>or click <img src="../image40.gif" width="24px" height="23px" border="0" class="img_whs5"> button of the toolbar. Your mesh \r
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ > Skew </B></span>or click <img src="../image40.gif" width="24px" height="23px" border="0" class="img_whs4"> button of the toolbar. Your mesh \r
will be displayed in the viewer with its elements colored according to \r
the applied mesh quality control criterion:</p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs3"><img src="../image93.jpg" width="448px" height="323px" border="0" class="img_whs6"></p>\r
+<p class="whs2"><img src="../image93.jpg" width="448px" height="323px" border="0" class="img_whs5"></p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs7"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
a sample TUI Script of a <a href="../quality_controls.htm#bookmark12">Skew \r
quality control</a> operation. </p>\r
\r
p.whs7 { font-weight:bold; }\r
p.whs8 { margin-left:80px; }\r
img_whs9 { border:none; width:527px; height:281px; border-style:none; }\r
-img_whs10 { border:none; float:none; width:353px; height:235px; }\r
-img_whs11 { border:none; width:351px; height:235px; float:none; }\r
+img_whs10 { border:none; float:none; width:353px; height:235px; border-style:none; }\r
+img_whs11 { border:none; width:351px; height:235px; float:none; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
<ul type="disc" class="whs5">\r
\r
<li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Id Elements </B></span><span>field allows to specify \r
- the elements which should be smoothed by selecting them in the 3D viewer. \r
- Note: to select several elements press </span><span style="font-weight: bold;"><B>Shift \r
- </B></span><span>button.</span></p></li>\r
+ style="font-weight: bold;"><B>Id Elements </B></span>field allows to specify \r
+ the elements which should be smoothed by selecting them in the 3D viewer \r
+ (lock <span style="font-weight: bold;"><B>Shift </B></span>button to select several \r
+ elements).</p></li>\r
\r
<ul type="disc" class="whs5">\r
\r
- <li class=kadov-p><p class="whs7">Smoothing is applied \r
- to the whole mesh or its part</p></li>\r
+ <li class=kadov-p><p class="whs7">Select whole mesh, \r
+ submesh or group - <span style="font-weight: normal;">smoothing is applied \r
+ to the whole mesh or its part.</span></p></li>\r
\r
<li class=kadov-p><p><span style="font-weight: bold;"><B>Fixed nodes \r
ids</B></span>: some nodes keep their location during smoothing. If a mesh \r
fixed.</p></li>\r
\r
<li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing \r
- method</B></span>:</p></li>\r
+ Method</B></span>:</p></li>\r
\r
<ul type="disc" class="whs5">\r
\r
by a diagonal. So it can be calculated only for elements consisting of \r
4 nodes.</p>\r
\r
+<p> </p>\r
+\r
<p><img src="../image25.gif" width="791px" height="170px" border="0" class="img_whs2"></p>\r
\r
<p> </p>\r
<p class="whs3"> </p>\r
\r
<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../quality_controls.htm#bookmark8">Taper \r
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark7">Taper \r
quality control</a> operation. </p>\r
\r
<p> </p>\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:306px; height:450px; border-style:none; float:left; }\r
+img_whs3 { border:none; width:306px; height:450px; border-style:none; float:none; }\r
img_whs4 { border:none; width:23px; height:24px; border-style:none; }\r
ul.whs5 { list-style:disc; }\r
p.whs6 { margin-left:40px; font-weight:normal; }\r
p.whs7 { margin-left:0px; }\r
-img_whs8 { border:none; width:286px; height:242px; float:none; }\r
-img_whs9 { border:none; float:none; width:286px; height:242px; }\r
+img_whs8 { border:none; width:286px; height:242px; float:none; border-style:none; }\r
+img_whs9 { border:none; float:none; width:286px; height:242px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
\r
<p class=TODO> </p>\r
\r
-<p class="whs2"><img src="../pics/a-unionoftriangles.png" x-maintain-ratio="TRUE" width="306px" height="450px" align="left" border="0" class="img_whs3"></p>\r
+<p class="whs2"><img src="../pics/a-unionoftriangles.png" x-maintain-ratio="TRUE" width="306px" height="450px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs2"> </p>\r
\r
<p class="whs2">1. Display a mesh or a submesh in the 3D \r
viewer.</p>\r
elements have no adjacent edges with one of the others, the operation \r
on these elements shall take no effect.</p>\r
\r
-<p class="whs2"> </p>\r
-\r
-<p class="whs2"> </p>\r
-\r
-<p class="whs2"> </p>\r
-\r
<p> </p>\r
\r
<p><img src="../pics/uniting_a_set_of_triangles1.png" x-maintain-ratio="TRUE" width="286px" height="242px" border="0" class="img_whs8"> <img src="../pics/uniting_a_set_of_triangles2.png" x-maintain-ratio="TRUE" width="286px" height="242px" border="0" class="img_whs9"></p>\r
</script>\r
<style type="text/css">\r
<!--\r
-p.whs1 { font-style:normal; font-weight:normal; }\r
-img_whs2 { border:none; width:20px; height:26px; border-style:none; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:271px; height:269px; float:none; border-style:none; }\r
-img_whs5 { border:none; width:22px; height:27px; border-style:none; }\r
-img_whs6 { border:none; width:260px; height:485px; float:none; border-style:none; }\r
-img_whs7 { border:none; width:866px; height:287px; float:none; }\r
-p.whs8 { margin-left:0px; }\r
-p.whs9 { margin-left:80px; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { font-weight:bold; margin-left:40px; }\r
+p.whs3 { font-style:normal; font-weight:normal; }\r
+img_whs4 { border:none; width:20px; height:26px; border-style:none; }\r
+p.whs5 { margin-left:40px; }\r
+img_whs6 { border:none; width:271px; height:269px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:22px; height:27px; border-style:none; }\r
+img_whs8 { border:none; border-style:none; width:451px; height:506px; float:none; }\r
+img_whs9 { border:none; width:866px; height:287px; float:none; border-style:none; }\r
+p.whs10 { margin-left:0px; }\r
+p.whs11 { margin-left:80px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs8 {margin-left:1pt; }";\r
+ strNSS += "p.whs10 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p> </p>\r
\r
-<p class="whs1">The <span style="font-weight: bold;"><B>Standard \r
- Mesh Infos</B></span> box gives only the information on the number of 2D elements \r
- of mesh and the number of nodes. However, from this Info you can learn \r
- about groups selected on this mesh. </p>\r
+<ul type="disc" class="whs1">\r
+ \r
+ <li class=kadov-p><p class="whs2"><a \r
+ href="#standard_infos">Standard</a></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs2"><a \r
+ href="#advanced_infos">Advanced</a></p></li>\r
+</ul>\r
\r
-<p class="whs1">To view the <span style="font-weight: bold;"><B>Standard \r
+<p class="whs2"> </p>\r
+\r
+<h3><a name=standard_infos>Standard Mesh Infos</a></h3>\r
+\r
+<p class="whs3">The <span style="font-weight: bold;"><B>Standard \r
+ Mesh Infos</B></span> box gives only the information on the number of elements \r
+ of maximum dimension and the number of nodes in the mesh. However, from \r
+ this Info you can learn about groups selected on this mesh. </p>\r
+\r
+<p class="whs3">To view the <span style="font-weight: bold;"><B>Standard \r
Mesh Infos, </B></span>select your mesh or submesh in the <span style="font-weight: bold;"><B>Object \r
Browser</B></span> and<span style="font-weight: bold;"> <B></B></span>select <span \r
style="font-weight: bold;"><B>Standard Mesh Infos </B></span>from<span style="font-weight: bold;"> \r
<B></B></span>the <span style="font-weight: bold;"><B>Mesh </B></span>menu or click \r
- <img src="../image49.gif" width="20px" height="26px" border="0" class="img_whs2"> button in the toolbar. The following information will \r
+ <img src="../image49.gif" width="20px" height="26px" border="0" class="img_whs4"> button in the toolbar. The following information will \r
be displayed:</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs3"> </p>\r
\r
-<p class="whs3"><img src="../pics/a-standmeshinfo.png" x-maintain-ratio="TRUE" width="271px" height="269px" border="0" class="img_whs4"></p>\r
+<p class="whs5"><img src="../pics/a-standmeshinfo.png" x-maintain-ratio="TRUE" width="271px" height="269px" border="0" class="img_whs6"></p>\r
\r
<p> </p>\r
\r
+<h3><a name="advanced infos">Advanced Mesh Infos</a></h3>\r
+\r
<p>The<span style="font-weight: bold;"><B> Advanced</B></span> <span style="font-weight: bold;"><B>Mesh \r
Infos </B></span>gives more information about the mesh, including the total \r
number of faces and volumes and their geometrical types.</p>\r
your mesh or submesh in the <span style="font-weight: bold;"><B>Object Browser</B></span> \r
and<span style="font-weight: bold;"> <B></B></span>select <span style="font-weight: bold;"><B>Advanced \r
Mesh Infos </B></span>from<span style="font-weight: bold;"> <B></B></span>the <span \r
- style="font-weight: bold;"><B>Mesh </B></span>menu or click <img src="../image50.gif" width="22px" height="27px" border="0" class="img_whs5"> button \r
+ style="font-weight: bold;"><B>Mesh </B></span>menu or click <img src="../image50.gif" width="22px" height="27px" border="0" class="img_whs7"> button \r
in the toolbar. The following information will be displayed:</p>\r
\r
<p> </p>\r
\r
-<p class="whs3"><img src="../pics/a-advmeshinfo.png" x-maintain-ratio="TRUE" width="260px" height="485px" border="0" class="img_whs6"></p>\r
+<p class="whs5"><img src="../pics/advanced_mesh_infos.png" x-maintain-ratio="TRUE" width="451px" height="506px" border="0" class="img_whs8"></p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs3">In case you get Mesh Infos via a TUI script, \r
- the information is displayed in Python Console.</p>\r
+<p class="whs5">In case you get Mesh Infos via a <a href="../viewing_meshes.htm">TUI \r
+ script</a>, the information is displayed in Python Console.</p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs3"><img src="../pics/b-mesh_infos.png" x-maintain-ratio="TRUE" width="866px" height="287px" border="0" class="img_whs7"></p>\r
+<p class="whs5"><img src="../pics/b-mesh_infos.png" x-maintain-ratio="TRUE" width="866px" height="287px" border="0" class="img_whs9"></p>\r
\r
-<p> </p>\r
+<p class="whs10"> </p>\r
\r
-<p class="whs8"> </p>\r
-\r
-<p class="whs8"> </p>\r
+<p> </p>\r
\r
-<p class="whs9"> </p>\r
+<p class="whs11"> </p>\r
\r
-<p class="whs9"> </p>\r
+<p class="whs11"> </p>\r
\r
-<p class="whs9"> </p>\r
+<p class="whs11"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>VTK 3D Viewer</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-top:0pt; margin-bottom:0pt; }\r
+p.whs2 { margin-top:0pt; margin-bottom:0pt; margin-left:48px; }\r
+img_whs3 { border:none; width:249px; height:29px; float:none; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:26px; height:25px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:27px; height:25px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:24px; height:23px; float:none; border-style:none; }\r
+img_whs8 { border:none; width:24px; height:24px; float:none; border-style:none; }\r
+img_whs9 { border:none; width:25px; height:24px; float:none; border-style:none; }\r
+img_whs10 { border:none; width:23px; height:23px; float:none; border-style:none; }\r
+img_whs11 { border:none; width:26px; height:26px; float:none; border-style:none; }\r
+img_whs12 { border:none; width:78px; height:147px; float:none; border-style:none; }\r
+img_whs13 { border:none; width:28px; height:25px; float:none; border-style:none; }\r
+img_whs14 { border:none; width:27px; height:27px; float:none; border-style:none; }\r
+p.whs15 { font-weight:bold; margin-left:80px; margin-top:0pt; margin-bottom:0pt; }\r
+img_whs16 { border:none; width:350px; height:453px; float:none; border-style:none; }\r
+p.whs17 { font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs18 { font-weight:bold; margin-left:36px; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs19 { font-weight:bold; margin-left:0px; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs20 { margin-left:0px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs15 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs17 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs18 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs19 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs20 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("MESH module\nViewing meshes\nVTK 3D Viewer");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("../smesh.htm");\r
+\r
+ autoSync(1);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ if (window.gbIE4)\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>VTK 3D Viewer</h1>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>VTK \r
+ 3D viewer</B></span> is the default viewer for Mesh Module, allowing to visualize \r
+ meshes. It is also used in Post-Pro module for all 3D presentations except \r
+ for Gauss Points.</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">The functionalities of \r
+ VTK viewer are available via its Viewer Toolbar. Buttons marked with small \r
+ downward triangles have extended functionality which can be accessed by \r
+ locking on them with left mouse button. </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"><img src="../pics/image107.gif" x-maintain-ratio="TRUE" width="249px" height="29px" border="0" class="img_whs3"></p>\r
+\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image77.gif" x-maintain-ratio="TRUE" width="26px" height="25px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Dump View</B></span> - exports \r
+ an object from the viewer in bmp, png, jpg or jpeg image format. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image78.gif" x-maintain-ratio="TRUE" width="27px" height="25px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Show/Hide Trihedron</B></span> \r
+ - shows or hides coordinate axes. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image96.gif" x-maintain-ratio="TRUE" width="24px" height="23px" border="0" class="img_whs7"> <span style="font-weight: bold;"><B>Fit \r
+ all - </B></span>allows to select a point to be the center of a scene representing \r
+ all displayed objects in the visible area.<span style="font-weight: bold;"> \r
+ <B></B></span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"> <img src="../pics/image97.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Fit area</B></span> - resizes \r
+ the view to place in the visible area only the contents of a frame drawn \r
+ with pressed left mouse button.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image98.gif" x-maintain-ratio="TRUE" width="25px" height="24px" border="0" class="img_whs9"> <span style="font-weight: bold;"><B>Zoom</B></span> - allows \r
+ to zoom in and out. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image99.gif" x-maintain-ratio="TRUE" width="23px" height="23px" border="0" class="img_whs10"> <span style="font-weight: bold;"><B>Panning</B></span> - if the \r
+ represented objects are greater that the visible area and you don't wish \r
+ to use <span style="font-weight: bold;"><B>Fit all</B></span> functionality, \r
+ click on this button and you'll be able to drag the scene to see its remote \r
+ parts. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image100.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Global panning</B></span> - \r
+ represents all displayed objects in the visible area. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image89.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Rotation</B></span> - allows \r
+ to rotate the selected object using the mouse. </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image102.gif" x-maintain-ratio="TRUE" width="78px" height="147px" border="0" class="img_whs12"> These buttons orientate the scene strictly about coordinate \r
+ axes.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image91.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Reset</B></span> - restores \r
+ the default position (isometric) of objects in the scene.</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"><img src="../pics/image108.gif" x-maintain-ratio="TRUE" width="28px" height="25px" border="0" class="img_whs13"> <span style="font-weight: bold;"><B>Scaling</B></span> - represents \r
+ objects deformed (stretched or stuffed) along the axes of coordinates</p></li>\r
+ \r
+ <li class=kadov-p><p class="whs1"> <span \r
+ style="font-weight: bold;\r
+ margin-top: 0pt;\r
+ margin-bottom: 0pt;"><B><img src="../pics/image109.gif" x-maintain-ratio="TRUE" width="27px" height="27px" border="0" class="img_whs14">Graduated axes - </B></span><span style="margin-top: 0pt;\r
+ margin-bottom: 0pt;\r
+ font-weight: normal;">allows \r
+ to define parameters of axes and graduate them.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs15"><img src="../pics/graduatedaxes1.png" x-maintain-ratio="TRUE" width="350px" height="453px" border="0" class="img_whs16"></p>\r
+\r
+<ul type="disc" class="whs4">\r
+ \r
+ <li class=kadov-p><p class="whs17">Axis name </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the axis name is displayed in \r
+ the viewer.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Name<span style="font-weight: normal;"> \r
+ - allows to redefine the name of the axis.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
+ - allows to define color and properties of the font of axis name. </span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs19">Labels<span style="font-weight: normal;"> \r
+ </span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the labels are displayed in the \r
+ viewer.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Number<span style="font-weight: normal;"> \r
+ - allows to define the number of labels.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Offset<span style="font-weight: normal;"> \r
+ - allows to define the distance between labels.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
+ - allows to define color and properties of the font of labels names.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs20">Tick marks </p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the tick marks are displayed in \r
+ the viewer.</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs18">Length<span style="font-weight: normal;"> \r
+ - allows to define the length of tick marks</span></p></li>\r
+ \r
+ <li class=kadov-p><p class="whs20">Is visible <span style="font-weight: normal;">if \r
+ checked the axis is displayed in the viewer.</span></p></li>\r
+</ul>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
<style type="text/css">\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; border-style:none; width:278px; height:231px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:278px; height:231px; float:none; border-style:none; }\r
+p.whs4 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs3 {margin-left:1pt; }";\r
+ strNSS += "p.whs4 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p> </p>\r
\r
-<p><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs2"> </p>\r
+<p class="whs2"><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs3"> </p>\r
\r
<p> </p>\r
\r
\r
<p> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Free \r
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark">Free \r
Borders quality control</a> operation. </p>\r
\r
<p> </p>\r
<p class="whs2"> </p>\r
\r
<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark4">Free \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark3">Free \r
Edges quality control</a> operation. </p>\r
\r
<p> </p>\r
\r
<p class="whs2"><img src="pics/create_group.png" x-maintain-ratio="TRUE" width="430px" height="391px" border="0" class="img_whs3"></p>\r
\r
-<h4><a name=bookmark5>Create a Group on Geometry</a></h4>\r
+<h3><a name=bookmark5>Create a Group on Geometry</a></h3>\r
\r
<p class="whs1">import salome</p>\r
\r
\r
<p class="whs1"> </p>\r
\r
+<p class="whs1">import SMESH</p>\r
+\r
<p class="whs1">import StdMeshers</p>\r
\r
<p class="whs1"> </p>\r
<p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer", \r
"SMESH")</p>\r
\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">smeshgui = salome.ImportComponentGUI("SMESH")</p>\r
-\r
-<p class="whs1">smeshgui.Init(salome.myStudyId);</p>\r
-\r
<p class="whs2"> </p>\r
\r
<p class="whs2"># create a box</p>\r
\r
<p class="whs2"># create a hypothesis</p>\r
\r
-<p class="whs1">print "-------------------------- \r
- create Hypothesis"</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print "-------------------------- \r
- NumberOfSegments"</p>\r
-\r
<p class="whs1">numberOfSegments \r
= 7</p>\r
\r
-<p class="whs1"> </p>\r
-\r
<p class="whs1">hypNbSeg = smesh.CreateHypothesis("NumberOfSegments", \r
"libStdMeshersEngine.so")</p>\r
\r
<p class="whs1">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>\r
\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print hypNbSeg.GetName()</p>\r
-\r
-<p class="whs1">print hypNbSeg.GetId()</p>\r
-\r
-<p class="whs1">print hypNbSeg.GetNumberOfSegments()</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypNbSeg), \r
- "NumberOfSegments_10")</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print "-------------------------- \r
- MaxElementArea"</p>\r
-\r
-<p class="whs1">maxElementArea = \r
- 800</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">hypArea = smesh.CreateHypothesis("MaxElementArea", \r
- "libStdMeshersEngine.so")</p>\r
-\r
-<p class="whs1">hypArea.SetMaxElementArea(maxElementArea)</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print hypArea.GetName()</p>\r
-\r
-<p class="whs1">print hypArea.GetId()</p>\r
-\r
-<p class="whs1">print hypArea.GetMaxElementArea()</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypArea), \r
- "MaxElementArea_500")</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print "-------------------------- \r
- MaxElementVolume"</p>\r
-\r
-<p class="whs1">maxElementVolume \r
- = 900</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">hypVolume = smesh.CreateHypothesis("MaxElementVolume", \r
- "libStdMeshersEngine.so")</p>\r
-\r
-<p class="whs1">hypVolume.SetMaxElementVolume(maxElementVolume)</p>\r
-\r
-<p class="whs2"> </p>\r
-\r
-<p class="whs1">print hypVolume.GetName()</p>\r
-\r
-<p class="whs1">print hypVolume.GetId()</p>\r
-\r
-<p class="whs1">print hypVolume.GetMaxElementVolume()</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypVolume), \r
- "MaxElementVolume_500")</p>\r
-\r
<p class="whs2"> </p>\r
\r
<p class="whs2"># create algorithms</p>\r
\r
-<p class="whs1">print "-------------------------- \r
- create Algorithms"</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print "-------------------------- \r
- Regular_1D"</p>\r
-\r
<p class="whs1">regular1D = smesh.CreateHypothesis("Regular_1D", \r
"libStdMeshersEngine.so")</p>\r
\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(regular1D), \r
- "Wire Discretisation")</p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">print "-------------------------- \r
- Quadrangle_2D"</p>\r
-\r
<p class="whs1">quad2D = smesh.CreateHypothesis("Quadrangle_2D", \r
"libStdMeshersEngine.so")</p>\r
\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(quad2D), \r
- "Quadrangle_2D")</p>\r
-\r
<p class="whs2"> </p>\r
\r
<p class="whs2"># initialize a mesh with \r
\r
<p class="whs1">mesh = smesh.CreateMesh(box)</p>\r
\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(mesh), \r
- "MeshBox")</p>\r
-\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"># add a hypothesis to the \r
- box</p>\r
-\r
-<p class="whs1">print "-------------------------- \r
- add hypothesis to the box"</p>\r
+<p class="whs2"># add hypotheses and algorithms \r
+ to the box</p>\r
\r
<p class="whs1">mesh.AddHypothesis(box,hypNbSeg)</p>\r
\r
-<p class="whs1">mesh.AddHypothesis(box,hypArea)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,hypVolume)</p>\r
-\r
<p class="whs1">mesh.AddHypothesis(box,regular1D)</p>\r
\r
<p class="whs1">mesh.AddHypothesis(box,quad2D)</p>\r
\r
<p class="whs2"># compute the mesh</p>\r
\r
-<p class="whs1">print "-------------------------- \r
- compute the mesh of the box"</p>\r
-\r
<p class="whs1">ret = smesh.Compute(mesh,box)</p>\r
\r
-<p class="whs1">print ret</p>\r
-\r
<p class="whs1">if ret == 0:</p>\r
\r
<p class="whs1"> print \r
"probleme when computing the mesh"</p>\r
\r
+<p class="whs1">else:</p>\r
+\r
+<p class="whs1"> print \r
+ "Computation succeded"</p>\r
+\r
<p class="whs2"> </p>\r
\r
<p class="whs2"># create geometry groups \r
- on the plane:</p>\r
+ on the face</p>\r
\r
-<p class="whs1">aGeomGroup1 = geompy.CreateGroup(face \r
- , geompy.ShapeType["FACE"])</p>\r
+<p class="whs1">aGeomGroup1 = geompy.CreateGroup(face, \r
+ geompy.ShapeType["FACE"])</p>\r
\r
<p class="whs1">geompy.AddObject(aGeomGroup1, \r
1)</p>\r
\r
<p class="whs1"> </p>\r
\r
-<p class="whs1">aGeomGroup2 = geompy.CreateGroup(face \r
- , geompy.ShapeType["EDGE"])</p>\r
-\r
-<p class="whs1"> </p>\r
+<p class="whs1">aGeomGroup2 = geompy.CreateGroup(face, \r
+ geompy.ShapeType["EDGE"])</p>\r
\r
<p class="whs1">geompy.AddObject(aGeomGroup2, \r
3)</p>\r
<p class="whs1">geompy.addToStudy(aGeomGroup2, \r
"Group on Edges")</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"># create SMESH groups</p>\r
\r
<p class="whs1">aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE, \r
- "SMESHGroup1", aGeomGroup1)</p>\r
+ "SMESHGroup1",</p>\r
+\r
+<p class="whs1">aGeomGroup1)</p>\r
\r
<p class="whs1">aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE, \r
"SMESHGroup2", aGeomGroup2)</p>\r
<p class="whs1"> </p>\r
\r
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
+ </p>\r
\r
<p class="whs2"> </p>\r
\r
<style type="text/css">\r
<!--\r
img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; width:355px; height:329px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:165px; height:239px; float:none; border-style:none; }\r
+p.whs4 { margin-left:0px; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
{\r
var strNSS = "<style type='text/css'>";\r
- strNSS += "p.whs3 {margin-left:1pt; }";\r
+ strNSS += "p.whs4 {margin-left:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p> </p>\r
\r
-<p><img src="pics/length1.png" x-maintain-ratio="TRUE" width="355px" height="329px" border="0" class="img_whs2"></p>\r
+<p class="whs2"><img src="pics/length-crit.png" x-maintain-ratio="TRUE" width="165px" height="239px" border="0" class="img_whs3"></p>\r
\r
<p> </p>\r
\r
-<p class="whs3"> </p>\r
+<p class="whs4"> </p>\r
\r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark4"> Length \r
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark2"> Length \r
quality control</a> operation. </p>\r
\r
<p>.</p>\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Merge Elements</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }\r
+img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging Elements");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("smesh.htm");\r
+\r
+ autoSync(1);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ if (window.gbIE4)\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Merging Elements</h1>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows to merge coincident elements \r
+ of a mesh selectable in the dialog box. </p>\r
+\r
+<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>\r
+\r
+<p>In this picture you see a triangle which coincides with one of the elements \r
+ of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span> \r
+ functionality, the triangle will be completely merged with the mesh. </p>\r
+\r
+<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>\r
+\r
+<p> <span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge \r
+ Elements</a> operation. </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
<!--\r
p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-h4.whs3 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs4 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
-p.whs5 { margin-top:0.5pt; margin-bottom:0pt; }\r
-p.whs6 { font-family:'Lucida Console' , monospace; }\r
-p.whs7 { font-family:'Times New Roman' , serif; }\r
+p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
+h4.whs4 { margin-top:0pt; margin-bottom:0pt; }\r
+p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
+p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }\r
+p.whs7 { font-family:'Lucida Console' , monospace; }\r
+p.whs8 { font-family:'Times New Roman' , serif; }\r
+p.whs9 { margin-left:40px; font-family:'Lucida Console' , monospace; }\r
-->\r
</style><script type="text/javascript" language="JavaScript">\r
<!--\r
var strNSS = "<style type='text/css'>";\r
strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "h4.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
+ strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
strNSS +="</style>";\r
document.write(strNSS);\r
}\r
\r
<p class="whs2"> </p>\r
\r
+<h4>Add Polygon</h4>\r
+\r
+<p class="whs1">import salome</p>\r
+\r
+<p class="whs1">import geompy</p>\r
+\r
+<p class="whs1">import math</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">import StdMeshers</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># GEOM module </p>\r
+\r
+<p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, \r
+ 77)</p>\r
+\r
+<p class="whs1">geompy.addToStudy(shape_mesh, \r
+ "cylinder")</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># SMESH module</p>\r
+\r
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer", \r
+ "SMESH")</p>\r
+\r
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>\r
+\r
+<p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>\r
+\r
+<p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># a method to build a polygonal \r
+ mesh element with nb_vert angles:</p>\r
+\r
+<p class="whs1">def MakePolygon \r
+ (a_mesh, x0, y0, z0, radius, nb_vert):</p>\r
+\r
+<p class="whs1"> node_start_id \r
+ = a_mesh.NbNodes() + 1</p>\r
+\r
+<p class="whs1"> al \r
+ = 2.0 * math.pi / nb_vert</p>\r
+\r
+<p class="whs1"> node_ids \r
+ = []</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"># Create nodes for a polyhedron</p>\r
+\r
+<p class="whs1"> for \r
+ ii in range(nb_vert):</p>\r
+\r
+<p class="whs1"> MeshEditor.AddNode(x0 \r
+ + radius * math.cos(ii*al),</p>\r
+\r
+<p class="whs1"> y0 \r
+ + radius * math.sin(ii*al),</p>\r
+\r
+<p class="whs1"> z0)</p>\r
+\r
+<p class="whs1"> node_ids.append(node_start_id \r
+ + ii)</p>\r
+\r
+<p class="whs1"> pass</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs2"># Create a polygon</p>\r
+\r
+<p class="whs1"> MeshEditor.AddPolygonalFace(node_ids)</p>\r
+\r
+<p class="whs1"> return \r
+ 0</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># Create three polygons</p>\r
+\r
+<p class="whs1">MakePolygon(mesh, \r
+ 0, 0, 0, \r
+ 30, 13)</p>\r
+\r
+<p class="whs1">MakePolygon(mesh, \r
+ 0, 0, 10, 21, 9)</p>\r
+\r
+<p class="whs1">MakePolygon(mesh, \r
+ 0, 0, 20, 13, 6)</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">salome.sg.updateObjBrowser(1) \r
+ </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<h4>Add polyhedron</h4>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
+ salome</span></p>\r
+\r
+<p class="whs1">import geompy</p>\r
+\r
+<p class="whs1">import math</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">#import SMESH</p>\r
+\r
+<p class="whs1">import StdMeshers</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs3"># GEOM</p>\r
+\r
+<p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, \r
+ 77)</p>\r
+\r
+<p class="whs1">geompy.addToStudy(shape_mesh, \r
+ "cylinder")</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs3"># SMESH</p>\r
+\r
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer", \r
+ "SMESH")</p>\r
+\r
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>\r
+\r
+<p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>\r
+\r
+<p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs3"># Now we are going \r
+ to create a 12-hedron:</p>\r
+\r
+<p class="whs3"> </p>\r
+\r
+<p class="whs3"># Create nodes for \r
+ polyhedron</p>\r
+\r
+<p class="whs1">al = 2 * math.pi \r
+ / 5.0</p>\r
+\r
+<p class="whs1">cosal = math.cos(al)</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">aa = 13</p>\r
+\r
+<p class="whs1">rr = aa / (2.0 * \r
+ math.sin(al/2.0))</p>\r
+\r
+<p class="whs1">dr = 2.0 * rr * \r
+ cosal</p>\r
+\r
+<p class="whs1">r1 = rr + dr</p>\r
+\r
+<p class="whs1">dh = rr * math.sqrt(2.0 \r
+ * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>\r
+\r
+<p class="whs1">hh = 2.0 * dh - \r
+ dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">for i in range(5):</p>\r
+\r
+<p class="whs1"> MeshEditor.AddNode(rr*math.cos(i*al), \r
+ rr*math.sin(i*al), 0) \r
+ <span style="font-family: 'Times New Roman', serif;"># 1,3,5,7, 9 # bottom</span></p>\r
+\r
+<p class="whs1"> MeshEditor.AddNode(r1*math.cos(i*al), \r
+ r1*math.sin(i*al), dh) <span style="font-family: 'Times New Roman', serif;"># \r
+ 2,4,6,8,10 # above bottom</span></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">for i in range(5):</p>\r
+\r
+<p class="whs1"> MeshEditor.AddNode(rr*math.cos(i*al \r
+ + al/2.0),</p>\r
+\r
+<p class="whs1"> rr*math.sin(i*al \r
+ + al/2.0), hh) # 11,13,15,17,19 <span style="font-family: 'Times New Roman', serif;"># \r
+ top</span></p>\r
+\r
+<p class="whs1"> MeshEditor.AddNode(r1*math.cos(i*al \r
+ + al/2.0),</p>\r
+\r
+<p class="whs1"> r1*math.sin(i*al \r
+ + al/2.0), hh - dh) # 12,14,16,18,20 <span style="font-family: 'Times New Roman', serif;"># \r
+ below top</span></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs3"># Create a polyhedral \r
+ volume</p>\r
+\r
+<p class="whs1">MeshEditor.AddPolyhedralVolume([ \r
+ 1, 3, 5, \r
+ 7, 9, \r
+ <span style="font-family: 'Times New Roman', serif;"># \r
+ bottom</span></p>\r
+\r
+<p class="whs1"> 1, \r
+ 2, 12, \r
+ 4, 3, \r
+ <span style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1"> 3, \r
+ 4, 14, \r
+ 6, 5, \r
+ <span style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1"> 5, \r
+ 6, 16, \r
+ 8, 7, \r
+ <span style="font-family: 'Times New Roman', serif;"># \r
+ . above bottom</span></p>\r
+\r
+<p class="whs1"> 7, \r
+ 8, 18, \r
+ 10, 9, \r
+ <span style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1"> 9, \r
+ 10, 20, 2, \r
+ 1, <span \r
+ style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1"> 11, \r
+ 12, 4, \r
+ 14, 13, <span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1"> 13, \r
+ 14, 6, \r
+ 16, 15, <span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1"> 15, \r
+ 16, 8, \r
+ 18, 17, <span style="font-family: 'Times New Roman', serif;"># \r
+ - below top</span></p>\r
+\r
+<p class="whs1"> 17, \r
+ 18, 10, 20, 19, <span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1"> 19, \r
+ 20, 2, \r
+ 12, 11, <span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1"> 11, \r
+ 13, 15, 17, 19], <span style="font-family: 'Times New Roman', serif;"># \r
+ top</span></p>\r
+\r
+<p class="whs1"> [5,5,5,5,5,5,5,5,5,5,5,5])</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">salome.sg.updateObjBrowser(1) \r
+ </p>\r
+\r
+<p class="whs1"> </p>\r
+\r
<h3><a name=bookmark1>Removing Nodes and Elements</a></h3>\r
\r
-<h4 class="whs3">Removing Nodes</h4>\r
+<h4 class="whs4">Removing Nodes</h4>\r
\r
<p class="whs2"> </p>\r
\r
\r
<h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>\r
\r
-<p class="whs4">import SMESH</p>\r
+<p class="whs5">import SMESH</p>\r
\r
-<p class="whs4">import SMESH_mechanic</p>\r
+<p class="whs5">import SMESH_mechanic</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs4">mesh = \r
+<p class="whs5">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
-<p class="whs4">salome = SMESH_mechanic.salome</p>\r
+<p class="whs5">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs4">anEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs5">anEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs4">anEditor.RenumberNodes()</p>\r
+<p class="whs5">anEditor.RenumberNodes()</p>\r
\r
-<p class="whs4"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs5"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\r
-<p class="whs5"> </p>\r
+<p class="whs6"> </p>\r
\r
<p> </p>\r
\r
\r
<h3><a name=bookmark5>Uniting two Triangles</a></h3>\r
\r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
\r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">smesh = \r
+<p class="whs7">smesh = \r
SMESH_mechanic.smesh</p>\r
\r
-<p class="whs6">mesh = \r
+<p class="whs7">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
<p># delete diagonal</p>\r
\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs6">aMeshEditor.DeleteDiag(700, \r
+<p class="whs7">aMeshEditor.DeleteDiag(700, \r
642)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\r
<h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>\r
\r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
\r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">smesh = \r
+<p class="whs7">smesh = \r
SMESH_mechanic.smesh</p>\r
\r
-<p class="whs6">mesh = \r
+<p class="whs7">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
<p># unite a set of triangles</p>\r
\r
-<p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
+<p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>\r
\r
-<p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
+<p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs6">aMeshEditor.TriToQuad([1145, \r
+<p class="whs7">aMeshEditor.TriToQuad([1145, \r
1147, 1159, 1135], aFunctor, 60)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
+\r
+<h3><a name=bookmark12>Orientation</a></h3>\r
+\r
+<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">import \r
+ salome</span></p>\r
+\r
+<p class="whs7">import geompy</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">import StdMeshers</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs8"># GEOM module</p>\r
+\r
+<p class="whs7">shape_mesh = geompy.MakeCylinderRH(13, \r
+ 77)</p>\r
+\r
+<p class="whs7">geompy.addToStudy(shape_mesh, \r
+ "cylinder")</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs8"># SMESH module</p>\r
+\r
+<p class="whs7">smesh = salome.lcc.FindOrLoadComponent("FactoryServer", \r
+ "SMESH")</p>\r
+\r
+<p class="whs7">smesh.SetCurrentStudy(salome.myStudy)</p>\r
+\r
+<p class="whs7">mesh = smesh.CreateMesh(shape_mesh)</p>\r
+\r
+<p class="whs7">MeshEditor = mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs8"># build five quadrangles:</p>\r
+\r
+<p class="whs7">node_start_id = mesh.NbNodes() \r
+ + 1</p>\r
+\r
+<p class="whs7">dx = 10</p>\r
+\r
+<p class="whs7">dy = 20</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(0.0 \r
+ * dx, 0, 0) # 1</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(1.0 \r
+ * dx, 0, 0) # 2</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(2.0 \r
+ * dx, 0, 0) # 3</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(3.0 \r
+ * dx, 0, 0) # 4</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(4.0 \r
+ * dx, 0, 0) # 5</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(5.0 \r
+ * dx, 0, 0) # 6</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(0.0 \r
+ * dx, dy, 0) # 7</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(1.0 \r
+ * dx, dy, 0) # 8</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(2.0 \r
+ * dx, dy, 0) # 9</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(3.0 \r
+ * dx, dy, 0) # 10</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(4.0 \r
+ * dx, dy, 0) # 11</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(5.0 \r
+ * dx, dy, 0) # 12</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([1, \r
+ 2, 8, 7])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([2, \r
+ 3, 9, 8])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([3, \r
+ 4, 10, 9])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([4, \r
+ 5, 11, 10])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([5, \r
+ 6, 12, 11])</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs8"># Change orientation \r
+ of the second and the fourth faces.</p>\r
+\r
+<p class="whs7">MeshEditor.Reorient([2, \r
+ 4])</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
+ </p>\r
+\r
+<p class="whs7"> </p>\r
\r
<h3><a name=bookmark7>Cutting Quadrangles</a></h3>\r
\r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
\r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">smesh = \r
+<p class="whs7">smesh = \r
SMESH_mechanic.smesh</p>\r
\r
-<p class="whs6">mesh = \r
+<p class="whs7">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs7"># unite a set of triangles</p>\r
+<p class="whs8"># unite a set of triangles</p>\r
\r
-<p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
+<p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>\r
\r
-<p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
+<p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs6">aMeshEditor.QuadToTri([405, \r
+<p class="whs7">aMeshEditor.QuadToTri([405, \r
406], aFunctor)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs8"> </p>\r
\r
<h3><a name=bookmark8>Smoothing</a></h3>\r
\r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
\r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">smesh = \r
+<p class="whs7">smesh = \r
SMESH_mechanic.smesh</p>\r
\r
-<p class="whs6">mesh = \r
+<p class="whs7">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs7"># smooth</p>\r
+<p class="whs8"># smooth</p>\r
\r
-<p class="whs6">FacesSmooth = [911, \r
+<p class="whs7">FacesSmooth = [911, \r
931, 950, 864, 932]</p>\r
\r
-<p class="whs6">GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group \r
+<p class="whs7">GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group \r
of faces (smooth)")</p>\r
\r
-<p class="whs6">GroupSmooth.Add(FacesSmooth)</p>\r
+<p class="whs7">GroupSmooth.Add(FacesSmooth)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs6">aMeshEditor.SmoothObject(GroupSmooth, \r
+<p class="whs7">aMeshEditor.SmoothObject(GroupSmooth, \r
[], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
<h3><a name=bookmark9>Extrusion</a></h3>\r
\r
-<p class="whs7">import SMESH</p>\r
+<p class="whs8">import SMESH</p>\r
\r
-<p class="whs7">import SMESH_mechanic</p>\r
+<p class="whs8">import SMESH_mechanic</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs8"> </p>\r
\r
-<p class="whs7">smesh = \r
+<p class="whs8">smesh = \r
SMESH_mechanic.smesh</p>\r
\r
-<p class="whs7">mesh = \r
+<p class="whs8">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
-<p class="whs7">salome = SMESH_mechanic.salome</p>\r
+<p class="whs8">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs7"># extrusion of the group</p>\r
+<p class="whs8"># extrusion of the group</p>\r
\r
-<p class="whs7">point = SMESH.PointStruct(0, \r
+<p class="whs8">point = SMESH.PointStruct(0, \r
0, 5)</p>\r
\r
-<p class="whs7">vector = SMESH.DirStruct(point)</p>\r
+<p class="whs8">vector = SMESH.DirStruct(point)</p>\r
\r
-<p class="whs7">FacesTriToQuad = [2381, \r
+<p class="whs8">FacesTriToQuad = [2381, \r
2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, \r
2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, \r
2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, \r
2418, 2419, 2420, 2421, 2422]</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs8"> </p>\r
\r
-<p class="whs7">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group \r
+<p class="whs8">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group \r
of faces (quad)")</p>\r
\r
-<p class="whs7">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
+<p class="whs8">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs8"> </p>\r
\r
-<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs8">aMeshEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs7">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
+<p class="whs8">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
vector, 5)</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs8"> </p>\r
\r
-<p class="whs7">salome.sg.updateObjBrowser(1) \r
+<p class="whs8">salome.sg.updateObjBrowser(1) \r
</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs8"> </p>\r
\r
<h3><a name=bookmark10>Extrusion along a Path</a></h3>\r
\r
-<p class="whs6">import geompy</p>\r
+<p class="whs7">import geompy</p>\r
\r
-<p class="whs6">import smesh</p>\r
+<p class="whs7">import smesh</p>\r
\r
-<p class="whs6">import salome</p>\r
+<p class="whs7">import salome</p>\r
\r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create a 2D mesh on \r
- a face</p>\r
+<p class="whs8"># create a face to be \r
+ meshed</p>\r
\r
-<p class="whs7"># create vertices</p>\r
+<p class="whs7">px = geompy.MakeVertex(100., \r
+ 0. , 0. \r
+ )</p>\r
\r
-<p class="whs6">px = \r
- geompy.MakeVertex(100., 0. , \r
+<p class="whs7">py = geompy.MakeVertex(0. \r
+ , 100., \r
0. )</p>\r
\r
-<p class="whs6">py = \r
- geompy.MakeVertex(0. , \r
- 100., 0. )</p>\r
+<p class="whs7">pz = geompy.MakeVertex(0. \r
+ , 0. , \r
+ 100.)</p>\r
\r
-<p class="whs6">pz = \r
- geompy.MakeVertex(0. , \r
- 0. , 100.)</p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
+\r
+<p class="whs7">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
\r
-<p class="whs7"># create a vector from \r
- two points</p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">vxy = geompy.MakeVector(px, \r
- py)</p>\r
+<p class="whs7">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
+\r
+<p class="whs7">isPlanarFace = 1</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create an arc from \r
- three points</p>\r
+<p class="whs7">face1 = geompy.MakeFace(wire, \r
+ isPlanarFace)</p>\r
\r
-<p class="whs6">arc = geompy.MakeArc(py, \r
- pz, px)</p>\r
+<p class="whs7">id_face1 = geompy.addToStudy(face1, \r
+ "Face1")</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create a wire</p>\r
+<p class="whs8"># create a 2D mesh on \r
+ the face</p>\r
\r
-<p class="whs6">wire = geompy.MakeWire([vxy, \r
- arc])</p>\r
+<p class="whs7">trias = smesh.Mesh(face1, \r
+ "Face : 2D mesh")</p>\r
+\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs7">algo = trias.Segment()</p>\r
\r
-<p class="whs6">isPlanarFace = 1</p>\r
+<p class="whs7">algo.NumberOfSegments(6)</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create a face from \r
- the wire</p>\r
+<p class="whs7">algo = trias.Triangle()</p>\r
\r
-<p class="whs6">face1 = geompy.MakeFace(wire, \r
- isPlanarFace)</p>\r
+<p class="whs7">algo.LengthFromEdges()</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># add objects in the \r
- study</p>\r
+<p class="whs7">trias.Compute()</p>\r
+\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">id_face1 = geompy.addToStudy(face1,"Face1")</p>\r
+<p class="whs8"># create a path mesh</p>\r
+\r
+<p class="whs7">px1 = geompy.MakeVertex(100., \r
+ 100. , \r
+ 0. )</p>\r
+\r
+<p class="whs7">py1 = geompy.MakeVertex(-100. \r
+ , -100., \r
+ 0. )</p>\r
+\r
+<p class="whs7">pz1 = geompy.MakeVertex(0. \r
+ , 0. , \r
+ 50.)</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create hexahedrical \r
- mesh</p>\r
+<p class="whs7">circle = geompy.MakeCircleThreePnt(py1, \r
+ pz1, px1)</p>\r
+\r
+<p class="whs7">id_circle = geompy.addToStudy(circle, \r
+ "Path")</p>\r
\r
-<p class="whs6">hexa = smesh.Mesh(face1, \r
- "Face compound : hexahedrical mesh")</p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">algo = hexa.Triangle()</p>\r
+<p class="whs7">circlemesh = smesh.Mesh(circle, \r
+ "Path mesh")</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># define "MaxElementArea" \r
- hypothesis to be applied to each triangle</p>\r
+<p class="whs7">algo = circlemesh.Segment()</p>\r
+\r
+<p class="whs7">algo.NumberOfSegments(10)</p>\r
+\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">algo.MaxElementArea(30)</p>\r
+<p class="whs7">circlemesh.Compute()</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create a quadrangle \r
- 2D algorithm for faces</p>\r
+<p class="whs8"># extrusion of the mesh</p>\r
\r
-<p class="whs6">hexa.Quadrangle()</p>\r
+<p class="whs8"># The mesh "trias" \r
+ will be extruded along another mesh, which is a sub-mesh of "circlemesh",</p>\r
+\r
+<p class="whs8"><span style="font-family: 'Times New Roman', serif;"># \r
+ corresponding to geometry "circle". In this particular case \r
+ the path mesh will be the whole "circlemesh"</span></p>\r
+\r
+<p class="whs8"> </p>\r
+\r
+<p class="whs7">aMeshEditor = trias.GetMesh().GetMeshEditor()</p>\r
+\r
+<p class="whs7">aMeshEditor.ExtrusionAlongPathObject(trias.GetMesh(), \r
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create a local hypothesis</p>\r
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
\r
-<p class="whs6">algo = hexa.Segment(wire)</p>\r
+<h3><a name=bookmark11>Revolution</a></h3>\r
+\r
+<p class="whs7">import SMESH</p>\r
+\r
+<p class="whs7">import SMESH_mechanic</p>\r
+\r
+<p class="whs7">import math</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># define "NumberOfSegments" \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
+<p class="whs7">smesh = \r
+ SMESH_mechanic.smesh</p>\r
+\r
+<p class="whs7">mesh = \r
+ SMESH_mechanic.mesh</p>\r
+\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
\r
-<p class="whs6">algo.NumberOfSegments(6)</p>\r
+<p class="whs8"> </p>\r
+\r
+<p class="whs8"># rotate a sweep object</p>\r
+\r
+<p class="whs7">FacesRotate = [492, \r
+ 493, 502, 503]</p>\r
+\r
+<p class="whs7">GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group \r
+ of faces (rotate)")</p>\r
+\r
+<p class="whs7">GroupRotate.Add(FacesRotate)</p>\r
+\r
+<p class="whs7">angle45 = 45*math.pi/180</p>\r
+\r
+<p class="whs7">axisXYZ = SMESH.AxisStruct(-38.3128, \r
+ -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># compute the mesh</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
\r
-<p class="whs6">hexa.Compute()</p>\r
+<p class="whs7">aMeshEditor.RotationSweepObject(GroupRotate, \r
+ axisXYZ, angle45, 4, 1e-5)</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create path mesh and \r
- path shape</p>\r
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
\r
-<p class="whs7"># create a circle from \r
- three points</p>\r
+<p class="whs8"> </p>\r
\r
-<p class="whs6">px1 = \r
- geompy.MakeVertex(100., 100. , \r
- 0. )</p>\r
+<h3><a name=bookmark13>Pattern Mapping</a></h3>\r
\r
-<p class="whs6">py1 = \r
- geompy.MakeVertex(-100. , \r
- -100., 0. )</p>\r
+<p class="whs7">import salome</p>\r
\r
-<p class="whs6">pz1 = \r
- geompy.MakeVertex(0. , \r
- 0. , 50.)</p>\r
+<p class="whs7">import geompy</p>\r
\r
-<p class="whs6">circle = geompy.MakeCircleThreePnt(py1, \r
- pz1, px1)</p>\r
+<p class="whs7">import SMESH, smesh</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># add objects in the \r
- study</p>\r
+<p class="whs7">geompy.init_geom(salome.myStudy)</p>\r
\r
-<p class="whs6">id_circle = geompy.addToStudy(circle,"Path")</p>\r
+<p class="whs7">smesh.smesh.SetCurrentStudy(salome.myStudy)</p>\r
\r
-<p class="whs6">circlemesh = smesh.Mesh(circle, \r
- "Path mesh")</p>\r
+<p class="whs7"> </p>\r
+\r
+<p class="whs8"># define geometry</p>\r
+\r
+<p class="whs7">Box_1 = geompy.MakeBoxDXDYDZ(200, \r
+ 200, 200)</p>\r
+\r
+<p class="whs7">geompy.addToStudy(Box_1, \r
+ "Box_1")</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># create a local hypothesis</p>\r
+<p class="whs7">faces = geompy.SubShapeAll(Box_1, \r
+ geompy.ShapeType["FACE"])</p>\r
+\r
+<p class="whs7">Face_1 = faces[0]</p>\r
\r
-<p class="whs6">algo = circlemesh.Segment()</p>\r
+<p class="whs7">Face_2 = faces[1]</p>\r
\r
-<p class="whs7"># define "NumberOfSegments" \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
+<p class="whs7">geompy.addToStudyInFather(Box_1, \r
+ Face_1, "Face_1")</p>\r
\r
-<p class="whs6">algo.NumberOfSegments(10)</p>\r
+<p class="whs7">geompy.addToStudyInFather(Box_1, \r
+ Face_2, "Face_2")</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># compute the mesh</p>\r
+<p class="whs8"># build quadrangle mesh \r
+ 3x3 on Face_1</p>\r
\r
-<p class="whs6">circlemesh.Compute()</p>\r
+<p class="whs7">Mesh_1 = smesh.Mesh(Face_1)</p>\r
\r
-<p class="whs7"> </p>\r
+<p class="whs7">Wire_discretisation \r
+ = Mesh_1.Segment()</p>\r
\r
-<p class="whs7"># extrusion of the mesh</p>\r
+<p class="whs7">Wire_discretisation.NumberOfSegments(3)</p>\r
\r
-<p class="whs6">aMeshEditor = hexa.GetMesh().GetMeshEditor()</p>\r
+<p class="whs7">Mesh_1.Quadrangle()</p>\r
\r
-<p class="whs6">aMeshEditor.ExtrusionAlongPathObject(hexa.GetMesh(), \r
- circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7">isDone = Mesh_1.Compute()</p>\r
\r
-<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
+<p class="whs7">if not isDone: print \r
+ 'Mesh Mesh_1 : computation failed'</p>\r
\r
<p class="whs7"> </p>\r
\r
-<h3><a name=bookmark11>Revolution</a></h3>\r
+<p class="whs8"># pattern the mesh</p>\r
\r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">Mesh_2 = smesh.Mesh(Face_2)</p>\r
\r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">Nb_Segments_1 = smesh.smesh.CreateHypothesis('NumberOfSegments', \r
+ 'libStdMeshersEngine.so')</p>\r
\r
-<p class="whs6">import math</p>\r
+<p class="whs7">Nb_Segments_1.SetNumberOfSegments(1)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, \r
+ Nb_Segments_1)</p>\r
\r
-<p class="whs6">smesh = \r
- SMESH_mechanic.smesh</p>\r
+<p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, \r
+ Wire_discretisation.GetAlgorithm())</p>\r
\r
-<p class="whs6">mesh = \r
- SMESH_mechanic.mesh</p>\r
+<p class="whs7">Triangle_Mefisto = \r
+ Mesh_2.Triangle()</p>\r
\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">Max_Element_Area = \r
+ Triangle_Mefisto.MaxElementArea(240)</p>\r
\r
<p class="whs7"> </p>\r
\r
-<p class="whs7"># rotate a sweep object</p>\r
+<p class="whs7">isDone = Mesh_2.Compute()</p>\r
\r
-<p class="whs6">FacesRotate = [492, \r
- 493, 502, 503]</p>\r
+<p class="whs7">if not isDone: print \r
+ 'Mesh Mesh_2 : computation failed'</p>\r
\r
-<p class="whs6">GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group \r
- of faces (rotate)")</p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6">GroupRotate.Add(FacesRotate)</p>\r
+<p class="whs8"># create a pattern</p>\r
\r
-<p class="whs6">angle45 = 45*math.pi/180</p>\r
+<p class="whs7">pattern = smesh.smesh.GetPattern()</p>\r
\r
-<p class="whs6">axisXYZ = SMESH.AxisStruct(-38.3128, \r
- -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
+<p class="whs7">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), \r
+ Face_2, 0)</p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs7">if (isDone != 1):</p>\r
\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs9">print \r
+ 'LoadFromFace :', pattern.GetErrorCode()</p>\r
\r
-<p class="whs6">aMeshEditor.RotationSweepObject(GroupRotate, \r
- axisXYZ, angle45, 4, 1e-5)</p>\r
+<p class="whs7"> </p>\r
\r
-<p class="whs6"> </p>\r
+<p class="whs8"># apply the pattern to \r
+ a face of the first mesh</p>\r
+\r
+<p class="whs7">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), \r
+ [17], 0, 0)</p>\r
+\r
+<p class="whs7">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), \r
+ 0, 0)</p>\r
+\r
+<p class="whs7">if (isDone != 1):</p>\r
+\r
+<p class="whs9">print \r
+ 'MakeMesh :', pattern.GetErrorCode()</p>\r
+\r
+<p class="whs7"> </p>\r
\r
-<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
p.whs2 { margin-left:40px; }\r
img_whs3 { border:none; width:626px; height:471px; border-style:none; }\r
img_whs4 { border:none; width:22px; height:28px; border-style:none; }\r
-table.whs5 { x-cell-content-align:top; border-spacing:0px; width:64.066%; }\r
+table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; }\r
col.whs6 { width:56.089%; }\r
col.whs7 { width:43.911%; }\r
tr.whs8 { x-cell-content-align:top; }\r
td.whs9 { width:56.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
p.whs10 { margin-right:0px; }\r
-img_whs11 { border:none; border-style:none; width:306px; height:632px; float:none; }\r
+img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; }\r
td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs13 { border:none; border-style:none; width:306px; height:670px; float:none; }\r
+img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; }\r
img_whs14 { border:none; width:34px; height:34px; border-style:none; }\r
-table.whs15 { x-cell-content-align:top; border-spacing:0px; width:68.686%; }\r
+table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; }\r
col.whs16 { width:50.224%; }\r
col.whs17 { width:49.776%; }\r
-td.whs18 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs19 { border:none; border-style:none; width:306px; height:428px; float:none; }\r
-td.whs20 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs21 { border:none; border-style:none; width:306px; height:248px; float:none; }\r
+td.whs18 { width:50.224%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs19 { border:none; width:306px; height:428px; float:none; border-style:none; }\r
+td.whs20 { width:49.776%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs21 { border:none; width:306px; height:248px; float:none; border-style:none; }\r
p.whs22 { margin-left:0px; }\r
img_whs23 { border:none; width:554px; height:279px; border-style:none; }\r
img_whs24 { border:none; width:572px; height:233px; border-style:none; }\r
by mesher, the user can select the way of getting nodes coordinates, else \r
all nodes are projected on a face surface.</p>\r
\r
-<table x-use-null-cells width="68.686%" cellspacing="0" class="whs15">\r
+<table x-use-null-cells cellspacing="0" width="68.686%" class="whs15">\r
<col class="whs16">\r
<col class="whs17">\r
\r
\r
<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></p>\r
\r
+<p class="whs2"> </p>\r
+\r
+<p> <span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="modifying_meshes.htm#bookmark13">Pattern \r
+ Mapping</a><a href="modifying_meshes.htm#bookmark11"> </a>operation. </p>\r
+\r
+<p> </p>\r
+\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
if (window.writeIntopicBar)\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; height:274px; width:260px; border-style:none; }\r
-p.whs2 { font-weight:bold; }\r
-img_whs3 { border:none; height:285px; width:261px; border-style:none; }\r
-img_whs4 { border:none; width:263px; height:277px; border-style:none; }\r
-p.whs5 { font-weight:normal; }\r
-img_whs6 { border:none; height:287px; width:259px; border-style:none; }\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; height:274px; width:260px; border-style:none; }\r
+p.whs3 { font-weight:bold; margin-left:40px; }\r
+img_whs4 { border:none; height:285px; width:261px; border-style:none; }\r
+p.whs5 { font-weight:bold; }\r
+img_whs6 { border:none; width:263px; height:277px; border-style:none; }\r
+p.whs7 { font-weight:normal; }\r
+img_whs8 { border:none; height:287px; width:259px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
\r
<p> </p>\r
\r
-<p><span style="font-weight: bold;"><B>Wireframe, </B></span></p>\r
+<p class="whs1"><span style="font-weight: bold;"><B>Wireframe \r
+ </B></span></p>\r
\r
-<p><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs1"></p>\r
+<p class="whs1"><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs2"></p>\r
\r
<p> </p>\r
\r
-<p><span style="font-weight: bold;"><B>Shading</B></span></p>\r
+<p class="whs1"><span style="font-weight: bold;"><B>Shading</B></span></p>\r
\r
-<p class="whs2"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs4"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2"><span style="font-weight: normal;">or </span>Nodes.</p>\r
+<p class="whs3"><span style="font-weight: normal;">or \r
+ </span>Nodes.</p>\r
\r
-<p class="whs2"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs4"></p>\r
+<p class="whs3"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs6"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2">Wireframe <span style="font-weight: normal;">can \r
+<p class="whs5">Wireframe <span style="font-weight: normal;">can \r
combine with</span> Nodes<span style="font-weight: normal;"> and</span> \r
Shading.</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
-<p class="whs2">Shading<span style="font-weight: normal;"> \r
+<p class="whs5">Shading<span style="font-weight: normal;"> \r
and</span> Wireframe<span style="font-weight: normal;"> modes can combine \r
with</span> Shrink, <span style="font-weight: normal;">however</span> \r
Nodes <span style="font-weight: normal;">can't.</span></p>\r
\r
-<p class="whs5"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs6"></p>\r
+<p class="whs7"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs8"></p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs5"> </p>\r
\r
<script type="text/javascript" language="javascript1.2">\r
<!--\r
\r
<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs1"> </p>\r
\r
<p class="whs2"># Criterion : AREA > \r
30</p>\r
\r
-<p class="whs2"> </p>\r
-\r
<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>\r
\r
<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
aFunctor )</p>\r
\r
<p class="whs1">aPredicate.SetMargin( \r
- 30 )</p>\r
+ 95 )</p>\r
\r
<p class="whs1"> </p>\r
\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"># Criterion : FREE EDGES</p>\r
+<p class="whs2"># Criterion : Free Edges</p>\r
\r
<p class="whs2"> </p>\r
\r
<p class="whs1">aPredicate = aFilterMgr.CreateFreeEdges()</p>\r
\r
-<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>\r
+<p class="whs1">aPredicate.SetMesh( \r
+ mesh )</p>\r
\r
-<p class="whs1">aFilter.SetPredicate( \r
- aPredicate )</p>\r
+<p class="whs1">aBorders = aPredicate.GetBorders()</p>\r
\r
-<p class="whs1"> </p>\r
+<p class="whs2"> </p>\r
\r
-<p class="whs1">anIds = aFilter.GetElementsId( \r
- mesh )</p>\r
+<p class="whs2"># create groups</p>\r
+\r
+<p class="whs1">aGroupF = mesh.CreateGroup( \r
+ SMESH.FACE, "Faces with free edges" )</p>\r
+\r
+<p class="whs1">aGroupN = mesh.CreateGroup( \r
+ SMESH.NODE, "Nodes on free edges" )</p>\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"># print the result</p>\r
+<p class="whs2"># fill groups with elements, \r
+ corresponding to the criterion</p>\r
+\r
+<p class="whs1">print ""</p>\r
\r
<p class="whs1">print "Criterion: \r
- Free edges Nb = ", len( anIds )</p>\r
+ Free edges Nb = ", len( aBorders )</p>\r
\r
<p class="whs1">for i in range( \r
- len( anIds ) ):</p>\r
+ len( aBorders ) ):</p>\r
+\r
+<p class="whs1"> aBorder \r
+ = aBorders[ i ]</p>\r
\r
<p class="whs1"> print \r
- anIds[ i ]</p>\r
+ "Face # ", aBorder.myElemId, " : Edge between nodes (",</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs1"> print \r
+ aBorder.myPnt1, ", ", aBorder.myPnt2, ")"</p>\r
\r
-<p class="whs2"># create a group</p>\r
+<p class="whs1"> </p>\r
\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.EDGE, "Free edges" )</p>\r
+<p class="whs1"> aGroupF.Add( \r
+ [aBorder.myElemId] )</p>\r
\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
+<p class="whs1"> aGroupN.Add( \r
+ [aBorder.myPnt1, aBorder.myPnt2] )</p>\r
+\r
+<p class="whs1"> </p>\r
\r
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\r
<p class="whs1"> </p>\r
\r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<h3><a name=Volume>Volume</a></h3>\r
+\r
+<p class="whs1">import SMESH</p>\r
+\r
+<p class="whs1">import SMESH_mechanic_tetra</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">smesh = \r
+ SMESH_mechanic_tetra.smesh</p>\r
+\r
+<p class="whs1">mesh = \r
+ SMESH_mechanic_tetra.mesh</p>\r
+\r
+<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># Criterion : VOLUME < \r
+ 7</p>\r
+\r
+<p class="whs2"> </p>\r
+\r
+<p class="whs1">aFunctor = aFilterMgr.CreateVolume3D()</p>\r
+\r
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>\r
+\r
+<p class="whs1">aPredicate.SetNumFunctor( \r
+ aFunctor )</p>\r
+\r
+<p class="whs1">aPredicate.SetMargin( \r
+ 7 )</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>\r
+\r
+<p class="whs1">aFilter.SetPredicate( \r
+ aPredicate )</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">anIds = aFilter.GetElementsId( \r
+ mesh )</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># print the result</p>\r
+\r
+<p class="whs1">print ""</p>\r
+\r
+<p class="whs1">print "Criterion: \r
+ Volume < 7 Nb = ", len( anIds )</p>\r
+\r
+<p class="whs1">for i in range( \r
+ len( anIds ) ):</p>\r
+\r
+<p class="whs1"> print \r
+ anIds[ i ]</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># create a group</p>\r
+\r
+<p class="whs1">aGroup = mesh.CreateGroup( \r
+ SMESH.VOLUME, "Volume < 7" )</p>\r
+\r
+<p class="whs1">aGroup.Add( anIds \r
+ )</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\r
<!--\r
p.whs1 { margin-left:40px; }\r
img_whs2 { border:none; width:24px; height:25px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:390px; height:437px; float:none; }\r
-img_whs4 { border:none; width:390px; height:437px; float:none; border-style:none; }\r
-ul.whs5 { list-style:disc; }\r
-img_whs6 { border:none; width:350px; height:201px; border-style:none; }\r
+img_whs3 { border:none; width:390px; height:437px; float:none; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:350px; height:201px; border-style:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
\r
<p class="whs1"> </p>\r
\r
-<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs4"></p>\r
+<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>\r
\r
<p class="whs1"> </p>\r
\r
<p class="whs1">2. In this dialog box you should specify:</p>\r
\r
-<ul type="disc" class="whs5">\r
+<ul type="disc" class="whs4">\r
\r
<li class=kadov-p><p class="whs1">the type of elements \r
which will be extruded (1D or 2D),</p></li>\r
<p class="whs1"> </p>\r
\r
<p class=TODO\r
- style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs6"></p>\r
+ style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>\r
\r
<p class=TODO> </p>\r
\r
smesh.hhc\r
smesh.hhk\r
about_viewing_meshes.htm\r
+adding_quadratic_nodes_and_elements.htm\r
aspect_ratio_3d.htm\r
borders_at_multi-connection.htm\r
borders_at_multiconnection_2d.htm\r
files\uniting_two_triangles.htm\r
files\using_operations_on_groups.htm\r
files\viewing_mesh_info.htm\r
+files\vtk_3d_viewer.htm\r
files\warp.htm\r
free_borders.htm\r
free_edges.htm\r
grouping_elements.htm\r
length.htm\r
+merge_elements.htm\r
modifying_meshes.htm\r
pattern_mapping.htm\r
presentation.htm\r
transforming_meshes.htm\r
transparency.htm\r
viewing_meshes.htm\r
+volume.htm\r
ehelp.xml\r
texture_horiz_ltbluebubbles.jpg\r
smesh.glo\r
pics\b-mberofsegments.png\r
pics\b-flection1d.png\r
pics\a-cuttingofquadrangles.png\r
-image129.gif\r
pics\addquadrangle.png\r
pics\intersectgroups.png\r
pics\editgroup.png\r
image92.gif\r
image51.jpg\r
image70.gif\r
+pics\image138.gif\r
pics\create_group.png\r
pics\edit_mesh_change_value_hyp.png\r
pics\free_borders1.png\r
image82.gif\r
image71.gif\r
image30.jpg\r
+pics\distributionwithanalyticdensity.png\r
+pics\image139.gif\r
pics\rotation1.png\r
pics\a-createpolyhedralvolume.png\r
pics\a-patterntype.png\r
image94.gif\r
image83.gif\r
image31.jpg\r
+pics\graduatedaxes1.png\r
+pics\image107.gif\r
+pics\automaticlength.png\r
+pics\image27.gif\r
pics\add_polyhedron.png\r
pics\add_edge.png\r
pics\rotation2.png\r
image95.gif\r
image76.jpg\r
image84.gif\r
-image73.gif\r
image32.jpg\r
image40.gif\r
+pics\image108.gif\r
+pics\aqt.png\r
+pics\distributionwithtabledensity.png\r
pics\smoothing.png\r
image88.jpg\r
image30.gif\r
image63.gif\r
image22.jpg\r
image41.gif\r
+pics\image109.gif\r
+pics\meshimportmesh.png\r
pics\deletegroups.png\r
pics\editing_groups1.png\r
pics\uniting_two_triangles1.png\r
image78.jpg\r
image64.gif\r
image23.jpg\r
+image151.gif\r
pics\cut_groups1.png\r
pics\editing_groups2.png\r
pics\uniting_two_triangles2.png\r
pics\a-unionoftriangles.png\r
pics\a-arithmetic1d.png\r
-pics\a-exportmesh.png\r
pics\extrusionalongaline2.png\r
-pics\importmesh.png\r
image79.jpg\r
-image21.gif\r
image98.gif\r
image32.gif\r
+pics\image91.gif\r
+image152.gif\r
pics\cut_groups2.png\r
image130.gif\r
pics\max_el_area.png\r
image88.gif\r
image36.jpg\r
image33.gif\r
-image22.gif\r
image25.jpg\r
i_blue.jpg\r
+image15.jpg\r
+image142.gif\r
pics\cut_groups3.png\r
image131.gif\r
-pics\c-editmesh.png\r
pics\add_quadrangle.png\r
pics\uniting_a_set_of_triangles1.png\r
pics\a-deflection1d.png\r
image120.gif\r
image56.gif\r
image37.jpg\r
-image23.gif\r
image67.gif\r
image34.gif\r
-image26.jpg\r
+image143.gif\r
image132.gif\r
pics\edit_mesh1.png\r
pics\remove_elements1.png\r
image35.gif\r
image27.jpg\r
image24.gif\r
+pics\createmesh-inv2.png\r
+image144.gif\r
pics\intersect_groups1.png\r
image133.gif\r
-pics\length1.png\r
-pics\borders_at_multi_connections1.png\r
pics\add_polygone.png\r
pics\remove_elements2.png\r
pics\a-maxelvolume.png\r
image36.gif\r
image25.gif\r
note1.gif\r
+pics\createmesh-inv3.png\r
+image145.gif\r
pics\intersect_groups2.png\r
image134.gif\r
pics\b-mesh_infos.png\r
image123.gif\r
image101.gif\r
image37.gif\r
+pics\image96.gif\r
+image146.gif\r
pics\intersect_groups3.png\r
image135.gif\r
pics\b-erage_length.png\r
image90.jpg\r
image124.gif\r
image102.gif\r
-image19.jpg\r
image49.gif\r
-image27.gif\r
image38.gif\r
+pics\image100.gif\r
+pics\image97.gif\r
+pics\length-crit.png\r
+image147.gif\r
image136.gif\r
-pics\c-createmesh.png\r
pics\a-nbsegments2.png\r
pics\a-startendlength.png\r
pics\patternmapping2.png\r
pics\exemple.gif\r
image39.gif\r
image28.gif\r
+pics\advanced_mesh_infos.png\r
+pics\image98.gif\r
+image148.gif\r
+pics\meshexportmesh.png\r
+pics\image21.gif\r
pics\union_groups1.png\r
image137.gif\r
pics\free_edges.png\r
-pics\a-nbsegments3.png\r
pics\creategroup.png\r
image92.jpg\r
-pics\submeshconstruction.png\r
image126.gif\r
image104.gif\r
image18.gif\r
image70.jpg\r
+pics\createmesh-inv.png\r
+pics\image102.gif\r
+pics\image99.gif\r
+pics\image77.gif\r
+pics\meshtrianglemergeelem1.png\r
+pics\mergeelems.png\r
pics\union_groups2.png\r
pics\length2d.png\r
-pics\a-advmeshinfo.png\r
-pics\a-nbsegments4.png\r
pics\renumbernodes.png\r
image127.gif\r
image93.jpg\r
image105.gif\r
image19.gif\r
image71.jpg\r
+pics\image89.gif\r
+pics\image78.gif\r
+pics\image23.gif\r
pics\selectionfilterlibrary.png\r
pics\union_groups3.png\r
pics\edit_mesh_remove_hyp.png\r
whgdata\whlstf10.htm\r
whgdata\whlstf11.htm\r
whgdata\whlstf12.htm\r
+whgdata\whlstf13.htm\r
whgdata\whlstg0.htm\r
smesh.htm\r
smesh_csh.htm\r
\r
<p class="whs3"> </p>\r
\r
-<p class="whs3">mport math</p>\r
+<p class="whs3">import math</p>\r
\r
<p class="whs3">mesh = \r
SMESH_mechanic.mesh</p>\r
\r
<p class="whs4"> </p>\r
\r
+<h4><a name=bookmark8>Merging Elements</a></h4>\r
+\r
+<p class="whs5">import geompy</p>\r
+\r
+<p class="whs5">import smesh</p>\r
+\r
+<p class="whs5">import salome</p>\r
+\r
+<p class="whs5">import SMESH</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"># create a face to be meshed</p>\r
+\r
+<p class="whs5">px = geompy.MakeVertex(100., \r
+ 0. , 0. \r
+ )</p>\r
+\r
+<p class="whs5">py = geompy.MakeVertex(0. \r
+ , 100., \r
+ 0. )</p>\r
+\r
+<p class="whs5">pz = geompy.MakeVertex(0. \r
+ , 0. , \r
+ 100.)</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
+\r
+<p class="whs5">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
+\r
+<p class="whs5">isPlanarFace = 1</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">face1 = geompy.MakeFace(wire, \r
+ isPlanarFace)</p>\r
+\r
+<p class="whs5">id_face1 = geompy.addToStudy(face1, \r
+ "Face1")</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"># create a 2D mesh on the \r
+ face</p>\r
+\r
+<p class="whs5">trias = smesh.Mesh(face1, \r
+ "Face : 2D mesh")</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">algo = trias.Segment()</p>\r
+\r
+<p class="whs5">algo.NumberOfSegments(6)</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">algo = trias.Triangle()</p>\r
+\r
+<p class="whs5">algo.LengthFromEdges()</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">trias.Compute()</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">tri_mesh = trias.GetMesh()</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"># create a path mesh</p>\r
+\r
+<p class="whs5">px1 = geompy.MakeVertex(100., \r
+ 100. , \r
+ 0. )</p>\r
+\r
+<p class="whs5">py1 = geompy.MakeVertex(-100. \r
+ , -100., \r
+ 0. )</p>\r
+\r
+<p class="whs5">pz1 = geompy.MakeVertex(0. \r
+ , 0. , \r
+ 50.)</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">circle = geompy.MakeCircleThreePnt(py1, \r
+ pz1, px1)</p>\r
+\r
+<p class="whs5">id_circle = geompy.addToStudy(circle, \r
+ "Path")</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">circlemesh = smesh.Mesh(circle, \r
+ "Path mesh")</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">algo = circlemesh.Segment()</p>\r
+\r
+<p class="whs5">algo.NumberOfSegments(10)</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">circlemesh.Compute()</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"># extrusion of the mesh</p>\r
+\r
+<p class="whs5">aMeshEditor = tri_mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs5">aMeshEditor.ExtrusionAlongPathObject(tri_mesh, \r
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"># merge nodes</p>\r
+\r
+<p class="whs5">print "Number \r
+ of nodes before MergeNodes:", tri_mesh.NbNodes()</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">tolerance = 0.001</p>\r
+\r
+<p class="whs5">array_of_nodes_groups \r
+ = aMeshEditor.FindCoincidentNodes(tolerance)</p>\r
+\r
+<p class="whs5">aMeshEditor.MergeNodes(array_of_nodes_groups)</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">print "Number \r
+ of nodes after MergeNodes:", tri_mesh.NbNodes()</p>\r
+\r
+<p class="whs5">print ""</p>\r
+\r
+<p class="whs5">print "Number \r
+ of elements before MergeEqualElements:"</p>\r
+\r
+<p class="whs5">print "Edges \r
+ : \r
+ ", tri_mesh.NbEdges()</p>\r
+\r
+<p class="whs5">print "Triangles \r
+ : ", \r
+ tri_mesh.NbTriangles()</p>\r
+\r
+<p class="whs5">print "Quadrangles: \r
+ ", tri_mesh.NbQuadrangles()</p>\r
+\r
+<p class="whs5">print "Volumes \r
+ : \r
+ ", tri_mesh.NbVolumes()</p>\r
+\r
+<p class="whs4"> </p>\r
+\r
+<p class="whs4"># merge elements</p>\r
+\r
+<p class="whs5">aMeshEditor.MergeEqualElements()</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs5">print "Number \r
+ of elements after MergeEqualElements:"</p>\r
+\r
+<p class="whs5">print "Edges \r
+ : \r
+ ", tri_mesh.NbEdges()</p>\r
+\r
+<p class="whs5">print "Triangles \r
+ : ", \r
+ tri_mesh.NbTriangles()</p>\r
+\r
+<p class="whs5">print "Quadrangles: \r
+ ", tri_mesh.NbQuadrangles()</p>\r
+\r
+<p class="whs5">print "Volumes \r
+ : \r
+ ", tri_mesh.NbVolumes()</p>\r
+\r
+<p class="whs5"> </p>\r
+\r
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
+\r
<h3>Sewing Meshes</h3>\r
\r
<h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>\r
</script>\r
<style type="text/css">\r
<!--\r
-img_whs1 { border:none; border-style:none; width:354px; height:173px; float:none; }\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; border-style:none; width:354px; height:173px; float:none; }\r
-->\r
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
<!--\r
</script>\r
<h1>Transparency</h1>\r
\r
-<p><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs1"></p>\r
+<p class="whs1"><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs2"></p>\r
\r
<p> </p>\r
\r
--- /dev/null
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Volume</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+h1.whs1 { font-size:24pt; }\r
+img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:164px; height:199px; border-style:none; }\r
+img_whs5 { border:none; width:23px; height:25px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+ var strNSS = "<style type='text/css'>";\r
+ strNSS += "p.whs6 {margin-left:1pt; }";\r
+ strNSS +="</style>";\r
+ document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+ if (innerWidth != origWidth || innerHeight != origHeight)\r
+ location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+ origWidth = innerWidth;\r
+ origHeight = innerHeight;\r
+ onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+ if (window.addTocInfo)\r
+ {\r
+ addTocInfo("MESH module\nQuality controls\nVolume");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+ }\r
+ if (window.writeBtnStyle)\r
+ writeBtnStyle();\r
+\r
+ if (window.writeIntopicBar)\r
+ writeIntopicBar(1);\r
+\r
+ if (window.setRelStartPage)\r
+ {\r
+ setRelStartPage("smesh.htm");\r
+\r
+ autoSync(1);\r
+ sendSyncInfo();\r
+ sendAveInfoOut();\r
+ }\r
+}\r
+else\r
+ if (window.gbIE4)\r
+ document.location.reload();\r
+//-->\r
+</script>\r
+<h1 class="whs1">Volume</h1>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Volume</B></span> mesh quality \r
+ criterion reflects the volume of meshes of a 3D object. </p>\r
+\r
+<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>\r
+\r
+<p class=TODO\r
+ style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
+ apply the Volume quality criterion to your mesh:</p>\r
+\r
+<p class="whs3">1. Display your mesh in the viewer.</p>\r
+\r
+<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ > Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your \r
+ mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span \r
+ style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation. \r
+ </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<p> </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+ writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
<script language="javascript">\r
<!--\r
aTE("About viewing meshes","about_viewing_meshes.htm");\r
+aTE("Adding Quadratic Nodes and Elements","adding_quadratic_nodes_and_elements.htm");\r
aTE("Aspect ratio 3D","aspect_ratio_3d.htm");\r
aTE("Borders at multi-connection","borders_at_multi-connection.htm");\r
aTE("Borders at multiconnection 2D","borders_at_multiconnection_2d.htm");\r
aTE("Uniting two triangles","files/uniting_two_triangles.htm");\r
aTE("Using operations on groups","files/using_operations_on_groups.htm");\r
aTE("Viewing mesh info","files/viewing_mesh_info.htm");\r
+aTE("VTK 3D Viewer","files/vtk_3d_viewer.htm");\r
aTE("Warp","files/warp.htm");\r
aTE("Free borders","free_borders.htm");\r
aTE("Free_edges","free_edges.htm");\r
aTE("Grouping Elements","grouping_elements.htm");\r
aTE("Length","length.htm");\r
+aTE("Merge Elements","merge_elements.htm");\r
aTE("Modifying Meshes","modifying_meshes.htm");\r
aTE("Pattern mapping","pattern_mapping.htm");\r
aTE("Presentation","presentation.htm");\r
aTE("Transforming Meshes","transforming_meshes.htm");\r
aTE("Transparency","transparency.htm");\r
aTE("Viewing Meshes","viewing_meshes.htm");\r
+aTE("Volume","volume.htm");\r
\r
//-->\r
</script>\r
<script language="javascript" src="whfts.js"></script>\r
<script language="javascript">\r
<!--\r
-iWM("0","zero","whfwdata0.htm");\r
+iWM("0","zoom","whfwdata0.htm");\r
\r
-iTM(0,65,"whftdata0.htm");\r
+iTM(0,69,"whftdata0.htm");\r
\r
//-->\r
</script>\r
</script>\r
<script language="javascript">\r
<!--\r
-aWE("0",12,4,5,23,6,55,57,60,42,63,65);\r
-aWE("0d",12);\r
-aWE("1",15,16,17,18,19,21,5,24,6,25,26,27,28,9,10,55,29,31,34,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52);\r
-aWE("10",5,6,55,57,63,65);\r
-aWE("100",5,6,55,57,60);\r
-aWE("109",63);\r
-aWE("113",63);\r
-aWE("1135",57);\r
-aWE("1145",57);\r
-aWE("1147",57);\r
-aWE("1159",57);\r
-aWE("12",57,63);\r
-aWE("13",57);\r
-aWE("15",60,63);\r
-aWE("150",63);\r
-aWE("18",60);\r
-aWE("180",57);\r
-aWE("1d",11,12,13,14,17,21,6,9,10,30,36,60,61);\r
-aWE("1e",57,60);\r
-aWE("2",15,16,18,1,19,21,5,24,6,25,26,27,28,9,10,29,31,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52);\r
-aWE("20",5,6,55,57,60,63,65);\r
-aWE("200",5,6);\r
-aWE("21",63);\r
-aWE("23",57,63);\r
-aWE("2381",57);\r
-aWE("2382",57);\r
-aWE("2383",57);\r
-aWE("2384",57);\r
-aWE("2385",57);\r
-aWE("2386",57);\r
-aWE("2387",57);\r
-aWE("2388",57);\r
-aWE("2389",57);\r
-aWE("2390",57);\r
-aWE("2391",57);\r
-aWE("2392",57);\r
-aWE("2393",57);\r
-aWE("2394",57);\r
-aWE("2395",57);\r
-aWE("2396",57);\r
-aWE("2397",57);\r
-aWE("2398",57);\r
-aWE("2399",57);\r
-aWE("24",63);\r
-aWE("2400",57);\r
-aWE("2401",57);\r
-aWE("2402",57);\r
-aWE("2403",57);\r
-aWE("2404",57);\r
-aWE("2405",57);\r
-aWE("2406",57);\r
-aWE("2407",57);\r
-aWE("2408",57);\r
-aWE("2409",57);\r
-aWE("2410",57);\r
-aWE("2411",57);\r
-aWE("2412",57);\r
-aWE("2413",57);\r
-aWE("2414",57);\r
-aWE("2415",57);\r
-aWE("2416",57);\r
-aWE("2417",57);\r
-aWE("2418",57);\r
-aWE("2419",57);\r
-aWE("2420",57);\r
-aWE("2421",57);\r
-aWE("2422",57);\r
-aWE("245",57);\r
-aWE("246",57);\r
-aWE("25",63);\r
-aWE("255",57);\r
-aWE("2d",11,12,13,14,16,18,1,3,21,5,6,9,10,30,32,31,35,57,58,60,61,42,63,51,52);\r
-aWE("3",12,16,18,1,19,21,5,24,25,26,9,10,55,29,58,60,38,39,61,42,43,44,63,48,49,65,52);\r
-aWE("30",6,55,57,60,63);\r
-aWE("300",5,6);\r
-aWE("3128",57);\r
-aWE("321",57);\r
-aWE("3265",57);\r
-aWE("3402",57);\r
-aWE("3658",57);\r
-aWE("38",57,63);\r
-aWE("39",57);\r
-aWE("3d",11,12,13,14,15,1,19,21,23,24,6,7,25,26,27,9,10,30,33,60,38,39,61,42,44,48,49);\r
-aWE("3e",60);\r
-aWE("3rd",12);\r
-aWE("4",12,16,18,21,5,24,6,26,10,29,57,58,60,42,43,46,63,52);\r
-aWE("40",57);\r
-aWE("405",57);\r
-aWE("406",57);\r
-aWE("45",57,63);\r
-aWE("47",57);\r
-aWE("492",57);\r
-aWE("493",57);\r
-aWE("5",4,57,60,63);\r
-aWE("50",6,57);\r
-aWE("502",57);\r
-aWE("503",57);\r
-aWE("58",63);\r
-aWE("5th",12);\r
-aWE("6",5,6,55,57,63,65);\r
-aWE("60",55,57);\r
-aWE("642",57);\r
-aWE("66632",57);\r
-aWE("69",63);\r
-aWE("7",5,6,55);\r
-aWE("70",6,60,63);\r
-aWE("700",57);\r
-aWE("71",63);\r
-aWE("72",63);\r
-aWE("73",57);\r
-aWE("8",55,63);\r
-aWE("800",5,6,55);\r
-aWE("814",57);\r
-aWE("850",57);\r
-aWE("859",57);\r
-aWE("864",57);\r
-aWE("89",63);\r
-aWE("9",63);\r
-aWE("90",63);\r
-aWE("900",5,6,55);\r
-aWE("91",63);\r
-aWE("911",57);\r
-aWE("92",63);\r
-aWE("931",57);\r
-aWE("932",57);\r
-aWE("950",57);\r
-aWE("abl",15);\r
-aWE("abov",10,44);\r
-aWE("abox",60);\r
-aWE("absent",50);\r
-aWE("absolute",64);\r
-aWE("abut",17);\r
-aWE("acces",0,62);\r
-aWE("accord",14,16,17,18,31,35,58,43,44,46,52);\r
-aWE("account",11,58);\r
-aWE("acomp",60,63);\r
-aWE("acompobj",63);\r
-aWE("actual",36);\r
-aWE("ad",15,19,23,24,55,57,48,50);\r
-aWE("add",15,19,21,5,23,24,6,28,10,55,57,60,62,48);\r
-aWE("addedg",57);\r
-aWE("addfac",57);\r
-aWE("addhypothesi",5,6,55,60,65);\r
-aWE("addition",24,30,57);\r
-aWE("additional",11,12,21,6,36,58,41,62,44);\r
-aWE("addnod",57);\r
-aWE("addobject",55);\r
-aWE("addtostudy",5,6,55,57,60,63,65);\r
-aWE("addtostudyinfath",5,55,65);\r
-aWE("addvolum",57);\r
-aWE("adjacent",26,35,36,38,42,48);\r
-aWE("adjust",44);\r
-aWE("adjustabl",36);\r
-aWE("advanc",0,51);\r
-aWE("afilt",55,60);\r
-aWE("afiltermgr",55,57,60);\r
-aWE("afunctor",55,57,60);\r
-aWE("ageomgroup1",55);\r
-aWE("ageomgroup2",55);\r
-aWE("agroup",55,60);\r
-aWE("agroup1",55);\r
-aWE("agroup2",55);\r
-aWE("agroup3",55);\r
-aWE("agroup4",55);\r
-aWE("agroup5",55);\r
-aWE("agroupelemid",55);\r
-aWE("agroupmain",55);\r
-aWE("agroupr",55);\r
-aWE("agrouptool",55);\r
-aWE("ai",17);\r
-aWE("algo",5,6,57,63);\r
-aWE("algo1",5,60,65);\r
-aWE("algo2",5,60,65);\r
-aWE("algorithm",11,12,13,14,16,21,5,22,6,10,55,30,32,57,33,58,37,42,63);\r
-aWE("allow",11,17,19,23,24,29,30,34,36,58,40,42,44,45,47,48,50);\r
-aWE("along",9,10,57,58,44);\r
-aWE("alternativ",21);\r
-aWE("alway",44);\r
-aWE("amesheditor",57,63);\r
-aWE("amount",2);\r
-aWE("analytic",17);\r
-aWE("aneditor",57,60,63);\r
-aWE("angl",14,4,24,10,30,35,60,61,40,43,48,52);\r
-aWE("angle180",63);\r
-aWE("angle45",57);\r
-aWE("angular",10);\r
-aWE("angularity",10);\r
-aWE("anid",55,60);\r
-aWE("anodeid1",57);\r
-aWE("anodeid2",57);\r
-aWE("anodeid3",57);\r
-aWE("anodeid4",57);\r
-aWE("anoth",36);\r
-aWE("any",12,21,23,26,10,55,58,44);\r
-aWE("ap",13,15,16,18,19,4,21,23,24,7,25,26,28,9,10,30,31,35,58,37,38,39,61,42,43,44,45,46,48,49,50,52);\r
-aWE("apparent",21);\r
-aWE("appear",0,15,19,21,22,23,24,25,26,28,9,10,34,58,38,39,61,40,45,47,48,49,50);\r
-aWE("append",60);\r
-aWE("appli",16,17,18,1,21,22,6,32,31,35,57,33,36,37,62,43,44,46,52);\r
-aWE("applicabl",62);\r
-aWE("application",14,58);\r
-aWE("apply",11,0,21,22,23);\r
-aWE("appropriat",21);\r
-aWE("approximate",17);\r
-aWE("apredicat",55,60);\r
-aWE("arc",6,57);\r
-aWE("arcsin",52);\r
-aWE("area",11,14,16,1,6,55,30,32,33,60,44,46);\r
-aWE("arithmetic",11,17,5,6,63);\r
-aWE("arithmetic1d",5,6,63,65);\r
-aWE("around",4,10,61);\r
-aWE("asmeshgroup1",55);\r
-aWE("asmeshgroup2",55);\r
-aWE("aspect",14,18,1,30,60,44);\r
-aWE("assign",21,37,52);\r
-aWE("associat",15,27,38);\r
-aWE("auto",4);\r
-aWE("automatic",21,58);\r
-aWE("automatical",19,21,24,26,48);\r
-aWE("availabl",42);\r
-aWE("averag",11,17,6,36,58,52);\r
-aWE("axi",9,61,40,45,52);\r
-aWE("axisstruct",57,63);\r
-aWE("axisxyz",57,63);\r
+aWE("0",13,18,5,6,24,7,57,60,63,43,66,68);\r
+aWE("001",66);\r
+aWE("0d",13);\r
+aWE("1",16,1,17,18,19,2,20,22,6,25,7,26,27,28,29,10,11,57,30,32,35,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54);\r
+aWE("10",6,7,57,60,66,68);\r
+aWE("100",6,7,57,60,63,66);\r
+aWE("109",66);\r
+aWE("11",60);\r
+aWE("113",66);\r
+aWE("1135",60);\r
+aWE("1145",60);\r
+aWE("1147",60);\r
+aWE("1159",60);\r
+aWE("12",60,66);\r
+aWE("13",60);\r
+aWE("14",60);\r
+aWE("15",60,63,66);\r
+aWE("150",66);\r
+aWE("16",60);\r
+aWE("17",60);\r
+aWE("18",60,63);\r
+aWE("180",60);\r
+aWE("19",60);\r
+aWE("1d",12,13,14,15,18,22,7,10,11,31,33,37,63,64);\r
+aWE("1e",60,63);\r
+aWE("2",16,1,17,19,2,20,22,6,25,7,26,27,28,29,10,11,30,32,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54);\r
+aWE("20",6,7,57,60,63,66,68);\r
+aWE("200",6,7,60);\r
+aWE("21",60,66);\r
+aWE("23",60,66);\r
+aWE("2381",60);\r
+aWE("2382",60);\r
+aWE("2383",60);\r
+aWE("2384",60);\r
+aWE("2385",60);\r
+aWE("2386",60);\r
+aWE("2387",60);\r
+aWE("2388",60);\r
+aWE("2389",60);\r
+aWE("2390",60);\r
+aWE("2391",60);\r
+aWE("2392",60);\r
+aWE("2393",60);\r
+aWE("2394",60);\r
+aWE("2395",60);\r
+aWE("2396",60);\r
+aWE("2397",60);\r
+aWE("2398",60);\r
+aWE("2399",60);\r
+aWE("24",66);\r
+aWE("240",60);\r
+aWE("2400",60);\r
+aWE("2401",60);\r
+aWE("2402",60);\r
+aWE("2403",60);\r
+aWE("2404",60);\r
+aWE("2405",60);\r
+aWE("2406",60);\r
+aWE("2407",60);\r
+aWE("2408",60);\r
+aWE("2409",60);\r
+aWE("2410",60);\r
+aWE("2411",60);\r
+aWE("2412",60);\r
+aWE("2413",60);\r
+aWE("2414",60);\r
+aWE("2415",60);\r
+aWE("2416",60);\r
+aWE("2417",60);\r
+aWE("2418",60);\r
+aWE("2419",60);\r
+aWE("2420",60);\r
+aWE("2421",60);\r
+aWE("2422",60);\r
+aWE("245",60);\r
+aWE("246",60);\r
+aWE("25",66);\r
+aWE("255",60);\r
+aWE("2d",12,13,14,15,17,19,4,22,6,7,10,11,31,33,32,36,60,61,63,64,43,66,54);\r
+aWE("3",13,17,19,20,22,6,25,26,27,10,11,57,30,60,61,63,39,40,64,43,44,45,66,49,50,68,54);\r
+aWE("30",7,57,60,63,66);\r
+aWE("300",6,7);\r
+aWE("3128",60);\r
+aWE("321",60);\r
+aWE("3265",60);\r
+aWE("3402",60);\r
+aWE("3658",60);\r
+aWE("38",60,66);\r
+aWE("39",60);\r
+aWE("3d",12,13,14,15,0,16,1,19,2,20,22,24,25,7,8,26,27,28,10,11,31,34,63,39,40,64,43,45,49,50,69,53);\r
+aWE("3e",63);\r
+aWE("3rd",13);\r
+aWE("3x3",60);\r
+aWE("4",13,17,19,22,6,25,7,27,11,30,60,61,63,43,44,47,66,54);\r
+aWE("40",60);\r
+aWE("405",60);\r
+aWE("406",60);\r
+aWE("45",60,66);\r
+aWE("47",60);\r
+aWE("492",60);\r
+aWE("493",60);\r
+aWE("5",5,60,63,66);\r
+aWE("50",7,60,66);\r
+aWE("502",60);\r
+aWE("503",60);\r
+aWE("58",66);\r
+aWE("5th",13);\r
+aWE("6",2,6,7,57,60,66,68);\r
+aWE("60",57,60);\r
+aWE("642",60);\r
+aWE("66632",60);\r
+aWE("69",66);\r
+aWE("7",6,7,57,60,63);\r
+aWE("70",7,63,66);\r
+aWE("700",60);\r
+aWE("71",66);\r
+aWE("72",66);\r
+aWE("73",60);\r
+aWE("77",60);\r
+aWE("8",57,60,66);\r
+aWE("800",6,7);\r
+aWE("814",60);\r
+aWE("850",60);\r
+aWE("859",60);\r
+aWE("864",60);\r
+aWE("89",66);\r
+aWE("9",60,66);\r
+aWE("90",66);\r
+aWE("900",6,7);\r
+aWE("91",66);\r
+aWE("911",60);\r
+aWE("92",66);\r
+aWE("931",60);\r
+aWE("932",60);\r
+aWE("95",63);\r
+aWE("950",60);\r
+aWE("9999",24);\r
+aWE("a_mesh",60);\r
+aWE("aa",60);\r
+aWE("abl",16,1,53);\r
+aWE("abord",63);\r
+aWE("aborder",63);\r
+aWE("abov",11,60,45);\r
+aWE("abox",63);\r
+aWE("absent",51);\r
+aWE("absolute",67);\r
+aWE("abut",18);\r
+aWE("acces",0,65,53);\r
+aWE("accord",15,17,18,19,2,32,36,61,44,45,47,69,54);\r
+aWE("account",12,61);\r
+aWE("acomp",63,66);\r
+aWE("acompobj",66);\r
+aWE("actual",37);\r
+aWE("ad",16,1,20,24,25,57,60,49,51);\r
+aWE("add",16,1,20,22,6,24,25,7,29,11,57,60,63,65,49);\r
+aWE("addedg",60);\r
+aWE("addfac",60);\r
+aWE("addhypothesi",6,7,57,60,63,68);\r
+aWE("addition",25,31,60);\r
+aWE("additional",12,13,22,7,37,61,42,65,45);\r
+aWE("addnod",60);\r
+aWE("addobject",57);\r
+aWE("addpolygonalfac",60);\r
+aWE("addpolyhedralvolum",60);\r
+aWE("addtostudy",6,7,57,60,63,66,68);\r
+aWE("addtostudyinfath",6,7,57,60,68);\r
+aWE("addvolum",60);\r
+aWE("adjacent",27,36,37,39,43,49);\r
+aWE("adjust",45);\r
+aWE("adjustabl",37);\r
+aWE("advanc",0,52);\r
+aWE("afilt",57,63);\r
+aWE("afiltermgr",57,60,63);\r
+aWE("afunctor",57,60,63);\r
+aWE("ageomgroup1",57);\r
+aWE("ageomgroup2",57);\r
+aWE("agroup",57,63);\r
+aWE("agroup1",57);\r
+aWE("agroup2",57);\r
+aWE("agroup3",57);\r
+aWE("agroup4",57);\r
+aWE("agroup5",57);\r
+aWE("agroupelemid",57);\r
+aWE("agroupf",63);\r
+aWE("agroupmain",57);\r
+aWE("agroupn",63);\r
+aWE("agroupr",57);\r
+aWE("agrouptool",57);\r
+aWE("ai",18);\r
+aWE("al",60);\r
+aWE("algo",6,7,60,66);\r
+aWE("algo1",6,63,68);\r
+aWE("algo2",6,63,68);\r
+aWE("algorithm",12,13,14,15,0,17,22,6,23,7,11,57,31,33,34,61,38,43,66);\r
+aWE("allow",12,0,1,18,20,23,24,25,30,31,33,59,35,37,61,41,43,45,46,48,49,51,53);\r
+aWE("along",10,11,60,61,45,53);\r
+aWE("alternativ",22);\r
+aWE("alternative",0,1);\r
+aWE("alway",45);\r
+aWE("amesheditor",60,66);\r
+aWE("amount",3);\r
+aWE("analytic",18);\r
+aWE("aneditor",60,63,66);\r
+aWE("angl",15,5,25,11,31,36,60,63,64,41,44,49,54);\r
+aWE("angle180",66);\r
+aWE("angle45",60);\r
+aWE("angular",11);\r
+aWE("angularity",11);\r
+aWE("anid",57,63);\r
+aWE("anodeid1",60);\r
+aWE("anodeid2",60);\r
+aWE("anodeid3",60);\r
+aWE("anodeid4",60);\r
+aWE("anoth",60,37);\r
+aWE("any",13,1,22,24,27,11,57,61,45);\r
+aWE("ap",14,16,1,17,19,2,20,5,22,24,25,7,8,26,27,29,10,11,31,32,59,36,60,61,38,39,40,64,43,44,45,46,47,49,50,51,69,54);\r
+aWE("apparent",22);\r
+aWE("appear",0,16,1,20,22,23,25,26,27,29,10,11,35,61,39,40,64,41,46,48,49,50,51);\r
+aWE("append",60,63);\r
+aWE("appli",17,18,19,2,22,23,33,32,36,34,37,38,65,44,45,47,69,54);\r
+aWE("applicabl",19,65);\r
+aWE("application",15,61);\r
+aWE("apply",12,0,22,23,24);\r
+aWE("applytomeshfac",60);\r
+aWE("appropriat",22);\r
+aWE("approximate",18);\r
+aWE("apredicat",57,63);\r
+aWE("arc",7,60,66);\r
+aWE("arcsin",54);\r
+aWE("area",12,15,17,7,57,31,33,34,63,45,47,53);\r
+aWE("arithmetic",12,18,6,7,31,66);\r
+aWE("arithmetic1d",6,7,66,68);\r
+aWE("around",5,11,64);\r
+aWE("array_of_nodes_group",66);\r
+aWE("asmeshgroup1",57);\r
+aWE("asmeshgroup2",57);\r
+aWE("aspect",15,19,2,31,63,45);\r
+aWE("assign",18,22,24,7,38,54);\r
+aWE("associat",16,28,39);\r
+aWE("attribut",24);\r
+aWE("auto",5);\r
+aWE("automatic",12,18,22,31,61);\r
+aWE("automatical",0,18,20,22,25,27,49);\r
+aWE("availabl",43,53);\r
+aWE("averag",12,18,7,31,33,61,54);\r
+aWE("ax",53);\r
+aWE("axi",10,64,41,46,53,54);\r
+aWE("axisstruct",60,66);\r
+aWE("axisxyz",60,66);\r
aWE("background",0);\r
-aWE("bar",14);\r
-aWE("bas",11,16,6,10,30,52);\r
-aWE("basi",12,21,22);\r
-aWE("basic",11);\r
-aWE("becom",58);\r
-aWE("befor",62);\r
-aWE("begin",17,42);\r
-aWE("belong",2,3,23,53,54,42,50);\r
-aWE("berder",42);\r
-aWE("binary",62);\r
-aWE("bisect",52);\r
-aWE("bisector",52);\r
-aWE("bit",62);\r
+aWE("bar",15);\r
+aWE("bas",12,17,7,11,31,54);\r
+aWE("basi",13,22,23);\r
+aWE("basic",12,0);\r
+aWE("becom",61);\r
+aWE("befor",65,66);\r
+aWE("begin",18,43);\r
+aWE("belong",3,4,24,55,56,43,51);\r
+aWE("below",60);\r
+aWE("berder",43);\r
+aWE("bet",19);\r
+aWE("binary",65);\r
+aWE("bisect",54);\r
+aWE("bisector",54);\r
+aWE("bit",65);\r
aWE("black",0);\r
-aWE("block",5,6);\r
-aWE("bog",17);\r
-aWE("boolean",50);\r
-aWE("bord",42,63);\r
-aWE("border",14,2,3,53,54,30,60,42,63);\r
-aWE("both",8,10,44,50);\r
-aWE("bottom",41);\r
-aWE("bound",12,58);\r
-aWE("boundari",58);\r
-aWE("boundary",11,58,42,44);\r
-aWE("box",13,15,19,21,5,22,23,24,6,25,26,28,9,10,55,29,34,58,60,38,39,61,40,41,62,42,44,45,63,47,48,49,50,51,65);\r
-aWE("box_id",5,6);\r
-aWE("box1",63);\r
-aWE("box2",63);\r
-aWE("brown",23);\r
-aWE("brows",0,15,20,21,22,23,7,28,59,38,39,62,51);\r
-aWE("build",6,9,36,58,61);\r
-aWE("built",58,44);\r
-aWE("button",0,15,16,18,19,4,21,22,23,24,7,25,26,28,9,10,29,31,35,58,37,38,39,61,40,62,42,43,44,45,46,47,48,49,50,51,52);\r
-aWE("cad",12);\r
-aWE("cal",58);\r
-aWE("calculat",14,18,1,36,46);\r
-aWE("calculation",11,16,31,35);\r
-aWE("careful",38);\r
-aWE("cas",15,21,5,6,26,58,63,51);\r
-aWE("cel",23,38,49);\r
-aWE("cent",10,44);\r
-aWE("centroid",44);\r
-aWE("centroidal",44);\r
-aWE("centroidal_smooth",57);\r
-aWE("certain",23,58);\r
-aWE("chang",0,17,19,5,26,36,37,65);\r
-aWE("chapt",0);\r
-aWE("characteristic",14);\r
-aWE("characteriz",12);\r
-aWE("check",23,42);\r
-aWE("checkbox",15,62,47);\r
-aWE("choic",11,21,58);\r
-aWE("choos",15,16,18,19,20,23,24,7,25,26,8,27,9,10,29,31,34,35,58,38,39,61,40,41,62,42,43,45,46,47,48,49,52);\r
-aWE("chosen",24,32,33,48);\r
-aWE("circl",10,57);\r
-aWE("circlemesh",57);\r
-aWE("clear",62);\r
-aWE("click",0,15,16,18,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,31,35,58,59,37,38,39,61,41,62,42,43,44,46,48,49,50,51,52);\r
-aWE("clip",0,4);\r
-aWE("clos",12,7,42);\r
-aWE("co",42);\r
-aWE("coincident",34);\r
-aWE("color",14,0,16,18,31,35,43,46,52);\r
-aWE("combin",31,59,62);\r
-aWE("common",25,62,49);\r
-aWE("compar",42);\r
-aWE("component",30,41);\r
-aWE("compos",11,12,13,14,0,17,1,27,32,33,43);\r
-aWE("compound",5,6,57);\r
-aWE("comput",17,21,5,6,55,57,58,60,42,63,65);\r
-aWE("computation",21,22);\r
-aWE("concept",36);\r
-aWE("condition",11);\r
-aWE("confirm",19,24,28,38,44,48,50);\r
-aWE("confirmation",23);\r
-aWE("conform",11,36,42,63);\r
-aWE("connect",17,24,44);\r
-aWE("connection",12,14,2,3,30,60);\r
-aWE("connectivity",58);\r
-aWE("consid",21);\r
-aWE("consider",12,42);\r
-aWE("consist",14,16,17,18,2,3,20,21,22,23,53,54,55,32,31,35,33,46);\r
-aWE("consol",51);\r
-aWE("constant",17);\r
-aWE("construct",17,20,21,5,22,37);\r
-aWE("construction",17,21,5,22);\r
-aWE("contain",12,13,19,21,22,23,24,29,58,44,48);\r
-aWE("content",7);\r
-aWE("continu",44);\r
-aWE("contour",12,42);\r
-aWE("contrast",48);\r
-aWE("control",14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52);\r
-aWE("converg",44);\r
-aWE("coordinat",12,15,26,58);\r
-aWE("copy",40,62,45,63,47);\r
-aWE("corn",52);\r
-aWE("corner",24,44,52);\r
-aWE("correspond",12,14,29,58,62,42,47);\r
-aWE("could",12,15);\r
-aWE("count",42);\r
-aWE("counterclockwis",58);\r
-aWE("cours",21);\r
-aWE("creat",12,13,0,15,4,21,5,23,6,55,30,34,57,36,58,60,37,40,62,45,63,47,50,52);\r
-aWE("createanddisplaygo",6);\r
-aWE("createarea",55,60);\r
-aWE("createaspectratio",60);\r
-aWE("createaspectratio3d",60);\r
-aWE("createequalto",55,60);\r
-aWE("createfilt",55,60);\r
-aWE("createfiltermanag",55,57,60);\r
-aWE("createfreeborder",60);\r
-aWE("createfreeedg",60);\r
-aWE("creategroup",55,57,60);\r
-aWE("creategroupfromgeom",55);\r
-aWE("createhypothesi",5,6,55,60,65);\r
-aWE("createlength",60);\r
-aWE("createlength2d",60);\r
-aWE("createlessthan",55,60);\r
-aWE("createmesh",5,6,55,60,65);\r
-aWE("createminimumangl",57,60);\r
-aWE("createmorethan",55,60);\r
-aWE("createmulticonnection",60);\r
-aWE("createmulticonnection2d",60);\r
-aWE("createskew",60);\r
-aWE("createtap",60);\r
-aWE("createwarp",60);\r
-aWE("creation",12,23,36,58,37,50);\r
-aWE("criteria",30,62);\r
-aWE("criterion",16,18,1,23,24,55,56,31,35,60,62,43,46,48,52);\r
-aWE("cros",0,4,52);\r
-aWE("cubic",13);\r
-aWE("current",19,21,24,37,62,42,48);\r
-aWE("curv",12,10);\r
-aWE("curvilinear",17,10);\r
-aWE("cut",5,24,6,55,57,63,50);\r
-aWE("cutgroup",55);\r
-aWE("d",17);\r
-aWE("deal",12);\r
-aWE("default",0,21,23,10,59,62,64);\r
-aWE("defin",12,13,17,18,4,21,5,23,6,10,57,36,58,42,63);\r
-aWE("definit",12,14,17,19,20,23,24,30,37,38,48);\r
-aWE("definition",17,32,33);\r
-aWE("deflection",11,17,6);\r
-aWE("deflection1d",6);\r
-aWE("degre",4);\r
-aWE("delet",0,7,54,57,38,62);\r
-aWE("deletediag",57);\r
-aWE("deletion",30,38,49);\r
-aWE("density",17);\r
-aWE("depend",11,12,21,32,33);\r
-aWE("describ",12,0,58);\r
-aWE("description",58);\r
-aWE("desirabl",34);\r
-aWE("desktop",41);\r
-aWE("destin",12,14,30);\r
-aWE("detail",11);\r
-aWE("detect",34);\r
-aWE("diagonal",24,25,57,46);\r
-aWE("dialog",13,15,17,19,21,22,24,25,26,28,9,10,29,34,58,38,39,61,40,42,44,45,47,48,49,50);\r
-aWE("differ",17);\r
-aWE("differenc",10,42);\r
-aWE("different",11,15,23,37,62,42);\r
-aWE("dimension",12,1,21,9,61);\r
-aWE("direct",12,1,42,44);\r
-aWE("direction",58,52);\r
-aWE("dirstruct",57,63);\r
-aWE("discretisation",5,6,55);\r
-aWE("discretiz",9,61);\r
-aWE("discretization",12,13);\r
-aWE("displac",26);\r
-aWE("display",14,0,16,18,2,19,21,22,24,6,26,8,27,53,31,35,59,43,44,46,48,51,52);\r
-aWE("distanc",17,4,58,52);\r
-aWE("distinguish",23);\r
-aWE("distortion",44);\r
-aWE("distribution",17);\r
-aWE("divid",17);\r
-aWE("do",15);\r
-aWE("domain",58);\r
-aWE("don",12,21,36);\r
-aWE("e",21,24,58,42,48);\r
-aWE("easi",20);\r
-aWE("edg",11,12,13,14,15,17,18,2,3,20,21,5,23,24,6,25,26,8,10,53,54,55,30,56,31,57,36,58,60,62,42,44,63,48,49,65,52);\r
-aWE("edgeslist",63);\r
-aWE("edgex111",5,6);\r
-aWE("edgex112",5,6);\r
-aWE("edgex121",5,6);\r
-aWE("edgex122",5,6);\r
-aWE("edgey11",5,6);\r
-aWE("edgey12",5,6);\r
-aWE("edgey21",5,6);\r
-aWE("edgey22",5,6);\r
-aWE("edgez111",5,6);\r
-aWE("edgez121",5,6);\r
-aWE("edgez211",5,6);\r
-aWE("edgez221",5,6);\r
-aWE("edit",5,7,28,55,34,37);\r
-aWE("effect",48);\r
-aWE("eith",58,42);\r
-aWE("element",11,12,13,14,0,15,16,17,18,1,3,19,20,23,24,6,7,25,26,27,28,9,10,54,55,30,32,31,35,57,33,36,58,38,39,61,40,62,42,43,44,45,46,63,47,48,50,51,52);\r
-aWE("els",57,58);\r
-aWE("enabl",62);\r
-aWE("encapsulat",22);\r
-aWE("encounter",58);\r
-aWE("end",11,17,6,36,62,42,47);\r
-aWE("enough",42);\r
-aWE("ent",23,25,26,29,49);\r
-aWE("entiti",12,13);\r
-aWE("entity",12,0,8,62);\r
-aWE("equal",17,18,58,62,42,44);\r
-aWE("equidistant",17);\r
-aWE("equilateral",18);\r
+aWE("block",6,7);\r
+aWE("blu",3);\r
+aWE("bmp",0,53);\r
+aWE("bog",18);\r
+aWE("boolean",51);\r
+aWE("bord",43,66);\r
+aWE("border",15,3,4,55,56,31,63,43,66);\r
+aWE("both",0,11,45,51);\r
+aWE("bottom",60,42);\r
+aWE("bound",13,61);\r
+aWE("boundari",61);\r
+aWE("boundary",12,24,61,43,45);\r
+aWE("box",14,16,1,18,20,22,6,23,25,7,26,27,29,10,11,57,30,59,35,61,63,39,40,64,41,42,65,43,45,46,66,48,49,50,51,52,68);\r
+aWE("box_1",60);\r
+aWE("box_id",6,7);\r
+aWE("box1",66);\r
+aWE("box2",66);\r
+aWE("broken",1,37);\r
+aWE("brown",24);\r
+aWE("brows",0,16,1,21,22,23,24,8,29,62,39,40,65,52);\r
+aWE("build",7,10,33,60,37,61,64);\r
+aWE("built",19,23,61,45);\r
+aWE("button",16,1,17,19,2,20,5,22,23,24,25,8,26,27,29,10,11,30,32,36,61,38,39,40,64,41,65,43,44,45,46,47,48,49,50,51,52,69,53,54);\r
+aWE("cad",13);\r
+aWE("cal",61);\r
+aWE("calculat",15,19,2,33,47);\r
+aWE("calculation",12,17,32,36);\r
+aWE("careful",39);\r
+aWE("cas",16,22,6,7,27,60,61,66,52);\r
+aWE("cel",24,39,50);\r
+aWE("cent",11,45,53);\r
+aWE("centroid",45);\r
+aWE("centroidal",45);\r
+aWE("centroidal_smooth",60);\r
+aWE("certain",24,61);\r
+aWE("chang",0,18,20,6,27,60,37,38,68);\r
+aWE("characteristic",15);\r
+aWE("characteriz",13);\r
+aWE("check",24,43,53);\r
+aWE("checkbox",16,65,48);\r
+aWE("choic",12,22,61);\r
+aWE("choos",16,1,17,19,2,20,21,24,25,8,26,27,9,28,10,11,30,32,35,36,61,39,40,64,41,42,65,43,44,46,47,48,49,50,69,54);\r
+aWE("chosen",19,25,33,34,49);\r
+aWE("circl",11,60,66);\r
+aWE("circlemesh",60,66);\r
+aWE("clear",65);\r
+aWE("click",0,16,1,17,19,2,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,32,36,61,62,38,39,40,64,42,65,43,44,45,47,49,50,51,52,69,53,54);\r
+aWE("clip",0,5);\r
+aWE("clos",13,19,8,43);\r
+aWE("co",60,43);\r
+aWE("coars",18);\r
+aWE("coincid",59);\r
+aWE("coincident",59,35);\r
+aWE("color",15,0,17,19,2,24,32,36,44,47,69,53,54);\r
+aWE("combin",9,32,62,65);\r
+aWE("common",26,65,50);\r
+aWE("compar",18,43);\r
+aWE("complete",59);\r
+aWE("complex",1);\r
+aWE("component",31,42);\r
+aWE("compos",12,13,14,15,0,18,2,28,33,34,44);\r
+aWE("compound",6,7);\r
+aWE("comput",0,18,22,6,7,57,60,61,63,43,66,68);\r
+aWE("computation",22,23,7,57,60);\r
+aWE("concept",37);\r
+aWE("condition",12,24);\r
+aWE("confirm",20,25,29,39,45,49,51);\r
+aWE("confirmation",24);\r
+aWE("conform",12,37,43,66);\r
+aWE("conformity",19);\r
+aWE("connect",18,25,45);\r
+aWE("connection",13,15,3,4,31,63);\r
+aWE("connectivity",61);\r
+aWE("consid",19,22);\r
+aWE("consider",13,19,2,43);\r
+aWE("consist",15,1,17,18,19,3,4,21,22,23,24,55,56,57,33,32,36,34,47);\r
+aWE("consol",52);\r
+aWE("constant",18);\r
+aWE("construct",18,21,22,6,23,38);\r
+aWE("construction",18,22,6,23);\r
+aWE("contain",13,14,20,22,23,24,25,30,33,61,45,49);\r
+aWE("content",8,53);\r
+aWE("continu",45);\r
+aWE("contour",13,43);\r
+aWE("contrast",49);\r
+aWE("control",15,0,17,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54);\r
+aWE("converg",45);\r
+aWE("conversion",18);\r
+aWE("coordinat",13,16,27,61,53);\r
+aWE("copy",41,65,46,66,48);\r
+aWE("corn",1,54);\r
+aWE("corner",25,45,54);\r
+aWE("correspond",13,15,30,60,61,63,65,43,48);\r
+aWE("cosal",60);\r
+aWE("could",13,16);\r
+aWE("count",43);\r
+aWE("counterclockwis",61);\r
+aWE("cours",22);\r
+aWE("creat",13,14,0,16,1,18,5,22,6,23,24,7,29,57,31,35,60,37,61,63,38,41,65,46,66,48,51,54);\r
+aWE("createanddisplaygo",7);\r
+aWE("createarea",57,63);\r
+aWE("createaspectratio",63);\r
+aWE("createaspectratio3d",63);\r
+aWE("createequalto",57,63);\r
+aWE("createfilt",57,63);\r
+aWE("createfiltermanag",57,60,63);\r
+aWE("createfreeborder",63);\r
+aWE("createfreeedg",63);\r
+aWE("creategroup",57,60,63);\r
+aWE("creategroupfromgeom",57);\r
+aWE("createhypothesi",6,7,57,60,63,68);\r
+aWE("createlength",63);\r
+aWE("createlength2d",63);\r
+aWE("createlessthan",57,63);\r
+aWE("createmesh",6,7,57,60,63,68);\r
+aWE("createminimumangl",60,63);\r
+aWE("createmorethan",57,63);\r
+aWE("createmulticonnection",63);\r
+aWE("createmulticonnection2d",63);\r
+aWE("createskew",63);\r
+aWE("createtap",63);\r
+aWE("createvolume3d",63);\r
+aWE("createwarp",63);\r
+aWE("creation",13,37,61,38,51);\r
+aWE("criteria",31,65);\r
+aWE("criterion",17,19,2,24,25,57,58,32,36,63,65,44,47,49,69,54);\r
+aWE("cros",0,5,54);\r
+aWE("cubic",14);\r
+aWE("current",20,22,25,38,65,43,49);\r
+aWE("curv",13,18,11);\r
+aWE("curvilinear",18,11);\r
+aWE("cut",18,6,25,7,57,60,66,51);\r
+aWE("cutgroup",57);\r
+aWE("cylind",60);\r
+aWE("d",18);\r
+aWE("deal",13);\r
+aWE("def",60);\r
+aWE("default",0,22,11,62,65,67,53);\r
+aWE("defin",13,14,1,18,19,5,22,6,23,24,7,11,60,37,61,43,66,53);\r
+aWE("definit",13,15,18,20,21,24,25,31,38,39,49);\r
+aWE("definition",0,18,33,34);\r
+aWE("deflection",12,18,7,31);\r
+aWE("deflection1d",7);\r
+aWE("deform",53);\r
+aWE("degre",19,5);\r
+aWE("delet",8,56,60,39,65);\r
+aWE("deletediag",60);\r
+aWE("deletion",39,50);\r
+aWE("density",18);\r
+aWE("depend",12,13,22,33,34);\r
+aWE("describ",13,61);\r
+aWE("description",61);\r
+aWE("desirabl",35);\r
+aWE("desktop",42);\r
+aWE("destin",13,15,31);\r
+aWE("detail",12,0);\r
+aWE("detect",35);\r
+aWE("dh",60);\r
+aWE("diagonal",25,26,60,47);\r
+aWE("dialog",14,16,1,18,20,22,23,25,26,27,29,10,11,30,59,35,61,39,40,64,41,43,45,46,48,49,50,51);\r
+aWE("diamet",19);\r
+aWE("dif",1);\r
+aWE("differ",18);\r
+aWE("differenc",11,43);\r
+aWE("different",12,16,24,38,65,43);\r
+aWE("dimension",13,2,22,10,64,52);\r
+aWE("direct",13,43,45);\r
+aWE("direction",61,54);\r
+aWE("dirstruct",60,66);\r
+aWE("discretisation",6,7);\r
+aWE("discretiz",10,64);\r
+aWE("discretization",13,14);\r
+aWE("displac",27);\r
+aWE("display",15,0,1,17,19,2,3,20,22,23,24,25,7,27,9,28,55,32,36,62,44,45,47,49,52,69,53,54);\r
+aWE("distanc",18,5,61,53,54);\r
+aWE("distinguish",24);\r
+aWE("distortion",45);\r
+aWE("distribution",18);\r
+aWE("divid",18);\r
+aWE("do",16);\r
+aWE("domain",61);\r
+aWE("don",13,22,37,53);\r
+aWE("doubl",1);\r
+aWE("downward",53);\r
+aWE("dr",60);\r
+aWE("drag",53);\r
+aWE("drawn",53);\r
+aWE("dump",0,53);\r
+aWE("dx",60);\r
+aWE("dy",60);\r
+aWE("e",19,22,23,25,61,43,49);\r
+aWE("easi",21);\r
+aWE("edg",12,13,14,15,0,16,1,18,19,3,4,21,22,6,24,25,7,26,27,9,11,55,56,57,31,58,33,32,60,37,61,63,65,43,45,66,49,50,68,54);\r
+aWE("edgeslist",66);\r
+aWE("edgex111",6,7);\r
+aWE("edgex112",6,7);\r
+aWE("edgex121",6,7);\r
+aWE("edgex122",6,7);\r
+aWE("edgey11",6,7);\r
+aWE("edgey12",6,7);\r
+aWE("edgey21",6,7);\r
+aWE("edgey22",6,7);\r
+aWE("edgez111",6,7);\r
+aWE("edgez121",6,7);\r
+aWE("edgez211",6,7);\r
+aWE("edgez221",6,7);\r
+aWE("edit",6,8,29,57,35,38);\r
+aWE("effect",49);\r
+aWE("eith",61,43);\r
+aWE("element",12,13,14,15,0,16,1,17,18,19,2,4,20,21,24,25,7,8,26,27,28,29,10,11,56,57,31,33,32,59,36,60,34,37,61,63,39,40,64,41,65,43,44,45,46,47,66,48,49,51,52,69,54);\r
+aWE("els",7,57,60,61);\r
+aWE("enabl",65);\r
+aWE("encapsulat",23);\r
+aWE("encounter",61);\r
+aWE("end",12,18,7,31,37,65,43,48);\r
+aWE("enough",43);\r
+aWE("ent",24,26,27,30,50);\r
+aWE("entiti",13,14);\r
+aWE("entity",13,0,9,65);\r
+aWE("equal",18,33,61,65,43,45);\r
+aWE("equidistant",18);\r
+aWE("equilateral",19);\r
aWE("eras",0);\r
-aWE("etc",14,1,24,48);\r
-aWE("evaluat",1);\r
-aWE("even",21);\r
-aWE("eventual",58);\r
-aWE("every",52);\r
-aWE("everyth",21);\r
-aWE("exampl",12,21,58,50);\r
-aWE("exce",17);\r
-aWE("exceed",44);\r
-aWE("except",42);\r
-aWE("exist",11,19,23,24,28,58,62,48);\r
-aWE("existenc",21);\r
-aWE("export",5,29,30);\r
-aWE("exportation",29);\r
-aWE("exportm",5);\r
-aWE("extend",52);\r
-aWE("extremiti",4);\r
-aWE("extrud",9,10,61);\r
-aWE("extrusion",9,10,57);\r
-aWE("extrusionalongpathobject",57);\r
-aWE("extrusionsweepobject",57);\r
-aWE("f",17,6);\r
-aWE("fac",11,12,13,15,17,1,2,20,21,5,23,6,8,53,55,30,32,57,36,58,60,62,42,63,51,65,52);\r
-aWE("face1",6,57);\r
-aWE("facelist",60);\r
-aWE("facesrotat",57);\r
-aWE("facessmooth",57);\r
-aWE("facestritoquad",57);\r
-aWE("facex11",5,6);\r
-aWE("facex21",5,6);\r
-aWE("facey111",5,6);\r
-aWE("facey121",5,6);\r
-aWE("facez11",5,6);\r
-aWE("facez12",5,6);\r
-aWE("factor",17);\r
-aWE("factoryserv",5,6,55,60,65);\r
-aWE("far",42);\r
-aWE("fashion",10);\r
-aWE("fast",44);\r
-aWE("field",15,19,23,24,25,26,39,62,42,44,48,49);\r
-aWE("fifth",42);\r
-aWE("fil",29,58,62);\r
-aWE("fill",39,42);\r
-aWE("filt",19,23,24,62,48);\r
-aWE("filter",23,62);\r
-aWE("find",29,58,42);\r
-aWE("findcoincidentnod",63);\r
-aWE("findorloadcomponent",5,6,55,60,65);\r
-aWE("first",17,21,55,58,42);\r
-aWE("fix",12,5,6,57,44,63);\r
-aWE("flag",58);\r
-aWE("fold",21,22);\r
-aWE("follow",11,12,13,0,15,18,1,19,21,22,23,24,25,26,27,28,9,10,34,58,38,39,61,40,42,44,45,47,48,49,50,51);\r
-aWE("form",25,28,58,42);\r
-aWE("format",29,30);\r
-aWE("formula",17,1);\r
-aWE("four",12,52);\r
-aWE("fre",12,14,53,54,30,60,42,44,63);\r
-aWE("function",12);\r
-aWE("functionaliti",0);\r
-aWE("functionality",21,29,34,42);\r
-aWE("generat",11,12,14,17,21,30,36,58);\r
-aWE("generation",9,58,61);\r
-aWE("geom",12,6,30);\r
-aWE("geometric",12,14,6);\r
-aWE("geometrical",11,12,13,17,21,22,23,30,32,33,58,37,40,44,45,47,51);\r
-aWE("geometry",23,55,44);\r
-aWE("geompy",5,6,55,57,60,63,65);\r
-aWE("get",0,4,21,10,58,51);\r
-aWE("getelementsid",55,60);\r
-aWE("getid",5,6,55);\r
-aWE("getlistofid",55);\r
-aWE("getmaxelementarea",5,6,55);\r
-aWE("getmaxelementvolum",5,6,55);\r
-aWE("getmesh",57,63);\r
-aWE("getmesheditor",57,60,63);\r
-aWE("getnam",5,6,55);\r
-aWE("getnumberofsegment",5,6,55);\r
-aWE("gg",6);\r
-aWE("giv",62,51);\r
-aWE("given",17,1,36,42);\r
-aWE("good",44);\r
-aWE("got",58);\r
-aWE("green",23);\r
-aWE("group",19,20,23,24,7,28,10,55,30,34,57,60,62,47,48,50,51);\r
-aWE("group1",50);\r
-aWE("group12",50);\r
-aWE("group12a",50);\r
-aWE("group12b",50);\r
-aWE("group2",50);\r
-aWE("grouprotat",57);\r
-aWE("groupsmooth",57);\r
-aWE("groupsofnod",63);\r
-aWE("grouptritoquad",57);\r
-aWE("h",52);\r
-aWE("h1",18);\r
-aWE("h2",18);\r
-aWE("half",52);\r
-aWE("halv",4);\r
-aWE("hav",36,58);\r
-aWE("height",18,52);\r
-aWE("helical",10);\r
-aWE("help",14);\r
-aWE("henc",58);\r
-aWE("her",28,58);\r
-aWE("hexa",5,6,57);\r
-aWE("hexa_3d",6);\r
-aWE("hexa3d",6);\r
-aWE("hexagon",10);\r
-aWE("hexahedral",13,5,6);\r
-aWE("hexahedralization",21);\r
-aWE("hexahedrical",5,6,57);\r
-aWE("hexahedron",12,13,15,1,6,57,33,65);\r
-aWE("hid",0);\r
-aWE("high",12);\r
-aWE("highlight",2,3,19,23,24,53,54,48);\r
-aWE("hol",54);\r
-aWE("hold",58);\r
-aWE("how",10,37);\r
-aWE("hyp",22);\r
-aWE("hyp1",5,60,65);\r
-aWE("hyp2",5,60,65);\r
-aWE("hyp3",5,65);\r
-aWE("hyp4",5,65);\r
-aWE("hyparea",5,6,55);\r
-aWE("hypnbseg",5,6,55);\r
-aWE("hypothes",11,17,21,22,6,30,36,37);\r
-aWE("hypothesi",11,17,21,5,6,55,32,57,33,36,37,63,65);\r
-aWE("hypvolum",5,6,55);\r
-aWE("i",21,24,55,58,60,42,48);\r
-aWE("icon",28,38,41);\r
-aWE("id",0,17,19,23,24,25,26,27,9,10,61,42,44,48,49);\r
-aWE("id_circl",57);\r
-aWE("id_face1",6,57);\r
-aWE("idbox",5,6,55,60,65);\r
-aWE("idcomp",63);\r
-aWE("idea",10);\r
-aWE("idedg",5,65);\r
-aWE("idfac",55);\r
-aWE("idtoobject",5,60,63,65);\r
-aWE("if",12,15,4,21,5,6,9,10,55,57,36,58,37,38,61,62,42,44,48);\r
-aWE("imag",10);\r
-aWE("imp",12);\r
-aWE("import",5,6,55,29,30,57,60,63,65);\r
-aWE("importation",29);\r
-aWE("importcomponentgui",5,6,55,60);\r
-aWE("includ",12,51);\r
-aWE("increas",5,6,63);\r
-aWE("index",58);\r
-aWE("indic",58);\r
-aWE("indicat",52);\r
-aWE("info",0,51,65);\r
-aWE("information",12,0,28,51,65);\r
-aWE("init",5,6,55,60);\r
-aWE("initial",10,62,45,50);\r
-aWE("initializ",5,6,55);\r
-aWE("input",17);\r
-aWE("insert",62,42);\r
-aWE("instead",58);\r
-aWE("intact",7);\r
-aWE("intend",42);\r
-aWE("interest",12);\r
-aWE("intermediat",42);\r
-aWE("internal",58);\r
-aWE("intersect",58,50);\r
-aWE("intersectgroup",55);\r
-aWE("intersection",55,58,50);\r
-aWE("introduc",11,36);\r
-aWE("introduction",30);\r
-aWE("invers",12,25,57);\r
-aWE("inversediag",57);\r
-aWE("inversion",25,57);\r
-aWE("invisibl",64);\r
-aWE("iso",58);\r
-aWE("isolin",58);\r
-aWE("isplanarfac",6,57);\r
-aWE("item",15,19,20,24,25,26,28,9,10,29,34,58,39,61,40,42,44,45,47,48,49,50);\r
-aWE("iteration",10,44);\r
-aWE("iterativ",44);\r
-aWE("join",43);\r
-aWE("just",58,38);\r
-aWE("k",17);\r
-aWE("keep",10,44,45);\r
-aWE("key",58);\r
-aWE("know",58);\r
-aWE("ko",57);\r
-aWE("l",52);\r
-aWE("laplacian",44);\r
-aWE("largest",18);\r
-aWE("last",17,42);\r
-aWE("lastnodeid",57);\r
-aWE("lay",9,58,61);\r
-aWE("lcc",5,6,55,60,65);\r
-aWE("learn",0,51);\r
-aWE("least",58,44);\r
-aWE("leav",21,7);\r
-aWE("left",10,58);\r
-aWE("legth",60);\r
-aWE("len",55,60);\r
-aWE("length",11,14,17,18,5,6,30,56,31,36,60,42,63,52);\r
-aWE("lengthfromedg",6);\r
-aWE("les",62,42,44);\r
-aWE("let",10);\r
-aWE("level",11,15);\r
-aWE("libnetgenengin",6);\r
-aWE("library",23,62);\r
-aWE("libstdmeshersengin",5,6,55,60,65);\r
-aWE("lik",15,1,21,27,42);\r
-aWE("limit",58,42,44);\r
-aWE("lin",12,17,9,58,61,43);\r
-aWE("link",42);\r
-aWE("list",15,19,23,24,7,10,62,48);\r
-aWE("lk",17);\r
-aWE("ll",21);\r
-aWE("load",58,62);\r
-aWE("local",5,22,6,30,57,36,63);\r
-aWE("locallength",6);\r
-aWE("locat",58,42);\r
-aWE("location",17,26,29,44);\r
-aWE("longest",18);\r
-aWE("look",27,58,62);\r
-aWE("low",12);\r
-aWE("ly",58);\r
-aWE("main",19,24,7,10,36,58,62,48,50);\r
-aWE("makearc",6,57);\r
-aWE("makebox",5,6,55,60,63,65);\r
-aWE("makecirclethreepnt",57);\r
-aWE("makecompound",5,6,60,63);\r
-aWE("makecylinderrh",6);\r
-aWE("makeedg",5,6);\r
-aWE("makefac",6,57);\r
-aWE("makehexa",5,6);\r
-aWE("makequad",5,6);\r
-aWE("makesketch",6);\r
-aWE("makevector",6,57);\r
-aWE("makevertex",5,6,57);\r
-aWE("makewir",6,57);\r
-aWE("manag",11,15);\r
-aWE("manual",23,58);\r
-aWE("map",58);\r
-aWE("mas",10);\r
-aWE("math",57,63);\r
-aWE("max",11,30,32,33,44);\r
-aWE("maxelementarea",5,6,55,57,60,65);\r
-aWE("maxelementarea_500",5,55);\r
-aWE("maxelementarea_800",6);\r
-aWE("maxelementvolum",5,6,55);\r
-aWE("maxelementvolume_500",5,55);\r
-aWE("maxelementvolume_900",6);\r
-aWE("maximum",17,6,32,33,43,44);\r
-aWE("mean",12);\r
-aWE("meaningful",12);\r
-aWE("measur",52);\r
-aWE("meet",24,48);\r
-aWE("mefisto_2d",5,6,60,65);\r
-aWE("mefisto2d",5,6);\r
-aWE("menu",0,15,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,34,36,58,38,39,61,40,41,62,42,44,45,47,48,49,50,51);\r
-aWE("merg",34,42,63);\r
-aWE("mergenod",63);\r
-aWE("mesh",11,12,13,14,0,15,16,17,18,1,2,3,19,4,20,21,5,22,23,24,6,7,25,26,27,28,9,10,53,54,55,29,30,32,31,34,35,57,33,36,58,59,60,37,38,39,61,40,41,62,42,43,44,45,46,63,47,48,49,50,51,65,52);\r
-aWE("mesh_1",21);\r
-aWE("mesh_borders_at_multi",60);\r
-aWE("mesh_freebord",60);\r
-aWE("meshbox",5,6,55);\r
-aWE("meshm",5);\r
-aWE("method",44);\r
-aWE("minimum",14,24,30,35,60,42,48);\r
-aWE("mirror",63);\r
-aWE("mirrorobject",63);\r
-aWE("mod",0,59);\r
-aWE("model",12,30);\r
-aWE("modification",12,15,19,24,25,26,28,9,10,30,34,58,38,39,61,40,42,44,45,47,48,49);\r
-aWE("modify",19,24,28,57,48);\r
-aWE("modul",12,13,30,41);\r
-aWE("mous",23);\r
-aWE("mov",26,30,57);\r
-aWE("movenod",57);\r
-aWE("mport",63);\r
-aWE("multi",14,2,3,30,60);\r
-aWE("multiconnection",60);\r
-aWE("multipli",18);\r
-aWE("must",21,10,58,62,42);\r
-aWE("mystudy",5,60,65);\r
-aWE("mystudyid",5,6,55,60);\r
-aWE("n",58,42);\r
-aWE("nam",21,5,23,28,55,29,62,50,65);\r
-aWE("nb",55,60);\r
-aWE("nbedg",65);\r
-aWE("nbfac",65);\r
-aWE("nbhexa",65);\r
-aWE("nbnod",57,65);\r
-aWE("nbpolygon",65);\r
-aWE("nbpolyhedron",65);\r
-aWE("nbprism",65);\r
-aWE("nbpyramid",65);\r
-aWE("nbquadrangl",65);\r
-aWE("nbtetra",65);\r
-aWE("nbtriangl",65);\r
-aWE("nbvolum",65);\r
-aWE("ne",21);\r
-aWE("necessary",15);\r
-aWE("need",1);\r
-aWE("neighbor",25,49);\r
-aWE("netgen",13);\r
-aWE("netgen_3d",6);\r
-aWE("netgen3d",6);\r
-aWE("netgenplugin",6);\r
-aWE("new",4,21,22,23,26,58,37,62,50);\r
-aWE("next",0,17,58);\r
-aWE("nod",12,0,15,16,17,18,19,20,23,26,27,9,30,34,57,58,59,38,39,61,62,42,43,44,46,63,51,65,52);\r
-aWE("nodal",58,44);\r
-aWE("non",21);\r
-aWE("normal",45,52);\r
-aWE("not",15,21,7,44);\r
-aWE("notic",12);\r
-aWE("now",4,21,10);\r
-aWE("numb",11,12,17,5,6,9,30,57,58,61,42,44,63,51,65);\r
-aWE("number",0,27);\r
-aWE("numberofsegment",5,6,55,57,60,63,65);\r
-aWE("numberofsegments_10",5,6,55);\r
-aWE("numerical",11);\r
-aWE("obey",42);\r
-aWE("object",11,13,0,15,17,4,20,21,22,23,24,6,7,28,29,32,57,33,58,59,37,38,39,40,47,48,51);\r
-aWE("objecttoid",5,6,55,60);\r
-aWE("objet",23);\r
-aWE("obliqu",10);\r
-aWE("obtain",15,21);\r
-aWE("ok",15,19,4,24,7,25,26,28,9,10,29,57,38,39,61,42,44,48,49,50);\r
-aWE("on",12,17,21,22,24,7,25,9,53,54,36,58,60,37,38,61,62,42,44,45,47,48,50,65);\r
-aWE("onc",48);\r
-aWE("onto",36,58);\r
-aWE("opaqu",64);\r
-aWE("operat",11);\r
-aWE("operation",13,0,15,16,17,18,1,2,3,19,22,23,24,7,25,26,28,9,10,53,54,29,30,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52);\r
-aWE("opposit",11,4,5,24,6,36,42,43,63);\r
-aWE("option",12,45,47);\r
-aWE("optional",21,10);\r
-aWE("ord",12,19,58);\r
-aWE("orientation",19,4,24,48);\r
-aWE("origin",52);\r
-aWE("other",48);\r
-aWE("otherwis",21);\r
-aWE("our",21);\r
-aWE("outlin",54);\r
-aWE("outsid",58);\r
-aWE("own",12);\r
-aWE("pag",23);\r
-aWE("pair",17);\r
-aWE("paramet",12,17,62,42);\r
-aWE("parameter",11,0,4,10,40,42);\r
-aWE("parametric",12,58);\r
-aWE("part",42,44);\r
-aWE("particularity",12);\r
-aWE("path",10,57,62);\r
-aWE("pattern",58);\r
-aWE("pattern_nam",58);\r
-aWE("pentahedron",1);\r
-aWE("perfect",18);\r
-aWE("perform",30,39,42,45,50);\r
-aWE("pi",57,63);\r
-aWE("pictur",2,23,10,53,54);\r
-aWE("plac",42);\r
-aWE("plan",4,55,60,45,52);\r
-aWE("planar",52);\r
-aWE("platform",23,41);\r
-aWE("pleas",7);\r
-aWE("plu",9,61);\r
-aWE("point",12,17,6,10,57,58,61,40,42,45,63,47,52);\r
-aWE("point111",5,6);\r
-aWE("point112",5,6);\r
-aWE("point121",5,6);\r
-aWE("point122",5,6);\r
-aWE("point211",5,6);\r
-aWE("point212",5,6);\r
-aWE("point221",5,6);\r
-aWE("point222",5,6);\r
-aWE("pointstruct",57,63);\r
-aWE("polygon",15,65);\r
-aWE("polyhedral",15);\r
-aWE("polyhedron",15,65);\r
-aWE("pop",0,7,27);\r
-aWE("position",12,58);\r
-aWE("posses",36);\r
-aWE("possibility",62);\r
-aWE("possibl",11,1,23,58);\r
-aWE("powerful",62);\r
-aWE("precision",15);\r
-aWE("preferenc",59);\r
-aWE("prefix",62);\r
-aWE("pres",15,10,38,44);\r
-aWE("present",12,50);\r
-aWE("presentation",14,0);\r
-aWE("preserv",58);\r
-aWE("preset",11);\r
-aWE("preview",15,4,24,58,62);\r
-aWE("previou",17,48);\r
-aWE("previous",22,23,30,58);\r
-aWE("principl",10);\r
-aWE("print",5,6,55,57,60,65);\r
-aWE("prism",65);\r
-aWE("problem",5,6,55);\r
-aWE("proce",21,7);\r
-aWE("procedur",18,44);\r
-aWE("proceed",37);\r
-aWE("proces",44);\r
-aWE("produc",12,9,61,44);\r
-aWE("product",52);\r
-aWE("program",17,21);\r
-aWE("progression",17);\r
-aWE("project",58);\r
-aWE("projection",58,52);\r
-aWE("propagat",5,6,36,63);\r
-aWE("propagatea",6);\r
-aWE("propagation",11,5,6,36,63,65);\r
-aWE("provid",15);\r
-aWE("pseudo",25);\r
-aWE("pul",44);\r
-aWE("px",6,57);\r
-aWE("px1",57);\r
-aWE("py",6,57);\r
-aWE("py1",57);\r
-aWE("pyramid",65);\r
-aWE("pyramidal",13);\r
-aWE("python",51);\r
-aWE("pz",6,57);\r
-aWE("pz1",57);\r
-aWE("qi",1);\r
-aWE("qk",1);\r
-aWE("quad",57,52);\r
-aWE("quad2d",6,55);\r
-aWE("quadrangl",12,13,15,16,18,1,5,24,6,25,9,32,31,35,57,61,43,63,65);\r
-aWE("quadrangle_2d",6,55);\r
-aWE("quadrangular",13,5,6,36,63);\r
-aWE("quadtotri",57);\r
-aWE("quality",14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52);\r
-aWE("quantity",11);\r
-aWE("radio",19,23,24,40,42,45,48);\r
-aWE("rang",55,60);\r
-aWE("ratio",14,18,1,30,60,44,46,52);\r
-aWE("ready",21);\r
+aWE("etc",15,2,25,49);\r
+aWE("even",22,33);\r
+aWE("eventual",61);\r
+aWE("every",54);\r
+aWE("everyth",22);\r
+aWE("exampl",13,2,22,24,61,51);\r
+aWE("exce",18);\r
+aWE("exceed",45);\r
+aWE("except",43,53);\r
+aWE("exist",12,20,24,25,29,61,65,49);\r
+aWE("existenc",22);\r
+aWE("exponent",18);\r
+aWE("export",0,6,30,31,53);\r
+aWE("exportation",30);\r
+aWE("exportm",6);\r
+aWE("extend",53,54);\r
+aWE("extreme",18);\r
+aWE("extremiti",5);\r
+aWE("extrud",10,11,60,64);\r
+aWE("extrusion",10,11,60,66);\r
+aWE("extrusionalongpathobject",60,66);\r
+aWE("extrusionsweepobject",60);\r
+aWE("f",18,7);\r
+aWE("fac",12,13,14,0,16,18,2,3,21,22,6,23,24,7,9,55,57,31,33,60,37,61,63,65,43,66,52,68,54);\r
+aWE("face_1",60);\r
+aWE("face_2",60);\r
+aWE("face1",7,60,66);\r
+aWE("facelist",63);\r
+aWE("facesrotat",60);\r
+aWE("facessmooth",60);\r
+aWE("facestritoquad",60);\r
+aWE("facex11",6,7);\r
+aWE("facex21",6,7);\r
+aWE("facey111",6,7);\r
+aWE("facey121",6,7);\r
+aWE("facez11",6,7);\r
+aWE("facez12",6,7);\r
+aWE("factor",18,25);\r
+aWE("factoryserv",6,7,57,60,63,68);\r
+aWE("fail",60);\r
+aWE("far",43);\r
+aWE("fashion",11);\r
+aWE("fast",45);\r
+aWE("featur",24);\r
+aWE("field",16,1,20,24,26,27,40,65,43,45,49,50);\r
+aWE("fifth",43);\r
+aWE("fil",30,61,65);\r
+aWE("fill",63,40,43);\r
+aWE("filt",20,24,25,65,49);\r
+aWE("filter",24,65);\r
+aWE("fin",18);\r
+aWE("find",30,61,43);\r
+aWE("findcoincidentnod",66);\r
+aWE("findorloadcomponent",6,7,57,60,63,68);\r
+aWE("finenes",18);\r
+aWE("first",1,18,22,57,60,37,61,43);\r
+aWE("fit",53);\r
+aWE("fiv",60);\r
+aWE("fix",13,6,7,45,66);\r
+aWE("flag",61);\r
+aWE("fold",22,23);\r
+aWE("follow",12,13,14,16,1,2,20,22,23,24,25,26,27,28,29,10,11,35,61,39,40,64,41,43,45,46,48,49,50,51,52);\r
+aWE("font",53);\r
+aWE("form",1,26,29,61,43);\r
+aWE("format",0,30,31,53);\r
+aWE("formula",18,19,2);\r
+aWE("four",13,19,54);\r
+aWE("fourth",60);\r
+aWE("fram",53);\r
+aWE("fre",13,15,55,56,31,63,43,45,66);\r
+aWE("function",13);\r
+aWE("functionaliti",53);\r
+aWE("functionality",22,30,59,35,43,53);\r
+aWE("futur",18);\r
+aWE("g",23);\r
+aWE("gaus",53);\r
+aWE("generat",12,13,15,18,22,31,37,61);\r
+aWE("generation",10,61,64);\r
+aWE("geom",13,7,31,60);\r
+aWE("geometric",13,15,7);\r
+aWE("geometrical",12,13,14,18,22,23,24,31,33,34,61,38,41,45,46,48,52);\r
+aWE("geometry",23,24,57,60,45);\r
+aWE("geompy",6,7,57,60,63,66,68);\r
+aWE("get",0,5,22,7,11,61,52);\r
+aWE("getalgorithm",60);\r
+aWE("getborder",63);\r
+aWE("getelementsid",57,63);\r
+aWE("geterrorcod",60);\r
+aWE("getid",6);\r
+aWE("getlistofid",57);\r
+aWE("getmaxelementarea",6,7);\r
+aWE("getmaxelementvolum",6,7);\r
+aWE("getmesh",60,66);\r
+aWE("getmesheditor",60,63,66);\r
+aWE("getnam",6,7);\r
+aWE("getnumberofsegment",6,7);\r
+aWE("getpattern",60);\r
+aWE("gg",7);\r
+aWE("giv",65,52);\r
+aWE("given",18,33,43);\r
+aWE("global",53);\r
+aWE("go",60);\r
+aWE("good",45);\r
+aWE("got",61);\r
+aWE("graduat",53);\r
+aWE("graphical",0);\r
+aWE("great",18,53);\r
+aWE("greatest",19,2);\r
+aWE("green",24);\r
+aWE("group",20,21,24,25,8,29,11,57,31,35,60,63,65,45,48,49,51,52);\r
+aWE("group1",51);\r
+aWE("group12",51);\r
+aWE("group12a",51);\r
+aWE("group12b",51);\r
+aWE("group2",51);\r
+aWE("grouprotat",60);\r
+aWE("groupsmooth",60);\r
+aWE("groupsofnod",66);\r
+aWE("grouptritoquad",60);\r
+aWE("h",54);\r
+aWE("half",19,54);\r
+aWE("halv",5);\r
+aWE("hav",19,33,37,61);\r
+aWE("hedron",60);\r
+aWE("height",54);\r
+aWE("helical",11);\r
+aWE("help",15);\r
+aWE("henc",61);\r
+aWE("her",61);\r
+aWE("hexa",6,7);\r
+aWE("hexa_3d",7);\r
+aWE("hexa3d",7);\r
+aWE("hexagon",11);\r
+aWE("hexahedral",14,6,7);\r
+aWE("hexahedralization",22);\r
+aWE("hexahedrical",6,7);\r
+aWE("hexahedron",13,14,16,2,7,60,34,68);\r
+aWE("hh",60);\r
+aWE("hid",0,53);\r
+aWE("high",13);\r
+aWE("highlight",3,4,20,24,25,55,56,49);\r
+aWE("hmax",19);\r
+aWE("hol",56);\r
+aWE("hold",61);\r
+aWE("how",11,38);\r
+aWE("hyp",23);\r
+aWE("hyp1",6,63,68);\r
+aWE("hyp2",6,63,68);\r
+aWE("hyp3",6,68);\r
+aWE("hyp4",6,68);\r
+aWE("hyparea",6,7);\r
+aWE("hypnbseg",6,7,57);\r
+aWE("hypothes",12,0,18,22,23,7,57,31,33,37,38);\r
+aWE("hypothesi",12,18,22,6,7,57,33,34,37,38,66,68);\r
+aWE("hypvolum",6,7);\r
+aWE("i",19,22,25,57,60,61,63,43,49);\r
+aWE("icon",29,39,42);\r
+aWE("id",0,18,20,24,25,26,27,28,10,11,64,43,45,49,50);\r
+aWE("id_arc",7);\r
+aWE("id_circl",60,66);\r
+aWE("id_fac",7);\r
+aWE("id_face1",7,60,66);\r
+aWE("idbox",6,7,57,63,68);\r
+aWE("idcomp",66);\r
+aWE("idea",11);\r
+aWE("idedg",6,68);\r
+aWE("idfac",57);\r
+aWE("idtoobject",6,63,66,68);\r
+aWE("if",13,16,5,22,6,23,7,10,11,57,33,60,37,61,38,39,64,65,43,45,49,53);\r
+aWE("ii",60);\r
+aWE("imag",0,11,53);\r
+aWE("imp",13);\r
+aWE("import",6,7,57,30,31,60,63,66,68);\r
+aWE("importation",30);\r
+aWE("importcomponentgui",6,7,63);\r
+aWE("includ",13,52);\r
+aWE("increas",6,7,66);\r
+aWE("index",24,61);\r
+aWE("indic",61);\r
+aWE("indicat",54);\r
+aWE("info",0,52,68);\r
+aWE("information",13,0,29,52,68);\r
+aWE("init",6,7,63);\r
+aWE("init_geom",60);\r
+aWE("initial",11,65,46,51);\r
+aWE("initializ",6,7,57);\r
+aWE("input",1,18);\r
+aWE("inscrib",19);\r
+aWE("insert",65,43);\r
+aWE("instead",37,61);\r
+aWE("intact",8);\r
+aWE("integ",24);\r
+aWE("intend",43);\r
+aWE("interest",13);\r
+aWE("intermediat",43);\r
+aWE("internal",61);\r
+aWE("intersect",61,51);\r
+aWE("intersectgroup",57);\r
+aWE("intersection",57,61,51);\r
+aWE("introduc",12,24,37);\r
+aWE("introduction",31);\r
+aWE("invers",13,26,60);\r
+aWE("inversediag",60);\r
+aWE("inversion",26,60);\r
+aWE("invisibl",67);\r
+aWE("isdon",60);\r
+aWE("iso",61);\r
+aWE("isolin",61);\r
+aWE("isometric",53);\r
+aWE("isplanarfac",7,60,66);\r
+aWE("item",16,1,20,21,25,26,27,29,10,11,30,35,61,40,64,41,43,45,46,48,49,50,51);\r
+aWE("iteration",11,45);\r
+aWE("iterativ",45);\r
+aWE("join",44);\r
+aWE("jpeg",0,53);\r
+aWE("jpg",0,53);\r
+aWE("just",1,61,39);\r
+aWE("k",18,19);\r
+aWE("keep",11,45,46);\r
+aWE("key",61);\r
+aWE("keyboard",25);\r
+aWE("know",61);\r
+aWE("ko",60);\r
+aWE("l",54);\r
+aWE("label",53);\r
+aWE("laplacian",45);\r
+aWE("last",1,18,37,43);\r
+aWE("lastnodeid",60);\r
+aWE("lay",10,61,64);\r
+aWE("lcc",6,7,57,60,63,68);\r
+aWE("learn",52);\r
+aWE("least",61,45);\r
+aWE("leav",22,8);\r
+aWE("left",0,11,61,53);\r
+aWE("legth",63);\r
+aWE("len",57,63);\r
+aWE("length",12,15,18,19,6,7,31,58,33,32,63,43,66,53,54);\r
+aWE("lengthfromedg",7,60,66);\r
+aWE("les",65,43,45);\r
+aWE("let",11);\r
+aWE("level",12,16);\r
+aWE("libnetgenengin",7);\r
+aWE("library",24,65);\r
+aWE("libstdmeshersengin",6,7,57,60,63,68);\r
+aWE("lik",16,2,28,43);\r
+aWE("limit",61,43,45);\r
+aWE("lin",13,1,18,10,37,61,64,44);\r
+aWE("link",43);\r
+aWE("list",0,16,20,24,25,8,11,65,49);\r
+aWE("lk",18);\r
+aWE("ll",53);\r
+aWE("load",61,65);\r
+aWE("loadfromfac",60);\r
+aWE("local",6,23,7,31,37,66);\r
+aWE("locallength",7);\r
+aWE("locat",61,43);\r
+aWE("location",18,27,30,45);\r
+aWE("lock",25,45,53);\r
+aWE("longest",19);\r
+aWE("look",28,61,65);\r
+aWE("low",13,18);\r
+aWE("ly",61);\r
+aWE("main",20,25,8,11,37,61,65,49,51);\r
+aWE("makearc",7,60,66);\r
+aWE("makebox",6,7,57,63,66,68);\r
+aWE("makeboxdxdydz",60);\r
+aWE("makecirclethreepnt",60,66);\r
+aWE("makecompound",6,7,63,66);\r
+aWE("makecylinderrh",7,60);\r
+aWE("makeedg",6,7);\r
+aWE("makefac",7,60,66);\r
+aWE("makehexa",6,7);\r
+aWE("makemesh",60);\r
+aWE("makepolygon",60);\r
+aWE("makequad",6,7);\r
+aWE("makesketch",7);\r
+aWE("makevector",7,60,66);\r
+aWE("makevertex",6,7,60,66);\r
+aWE("makewir",7,60,66);\r
+aWE("manag",12,16);\r
+aWE("manual",24,61);\r
+aWE("map",33,60,61);\r
+aWE("mark",53);\r
+aWE("mas",11);\r
+aWE("math",60,66);\r
+aWE("max",12,7,31,33,34,45);\r
+aWE("max_element_area",60);\r
+aWE("maxelementarea",6,7,60,63,68);\r
+aWE("maxelementarea_500",6);\r
+aWE("maxelementarea_800",7);\r
+aWE("maxelementvolum",6,7);\r
+aWE("maxelementvolume_500",6);\r
+aWE("maxelementvolume_900",7);\r
+aWE("maximum",18,7,33,34,44,45,52);\r
+aWE("mean",13);\r
+aWE("meaningful",13);\r
+aWE("measur",54);\r
+aWE("meet",25,49);\r
+aWE("mefisto_2d",6,7,63,68);\r
+aWE("mefisto2d",6,7);\r
+aWE("menu",16,1,18,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,35,37,61,39,40,64,41,42,65,43,45,46,48,49,50,51,52);\r
+aWE("merg",59,35,43,66);\r
+aWE("mergeequalelement",66);\r
+aWE("mergenod",66);\r
+aWE("mesh",12,13,14,15,0,16,1,17,18,19,2,3,4,20,5,21,22,6,23,24,25,7,8,26,27,28,29,10,11,55,56,57,30,31,33,32,59,35,36,60,34,37,61,62,63,38,39,40,64,41,42,65,43,44,45,46,47,66,48,49,50,51,52,68,69,53,54);\r
+aWE("mesh_1",22,60);\r
+aWE("mesh_2",60);\r
+aWE("mesh_borders_at_multi",63);\r
+aWE("mesh_freebord",63);\r
+aWE("meshbox",6,7);\r
+aWE("mesheditor",60);\r
+aWE("meshm",6);\r
+aWE("method",60,45);\r
+aWE("middl",1,37);\r
+aWE("minimum",15,18,25,31,36,63,43,49);\r
+aWE("mirror",66);\r
+aWE("mirrorobject",66);\r
+aWE("mod",0,18,62);\r
+aWE("model",13,31);\r
+aWE("modification",13,16,1,20,25,26,27,29,10,11,31,35,61,39,40,64,41,43,45,46,48,49,50);\r
+aWE("modify",20,25,29,60,49);\r
+aWE("modul",13,14,1,18,24,31,60,42,53);\r
+aWE("mous",0,24,53);\r
+aWE("mov",27,60);\r
+aWE("movenod",60);\r
+aWE("multi",15,3,4,31,63);\r
+aWE("multiconnection",63);\r
+aWE("must",22,11,61,65,43);\r
+aWE("myelemid",63);\r
+aWE("mypnt1",63);\r
+aWE("mypnt2",63);\r
+aWE("mystudy",6,60,63,68);\r
+aWE("mystudyid",6,7,63);\r
+aWE("n",61,43);\r
+aWE("nam",22,6,23,24,29,57,30,65,51,68,53);\r
+aWE("nb",57,63);\r
+aWE("nb_segments_1",60);\r
+aWE("nb_vert",60);\r
+aWE("nbedg",66,68);\r
+aWE("nbfac",68);\r
+aWE("nbhexa",68);\r
+aWE("nbnod",60,66,68);\r
+aWE("nbpolygon",68);\r
+aWE("nbpolyhedron",68);\r
+aWE("nbprism",68);\r
+aWE("nbpyramid",68);\r
+aWE("nbquadrangl",66,68);\r
+aWE("nbtetra",68);\r
+aWE("nbtriangl",66,68);\r
+aWE("nbvolum",66,68);\r
+aWE("ne",22);\r
+aWE("necessary",16);\r
+aWE("negativ",18);\r
+aWE("neighbor",26,50);\r
+aWE("netgen",14);\r
+aWE("netgen_3d",7);\r
+aWE("netgen3d",7);\r
+aWE("netgenplugin",7);\r
+aWE("new",0,5,22,23,24,27,61,38,65,51);\r
+aWE("next",18,61);\r
+aWE("nod",13,0,16,1,17,18,19,20,21,24,27,28,10,31,33,35,60,61,62,63,39,40,64,65,43,44,45,47,66,52,68,54);\r
+aWE("nodal",61,45);\r
+aWE("node_id",60);\r
+aWE("node_start_id",60);\r
+aWE("non",22);\r
+aWE("normal",46,54);\r
+aWE("normalisation",19);\r
+aWE("not",16,19,22,24,8);\r
+aWE("noth",24);\r
+aWE("notic",13);\r
+aWE("now",5,22,11,60);\r
+aWE("numb",12,13,1,18,6,24,7,10,31,33,61,64,43,45,66,52,68,53);\r
+aWE("number",0,1,28);\r
+aWE("numberofsegment",6,7,57,60,63,66,68);\r
+aWE("numberofsegments_10",6);\r
+aWE("numberofsegments_7",7);\r
+aWE("numeric",25);\r
+aWE("numerical",12);\r
+aWE("obey",43);\r
+aWE("object",12,14,0,16,1,18,5,21,22,23,24,25,7,8,29,30,33,60,34,61,62,38,39,40,41,48,49,52,69,53);\r
+aWE("objecttoid",6,7,63);\r
+aWE("objet",24);\r
+aWE("obliqu",11);\r
+aWE("obtain",16);\r
+aWE("offset",53);\r
+aWE("ok",16,1,20,5,25,8,26,27,29,10,11,30,60,39,40,64,43,45,49,50,51);\r
+aWE("on",13,1,18,22,23,25,8,26,10,55,56,59,37,61,63,38,39,64,65,43,45,46,48,49,51,68);\r
+aWE("onc",49);\r
+aWE("onto",37,61);\r
+aWE("oo",19);\r
+aWE("opaqu",67);\r
+aWE("operat",12);\r
+aWE("operation",14,16,17,18,19,2,3,4,20,23,24,25,8,26,27,29,10,11,55,56,30,31,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54);\r
+aWE("opposit",12,5,6,25,7,33,37,43,44,66);\r
+aWE("option",13,0,18,46,48);\r
+aWE("optional",22,11);\r
+aWE("ord",13,20,61);\r
+aWE("ordinary",1,37);\r
+aWE("orientat",53);\r
+aWE("orientation",20,5,25,60,49);\r
+aWE("origin",54);\r
+aWE("other",49);\r
+aWE("otherwis",22,33);\r
+aWE("our",22);\r
+aWE("out",53);\r
+aWE("outlin",56);\r
+aWE("outsid",61);\r
+aWE("own",13);\r
+aWE("pag",24,29);\r
+aWE("pair",18);\r
+aWE("pan",53);\r
+aWE("paramet",13,18,2,65,43);\r
+aWE("parameter",12,0,5,11,41,43,53);\r
+aWE("parametric",13,61);\r
+aWE("parent",23);\r
+aWE("part",43,45,53);\r
+aWE("particular",60);\r
+aWE("particularity",13);\r
+aWE("pas",60);\r
+aWE("path",11,60,65,66);\r
+aWE("pattern",60,61);\r
+aWE("pattern_nam",61);\r
+aWE("pentahedron",2);\r
+aWE("perform",31,40,43,46,51);\r
+aWE("perimet",19);\r
+aWE("pi",60,66);\r
+aWE("pictur",3,24,11,55,56,59);\r
+aWE("plac",43,53);\r
+aWE("plan",5,63,46,54);\r
+aWE("planar",54);\r
+aWE("platform",24,42);\r
+aWE("pleas",8);\r
+aWE("plot",18);\r
+aWE("plu",10,64);\r
+aWE("png",0,53);\r
+aWE("point",13,1,18,7,11,60,37,61,64,41,43,46,66,48,53,54);\r
+aWE("point111",6,7);\r
+aWE("point112",6,7);\r
+aWE("point121",6,7);\r
+aWE("point122",6,7);\r
+aWE("point211",6,7);\r
+aWE("point212",6,7);\r
+aWE("point221",6,7);\r
+aWE("point222",6,7);\r
+aWE("pointstruct",60,66);\r
+aWE("polygon",16,60,68);\r
+aWE("polygonal",60);\r
+aWE("polyhedral",16,60);\r
+aWE("polyhedron",16,60,68);\r
+aWE("pop",8,28);\r
+aWE("position",13,61,53);\r
+aWE("posses",37);\r
+aWE("possibility",65);\r
+aWE("possibl",12,2,24,61);\r
+aWE("post",53);\r
+aWE("powerful",65);\r
+aWE("precision",16);\r
+aWE("preferenc",12,31,33,62);\r
+aWE("prefix",65);\r
+aWE("preproces",24);\r
+aWE("pres",16,1,11,39,53);\r
+aWE("present",13,0,51);\r
+aWE("presentation",15,0,53);\r
+aWE("preserv",61);\r
+aWE("preset",12);\r
+aWE("preview",16,5,25,61,65);\r
+aWE("previou",18,49);\r
+aWE("previous",23,24,31,61);\r
+aWE("principl",11);\r
+aWE("print",6,7,57,60,63,66,68);\r
+aWE("prism",68);\r
+aWE("pro",53);\r
+aWE("problem",6,7,57);\r
+aWE("proce",22,8);\r
+aWE("procedur",45);\r
+aWE("proceed",38);\r
+aWE("proces",45);\r
+aWE("produc",13,10,64,45);\r
+aWE("product",54);\r
+aWE("program",22);\r
+aWE("progression",18);\r
+aWE("project",61);\r
+aWE("projection",61,54);\r
+aWE("prompt",18);\r
+aWE("propagat",6,7,37,66);\r
+aWE("propagation",12,6,7,37,66,68);\r
+aWE("properti",53);\r
+aWE("provid",0,16,25);\r
+aWE("pseudo",26);\r
+aWE("pul",45);\r
+aWE("px",7,60,66);\r
+aWE("px1",60,66);\r
+aWE("py",7,60,66);\r
+aWE("py1",60,66);\r
+aWE("pyramid",68);\r
+aWE("pyramidal",14);\r
+aWE("python",52);\r
+aWE("pz",7,60,66);\r
+aWE("pz1",60,66);\r
+aWE("qi",2);\r
+aWE("qk",19,2);\r
+aWE("quad",60,54);\r
+aWE("quad2d",7,57);\r
+aWE("quadrangl",12,13,14,16,17,19,2,6,25,7,26,10,31,33,32,36,60,64,44,66,68);\r
+aWE("quadrangle_2d",7,57);\r
+aWE("quadrangular",14,6,7,33,37,66);\r
+aWE("quadratic",12,1,37);\r
+aWE("quadtotri",60);\r
+aWE("quality",15,0,17,18,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54);\r
+aWE("quantity",12);\r
+aWE("r1",60);\r
+aWE("radio",20,24,25,41,43,46,49);\r
+aWE("radiu",19,60);\r
+aWE("rang",18,24,57,60,63);\r
+aWE("ratio",15,19,2,31,63,45,47,54);\r
+aWE("ready",22);\r
aWE("recent",0);\r
-aWE("red",54);\r
-aWE("reduc",44);\r
-aWE("reevaluat",44);\r
-aWE("refer",58);\r
-aWE("referenc",12,14,21,22);\r
-aWE("refin",11);\r
-aWE("reflect",58,43);\r
+aWE("red",56);\r
+aWE("redefin",0,53);\r
+aWE("reduc",45);\r
+aWE("reevaluat",45);\r
+aWE("refer",61);\r
+aWE("referenc",13,15,22,23);\r
+aWE("refin",12);\r
+aWE("reflect",61,44,69);\r
aWE("refresh",0);\r
-aWE("regular_1d",5,6,55,60,65);\r
-aWE("regular1d",5,6,55);\r
-aWE("relat",41);\r
-aWE("relation",12);\r
-aWE("relationship",12);\r
-aWE("remain",18);\r
-aWE("remov",19,5,23,24,7,28,10,55,57,38,62,48,65);\r
-aWE("removeelement",57,60);\r
-aWE("removehypothesi",5,65);\r
-aWE("removenod",57);\r
-aWE("renumb",39);\r
-aWE("renumber",57,39);\r
-aWE("renumbernod",57);\r
-aWE("reorient",19);\r
-aWE("repeat",18);\r
-aWE("replac",42);\r
-aWE("represent",11,12,17,59,46);\r
-aWE("representation",12);\r
-aWE("requir",25,26,49);\r
-aWE("resembl",1);\r
-aWE("respect",10);\r
-aWE("rest",58,42);\r
-aWE("restrict",12);\r
-aWE("result",11,15,10,55,60,44,50);\r
-aWE("ret",5,6,55);\r
-aWE("retain",18);\r
-aWE("retriev",12);\r
-aWE("return",56);\r
-aWE("revers",58);\r
-aWE("revert",19);\r
-aWE("revolution",9,57,61);\r
-aWE("revolv",61);\r
-aWE("right",0,20,21,7,26,27,10,59);\r
-aWE("rotat",9,10,57,61,40,63);\r
-aWE("rotateobject",63);\r
-aWE("rotation",4,10,61,40,63);\r
-aWE("rotationsweepobject",57);\r
-aWE("rough",11);\r
-aWE("rul",17,36,42);\r
-aWE("run",41);\r
-aWE("s",18,10);\r
-aWE("salom",5,23,6,55,30,57,60,41,63,65);\r
-aWE("sam",12,17,1,21,6,10,36,37,62,42,50);\r
-aWE("sampl",13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52);\r
-aWE("sav",62);\r
-aWE("scal",17);\r
-aWE("scalar",14);\r
-aWE("script",13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52);\r
-aWE("se",13,0,15,16,17,18,1,2,3,4,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52);\r
-aWE("seam",58);\r
-aWE("search",29,62);\r
-aWE("second",15,42);\r
-aWE("section",0,4,21,58);\r
-aWE("segment",11,17,5,6,30,57,36,63);\r
-aWE("select",11,13,0,15,19,20,21,22,23,24,7,25,26,28,9,10,29,34,36,58,59,38,39,61,40,41,62,42,44,45,47,48,49,50,51);\r
-aWE("selection",15,19,23,24,7,62,48);\r
-aWE("sens",12);\r
-aWE("separat",46);\r
-aWE("sequenc",42);\r
-aWE("session",0);\r
-aWE("set",12,13,0,15,17,19,4,21,23,24,26,10,30,32,57,33,36,58,59,62,42,44,64,48);\r
-aWE("setcurrentstudy",5,60,65);\r
-aWE("setdisplaymod",6);\r
-aWE("setlength",5,65);\r
-aWE("setmargin",55,60);\r
-aWE("setmaxelementarea",5,6,55,60,65);\r
-aWE("setmaxelementvolum",5,6,55);\r
-aWE("setnam",5,6,55,60);\r
-aWE("setnumberofsegment",5,6,55,60,65);\r
-aWE("setnumfunctor",55,60);\r
-aWE("setpredicat",55,60);\r
-aWE("setting",21);\r
-aWE("settransparency",6);\r
-aWE("sew",60,42,63);\r
-aWE("sewbordertosid",63);\r
-aWE("sewconformfreeborder",63);\r
-aWE("sewfreeborder",63);\r
-aWE("sewsideelement",63);\r
-aWE("sg",5,6,55,57,60,63,65);\r
-aWE("shad",59,64);\r
-aWE("shall",19,24,25,26,34,58,61,40,45,47,48,49);\r
-aWE("shap",11,12,18,10,57,58,44);\r
-aWE("shapetyp",5,55,60,63,65);\r
-aWE("shift",15,38,44);\r
-aWE("shortest",18,52);\r
-aWE("should",17,23,9,10,58,61,40,62,42,44,50);\r
-aWE("show",4,10,62);\r
-aWE("shown",14,44);\r
-aWE("shrink",59);\r
-aWE("sid",18,5,6,35,42,43,63);\r
-aWE("simp",21,36);\r
-aWE("simpl",12,15,1,58);\r
-aWE("simplex",1);\r
-aWE("siz",0,44);\r
-aWE("sk",1);\r
-aWE("sketch",6);\r
-aWE("sketcher",6);\r
-aWE("sketcher1",6);\r
-aWE("sketcher2",6);\r
-aWE("skew",14,24,30,60,43,48);\r
-aWE("slid",64);\r
-aWE("smesh",15,5,6,55,57,60,38,39,42,63,65);\r
-aWE("smesh_mechanic",55,57,60,63);\r
-aWE("smesh_mechanic_tetra",60);\r
-aWE("smesh_mesheditor",57,63);\r
-aWE("smeshgroup1",55);\r
-aWE("smeshgroup2",55);\r
-aWE("smeshgui",5,6,55,60);\r
-aWE("smooth",57,44);\r
-aWE("smoothobject",57);\r
-aWE("smp",58);\r
-aWE("so",11,17,18,5,6,55,58,60,42,46,65);\r
-aWE("solid",5,6,30);\r
-aWE("someth",21);\r
-aWE("somewhat",15);\r
-aWE("sort",19,23,24,48);\r
-aWE("sourc",62);\r
-aWE("spac",12,58,40,47);\r
-aWE("specifi",17,2,58,38,42,44);\r
-aWE("specific",20,62);\r
-aWE("specify",15,24,9,10,58,38,61,40,62,44,45,47,50);\r
-aWE("spher",21);\r
-aWE("split",13,17,4,42);\r
-aWE("standalon",23,55,62);\r
-aWE("standard",0,29,51);\r
-aWE("start",11,17,4,6,10,41,42,47);\r
-aWE("startendlength",6);\r
-aWE("stdmesher",5,6,55,60,65);\r
-aWE("step",9,61);\r
-aWE("stor",58,62);\r
-aWE("structur",21,22);\r
-aWE("study",5,6,55,57,62);\r
-aWE("sub",29,34,58,40,42,45,47);\r
-aWE("submenu",15,8,38,39);\r
-aWE("submesh",11,19,20,5,22,23,24,9,10,37,61,44,47,48,51);\r
-aWE("subshapeall",5,55,60,63,65);\r
-aWE("subshapelist",5,55,60,65);\r
-aWE("subshapelist1",63);\r
-aWE("subshapelist2",63);\r
-aWE("subshapenam",5,55,65);\r
-aWE("sum",1);\r
-aWE("supplement",36);\r
-aWE("supplementary",24);\r
-aWE("surfac",12,9,58,61,42);\r
-aWE("surround",12,44);\r
-aWE("sweep",57);\r
-aWE("swept",9,61);\r
-aWE("symmetrical",45,63);\r
-aWE("symmetry",45,63);\r
-aWE("syntax",62);\r
-aWE("t",12,17,21,36,58,59);\r
-aWE("tabl",17);\r
-aWE("tak",48);\r
-aWE("taken",11,20,23,6,58);\r
-aWE("tap",14,23,30,60,46);\r
-aWE("techniqu",44);\r
-aWE("tetrahedral",13);\r
-aWE("tetrahedralization",21);\r
-aWE("tetrahedron",12,13,15,1,6,57,33,65);\r
-aWE("th",58,42);\r
-aWE("them",11,15,17,23,7,9,10,34,38,61,42,44);\r
-aWE("thos",24,48);\r
-aWE("thre",12,6,57,42,45);\r
-aWE("threshold",62);\r
-aWE("tmp",5);\r
-aWE("toggl",15,62,47);\r
-aWE("toleranc",34,61,62,63);\r
-aWE("tool",62,50);\r
-aWE("toolbar",18,19,21,22,24,25,26,28,9,10,31,58,38,39,61,41,43,44,46,48,49,51,52);\r
-aWE("topological",12,42);\r
-aWE("topology",12);\r
-aWE("total",51);\r
-aWE("toward",44);\r
-aWE("transform",26,63);\r
-aWE("transformation",34,40,42,45,47);\r
-aWE("translat",63,47);\r
-aWE("translateobject",63);\r
-aWE("translation",63,47);\r
-aWE("transparency",0,64);\r
-aWE("transparent",64);\r
-aWE("triangl",12,13,15,16,18,1,6,25,9,32,31,35,57,61,43,46,48,49,65);\r
-aWE("triangular",13);\r
-aWE("tritoquad",57);\r
-aWE("try",21);\r
-aWE("tt",6);\r
-aWE("tui",13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52);\r
-aWE("two",12,15,18,4,23,24,6,25,10,55,35,57,58,42,46,63,47,49,50,51);\r
-aWE("typ",12,15,17,1,20,21,23,9,10,38,61,62,42,51);\r
-aWE("typical",44);\r
-aWE("u",12,42);\r
-aWE("unary",62);\r
-aWE("unassign",37);\r
-aWE("uniform",44);\r
-aWE("union",55,48,49,50);\r
-aWE("uniongroup",55);\r
-aWE("unit",57,42,48,49,50);\r
-aWE("unles",36);\r
-aWE("unv",29);\r
-aWE("up",0,17,7,27);\r
-aWE("updat",0,41,44);\r
-aWE("updateobjbrows",5,6,55,57,60,63,65);\r
-aWE("upload",62);\r
-aWE("us",12,13,0,17,2,4,21,22,9,34,58,61,62,42,44,64,50);\r
-aWE("usag",14);\r
-aWE("useful",0,15,10);\r
-aWE("usual",42,44);\r
-aWE("v",12);\r
-aWE("valu",11,14,17,18,1,21,5,10,56,35,36,37,62,43,65);\r
-aWE("ve",15,21);\r
-aWE("vector",6,9,10,57,61,40,45,63,47,52);\r
-aWE("vertex",12,58);\r
-aWE("vertic",5,6,57,58);\r
-aWE("very",15,10);\r
-aWE("via",0,62,51);\r
-aWE("view",0,15,16,18,19,4,23,24,7,25,26,27,9,10,31,35,38,39,61,62,42,43,44,46,48,49,51,65,52);\r
-aWE("visual",14);\r
-aWE("volum",11,12,13,15,20,23,6,30,33,60,62,51,65);\r
-aWE("vxy",6,57);\r
-aWE("walk",58);\r
-aWE("warp",14,24,30,60,48,52);\r
-aWE("way",12,0,15,21,23,10,58,37,50);\r
-aWE("weight",44);\r
-aWE("well",58);\r
-aWE("wheth",62);\r
-aWE("whil",38);\r
-aWE("whit",2,53);\r
-aWE("whol",9,10,61,62,44,47);\r
-aWE("whos",19,23,24,48);\r
-aWE("will",11,12,15,16,17,18,19,20,21,22,23,24,7,26,27,28,9,10,29,32,31,35,33,36,58,38,39,61,41,62,42,43,44,46,64,48,50,51,52);\r
-aWE("window",4);\r
-aWE("wir",13,5,6,10,55,57,36);\r
-aWE("wirefram",10,59);\r
-aWE("wish",21,7,29);\r
-aWE("within",17,58,42);\r
-aWE("without",60);\r
-aWE("word",17);\r
-aWE("work",10);\r
-aWE("would",15,42);\r
-aWE("ww",6);\r
-aWE("x",12,4,52);\r
-aWE("y",12,4);\r
-aWE("your",11,12,14,0,15,16,17,18,19,4,20,21,22,23,26,27,28,29,32,31,34,35,33,58,59,37,38,39,40,62,43,44,45,46,47,51,52);\r
-aWE("z",12,4);\r
-aWE("zero",58);\r
+aWE("regular",19);\r
+aWE("regular_1d",6,7,57,63,68);\r
+aWE("regular1d",6,7,57);\r
+aWE("relat",42);\r
+aWE("relation",13);\r
+aWE("relationship",13);\r
+aWE("remot",53);\r
+aWE("remov",20,6,24,25,8,29,11,57,60,39,65,49,68);\r
+aWE("removal",31);\r
+aWE("removeelement",60,63);\r
+aWE("removehypothesi",6,68);\r
+aWE("removenod",60);\r
+aWE("renumb",40);\r
+aWE("renumber",60,40);\r
+aWE("renumbernod",60);\r
+aWE("reorient",20,60);\r
+aWE("replac",43);\r
+aWE("represent",12,13,18,2,62,47,53);\r
+aWE("representation",13);\r
+aWE("requir",26,27,50);\r
+aWE("reset",53);\r
+aWE("resiz",53);\r
+aWE("respect",11);\r
+aWE("respectiv",1);\r
+aWE("rest",61,43);\r
+aWE("restor",53);\r
+aWE("restrict",13);\r
+aWE("result",12,16,11,57,63,45,51);\r
+aWE("ret",6,7,57);\r
+aWE("retriev",13);\r
+aWE("return",58,60);\r
+aWE("reveal",19);\r
+aWE("revers",1,61);\r
+aWE("revert",20);\r
+aWE("revolution",10,60,64);\r
+aWE("revolv",64);\r
+aWE("right",0,21,8,27,28,11,62);\r
+aWE("rotat",10,11,60,64,41,66,53);\r
+aWE("rotateobject",66);\r
+aWE("rotation",5,11,64,41,66,53);\r
+aWE("rotationsweepobject",60);\r
+aWE("rough",12);\r
+aWE("rr",60);\r
+aWE("rul",18,37,43);\r
+aWE("run",42);\r
+aWE("s",11);\r
+aWE("salom",6,24,7,57,31,60,63,42,66,68);\r
+aWE("sam",13,0,18,19,2,22,23,7,11,37,38,65,43,51);\r
+aWE("sampl",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54);\r
+aWE("sav",65);\r
+aWE("scal",18,53);\r
+aWE("scalar",15);\r
+aWE("scen",53);\r
+aWE("script",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54);\r
+aWE("se",14,16,17,18,19,2,3,4,20,5,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,53,54);\r
+aWE("seam",61);\r
+aWE("search",30,65);\r
+aWE("second",16,60,43);\r
+aWE("section",0,5,22,61);\r
+aWE("segment",12,18,6,7,31,33,60,66);\r
+aWE("select",12,14,0,16,1,18,20,21,22,23,24,25,8,26,27,29,10,11,30,35,37,61,62,39,40,64,41,42,65,43,45,46,48,49,50,51,52,53);\r
+aWE("selectabl",59);\r
+aWE("selection",16,1,20,24,25,8,65,49);\r
+aWE("sens",13);\r
+aWE("separat",47);\r
+aWE("sequenc",43);\r
+aWE("set",13,14,16,18,20,5,22,24,7,27,11,31,33,60,34,61,62,65,43,45,67,49);\r
+aWE("setcurrentstudy",6,60,63,68);\r
+aWE("setdisplaymod",7);\r
+aWE("setlength",6,68);\r
+aWE("setmargin",57,63);\r
+aWE("setmaxelementarea",6,7,63,68);\r
+aWE("setmaxelementvolum",6,7);\r
+aWE("setmesh",63);\r
+aWE("setnam",6,7,63);\r
+aWE("setnumberofsegment",6,7,57,60,63,68);\r
+aWE("setnumfunctor",57,63);\r
+aWE("setpredicat",57,63);\r
+aWE("setting",22);\r
+aWE("settransparency",7);\r
+aWE("sew",63,43,66);\r
+aWE("sewbordertosid",66);\r
+aWE("sewconformfreeborder",66);\r
+aWE("sewfreeborder",66);\r
+aWE("sewsideelement",66);\r
+aWE("sg",6,7,57,60,63,66,68);\r
+aWE("shad",0,62,67);\r
+aWE("shall",20,26,27,35,61,64,41,46,48,49,50);\r
+aWE("shap",12,13,11,61,45);\r
+aWE("shape_mesh",60);\r
+aWE("shapetyp",6,7,57,60,63,66,68);\r
+aWE("shift",16,1,25,39,45);\r
+aWE("shortest",54);\r
+aWE("should",18,24,10,11,61,64,41,65,43,45,51);\r
+aWE("show",18,5,11,65,53);\r
+aWE("shown",15,45);\r
+aWE("shrink",62);\r
+aWE("sid",6,7,36,43,44,66);\r
+aWE("simp",22,37);\r
+aWE("simpl",13,16,61);\r
+aWE("simplex",19,2);\r
+aWE("sin",60);\r
+aWE("siz",0,45);\r
+aWE("sk",19,2);\r
+aWE("sketch",7);\r
+aWE("sketcher",7);\r
+aWE("sketcher1",7);\r
+aWE("sketcher2",7);\r
+aWE("skew",15,25,31,63,44,49);\r
+aWE("slid",67);\r
+aWE("small",53);\r
+aWE("smesh",6,7,57,60,63,43,66,68);\r
+aWE("smesh_mechanic",57,60,63,66);\r
+aWE("smesh_mechanic_tetra",63);\r
+aWE("smesh_mesheditor",60,66);\r
+aWE("smeshgroup1",57);\r
+aWE("smeshgroup2",57);\r
+aWE("smeshgui",6,7,63);\r
+aWE("smooth",60,45);\r
+aWE("smoothobject",60);\r
+aWE("smp",61);\r
+aWE("so",12,18,19,6,7,57,60,61,63,43,47,68);\r
+aWE("solid",6,7,31);\r
+aWE("somewhat",16);\r
+aWE("sort",20,24,25,49);\r
+aWE("sourc",65);\r
+aWE("spac",13,61,41,48);\r
+aWE("specifi",18,3,61,39,43,45);\r
+aWE("specific",21,65);\r
+aWE("specify",16,1,25,10,11,61,39,64,41,65,45,46,48,51);\r
+aWE("spher",18,19,22);\r
+aWE("split",14,18,2,5,43);\r
+aWE("sqrt",60);\r
+aWE("standalon",24,57,65);\r
+aWE("standard",0,30,52);\r
+aWE("start",12,18,5,7,11,31,42,43,48);\r
+aWE("startendlength",7);\r
+aWE("statu",60);\r
+aWE("stdmesher",6,7,57,60,63,68);\r
+aWE("step",10,64);\r
+aWE("stor",61,65);\r
+aWE("straight",1,7,37);\r
+aWE("stretch",53);\r
+aWE("strict",53);\r
+aWE("structur",22,23);\r
+aWE("study",6,7,57,65);\r
+aWE("stuf",53);\r
+aWE("sub",30,35,60,61,41,43,46,48);\r
+aWE("submenu",16,9,39,40);\r
+aWE("submesh",12,20,21,6,23,24,25,10,11,38,64,45,48,49,52);\r
+aWE("subshapeall",6,7,57,60,63,66,68);\r
+aWE("subshapelist",6,57,63,68);\r
+aWE("subshapelist1",66);\r
+aWE("subshapelist2",66);\r
+aWE("subshapenam",6,57,68);\r
+aWE("succed",7,57);\r
+aWE("sum",2);\r
+aWE("supplement",37);\r
+aWE("supplementary",25);\r
+aWE("surfac",13,19,2,10,61,64,43);\r
+aWE("surround",13,45);\r
+aWE("sweep",60);\r
+aWE("swept",10,64);\r
+aWE("switch",1);\r
+aWE("symmetrical",46,66);\r
+aWE("symmetry",46,66);\r
+aWE("syntax",65);\r
+aWE("t",13,18,2,22,37,61,62,53);\r
+aWE("tabl",1,18);\r
+aWE("tak",19,49);\r
+aWE("taken",12,21,24,7,61);\r
+aWE("tap",15,24,31,63,47);\r
+aWE("techniqu",45);\r
+aWE("tetra3d",7);\r
+aWE("tetrahedral",14);\r
+aWE("tetrahedralization",22);\r
+aWE("tetrahedron",13,14,16,2,7,60,34,68);\r
+aWE("th",61,43);\r
+aWE("them",12,16,1,18,2,24,8,9,10,11,35,39,64,43,45,53);\r
+aWE("thos",25,49);\r
+aWE("thre",13,1,19,7,60,37,43,46);\r
+aWE("threshold",65);\r
+aWE("tick",53);\r
+aWE("tim",0);\r
+aWE("tmp",6);\r
+aWE("togeth",33);\r
+aWE("toggl",16,65,48);\r
+aWE("toleranc",35,64,65,66);\r
+aWE("tool",65,51);\r
+aWE("toolbar",19,2,20,22,23,25,26,27,29,10,11,32,61,39,40,64,42,44,45,47,49,50,52,69,53,54);\r
+aWE("top",60);\r
+aWE("topological",13,43);\r
+aWE("topology",13);\r
+aWE("total",52);\r
+aWE("toward",45);\r
+aWE("transform",27,66);\r
+aWE("transformation",35,41,43,46,48);\r
+aWE("translat",66,48);\r
+aWE("translateobject",66);\r
+aWE("translation",66,48);\r
+aWE("transparency",0,67);\r
+aWE("transparent",67);\r
+aWE("tri_mesh",66);\r
+aWE("tria",7,60,66);\r
+aWE("tria_mesh",7);\r
+aWE("triangl",13,14,16,1,17,19,7,26,10,33,32,59,36,60,64,44,47,66,49,50,68,53);\r
+aWE("triangle_mefisto",60);\r
+aWE("triangular",14,33);\r
+aWE("triangulation",7);\r
+aWE("trihedron",53);\r
+aWE("tritoquad",60);\r
+aWE("try",22);\r
+aWE("tt",7);\r
+aWE("tui",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54);\r
+aWE("two",13,16,5,24,25,7,26,11,57,36,60,61,43,47,66,48,50,51,52);\r
+aWE("typ",13,16,18,19,2,21,22,24,10,11,39,64,65,43,52);\r
+aWE("typical",45);\r
+aWE("u",13,43);\r
+aWE("unary",65);\r
+aWE("unassign",38);\r
+aWE("uniform",45);\r
+aWE("union",57,49,50,51);\r
+aWE("uniongroup",57);\r
+aWE("unit",60,43,49,50,51);\r
+aWE("unles",37);\r
+aWE("unv",30);\r
+aWE("up",18,8,28);\r
+aWE("updat",0,42,45);\r
+aWE("updateobjbrows",6,7,57,60,63,66,68);\r
+aWE("upload",65);\r
+aWE("us",13,14,18,3,5,22,23,24,10,33,35,61,64,65,43,45,67,51,53);\r
+aWE("usag",15);\r
+aWE("useful",0,16,24,11);\r
+aWE("usual",43,45);\r
+aWE("v",13);\r
+aWE("valu",12,15,18,19,2,22,6,11,58,36,37,38,65,44,68);\r
+aWE("vari",19);\r
+aWE("variou",0);\r
+aWE("ve",16);\r
+aWE("vector",7,10,11,60,64,41,46,66,48,54);\r
+aWE("vertex",13,61);\r
+aWE("vertic",6,7,61);\r
+aWE("very",16,11);\r
+aWE("via",65,52,53);\r
+aWE("view",0,16,1,17,19,2,20,5,24,25,8,26,27,28,10,11,32,36,39,40,64,65,43,44,45,47,49,50,52,68,69,53,54);\r
+aWE("visibl",53);\r
+aWE("visual",15);\r
+aWE("visualiz",53);\r
+aWE("vk",2);\r
+aWE("volum",12,13,14,15,16,2,21,24,7,9,31,60,34,63,65,66,52,68,69);\r
+aWE("vtk",0,53);\r
+aWE("vxy",7,60,66);\r
+aWE("walk",61);\r
+aWE("warp",15,25,31,63,49,54);\r
+aWE("way",13,16,22,23,24,11,61,38,51);\r
+aWE("weight",45);\r
+aWE("well",61);\r
+aWE("wheth",65);\r
+aWE("whil",39);\r
+aWE("whit",55);\r
+aWE("whol",2,10,11,60,64,65,45,48);\r
+aWE("whos",20,24,25,37,49);\r
+aWE("will",12,13,0,16,1,17,18,19,2,20,21,22,23,24,25,8,27,28,29,10,11,30,33,32,59,36,60,34,37,61,39,40,64,42,65,43,44,45,47,67,49,51,52,69,54);\r
+aWE("window",5);\r
+aWE("wir",14,6,7,11,33,60,66);\r
+aWE("wire_discretisation",60);\r
+aWE("wirefram",0,11,62);\r
+aWE("wish",22,8,30,53);\r
+aWE("within",18,61,43);\r
+aWE("without",1,63);\r
+aWE("word",18);\r
+aWE("work",1,11);\r
+aWE("worst",19);\r
+aWE("would",16,43);\r
+aWE("ww",7);\r
+aWE("x",13,5,54);\r
+aWE("x0",60);\r
+aWE("y",13,5);\r
+aWE("y0",60);\r
+aWE("your",12,13,15,0,16,1,17,18,19,2,20,5,21,22,23,24,27,28,29,30,33,32,35,36,34,61,62,38,39,40,41,65,44,45,46,47,48,52,69,54);\r
+aWE("z",13,5);\r
+aWE("z0",60);\r
+aWE("zero",61);\r
+aWE("zoom",53);\r
\r
//-->\r
</script>\r
<script language="javascript" src="whtdata.js"></script>\r
<script language="javascript">\r
<!--\r
- aTE(1,74,"MESH module");\r
+ aTE(1,78,"MESH module");\r
aTE(2,0,"Introduction to MESH","files/introduction_to_smesh.htm");\r
aTE(2,0,"Running MESH module","files/running_smesh_module.htm");\r
aTE(1,12,"Creating meshes");\r
aTE(1,5,"Defining hypotheses");\r
aTE(2,0,"About Hypotheses","files/about_hypotheses.htm");\r
aTE(2,0,"1D Meshing Hypotheses","files/arithmetic_1d.htm");\r
- aTE(2,0,"Max Element Area hypothesis","files/max._element_area_hypothesis.htm");\r
+ aTE(2,0,"2D Meshing Hypotheses","files/max._element_area_hypothesis.htm");\r
aTE(2,0,"Max Element Volume hypothesis","files/max._element_volume_hypothsis.htm");\r
aTE(2,0,"Additional Hypotheses","files/non_conform_mesh_allowed_hypothesis.htm");\r
aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");\r
aTE(2,0,"Editing Meshes","files/reassigning_hypotheses_and_algorithms.htm");\r
- aTE(1,7,"Viewing meshes");\r
- aTE(2,0,"About viewing meshes","about_viewing_meshes.htm");\r
+ aTE(1,8,"Viewing meshes");\r
+ aTE(2,0,"Viewing meshes","about_viewing_meshes.htm");\r
+ aTE(2,0,"VTK 3D Viewer","files/vtk_3d_viewer.htm");\r
aTE(2,0,"Mesh infos","files/viewing_mesh_info.htm");\r
aTE(2,0,"Numbering","files/displaying_nodes_numbers.htm");\r
aTE(2,0,"Display Mode","presentation.htm");\r
aTE(2,0,"Display Entity","display_entity.htm");\r
aTE(2,0,"Transparency","transparency.htm");\r
aTE(2,0,"Clipping","clipping.htm");\r
- aTE(1,14,"Quality controls");\r
+ aTE(1,15,"Quality controls");\r
aTE(2,0,"About quality controls","files/about_quality_controls.htm");\r
aTE(2,0,"Free borders","free_borders.htm");\r
aTE(2,0,"Borders at multi-connection","borders_at_multi-connection.htm");\r
aTE(2,0,"Warping","files/warp.htm");\r
aTE(2,0,"Skew","files/skew.htm");\r
aTE(2,0,"Aspect ratio 3D","aspect_ratio_3d.htm");\r
+ aTE(2,0,"Volume","volume.htm");\r
aTE(1,6,"Grouping elements");\r
aTE(2,0,"Creating groups","files/creating_groups.htm");\r
aTE(2,0,"Editing groups","files/editing_groups.htm");\r
aTE(2,0,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
aTE(2,0,"Deleting Groups","deleting_groups.htm");\r
aTE(2,0,"Selection filter library","selection_filter_library.htm");\r
- aTE(1,20,"Modifying meshes");\r
+ aTE(1,22,"Modifying meshes");\r
aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
+ aTE(2,0,"Adding quadratic elements","adding_quadratic_nodes_and_elements.htm");\r
aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
- aTE(1,5,"Transforming meshes");\r
+ aTE(1,6,"Transforming meshes");\r
aTE(2,0,"Translation","files/translation.htm");\r
aTE(2,0,"Rotation","files/rotation.htm");\r
aTE(2,0,"Symmetry","files/symmetry.htm");\r
aTE(2,0,"Sewing meshes","files/sewing_meshes.htm");\r
aTE(2,0,"Merging nodes","files/merging_nodes.htm");\r
+ aTE(2,0,"Merging Elements","merge_elements.htm");\r
aTE(2,0,"Moving nodes","files/displacing_nodes.htm");\r
aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");\r
aTE(2,0,"Uniting two triangles","files/uniting_two_triangles.htm");\r
<p class="ftsbody" >\r
\r
\r
-<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/arithmetic_1d.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> <a href="../quality_controls.htm"><b>13</b></a> </nobr><br><nobr><a name="bms_{E"></a><a name="subkey_{E"></a>1e <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_{D"></a><a name="subkey_{D"></a>2d <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../constructing_meshes.htm"><b>8</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>9</b></a> <a href="../aspect_ratio_3d.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/aspect_ratio.htm"><b>14</b></a> <a href="../files/area_of_elements.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/minimum_angle.htm"><b>17</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>18</b></a> <a href="../transforming_meshes.htm"><b>19</b></a> <a href="../revolution.htm"><b>20</b></a> <a href="../quality_controls.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../modifying_meshes.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> <a href="../files/viewing_mesh_info.htm"><b>25</b></a> </nobr><br><nobr>3d <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion_along_a_path.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../deleting_groups.htm"><b>8</b></a> <a href="../defining_hypotheses_tui.htm"><b>9</b></a> <a href="../aspect_ratio_3d.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>14</b></a> <a href="../files/cutting_quadrangles.htm"><b>15</b></a> <a href="../files/creating_groups.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/sewing_meshes.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>23</b></a> <a href="../revolution.htm"><b>24</b></a> <a href="../quality_controls.htm"><b>25</b></a> <a href="../files/uniting_two_triangles.htm"><b>26</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>27</b></a> </nobr><br><a name="bms_{E"></a><a name="subkey_{E"></a><a href="../quality_controls.htm"><b>3e</b></a> <br><a name="bms_{R"></a><a name="subkey_{R"></a><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a name="bms_{T"></a><a name="subkey_{T"></a><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
+<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/arithmetic_1d.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../quality_controls.htm"><b>13</b></a> <a href="../revolution.htm"><b>14</b></a> </nobr><br><nobr><a name="bms_{E"></a><a name="subkey_{E"></a>1e <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_{D"></a><a name="subkey_{D"></a>2d <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../constructing_meshes.htm"><b>8</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/aspect_ratio.htm"><b>12</b></a> <a href="../files/area_of_elements.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/minimum_angle.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../files/length_of_edges.htm"><b>17</b></a> <a href="../quality_controls.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../modifying_meshes.htm"><b>20</b></a> <a href="../files/warp.htm"><b>21</b></a> <a href="../transforming_meshes.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><nobr>3d <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../deleting_groups.htm"><b>7</b></a> <a href="../defining_hypotheses_tui.htm"><b>8</b></a> <a href="../aspect_ratio_3d.htm"><b>9</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>10</b></a> <a href="../about_viewing_meshes.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/cutting_quadrangles.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/constructing_meshes.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>26</b></a> <a href="../quality_controls.htm"><b>27</b></a> <a href="../files/vtk_3d_viewer.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../volume.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> </nobr><br><a name="bms_{E"></a><a name="subkey_{E"></a><a href="../quality_controls.htm"><b>3e</b></a> <br><a name="bms_{R"></a><a name="subkey_{R"></a><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a name="bms_{X"></a><a name="subkey_{X"></a><a href="../modifying_meshes.htm"><b>3x3</b></a> <br><a name="bms_{T"></a><a name="subkey_{T"></a><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
<br><br>\r
-<a name="bm_A"></a><a name="subkey_AB"></a><a href="../files/adding_nodes_and_elements.htm"><b>able</b></a> <br><nobr>above <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>abox</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><a href="../transparency.htm"><b>absolutely</b></a> <br><a href="../files/arithmetic_1d.htm"><b>abutting</b></a> <br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>access <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>according <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/length_of_edges.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><nobr>account <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>acomp <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>acompobj</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>actually</b></a> <br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> </nobr><br><nobr>added <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addedge</b></a> <br><a href="../modifying_meshes.htm"><b>addface</b></a> <br><nobr>addhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>adding <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>additionally <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addnode</b></a> <br><a href="../grouping_elements.htm"><b>addobject</b></a> <br><nobr>addtostudy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr>addtostudyinfather <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addvolume</b></a> <br><nobr>adjacent <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>adjustable</b></a> <br><nobr>advanced <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AF"></a><a name="subkey_AF"></a>afilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>afiltermgr <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>afunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../grouping_elements.htm"><b>ageomgroup1</b></a> <br><a href="../grouping_elements.htm"><b>ageomgroup2</b></a> <br><nobr>agroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>agroup1</b></a> <br><a href="../grouping_elements.htm"><b>agroup2</b></a> <br><a href="../grouping_elements.htm"><b>agroup3</b></a> <br><a href="../grouping_elements.htm"><b>agroup4</b></a> <br><a href="../grouping_elements.htm"><b>agroup5</b></a> <br><a href="../grouping_elements.htm"><b>agroupelemids</b></a> <br><a href="../grouping_elements.htm"><b>agroupmain</b></a> <br><a href="../grouping_elements.htm"><b>agroupres</b></a> <br><a href="../grouping_elements.htm"><b>agrouptool</b></a> <br><a name="bms_AI"></a><a name="subkey_AI"></a><a href="../files/arithmetic_1d.htm"><b>ai</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algo <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>algo1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algo2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algorithm <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../transforming_meshes.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> <a href="../modifying_meshes.htm"><b>14</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../files/symmetry.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/rotation.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/merging_nodes.htm"><b>12</b></a> <a href="../files/using_operations_on_groups.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> </nobr><br><nobr>along <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>alternative</b></a> <br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AM"></a><a name="subkey_AM"></a>amesheditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../borders_at_multi-connection.htm"><b>amount</b></a> <br><a name="bms_AN"></a><a name="subkey_AN"></a><a href="../files/arithmetic_1d.htm"><b>analytic</b></a> <br><nobr>aneditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>angle180</b></a> <br><a href="../modifying_meshes.htm"><b>angle45</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angled</b></a> <br><nobr>angles <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>angular</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angularity</b></a> <br><nobr>anids <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>anodeid1</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid2</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid3</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid4</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> </nobr><br><a name="bms_AP"></a><a name="subkey_AP"></a><a href="../files/constructing_meshes.htm"><b>apparent</b></a> <br><nobr>appear <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/translation.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> </nobr><br><nobr>appears <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>append</b></a> <br><a href="../selection_filter_library.htm"><b>applicable</b></a> <br><nobr>application <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>applied <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/aspect_ratio.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/skew.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/minimum_angle.htm"><b>14</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../selection_filter_library.htm"><b>17</b></a> <a href="../modifying_meshes.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> </nobr><br><nobr>apply <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../clipping.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/area_of_elements.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../files/sewing_meshes.htm"><b>22</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>23</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>24</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>25</b></a> <a href="../files/minimum_angle.htm"><b>26</b></a> <a href="../revolution.htm"><b>27</b></a> <a href="../pattern_mapping.htm"><b>28</b></a> <a href="../files/warp.htm"><b>29</b></a> <a href="../files/using_operations_on_groups.htm"><b>30</b></a> <a href="../files/uniting_two_triangles.htm"><b>31</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>32</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>appropriate</b></a> <br><a href="../files/arithmetic_1d.htm"><b>approximately</b></a> <br><nobr>apredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<a name="bm_A"></a><a name="subkey_A{"></a><a href="../modifying_meshes.htm"><b>a_mesh</b></a> <br><a name="bms_AA"></a><a name="subkey_AA"></a><a href="../modifying_meshes.htm"><b>aa</b></a> <br><nobr><a name="bms_AB"></a><a name="subkey_AB"></a>able <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>aborder</b></a> <br><a href="../quality_controls.htm"><b>aborders</b></a> <br><nobr>above <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>abox</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><a href="../transparency.htm"><b>absolutely</b></a> <br><a href="../files/arithmetic_1d.htm"><b>abutting</b></a> <br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>access <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>accessed</b></a> <br><nobr>according <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../pattern_mapping.htm"><b>11</b></a> <a href="../files/warp.htm"><b>12</b></a> <a href="../volume.htm"><b>13</b></a> </nobr><br><nobr>account <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>acomp <a href="../quality_controls.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>acompobj</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>actually</b></a> <br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> <a href="../selection_filter_library.htm"><b>15</b></a> </nobr><br><nobr>added <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addedge</b></a> <br><a href="../modifying_meshes.htm"><b>addface</b></a> <br><nobr>addhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>adding <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>additionally <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addnode</b></a> <br><a href="../grouping_elements.htm"><b>addobject</b></a> <br><a href="../modifying_meshes.htm"><b>addpolygonalface</b></a> <br><a href="../modifying_meshes.htm"><b>addpolyhedralvolume</b></a> <br><nobr>addtostudy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>addtostudyinfather <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addvolume</b></a> <br><nobr>adjacent <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>adjustable</b></a> <br><nobr>advanced <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AF"></a><a name="subkey_AF"></a>afilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>afiltermgr <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>afunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../grouping_elements.htm"><b>ageomgroup1</b></a> <br><a href="../grouping_elements.htm"><b>ageomgroup2</b></a> <br><nobr>agroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>agroup1</b></a> <br><a href="../grouping_elements.htm"><b>agroup2</b></a> <br><a href="../grouping_elements.htm"><b>agroup3</b></a> <br><a href="../grouping_elements.htm"><b>agroup4</b></a> <br><a href="../grouping_elements.htm"><b>agroup5</b></a> <br><a href="../grouping_elements.htm"><b>agroupelemids</b></a> <br><a href="../quality_controls.htm"><b>agroupf</b></a> <br><a href="../grouping_elements.htm"><b>agroupmain</b></a> <br><a href="../quality_controls.htm"><b>agroupn</b></a> <br><a href="../grouping_elements.htm"><b>agroupres</b></a> <br><a href="../grouping_elements.htm"><b>agrouptool</b></a> <br><a name="bms_AI"></a><a name="subkey_AI"></a><a href="../files/arithmetic_1d.htm"><b>ai</b></a> <br><a name="bms_AL"></a><a name="subkey_AL"></a><a href="../modifying_meshes.htm"><b>al</b></a> <br><nobr>algo <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>algo1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algo2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algorithm <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> <a href="../transforming_meshes.htm"><b>13</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>allowing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr>allows <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/symmetry.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/merging_nodes.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../merge_elements.htm"><b>16</b></a> <a href="../files/vtk_3d_viewer.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> </nobr><br><nobr>along <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../files/vtk_3d_viewer.htm"><b>6</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>alternative</b></a> <br><nobr>alternatively <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AM"></a><a name="subkey_AM"></a>amesheditor <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../borders_at_multi-connection.htm"><b>amount</b></a> <br><a name="bms_AN"></a><a name="subkey_AN"></a><a href="../files/arithmetic_1d.htm"><b>analytic</b></a> <br><nobr>aneditor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>angle180</b></a> <br><a href="../modifying_meshes.htm"><b>angle45</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angled</b></a> <br><nobr>angles <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>angular</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angularity</b></a> <br><nobr>anids <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>anodeid1</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid2</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid3</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid4</b></a> <br><nobr>another <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> </nobr><br><a name="bms_AP"></a><a name="subkey_AP"></a><a href="../files/constructing_meshes.htm"><b>apparent</b></a> <br><nobr>appear <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_two_triangles.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>appeared</b></a> <br><nobr>append <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>applicable <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>application <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>applied <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/minimum_angle.htm"><b>12</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>13</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../files/warp.htm"><b>16</b></a> <a href="../volume.htm"><b>17</b></a> <a href="../selection_filter_library.htm"><b>18</b></a> </nobr><br><nobr>apply <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../clipping.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/minimum_angle.htm"><b>28</b></a> <a href="../files/length_of_edges.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../modifying_meshes.htm"><b>31</b></a> <a href="../merge_elements.htm"><b>32</b></a> <a href="../files/warp.htm"><b>33</b></a> <a href="../files/using_operations_on_groups.htm"><b>34</b></a> <a href="../files/uniting_two_triangles.htm"><b>35</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>36</b></a> <a href="../volume.htm"><b>37</b></a> <a href="../revolution.htm"><b>38</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>applytomeshfaces</b></a> <br><a href="../files/constructing_meshes.htm"><b>appropriate</b></a> <br><a href="../files/arithmetic_1d.htm"><b>approximately</b></a> <br><nobr>apredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf0.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_AR"></a><a name="subkey_AR"></a>arc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><nobr>arithmetic1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>around <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a name="bms_AS"></a><a name="subkey_AS"></a><a href="../grouping_elements.htm"><b>asmeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>asmeshgroup2</b></a> <br><nobr>aspect <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>assign</b></a> <br><a href="../files/warp.htm"><b>assigned</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assigning</b></a> <br><nobr>associated <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../clipping.htm"><b>auto</b></a> <br><nobr>automatic <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>automatically <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a name="bms_AV"></a><a name="subkey_AV"></a><a href="../files/sewing_meshes.htm"><b>available</b></a> <br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_AX"></a><a name="subkey_AX"></a>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><nobr>axisstruct <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>axisxyz <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bms_AR"></a><a name="subkey_AR"></a>arc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../files/vtk_3d_viewer.htm"><b>11</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><nobr>arithmetic1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>around <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>array_of_nodes_groups</b></a> <br><a name="bms_AS"></a><a name="subkey_AS"></a><a href="../grouping_elements.htm"><b>asmeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>asmeshgroup2</b></a> <br><nobr>aspect <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> </nobr><br><nobr>assign <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><a href="../files/warp.htm"><b>assigned</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assigning</b></a> <br><nobr>associated <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AT"></a><a name="subkey_AT"></a><a href="../files/creating_groups.htm"><b>attribute</b></a> <br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../clipping.htm"><b>auto</b></a> <br><nobr>automatic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>automatically <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>available <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a name="bms_AX"></a><a name="subkey_AX"></a><a href="../files/vtk_3d_viewer.htm"><b>axes</b></a> <br><nobr>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><nobr>axisstruct <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>axisxyz <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_B"></a><a name="subkey_BA"></a><a href="../about_viewing_meshes.htm"><b>background</b></a> <br><a href="../files/about_quality_controls.htm"><b>bar</b></a> <br><a href="../extrusion_along_a_path.htm"><b>base</b></a> <br><nobr>based <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>basis <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../pattern_mapping.htm"><b>become</b></a> <br><a href="../selection_filter_library.htm"><b>before</b></a> <br><nobr>beginning <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>belong <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>belonging <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../free_edges.htm"><b>4</b></a> <a href="../free_borders.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../selection_filter_library.htm"><b>binary</b></a> <br><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a href="../selection_filter_library.htm"><b>bit</b></a> <br><a name="bms_BL"></a><a name="subkey_BL"></a><a href="../about_viewing_meshes.htm"><b>black</b></a> <br><nobr>block <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/arithmetic_1d.htm"><b>bog</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><nobr>border <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>borders <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><nobr>both <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../pattern_mapping.htm"><b>bound</b></a> <br><a href="../pattern_mapping.htm"><b>boundaries</b></a> <br><nobr>boundary <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> <a href="../files/rotation.htm"><b>21</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>22</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>23</b></a> <a href="../files/merging_nodes.htm"><b>24</b></a> <a href="../transforming_meshes.htm"><b>25</b></a> <a href="../selection_filter_library.htm"><b>26</b></a> <a href="../revolution.htm"><b>27</b></a> <a href="../quality_controls.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../grouping_elements.htm"><b>30</b></a> <a href="../files/viewing_mesh_info.htm"><b>31</b></a> <a href="../files/using_operations_on_groups.htm"><b>32</b></a> <a href="../files/uniting_two_triangles.htm"><b>33</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>34</b></a> <a href="../viewing_meshes.htm"><b>35</b></a> </nobr><br><nobr>box_id <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>box1</b></a> <br><a href="../transforming_meshes.htm"><b>box2</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>boxes</b></a> <br><a name="bms_BR"></a><a name="subkey_BR"></a><a href="../files/creating_groups.htm"><b>brown</b></a> <br><a href="../selection_filter_library.htm"><b>browse</b></a> <br><nobr>browser <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> <a href="../presentation.htm"><b>11</b></a> <a href="../files/viewing_mesh_info.htm"><b>12</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../extrusion.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>builds</b></a> <br><nobr>built <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>button <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../selection_filter_library.htm"><b>30</b></a> <a href="../revolution.htm"><b>31</b></a> <a href="../pattern_mapping.htm"><b>32</b></a> <a href="../files/warp.htm"><b>33</b></a> <a href="../files/viewing_mesh_info.htm"><b>34</b></a> <a href="../files/using_operations_on_groups.htm"><b>35</b></a> <a href="../files/uniting_two_triangles.htm"><b>36</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>37</b></a> </nobr><br><nobr>buttons <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br>\r
+<a name="bm_B"></a><a name="subkey_BA"></a><a href="../about_viewing_meshes.htm"><b>background</b></a> <br><a href="../files/about_quality_controls.htm"><b>bar</b></a> <br><a href="../extrusion_along_a_path.htm"><b>base</b></a> <br><nobr>based <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>basic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>basis <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../pattern_mapping.htm"><b>become</b></a> <br><nobr>before <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>beginning <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>belong <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>belonging <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../free_edges.htm"><b>4</b></a> <a href="../free_borders.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>below</b></a> <br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a href="../files/aspect_ratio.htm"><b>better</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../selection_filter_library.htm"><b>binary</b></a> <br><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a href="../selection_filter_library.htm"><b>bit</b></a> <br><a name="bms_BL"></a><a name="subkey_BL"></a><a href="../about_viewing_meshes.htm"><b>black</b></a> <br><nobr>block <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../borders_at_multi-connection.htm"><b>blue</b></a> <br><nobr><a name="bms_BM"></a><a name="subkey_BM"></a>bmp <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/arithmetic_1d.htm"><b>bog</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><nobr>border <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>borders <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../free_edges.htm"><b>7</b></a> <a href="../free_borders.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><nobr>both <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><nobr>bottom <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>bound</b></a> <br><a href="../pattern_mapping.htm"><b>boundaries</b></a> <br><nobr>boundary <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/constructing_submeshes.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/arithmetic_1d.htm"><b>15</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> <a href="../files/rotation.htm"><b>21</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>22</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>23</b></a> <a href="../files/merging_nodes.htm"><b>24</b></a> <a href="../quality_controls.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../merge_elements.htm"><b>27</b></a> <a href="../grouping_elements.htm"><b>28</b></a> <a href="../files/viewing_mesh_info.htm"><b>29</b></a> <a href="../files/using_operations_on_groups.htm"><b>30</b></a> <a href="../files/uniting_two_triangles.htm"><b>31</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>32</b></a> <a href="../files/translation.htm"><b>33</b></a> <a href="../viewing_meshes.htm"><b>34</b></a> <a href="../transforming_meshes.htm"><b>35</b></a> <a href="../selection_filter_library.htm"><b>36</b></a> <a href="../revolution.htm"><b>37</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>box_1</b></a> <br><nobr>box_id <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>box1</b></a> <br><a href="../transforming_meshes.htm"><b>box2</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>boxes</b></a> <br><nobr><a name="bms_BR"></a><a name="subkey_BR"></a>broken <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>brown</b></a> <br><a href="../selection_filter_library.htm"><b>browse</b></a> <br><nobr>browser <a href="../deleting_groups.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>10</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>11</b></a> <a href="../presentation.htm"><b>12</b></a> <a href="../files/viewing_mesh_info.htm"><b>13</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../extrusion.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><a href="../files/max._element_area_hypothesis.htm"><b>builds</b></a> <br><nobr>built <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>button <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/area_of_elements.htm"><b>17</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>18</b></a> <a href="../files/taper.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/rotation.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/minimum_angle.htm"><b>28</b></a> <a href="../files/length_of_edges.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../files/warp.htm"><b>31</b></a> <a href="../files/vtk_3d_viewer.htm"><b>32</b></a> <a href="../files/viewing_mesh_info.htm"><b>33</b></a> <a href="../files/using_operations_on_groups.htm"><b>34</b></a> <a href="../files/uniting_two_triangles.htm"><b>35</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>36</b></a> <a href="../files/translation.htm"><b>37</b></a> <a href="../volume.htm"><b>38</b></a> <a href="../selection_filter_library.htm"><b>39</b></a> <a href="../revolution.htm"><b>40</b></a> </nobr><br><nobr>buttons <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><a href="../aspect_ratio_3d.htm"><b>calculate</b></a> <br><nobr>calculated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/length_of_edges.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a href="../pattern_mapping.htm"><b>called</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>careful</b></a> <br><nobr>case <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> </nobr><br><nobr>cases <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><nobr>center <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../modifying_meshes.htm"><b>centroidal_smooth</b></a> <br><nobr>certain <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../about_viewing_meshes.htm"><b>chapter</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><nobr>check <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>checkbox <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>choose <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../display_entity.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>13</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/aspect_ratio.htm"><b>15</b></a> <a href="../files/area_of_elements.htm"><b>16</b></a> <a href="../files/translation.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/skew.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/rotation.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/minimum_angle.htm"><b>26</b></a> <a href="../files/merging_nodes.htm"><b>27</b></a> <a href="../selection_filter_library.htm"><b>28</b></a> <a href="../revolution.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../files/warp.htm"><b>31</b></a> <a href="../files/uniting_two_triangles.htm"><b>32</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>33</b></a> </nobr><br><nobr>choosing <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>chosen <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_CI"></a><a name="subkey_CI"></a>circle <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>circlemesh</b></a> <br><a name="bms_CL"></a><a name="subkey_CL"></a><a href="../selection_filter_library.htm"><b>clear</b></a> <br><nobr>click <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/running_smesh_module.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/minimum_angle.htm"><b>27</b></a> <a href="../selection_filter_library.htm"><b>28</b></a> <a href="../revolution.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../files/warp.htm"><b>31</b></a> <a href="../files/viewing_mesh_info.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_two_triangles.htm"><b>34</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>35</b></a> </nobr><br><nobr>clicking <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../presentation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>clipping <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>close <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>closed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> </nobr><br><nobr>calculates <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> </nobr><br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a href="../pattern_mapping.htm"><b>called</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>careful</b></a> <br><nobr>case <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>cases <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><nobr>center <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../modifying_meshes.htm"><b>centroidal_smooth</b></a> <br><nobr>certain <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><nobr>check <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>checkbox <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>checked</b></a> <br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>choose <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../display_entity.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>13</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/aspect_ratio.htm"><b>15</b></a> <a href="../files/area_of_elements.htm"><b>16</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/skew.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/rotation.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/minimum_angle.htm"><b>26</b></a> <a href="../files/merging_nodes.htm"><b>27</b></a> <a href="../files/length_of_edges.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> <a href="../files/uniting_two_triangles.htm"><b>31</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>32</b></a> <a href="../files/translation.htm"><b>33</b></a> <a href="../volume.htm"><b>34</b></a> <a href="../selection_filter_library.htm"><b>35</b></a> <a href="../revolution.htm"><b>36</b></a> </nobr><br><nobr>choosing <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>chosen <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><nobr>sides <a href="../files/skew.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> </nobr><br><nobr>simple <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>simpler</b></a> <br><a href="../aspect_ratio_3d.htm"><b>simplex</b></a> <br><nobr>simply <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>size</b></a> <br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><a name="bms_SK"></a><a name="subkey_SK"></a><a href="../aspect_ratio_3d.htm"><b>sk</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher1</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher2</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketchers</b></a> <br><nobr>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a name="bms_SL"></a><a name="subkey_SL"></a><a href="../transparency.htm"><b>slider</b></a> <br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> </nobr><br><nobr>smesh_mechanic <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../quality_controls.htm"><b>smesh_mechanic_tetra</b></a> <br><nobr>smesh_mesheditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>smeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>smeshgroup2</b></a> <br><nobr>smeshgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smooth</b></a> <br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><nobr>smoothing <a href="../files/smoothing.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smoothobject</b></a> <br><a href="../pattern_mapping.htm"><b>smp</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> </nobr><br><nobr>solid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>solids <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>something</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>somewhat</b></a> <br><nobr>sort <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>source</b></a> <br><nobr><a name="bms_SP"></a><a name="subkey_SP"></a>space <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>specific <a href="../files/constructing_groups_of_specific_elements.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>specified <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> </nobr><br><nobr>specifies <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>specify <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/using_operations_on_groups.htm"><b>11</b></a> </nobr><br><nobr>specifying <a href="../files/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>sphere</b></a> <br><nobr>split <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standalone <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>standard <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr>start <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>startendlength</b></a> <br><nobr>starting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>stdmeshers <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr>stored <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>structure <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>study <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/merging_nodes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>submenu <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> </nobr><br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>15</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>subshapeall <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>subshapelist <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>subshapelist1</b></a> <br><a href="../transforming_meshes.htm"><b>subshapelist2</b></a> <br><nobr>subshapename <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>sum</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>supplement</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>supplementary</b></a> <br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>surfaces</b></a> <br><nobr>surrounding <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a name="bms_SW"></a><a name="subkey_SW"></a><a href="../modifying_meshes.htm"><b>sweep</b></a> <br><nobr>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SY"></a><a name="subkey_SY"></a>symmetrical <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><nobr>symmetry <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>syntax</b></a> <br>\r
+<nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../presentation.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_RO"></a><a name="subkey_RO"></a>rotate <a href="../files/rotation.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>rotated <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>rotateobject</b></a> <br><nobr>rotation <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>rotationsweepobject</b></a> <br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RR"></a><a name="subkey_RR"></a><a href="../modifying_meshes.htm"><b>rr</b></a> <br><nobr><a name="bms_RU"></a><a name="subkey_RU"></a>rule <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>rules</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../presentation.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/arithmetic_1d.htm"><b>table</b></a> <br><a href="../files/uniting_a_set_of_triangles.htm"><b>take</b></a> <br><nobr>taken <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>tetrahedral</b></a> <br><a href="../files/constructing_meshes.htm"><b>tetrahedralization</b></a> <br><nobr>tetrahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>tetrahedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>th <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>them <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> <a href="../files/merging_nodes.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>those <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>threshold</b></a> <br><a name="bms_TM"></a><a name="subkey_TM"></a><a href="../constructing_meshes.htm"><b>tmp</b></a> <br><nobr><a name="bms_TO"></a><a name="subkey_TO"></a>toggle <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>toggling</b></a> <br><nobr>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>tool <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><nobr>toolbar <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/warp.htm"><b>20</b></a> <a href="../files/viewing_mesh_info.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><a href="../selection_filter_library.htm"><b>tools</b></a> <br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/sewing_meshes.htm"><b>topologically</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>total</b></a> <br><a href="../files/smoothing.htm"><b>toward</b></a> <br><nobr><a name="bms_TR"></a><a name="subkey_TR"></a>transformation <a href="../files/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../transforming_meshes.htm"><b>transforming</b></a> <br><nobr>translate <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../transforming_meshes.htm"><b>translateobject</b></a> <br><nobr>translation <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>transparency <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../transparency.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>transparent</b></a> <br><nobr>triangle <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><nobr>triangles <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/area_of_elements.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../files/uniting_two_triangles.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> <a href="../viewing_meshes.htm"><b>15</b></a> </nobr><br><a href="../files/about_meshing_algorithms.htm"><b>triangular</b></a> <br><a href="../modifying_meshes.htm"><b>tritoquad</b></a> <br><a href="../files/constructing_meshes.htm"><b>trying</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<a name="bm_S"></a><a name="subkey_S{"></a><a href="../extrusion_along_a_path.htm"><b>s</b></a> <br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../files/using_operations_on_groups.htm"><b>13</b></a> <a href="../selection_filter_library.htm"><b>14</b></a> </nobr><br><nobr>sample <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/minimum_angle.htm"><b>30</b></a> <a href="../files/merging_nodes.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../merge_elements.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> <a href="../files/translation.htm"><b>44</b></a> <a href="../volume.htm"><b>45</b></a> <a href="../revolution.htm"><b>46</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>save</b></a> <br><a name="bms_SC"></a><a name="subkey_SC"></a><a href="../files/about_quality_controls.htm"><b>scalar</b></a> <br><a href="../files/arithmetic_1d.htm"><b>scale</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>scaling</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>scene</b></a> <br><nobr>script <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/taper.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/rotation.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../files/length_of_edges.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../merge_elements.htm"><b>35</b></a> <a href="../length.htm"><b>36</b></a> <a href="../free_edges.htm"><b>37</b></a> <a href="../free_borders.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> <a href="../files/viewing_mesh_info.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> <a href="../files/translation.htm"><b>44</b></a> <a href="../volume.htm"><b>45</b></a> <a href="../revolution.htm"><b>46</b></a> </nobr><br><nobr>scripts <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../pattern_mapping.htm"><b>seam</b></a> <br><nobr>search <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>second <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>section <a href="../clipping.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>sections <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>see <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/minimum_angle.htm"><b>30</b></a> <a href="../files/merging_nodes.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../merge_elements.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/vtk_3d_viewer.htm"><b>41</b></a> <a href="../files/using_operations_on_groups.htm"><b>42</b></a> <a href="../files/uniting_two_triangles.htm"><b>43</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>44</b></a> <a href="../files/translation.htm"><b>45</b></a> <a href="../volume.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> </nobr><br><nobr>segment <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><nobr>segments <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>select <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/rotation.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>26</b></a> <a href="../files/merging_nodes.htm"><b>27</b></a> <a href="../pattern_mapping.htm"><b>28</b></a> <a href="../files/vtk_3d_viewer.htm"><b>29</b></a> <a href="../files/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/using_operations_on_groups.htm"><b>31</b></a> <a href="../files/uniting_two_triangles.htm"><b>32</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>33</b></a> <a href="../files/translation.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> </nobr><br><a href="../merge_elements.htm"><b>selectable</b></a> <br><nobr>selected <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> </nobr><br><nobr>selecting <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>8</b></a> <a href="../presentation.htm"><b>9</b></a> <a href="../revolution.htm"><b>10</b></a> </nobr><br><nobr>selection <a href="../deleting_groups.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequence</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequences</b></a> <br><nobr>set <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../presentation.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../transparency.htm"><b>19</b></a> <a href="../selection_filter_library.htm"><b>20</b></a> </nobr><br><nobr>setcurrentstudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>setdisplaymode</b></a> <br><nobr>setlength <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>setmargin <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>setmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>setmesh</b></a> <br><nobr>setname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><nobr>setnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>setnumfunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setpredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>settings</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>settransparency</b></a> <br><nobr>sew <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewbordertoside</b></a> <br><a href="../transforming_meshes.htm"><b>sewconformfreeborders</b></a> <br><a href="../transforming_meshes.htm"><b>sewfreeborders</b></a> <br><nobr>sewing <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewsideelements</b></a> <br><nobr><a name="bms_SG"></a><a name="subkey_SG"></a>sg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_SH"></a><a name="subkey_SH"></a>shading <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> <a href="../transparency.htm"><b>3</b></a> </nobr><br><nobr>shall <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/merging_nodes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/uniting_two_triangles.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>shape <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>shape_mesh</b></a> <br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shapetype <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>shift <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> </nobr><br><a href="../files/warp.htm"><b>shortest</b></a> <br><nobr>should <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>show <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>showing</b></a> <br><nobr>shown <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>shows <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../presentation.htm"><b>shrink</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<a name="bms_TT"></a><a name="subkey_TT"></a><a href="../defining_hypotheses_tui.htm"><b>tt</b></a> <br><nobr><a name="bms_TU"></a><a name="subkey_TU"></a>tui <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/viewing_mesh_info.htm"><b>41</b></a> <a href="../files/using_operations_on_groups.htm"><b>42</b></a> <a href="../files/uniting_two_triangles.htm"><b>43</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>44</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../transforming_meshes.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../modifying_meshes.htm"><b>16</b></a> <a href="../grouping_elements.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>types <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
+<nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>sides <a href="../files/skew.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> </nobr><br><nobr>simple <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>simpler</b></a> <br><a href="../files/aspect_ratio.htm"><b>simplex</b></a> <br><a href="../aspect_ratio_3d.htm"><b>simplexes</b></a> <br><nobr>simply <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>sin</b></a> <br><a href="../about_viewing_meshes.htm"><b>size</b></a> <br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>sk <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>sketcher</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher1</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher2</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketchers</b></a> <br><nobr>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a name="bms_SL"></a><a name="subkey_SL"></a><a href="../transparency.htm"><b>slider</b></a> <br><a name="bms_SM"></a><a name="subkey_SM"></a><a href="../files/vtk_3d_viewer.htm"><b>small</b></a> <br><nobr>smesh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> <a href="../transforming_meshes.htm"><b>8</b></a> </nobr><br><nobr>smesh_mechanic <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><a href="../quality_controls.htm"><b>smesh_mechanic_tetra</b></a> <br><nobr>smesh_mesheditor <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>smeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>smeshgroup2</b></a> <br><nobr>smeshgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smooth</b></a> <br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><nobr>smoothing <a href="../files/smoothing.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smoothobject</b></a> <br><a href="../pattern_mapping.htm"><b>smp</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> <a href="../viewing_meshes.htm"><b>12</b></a> </nobr><br><nobr>solid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>solids <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>somewhat</b></a> <br><nobr>sort <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>source</b></a> <br><nobr><a name="bms_SP"></a><a name="subkey_SP"></a>space <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> </nobr><br><nobr>specific <a href="../files/constructing_groups_of_specific_elements.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>specified <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> </nobr><br><nobr>specifies <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>specify <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>specifying <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><nobr>sphere <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><nobr>split <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> </nobr><br><a name="bms_SQ"></a><a name="subkey_SQ"></a><a href="../modifying_meshes.htm"><b>sqrt</b></a> <br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standalone <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>standard <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr>start <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/running_smesh_module.htm"><b>7</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>startendlength</b></a> <br><nobr>starting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>status</b></a> <br><nobr>stdmeshers <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr>stored <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>straight <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>stretched</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>strictly</b></a> <br><nobr>structure <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>study <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>stuffed</b></a> <br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> </nobr><br><nobr>submenu <a href="../display_entity.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> </nobr><br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/viewing_mesh_info.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../revolution.htm"><b>15</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>subshapeall <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>subshapelist <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>subshapelist1</b></a> <br><a href="../transforming_meshes.htm"><b>subshapelist2</b></a> <br><nobr>subshapename <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>succeded <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>sum</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>supplement</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>supplementary</b></a> <br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><nobr>surfaces <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>surrounding <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a name="bms_SW"></a><a name="subkey_SW"></a><a href="../modifying_meshes.htm"><b>sweep</b></a> <br><nobr>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>switches</b></a> <br><nobr><a name="bms_SY"></a><a name="subkey_SY"></a>symmetrical <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><nobr>symmetry <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>syntax</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_U"></a><a name="subkey_U{"></a>u <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../selection_filter_library.htm"><b>unary</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassigning</b></a> <br><a href="../files/smoothing.htm"><b>uniform</b></a> <br><nobr>union <a href="../grouping_elements.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../grouping_elements.htm"><b>uniongroups</b></a> <br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>united <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>uniting <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../deleting_groups.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>update</b></a> <br><nobr>updated <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>updateobjbrowser <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>uploaded</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>useful <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>user <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>uses</b></a> <br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../transparency.htm"><b>8</b></a> </nobr><br><nobr>usually <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> <a href="../length.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> </nobr><br><nobr>values <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>ve <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>vector <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>vertices <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>very <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>via <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>view</b></a> <br><nobr>viewer <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/aspect_ratio.htm"><b>13</b></a> <a href="../files/area_of_elements.htm"><b>14</b></a> <a href="../files/taper.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> <a href="../files/skew.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../selection_filter_library.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> <a href="../files/uniting_two_triangles.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> </nobr><br><nobr>viewing <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../clipping.htm"><b>views</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> </nobr><br><nobr>volumes <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../files/viewing_mesh_info.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> </nobr><br><nobr><a name="bms_VX"></a><a name="subkey_VX"></a>vxy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_W"></a><a name="subkey_WA"></a><a href="../pattern_mapping.htm"><b>walking</b></a> <br><nobr>warp <a href="../quality_controls.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>way <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><nobr>ways <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../files/smoothing.htm"><b>weighted</b></a> <br><a href="../pattern_mapping.htm"><b>well</b></a> <br><a name="bms_WH"></a><a name="subkey_WH"></a><a href="../selection_filter_library.htm"><b>whether</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>while</b></a> <br><nobr>white <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../free_borders.htm"><b>2</b></a> </nobr><br><nobr>whole <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><nobr>whose <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../deleting_groups.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/running_smesh_module.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>30</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>31</b></a> <a href="../selection_filter_library.htm"><b>32</b></a> <a href="../revolution.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../files/warp.htm"><b>35</b></a> <a href="../files/viewing_mesh_info.htm"><b>36</b></a> <a href="../files/using_operations_on_groups.htm"><b>37</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>38</b></a> <a href="../transparency.htm"><b>39</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> </nobr><br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>without</b></a> <br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../presentation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_TA"></a><a name="subkey_TA"></a>table <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../files/uniting_a_set_of_triangles.htm"><b>take</b></a> <br><nobr>taken <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>taking</b></a> <br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>tetra3d</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>tetrahedral</b></a> <br><a href="../files/constructing_meshes.htm"><b>tetrahedralization</b></a> <br><nobr>tetrahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>tetrahedrons <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>th <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>them <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../display_entity.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/merging_nodes.htm"><b>14</b></a> <a href="../files/vtk_3d_viewer.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> </nobr><br><nobr>those <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>threshold</b></a> <br><a name="bms_TI"></a><a name="subkey_TI"></a><a href="../files/vtk_3d_viewer.htm"><b>tick</b></a> <br><a href="../about_viewing_meshes.htm"><b>time</b></a> <br><a name="bms_TM"></a><a name="subkey_TM"></a><a href="../constructing_meshes.htm"><b>tmp</b></a> <br><a name="bms_TO"></a><a name="subkey_TO"></a><a href="../files/max._element_area_hypothesis.htm"><b>together</b></a> <br><nobr>toggle <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>toggling</b></a> <br><nobr>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>tool <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>toolbar <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/warp.htm"><b>20</b></a> <a href="../files/vtk_3d_viewer.htm"><b>21</b></a> <a href="../files/viewing_mesh_info.htm"><b>22</b></a> <a href="../files/uniting_two_triangles.htm"><b>23</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>24</b></a> <a href="../volume.htm"><b>25</b></a> <a href="../revolution.htm"><b>26</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><a href="../selection_filter_library.htm"><b>tools</b></a> <br><a href="../modifying_meshes.htm"><b>top</b></a> <br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/sewing_meshes.htm"><b>topologically</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>total</b></a> <br><a href="../files/smoothing.htm"><b>toward</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/symmetry.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../selection_filter_library.htm"><b>33</b></a> <a href="../presentation.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../files/warp.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> </nobr><br>\r
+<nobr><a name="bms_TR"></a><a name="subkey_TR"></a>transformation <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../files/translation.htm"><b>5</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../transforming_meshes.htm"><b>transforming</b></a> <br><nobr>translate <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../transforming_meshes.htm"><b>translateobject</b></a> <br><nobr>translation <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>transparency <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../transparency.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>transparent</b></a> <br><a href="../transforming_meshes.htm"><b>tri_mesh</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>tria</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>tria_mesh</b></a> <br><nobr>triangle <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../merge_elements.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>triangle_mefisto</b></a> <br><nobr>triangles <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../files/vtk_3d_viewer.htm"><b>13</b></a> <a href="../files/uniting_two_triangles.htm"><b>14</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>15</b></a> <a href="../viewing_meshes.htm"><b>16</b></a> <a href="../transforming_meshes.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> </nobr><br><nobr>triangular <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>triangulation</b></a> <br><nobr>trias <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>trihedron</b></a> <br><a href="../modifying_meshes.htm"><b>tritoquad</b></a> <br><a href="../files/constructing_meshes.htm"><b>trying</b></a> <br><a name="bms_TT"></a><a name="subkey_TT"></a><a href="../defining_hypotheses_tui.htm"><b>tt</b></a> <br><nobr><a name="bms_TU"></a><a name="subkey_TU"></a>tui <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/minimum_angle.htm"><b>30</b></a> <a href="../files/merging_nodes.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../merge_elements.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/viewing_mesh_info.htm"><b>41</b></a> <a href="../files/using_operations_on_groups.htm"><b>42</b></a> <a href="../files/uniting_two_triangles.htm"><b>43</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>44</b></a> <a href="../files/translation.htm"><b>45</b></a> <a href="../volume.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../grouping_elements.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../files/using_operations_on_groups.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/translation.htm"><b>18</b></a> <a href="../transforming_meshes.htm"><b>19</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/aspect_ratio.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>types <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_Z"></a><a name="subkey_Z{"></a>z <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><br><br></p>\r
+<nobr><a name="bm_U"></a><a name="subkey_U{"></a>u <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../selection_filter_library.htm"><b>unary</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassigning</b></a> <br><a href="../files/smoothing.htm"><b>uniform</b></a> <br><nobr>union <a href="../grouping_elements.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../grouping_elements.htm"><b>uniongroups</b></a> <br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>united <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>uniting <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>update</b></a> <br><nobr>updated <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>updateobjbrowser <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>uploaded</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/vtk_3d_viewer.htm"><b>11</b></a> <a href="../selection_filter_library.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> </nobr><br><nobr>useful <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> </nobr><br><nobr>user <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>uses</b></a> <br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../transparency.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> </nobr><br><nobr>usually <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../length.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> </nobr><br><nobr>values <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>varies</b></a> <br><a href="../about_viewing_meshes.htm"><b>various</b></a> <br><a name="bms_VE"></a><a name="subkey_VE"></a><a href="../files/adding_nodes_and_elements.htm"><b>ve</b></a> <br><nobr>vector <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> <a href="../revolution.htm"><b>10</b></a> </nobr><br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>vertices <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>very <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>via <a href="../files/vtk_3d_viewer.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>view <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr>viewer <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/aspect_ratio.htm"><b>13</b></a> <a href="../files/area_of_elements.htm"><b>14</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>15</b></a> <a href="../files/taper.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../files/skew.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>20</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>21</b></a> <a href="../files/minimum_angle.htm"><b>22</b></a> <a href="../files/length_of_edges.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> <a href="../files/vtk_3d_viewer.htm"><b>25</b></a> <a href="../files/uniting_two_triangles.htm"><b>26</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>27</b></a> <a href="../volume.htm"><b>28</b></a> <a href="../selection_filter_library.htm"><b>29</b></a> <a href="../revolution.htm"><b>30</b></a> </nobr><br><nobr>viewing <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../clipping.htm"><b>views</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>visible</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>visualize</b></a> <br><a name="bms_VK"></a><a name="subkey_VK"></a><a href="../aspect_ratio_3d.htm"><b>vk</b></a> <br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../volume.htm"><b>11</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../display_entity.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>7</b></a> <a href="../files/viewing_mesh_info.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_VT"></a><a name="subkey_VT"></a>vtk <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VX"></a><a name="subkey_VX"></a>vxy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_W"></a><a name="subkey_WA"></a><a href="../pattern_mapping.htm"><b>walking</b></a> <br><nobr>warp <a href="../quality_controls.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>way <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><nobr>ways <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../files/smoothing.htm"><b>weighted</b></a> <br><a href="../pattern_mapping.htm"><b>well</b></a> <br><a name="bms_WH"></a><a name="subkey_WH"></a><a href="../selection_filter_library.htm"><b>whether</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>while</b></a> <br><a href="../free_borders.htm"><b>white</b></a> <br><nobr>whole <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>whose <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf13.htm" target="_self" title="previous search group"><b>>></b></a>\r
+\r
</body>\r
\r
</html>\r
--- /dev/null
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal; text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal; text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
+<p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
+<p class="ftsbody" >\r
+<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_submeshes.htm"><b>15</b></a> <a href="../files/constructing_meshes.htm"><b>16</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>17</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>18</b></a> <a href="../files/aspect_ratio.htm"><b>19</b></a> <a href="../files/arithmetic_1d.htm"><b>20</b></a> <a href="../files/area_of_elements.htm"><b>21</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/running_smesh_module.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>30</b></a> <a href="../files/minimum_angle.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../modifying_meshes.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> <a href="../files/viewing_mesh_info.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../volume.htm"><b>42</b></a> <a href="../transparency.htm"><b>43</b></a> <a href="../selection_filter_library.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>wire_discretisation</b></a> <br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>without <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>work</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><a href="../files/aspect_ratio.htm"><b>worst</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>x0</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>y0</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/symmetry.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../files/length_of_edges.htm"><b>33</b></a> <a href="../presentation.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../files/warp.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> <a href="../files/translation.htm"><b>38</b></a> <a href="../volume.htm"><b>39</b></a> <a href="../selection_filter_library.htm"><b>40</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_Z"></a><a name="subkey_Z{"></a>z <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>z0</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><a name="bms_ZO"></a><a name="subkey_ZO"></a><a href="../files/vtk_3d_viewer.htm"><b>zoom</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<a name="bms_CO"></a><a name="subkey_CO"></a><a href="../files/sewing_meshes.htm"><b>co</b></a> <br><a href="../files/merging_nodes.htm"><b>coincident</b></a> <br><a href="../about_viewing_meshes.htm"><b>color</b></a> <br><nobr>colored <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/length_of_edges.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../about_viewing_meshes.htm"><b>colors</b></a> <br><nobr>combine <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> </nobr><br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>common <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>compare</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>compose <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>compound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>computation <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>compute <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> </nobr><br><nobr>computed <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>computes</b></a> <br><nobr>computing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>concepts</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>confirm <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>confirmation</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>connect</b></a> <br><nobr>connected <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>connecting</b></a> <br><nobr>connection <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>connectivity</b></a> <br><a href="../files/constructing_meshes.htm"><b>consider</b></a> <br><nobr>considered <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>consisting <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/length_of_edges.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>console</b></a> <br><a href="../files/arithmetic_1d.htm"><b>constant</b></a> <br><nobr>construct <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> </nobr><br><nobr>constructed <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>construction <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><nobr>contain <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>containing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><nobr>contains <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../deleting_groups.htm"><b>contents</b></a> <br><a href="../files/smoothing.htm"><b>continues</b></a> <br><nobr>contour <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/uniting_a_set_of_triangles.htm"><b>contrast</b></a> <br><nobr>control <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/aspect_ratio.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/skew.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../free_edges.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>controls <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><a href="../files/smoothing.htm"><b>converge</b></a> <br><nobr>coordinates <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>copy <a href="../files/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><a href="../files/warp.htm"><b>corner</b></a> <br><nobr>corners <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>corresponding <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>could <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><a href="../files/constructing_meshes.htm"><b>course</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/rotation.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../files/merging_nodes.htm"><b>13</b></a> <a href="../transforming_meshes.htm"><b>14</b></a> <a href="../selection_filter_library.htm"><b>15</b></a> <a href="../quality_controls.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>createanddisplaygo</b></a> <br><nobr>createarea <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createaspectratio</b></a> <br><a href="../quality_controls.htm"><b>createaspectratio3d</b></a> <br><nobr>created <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><nobr>createequalto <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfiltermanager <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createfreeborders</b></a> <br><a href="../quality_controls.htm"><b>createfreeedges</b></a> <br><nobr>creategroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../grouping_elements.htm"><b>creategroupfromgeom</b></a> <br><nobr>createhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../quality_controls.htm"><b>createlength</b></a> <br><a href="../quality_controls.htm"><b>createlength2d</b></a> <br><nobr>createlessthan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createmesh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>createminimumangle <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>createmorethan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createmulticonnection</b></a> <br><a href="../quality_controls.htm"><b>createmulticonnection2d</b></a> <br><nobr>creates <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createskew</b></a> <br><a href="../quality_controls.htm"><b>createtaper</b></a> <br><a href="../quality_controls.htm"><b>createwarping</b></a> <br><nobr>creating <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br><nobr>criteria <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>criterion <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/length_of_edges.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>15</b></a> </nobr><br><nobr>cross <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a name="bms_CU"></a><a name="subkey_CU"></a><a href="../files/about_meshing_algorithms.htm"><b>cubic</b></a> <br><nobr>current <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>currently <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>curve <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> </nobr><br><nobr>curvilinear <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>cut <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> </nobr><br><a href="../grouping_elements.htm"><b>cutgroups</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>cutted</b></a> <br><nobr>cutting <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><nobr>default <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../presentation.htm"><b>6</b></a> <a href="../transparency.htm"><b>7</b></a> </nobr><br><nobr>define <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> </nobr><br><nobr>defined <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>defining <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><nobr>definite <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><nobr>definition <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>deflection <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>deflection1d</b></a> <br><a href="../clipping.htm"><b>degrees</b></a> <br><nobr>delete <a href="../deleting_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>deleted <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../free_edges.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>deletediag</b></a> <br><nobr>deletes <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>deleting</b></a> <br><nobr>deletion <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>density</b></a> <br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describe</b></a> <br><nobr>described <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describes</b></a> <br><a href="../pattern_mapping.htm"><b>description</b></a> <br><a href="../files/merging_nodes.htm"><b>desirable</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><a href="../files/merging_nodes.htm"><b>detect</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bms_CI"></a><a name="subkey_CI"></a>circle <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>circlemesh <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CL"></a><a name="subkey_CL"></a><a href="../selection_filter_library.htm"><b>clear</b></a> <br><nobr>click <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_submeshes.htm"><b>15</b></a> <a href="../files/constructing_meshes.htm"><b>16</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>17</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>18</b></a> <a href="../files/aspect_ratio.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../files/sewing_meshes.htm"><b>25</b></a> <a href="../files/running_smesh_module.htm"><b>26</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>27</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/length_of_edges.htm"><b>30</b></a> <a href="../pattern_mapping.htm"><b>31</b></a> <a href="../files/warp.htm"><b>32</b></a> <a href="../files/vtk_3d_viewer.htm"><b>33</b></a> <a href="../files/viewing_mesh_info.htm"><b>34</b></a> <a href="../files/using_operations_on_groups.htm"><b>35</b></a> <a href="../files/uniting_two_triangles.htm"><b>36</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>37</b></a> <a href="../volume.htm"><b>38</b></a> <a href="../selection_filter_library.htm"><b>39</b></a> <a href="../revolution.htm"><b>40</b></a> </nobr><br><nobr>clicking <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../presentation.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>clipping <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>close <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>closed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>closer</b></a> <br><a name="bms_CO"></a><a name="subkey_CO"></a><a href="../files/sewing_meshes.htm"><b>co</b></a> <br><a href="../files/arithmetic_1d.htm"><b>coarse</b></a> <br><nobr>coincident <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../merge_elements.htm"><b>2</b></a> </nobr><br><a href="../merge_elements.htm"><b>coincides</b></a> <br><nobr>color <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><nobr>colored <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> <a href="../volume.htm"><b>10</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><nobr>colors <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><nobr>combine <a href="../display_entity.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>common <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>compare <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../merge_elements.htm"><b>completely</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>complex</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>compose <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>compound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>computation <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>compute <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><nobr>computed <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>computes</b></a> <br><nobr>computing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>concepts</b></a> <br><nobr>conditions <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><nobr>confirm <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>confirmation</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>conformity</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>connect</b></a> <br><nobr>connected <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>connecting</b></a> <br><nobr>connection <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>connectivity</b></a> <br><nobr>consider <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><nobr>considered <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>consist</b></a> <br><nobr>consisting <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>console</b></a> <br><a href="../files/arithmetic_1d.htm"><b>constant</b></a> <br><nobr>construct <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> </nobr><br><nobr>constructed <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>construction <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><nobr>contain <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>containing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><nobr>contains <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>contents <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>continues</b></a> <br><nobr>contour <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/uniting_a_set_of_triangles.htm"><b>contrast</b></a> <br><nobr>control <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/aspect_ratio.htm"><b>6</b></a> <a href="../files/area_of_elements.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/minimum_angle.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../free_edges.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../volume.htm"><b>16</b></a> </nobr><br><nobr>controls <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../files/warp.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../volume.htm"><b>14</b></a> </nobr><br><a href="../files/smoothing.htm"><b>converge</b></a> <br><a href="../files/arithmetic_1d.htm"><b>conversion</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>coordinate</b></a> <br><nobr>coordinates <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> </nobr><br><nobr>copy <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>corner <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>corners <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>corresponding <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>cos</b></a> <br><a href="../modifying_meshes.htm"><b>cosal</b></a> <br><nobr>could <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><a href="../files/constructing_meshes.htm"><b>course</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>14</b></a> <a href="../files/merging_nodes.htm"><b>15</b></a> <a href="../quality_controls.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../transforming_meshes.htm"><b>21</b></a> <a href="../selection_filter_library.htm"><b>22</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>createanddisplaygo</b></a> <br><nobr>createarea <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createaspectratio</b></a> <br><a href="../quality_controls.htm"><b>createaspectratio3d</b></a> <br><nobr>created <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>createequalto <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfiltermanager <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createfreeborders</b></a> <br><a href="../quality_controls.htm"><b>createfreeedges</b></a> <br><nobr>creategroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../grouping_elements.htm"><b>creategroupfromgeom</b></a> <br><nobr>createhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../quality_controls.htm"><b>createlength</b></a> <br><a href="../quality_controls.htm"><b>createlength2d</b></a> <br><nobr>createlessthan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createmesh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>createminimumangle <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>createmorethan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createmulticonnection</b></a> <br><a href="../quality_controls.htm"><b>createmulticonnection2d</b></a> <br><nobr>creates <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createskew</b></a> <br><a href="../quality_controls.htm"><b>createtaper</b></a> <br><a href="../quality_controls.htm"><b>createvolume3d</b></a> <br><a href="../quality_controls.htm"><b>createwarping</b></a> <br><nobr>creating <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/using_operations_on_groups.htm"><b>5</b></a> </nobr><br><nobr>criteria <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>criterion <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../length.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../files/warp.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> <a href="../volume.htm"><b>15</b></a> <a href="../selection_filter_library.htm"><b>16</b></a> </nobr><br><nobr>cross <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>dialog <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> <a href="../files/sewing_meshes.htm"><b>17</b></a> <a href="../files/rotation.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/merging_nodes.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_two_triangles.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> </nobr><br><nobr>difference <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>different <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>differently</b></a> <br><a href="../files/arithmetic_1d.htm"><b>differs</b></a> <br><nobr>dimension <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/sewing_meshes.htm"><b>directed</b></a> <br><nobr>direction <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>directly <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>dirstruct <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretisation <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretized <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displace</b></a> <br><a href="../files/displacing_nodes.htm"><b>displaced</b></a> <br><nobr>display <a href="../display_entity.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/area_of_elements.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../presentation.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>16</b></a> </nobr><br><nobr>displayed <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../files/viewing_mesh_info.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> </nobr><br><a href="../files/displaying_nodes_numbers.htm"><b>displaying</b></a> <br><nobr>distance <a href="../clipping.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>distinguishes</b></a> <br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/arithmetic_1d.htm"><b>distribution</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divide</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/adding_nodes_and_elements.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><nobr>don <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>done</b></a> <br>\r
+<a name="bms_CU"></a><a name="subkey_CU"></a><a href="../files/about_meshing_algorithms.htm"><b>cubic</b></a> <br><nobr>current <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>currently <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>curve <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><nobr>curvilinear <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>cut <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../grouping_elements.htm"><b>cutgroups</b></a> <br><nobr>cutting <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CY"></a><a name="subkey_CY"></a><a href="../modifying_meshes.htm"><b>cylinder</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../files/constructing_groups_of_specific_elements.htm"><b>easily</b></a> <br><nobr><a name="bms_ED"></a><a name="subkey_ED"></a>edge <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../transforming_meshes.htm"><b>13</b></a> <a href="../quality_controls.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../modifying_meshes.htm"><b>16</b></a> <a href="../length.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../viewing_meshes.htm"><b>21</b></a> </nobr><br><nobr>edges <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../display_entity.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../constructing_meshes.htm"><b>8</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>9</b></a> <a href="../borders_at_multi-connection.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/sewing_meshes.htm"><b>20</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>21</b></a> <a href="../transforming_meshes.htm"><b>22</b></a> <a href="../selection_filter_library.htm"><b>23</b></a> <a href="../quality_controls.htm"><b>24</b></a> <a href="../pattern_mapping.htm"><b>25</b></a> <a href="../grouping_elements.htm"><b>26</b></a> <a href="../free_edges.htm"><b>27</b></a> <a href="../free_borders.htm"><b>28</b></a> <a href="../files/warp.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../viewing_meshes.htm"><b>31</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>edgeslist</b></a> <br><nobr>edgex111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey22 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edit <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>editing <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br><a name="bms_EF"></a><a name="subkey_EF"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>effect</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/minimum_angle.htm"><b>16</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>17</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> <a href="../free_edges.htm"><b>21</b></a> <a href="../files/warp.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> </nobr><br><nobr>elements <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../deleting_groups.htm"><b>7</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>8</b></a> <a href="../aspect_ratio_3d.htm"><b>9</b></a> <a href="../about_viewing_meshes.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>19</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>20</b></a> <a href="../files/aspect_ratio.htm"><b>21</b></a> <a href="../files/arithmetic_1d.htm"><b>22</b></a> <a href="../files/area_of_elements.htm"><b>23</b></a> <a href="../files/translation.htm"><b>24</b></a> <a href="../files/taper.htm"><b>25</b></a> <a href="../files/symmetry.htm"><b>26</b></a> <a href="../files/smoothing.htm"><b>27</b></a> <a href="../files/skew.htm"><b>28</b></a> <a href="../files/sewing_meshes.htm"><b>29</b></a> <a href="../files/rotation.htm"><b>30</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>31</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>32</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>33</b></a> <a href="../files/minimum_angle.htm"><b>34</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>35</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>36</b></a> <a href="../transforming_meshes.htm"><b>37</b></a> <a href="../selection_filter_library.htm"><b>38</b></a> <a href="../revolution.htm"><b>39</b></a> <a href="../pattern_mapping.htm"><b>40</b></a> <a href="../modifying_meshes.htm"><b>41</b></a> <a href="../grouping_elements.htm"><b>42</b></a> <a href="../free_edges.htm"><b>43</b></a> <a href="../files/warp.htm"><b>44</b></a> <a href="../files/viewing_mesh_info.htm"><b>45</b></a> <a href="../files/using_operations_on_groups.htm"><b>46</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>47</b></a> </nobr><br><nobr>else <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../selection_filter_library.htm"><b>enables</b></a> <br><a href="../selection_filter_library.htm"><b>enabling</b></a> <br><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><a href="../pattern_mapping.htm"><b>encountered</b></a> <br><nobr>end <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>ending <a href="../files/translation.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>ends</b></a> <br><a href="../files/sewing_meshes.htm"><b>enough</b></a> <br><nobr>enter <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</b></a> </nobr><br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>entity <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/arithmetic_1d.htm"><b>equidistant</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ER"></a><a name="subkey_ER"></a><a href="../about_viewing_meshes.htm"><b>erase</b></a> <br><nobr><a name="bms_ET"></a><a name="subkey_ET"></a>etc <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../aspect_ratio_3d.htm"><b>evaluate</b></a> <br><a href="../files/constructing_meshes.htm"><b>even</b></a> <br><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><a href="../files/constructing_meshes.htm"><b>everything</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>exceed</b></a> <br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><a href="../files/sewing_meshes.htm"><b>except</b></a> <br><a href="../files/about_hypotheses.htm"><b>exist</b></a> <br><a href="../files/constructing_meshes.htm"><b>existence</b></a> <br><nobr>existing <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr>export <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../constructing_meshes.htm"><b>exportmed</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><a href="../clipping.htm"><b>extremities</b></a> <br><nobr>extruded <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>extrusion <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>extrusionalongpathobject</b></a> <br><a href="../modifying_meshes.htm"><b>extrusionsweepobject</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../modifying_meshes.htm"><b>def</b></a> <br><nobr>default <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../presentation.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> <a href="../transparency.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>define <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/arithmetic_1d.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../files/vtk_3d_viewer.htm"><b>14</b></a> <a href="../transforming_meshes.htm"><b>15</b></a> </nobr><br><nobr>defined <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>defining <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><nobr>definite <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><nobr>definition <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>deflection <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>deflection1d</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>deformed</b></a> <br><a href="../files/aspect_ratio.htm"><b>degree</b></a> <br><a href="../clipping.htm"><b>degrees</b></a> <br><nobr>delete <a href="../deleting_groups.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>deleted <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../free_edges.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>deletediag</b></a> <br><a href="../selection_filter_library.htm"><b>deletes</b></a> <br><a href="../deleting_groups.htm"><b>deleting</b></a> <br><nobr>deletion <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>density</b></a> <br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describe</b></a> <br><nobr>described <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describes</b></a> <br><a href="../pattern_mapping.htm"><b>description</b></a> <br><a href="../files/merging_nodes.htm"><b>desirable</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><a href="../about_viewing_meshes.htm"><b>detailed</b></a> <br><a href="../files/merging_nodes.htm"><b>detect</b></a> <br><a name="bms_DH"></a><a name="subkey_DH"></a><a href="../modifying_meshes.htm"><b>dh</b></a> <br><nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>dialog <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> <a href="../files/sewing_meshes.htm"><b>17</b></a> <a href="../files/rotation.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/merging_nodes.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../merge_elements.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_two_triangles.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> <a href="../files/translation.htm"><b>27</b></a> <a href="../revolution.htm"><b>28</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>diameter</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>differ</b></a> <br><nobr>difference <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>different <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>differently</b></a> <br><a href="../files/arithmetic_1d.htm"><b>differs</b></a> <br><nobr>dimension <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/sewing_meshes.htm"><b>directed</b></a> <br><nobr>direction <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>directly</b></a> <br><nobr>dirstruct <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretisation <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretized <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displace</b></a> <br><a href="../files/displacing_nodes.htm"><b>displaced</b></a> <br><nobr>display <a href="../display_entity.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../files/minimum_angle.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../presentation.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../volume.htm"><b>19</b></a> </nobr><br><nobr>displayed <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/taper.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/minimum_angle.htm"><b>15</b></a> <a href="../files/length_of_edges.htm"><b>16</b></a> <a href="../free_borders.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> <a href="../files/vtk_3d_viewer.htm"><b>19</b></a> <a href="../files/viewing_mesh_info.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../volume.htm"><b>22</b></a> </nobr><br><a href="../files/displaying_nodes_numbers.htm"><b>displaying</b></a> <br><nobr>distance <a href="../clipping.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>distinguishes</b></a> <br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/arithmetic_1d.htm"><b>distribution</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divide</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/adding_nodes_and_elements.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><nobr>don <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>double</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>downward</b></a> <br><a name="bms_DR"></a><a name="subkey_DR"></a><a href="../modifying_meshes.htm"><b>dr</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>drag</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>drawn</b></a> <br><nobr><a name="bms_DU"></a><a name="subkey_DU"></a>dump <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a name="bms_DX"></a><a name="subkey_DX"></a><a href="../modifying_meshes.htm"><b>dx</b></a> <br><a name="bms_DY"></a><a name="subkey_DY"></a><a href="../modifying_meshes.htm"><b>dy</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../files/constructing_groups_of_specific_elements.htm"><b>easily</b></a> <br><nobr><a name="bms_ED"></a><a name="subkey_ED"></a>edge <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>14</b></a> <a href="../quality_controls.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../length.htm"><b>18</b></a> <a href="../grouping_elements.htm"><b>19</b></a> <a href="../files/warp.htm"><b>20</b></a> <a href="../files/uniting_two_triangles.htm"><b>21</b></a> <a href="../viewing_meshes.htm"><b>22</b></a> <a href="../transforming_meshes.htm"><b>23</b></a> </nobr><br><nobr>edges <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../display_entity.htm"><b>5</b></a> <a href="../defining_hypotheses_tui.htm"><b>6</b></a> <a href="../constructing_meshes.htm"><b>7</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>8</b></a> <a href="../borders_at_multi-connection.htm"><b>9</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>10</b></a> <a href="../about_viewing_meshes.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>22</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>23</b></a> <a href="../files/length_of_edges.htm"><b>24</b></a> <a href="../quality_controls.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../grouping_elements.htm"><b>27</b></a> <a href="../free_edges.htm"><b>28</b></a> <a href="../free_borders.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>31</b></a> <a href="../viewing_meshes.htm"><b>32</b></a> <a href="../transforming_meshes.htm"><b>33</b></a> <a href="../selection_filter_library.htm"><b>34</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>edgeslist</b></a> <br><nobr>edgex111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey22 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edit <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>editing <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-\r
-\r
-<nobr><a name="bm_F"></a><a name="subkey_F{"></a>f <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FA"></a><a name="subkey_FA"></a>face <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../transforming_meshes.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../free_borders.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>facelist</b></a> <br><nobr>faces <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../display_entity.htm"><b>5</b></a> <a href="../defining_hypotheses_tui.htm"><b>6</b></a> <a href="../constructing_meshes.htm"><b>7</b></a> <a href="../borders_at_multi-connection.htm"><b>8</b></a> <a href="../aspect_ratio_3d.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../transforming_meshes.htm"><b>16</b></a> <a href="../selection_filter_library.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../modifying_meshes.htm"><b>19</b></a> <a href="../grouping_elements.htm"><b>20</b></a> <a href="../free_borders.htm"><b>21</b></a> <a href="../files/viewing_mesh_info.htm"><b>22</b></a> <a href="../viewing_meshes.htm"><b>23</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>facesrotate</b></a> <br><a href="../modifying_meshes.htm"><b>facessmooth</b></a> <br><a href="../modifying_meshes.htm"><b>facestritoquad</b></a> <br><nobr>facex11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facex21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>factor</b></a> <br><nobr>factoryserver <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../extrusion_along_a_path.htm"><b>fashion</b></a> <br><a href="../files/smoothing.htm"><b>faster</b></a> <br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> </nobr><br><nobr>fields <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>fifth</b></a> <br><nobr>file <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><nobr>fill <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>filter <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><nobr>filters <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>find <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>findcoincidentnodes</b></a> <br><nobr>findorloadcomponent <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><nobr>first <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../pattern_mapping.htm"><b>flag</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>folder <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>following <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/merging_nodes.htm"><b>23</b></a> <a href="../revolution.htm"><b>24</b></a> <a href="../pattern_mapping.htm"><b>25</b></a> <a href="../files/viewing_mesh_info.htm"><b>26</b></a> <a href="../files/using_operations_on_groups.htm"><b>27</b></a> <a href="../files/uniting_two_triangles.htm"><b>28</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>29</b></a> </nobr><br><nobr>follows <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>formed</b></a> <br><nobr>forming <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>forms</b></a> <br><nobr>formula <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>formulas</b></a> <br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><a name="bms_FU"></a><a name="subkey_FU"></a><a href="../about_viewing_meshes.htm"><b>functionalities</b></a> <br><nobr>functionality <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>generation <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../files/viewing_mesh_info.htm"><b>17</b></a> </nobr><br><nobr>geometry <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>geompy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr>get <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> </nobr><br><nobr>getelementsid <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>getid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../grouping_elements.htm"><b>getlistofid</b></a> <br><nobr>getmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>getmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>getmesh <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmesheditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>getname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>getnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GG"></a><a name="subkey_GG"></a><a href="../defining_hypotheses_tui.htm"><b>gg</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>gives <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><a name="bms_GO"></a><a name="subkey_GO"></a><a href="../files/smoothing.htm"><b>good</b></a> <br><a href="../pattern_mapping.htm"><b>got</b></a> <br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/creating_groups.htm"><b>green</b></a> <br><nobr>group <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../files/using_operations_on_groups.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>group1</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12a</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12b</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group2</b></a> <br><nobr>grouping <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>grouprotate</b></a> <br><nobr>groups <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/merging_nodes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../files/viewing_mesh_info.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>groupsmooth</b></a> <br><a href="../transforming_meshes.htm"><b>groupsofnodes</b></a> <br><a href="../modifying_meshes.htm"><b>grouptritoquad</b></a> <br>\r
+<a name="bms_EF"></a><a name="subkey_EF"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>effect</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../files/minimum_angle.htm"><b>17</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>18</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> <a href="../modifying_meshes.htm"><b>21</b></a> <a href="../free_edges.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>24</b></a> <a href="../revolution.htm"><b>25</b></a> </nobr><br><nobr>elements <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../deleting_groups.htm"><b>6</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>7</b></a> <a href="../aspect_ratio_3d.htm"><b>8</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>9</b></a> <a href="../about_viewing_meshes.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/cutting_quadrangles.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/arithmetic_1d.htm"><b>21</b></a> <a href="../files/area_of_elements.htm"><b>22</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>23</b></a> <a href="../files/taper.htm"><b>24</b></a> <a href="../files/symmetry.htm"><b>25</b></a> <a href="../files/smoothing.htm"><b>26</b></a> <a href="../files/skew.htm"><b>27</b></a> <a href="../files/sewing_meshes.htm"><b>28</b></a> <a href="../files/rotation.htm"><b>29</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>30</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>31</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>32</b></a> <a href="../files/minimum_angle.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../files/length_of_edges.htm"><b>36</b></a> <a href="../quality_controls.htm"><b>37</b></a> <a href="../pattern_mapping.htm"><b>38</b></a> <a href="../modifying_meshes.htm"><b>39</b></a> <a href="../merge_elements.htm"><b>40</b></a> <a href="../grouping_elements.htm"><b>41</b></a> <a href="../free_edges.htm"><b>42</b></a> <a href="../files/warp.htm"><b>43</b></a> <a href="../files/viewing_mesh_info.htm"><b>44</b></a> <a href="../files/using_operations_on_groups.htm"><b>45</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>46</b></a> <a href="../files/translation.htm"><b>47</b></a> <a href="../volume.htm"><b>48</b></a> <a href="../transforming_meshes.htm"><b>49</b></a> <a href="../selection_filter_library.htm"><b>50</b></a> <a href="../revolution.htm"><b>51</b></a> </nobr><br><nobr>else <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../selection_filter_library.htm"><b>enables</b></a> <br><a href="../selection_filter_library.htm"><b>enabling</b></a> <br><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><a href="../pattern_mapping.htm"><b>encountered</b></a> <br><nobr>end <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> </nobr><br><nobr>ending <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>ends</b></a> <br><a href="../files/sewing_meshes.htm"><b>enough</b></a> <br><nobr>enter <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</b></a> </nobr><br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>entity <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/arithmetic_1d.htm"><b>equidistant</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ER"></a><a name="subkey_ER"></a><a href="../about_viewing_meshes.htm"><b>erase</b></a> <br><nobr><a name="bms_ET"></a><a name="subkey_ET"></a>etc <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_EV"></a><a name="subkey_EV"></a>even <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><a href="../files/constructing_meshes.htm"><b>everything</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>exceed</b></a> <br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><nobr>except <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>exist</b></a> <br><a href="../files/constructing_meshes.htm"><b>existence</b></a> <br><nobr>existing <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>exponent</b></a> <br><nobr>export <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../constructing_meshes.htm"><b>exportmed</b></a> <br><nobr>exports <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>extended</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><a href="../files/arithmetic_1d.htm"><b>extremely</b></a> <br><a href="../clipping.htm"><b>extremities</b></a> <br><nobr>extruded <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>extrusion <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>extrusionalongpathobject <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>extrusionsweepobject</b></a> <br>\r
<br><br>\r
-<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><a href="../clipping.htm"><b>halves</b></a> <br><nobr>having <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>helical</b></a> <br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><a href="../pattern_mapping.htm"><b>hence</b></a> <br><nobr>here <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>hexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>hexa_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>hexa3d</b></a> <br><a href="../extrusion_along_a_path.htm"><b>hexagon</b></a> <br><nobr>hexahedral <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>hexahedralization</b></a> <br><nobr>hexahedrical <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>hexahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>hexahedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_F"></a><a name="subkey_F{"></a>f <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FA"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../pattern_mapping.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../transforming_meshes.htm"><b>16</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>face_1</b></a> <br><a href="../modifying_meshes.htm"><b>face_2</b></a> <br><nobr>face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>facelist</b></a> <br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../display_entity.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../borders_at_multi-connection.htm"><b>7</b></a> <a href="../aspect_ratio_3d.htm"><b>8</b></a> <a href="../about_viewing_meshes.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../quality_controls.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../modifying_meshes.htm"><b>19</b></a> <a href="../grouping_elements.htm"><b>20</b></a> <a href="../free_borders.htm"><b>21</b></a> <a href="../files/viewing_mesh_info.htm"><b>22</b></a> <a href="../viewing_meshes.htm"><b>23</b></a> <a href="../transforming_meshes.htm"><b>24</b></a> <a href="../selection_filter_library.htm"><b>25</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>facesrotate</b></a> <br><a href="../modifying_meshes.htm"><b>facessmooth</b></a> <br><a href="../modifying_meshes.htm"><b>facestritoquad</b></a> <br><nobr>facex11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facex21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>factor <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>factoryserver <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>failed</b></a> <br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../extrusion_along_a_path.htm"><b>fashion</b></a> <br><a href="../files/smoothing.htm"><b>faster</b></a> <br><a name="bms_FE"></a><a name="subkey_FE"></a><a href="../files/creating_groups.htm"><b>feature</b></a> <br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> </nobr><br><nobr>fields <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>fifth</b></a> <br><nobr>file <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><nobr>fill <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><nobr>filter <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>filters <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>find <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>findcoincidentnodes</b></a> <br><nobr>findorloadcomponent <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><a href="../files/arithmetic_1d.htm"><b>fine</b></a> <br><a href="../files/arithmetic_1d.htm"><b>fineness</b></a> <br><nobr>first <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>fit</b></a> <br><a href="../modifying_meshes.htm"><b>five</b></a> <br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../pattern_mapping.htm"><b>flag</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>folder <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>following <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_submeshes.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>15</b></a> <a href="../files/symmetry.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/rotation.htm"><b>19</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>20</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>21</b></a> <a href="../files/merging_nodes.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> <a href="../files/viewing_mesh_info.htm"><b>24</b></a> <a href="../files/using_operations_on_groups.htm"><b>25</b></a> <a href="../files/uniting_two_triangles.htm"><b>26</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>27</b></a> <a href="../files/translation.htm"><b>28</b></a> <a href="../revolution.htm"><b>29</b></a> </nobr><br><nobr>follows <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>font</b></a> <br><nobr>format <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>formed <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> </nobr><br><nobr>forming <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>forms</b></a> <br><nobr>formula <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>fourth</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<a name="bms_HI"></a><a name="subkey_HI"></a><a href="../about_viewing_meshes.htm"><b>hide</b></a> <br><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>highlights <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../free_edges.htm"><b>3</b></a> <a href="../free_borders.htm"><b>4</b></a> </nobr><br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../pattern_mapping.htm"><b>holds</b></a> <br><a href="../free_edges.htm"><b>holes</b></a> <br><nobr>how <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a name="bms_HY"></a><a name="subkey_HY"></a><a href="../files/constructing_submeshes.htm"><b>hyp</b></a> <br><nobr>hyp1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp3 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyp4 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyparea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>hypnbseg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>hypotheses <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> </nobr><br><nobr>hypothesis <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../viewing_meshes.htm"><b>13</b></a> </nobr><br><nobr>hypvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br>\r
+<a name="bms_FR"></a><a name="subkey_FR"></a><a href="../files/vtk_3d_viewer.htm"><b>frame</b></a> <br><nobr>free <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../free_edges.htm"><b>7</b></a> <a href="../free_borders.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><a name="bms_FU"></a><a name="subkey_FU"></a><a href="../files/vtk_3d_viewer.htm"><b>functionalities</b></a> <br><nobr>functionality <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../merge_elements.htm"><b>5</b></a> <a href="../files/vtk_3d_viewer.htm"><b>6</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br><a href="../files/arithmetic_1d.htm"><b>future</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/uniting_two_triangles.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>id_circle</b></a> <br><nobr>id_face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>idbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>idcomp</b></a> <br><a href="../extrusion_along_a_path.htm"><b>idea</b></a> <br><nobr>idedge <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>idface</b></a> <br><nobr>ids <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><nobr>idtoobject <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../clipping.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../selection_filter_library.htm"><b>14</b></a> <a href="../revolution.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../extrusion_along_a_path.htm"><b>image</b></a> <br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><nobr>importcomponentgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><nobr><a name="bms_IN"></a><a name="subkey_IN"></a>including <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr>increasing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>index</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../pattern_mapping.htm"><b>indices</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/viewing_mesh_info.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>infos <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>init <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><nobr>initial <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><nobr>initialize <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>input</b></a> <br><a href="../selection_filter_library.htm"><b>insert</b></a> <br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><a href="../pattern_mapping.htm"><b>instead</b></a> <br><a href="../deleting_groups.htm"><b>intact</b></a> <br><a href="../files/sewing_meshes.htm"><b>intended</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/sewing_meshes.htm"><b>intermediate</b></a> <br><a href="../pattern_mapping.htm"><b>internal</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersect</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersected</b></a> <br><a href="../grouping_elements.htm"><b>intersectgroups</b></a> <br><nobr>intersection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/about_hypotheses.htm"><b>introduce</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>introducing</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><nobr>inverse <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>inversediag</b></a> <br><nobr>inversion <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>invisible</b></a> <br><a name="bms_IS"></a><a name="subkey_IS"></a><a href="../pattern_mapping.htm"><b>iso</b></a> <br><a href="../pattern_mapping.htm"><b>isoline</b></a> <br><a href="../pattern_mapping.htm"><b>isolines</b></a> <br><nobr>isplanarface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/translation.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/using_operations_on_groups.htm"><b>20</b></a> <a href="../files/uniting_two_triangles.htm"><b>21</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>22</b></a> </nobr><br><nobr>iteration <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>iterations <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
+<a name="bm_G"></a><a name="subkey_G{"></a><a href="../files/constructing_submeshes.htm"><b>g</b></a> <br><a name="bms_GA"></a><a name="subkey_GA"></a><a href="../files/vtk_3d_viewer.htm"><b>gauss</b></a> <br><nobr><a name="bms_GE"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>generation <a href="../extrusion.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/symmetry.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/rotation.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>13</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../files/viewing_mesh_info.htm"><b>16</b></a> <a href="../files/translation.htm"><b>17</b></a> </nobr><br><nobr>geometry <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>geompy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>get <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../clipping.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>getalgorithm</b></a> <br><a href="../quality_controls.htm"><b>getborders</b></a> <br><nobr>getelementsid <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>geterrorcode</b></a> <br><a href="../constructing_meshes.htm"><b>getid</b></a> <br><a href="../grouping_elements.htm"><b>getlistofid</b></a> <br><nobr>getmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmesh <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmesheditor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>getname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>getnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>getpattern</b></a> <br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GG"></a><a name="subkey_GG"></a><a href="../defining_hypotheses_tui.htm"><b>gg</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>gives <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/vtk_3d_viewer.htm"><b>global</b></a> <br><a name="bms_GO"></a><a name="subkey_GO"></a><a href="../modifying_meshes.htm"><b>going</b></a> <br><a href="../files/smoothing.htm"><b>good</b></a> <br><a href="../pattern_mapping.htm"><b>got</b></a> <br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/vtk_3d_viewer.htm"><b>graduate</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>graduated</b></a> <br><a href="../about_viewing_meshes.htm"><b>graphically</b></a> <br><a href="../files/arithmetic_1d.htm"><b>great</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>greater</b></a> <br><nobr>greatest <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>green</b></a> <br><nobr>group <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../selection_filter_library.htm"><b>15</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>group1</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12a</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12b</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group2</b></a> <br><nobr>grouping <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>grouprotate</b></a> <br><nobr>groups <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/merging_nodes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>groupsmooth</b></a> <br><a href="../transforming_meshes.htm"><b>groupsofnodes</b></a> <br><a href="../modifying_meshes.htm"><b>grouptritoquad</b></a> <br>\r
<br><br>\r
-<a name="bm_J"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
+<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><nobr><a name="bms_HA"></a><a name="subkey_HA"></a>half <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../clipping.htm"><b>halves</b></a> <br><nobr>having <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a name="bms_HE"></a><a name="subkey_HE"></a><a href="../modifying_meshes.htm"><b>hedron</b></a> <br><a href="../files/warp.htm"><b>height</b></a> <br><a href="../extrusion_along_a_path.htm"><b>helical</b></a> <br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><a href="../pattern_mapping.htm"><b>hence</b></a> <br><a href="../pattern_mapping.htm"><b>here</b></a> <br><nobr>hexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>hexa_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>hexa3d</b></a> <br><a href="../extrusion_along_a_path.htm"><b>hexagon</b></a> <br><nobr>hexahedral <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>hexahedralization</b></a> <br><nobr>hexahedrical <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hexahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>hexahedrons <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a name="bms_HH"></a><a name="subkey_HH"></a><a href="../modifying_meshes.htm"><b>hh</b></a> <br><nobr><a name="bms_HI"></a><a name="subkey_HI"></a>hide <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>hides</b></a> <br><a href="../about_viewing_meshes.htm"><b>hiding</b></a> <br><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>highlights <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../free_edges.htm"><b>3</b></a> <a href="../free_borders.htm"><b>4</b></a> </nobr><br><a name="bms_HM"></a><a name="subkey_HM"></a><a href="../files/aspect_ratio.htm"><b>hmax</b></a> <br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../pattern_mapping.htm"><b>holds</b></a> <br><a href="../free_edges.htm"><b>holes</b></a> <br><nobr>how <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a name="bms_HY"></a><a name="subkey_HY"></a><a href="../files/constructing_submeshes.htm"><b>hyp</b></a> <br><nobr>hyp1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp3 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyp4 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyparea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypnbseg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>hypotheses <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> </nobr><br><nobr>hypothesis <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> <a href="../transforming_meshes.htm"><b>12</b></a> </nobr><br><nobr>hypvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_K"></a><a name="subkey_K{"></a><a href="../files/arithmetic_1d.htm"><b>k</b></a> <br><nobr><a name="bms_KE"></a><a name="subkey_KE"></a>keep <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br><a name="bms_KO"></a><a name="subkey_KO"></a><a href="../modifying_meshes.htm"><b>ko</b></a> <br>\r
-<br><br>\r
-<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/smoothing.htm"><b>laplacian</b></a> <br><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><nobr>last <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>lastnodeid</b></a> <br><a href="../pattern_mapping.htm"><b>lay</b></a> <br><nobr>lays <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_LC"></a><a name="subkey_LC"></a>lcc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>learn <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>leave <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>left <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>legth</b></a> <br><nobr>len <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>length <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/aspect_ratio.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>10</b></a> <a href="../transforming_meshes.htm"><b>11</b></a> <a href="../quality_controls.htm"><b>12</b></a> <a href="../length.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>lengthfromedges</b></a> <br><nobr>less <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>let</b></a> <br><nobr>level <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_LI"></a><a name="subkey_LI"></a><a href="../defining_hypotheses_tui.htm"><b>libnetgenengine</b></a> <br><nobr>library <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>libstdmeshersengine <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>like <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/smoothing.htm"><b>limit</b></a> <br><nobr>limited <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>lines <a href="../extrusion.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>link</b></a> <br><a href="../files/sewing_meshes.htm"><b>linked</b></a> <br><a href="../files/sewing_meshes.htm"><b>links</b></a> <br><nobr>list <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../deleting_groups.htm"><b>listed</b></a> <br><a href="../selection_filter_library.htm"><b>lists</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> </nobr><br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/uniting_two_triangles.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>id_arc</b></a> <br><nobr>id_circle <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>id_face</b></a> <br><nobr>id_face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>idbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>idcomp</b></a> <br><a href="../extrusion_along_a_path.htm"><b>idea</b></a> <br><nobr>idedge <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>idface</b></a> <br><nobr>ids <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>idtoobject <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><a name="bms_LL"></a><a name="subkey_LL"></a><a href="../files/constructing_meshes.htm"><b>ll</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>load <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>local <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>locallength</b></a> <br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>located <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr>locations <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><a href="../files/displaying_nodes_numbers.htm"><b>look</b></a> <br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../selection_filter_library.htm"><b>looks</b></a> <br><a href="../files/about_meshes.htm"><b>lower</b></a> <br><a name="bms_LY"></a><a name="subkey_LY"></a><a href="../pattern_mapping.htm"><b>lying</b></a> <br>\r
+<nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../clipping.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/vtk_3d_viewer.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../selection_filter_library.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> </nobr><br><a name="bms_II"></a><a name="subkey_II"></a><a href="../modifying_meshes.htm"><b>ii</b></a> <br><nobr><a name="bms_IM"></a><a name="subkey_IM"></a>image <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><nobr>importcomponentgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><nobr><a name="bms_IN"></a><a name="subkey_IN"></a>including <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr>increasing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>index <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../pattern_mapping.htm"><b>indices</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/viewing_mesh_info.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>infos <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>init <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>init_geom</b></a> <br><nobr>initial <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>initialize <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>input <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>inscribed</b></a> <br><a href="../selection_filter_library.htm"><b>insert</b></a> <br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><nobr>instead <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>intact</b></a> <br><a href="../files/creating_groups.htm"><b>integer</b></a> <br><a href="../files/sewing_meshes.htm"><b>intended</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/sewing_meshes.htm"><b>intermediate</b></a> <br><a href="../pattern_mapping.htm"><b>internal</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersect</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersected</b></a> <br><a href="../grouping_elements.htm"><b>intersectgroups</b></a> <br><nobr>intersection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/about_hypotheses.htm"><b>introduce</b></a> <br><a href="../files/creating_groups.htm"><b>introduces</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>introducing</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><nobr>inverse <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>inversediag</b></a> <br><nobr>inversion <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>invisible</b></a> <br><a name="bms_IS"></a><a name="subkey_IS"></a><a href="../modifying_meshes.htm"><b>isdone</b></a> <br><a href="../pattern_mapping.htm"><b>iso</b></a> <br><a href="../pattern_mapping.htm"><b>isoline</b></a> <br><a href="../pattern_mapping.htm"><b>isolines</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>isometric</b></a> <br><nobr>isplanarface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><nobr>iteration <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>iterations <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> </nobr><br><nobr>makearc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>makebox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>makecirclethreepnt</b></a> <br><nobr>makecompound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makecylinderrh</b></a> <br><nobr>makeedge <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>makeface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makefaces</b></a> <br><nobr>makehexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>makequad <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makesketcher</b></a> <br><nobr>makevector <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>makevertex <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>makewire <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>managed</b></a> <br><nobr>manually <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mapped</b></a> <br><a href="../pattern_mapping.htm"><b>mapping</b></a> <br><a href="../extrusion_along_a_path.htm"><b>mass</b></a> <br><nobr>math <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> </nobr><br><nobr>maxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>maxelementarea_500 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>maxelementarea_800</b></a> <br><nobr>maxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>maxelementvolume_500 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>maxelementvolume_900</b></a> <br><nobr>maximum <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><nobr>meet <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>mefisto_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>mefisto2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>menu <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/translation.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/rotation.htm"><b>22</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>23</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>24</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../selection_filter_library.htm"><b>27</b></a> <a href="../revolution.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/using_operations_on_groups.htm"><b>31</b></a> <a href="../files/uniting_two_triangles.htm"><b>32</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>33</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>merge <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>merged</b></a> <br><a href="../transforming_meshes.htm"><b>mergenodes</b></a> <br><a href="../files/sewing_meshes.htm"><b>merges</b></a> <br><nobr>merging <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>mesh <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion_along_a_path.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../deleting_groups.htm"><b>8</b></a> <a href="../defining_hypotheses_tui.htm"><b>9</b></a> <a href="../constructing_meshes.htm"><b>10</b></a> <a href="../clipping.htm"><b>11</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>12</b></a> <a href="../borders_at_multi-connection.htm"><b>13</b></a> <a href="../aspect_ratio_3d.htm"><b>14</b></a> <a href="../about_viewing_meshes.htm"><b>15</b></a> <a href="../files/length_of_edges.htm"><b>16</b></a> <a href="../files/introduction_to_smesh.htm"><b>17</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>18</b></a> <a href="../files/editing_groups.htm"><b>19</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>20</b></a> <a href="../files/displacing_nodes.htm"><b>21</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>22</b></a> <a href="../files/cutting_quadrangles.htm"><b>23</b></a> <a href="../files/creating_groups.htm"><b>24</b></a> <a href="../files/constructing_submeshes.htm"><b>25</b></a> <a href="../files/constructing_meshes.htm"><b>26</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>27</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>28</b></a> <a href="../files/aspect_ratio.htm"><b>29</b></a> <a href="../files/arithmetic_1d.htm"><b>30</b></a> <a href="../files/area_of_elements.htm"><b>31</b></a> <a href="../files/translation.htm"><b>32</b></a> <a href="../files/taper.htm"><b>33</b></a> <a href="../files/symmetry.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../files/sewing_meshes.htm"><b>37</b></a> <a href="../files/running_smesh_module.htm"><b>38</b></a> <a href="../files/rotation.htm"><b>39</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>40</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>41</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>42</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>43</b></a> <a href="../files/minimum_angle.htm"><b>44</b></a> <a href="../files/merging_nodes.htm"><b>45</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>46</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>47</b></a> <a href="../transforming_meshes.htm"><b>48</b></a> <a href="../selection_filter_library.htm"><b>49</b></a> <a href="../revolution.htm"><b>50</b></a> <a href="../quality_controls.htm"><b>51</b></a> <a href="../presentation.htm"><b>52</b></a> <a href="../pattern_mapping.htm"><b>53</b></a> <a href="../modifying_meshes.htm"><b>54</b></a> <a href="../grouping_elements.htm"><b>55</b></a> <a href="../free_edges.htm"><b>56</b></a> <a href="../free_borders.htm"><b>57</b></a> <a href="../files/warp.htm"><b>58</b></a> <a href="../files/viewing_mesh_info.htm"><b>59</b></a> <a href="../files/using_operations_on_groups.htm"><b>60</b></a> <a href="../files/uniting_two_triangles.htm"><b>61</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>62</b></a> <a href="../viewing_meshes.htm"><b>63</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>mesh_1</b></a> <br><a href="../quality_controls.htm"><b>mesh_borders_at_multi</b></a> <br><a href="../quality_controls.htm"><b>mesh_freebord</b></a> <br><nobr>meshbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../transforming_meshes.htm"><b>13</b></a> <a href="../selection_filter_library.htm"><b>14</b></a> <a href="../modifying_meshes.htm"><b>15</b></a> <a href="../viewing_meshes.htm"><b>16</b></a> </nobr><br><nobr>meshing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/arithmetic_1d.htm"><b>12</b></a> <a href="../files/area_of_elements.htm"><b>13</b></a> <a href="../files/minimum_angle.htm"><b>14</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>meshmed</b></a> <br><a href="../files/smoothing.htm"><b>method</b></a> <br><a href="../files/smoothing.htm"><b>methods</b></a> <br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>mirrored</b></a> <br><a href="../transforming_meshes.htm"><b>mirrorobject</b></a> <br><nobr><a name="bms_MO"></a><a name="subkey_MO"></a>mode <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../presentation.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/translation.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/merging_nodes.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> <a href="../files/uniting_two_triangles.htm"><b>21</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>22</b></a> </nobr><br><nobr>modify <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>modifying</b></a> <br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>mouse</b></a> <br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>movenode</b></a> <br><nobr>moving <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_MP"></a><a name="subkey_MP"></a><a href="../transforming_meshes.htm"><b>mport</b></a> <br><nobr><a name="bms_MU"></a><a name="subkey_MU"></a>multi <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a href="../quality_controls.htm"><b>multiconnection</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br><nobr>must <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_MY"></a><a name="subkey_MY"></a>mystudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>mystudyid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br>\r
+<a name="bm_J"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br><nobr><a name="bms_JP"></a><a name="subkey_JP"></a>jpeg <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr>jpg <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br>\r
<br><br>\r
-<nobr><a name="bm_N"></a><a name="subkey_N{"></a>n <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_K"></a><a name="subkey_K{"></a>k <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_KE"></a><a name="subkey_KE"></a>keep <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>keyboard</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br><a name="bms_KO"></a><a name="subkey_KO"></a><a href="../modifying_meshes.htm"><b>ko</b></a> <br>\r
+<br><br>\r
+<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/vtk_3d_viewer.htm"><b>labels</b></a> <br><a href="../files/smoothing.htm"><b>laplacian</b></a> <br><nobr>last <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>lastnodeid</b></a> <br><a href="../pattern_mapping.htm"><b>lay</b></a> <br><nobr>lays <a href="../extrusion.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_LC"></a><a name="subkey_LC"></a>lcc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a name="bms_LE"></a><a name="subkey_LE"></a><a href="../files/viewing_mesh_info.htm"><b>learn</b></a> <br><nobr>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>leave <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>left <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><a href="../quality_controls.htm"><b>legth</b></a> <br><nobr>len <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>length <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/aspect_ratio.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../files/warp.htm"><b>13</b></a> <a href="../files/vtk_3d_viewer.htm"><b>14</b></a> <a href="../transforming_meshes.htm"><b>15</b></a> </nobr><br><nobr>lengthfromedges <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>less <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>let</b></a> <br><nobr>level <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a name="bms_LI"></a><a name="subkey_LI"></a><a href="../defining_hypotheses_tui.htm"><b>libnetgenengine</b></a> <br><nobr>library <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>libstdmeshersengine <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>like <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/smoothing.htm"><b>limit</b></a> <br><nobr>limited <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>lines <a href="../extrusion.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>link</b></a> <br><a href="../files/sewing_meshes.htm"><b>linked</b></a> <br><a href="../files/sewing_meshes.htm"><b>links</b></a> <br><nobr>list <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>listed <a href="../deleting_groups.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>lists</b></a> <br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><a name="bms_LL"></a><a name="subkey_LL"></a><a href="../files/vtk_3d_viewer.htm"><b>ll</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>load <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>loadfromface</b></a> <br><nobr>local <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>locallength</b></a> <br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>located <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr>locations <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>lock <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>locking</b></a> <br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><a href="../files/displaying_nodes_numbers.htm"><b>look</b></a> <br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../selection_filter_library.htm"><b>looks</b></a> <br><a href="../files/arithmetic_1d.htm"><b>low</b></a> <br><a href="../files/about_meshes.htm"><b>lower</b></a> <br><a name="bms_LY"></a><a name="subkey_LY"></a><a href="../pattern_mapping.htm"><b>lying</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> </nobr><br><nobr>makearc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>makebox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>makeboxdxdydz</b></a> <br><nobr>makecirclethreepnt <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>makecompound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>makecylinderrh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>makeedge <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>makeface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makefaces</b></a> <br><nobr>makehexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>makemesh</b></a> <br><a href="../modifying_meshes.htm"><b>makepolygon</b></a> <br><nobr>makequad <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makesketcher</b></a> <br><nobr>makevector <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>makevertex <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>makewire <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>managed</b></a> <br><nobr>manually <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mapped</b></a> <br><nobr>mapping <a href="../files/max._element_area_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>marked</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>marks</b></a> <br><a href="../extrusion_along_a_path.htm"><b>mass</b></a> <br><nobr>math <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>max_element_area</b></a> <br><nobr>maxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>maxelementarea_500</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>maxelementarea_800</b></a> <br><nobr>maxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>maxelementvolume_500</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>maxelementvolume_900</b></a> <br><nobr>maximum <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/viewing_mesh_info.htm"><b>7</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>names</b></a> <br><nobr><a name="bms_NB"></a><a name="subkey_NB"></a>nb <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbedges</b></a> <br><a href="../viewing_meshes.htm"><b>nbfaces</b></a> <br><a href="../viewing_meshes.htm"><b>nbhexas</b></a> <br><nobr>nbnodes <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbpolygons</b></a> <br><a href="../viewing_meshes.htm"><b>nbpolyhedrons</b></a> <br><a href="../viewing_meshes.htm"><b>nbprisms</b></a> <br><a href="../viewing_meshes.htm"><b>nbpyramids</b></a> <br><a href="../viewing_meshes.htm"><b>nbquadrangles</b></a> <br><a href="../viewing_meshes.htm"><b>nbtetras</b></a> <br><a href="../viewing_meshes.htm"><b>nbtriangles</b></a> <br><a href="../viewing_meshes.htm"><b>nbvolumes</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/adding_nodes_and_elements.htm"><b>necessary</b></a> <br><a href="../files/constructing_meshes.htm"><b>need</b></a> <br><a href="../aspect_ratio_3d.htm"><b>needed</b></a> <br><nobr>neighboring <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshing_algorithms.htm"><b>netgen</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgenplugin</b></a> <br><nobr>new <a href="../clipping.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> </nobr><br><nobr>next <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodal <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>node <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> </nobr><br><nobr>nodes <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/aspect_ratio.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/taper.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../files/skew.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/merging_nodes.htm"><b>19</b></a> <a href="../transforming_meshes.htm"><b>20</b></a> <a href="../selection_filter_library.htm"><b>21</b></a> <a href="../presentation.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> <a href="../modifying_meshes.htm"><b>24</b></a> <a href="../files/warp.htm"><b>25</b></a> <a href="../files/viewing_mesh_info.htm"><b>26</b></a> <a href="../viewing_meshes.htm"><b>27</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>none</b></a> <br><nobr>normal <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>note <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr>now <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../viewing_meshes.htm"><b>15</b></a> </nobr><br><nobr>numbering <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><nobr>numberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr>numberofsegments_10 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>numbers <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>numerical</b></a> <br>\r
+<a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><nobr>meet <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>mefisto_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>mefisto2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>menu <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/rotation.htm"><b>22</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>23</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>24</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../pattern_mapping.htm"><b>27</b></a> <a href="../files/viewing_mesh_info.htm"><b>28</b></a> <a href="../files/using_operations_on_groups.htm"><b>29</b></a> <a href="../files/uniting_two_triangles.htm"><b>30</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>31</b></a> <a href="../files/translation.htm"><b>32</b></a> <a href="../selection_filter_library.htm"><b>33</b></a> <a href="../revolution.htm"><b>34</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>merge <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../merge_elements.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>merged <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../merge_elements.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>mergeequalelements</b></a> <br><a href="../transforming_meshes.htm"><b>mergenodes</b></a> <br><a href="../files/sewing_meshes.htm"><b>merges</b></a> <br><nobr>merging <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../merge_elements.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>mesh <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../deleting_groups.htm"><b>7</b></a> <a href="../defining_hypotheses_tui.htm"><b>8</b></a> <a href="../constructing_meshes.htm"><b>9</b></a> <a href="../clipping.htm"><b>10</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>11</b></a> <a href="../borders_at_multi-connection.htm"><b>12</b></a> <a href="../aspect_ratio_3d.htm"><b>13</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>14</b></a> <a href="../about_viewing_meshes.htm"><b>15</b></a> <a href="../files/introduction_to_smesh.htm"><b>16</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>17</b></a> <a href="../files/editing_groups.htm"><b>18</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>19</b></a> <a href="../files/displacing_nodes.htm"><b>20</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>21</b></a> <a href="../files/cutting_quadrangles.htm"><b>22</b></a> <a href="../files/creating_groups.htm"><b>23</b></a> <a href="../files/constructing_submeshes.htm"><b>24</b></a> <a href="../files/constructing_meshes.htm"><b>25</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>26</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>27</b></a> <a href="../files/aspect_ratio.htm"><b>28</b></a> <a href="../files/arithmetic_1d.htm"><b>29</b></a> <a href="../files/area_of_elements.htm"><b>30</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>31</b></a> <a href="../files/taper.htm"><b>32</b></a> <a href="../files/symmetry.htm"><b>33</b></a> <a href="../files/smoothing.htm"><b>34</b></a> <a href="../files/skew.htm"><b>35</b></a> <a href="../files/sewing_meshes.htm"><b>36</b></a> <a href="../files/running_smesh_module.htm"><b>37</b></a> <a href="../files/rotation.htm"><b>38</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>39</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>40</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>41</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>42</b></a> <a href="../files/minimum_angle.htm"><b>43</b></a> <a href="../files/merging_nodes.htm"><b>44</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>45</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>46</b></a> <a href="../files/length_of_edges.htm"><b>47</b></a> <a href="../quality_controls.htm"><b>48</b></a> <a href="../presentation.htm"><b>49</b></a> <a href="../pattern_mapping.htm"><b>50</b></a> <a href="../modifying_meshes.htm"><b>51</b></a> <a href="../merge_elements.htm"><b>52</b></a> <a href="../grouping_elements.htm"><b>53</b></a> <a href="../free_edges.htm"><b>54</b></a> <a href="../free_borders.htm"><b>55</b></a> <a href="../files/warp.htm"><b>56</b></a> <a href="../files/vtk_3d_viewer.htm"><b>57</b></a> <a href="../files/viewing_mesh_info.htm"><b>58</b></a> <a href="../files/using_operations_on_groups.htm"><b>59</b></a> <a href="../files/uniting_two_triangles.htm"><b>60</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>61</b></a> <a href="../files/translation.htm"><b>62</b></a> <a href="../volume.htm"><b>63</b></a> <a href="../viewing_meshes.htm"><b>64</b></a> <a href="../transforming_meshes.htm"><b>65</b></a> <a href="../selection_filter_library.htm"><b>66</b></a> <a href="../revolution.htm"><b>67</b></a> </nobr><br><nobr>mesh_1 <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>mesh_2</b></a> <br><a href="../quality_controls.htm"><b>mesh_borders_at_multi</b></a> <br><a href="../quality_controls.htm"><b>mesh_freebord</b></a> <br><nobr>meshbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../transforming_meshes.htm"><b>8</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>mesheditor</b></a> <br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>13</b></a> <a href="../modifying_meshes.htm"><b>14</b></a> <a href="../files/vtk_3d_viewer.htm"><b>15</b></a> <a href="../volume.htm"><b>16</b></a> <a href="../viewing_meshes.htm"><b>17</b></a> <a href="../transforming_meshes.htm"><b>18</b></a> <a href="../selection_filter_library.htm"><b>19</b></a> </nobr><br><nobr>meshing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../files/length_of_edges.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>meshmed</b></a> <br><nobr>method <a href="../files/smoothing.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>methods</b></a> <br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>middle <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>mirrored</b></a> <br><a href="../transforming_meshes.htm"><b>mirrorobject</b></a> <br><nobr><a name="bms_MO"></a><a name="subkey_MO"></a>mode <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../presentation.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/merging_nodes.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><nobr>modify <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>modifying</b></a> <br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>modules</b></a> <br><nobr>mouse <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>movenode</b></a> <br><nobr>moving <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_MU"></a><a name="subkey_MU"></a>multi <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a href="../quality_controls.htm"><b>multiconnection</b></a> <br><nobr>must <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><a name="bms_MY"></a><a name="subkey_MY"></a><a href="../quality_controls.htm"><b>myelemid</b></a> <br><a href="../quality_controls.htm"><b>mypnt1</b></a> <br><a href="../quality_controls.htm"><b>mypnt2</b></a> <br><nobr>mystudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>mystudyid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br>\r
<br><br>\r
-<a name="bm_O"></a><a name="subkey_OB"></a><a href="../files/sewing_meshes.htm"><b>obey</b></a> <br><nobr>object <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>18</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>19</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>20</b></a> <a href="../presentation.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../modifying_meshes.htm"><b>23</b></a> <a href="../files/viewing_mesh_info.htm"><b>24</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>25</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../presentation.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> </nobr><br><nobr>objecttoid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><a href="../extrusion_along_a_path.htm"><b>oblique</b></a> <br><nobr>obtain <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/sewing_meshes.htm"><b>13</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_two_triangles.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> </nobr><br><a name="bms_ON"></a><a name="subkey_ON"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>once</b></a> <br><nobr>one <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>15</b></a> <a href="../selection_filter_library.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> <a href="../quality_controls.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../free_edges.htm"><b>20</b></a> <a href="../free_borders.htm"><b>21</b></a> <a href="../files/using_operations_on_groups.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../viewing_meshes.htm"><b>24</b></a> </nobr><br><nobr>ones <a href="../extrusion.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>onto <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../transparency.htm"><b>opaque</b></a> <br><a href="../files/about_hypotheses.htm"><b>operate</b></a> <br><nobr>operation <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><nobr>operations <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><nobr>optional <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>options <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_OR"></a><a name="subkey_OR"></a>order <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>orientation <a href="../clipping.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OT"></a><a name="subkey_OT"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>others</b></a> <br><a href="../files/constructing_meshes.htm"><b>otherwise</b></a> <br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../files/constructing_meshes.htm"><b>our</b></a> <br><a href="../free_edges.htm"><b>outlined</b></a> <br><a href="../pattern_mapping.htm"><b>outside</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
-<br><br>\r
-<a name="bm_P"></a><a name="subkey_PA"></a><a href="../files/creating_groups.htm"><b>page</b></a> <br><a href="../files/arithmetic_1d.htm"><b>pairs</b></a> <br><nobr>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../clipping.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> </nobr><br><nobr>parametric <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>part <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><nobr>path <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>pattern</b></a> <br><a href="../pattern_mapping.htm"><b>pattern_name</b></a> <br><a href="../pattern_mapping.htm"><b>patterns</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../aspect_ratio_3d.htm"><b>pentahedron</b></a> <br><a href="../aspect_ratio_3d.htm"><b>pentahedrons</b></a> <br><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><nobr>perform <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><nobr><a name="bms_PI"></a><a name="subkey_PI"></a>pi <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>picture <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../free_edges.htm"><b>4</b></a> <a href="../free_borders.htm"><b>5</b></a> </nobr><br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/sewing_meshes.htm"><b>place</b></a> <br><a href="../files/sewing_meshes.htm"><b>placed</b></a> <br><a href="../files/warp.htm"><b>planar</b></a> <br><nobr>plane <a href="../clipping.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a href="../clipping.htm"><b>planes</b></a> <br><nobr>platform <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>please</b></a> <br><nobr>plus <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_N"></a><a name="subkey_N{"></a>n <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> </nobr><br><nobr>names <a href="../files/vtk_3d_viewer.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NB"></a><a name="subkey_NB"></a>nb <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>nb_segments_1</b></a> <br><a href="../modifying_meshes.htm"><b>nb_vert</b></a> <br><nobr>nbedges <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbfaces</b></a> <br><a href="../viewing_meshes.htm"><b>nbhexas</b></a> <br><nobr>nbnodes <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbpolygons</b></a> <br><a href="../viewing_meshes.htm"><b>nbpolyhedrons</b></a> <br><a href="../viewing_meshes.htm"><b>nbprisms</b></a> <br><a href="../viewing_meshes.htm"><b>nbpyramids</b></a> <br><nobr>nbquadrangles <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbtetras</b></a> <br><nobr>nbtriangles <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>nbvolumes <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/adding_nodes_and_elements.htm"><b>necessary</b></a> <br><a href="../files/constructing_meshes.htm"><b>need</b></a> <br><a href="../files/arithmetic_1d.htm"><b>negative</b></a> <br><nobr>neighboring <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshing_algorithms.htm"><b>netgen</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgenplugin</b></a> <br><nobr>new <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> </nobr><br><nobr>next <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodal <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>node <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>node_ids</b></a> <br><a href="../modifying_meshes.htm"><b>node_start_id</b></a> <br><nobr>nodes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/aspect_ratio.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>13</b></a> <a href="../files/taper.htm"><b>14</b></a> <a href="../files/smoothing.htm"><b>15</b></a> <a href="../files/skew.htm"><b>16</b></a> <a href="../files/sewing_meshes.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/merging_nodes.htm"><b>20</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>21</b></a> <a href="../quality_controls.htm"><b>22</b></a> <a href="../presentation.htm"><b>23</b></a> <a href="../pattern_mapping.htm"><b>24</b></a> <a href="../modifying_meshes.htm"><b>25</b></a> <a href="../files/warp.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../viewing_meshes.htm"><b>28</b></a> <a href="../transforming_meshes.htm"><b>29</b></a> <a href="../selection_filter_library.htm"><b>30</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>none</b></a> <br><nobr>normal <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>normalisation</b></a> <br><nobr>note <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>nothing</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr>now <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>point111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point212 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point222 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> </nobr><br><nobr>pointstruct <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>polygon</b></a> <br><nobr>polygons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>polyhedral</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>polyhedron</b></a> <br><nobr>polyhedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>pop <a href="../deleting_groups.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> </nobr><br><nobr>position <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>positions</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>possess</b></a> <br><a href="../selection_filter_library.htm"><b>possibility</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>powerful</b></a> <br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/adding_nodes_and_elements.htm"><b>precision</b></a> <br><a href="../presentation.htm"><b>preferences</b></a> <br><a href="../selection_filter_library.htm"><b>prefixed</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><nobr>presentation <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../pattern_mapping.htm"><b>preserved</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><a href="../files/smoothing.htm"><b>press</b></a> <br><nobr>pressed <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>pressing</b></a> <br><nobr>preview <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>previous <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>principle</b></a> <br><nobr>print <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>prisms</b></a> <br><nobr>probleme <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>procedure <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>proceed <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>proceeds</b></a> <br><a href="../files/smoothing.htm"><b>process</b></a> <br><a href="../files/smoothing.htm"><b>produce</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><nobr>produces <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>product</b></a> <br><nobr>program <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../pattern_mapping.htm"><b>projected</b></a> <br><a href="../pattern_mapping.htm"><b>projecting</b></a> <br><nobr>projection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>propagate <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>propagatea</b></a> <br><nobr>propagates <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>provide</b></a> <br><a name="bms_PS"></a><a name="subkey_PS"></a><a href="../files/diagonal_iversion_of_elements.htm"><b>pseudo</b></a> <br><a name="bms_PU"></a><a name="subkey_PU"></a><a href="../files/smoothing.htm"><b>pulls</b></a> <br><nobr><a name="bms_PX"></a><a name="subkey_PX"></a>px <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>px1</b></a> <br><nobr><a name="bms_PY"></a><a name="subkey_PY"></a>py <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>py1</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>pyramidal</b></a> <br><a href="../viewing_meshes.htm"><b>pyramids</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>python</b></a> <br><nobr><a name="bms_PZ"></a><a name="subkey_PZ"></a>pz <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>pz1</b></a> <br>\r
+<nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> <a href="../files/vtk_3d_viewer.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../viewing_meshes.htm"><b>16</b></a> <a href="../transforming_meshes.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> </nobr><br><nobr>numbering <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><nobr>numberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>numberofsegments_10</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>numberofsegments_7</b></a> <br><nobr>numbers <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>numeric</b></a> <br><a href="../files/about_hypotheses.htm"><b>numerical</b></a> <br>\r
<br><br>\r
-<a name="bm_Q"></a><a name="subkey_QI"></a><a href="../aspect_ratio_3d.htm"><b>qi</b></a> <br><a name="bms_QK"></a><a name="subkey_QK"></a><a href="../aspect_ratio_3d.htm"><b>qk</b></a> <br><nobr><a name="bms_QU"></a><a name="subkey_QU"></a>quad <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>quad2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangle <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> </nobr><br><nobr>quadrangle_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangles <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> </nobr><br><nobr>quadrangular <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>quadtotri</b></a> <br><nobr>quality <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../quality_controls.htm"><b>14</b></a> <a href="../length.htm"><b>15</b></a> <a href="../free_edges.htm"><b>16</b></a> <a href="../free_borders.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br>\r
+<a name="bm_O"></a><a name="subkey_OB"></a><a href="../files/sewing_meshes.htm"><b>obey</b></a> <br><nobr>object <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>18</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>19</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>20</b></a> <a href="../presentation.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../modifying_meshes.htm"><b>23</b></a> <a href="../files/vtk_3d_viewer.htm"><b>24</b></a> <a href="../files/viewing_mesh_info.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> <a href="../files/translation.htm"><b>27</b></a> <a href="../volume.htm"><b>28</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../presentation.htm"><b>8</b></a> <a href="../files/vtk_3d_viewer.htm"><b>9</b></a> </nobr><br><nobr>objecttoid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><a href="../extrusion_along_a_path.htm"><b>oblique</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>obtain</b></a> <br><a name="bms_OF"></a><a name="subkey_OF"></a><a href="../files/vtk_3d_viewer.htm"><b>offset</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>11</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_two_triangles.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> </nobr><br><a name="bms_ON"></a><a name="subkey_ON"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>once</b></a> <br><nobr>one <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>15</b></a> <a href="../quality_controls.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../merge_elements.htm"><b>18</b></a> <a href="../free_edges.htm"><b>19</b></a> <a href="../free_borders.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>22</b></a> <a href="../files/translation.htm"><b>23</b></a> <a href="../viewing_meshes.htm"><b>24</b></a> <a href="../selection_filter_library.htm"><b>25</b></a> <a href="../revolution.htm"><b>26</b></a> </nobr><br><nobr>ones <a href="../extrusion.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>onto <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_OO"></a><a name="subkey_OO"></a><a href="../files/aspect_ratio.htm"><b>oo</b></a> <br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../transparency.htm"><b>opaque</b></a> <br><a href="../files/about_hypotheses.htm"><b>operate</b></a> <br><nobr>operation <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/taper.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/rotation.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../files/length_of_edges.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../merge_elements.htm"><b>35</b></a> <a href="../length.htm"><b>36</b></a> <a href="../free_edges.htm"><b>37</b></a> <a href="../free_borders.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_two_triangles.htm"><b>41</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>42</b></a> <a href="../files/translation.htm"><b>43</b></a> <a href="../volume.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><nobr>operations <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>option</b></a> <br><nobr>optional <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>options <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_OR"></a><a name="subkey_OR"></a>order <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>ordinary <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>orientate</b></a> <br><nobr>orientation <a href="../clipping.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OT"></a><a name="subkey_OT"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>others</b></a> <br><nobr>otherwise <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../files/constructing_meshes.htm"><b>our</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>out</b></a> <br><a href="../free_edges.htm"><b>outlined</b></a> <br><a href="../pattern_mapping.htm"><b>outside</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
<br><br>\r
-<nobr><a name="bm_R"></a><a name="subkey_RA"></a>radio <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr>range <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>ratio <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/constructing_meshes.htm"><b>ready</b></a> <br><a href="../about_viewing_meshes.htm"><b>recent</b></a> <br><a href="../free_edges.htm"><b>red</b></a> <br><a href="../files/smoothing.htm"><b>reduce</b></a> <br><a href="../files/smoothing.htm"><b>reevaluated</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>references <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>refers</b></a> <br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><nobr>reflects <a href="../files/skew.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>refreshes</b></a> <br><nobr>regular_1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>regular1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><nobr>remove <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> <a href="../viewing_meshes.htm"><b>12</b></a> </nobr><br><nobr>removeelements <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>removehypothesis <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>removenodes</b></a> <br><a href="../deleting_groups.htm"><b>removes</b></a> <br><nobr>removing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><nobr>renumbering <a href="../files/renumbering_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>renumbernodes</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reoriented</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><a href="../files/sewing_meshes.htm"><b>replaced</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><a href="../presentation.htm"><b>represented</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>required <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>resembles</b></a> <br><a href="../extrusion_along_a_path.htm"><b>respect</b></a> <br><nobr>rest <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><nobr>result <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../files/using_operations_on_groups.htm"><b>5</b></a> </nobr><br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>results <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>ret <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a href="../length.htm"><b>returns</b></a> <br><a href="../pattern_mapping.htm"><b>reverse</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reverting</b></a> <br><nobr>revolution <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<nobr><a name="bm_P"></a><a name="subkey_PA"></a>page <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>pairs</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>panning</b></a> <br><nobr>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../clipping.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/vtk_3d_viewer.htm"><b>7</b></a> </nobr><br><nobr>parametric <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_submeshes.htm"><b>parent</b></a> <br><nobr>part <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>particular</b></a> <br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>parts</b></a> <br><a href="../modifying_meshes.htm"><b>pass</b></a> <br><nobr>path <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>pattern <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>pattern_name</b></a> <br><a href="../pattern_mapping.htm"><b>patterns</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../aspect_ratio_3d.htm"><b>pentahedron</b></a> <br><a href="../aspect_ratio_3d.htm"><b>pentahedrons</b></a> <br><nobr>perform <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a href="../files/aspect_ratio.htm"><b>perimeter</b></a> <br><nobr><a name="bms_PI"></a><a name="subkey_PI"></a>pi <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>picture <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../merge_elements.htm"><b>4</b></a> <a href="../free_edges.htm"><b>5</b></a> <a href="../free_borders.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_PL"></a><a name="subkey_PL"></a>place <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>placed</b></a> <br><a href="../files/warp.htm"><b>planar</b></a> <br><nobr>plane <a href="../clipping.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><a href="../clipping.htm"><b>planes</b></a> <br><nobr>platform <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>please</b></a> <br><a href="../files/arithmetic_1d.htm"><b>plot</b></a> <br><nobr>plus <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PN"></a><a name="subkey_PN"></a>png <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> <a href="../files/vtk_3d_viewer.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>point111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point212 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point222 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> </nobr><br><nobr>pointstruct <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>polygon <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>polygonal</b></a> <br><nobr>polygons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>polyhedral <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>polyhedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>polyhedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>pop <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><nobr>position <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>positions</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>possess</b></a> <br><a href="../selection_filter_library.htm"><b>possibility</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>post</b></a> <br><a href="../selection_filter_library.htm"><b>powerful</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
<p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b><<</b></a><br><br></p>\r
<p class="ftsbody" >\r
-<nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../presentation.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_RO"></a><a name="subkey_RO"></a>rotate <a href="../files/rotation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>rotated <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>rotateobject</b></a> <br><nobr>rotation <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>rotationsweepobject</b></a> <br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><nobr><a name="bms_RU"></a><a name="subkey_RU"></a>rule <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>rules</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
+<a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/adding_nodes_and_elements.htm"><b>precision</b></a> <br><nobr>preference <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../presentation.htm"><b>preferences</b></a> <br><a href="../selection_filter_library.htm"><b>prefixed</b></a> <br><a href="../files/creating_groups.htm"><b>preprocessing</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><nobr>presentation <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>presentations</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../about_viewing_meshes.htm"><b>presents</b></a> <br><a href="../pattern_mapping.htm"><b>preserved</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><nobr>pressed <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>pressing</b></a> <br><nobr>preview <a href="../clipping.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>previous <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>principle</b></a> <br><nobr>print <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>prisms</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>pro</b></a> <br><nobr>probleme <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>procedure</b></a> <br><nobr>proceed <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>proceeds</b></a> <br><a href="../files/smoothing.htm"><b>process</b></a> <br><a href="../files/smoothing.htm"><b>produce</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><nobr>produces <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/constructing_meshes.htm"><b>program</b></a> <br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../pattern_mapping.htm"><b>projected</b></a> <br><a href="../pattern_mapping.htm"><b>projecting</b></a> <br><nobr>projection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>prompts</b></a> <br><nobr>propagate <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>propagates <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>properties</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>provide</b></a> <br><nobr>provides <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> </nobr><br><a name="bms_PS"></a><a name="subkey_PS"></a><a href="../files/diagonal_iversion_of_elements.htm"><b>pseudo</b></a> <br><a name="bms_PU"></a><a name="subkey_PU"></a><a href="../files/smoothing.htm"><b>pulls</b></a> <br><nobr><a name="bms_PX"></a><a name="subkey_PX"></a>px <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>px1 <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PY"></a><a name="subkey_PY"></a>py <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>py1 <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshing_algorithms.htm"><b>pyramidal</b></a> <br><a href="../viewing_meshes.htm"><b>pyramids</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>python</b></a> <br><nobr><a name="bms_PZ"></a><a name="subkey_PZ"></a>pz <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>pz1 <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br>\r
<br><br>\r
-<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../files/using_operations_on_groups.htm"><b>11</b></a> </nobr><br><nobr>sample <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>save</b></a> <br><a name="bms_SC"></a><a name="subkey_SC"></a><a href="../files/about_quality_controls.htm"><b>scalar</b></a> <br><a href="../files/arithmetic_1d.htm"><b>scale</b></a> <br><nobr>script <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_submeshes.htm"><b>15</b></a> <a href="../files/constructing_meshes.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/symmetry.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../files/sewing_meshes.htm"><b>25</b></a> <a href="../files/rotation.htm"><b>26</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>27</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>28</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>29</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>30</b></a> <a href="../files/minimum_angle.htm"><b>31</b></a> <a href="../files/merging_nodes.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> <a href="../length.htm"><b>36</b></a> <a href="../free_edges.htm"><b>37</b></a> <a href="../free_borders.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> <a href="../files/viewing_mesh_info.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><nobr>scripts <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../pattern_mapping.htm"><b>seam</b></a> <br><nobr>search <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>second <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>section <a href="../clipping.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>sections <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>see <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>6</b></a> <a href="../borders_at_multi-connection.htm"><b>7</b></a> <a href="../aspect_ratio_3d.htm"><b>8</b></a> <a href="../about_viewing_meshes.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>14</b></a> <a href="../files/cutting_quadrangles.htm"><b>15</b></a> <a href="../files/creating_groups.htm"><b>16</b></a> <a href="../files/constructing_submeshes.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><nobr>segment <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> </nobr><br><nobr>segments <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> </nobr><br><nobr>select <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_submeshes.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> <a href="../files/rotation.htm"><b>21</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>22</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>23</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../revolution.htm"><b>26</b></a> <a href="../pattern_mapping.htm"><b>27</b></a> <a href="../files/viewing_mesh_info.htm"><b>28</b></a> <a href="../files/using_operations_on_groups.htm"><b>29</b></a> <a href="../files/uniting_two_triangles.htm"><b>30</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>31</b></a> </nobr><br><nobr>selected <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> </nobr><br><nobr>selecting <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../presentation.htm"><b>9</b></a> </nobr><br><nobr>selection <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequence</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequences</b></a> <br><a href="../about_viewing_meshes.htm"><b>session</b></a> <br><nobr>set <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../selection_filter_library.htm"><b>17</b></a> <a href="../presentation.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../modifying_meshes.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../transparency.htm"><b>22</b></a> </nobr><br><nobr>setcurrentstudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>setdisplaymode</b></a> <br><nobr>setlength <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>setmargin <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>setmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>setname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><nobr>setnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>setnumfunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setpredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>settings</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>settransparency</b></a> <br><nobr>sew <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewbordertoside</b></a> <br><a href="../transforming_meshes.htm"><b>sewconformfreeborders</b></a> <br><a href="../transforming_meshes.htm"><b>sewfreeborders</b></a> <br><nobr>sewing <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewsideelements</b></a> <br><nobr><a name="bms_SG"></a><a name="subkey_SG"></a>sg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_SH"></a><a name="subkey_SH"></a>shading <a href="../presentation.htm"><b>1</b></a> <a href="../transparency.htm"><b>2</b></a> </nobr><br><nobr>shall <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/translation.htm"><b>5</b></a> <a href="../files/symmetry.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../files/merging_nodes.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/uniting_two_triangles.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><nobr>shape <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shapetype <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>shift <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>should <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/using_operations_on_groups.htm"><b>11</b></a> </nobr><br><nobr>show <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>showing</b></a> <br><nobr>shown <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>shows</b></a> <br><a href="../presentation.htm"><b>shrink</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>>></b></a>\r
+<a name="bm_Q"></a><a name="subkey_QI"></a><a href="../aspect_ratio_3d.htm"><b>qi</b></a> <br><nobr><a name="bms_QK"></a><a name="subkey_QK"></a>qk <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_QU"></a><a name="subkey_QU"></a>quad <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>quad2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangle <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../transforming_meshes.htm"><b>14</b></a> </nobr><br><nobr>quadrangle_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangles <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> <a href="../transforming_meshes.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>quadrangular <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><nobr>quadratic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>quadtotri</b></a> <br><nobr>quality <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../quality_controls.htm"><b>15</b></a> <a href="../length.htm"><b>16</b></a> <a href="../free_edges.htm"><b>17</b></a> <a href="../free_borders.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../volume.htm"><b>21</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br>\r
+<br><br>\r
+<a name="bm_R"></a><a name="subkey_R{"></a><a href="../modifying_meshes.htm"><b>r1</b></a> <br><nobr><a name="bms_RA"></a><a name="subkey_RA"></a>radio <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr>radius <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>range <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>ranges</b></a> <br><nobr>ranging <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>ratio <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/constructing_meshes.htm"><b>ready</b></a> <br><a href="../about_viewing_meshes.htm"><b>recent</b></a> <br><a href="../free_edges.htm"><b>red</b></a> <br><nobr>redefine <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>reduce</b></a> <br><a href="../files/smoothing.htm"><b>reevaluated</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>references <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>refers</b></a> <br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><nobr>reflects <a href="../files/skew.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../volume.htm"><b>3</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>refreshes</b></a> <br><a href="../files/aspect_ratio.htm"><b>regular</b></a> <br><nobr>regular_1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>regular1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>remote</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>removal</b></a> <br><nobr>remove <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> <a href="../selection_filter_library.htm"><b>12</b></a> </nobr><br><nobr>removeelements <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>removehypothesis <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>removenodes</b></a> <br><a href="../deleting_groups.htm"><b>removes</b></a> <br><nobr>removing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><nobr>renumbering <a href="../files/renumbering_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>renumbernodes</b></a> <br><a href="../modifying_meshes.htm"><b>reorient</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reoriented</b></a> <br><a href="../files/sewing_meshes.htm"><b>replaced</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represented <a href="../presentation.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>representing</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>required <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>reset</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>resizes</b></a> <br><a href="../extrusion_along_a_path.htm"><b>respect</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>respective</b></a> <br><nobr>rest <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>restores</b></a> <br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><nobr>result <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../files/using_operations_on_groups.htm"><b>5</b></a> </nobr><br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>results <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>ret <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a href="../modifying_meshes.htm"><b>return</b></a> <br><a href="../length.htm"><b>returns</b></a> <br><a href="../files/aspect_ratio.htm"><b>reveals</b></a> <br><nobr>reverse <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>reverses</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reverting</b></a> <br><nobr>revolution <a href="../extrusion.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>>></b></a>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_{"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_{" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{D" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{R" target="ftslist" title="search letter {R"><b>{R</b></a> <a href="whlstf0.htm#bms_{T" target="ftslist" title="search letter {T"><b>{T</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_{"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_{" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{D" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{R" target="ftslist" title="search letter {R"><b>{R</b></a> <a href="whlstf0.htm#bms_{X" target="ftslist" title="search letter {X"><b>{X</b></a> <a href="whlstf0.htm#bms_{T" target="ftslist" title="search letter {T"><b>{T</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AF" target="ftslist" title="search letter AF"><b>AF</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AI" target="ftslist" title="search letter AI"><b>AI</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AM" target="ftslist" title="search letter AM"><b>AM</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf1.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf1.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf1.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf1.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf1.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter A "><b>A </b></a> <a href="whlstf0.htm#bms_AA" target="ftslist" title="search letter AA"><b>AA</b></a> <a href="whlstf0.htm#bms_AB" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AF" target="ftslist" title="search letter AF"><b>AF</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AI" target="ftslist" title="search letter AI"><b>AI</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AM" target="ftslist" title="search letter AM"><b>AM</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf1.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf1.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf1.htm#bms_AT" target="ftslist" title="search letter AT"><b>AT</b></a> <a href="whlstf1.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf1.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf1.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf5.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf6.htm#bms_JP" target="ftslist" title="search letter JP"><b>JP</b></a> <a href="whlstf6.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf5.htm#bms_KE" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf5.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a> <a href="whlstf5.htm#bms_KO" target="ftslist" title="search letter KO"><b>KO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf6.htm#bms_KE" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf6.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a> <a href="whlstf6.htm#bms_KO" target="ftslist" title="search letter KO"><b>KO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf5.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf5.htm#bms_LC" target="ftslist" title="search letter LC"><b>LC</b></a> <a href="whlstf5.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf5.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf6.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf6.htm#bms_LL" target="ftslist" title="search letter LL"><b>LL</b></a> <a href="whlstf6.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf6.htm#bms_LY" target="ftslist" title="search letter LY"><b>LY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf6.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf6.htm#bms_LC" target="ftslist" title="search letter LC"><b>LC</b></a> <a href="whlstf6.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf6.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf6.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf6.htm#bms_LL" target="ftslist" title="search letter LL"><b>LL</b></a> <a href="whlstf6.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf6.htm#bms_LY" target="ftslist" title="search letter LY"><b>LY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf6.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf6.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf6.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf6.htm#bms_MP" target="ftslist" title="search letter MP"><b>MP</b></a> <a href="whlstf6.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a> <a href="whlstf6.htm#bms_MY" target="ftslist" title="search letter MY"><b>MY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf7.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf7.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf7.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf7.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a> <a href="whlstf7.htm#bms_MY" target="ftslist" title="search letter MY"><b>MY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf7.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf7.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf7.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf7.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf7.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf7.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf7.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf7.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf7.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf8.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf7.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf7.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf7.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf7.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf7.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf7.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf7.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf8.htm#bms_OF" target="ftslist" title="search letter OF"><b>OF</b></a> <a href="whlstf8.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf8.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf8.htm#bms_OO" target="ftslist" title="search letter OO"><b>OO</b></a> <a href="whlstf8.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf8.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf8.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf8.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf8.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf7.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf7.htm#bms_PI" target="ftslist" title="search letter PI"><b>PI</b></a> <a href="whlstf7.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf8.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf8.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf8.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf8.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whlstf8.htm#bms_PX" target="ftslist" title="search letter PX"><b>PX</b></a> <a href="whlstf8.htm#bms_PY" target="ftslist" title="search letter PY"><b>PY</b></a> <a href="whlstf8.htm#bms_PZ" target="ftslist" title="search letter PZ"><b>PZ</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf8.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf8.htm#bms_PI" target="ftslist" title="search letter PI"><b>PI</b></a> <a href="whlstf8.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf8.htm#bms_PN" target="ftslist" title="search letter PN"><b>PN</b></a> <a href="whlstf8.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf9.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf9.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf9.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whlstf9.htm#bms_PX" target="ftslist" title="search letter PX"><b>PX</b></a> <a href="whlstf9.htm#bms_PY" target="ftslist" title="search letter PY"><b>PY</b></a> <a href="whlstf9.htm#bms_PZ" target="ftslist" title="search letter PZ"><b>PZ</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_Q"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_Q" target="ftslist" title="search letter QI"><b>QI</b></a> <a href="whlstf8.htm#bms_QK" target="ftslist" title="search letter QK"><b>QK</b></a> <a href="whlstf8.htm#bms_QU" target="ftslist" title="search letter QU"><b>QU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Q"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_Q" target="ftslist" title="search letter QI"><b>QI</b></a> <a href="whlstf9.htm#bms_QK" target="ftslist" title="search letter QK"><b>QK</b></a> <a href="whlstf9.htm#bms_QU" target="ftslist" title="search letter QU"><b>QU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf8.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf9.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf9.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf9.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_R" target="ftslist" title="search letter R "><b>R </b></a> <a href="whlstf9.htm#bms_RA" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf9.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf10.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf10.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf10.htm#bms_RR" target="ftslist" title="search letter RR"><b>RR</b></a> <a href="whlstf10.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf9.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf9.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf9.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf9.htm#bms_SG" target="ftslist" title="search letter SG"><b>SG</b></a> <a href="whlstf9.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf10.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf10.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf10.htm#bms_SL" target="ftslist" title="search letter SL"><b>SL</b></a> <a href="whlstf10.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf10.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf10.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf10.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf10.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf10.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf10.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf10.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf10.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf10.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf10.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf10.htm#bms_SG" target="ftslist" title="search letter SG"><b>SG</b></a> <a href="whlstf10.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf11.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf11.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf11.htm#bms_SL" target="ftslist" title="search letter SL"><b>SL</b></a> <a href="whlstf11.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf11.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf11.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf11.htm#bms_SQ" target="ftslist" title="search letter SQ"><b>SQ</b></a> <a href="whlstf11.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf11.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf11.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf11.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf1.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf1.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf1.htm#bms_BL" target="ftslist" title="search letter BL"><b>BL</b></a> <a href="whlstf1.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf1.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf1.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf1.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf1.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf1.htm#bms_BL" target="ftslist" title="search letter BL"><b>BL</b></a> <a href="whlstf1.htm#bms_BM" target="ftslist" title="search letter BM"><b>BM</b></a> <a href="whlstf1.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf1.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf1.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf10.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf10.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf10.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf10.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf10.htm#bms_TM" target="ftslist" title="search letter TM"><b>TM</b></a> <a href="whlstf10.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf10.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf11.htm#bms_TT" target="ftslist" title="search letter TT"><b>TT</b></a> <a href="whlstf11.htm#bms_TU" target="ftslist" title="search letter TU"><b>TU</b></a> <a href="whlstf11.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf11.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf11.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf11.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf11.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf11.htm#bms_TI" target="ftslist" title="search letter TI"><b>TI</b></a> <a href="whlstf11.htm#bms_TM" target="ftslist" title="search letter TM"><b>TM</b></a> <a href="whlstf11.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf12.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf12.htm#bms_TT" target="ftslist" title="search letter TT"><b>TT</b></a> <a href="whlstf12.htm#bms_TU" target="ftslist" title="search letter TU"><b>TU</b></a> <a href="whlstf12.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf12.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf11.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf11.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf11.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf12.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf12.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf12.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf12.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf11.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf11.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf11.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf11.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf11.htm#bms_VX" target="ftslist" title="search letter VX"><b>VX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf12.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf12.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf12.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf12.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf12.htm#bms_VK" target="ftslist" title="search letter VK"><b>VK</b></a> <a href="whlstf12.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf12.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a> <a href="whlstf12.htm#bms_VX" target="ftslist" title="search letter VX"><b>VX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf11.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf11.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf11.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf11.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whlstf11.htm#bms_WW" target="ftslist" title="search letter WW"><b>WW</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf12.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf12.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf12.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf13.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf13.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whlstf13.htm#bms_WW" target="ftslist" title="search letter WW"><b>WW</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf12.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf13.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf13.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_Z"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf12.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf12.htm#bms_ZE" target="ftslist" title="search letter ZE"><b>ZE</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Z"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf13.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf13.htm#bms_ZE" target="ftslist" title="search letter ZE"><b>ZE</b></a> <a href="whlstf13.htm#bms_ZO" target="ftslist" title="search letter ZO"><b>ZO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf1.htm#bms_CI" target="ftslist" title="search letter CI"><b>CI</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf2.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf2.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf2.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf2.htm#bms_CI" target="ftslist" title="search letter CI"><b>CI</b></a> <a href="whlstf2.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf2.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf2.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf3.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whlstf3.htm#bms_CY" target="ftslist" title="search letter CY"><b>CY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf2.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf3.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf3.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf3.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf3.htm#bms_DH" target="ftslist" title="search letter DH"><b>DH</b></a> <a href="whlstf3.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf3.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a> <a href="whlstf3.htm#bms_DR" target="ftslist" title="search letter DR"><b>DR</b></a> <a href="whlstf3.htm#bms_DU" target="ftslist" title="search letter DU"><b>DU</b></a> <a href="whlstf3.htm#bms_DX" target="ftslist" title="search letter DX"><b>DX</b></a> <a href="whlstf3.htm#bms_DY" target="ftslist" title="search letter DY"><b>DY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf3.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf3.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf3.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf3.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf3.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf3.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf3.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf3.htm#bms_ER" target="ftslist" title="search letter ER"><b>ER</b></a> <a href="whlstf3.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf3.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf3.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf3.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf3.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf4.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf4.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf4.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf4.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf4.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf4.htm#bms_ER" target="ftslist" title="search letter ER"><b>ER</b></a> <a href="whlstf4.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf4.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf4.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_F" target="ftslist" title="search letter F "><b>F </b></a> <a href="whlstf4.htm#bms_FA" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf4.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf4.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf4.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf4.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf4.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_F" target="ftslist" title="search letter F "><b>F </b></a> <a href="whlstf4.htm#bms_FA" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf4.htm#bms_FE" target="ftslist" title="search letter FE"><b>FE</b></a> <a href="whlstf4.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf4.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf4.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf5.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf5.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf4.htm#bms_GG" target="ftslist" title="search letter GG"><b>GG</b></a> <a href="whlstf4.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf4.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf4.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_G" target="ftslist" title="search letter G "><b>G </b></a> <a href="whlstf5.htm#bms_GA" target="ftslist" title="search letter GA"><b>GA</b></a> <a href="whlstf5.htm#bms_GE" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf5.htm#bms_GG" target="ftslist" title="search letter GG"><b>GG</b></a> <a href="whlstf5.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf5.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf5.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf5.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf4.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf4.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf5.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf5.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf5.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf5.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf5.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf5.htm#bms_HH" target="ftslist" title="search letter HH"><b>HH</b></a> <a href="whlstf5.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf5.htm#bms_HM" target="ftslist" title="search letter HM"><b>HM</b></a> <a href="whlstf5.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf5.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
</head>\r
<body marginheight="0" marginwidth="0" bgproperties="fixed">\r
\r
-<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf5.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf5.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf5.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf5.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf5.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf5.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf5.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf5.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf5.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf6.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf6.htm#bms_II" target="ftslist" title="search letter II"><b>II</b></a> <a href="whlstf6.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf6.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf6.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf6.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
\r
</body>\r
\r
<nobr><a name="3"></a><a href="whlstt2.htm#3" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
<nobr><a href="../files/about_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About Hypotheses</a></nobr><br>\r
<nobr><a href="../files/arithmetic_1d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> 1D Meshing Hypotheses</a></nobr><br>\r
- <nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Max Element Area hypothesis</a></nobr><br>\r
+ <nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> 2D Meshing Hypotheses</a></nobr><br>\r
<nobr><a href="../files/max._element_volume_hypothsis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Max Element Volume hypothesis</a></nobr><br>\r
<nobr><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Additional Hypotheses</a></nobr><br>\r
<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>\r
<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
<nobr><a name="4"></a><a href="whlstt1.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
- <nobr><a href="../about_viewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About viewing meshes</a></nobr><br>\r
+ <nobr><a href="../about_viewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
+ <nobr><a href="../files/vtk_3d_viewer.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> VTK 3D Viewer</a></nobr><br>\r
<nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Mesh infos</a></nobr><br>\r
<nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Numbering</a></nobr><br>\r
<nobr><a href="../presentation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Display Mode</a></nobr><br>\r
<nobr><a href="../files/warp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Warping</a></nobr><br>\r
<nobr><a href="../files/skew.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Skew</a></nobr><br>\r
<nobr><a href="../aspect_ratio_3d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Aspect ratio 3D</a></nobr><br>\r
+ <nobr><a href="../volume.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Volume</a></nobr><br>\r
<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>\r
<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
<nobr><a name="7"></a><a href="whlstt1.htm#7" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+ <nobr><a href="../adding_quadratic_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding quadratic elements</a></nobr><br>\r
<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
<nobr><a name="7"></a><a href="whlstt1.htm#7" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+ <nobr><a href="../adding_quadratic_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding quadratic elements</a></nobr><br>\r
<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
<nobr><a name="8"></a><a href="whlstt7.htm#8" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
<nobr><a href="../files/symmetry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Symmetry</a></nobr><br>\r
<nobr><a href="../files/sewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Sewing meshes</a></nobr><br>\r
<nobr><a href="../files/merging_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging nodes</a></nobr><br>\r
+ <nobr><a href="../merge_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging Elements</a></nobr><br>\r
<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
<a href="whlstfl21.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> \r
<a href="whlstfl22.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> \r
<a href="whlstfl23.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
- <a href="whlstf11.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
+ <a href="whlstf13.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
<a href="whlstfl24.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
<a href="whlstfl25.htm#subkey_Z" target="_self"title="search letter Z"><b>Z</b></a> \r
</p>\r
<table>\r
<tr><td> Start Page </td><td>smesh.htm</td></tr>\r
<tr><td> Skin Name </td><td>Default</td></tr>\r
-<tr><td> Generating Time </td><td>18:07 12/02/2005</td></tr>\r
+<tr><td> Generating Time </td><td>12:34 04/21/2006</td></tr>\r
<tr><td> Language ID </td><td>1033</td></tr>\r
<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
<tr><td> Compile Build Version </td><td>13.10.606</td></tr>\r
<?xml version='1.0' encoding='windows-1252' ?>\r
<ftstdata>\r
<topic name="About viewing meshes" url="about_viewing_meshes.htm" />\r
+<topic name="Adding Quadratic Nodes and Elements" url="adding_quadratic_nodes_and_elements.htm" />\r
<topic name="Aspect ratio 3D" url="aspect_ratio_3d.htm" />\r
<topic name="Borders at multi-connection" url="borders_at_multi-connection.htm" />\r
<topic name="Borders at multiconnection 2D" url="borders_at_multiconnection_2d.htm" />\r
<topic name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
<topic name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
<topic name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
+<topic name="VTK 3D Viewer" url="files/vtk_3d_viewer.htm" />\r
<topic name="Warp" url="files/warp.htm" />\r
<topic name="Free borders" url="free_borders.htm" />\r
<topic name="Free_edges" url="free_edges.htm" />\r
<topic name="Grouping Elements" url="grouping_elements.htm" />\r
<topic name="Length" url="length.htm" />\r
+<topic name="Merge Elements" url="merge_elements.htm" />\r
<topic name="Modifying Meshes" url="modifying_meshes.htm" />\r
<topic name="Pattern mapping" url="pattern_mapping.htm" />\r
<topic name="Presentation" url="presentation.htm" />\r
<topic name="Transforming Meshes" url="transforming_meshes.htm" />\r
<topic name="Transparency" url="transparency.htm" />\r
<topic name="Viewing Meshes" url="viewing_meshes.htm" />\r
+<topic name="Volume" url="volume.htm" />\r
\r
</ftstdata> \r
<?xml version='1.0' encoding='windows-1252' ?>\r
<fts>\r
-<chunkinfo url="whfwdata0.xml" first="0" last="zero"/>\r
+<chunkinfo url="whfwdata0.xml" first="0" last="zoom"/>\r
\r
-<tchunkinfo first="0" last="65" url="whftdata0.xml" />\r
+<tchunkinfo first="0" last="69" url="whftdata0.xml" />\r
\r
</fts>\r
<?xml version='1.0' encoding='windows-1252' ?>\r
<ftswdata>\r
-<key name="0"> 12,4,5,23,6,55,57,60,42,63,65, </key>\r
-<key name="0d"> 12, </key>\r
-<key name="1"> 15,16,17,18,19,21,5,24,6,25,26,27,28,9,10,55,29,31,34,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52, </key>\r
-<key name="10"> 5,6,55,57,63,65, </key>\r
-<key name="100"> 5,6,55,57,60, </key>\r
-<key name="109"> 63, </key>\r
-<key name="113"> 63, </key>\r
-<key name="1135"> 57, </key>\r
-<key name="1145"> 57, </key>\r
-<key name="1147"> 57, </key>\r
-<key name="1159"> 57, </key>\r
-<key name="12"> 57,63, </key>\r
-<key name="13"> 57, </key>\r
-<key name="15"> 60,63, </key>\r
-<key name="150"> 63, </key>\r
-<key name="18"> 60, </key>\r
-<key name="180"> 57, </key>\r
-<key name="1d"> 11,12,13,14,17,21,6,9,10,30,36,60,61, </key>\r
-<key name="1e"> 57,60, </key>\r
-<key name="2"> 15,16,18,1,19,21,5,24,6,25,26,27,28,9,10,29,31,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52, </key>\r
-<key name="20"> 5,6,55,57,60,63,65, </key>\r
-<key name="200"> 5,6, </key>\r
-<key name="21"> 63, </key>\r
-<key name="23"> 57,63, </key>\r
-<key name="2381"> 57, </key>\r
-<key name="2382"> 57, </key>\r
-<key name="2383"> 57, </key>\r
-<key name="2384"> 57, </key>\r
-<key name="2385"> 57, </key>\r
-<key name="2386"> 57, </key>\r
-<key name="2387"> 57, </key>\r
-<key name="2388"> 57, </key>\r
-<key name="2389"> 57, </key>\r
-<key name="2390"> 57, </key>\r
-<key name="2391"> 57, </key>\r
-<key name="2392"> 57, </key>\r
-<key name="2393"> 57, </key>\r
-<key name="2394"> 57, </key>\r
-<key name="2395"> 57, </key>\r
-<key name="2396"> 57, </key>\r
-<key name="2397"> 57, </key>\r
-<key name="2398"> 57, </key>\r
-<key name="2399"> 57, </key>\r
-<key name="24"> 63, </key>\r
-<key name="2400"> 57, </key>\r
-<key name="2401"> 57, </key>\r
-<key name="2402"> 57, </key>\r
-<key name="2403"> 57, </key>\r
-<key name="2404"> 57, </key>\r
-<key name="2405"> 57, </key>\r
-<key name="2406"> 57, </key>\r
-<key name="2407"> 57, </key>\r
-<key name="2408"> 57, </key>\r
-<key name="2409"> 57, </key>\r
-<key name="2410"> 57, </key>\r
-<key name="2411"> 57, </key>\r
-<key name="2412"> 57, </key>\r
-<key name="2413"> 57, </key>\r
-<key name="2414"> 57, </key>\r
-<key name="2415"> 57, </key>\r
-<key name="2416"> 57, </key>\r
-<key name="2417"> 57, </key>\r
-<key name="2418"> 57, </key>\r
-<key name="2419"> 57, </key>\r
-<key name="2420"> 57, </key>\r
-<key name="2421"> 57, </key>\r
-<key name="2422"> 57, </key>\r
-<key name="245"> 57, </key>\r
-<key name="246"> 57, </key>\r
-<key name="25"> 63, </key>\r
-<key name="255"> 57, </key>\r
-<key name="2d"> 11,12,13,14,16,18,1,3,21,5,6,9,10,30,32,31,35,57,58,60,61,42,63,51,52, </key>\r
-<key name="3"> 12,16,18,1,19,21,5,24,25,26,9,10,55,29,58,60,38,39,61,42,43,44,63,48,49,65,52, </key>\r
-<key name="30"> 6,55,57,60,63, </key>\r
-<key name="300"> 5,6, </key>\r
-<key name="3128"> 57, </key>\r
-<key name="321"> 57, </key>\r
-<key name="3265"> 57, </key>\r
-<key name="3402"> 57, </key>\r
-<key name="3658"> 57, </key>\r
-<key name="38"> 57,63, </key>\r
-<key name="39"> 57, </key>\r
-<key name="3d"> 11,12,13,14,15,1,19,21,23,24,6,7,25,26,27,9,10,30,33,60,38,39,61,42,44,48,49, </key>\r
-<key name="3e"> 60, </key>\r
-<key name="3rd"> 12, </key>\r
-<key name="4"> 12,16,18,21,5,24,6,26,10,29,57,58,60,42,43,46,63,52, </key>\r
-<key name="40"> 57, </key>\r
-<key name="405"> 57, </key>\r
-<key name="406"> 57, </key>\r
-<key name="45"> 57,63, </key>\r
-<key name="47"> 57, </key>\r
-<key name="492"> 57, </key>\r
-<key name="493"> 57, </key>\r
-<key name="5"> 4,57,60,63, </key>\r
-<key name="50"> 6,57, </key>\r
-<key name="502"> 57, </key>\r
-<key name="503"> 57, </key>\r
-<key name="58"> 63, </key>\r
-<key name="5th"> 12, </key>\r
-<key name="6"> 5,6,55,57,63,65, </key>\r
-<key name="60"> 55,57, </key>\r
-<key name="642"> 57, </key>\r
-<key name="66632"> 57, </key>\r
-<key name="69"> 63, </key>\r
-<key name="7"> 5,6,55, </key>\r
-<key name="70"> 6,60,63, </key>\r
-<key name="700"> 57, </key>\r
-<key name="71"> 63, </key>\r
-<key name="72"> 63, </key>\r
-<key name="73"> 57, </key>\r
-<key name="8"> 55,63, </key>\r
-<key name="800"> 5,6,55, </key>\r
-<key name="814"> 57, </key>\r
-<key name="850"> 57, </key>\r
-<key name="859"> 57, </key>\r
-<key name="864"> 57, </key>\r
-<key name="89"> 63, </key>\r
-<key name="9"> 63, </key>\r
-<key name="90"> 63, </key>\r
-<key name="900"> 5,6,55, </key>\r
-<key name="91"> 63, </key>\r
-<key name="911"> 57, </key>\r
-<key name="92"> 63, </key>\r
-<key name="931"> 57, </key>\r
-<key name="932"> 57, </key>\r
-<key name="950"> 57, </key>\r
-<key name="abl"> 15, </key>\r
-<key name="abov"> 10,44, </key>\r
-<key name="abox"> 60, </key>\r
-<key name="absent"> 50, </key>\r
-<key name="absolute"> 64, </key>\r
-<key name="abut"> 17, </key>\r
-<key name="acces"> 0,62, </key>\r
-<key name="accord"> 14,16,17,18,31,35,58,43,44,46,52, </key>\r
-<key name="account"> 11,58, </key>\r
-<key name="acomp"> 60,63, </key>\r
-<key name="acompobj"> 63, </key>\r
-<key name="actual"> 36, </key>\r
-<key name="ad"> 15,19,23,24,55,57,48,50, </key>\r
-<key name="add"> 15,19,21,5,23,24,6,28,10,55,57,60,62,48, </key>\r
-<key name="addedg"> 57, </key>\r
-<key name="addfac"> 57, </key>\r
-<key name="addhypothesi"> 5,6,55,60,65, </key>\r
-<key name="addition"> 24,30,57, </key>\r
-<key name="additional"> 11,12,21,6,36,58,41,62,44, </key>\r
-<key name="addnod"> 57, </key>\r
-<key name="addobject"> 55, </key>\r
-<key name="addtostudy"> 5,6,55,57,60,63,65, </key>\r
-<key name="addtostudyinfath"> 5,55,65, </key>\r
-<key name="addvolum"> 57, </key>\r
-<key name="adjacent"> 26,35,36,38,42,48, </key>\r
-<key name="adjust"> 44, </key>\r
-<key name="adjustabl"> 36, </key>\r
-<key name="advanc"> 0,51, </key>\r
-<key name="afilt"> 55,60, </key>\r
-<key name="afiltermgr"> 55,57,60, </key>\r
-<key name="afunctor"> 55,57,60, </key>\r
-<key name="ageomgroup1"> 55, </key>\r
-<key name="ageomgroup2"> 55, </key>\r
-<key name="agroup"> 55,60, </key>\r
-<key name="agroup1"> 55, </key>\r
-<key name="agroup2"> 55, </key>\r
-<key name="agroup3"> 55, </key>\r
-<key name="agroup4"> 55, </key>\r
-<key name="agroup5"> 55, </key>\r
-<key name="agroupelemid"> 55, </key>\r
-<key name="agroupmain"> 55, </key>\r
-<key name="agroupr"> 55, </key>\r
-<key name="agrouptool"> 55, </key>\r
-<key name="ai"> 17, </key>\r
-<key name="algo"> 5,6,57,63, </key>\r
-<key name="algo1"> 5,60,65, </key>\r
-<key name="algo2"> 5,60,65, </key>\r
-<key name="algorithm"> 11,12,13,14,16,21,5,22,6,10,55,30,32,57,33,58,37,42,63, </key>\r
-<key name="allow"> 11,17,19,23,24,29,30,34,36,58,40,42,44,45,47,48,50, </key>\r
-<key name="along"> 9,10,57,58,44, </key>\r
-<key name="alternativ"> 21, </key>\r
-<key name="alway"> 44, </key>\r
-<key name="amesheditor"> 57,63, </key>\r
-<key name="amount"> 2, </key>\r
-<key name="analytic"> 17, </key>\r
-<key name="aneditor"> 57,60,63, </key>\r
-<key name="angl"> 14,4,24,10,30,35,60,61,40,43,48,52, </key>\r
-<key name="angle180"> 63, </key>\r
-<key name="angle45"> 57, </key>\r
-<key name="angular"> 10, </key>\r
-<key name="angularity"> 10, </key>\r
-<key name="anid"> 55,60, </key>\r
-<key name="anodeid1"> 57, </key>\r
-<key name="anodeid2"> 57, </key>\r
-<key name="anodeid3"> 57, </key>\r
-<key name="anodeid4"> 57, </key>\r
-<key name="anoth"> 36, </key>\r
-<key name="any"> 12,21,23,26,10,55,58,44, </key>\r
-<key name="ap"> 13,15,16,18,19,4,21,23,24,7,25,26,28,9,10,30,31,35,58,37,38,39,61,42,43,44,45,46,48,49,50,52, </key>\r
-<key name="apparent"> 21, </key>\r
-<key name="appear"> 0,15,19,21,22,23,24,25,26,28,9,10,34,58,38,39,61,40,45,47,48,49,50, </key>\r
-<key name="append"> 60, </key>\r
-<key name="appli"> 16,17,18,1,21,22,6,32,31,35,57,33,36,37,62,43,44,46,52, </key>\r
-<key name="applicabl"> 62, </key>\r
-<key name="application"> 14,58, </key>\r
-<key name="apply"> 11,0,21,22,23, </key>\r
-<key name="appropriat"> 21, </key>\r
-<key name="approximate"> 17, </key>\r
-<key name="apredicat"> 55,60, </key>\r
-<key name="arc"> 6,57, </key>\r
-<key name="arcsin"> 52, </key>\r
-<key name="area"> 11,14,16,1,6,55,30,32,33,60,44,46, </key>\r
-<key name="arithmetic"> 11,17,5,6,63, </key>\r
-<key name="arithmetic1d"> 5,6,63,65, </key>\r
-<key name="around"> 4,10,61, </key>\r
-<key name="asmeshgroup1"> 55, </key>\r
-<key name="asmeshgroup2"> 55, </key>\r
-<key name="aspect"> 14,18,1,30,60,44, </key>\r
-<key name="assign"> 21,37,52, </key>\r
-<key name="associat"> 15,27,38, </key>\r
-<key name="auto"> 4, </key>\r
-<key name="automatic"> 21,58, </key>\r
-<key name="automatical"> 19,21,24,26,48, </key>\r
-<key name="availabl"> 42, </key>\r
-<key name="averag"> 11,17,6,36,58,52, </key>\r
-<key name="axi"> 9,61,40,45,52, </key>\r
-<key name="axisstruct"> 57,63, </key>\r
-<key name="axisxyz"> 57,63, </key>\r
+<key name="0"> 13,18,5,6,24,7,57,60,63,43,66,68, </key>\r
+<key name="001"> 66, </key>\r
+<key name="0d"> 13, </key>\r
+<key name="1"> 16,1,17,18,19,2,20,22,6,25,7,26,27,28,29,10,11,57,30,32,35,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54, </key>\r
+<key name="10"> 6,7,57,60,66,68, </key>\r
+<key name="100"> 6,7,57,60,63,66, </key>\r
+<key name="109"> 66, </key>\r
+<key name="11"> 60, </key>\r
+<key name="113"> 66, </key>\r
+<key name="1135"> 60, </key>\r
+<key name="1145"> 60, </key>\r
+<key name="1147"> 60, </key>\r
+<key name="1159"> 60, </key>\r
+<key name="12"> 60,66, </key>\r
+<key name="13"> 60, </key>\r
+<key name="14"> 60, </key>\r
+<key name="15"> 60,63,66, </key>\r
+<key name="150"> 66, </key>\r
+<key name="16"> 60, </key>\r
+<key name="17"> 60, </key>\r
+<key name="18"> 60,63, </key>\r
+<key name="180"> 60, </key>\r
+<key name="19"> 60, </key>\r
+<key name="1d"> 12,13,14,15,18,22,7,10,11,31,33,37,63,64, </key>\r
+<key name="1e"> 60,63, </key>\r
+<key name="2"> 16,1,17,19,2,20,22,6,25,7,26,27,28,29,10,11,30,32,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54, </key>\r
+<key name="20"> 6,7,57,60,63,66,68, </key>\r
+<key name="200"> 6,7,60, </key>\r
+<key name="21"> 60,66, </key>\r
+<key name="23"> 60,66, </key>\r
+<key name="2381"> 60, </key>\r
+<key name="2382"> 60, </key>\r
+<key name="2383"> 60, </key>\r
+<key name="2384"> 60, </key>\r
+<key name="2385"> 60, </key>\r
+<key name="2386"> 60, </key>\r
+<key name="2387"> 60, </key>\r
+<key name="2388"> 60, </key>\r
+<key name="2389"> 60, </key>\r
+<key name="2390"> 60, </key>\r
+<key name="2391"> 60, </key>\r
+<key name="2392"> 60, </key>\r
+<key name="2393"> 60, </key>\r
+<key name="2394"> 60, </key>\r
+<key name="2395"> 60, </key>\r
+<key name="2396"> 60, </key>\r
+<key name="2397"> 60, </key>\r
+<key name="2398"> 60, </key>\r
+<key name="2399"> 60, </key>\r
+<key name="24"> 66, </key>\r
+<key name="240"> 60, </key>\r
+<key name="2400"> 60, </key>\r
+<key name="2401"> 60, </key>\r
+<key name="2402"> 60, </key>\r
+<key name="2403"> 60, </key>\r
+<key name="2404"> 60, </key>\r
+<key name="2405"> 60, </key>\r
+<key name="2406"> 60, </key>\r
+<key name="2407"> 60, </key>\r
+<key name="2408"> 60, </key>\r
+<key name="2409"> 60, </key>\r
+<key name="2410"> 60, </key>\r
+<key name="2411"> 60, </key>\r
+<key name="2412"> 60, </key>\r
+<key name="2413"> 60, </key>\r
+<key name="2414"> 60, </key>\r
+<key name="2415"> 60, </key>\r
+<key name="2416"> 60, </key>\r
+<key name="2417"> 60, </key>\r
+<key name="2418"> 60, </key>\r
+<key name="2419"> 60, </key>\r
+<key name="2420"> 60, </key>\r
+<key name="2421"> 60, </key>\r
+<key name="2422"> 60, </key>\r
+<key name="245"> 60, </key>\r
+<key name="246"> 60, </key>\r
+<key name="25"> 66, </key>\r
+<key name="255"> 60, </key>\r
+<key name="2d"> 12,13,14,15,17,19,4,22,6,7,10,11,31,33,32,36,60,61,63,64,43,66,54, </key>\r
+<key name="3"> 13,17,19,20,22,6,25,26,27,10,11,57,30,60,61,63,39,40,64,43,44,45,66,49,50,68,54, </key>\r
+<key name="30"> 7,57,60,63,66, </key>\r
+<key name="300"> 6,7, </key>\r
+<key name="3128"> 60, </key>\r
+<key name="321"> 60, </key>\r
+<key name="3265"> 60, </key>\r
+<key name="3402"> 60, </key>\r
+<key name="3658"> 60, </key>\r
+<key name="38"> 60,66, </key>\r
+<key name="39"> 60, </key>\r
+<key name="3d"> 12,13,14,15,0,16,1,19,2,20,22,24,25,7,8,26,27,28,10,11,31,34,63,39,40,64,43,45,49,50,69,53, </key>\r
+<key name="3e"> 63, </key>\r
+<key name="3rd"> 13, </key>\r
+<key name="3x3"> 60, </key>\r
+<key name="4"> 13,17,19,22,6,25,7,27,11,30,60,61,63,43,44,47,66,54, </key>\r
+<key name="40"> 60, </key>\r
+<key name="405"> 60, </key>\r
+<key name="406"> 60, </key>\r
+<key name="45"> 60,66, </key>\r
+<key name="47"> 60, </key>\r
+<key name="492"> 60, </key>\r
+<key name="493"> 60, </key>\r
+<key name="5"> 5,60,63,66, </key>\r
+<key name="50"> 7,60,66, </key>\r
+<key name="502"> 60, </key>\r
+<key name="503"> 60, </key>\r
+<key name="58"> 66, </key>\r
+<key name="5th"> 13, </key>\r
+<key name="6"> 2,6,7,57,60,66,68, </key>\r
+<key name="60"> 57,60, </key>\r
+<key name="642"> 60, </key>\r
+<key name="66632"> 60, </key>\r
+<key name="69"> 66, </key>\r
+<key name="7"> 6,7,57,60,63, </key>\r
+<key name="70"> 7,63,66, </key>\r
+<key name="700"> 60, </key>\r
+<key name="71"> 66, </key>\r
+<key name="72"> 66, </key>\r
+<key name="73"> 60, </key>\r
+<key name="77"> 60, </key>\r
+<key name="8"> 57,60,66, </key>\r
+<key name="800"> 6,7, </key>\r
+<key name="814"> 60, </key>\r
+<key name="850"> 60, </key>\r
+<key name="859"> 60, </key>\r
+<key name="864"> 60, </key>\r
+<key name="89"> 66, </key>\r
+<key name="9"> 60,66, </key>\r
+<key name="90"> 66, </key>\r
+<key name="900"> 6,7, </key>\r
+<key name="91"> 66, </key>\r
+<key name="911"> 60, </key>\r
+<key name="92"> 66, </key>\r
+<key name="931"> 60, </key>\r
+<key name="932"> 60, </key>\r
+<key name="95"> 63, </key>\r
+<key name="950"> 60, </key>\r
+<key name="9999"> 24, </key>\r
+<key name="a_mesh"> 60, </key>\r
+<key name="aa"> 60, </key>\r
+<key name="abl"> 16,1,53, </key>\r
+<key name="abord"> 63, </key>\r
+<key name="aborder"> 63, </key>\r
+<key name="abov"> 11,60,45, </key>\r
+<key name="abox"> 63, </key>\r
+<key name="absent"> 51, </key>\r
+<key name="absolute"> 67, </key>\r
+<key name="abut"> 18, </key>\r
+<key name="acces"> 0,65,53, </key>\r
+<key name="accord"> 15,17,18,19,2,32,36,61,44,45,47,69,54, </key>\r
+<key name="account"> 12,61, </key>\r
+<key name="acomp"> 63,66, </key>\r
+<key name="acompobj"> 66, </key>\r
+<key name="actual"> 37, </key>\r
+<key name="ad"> 16,1,20,24,25,57,60,49,51, </key>\r
+<key name="add"> 16,1,20,22,6,24,25,7,29,11,57,60,63,65,49, </key>\r
+<key name="addedg"> 60, </key>\r
+<key name="addfac"> 60, </key>\r
+<key name="addhypothesi"> 6,7,57,60,63,68, </key>\r
+<key name="addition"> 25,31,60, </key>\r
+<key name="additional"> 12,13,22,7,37,61,42,65,45, </key>\r
+<key name="addnod"> 60, </key>\r
+<key name="addobject"> 57, </key>\r
+<key name="addpolygonalfac"> 60, </key>\r
+<key name="addpolyhedralvolum"> 60, </key>\r
+<key name="addtostudy"> 6,7,57,60,63,66,68, </key>\r
+<key name="addtostudyinfath"> 6,7,57,60,68, </key>\r
+<key name="addvolum"> 60, </key>\r
+<key name="adjacent"> 27,36,37,39,43,49, </key>\r
+<key name="adjust"> 45, </key>\r
+<key name="adjustabl"> 37, </key>\r
+<key name="advanc"> 0,52, </key>\r
+<key name="afilt"> 57,63, </key>\r
+<key name="afiltermgr"> 57,60,63, </key>\r
+<key name="afunctor"> 57,60,63, </key>\r
+<key name="ageomgroup1"> 57, </key>\r
+<key name="ageomgroup2"> 57, </key>\r
+<key name="agroup"> 57,63, </key>\r
+<key name="agroup1"> 57, </key>\r
+<key name="agroup2"> 57, </key>\r
+<key name="agroup3"> 57, </key>\r
+<key name="agroup4"> 57, </key>\r
+<key name="agroup5"> 57, </key>\r
+<key name="agroupelemid"> 57, </key>\r
+<key name="agroupf"> 63, </key>\r
+<key name="agroupmain"> 57, </key>\r
+<key name="agroupn"> 63, </key>\r
+<key name="agroupr"> 57, </key>\r
+<key name="agrouptool"> 57, </key>\r
+<key name="ai"> 18, </key>\r
+<key name="al"> 60, </key>\r
+<key name="algo"> 6,7,60,66, </key>\r
+<key name="algo1"> 6,63,68, </key>\r
+<key name="algo2"> 6,63,68, </key>\r
+<key name="algorithm"> 12,13,14,15,0,17,22,6,23,7,11,57,31,33,34,61,38,43,66, </key>\r
+<key name="allow"> 12,0,1,18,20,23,24,25,30,31,33,59,35,37,61,41,43,45,46,48,49,51,53, </key>\r
+<key name="along"> 10,11,60,61,45,53, </key>\r
+<key name="alternativ"> 22, </key>\r
+<key name="alternative"> 0,1, </key>\r
+<key name="alway"> 45, </key>\r
+<key name="amesheditor"> 60,66, </key>\r
+<key name="amount"> 3, </key>\r
+<key name="analytic"> 18, </key>\r
+<key name="aneditor"> 60,63,66, </key>\r
+<key name="angl"> 15,5,25,11,31,36,60,63,64,41,44,49,54, </key>\r
+<key name="angle180"> 66, </key>\r
+<key name="angle45"> 60, </key>\r
+<key name="angular"> 11, </key>\r
+<key name="angularity"> 11, </key>\r
+<key name="anid"> 57,63, </key>\r
+<key name="anodeid1"> 60, </key>\r
+<key name="anodeid2"> 60, </key>\r
+<key name="anodeid3"> 60, </key>\r
+<key name="anodeid4"> 60, </key>\r
+<key name="anoth"> 60,37, </key>\r
+<key name="any"> 13,1,22,24,27,11,57,61,45, </key>\r
+<key name="ap"> 14,16,1,17,19,2,20,5,22,24,25,7,8,26,27,29,10,11,31,32,59,36,60,61,38,39,40,64,43,44,45,46,47,49,50,51,69,54, </key>\r
+<key name="apparent"> 22, </key>\r
+<key name="appear"> 0,16,1,20,22,23,25,26,27,29,10,11,35,61,39,40,64,41,46,48,49,50,51, </key>\r
+<key name="append"> 60,63, </key>\r
+<key name="appli"> 17,18,19,2,22,23,33,32,36,34,37,38,65,44,45,47,69,54, </key>\r
+<key name="applicabl"> 19,65, </key>\r
+<key name="application"> 15,61, </key>\r
+<key name="apply"> 12,0,22,23,24, </key>\r
+<key name="applytomeshfac"> 60, </key>\r
+<key name="appropriat"> 22, </key>\r
+<key name="approximate"> 18, </key>\r
+<key name="apredicat"> 57,63, </key>\r
+<key name="arc"> 7,60,66, </key>\r
+<key name="arcsin"> 54, </key>\r
+<key name="area"> 12,15,17,7,57,31,33,34,63,45,47,53, </key>\r
+<key name="arithmetic"> 12,18,6,7,31,66, </key>\r
+<key name="arithmetic1d"> 6,7,66,68, </key>\r
+<key name="around"> 5,11,64, </key>\r
+<key name="array_of_nodes_group"> 66, </key>\r
+<key name="asmeshgroup1"> 57, </key>\r
+<key name="asmeshgroup2"> 57, </key>\r
+<key name="aspect"> 15,19,2,31,63,45, </key>\r
+<key name="assign"> 18,22,24,7,38,54, </key>\r
+<key name="associat"> 16,28,39, </key>\r
+<key name="attribut"> 24, </key>\r
+<key name="auto"> 5, </key>\r
+<key name="automatic"> 12,18,22,31,61, </key>\r
+<key name="automatical"> 0,18,20,22,25,27,49, </key>\r
+<key name="availabl"> 43,53, </key>\r
+<key name="averag"> 12,18,7,31,33,61,54, </key>\r
+<key name="ax"> 53, </key>\r
+<key name="axi"> 10,64,41,46,53,54, </key>\r
+<key name="axisstruct"> 60,66, </key>\r
+<key name="axisxyz"> 60,66, </key>\r
<key name="background"> 0, </key>\r
-<key name="bar"> 14, </key>\r
-<key name="bas"> 11,16,6,10,30,52, </key>\r
-<key name="basi"> 12,21,22, </key>\r
-<key name="basic"> 11, </key>\r
-<key name="becom"> 58, </key>\r
-<key name="befor"> 62, </key>\r
-<key name="begin"> 17,42, </key>\r
-<key name="belong"> 2,3,23,53,54,42,50, </key>\r
-<key name="berder"> 42, </key>\r
-<key name="binary"> 62, </key>\r
-<key name="bisect"> 52, </key>\r
-<key name="bisector"> 52, </key>\r
-<key name="bit"> 62, </key>\r
+<key name="bar"> 15, </key>\r
+<key name="bas"> 12,17,7,11,31,54, </key>\r
+<key name="basi"> 13,22,23, </key>\r
+<key name="basic"> 12,0, </key>\r
+<key name="becom"> 61, </key>\r
+<key name="befor"> 65,66, </key>\r
+<key name="begin"> 18,43, </key>\r
+<key name="belong"> 3,4,24,55,56,43,51, </key>\r
+<key name="below"> 60, </key>\r
+<key name="berder"> 43, </key>\r
+<key name="bet"> 19, </key>\r
+<key name="binary"> 65, </key>\r
+<key name="bisect"> 54, </key>\r
+<key name="bisector"> 54, </key>\r
+<key name="bit"> 65, </key>\r
<key name="black"> 0, </key>\r
-<key name="block"> 5,6, </key>\r
-<key name="bog"> 17, </key>\r
-<key name="boolean"> 50, </key>\r
-<key name="bord"> 42,63, </key>\r
-<key name="border"> 14,2,3,53,54,30,60,42,63, </key>\r
-<key name="both"> 8,10,44,50, </key>\r
-<key name="bottom"> 41, </key>\r
-<key name="bound"> 12,58, </key>\r
-<key name="boundari"> 58, </key>\r
-<key name="boundary"> 11,58,42,44, </key>\r
-<key name="box"> 13,15,19,21,5,22,23,24,6,25,26,28,9,10,55,29,34,58,60,38,39,61,40,41,62,42,44,45,63,47,48,49,50,51,65, </key>\r
-<key name="box_id"> 5,6, </key>\r
-<key name="box1"> 63, </key>\r
-<key name="box2"> 63, </key>\r
-<key name="brown"> 23, </key>\r
-<key name="brows"> 0,15,20,21,22,23,7,28,59,38,39,62,51, </key>\r
-<key name="build"> 6,9,36,58,61, </key>\r
-<key name="built"> 58,44, </key>\r
-<key name="button"> 0,15,16,18,19,4,21,22,23,24,7,25,26,28,9,10,29,31,35,58,37,38,39,61,40,62,42,43,44,45,46,47,48,49,50,51,52, </key>\r
-<key name="cad"> 12, </key>\r
-<key name="cal"> 58, </key>\r
-<key name="calculat"> 14,18,1,36,46, </key>\r
-<key name="calculation"> 11,16,31,35, </key>\r
-<key name="careful"> 38, </key>\r
-<key name="cas"> 15,21,5,6,26,58,63,51, </key>\r
-<key name="cel"> 23,38,49, </key>\r
-<key name="cent"> 10,44, </key>\r
-<key name="centroid"> 44, </key>\r
-<key name="centroidal"> 44, </key>\r
-<key name="centroidal_smooth"> 57, </key>\r
-<key name="certain"> 23,58, </key>\r
-<key name="chang"> 0,17,19,5,26,36,37,65, </key>\r
-<key name="chapt"> 0, </key>\r
-<key name="characteristic"> 14, </key>\r
-<key name="characteriz"> 12, </key>\r
-<key name="check"> 23,42, </key>\r
-<key name="checkbox"> 15,62,47, </key>\r
-<key name="choic"> 11,21,58, </key>\r
-<key name="choos"> 15,16,18,19,20,23,24,7,25,26,8,27,9,10,29,31,34,35,58,38,39,61,40,41,62,42,43,45,46,47,48,49,52, </key>\r
-<key name="chosen"> 24,32,33,48, </key>\r
-<key name="circl"> 10,57, </key>\r
-<key name="circlemesh"> 57, </key>\r
-<key name="clear"> 62, </key>\r
-<key name="click"> 0,15,16,18,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,31,35,58,59,37,38,39,61,41,62,42,43,44,46,48,49,50,51,52, </key>\r
-<key name="clip"> 0,4, </key>\r
-<key name="clos"> 12,7,42, </key>\r
-<key name="co"> 42, </key>\r
-<key name="coincident"> 34, </key>\r
-<key name="color"> 14,0,16,18,31,35,43,46,52, </key>\r
-<key name="combin"> 31,59,62, </key>\r
-<key name="common"> 25,62,49, </key>\r
-<key name="compar"> 42, </key>\r
-<key name="component"> 30,41, </key>\r
-<key name="compos"> 11,12,13,14,0,17,1,27,32,33,43, </key>\r
-<key name="compound"> 5,6,57, </key>\r
-<key name="comput"> 17,21,5,6,55,57,58,60,42,63,65, </key>\r
-<key name="computation"> 21,22, </key>\r
-<key name="concept"> 36, </key>\r
-<key name="condition"> 11, </key>\r
-<key name="confirm"> 19,24,28,38,44,48,50, </key>\r
-<key name="confirmation"> 23, </key>\r
-<key name="conform"> 11,36,42,63, </key>\r
-<key name="connect"> 17,24,44, </key>\r
-<key name="connection"> 12,14,2,3,30,60, </key>\r
-<key name="connectivity"> 58, </key>\r
-<key name="consid"> 21, </key>\r
-<key name="consider"> 12,42, </key>\r
-<key name="consist"> 14,16,17,18,2,3,20,21,22,23,53,54,55,32,31,35,33,46, </key>\r
-<key name="consol"> 51, </key>\r
-<key name="constant"> 17, </key>\r
-<key name="construct"> 17,20,21,5,22,37, </key>\r
-<key name="construction"> 17,21,5,22, </key>\r
-<key name="contain"> 12,13,19,21,22,23,24,29,58,44,48, </key>\r
-<key name="content"> 7, </key>\r
-<key name="continu"> 44, </key>\r
-<key name="contour"> 12,42, </key>\r
-<key name="contrast"> 48, </key>\r
-<key name="control"> 14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52, </key>\r
-<key name="converg"> 44, </key>\r
-<key name="coordinat"> 12,15,26,58, </key>\r
-<key name="copy"> 40,62,45,63,47, </key>\r
-<key name="corn"> 52, </key>\r
-<key name="corner"> 24,44,52, </key>\r
-<key name="correspond"> 12,14,29,58,62,42,47, </key>\r
-<key name="could"> 12,15, </key>\r
-<key name="count"> 42, </key>\r
-<key name="counterclockwis"> 58, </key>\r
-<key name="cours"> 21, </key>\r
-<key name="creat"> 12,13,0,15,4,21,5,23,6,55,30,34,57,36,58,60,37,40,62,45,63,47,50,52, </key>\r
-<key name="createanddisplaygo"> 6, </key>\r
-<key name="createarea"> 55,60, </key>\r
-<key name="createaspectratio"> 60, </key>\r
-<key name="createaspectratio3d"> 60, </key>\r
-<key name="createequalto"> 55,60, </key>\r
-<key name="createfilt"> 55,60, </key>\r
-<key name="createfiltermanag"> 55,57,60, </key>\r
-<key name="createfreeborder"> 60, </key>\r
-<key name="createfreeedg"> 60, </key>\r
-<key name="creategroup"> 55,57,60, </key>\r
-<key name="creategroupfromgeom"> 55, </key>\r
-<key name="createhypothesi"> 5,6,55,60,65, </key>\r
-<key name="createlength"> 60, </key>\r
-<key name="createlength2d"> 60, </key>\r
-<key name="createlessthan"> 55,60, </key>\r
-<key name="createmesh"> 5,6,55,60,65, </key>\r
-<key name="createminimumangl"> 57,60, </key>\r
-<key name="createmorethan"> 55,60, </key>\r
-<key name="createmulticonnection"> 60, </key>\r
-<key name="createmulticonnection2d"> 60, </key>\r
-<key name="createskew"> 60, </key>\r
-<key name="createtap"> 60, </key>\r
-<key name="createwarp"> 60, </key>\r
-<key name="creation"> 12,23,36,58,37,50, </key>\r
-<key name="criteria"> 30,62, </key>\r
-<key name="criterion"> 16,18,1,23,24,55,56,31,35,60,62,43,46,48,52, </key>\r
-<key name="cros"> 0,4,52, </key>\r
-<key name="cubic"> 13, </key>\r
-<key name="current"> 19,21,24,37,62,42,48, </key>\r
-<key name="curv"> 12,10, </key>\r
-<key name="curvilinear"> 17,10, </key>\r
-<key name="cut"> 5,24,6,55,57,63,50, </key>\r
-<key name="cutgroup"> 55, </key>\r
-<key name="d"> 17, </key>\r
-<key name="deal"> 12, </key>\r
-<key name="default"> 0,21,23,10,59,62,64, </key>\r
-<key name="defin"> 12,13,17,18,4,21,5,23,6,10,57,36,58,42,63, </key>\r
-<key name="definit"> 12,14,17,19,20,23,24,30,37,38,48, </key>\r
-<key name="definition"> 17,32,33, </key>\r
-<key name="deflection"> 11,17,6, </key>\r
-<key name="deflection1d"> 6, </key>\r
-<key name="degre"> 4, </key>\r
-<key name="delet"> 0,7,54,57,38,62, </key>\r
-<key name="deletediag"> 57, </key>\r
-<key name="deletion"> 30,38,49, </key>\r
-<key name="density"> 17, </key>\r
-<key name="depend"> 11,12,21,32,33, </key>\r
-<key name="describ"> 12,0,58, </key>\r
-<key name="description"> 58, </key>\r
-<key name="desirabl"> 34, </key>\r
-<key name="desktop"> 41, </key>\r
-<key name="destin"> 12,14,30, </key>\r
-<key name="detail"> 11, </key>\r
-<key name="detect"> 34, </key>\r
-<key name="diagonal"> 24,25,57,46, </key>\r
-<key name="dialog"> 13,15,17,19,21,22,24,25,26,28,9,10,29,34,58,38,39,61,40,42,44,45,47,48,49,50, </key>\r
-<key name="differ"> 17, </key>\r
-<key name="differenc"> 10,42, </key>\r
-<key name="different"> 11,15,23,37,62,42, </key>\r
-<key name="dimension"> 12,1,21,9,61, </key>\r
-<key name="direct"> 12,1,42,44, </key>\r
-<key name="direction"> 58,52, </key>\r
-<key name="dirstruct"> 57,63, </key>\r
-<key name="discretisation"> 5,6,55, </key>\r
-<key name="discretiz"> 9,61, </key>\r
-<key name="discretization"> 12,13, </key>\r
-<key name="displac"> 26, </key>\r
-<key name="display"> 14,0,16,18,2,19,21,22,24,6,26,8,27,53,31,35,59,43,44,46,48,51,52, </key>\r
-<key name="distanc"> 17,4,58,52, </key>\r
-<key name="distinguish"> 23, </key>\r
-<key name="distortion"> 44, </key>\r
-<key name="distribution"> 17, </key>\r
-<key name="divid"> 17, </key>\r
-<key name="do"> 15, </key>\r
-<key name="domain"> 58, </key>\r
-<key name="don"> 12,21,36, </key>\r
-<key name="e"> 21,24,58,42,48, </key>\r
-<key name="easi"> 20, </key>\r
-<key name="edg"> 11,12,13,14,15,17,18,2,3,20,21,5,23,24,6,25,26,8,10,53,54,55,30,56,31,57,36,58,60,62,42,44,63,48,49,65,52, </key>\r
-<key name="edgeslist"> 63, </key>\r
-<key name="edgex111"> 5,6, </key>\r
-<key name="edgex112"> 5,6, </key>\r
-<key name="edgex121"> 5,6, </key>\r
-<key name="edgex122"> 5,6, </key>\r
-<key name="edgey11"> 5,6, </key>\r
-<key name="edgey12"> 5,6, </key>\r
-<key name="edgey21"> 5,6, </key>\r
-<key name="edgey22"> 5,6, </key>\r
-<key name="edgez111"> 5,6, </key>\r
-<key name="edgez121"> 5,6, </key>\r
-<key name="edgez211"> 5,6, </key>\r
-<key name="edgez221"> 5,6, </key>\r
-<key name="edit"> 5,7,28,55,34,37, </key>\r
-<key name="effect"> 48, </key>\r
-<key name="eith"> 58,42, </key>\r
-<key name="element"> 11,12,13,14,0,15,16,17,18,1,3,19,20,23,24,6,7,25,26,27,28,9,10,54,55,30,32,31,35,57,33,36,58,38,39,61,40,62,42,43,44,45,46,63,47,48,50,51,52, </key>\r
-<key name="els"> 57,58, </key>\r
-<key name="enabl"> 62, </key>\r
-<key name="encapsulat"> 22, </key>\r
-<key name="encounter"> 58, </key>\r
-<key name="end"> 11,17,6,36,62,42,47, </key>\r
-<key name="enough"> 42, </key>\r
-<key name="ent"> 23,25,26,29,49, </key>\r
-<key name="entiti"> 12,13, </key>\r
-<key name="entity"> 12,0,8,62, </key>\r
-<key name="equal"> 17,18,58,62,42,44, </key>\r
-<key name="equidistant"> 17, </key>\r
-<key name="equilateral"> 18, </key>\r
+<key name="block"> 6,7, </key>\r
+<key name="blu"> 3, </key>\r
+<key name="bmp"> 0,53, </key>\r
+<key name="bog"> 18, </key>\r
+<key name="boolean"> 51, </key>\r
+<key name="bord"> 43,66, </key>\r
+<key name="border"> 15,3,4,55,56,31,63,43,66, </key>\r
+<key name="both"> 0,11,45,51, </key>\r
+<key name="bottom"> 60,42, </key>\r
+<key name="bound"> 13,61, </key>\r
+<key name="boundari"> 61, </key>\r
+<key name="boundary"> 12,24,61,43,45, </key>\r
+<key name="box"> 14,16,1,18,20,22,6,23,25,7,26,27,29,10,11,57,30,59,35,61,63,39,40,64,41,42,65,43,45,46,66,48,49,50,51,52,68, </key>\r
+<key name="box_1"> 60, </key>\r
+<key name="box_id"> 6,7, </key>\r
+<key name="box1"> 66, </key>\r
+<key name="box2"> 66, </key>\r
+<key name="broken"> 1,37, </key>\r
+<key name="brown"> 24, </key>\r
+<key name="brows"> 0,16,1,21,22,23,24,8,29,62,39,40,65,52, </key>\r
+<key name="build"> 7,10,33,60,37,61,64, </key>\r
+<key name="built"> 19,23,61,45, </key>\r
+<key name="button"> 16,1,17,19,2,20,5,22,23,24,25,8,26,27,29,10,11,30,32,36,61,38,39,40,64,41,65,43,44,45,46,47,48,49,50,51,52,69,53,54, </key>\r
+<key name="cad"> 13, </key>\r
+<key name="cal"> 61, </key>\r
+<key name="calculat"> 15,19,2,33,47, </key>\r
+<key name="calculation"> 12,17,32,36, </key>\r
+<key name="careful"> 39, </key>\r
+<key name="cas"> 16,22,6,7,27,60,61,66,52, </key>\r
+<key name="cel"> 24,39,50, </key>\r
+<key name="cent"> 11,45,53, </key>\r
+<key name="centroid"> 45, </key>\r
+<key name="centroidal"> 45, </key>\r
+<key name="centroidal_smooth"> 60, </key>\r
+<key name="certain"> 24,61, </key>\r
+<key name="chang"> 0,18,20,6,27,60,37,38,68, </key>\r
+<key name="characteristic"> 15, </key>\r
+<key name="characteriz"> 13, </key>\r
+<key name="check"> 24,43,53, </key>\r
+<key name="checkbox"> 16,65,48, </key>\r
+<key name="choic"> 12,22,61, </key>\r
+<key name="choos"> 16,1,17,19,2,20,21,24,25,8,26,27,9,28,10,11,30,32,35,36,61,39,40,64,41,42,65,43,44,46,47,48,49,50,69,54, </key>\r
+<key name="chosen"> 19,25,33,34,49, </key>\r
+<key name="circl"> 11,60,66, </key>\r
+<key name="circlemesh"> 60,66, </key>\r
+<key name="clear"> 65, </key>\r
+<key name="click"> 0,16,1,17,19,2,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,32,36,61,62,38,39,40,64,42,65,43,44,45,47,49,50,51,52,69,53,54, </key>\r
+<key name="clip"> 0,5, </key>\r
+<key name="clos"> 13,19,8,43, </key>\r
+<key name="co"> 60,43, </key>\r
+<key name="coars"> 18, </key>\r
+<key name="coincid"> 59, </key>\r
+<key name="coincident"> 59,35, </key>\r
+<key name="color"> 15,0,17,19,2,24,32,36,44,47,69,53,54, </key>\r
+<key name="combin"> 9,32,62,65, </key>\r
+<key name="common"> 26,65,50, </key>\r
+<key name="compar"> 18,43, </key>\r
+<key name="complete"> 59, </key>\r
+<key name="complex"> 1, </key>\r
+<key name="component"> 31,42, </key>\r
+<key name="compos"> 12,13,14,15,0,18,2,28,33,34,44, </key>\r
+<key name="compound"> 6,7, </key>\r
+<key name="comput"> 0,18,22,6,7,57,60,61,63,43,66,68, </key>\r
+<key name="computation"> 22,23,7,57,60, </key>\r
+<key name="concept"> 37, </key>\r
+<key name="condition"> 12,24, </key>\r
+<key name="confirm"> 20,25,29,39,45,49,51, </key>\r
+<key name="confirmation"> 24, </key>\r
+<key name="conform"> 12,37,43,66, </key>\r
+<key name="conformity"> 19, </key>\r
+<key name="connect"> 18,25,45, </key>\r
+<key name="connection"> 13,15,3,4,31,63, </key>\r
+<key name="connectivity"> 61, </key>\r
+<key name="consid"> 19,22, </key>\r
+<key name="consider"> 13,19,2,43, </key>\r
+<key name="consist"> 15,1,17,18,19,3,4,21,22,23,24,55,56,57,33,32,36,34,47, </key>\r
+<key name="consol"> 52, </key>\r
+<key name="constant"> 18, </key>\r
+<key name="construct"> 18,21,22,6,23,38, </key>\r
+<key name="construction"> 18,22,6,23, </key>\r
+<key name="contain"> 13,14,20,22,23,24,25,30,33,61,45,49, </key>\r
+<key name="content"> 8,53, </key>\r
+<key name="continu"> 45, </key>\r
+<key name="contour"> 13,43, </key>\r
+<key name="contrast"> 49, </key>\r
+<key name="control"> 15,0,17,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54, </key>\r
+<key name="converg"> 45, </key>\r
+<key name="conversion"> 18, </key>\r
+<key name="coordinat"> 13,16,27,61,53, </key>\r
+<key name="copy"> 41,65,46,66,48, </key>\r
+<key name="corn"> 1,54, </key>\r
+<key name="corner"> 25,45,54, </key>\r
+<key name="correspond"> 13,15,30,60,61,63,65,43,48, </key>\r
+<key name="cosal"> 60, </key>\r
+<key name="could"> 13,16, </key>\r
+<key name="count"> 43, </key>\r
+<key name="counterclockwis"> 61, </key>\r
+<key name="cours"> 22, </key>\r
+<key name="creat"> 13,14,0,16,1,18,5,22,6,23,24,7,29,57,31,35,60,37,61,63,38,41,65,46,66,48,51,54, </key>\r
+<key name="createanddisplaygo"> 7, </key>\r
+<key name="createarea"> 57,63, </key>\r
+<key name="createaspectratio"> 63, </key>\r
+<key name="createaspectratio3d"> 63, </key>\r
+<key name="createequalto"> 57,63, </key>\r
+<key name="createfilt"> 57,63, </key>\r
+<key name="createfiltermanag"> 57,60,63, </key>\r
+<key name="createfreeborder"> 63, </key>\r
+<key name="createfreeedg"> 63, </key>\r
+<key name="creategroup"> 57,60,63, </key>\r
+<key name="creategroupfromgeom"> 57, </key>\r
+<key name="createhypothesi"> 6,7,57,60,63,68, </key>\r
+<key name="createlength"> 63, </key>\r
+<key name="createlength2d"> 63, </key>\r
+<key name="createlessthan"> 57,63, </key>\r
+<key name="createmesh"> 6,7,57,60,63,68, </key>\r
+<key name="createminimumangl"> 60,63, </key>\r
+<key name="createmorethan"> 57,63, </key>\r
+<key name="createmulticonnection"> 63, </key>\r
+<key name="createmulticonnection2d"> 63, </key>\r
+<key name="createskew"> 63, </key>\r
+<key name="createtap"> 63, </key>\r
+<key name="createvolume3d"> 63, </key>\r
+<key name="createwarp"> 63, </key>\r
+<key name="creation"> 13,37,61,38,51, </key>\r
+<key name="criteria"> 31,65, </key>\r
+<key name="criterion"> 17,19,2,24,25,57,58,32,36,63,65,44,47,49,69,54, </key>\r
+<key name="cros"> 0,5,54, </key>\r
+<key name="cubic"> 14, </key>\r
+<key name="current"> 20,22,25,38,65,43,49, </key>\r
+<key name="curv"> 13,18,11, </key>\r
+<key name="curvilinear"> 18,11, </key>\r
+<key name="cut"> 18,6,25,7,57,60,66,51, </key>\r
+<key name="cutgroup"> 57, </key>\r
+<key name="cylind"> 60, </key>\r
+<key name="d"> 18, </key>\r
+<key name="deal"> 13, </key>\r
+<key name="def"> 60, </key>\r
+<key name="default"> 0,22,11,62,65,67,53, </key>\r
+<key name="defin"> 13,14,1,18,19,5,22,6,23,24,7,11,60,37,61,43,66,53, </key>\r
+<key name="definit"> 13,15,18,20,21,24,25,31,38,39,49, </key>\r
+<key name="definition"> 0,18,33,34, </key>\r
+<key name="deflection"> 12,18,7,31, </key>\r
+<key name="deflection1d"> 7, </key>\r
+<key name="deform"> 53, </key>\r
+<key name="degre"> 19,5, </key>\r
+<key name="delet"> 8,56,60,39,65, </key>\r
+<key name="deletediag"> 60, </key>\r
+<key name="deletion"> 39,50, </key>\r
+<key name="density"> 18, </key>\r
+<key name="depend"> 12,13,22,33,34, </key>\r
+<key name="describ"> 13,61, </key>\r
+<key name="description"> 61, </key>\r
+<key name="desirabl"> 35, </key>\r
+<key name="desktop"> 42, </key>\r
+<key name="destin"> 13,15,31, </key>\r
+<key name="detail"> 12,0, </key>\r
+<key name="detect"> 35, </key>\r
+<key name="dh"> 60, </key>\r
+<key name="diagonal"> 25,26,60,47, </key>\r
+<key name="dialog"> 14,16,1,18,20,22,23,25,26,27,29,10,11,30,59,35,61,39,40,64,41,43,45,46,48,49,50,51, </key>\r
+<key name="diamet"> 19, </key>\r
+<key name="dif"> 1, </key>\r
+<key name="differ"> 18, </key>\r
+<key name="differenc"> 11,43, </key>\r
+<key name="different"> 12,16,24,38,65,43, </key>\r
+<key name="dimension"> 13,2,22,10,64,52, </key>\r
+<key name="direct"> 13,43,45, </key>\r
+<key name="direction"> 61,54, </key>\r
+<key name="dirstruct"> 60,66, </key>\r
+<key name="discretisation"> 6,7, </key>\r
+<key name="discretiz"> 10,64, </key>\r
+<key name="discretization"> 13,14, </key>\r
+<key name="displac"> 27, </key>\r
+<key name="display"> 15,0,1,17,19,2,3,20,22,23,24,25,7,27,9,28,55,32,36,62,44,45,47,49,52,69,53,54, </key>\r
+<key name="distanc"> 18,5,61,53,54, </key>\r
+<key name="distinguish"> 24, </key>\r
+<key name="distortion"> 45, </key>\r
+<key name="distribution"> 18, </key>\r
+<key name="divid"> 18, </key>\r
+<key name="do"> 16, </key>\r
+<key name="domain"> 61, </key>\r
+<key name="don"> 13,22,37,53, </key>\r
+<key name="doubl"> 1, </key>\r
+<key name="downward"> 53, </key>\r
+<key name="dr"> 60, </key>\r
+<key name="drag"> 53, </key>\r
+<key name="drawn"> 53, </key>\r
+<key name="dump"> 0,53, </key>\r
+<key name="dx"> 60, </key>\r
+<key name="dy"> 60, </key>\r
+<key name="e"> 19,22,23,25,61,43,49, </key>\r
+<key name="easi"> 21, </key>\r
+<key name="edg"> 12,13,14,15,0,16,1,18,19,3,4,21,22,6,24,25,7,26,27,9,11,55,56,57,31,58,33,32,60,37,61,63,65,43,45,66,49,50,68,54, </key>\r
+<key name="edgeslist"> 66, </key>\r
+<key name="edgex111"> 6,7, </key>\r
+<key name="edgex112"> 6,7, </key>\r
+<key name="edgex121"> 6,7, </key>\r
+<key name="edgex122"> 6,7, </key>\r
+<key name="edgey11"> 6,7, </key>\r
+<key name="edgey12"> 6,7, </key>\r
+<key name="edgey21"> 6,7, </key>\r
+<key name="edgey22"> 6,7, </key>\r
+<key name="edgez111"> 6,7, </key>\r
+<key name="edgez121"> 6,7, </key>\r
+<key name="edgez211"> 6,7, </key>\r
+<key name="edgez221"> 6,7, </key>\r
+<key name="edit"> 6,8,29,57,35,38, </key>\r
+<key name="effect"> 49, </key>\r
+<key name="eith"> 61,43, </key>\r
+<key name="element"> 12,13,14,15,0,16,1,17,18,19,2,4,20,21,24,25,7,8,26,27,28,29,10,11,56,57,31,33,32,59,36,60,34,37,61,63,39,40,64,41,65,43,44,45,46,47,66,48,49,51,52,69,54, </key>\r
+<key name="els"> 7,57,60,61, </key>\r
+<key name="enabl"> 65, </key>\r
+<key name="encapsulat"> 23, </key>\r
+<key name="encounter"> 61, </key>\r
+<key name="end"> 12,18,7,31,37,65,43,48, </key>\r
+<key name="enough"> 43, </key>\r
+<key name="ent"> 24,26,27,30,50, </key>\r
+<key name="entiti"> 13,14, </key>\r
+<key name="entity"> 13,0,9,65, </key>\r
+<key name="equal"> 18,33,61,65,43,45, </key>\r
+<key name="equidistant"> 18, </key>\r
+<key name="equilateral"> 19, </key>\r
<key name="eras"> 0, </key>\r
-<key name="etc"> 14,1,24,48, </key>\r
-<key name="evaluat"> 1, </key>\r
-<key name="even"> 21, </key>\r
-<key name="eventual"> 58, </key>\r
-<key name="every"> 52, </key>\r
-<key name="everyth"> 21, </key>\r
-<key name="exampl"> 12,21,58,50, </key>\r
-<key name="exce"> 17, </key>\r
-<key name="exceed"> 44, </key>\r
-<key name="except"> 42, </key>\r
-<key name="exist"> 11,19,23,24,28,58,62,48, </key>\r
-<key name="existenc"> 21, </key>\r
-<key name="export"> 5,29,30, </key>\r
-<key name="exportation"> 29, </key>\r
-<key name="exportm"> 5, </key>\r
-<key name="extend"> 52, </key>\r
-<key name="extremiti"> 4, </key>\r
-<key name="extrud"> 9,10,61, </key>\r
-<key name="extrusion"> 9,10,57, </key>\r
-<key name="extrusionalongpathobject"> 57, </key>\r
-<key name="extrusionsweepobject"> 57, </key>\r
-<key name="f"> 17,6, </key>\r
-<key name="fac"> 11,12,13,15,17,1,2,20,21,5,23,6,8,53,55,30,32,57,36,58,60,62,42,63,51,65,52, </key>\r
-<key name="face1"> 6,57, </key>\r
-<key name="facelist"> 60, </key>\r
-<key name="facesrotat"> 57, </key>\r
-<key name="facessmooth"> 57, </key>\r
-<key name="facestritoquad"> 57, </key>\r
-<key name="facex11"> 5,6, </key>\r
-<key name="facex21"> 5,6, </key>\r
-<key name="facey111"> 5,6, </key>\r
-<key name="facey121"> 5,6, </key>\r
-<key name="facez11"> 5,6, </key>\r
-<key name="facez12"> 5,6, </key>\r
-<key name="factor"> 17, </key>\r
-<key name="factoryserv"> 5,6,55,60,65, </key>\r
-<key name="far"> 42, </key>\r
-<key name="fashion"> 10, </key>\r
-<key name="fast"> 44, </key>\r
-<key name="field"> 15,19,23,24,25,26,39,62,42,44,48,49, </key>\r
-<key name="fifth"> 42, </key>\r
-<key name="fil"> 29,58,62, </key>\r
-<key name="fill"> 39,42, </key>\r
-<key name="filt"> 19,23,24,62,48, </key>\r
-<key name="filter"> 23,62, </key>\r
-<key name="find"> 29,58,42, </key>\r
-<key name="findcoincidentnod"> 63, </key>\r
-<key name="findorloadcomponent"> 5,6,55,60,65, </key>\r
-<key name="first"> 17,21,55,58,42, </key>\r
-<key name="fix"> 12,5,6,57,44,63, </key>\r
-<key name="flag"> 58, </key>\r
-<key name="fold"> 21,22, </key>\r
-<key name="follow"> 11,12,13,0,15,18,1,19,21,22,23,24,25,26,27,28,9,10,34,58,38,39,61,40,42,44,45,47,48,49,50,51, </key>\r
-<key name="form"> 25,28,58,42, </key>\r
-<key name="format"> 29,30, </key>\r
-<key name="formula"> 17,1, </key>\r
-<key name="four"> 12,52, </key>\r
-<key name="fre"> 12,14,53,54,30,60,42,44,63, </key>\r
-<key name="function"> 12, </key>\r
-<key name="functionaliti"> 0, </key>\r
-<key name="functionality"> 21,29,34,42, </key>\r
-<key name="generat"> 11,12,14,17,21,30,36,58, </key>\r
-<key name="generation"> 9,58,61, </key>\r
-<key name="geom"> 12,6,30, </key>\r
-<key name="geometric"> 12,14,6, </key>\r
-<key name="geometrical"> 11,12,13,17,21,22,23,30,32,33,58,37,40,44,45,47,51, </key>\r
-<key name="geometry"> 23,55,44, </key>\r
-<key name="geompy"> 5,6,55,57,60,63,65, </key>\r
-<key name="get"> 0,4,21,10,58,51, </key>\r
-<key name="getelementsid"> 55,60, </key>\r
-<key name="getid"> 5,6,55, </key>\r
-<key name="getlistofid"> 55, </key>\r
-<key name="getmaxelementarea"> 5,6,55, </key>\r
-<key name="getmaxelementvolum"> 5,6,55, </key>\r
-<key name="getmesh"> 57,63, </key>\r
-<key name="getmesheditor"> 57,60,63, </key>\r
-<key name="getnam"> 5,6,55, </key>\r
-<key name="getnumberofsegment"> 5,6,55, </key>\r
-<key name="gg"> 6, </key>\r
-<key name="giv"> 62,51, </key>\r
-<key name="given"> 17,1,36,42, </key>\r
-<key name="good"> 44, </key>\r
-<key name="got"> 58, </key>\r
-<key name="green"> 23, </key>\r
-<key name="group"> 19,20,23,24,7,28,10,55,30,34,57,60,62,47,48,50,51, </key>\r
-<key name="group1"> 50, </key>\r
-<key name="group12"> 50, </key>\r
-<key name="group12a"> 50, </key>\r
-<key name="group12b"> 50, </key>\r
-<key name="group2"> 50, </key>\r
-<key name="grouprotat"> 57, </key>\r
-<key name="groupsmooth"> 57, </key>\r
-<key name="groupsofnod"> 63, </key>\r
-<key name="grouptritoquad"> 57, </key>\r
-<key name="h"> 52, </key>\r
-<key name="h1"> 18, </key>\r
-<key name="h2"> 18, </key>\r
-<key name="half"> 52, </key>\r
-<key name="halv"> 4, </key>\r
-<key name="hav"> 36,58, </key>\r
-<key name="height"> 18,52, </key>\r
-<key name="helical"> 10, </key>\r
-<key name="help"> 14, </key>\r
-<key name="henc"> 58, </key>\r
-<key name="her"> 28,58, </key>\r
-<key name="hexa"> 5,6,57, </key>\r
-<key name="hexa_3d"> 6, </key>\r
-<key name="hexa3d"> 6, </key>\r
-<key name="hexagon"> 10, </key>\r
-<key name="hexahedral"> 13,5,6, </key>\r
-<key name="hexahedralization"> 21, </key>\r
-<key name="hexahedrical"> 5,6,57, </key>\r
-<key name="hexahedron"> 12,13,15,1,6,57,33,65, </key>\r
-<key name="hid"> 0, </key>\r
-<key name="high"> 12, </key>\r
-<key name="highlight"> 2,3,19,23,24,53,54,48, </key>\r
-<key name="hol"> 54, </key>\r
-<key name="hold"> 58, </key>\r
-<key name="how"> 10,37, </key>\r
-<key name="hyp"> 22, </key>\r
-<key name="hyp1"> 5,60,65, </key>\r
-<key name="hyp2"> 5,60,65, </key>\r
-<key name="hyp3"> 5,65, </key>\r
-<key name="hyp4"> 5,65, </key>\r
-<key name="hyparea"> 5,6,55, </key>\r
-<key name="hypnbseg"> 5,6,55, </key>\r
-<key name="hypothes"> 11,17,21,22,6,30,36,37, </key>\r
-<key name="hypothesi"> 11,17,21,5,6,55,32,57,33,36,37,63,65, </key>\r
-<key name="hypvolum"> 5,6,55, </key>\r
-<key name="i"> 21,24,55,58,60,42,48, </key>\r
-<key name="icon"> 28,38,41, </key>\r
-<key name="id"> 0,17,19,23,24,25,26,27,9,10,61,42,44,48,49, </key>\r
-<key name="id_circl"> 57, </key>\r
-<key name="id_face1"> 6,57, </key>\r
-<key name="idbox"> 5,6,55,60,65, </key>\r
-<key name="idcomp"> 63, </key>\r
-<key name="idea"> 10, </key>\r
-<key name="idedg"> 5,65, </key>\r
-<key name="idfac"> 55, </key>\r
-<key name="idtoobject"> 5,60,63,65, </key>\r
-<key name="if"> 12,15,4,21,5,6,9,10,55,57,36,58,37,38,61,62,42,44,48, </key>\r
-<key name="imag"> 10, </key>\r
-<key name="imp"> 12, </key>\r
-<key name="import"> 5,6,55,29,30,57,60,63,65, </key>\r
-<key name="importation"> 29, </key>\r
-<key name="importcomponentgui"> 5,6,55,60, </key>\r
-<key name="includ"> 12,51, </key>\r
-<key name="increas"> 5,6,63, </key>\r
-<key name="index"> 58, </key>\r
-<key name="indic"> 58, </key>\r
-<key name="indicat"> 52, </key>\r
-<key name="info"> 0,51,65, </key>\r
-<key name="information"> 12,0,28,51,65, </key>\r
-<key name="init"> 5,6,55,60, </key>\r
-<key name="initial"> 10,62,45,50, </key>\r
-<key name="initializ"> 5,6,55, </key>\r
-<key name="input"> 17, </key>\r
-<key name="insert"> 62,42, </key>\r
-<key name="instead"> 58, </key>\r
-<key name="intact"> 7, </key>\r
-<key name="intend"> 42, </key>\r
-<key name="interest"> 12, </key>\r
-<key name="intermediat"> 42, </key>\r
-<key name="internal"> 58, </key>\r
-<key name="intersect"> 58,50, </key>\r
-<key name="intersectgroup"> 55, </key>\r
-<key name="intersection"> 55,58,50, </key>\r
-<key name="introduc"> 11,36, </key>\r
-<key name="introduction"> 30, </key>\r
-<key name="invers"> 12,25,57, </key>\r
-<key name="inversediag"> 57, </key>\r
-<key name="inversion"> 25,57, </key>\r
-<key name="invisibl"> 64, </key>\r
-<key name="iso"> 58, </key>\r
-<key name="isolin"> 58, </key>\r
-<key name="isplanarfac"> 6,57, </key>\r
-<key name="item"> 15,19,20,24,25,26,28,9,10,29,34,58,39,61,40,42,44,45,47,48,49,50, </key>\r
-<key name="iteration"> 10,44, </key>\r
-<key name="iterativ"> 44, </key>\r
-<key name="join"> 43, </key>\r
-<key name="just"> 58,38, </key>\r
-<key name="k"> 17, </key>\r
-<key name="keep"> 10,44,45, </key>\r
-<key name="key"> 58, </key>\r
-<key name="know"> 58, </key>\r
-<key name="ko"> 57, </key>\r
-<key name="l"> 52, </key>\r
-<key name="laplacian"> 44, </key>\r
-<key name="largest"> 18, </key>\r
-<key name="last"> 17,42, </key>\r
-<key name="lastnodeid"> 57, </key>\r
-<key name="lay"> 9,58,61, </key>\r
-<key name="lcc"> 5,6,55,60,65, </key>\r
-<key name="learn"> 0,51, </key>\r
-<key name="least"> 58,44, </key>\r
-<key name="leav"> 21,7, </key>\r
-<key name="left"> 10,58, </key>\r
-<key name="legth"> 60, </key>\r
-<key name="len"> 55,60, </key>\r
-<key name="length"> 11,14,17,18,5,6,30,56,31,36,60,42,63,52, </key>\r
-<key name="lengthfromedg"> 6, </key>\r
-<key name="les"> 62,42,44, </key>\r
-<key name="let"> 10, </key>\r
-<key name="level"> 11,15, </key>\r
-<key name="libnetgenengin"> 6, </key>\r
-<key name="library"> 23,62, </key>\r
-<key name="libstdmeshersengin"> 5,6,55,60,65, </key>\r
-<key name="lik"> 15,1,21,27,42, </key>\r
-<key name="limit"> 58,42,44, </key>\r
-<key name="lin"> 12,17,9,58,61,43, </key>\r
-<key name="link"> 42, </key>\r
-<key name="list"> 15,19,23,24,7,10,62,48, </key>\r
-<key name="lk"> 17, </key>\r
-<key name="ll"> 21, </key>\r
-<key name="load"> 58,62, </key>\r
-<key name="local"> 5,22,6,30,57,36,63, </key>\r
-<key name="locallength"> 6, </key>\r
-<key name="locat"> 58,42, </key>\r
-<key name="location"> 17,26,29,44, </key>\r
-<key name="longest"> 18, </key>\r
-<key name="look"> 27,58,62, </key>\r
-<key name="low"> 12, </key>\r
-<key name="ly"> 58, </key>\r
-<key name="main"> 19,24,7,10,36,58,62,48,50, </key>\r
-<key name="makearc"> 6,57, </key>\r
-<key name="makebox"> 5,6,55,60,63,65, </key>\r
-<key name="makecirclethreepnt"> 57, </key>\r
-<key name="makecompound"> 5,6,60,63, </key>\r
-<key name="makecylinderrh"> 6, </key>\r
-<key name="makeedg"> 5,6, </key>\r
-<key name="makefac"> 6,57, </key>\r
-<key name="makehexa"> 5,6, </key>\r
-<key name="makequad"> 5,6, </key>\r
-<key name="makesketch"> 6, </key>\r
-<key name="makevector"> 6,57, </key>\r
-<key name="makevertex"> 5,6,57, </key>\r
-<key name="makewir"> 6,57, </key>\r
-<key name="manag"> 11,15, </key>\r
-<key name="manual"> 23,58, </key>\r
-<key name="map"> 58, </key>\r
-<key name="mas"> 10, </key>\r
-<key name="math"> 57,63, </key>\r
-<key name="max"> 11,30,32,33,44, </key>\r
-<key name="maxelementarea"> 5,6,55,57,60,65, </key>\r
-<key name="maxelementarea_500"> 5,55, </key>\r
-<key name="maxelementarea_800"> 6, </key>\r
-<key name="maxelementvolum"> 5,6,55, </key>\r
-<key name="maxelementvolume_500"> 5,55, </key>\r
-<key name="maxelementvolume_900"> 6, </key>\r
-<key name="maximum"> 17,6,32,33,43,44, </key>\r
-<key name="mean"> 12, </key>\r
-<key name="meaningful"> 12, </key>\r
-<key name="measur"> 52, </key>\r
-<key name="meet"> 24,48, </key>\r
-<key name="mefisto_2d"> 5,6,60,65, </key>\r
-<key name="mefisto2d"> 5,6, </key>\r
-<key name="menu"> 0,15,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,34,36,58,38,39,61,40,41,62,42,44,45,47,48,49,50,51, </key>\r
-<key name="merg"> 34,42,63, </key>\r
-<key name="mergenod"> 63, </key>\r
-<key name="mesh"> 11,12,13,14,0,15,16,17,18,1,2,3,19,4,20,21,5,22,23,24,6,7,25,26,27,28,9,10,53,54,55,29,30,32,31,34,35,57,33,36,58,59,60,37,38,39,61,40,41,62,42,43,44,45,46,63,47,48,49,50,51,65,52, </key>\r
-<key name="mesh_1"> 21, </key>\r
-<key name="mesh_borders_at_multi"> 60, </key>\r
-<key name="mesh_freebord"> 60, </key>\r
-<key name="meshbox"> 5,6,55, </key>\r
-<key name="meshm"> 5, </key>\r
-<key name="method"> 44, </key>\r
-<key name="minimum"> 14,24,30,35,60,42,48, </key>\r
-<key name="mirror"> 63, </key>\r
-<key name="mirrorobject"> 63, </key>\r
-<key name="mod"> 0,59, </key>\r
-<key name="model"> 12,30, </key>\r
-<key name="modification"> 12,15,19,24,25,26,28,9,10,30,34,58,38,39,61,40,42,44,45,47,48,49, </key>\r
-<key name="modify"> 19,24,28,57,48, </key>\r
-<key name="modul"> 12,13,30,41, </key>\r
-<key name="mous"> 23, </key>\r
-<key name="mov"> 26,30,57, </key>\r
-<key name="movenod"> 57, </key>\r
-<key name="mport"> 63, </key>\r
-<key name="multi"> 14,2,3,30,60, </key>\r
-<key name="multiconnection"> 60, </key>\r
-<key name="multipli"> 18, </key>\r
-<key name="must"> 21,10,58,62,42, </key>\r
-<key name="mystudy"> 5,60,65, </key>\r
-<key name="mystudyid"> 5,6,55,60, </key>\r
-<key name="n"> 58,42, </key>\r
-<key name="nam"> 21,5,23,28,55,29,62,50,65, </key>\r
-<key name="nb"> 55,60, </key>\r
-<key name="nbedg"> 65, </key>\r
-<key name="nbfac"> 65, </key>\r
-<key name="nbhexa"> 65, </key>\r
-<key name="nbnod"> 57,65, </key>\r
-<key name="nbpolygon"> 65, </key>\r
-<key name="nbpolyhedron"> 65, </key>\r
-<key name="nbprism"> 65, </key>\r
-<key name="nbpyramid"> 65, </key>\r
-<key name="nbquadrangl"> 65, </key>\r
-<key name="nbtetra"> 65, </key>\r
-<key name="nbtriangl"> 65, </key>\r
-<key name="nbvolum"> 65, </key>\r
-<key name="ne"> 21, </key>\r
-<key name="necessary"> 15, </key>\r
-<key name="need"> 1, </key>\r
-<key name="neighbor"> 25,49, </key>\r
-<key name="netgen"> 13, </key>\r
-<key name="netgen_3d"> 6, </key>\r
-<key name="netgen3d"> 6, </key>\r
-<key name="netgenplugin"> 6, </key>\r
-<key name="new"> 4,21,22,23,26,58,37,62,50, </key>\r
-<key name="next"> 0,17,58, </key>\r
-<key name="nod"> 12,0,15,16,17,18,19,20,23,26,27,9,30,34,57,58,59,38,39,61,62,42,43,44,46,63,51,65,52, </key>\r
-<key name="nodal"> 58,44, </key>\r
-<key name="non"> 21, </key>\r
-<key name="normal"> 45,52, </key>\r
-<key name="not"> 15,21,7,44, </key>\r
-<key name="notic"> 12, </key>\r
-<key name="now"> 4,21,10, </key>\r
-<key name="numb"> 11,12,17,5,6,9,30,57,58,61,42,44,63,51,65, </key>\r
-<key name="number"> 0,27, </key>\r
-<key name="numberofsegment"> 5,6,55,57,60,63,65, </key>\r
-<key name="numberofsegments_10"> 5,6,55, </key>\r
-<key name="numerical"> 11, </key>\r
-<key name="obey"> 42, </key>\r
-<key name="object"> 11,13,0,15,17,4,20,21,22,23,24,6,7,28,29,32,57,33,58,59,37,38,39,40,47,48,51, </key>\r
-<key name="objecttoid"> 5,6,55,60, </key>\r
-<key name="objet"> 23, </key>\r
-<key name="obliqu"> 10, </key>\r
-<key name="obtain"> 15,21, </key>\r
-<key name="ok"> 15,19,4,24,7,25,26,28,9,10,29,57,38,39,61,42,44,48,49,50, </key>\r
-<key name="on"> 12,17,21,22,24,7,25,9,53,54,36,58,60,37,38,61,62,42,44,45,47,48,50,65, </key>\r
-<key name="onc"> 48, </key>\r
-<key name="onto"> 36,58, </key>\r
-<key name="opaqu"> 64, </key>\r
-<key name="operat"> 11, </key>\r
-<key name="operation"> 13,0,15,16,17,18,1,2,3,19,22,23,24,7,25,26,28,9,10,53,54,29,30,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52, </key>\r
-<key name="opposit"> 11,4,5,24,6,36,42,43,63, </key>\r
-<key name="option"> 12,45,47, </key>\r
-<key name="optional"> 21,10, </key>\r
-<key name="ord"> 12,19,58, </key>\r
-<key name="orientation"> 19,4,24,48, </key>\r
-<key name="origin"> 52, </key>\r
-<key name="other"> 48, </key>\r
-<key name="otherwis"> 21, </key>\r
-<key name="our"> 21, </key>\r
-<key name="outlin"> 54, </key>\r
-<key name="outsid"> 58, </key>\r
-<key name="own"> 12, </key>\r
-<key name="pag"> 23, </key>\r
-<key name="pair"> 17, </key>\r
-<key name="paramet"> 12,17,62,42, </key>\r
-<key name="parameter"> 11,0,4,10,40,42, </key>\r
-<key name="parametric"> 12,58, </key>\r
-<key name="part"> 42,44, </key>\r
-<key name="particularity"> 12, </key>\r
-<key name="path"> 10,57,62, </key>\r
-<key name="pattern"> 58, </key>\r
-<key name="pattern_nam"> 58, </key>\r
-<key name="pentahedron"> 1, </key>\r
-<key name="perfect"> 18, </key>\r
-<key name="perform"> 30,39,42,45,50, </key>\r
-<key name="pi"> 57,63, </key>\r
-<key name="pictur"> 2,23,10,53,54, </key>\r
-<key name="plac"> 42, </key>\r
-<key name="plan"> 4,55,60,45,52, </key>\r
-<key name="planar"> 52, </key>\r
-<key name="platform"> 23,41, </key>\r
-<key name="pleas"> 7, </key>\r
-<key name="plu"> 9,61, </key>\r
-<key name="point"> 12,17,6,10,57,58,61,40,42,45,63,47,52, </key>\r
-<key name="point111"> 5,6, </key>\r
-<key name="point112"> 5,6, </key>\r
-<key name="point121"> 5,6, </key>\r
-<key name="point122"> 5,6, </key>\r
-<key name="point211"> 5,6, </key>\r
-<key name="point212"> 5,6, </key>\r
-<key name="point221"> 5,6, </key>\r
-<key name="point222"> 5,6, </key>\r
-<key name="pointstruct"> 57,63, </key>\r
-<key name="polygon"> 15,65, </key>\r
-<key name="polyhedral"> 15, </key>\r
-<key name="polyhedron"> 15,65, </key>\r
-<key name="pop"> 0,7,27, </key>\r
-<key name="position"> 12,58, </key>\r
-<key name="posses"> 36, </key>\r
-<key name="possibility"> 62, </key>\r
-<key name="possibl"> 11,1,23,58, </key>\r
-<key name="powerful"> 62, </key>\r
-<key name="precision"> 15, </key>\r
-<key name="preferenc"> 59, </key>\r
-<key name="prefix"> 62, </key>\r
-<key name="pres"> 15,10,38,44, </key>\r
-<key name="present"> 12,50, </key>\r
-<key name="presentation"> 14,0, </key>\r
-<key name="preserv"> 58, </key>\r
-<key name="preset"> 11, </key>\r
-<key name="preview"> 15,4,24,58,62, </key>\r
-<key name="previou"> 17,48, </key>\r
-<key name="previous"> 22,23,30,58, </key>\r
-<key name="principl"> 10, </key>\r
-<key name="print"> 5,6,55,57,60,65, </key>\r
-<key name="prism"> 65, </key>\r
-<key name="problem"> 5,6,55, </key>\r
-<key name="proce"> 21,7, </key>\r
-<key name="procedur"> 18,44, </key>\r
-<key name="proceed"> 37, </key>\r
-<key name="proces"> 44, </key>\r
-<key name="produc"> 12,9,61,44, </key>\r
-<key name="product"> 52, </key>\r
-<key name="program"> 17,21, </key>\r
-<key name="progression"> 17, </key>\r
-<key name="project"> 58, </key>\r
-<key name="projection"> 58,52, </key>\r
-<key name="propagat"> 5,6,36,63, </key>\r
-<key name="propagatea"> 6, </key>\r
-<key name="propagation"> 11,5,6,36,63,65, </key>\r
-<key name="provid"> 15, </key>\r
-<key name="pseudo"> 25, </key>\r
-<key name="pul"> 44, </key>\r
-<key name="px"> 6,57, </key>\r
-<key name="px1"> 57, </key>\r
-<key name="py"> 6,57, </key>\r
-<key name="py1"> 57, </key>\r
-<key name="pyramid"> 65, </key>\r
-<key name="pyramidal"> 13, </key>\r
-<key name="python"> 51, </key>\r
-<key name="pz"> 6,57, </key>\r
-<key name="pz1"> 57, </key>\r
-<key name="qi"> 1, </key>\r
-<key name="qk"> 1, </key>\r
-<key name="quad"> 57,52, </key>\r
-<key name="quad2d"> 6,55, </key>\r
-<key name="quadrangl"> 12,13,15,16,18,1,5,24,6,25,9,32,31,35,57,61,43,63,65, </key>\r
-<key name="quadrangle_2d"> 6,55, </key>\r
-<key name="quadrangular"> 13,5,6,36,63, </key>\r
-<key name="quadtotri"> 57, </key>\r
-<key name="quality"> 14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52, </key>\r
-<key name="quantity"> 11, </key>\r
-<key name="radio"> 19,23,24,40,42,45,48, </key>\r
-<key name="rang"> 55,60, </key>\r
-<key name="ratio"> 14,18,1,30,60,44,46,52, </key>\r
-<key name="ready"> 21, </key>\r
+<key name="etc"> 15,2,25,49, </key>\r
+<key name="even"> 22,33, </key>\r
+<key name="eventual"> 61, </key>\r
+<key name="every"> 54, </key>\r
+<key name="everyth"> 22, </key>\r
+<key name="exampl"> 13,2,22,24,61,51, </key>\r
+<key name="exce"> 18, </key>\r
+<key name="exceed"> 45, </key>\r
+<key name="except"> 43,53, </key>\r
+<key name="exist"> 12,20,24,25,29,61,65,49, </key>\r
+<key name="existenc"> 22, </key>\r
+<key name="exponent"> 18, </key>\r
+<key name="export"> 0,6,30,31,53, </key>\r
+<key name="exportation"> 30, </key>\r
+<key name="exportm"> 6, </key>\r
+<key name="extend"> 53,54, </key>\r
+<key name="extreme"> 18, </key>\r
+<key name="extremiti"> 5, </key>\r
+<key name="extrud"> 10,11,60,64, </key>\r
+<key name="extrusion"> 10,11,60,66, </key>\r
+<key name="extrusionalongpathobject"> 60,66, </key>\r
+<key name="extrusionsweepobject"> 60, </key>\r
+<key name="f"> 18,7, </key>\r
+<key name="fac"> 12,13,14,0,16,18,2,3,21,22,6,23,24,7,9,55,57,31,33,60,37,61,63,65,43,66,52,68,54, </key>\r
+<key name="face_1"> 60, </key>\r
+<key name="face_2"> 60, </key>\r
+<key name="face1"> 7,60,66, </key>\r
+<key name="facelist"> 63, </key>\r
+<key name="facesrotat"> 60, </key>\r
+<key name="facessmooth"> 60, </key>\r
+<key name="facestritoquad"> 60, </key>\r
+<key name="facex11"> 6,7, </key>\r
+<key name="facex21"> 6,7, </key>\r
+<key name="facey111"> 6,7, </key>\r
+<key name="facey121"> 6,7, </key>\r
+<key name="facez11"> 6,7, </key>\r
+<key name="facez12"> 6,7, </key>\r
+<key name="factor"> 18,25, </key>\r
+<key name="factoryserv"> 6,7,57,60,63,68, </key>\r
+<key name="fail"> 60, </key>\r
+<key name="far"> 43, </key>\r
+<key name="fashion"> 11, </key>\r
+<key name="fast"> 45, </key>\r
+<key name="featur"> 24, </key>\r
+<key name="field"> 16,1,20,24,26,27,40,65,43,45,49,50, </key>\r
+<key name="fifth"> 43, </key>\r
+<key name="fil"> 30,61,65, </key>\r
+<key name="fill"> 63,40,43, </key>\r
+<key name="filt"> 20,24,25,65,49, </key>\r
+<key name="filter"> 24,65, </key>\r
+<key name="fin"> 18, </key>\r
+<key name="find"> 30,61,43, </key>\r
+<key name="findcoincidentnod"> 66, </key>\r
+<key name="findorloadcomponent"> 6,7,57,60,63,68, </key>\r
+<key name="finenes"> 18, </key>\r
+<key name="first"> 1,18,22,57,60,37,61,43, </key>\r
+<key name="fit"> 53, </key>\r
+<key name="fiv"> 60, </key>\r
+<key name="fix"> 13,6,7,45,66, </key>\r
+<key name="flag"> 61, </key>\r
+<key name="fold"> 22,23, </key>\r
+<key name="follow"> 12,13,14,16,1,2,20,22,23,24,25,26,27,28,29,10,11,35,61,39,40,64,41,43,45,46,48,49,50,51,52, </key>\r
+<key name="font"> 53, </key>\r
+<key name="form"> 1,26,29,61,43, </key>\r
+<key name="format"> 0,30,31,53, </key>\r
+<key name="formula"> 18,19,2, </key>\r
+<key name="four"> 13,19,54, </key>\r
+<key name="fourth"> 60, </key>\r
+<key name="fram"> 53, </key>\r
+<key name="fre"> 13,15,55,56,31,63,43,45,66, </key>\r
+<key name="function"> 13, </key>\r
+<key name="functionaliti"> 53, </key>\r
+<key name="functionality"> 22,30,59,35,43,53, </key>\r
+<key name="futur"> 18, </key>\r
+<key name="g"> 23, </key>\r
+<key name="gaus"> 53, </key>\r
+<key name="generat"> 12,13,15,18,22,31,37,61, </key>\r
+<key name="generation"> 10,61,64, </key>\r
+<key name="geom"> 13,7,31,60, </key>\r
+<key name="geometric"> 13,15,7, </key>\r
+<key name="geometrical"> 12,13,14,18,22,23,24,31,33,34,61,38,41,45,46,48,52, </key>\r
+<key name="geometry"> 23,24,57,60,45, </key>\r
+<key name="geompy"> 6,7,57,60,63,66,68, </key>\r
+<key name="get"> 0,5,22,7,11,61,52, </key>\r
+<key name="getalgorithm"> 60, </key>\r
+<key name="getborder"> 63, </key>\r
+<key name="getelementsid"> 57,63, </key>\r
+<key name="geterrorcod"> 60, </key>\r
+<key name="getid"> 6, </key>\r
+<key name="getlistofid"> 57, </key>\r
+<key name="getmaxelementarea"> 6,7, </key>\r
+<key name="getmaxelementvolum"> 6,7, </key>\r
+<key name="getmesh"> 60,66, </key>\r
+<key name="getmesheditor"> 60,63,66, </key>\r
+<key name="getnam"> 6,7, </key>\r
+<key name="getnumberofsegment"> 6,7, </key>\r
+<key name="getpattern"> 60, </key>\r
+<key name="gg"> 7, </key>\r
+<key name="giv"> 65,52, </key>\r
+<key name="given"> 18,33,43, </key>\r
+<key name="global"> 53, </key>\r
+<key name="go"> 60, </key>\r
+<key name="good"> 45, </key>\r
+<key name="got"> 61, </key>\r
+<key name="graduat"> 53, </key>\r
+<key name="graphical"> 0, </key>\r
+<key name="great"> 18,53, </key>\r
+<key name="greatest"> 19,2, </key>\r
+<key name="green"> 24, </key>\r
+<key name="group"> 20,21,24,25,8,29,11,57,31,35,60,63,65,45,48,49,51,52, </key>\r
+<key name="group1"> 51, </key>\r
+<key name="group12"> 51, </key>\r
+<key name="group12a"> 51, </key>\r
+<key name="group12b"> 51, </key>\r
+<key name="group2"> 51, </key>\r
+<key name="grouprotat"> 60, </key>\r
+<key name="groupsmooth"> 60, </key>\r
+<key name="groupsofnod"> 66, </key>\r
+<key name="grouptritoquad"> 60, </key>\r
+<key name="h"> 54, </key>\r
+<key name="half"> 19,54, </key>\r
+<key name="halv"> 5, </key>\r
+<key name="hav"> 19,33,37,61, </key>\r
+<key name="hedron"> 60, </key>\r
+<key name="height"> 54, </key>\r
+<key name="helical"> 11, </key>\r
+<key name="help"> 15, </key>\r
+<key name="henc"> 61, </key>\r
+<key name="her"> 61, </key>\r
+<key name="hexa"> 6,7, </key>\r
+<key name="hexa_3d"> 7, </key>\r
+<key name="hexa3d"> 7, </key>\r
+<key name="hexagon"> 11, </key>\r
+<key name="hexahedral"> 14,6,7, </key>\r
+<key name="hexahedralization"> 22, </key>\r
+<key name="hexahedrical"> 6,7, </key>\r
+<key name="hexahedron"> 13,14,16,2,7,60,34,68, </key>\r
+<key name="hh"> 60, </key>\r
+<key name="hid"> 0,53, </key>\r
+<key name="high"> 13, </key>\r
+<key name="highlight"> 3,4,20,24,25,55,56,49, </key>\r
+<key name="hmax"> 19, </key>\r
+<key name="hol"> 56, </key>\r
+<key name="hold"> 61, </key>\r
+<key name="how"> 11,38, </key>\r
+<key name="hyp"> 23, </key>\r
+<key name="hyp1"> 6,63,68, </key>\r
+<key name="hyp2"> 6,63,68, </key>\r
+<key name="hyp3"> 6,68, </key>\r
+<key name="hyp4"> 6,68, </key>\r
+<key name="hyparea"> 6,7, </key>\r
+<key name="hypnbseg"> 6,7,57, </key>\r
+<key name="hypothes"> 12,0,18,22,23,7,57,31,33,37,38, </key>\r
+<key name="hypothesi"> 12,18,22,6,7,57,33,34,37,38,66,68, </key>\r
+<key name="hypvolum"> 6,7, </key>\r
+<key name="i"> 19,22,25,57,60,61,63,43,49, </key>\r
+<key name="icon"> 29,39,42, </key>\r
+<key name="id"> 0,18,20,24,25,26,27,28,10,11,64,43,45,49,50, </key>\r
+<key name="id_arc"> 7, </key>\r
+<key name="id_circl"> 60,66, </key>\r
+<key name="id_fac"> 7, </key>\r
+<key name="id_face1"> 7,60,66, </key>\r
+<key name="idbox"> 6,7,57,63,68, </key>\r
+<key name="idcomp"> 66, </key>\r
+<key name="idea"> 11, </key>\r
+<key name="idedg"> 6,68, </key>\r
+<key name="idfac"> 57, </key>\r
+<key name="idtoobject"> 6,63,66,68, </key>\r
+<key name="if"> 13,16,5,22,6,23,7,10,11,57,33,60,37,61,38,39,64,65,43,45,49,53, </key>\r
+<key name="ii"> 60, </key>\r
+<key name="imag"> 0,11,53, </key>\r
+<key name="imp"> 13, </key>\r
+<key name="import"> 6,7,57,30,31,60,63,66,68, </key>\r
+<key name="importation"> 30, </key>\r
+<key name="importcomponentgui"> 6,7,63, </key>\r
+<key name="includ"> 13,52, </key>\r
+<key name="increas"> 6,7,66, </key>\r
+<key name="index"> 24,61, </key>\r
+<key name="indic"> 61, </key>\r
+<key name="indicat"> 54, </key>\r
+<key name="info"> 0,52,68, </key>\r
+<key name="information"> 13,0,29,52,68, </key>\r
+<key name="init"> 6,7,63, </key>\r
+<key name="init_geom"> 60, </key>\r
+<key name="initial"> 11,65,46,51, </key>\r
+<key name="initializ"> 6,7,57, </key>\r
+<key name="input"> 1,18, </key>\r
+<key name="inscrib"> 19, </key>\r
+<key name="insert"> 65,43, </key>\r
+<key name="instead"> 37,61, </key>\r
+<key name="intact"> 8, </key>\r
+<key name="integ"> 24, </key>\r
+<key name="intend"> 43, </key>\r
+<key name="interest"> 13, </key>\r
+<key name="intermediat"> 43, </key>\r
+<key name="internal"> 61, </key>\r
+<key name="intersect"> 61,51, </key>\r
+<key name="intersectgroup"> 57, </key>\r
+<key name="intersection"> 57,61,51, </key>\r
+<key name="introduc"> 12,24,37, </key>\r
+<key name="introduction"> 31, </key>\r
+<key name="invers"> 13,26,60, </key>\r
+<key name="inversediag"> 60, </key>\r
+<key name="inversion"> 26,60, </key>\r
+<key name="invisibl"> 67, </key>\r
+<key name="isdon"> 60, </key>\r
+<key name="iso"> 61, </key>\r
+<key name="isolin"> 61, </key>\r
+<key name="isometric"> 53, </key>\r
+<key name="isplanarfac"> 7,60,66, </key>\r
+<key name="item"> 16,1,20,21,25,26,27,29,10,11,30,35,61,40,64,41,43,45,46,48,49,50,51, </key>\r
+<key name="iteration"> 11,45, </key>\r
+<key name="iterativ"> 45, </key>\r
+<key name="join"> 44, </key>\r
+<key name="jpeg"> 0,53, </key>\r
+<key name="jpg"> 0,53, </key>\r
+<key name="just"> 1,61,39, </key>\r
+<key name="k"> 18,19, </key>\r
+<key name="keep"> 11,45,46, </key>\r
+<key name="key"> 61, </key>\r
+<key name="keyboard"> 25, </key>\r
+<key name="know"> 61, </key>\r
+<key name="ko"> 60, </key>\r
+<key name="l"> 54, </key>\r
+<key name="label"> 53, </key>\r
+<key name="laplacian"> 45, </key>\r
+<key name="last"> 1,18,37,43, </key>\r
+<key name="lastnodeid"> 60, </key>\r
+<key name="lay"> 10,61,64, </key>\r
+<key name="lcc"> 6,7,57,60,63,68, </key>\r
+<key name="learn"> 52, </key>\r
+<key name="least"> 61,45, </key>\r
+<key name="leav"> 22,8, </key>\r
+<key name="left"> 0,11,61,53, </key>\r
+<key name="legth"> 63, </key>\r
+<key name="len"> 57,63, </key>\r
+<key name="length"> 12,15,18,19,6,7,31,58,33,32,63,43,66,53,54, </key>\r
+<key name="lengthfromedg"> 7,60,66, </key>\r
+<key name="les"> 65,43,45, </key>\r
+<key name="let"> 11, </key>\r
+<key name="level"> 12,16, </key>\r
+<key name="libnetgenengin"> 7, </key>\r
+<key name="library"> 24,65, </key>\r
+<key name="libstdmeshersengin"> 6,7,57,60,63,68, </key>\r
+<key name="lik"> 16,2,28,43, </key>\r
+<key name="limit"> 61,43,45, </key>\r
+<key name="lin"> 13,1,18,10,37,61,64,44, </key>\r
+<key name="link"> 43, </key>\r
+<key name="list"> 0,16,20,24,25,8,11,65,49, </key>\r
+<key name="lk"> 18, </key>\r
+<key name="ll"> 53, </key>\r
+<key name="load"> 61,65, </key>\r
+<key name="loadfromfac"> 60, </key>\r
+<key name="local"> 6,23,7,31,37,66, </key>\r
+<key name="locallength"> 7, </key>\r
+<key name="locat"> 61,43, </key>\r
+<key name="location"> 18,27,30,45, </key>\r
+<key name="lock"> 25,45,53, </key>\r
+<key name="longest"> 19, </key>\r
+<key name="look"> 28,61,65, </key>\r
+<key name="low"> 13,18, </key>\r
+<key name="ly"> 61, </key>\r
+<key name="main"> 20,25,8,11,37,61,65,49,51, </key>\r
+<key name="makearc"> 7,60,66, </key>\r
+<key name="makebox"> 6,7,57,63,66,68, </key>\r
+<key name="makeboxdxdydz"> 60, </key>\r
+<key name="makecirclethreepnt"> 60,66, </key>\r
+<key name="makecompound"> 6,7,63,66, </key>\r
+<key name="makecylinderrh"> 7,60, </key>\r
+<key name="makeedg"> 6,7, </key>\r
+<key name="makefac"> 7,60,66, </key>\r
+<key name="makehexa"> 6,7, </key>\r
+<key name="makemesh"> 60, </key>\r
+<key name="makepolygon"> 60, </key>\r
+<key name="makequad"> 6,7, </key>\r
+<key name="makesketch"> 7, </key>\r
+<key name="makevector"> 7,60,66, </key>\r
+<key name="makevertex"> 6,7,60,66, </key>\r
+<key name="makewir"> 7,60,66, </key>\r
+<key name="manag"> 12,16, </key>\r
+<key name="manual"> 24,61, </key>\r
+<key name="map"> 33,60,61, </key>\r
+<key name="mark"> 53, </key>\r
+<key name="mas"> 11, </key>\r
+<key name="math"> 60,66, </key>\r
+<key name="max"> 12,7,31,33,34,45, </key>\r
+<key name="max_element_area"> 60, </key>\r
+<key name="maxelementarea"> 6,7,60,63,68, </key>\r
+<key name="maxelementarea_500"> 6, </key>\r
+<key name="maxelementarea_800"> 7, </key>\r
+<key name="maxelementvolum"> 6,7, </key>\r
+<key name="maxelementvolume_500"> 6, </key>\r
+<key name="maxelementvolume_900"> 7, </key>\r
+<key name="maximum"> 18,7,33,34,44,45,52, </key>\r
+<key name="mean"> 13, </key>\r
+<key name="meaningful"> 13, </key>\r
+<key name="measur"> 54, </key>\r
+<key name="meet"> 25,49, </key>\r
+<key name="mefisto_2d"> 6,7,63,68, </key>\r
+<key name="mefisto2d"> 6,7, </key>\r
+<key name="menu"> 16,1,18,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,35,37,61,39,40,64,41,42,65,43,45,46,48,49,50,51,52, </key>\r
+<key name="merg"> 59,35,43,66, </key>\r
+<key name="mergeequalelement"> 66, </key>\r
+<key name="mergenod"> 66, </key>\r
+<key name="mesh"> 12,13,14,15,0,16,1,17,18,19,2,3,4,20,5,21,22,6,23,24,25,7,8,26,27,28,29,10,11,55,56,57,30,31,33,32,59,35,36,60,34,37,61,62,63,38,39,40,64,41,42,65,43,44,45,46,47,66,48,49,50,51,52,68,69,53,54, </key>\r
+<key name="mesh_1"> 22,60, </key>\r
+<key name="mesh_2"> 60, </key>\r
+<key name="mesh_borders_at_multi"> 63, </key>\r
+<key name="mesh_freebord"> 63, </key>\r
+<key name="meshbox"> 6,7, </key>\r
+<key name="mesheditor"> 60, </key>\r
+<key name="meshm"> 6, </key>\r
+<key name="method"> 60,45, </key>\r
+<key name="middl"> 1,37, </key>\r
+<key name="minimum"> 15,18,25,31,36,63,43,49, </key>\r
+<key name="mirror"> 66, </key>\r
+<key name="mirrorobject"> 66, </key>\r
+<key name="mod"> 0,18,62, </key>\r
+<key name="model"> 13,31, </key>\r
+<key name="modification"> 13,16,1,20,25,26,27,29,10,11,31,35,61,39,40,64,41,43,45,46,48,49,50, </key>\r
+<key name="modify"> 20,25,29,60,49, </key>\r
+<key name="modul"> 13,14,1,18,24,31,60,42,53, </key>\r
+<key name="mous"> 0,24,53, </key>\r
+<key name="mov"> 27,60, </key>\r
+<key name="movenod"> 60, </key>\r
+<key name="multi"> 15,3,4,31,63, </key>\r
+<key name="multiconnection"> 63, </key>\r
+<key name="must"> 22,11,61,65,43, </key>\r
+<key name="myelemid"> 63, </key>\r
+<key name="mypnt1"> 63, </key>\r
+<key name="mypnt2"> 63, </key>\r
+<key name="mystudy"> 6,60,63,68, </key>\r
+<key name="mystudyid"> 6,7,63, </key>\r
+<key name="n"> 61,43, </key>\r
+<key name="nam"> 22,6,23,24,29,57,30,65,51,68,53, </key>\r
+<key name="nb"> 57,63, </key>\r
+<key name="nb_segments_1"> 60, </key>\r
+<key name="nb_vert"> 60, </key>\r
+<key name="nbedg"> 66,68, </key>\r
+<key name="nbfac"> 68, </key>\r
+<key name="nbhexa"> 68, </key>\r
+<key name="nbnod"> 60,66,68, </key>\r
+<key name="nbpolygon"> 68, </key>\r
+<key name="nbpolyhedron"> 68, </key>\r
+<key name="nbprism"> 68, </key>\r
+<key name="nbpyramid"> 68, </key>\r
+<key name="nbquadrangl"> 66,68, </key>\r
+<key name="nbtetra"> 68, </key>\r
+<key name="nbtriangl"> 66,68, </key>\r
+<key name="nbvolum"> 66,68, </key>\r
+<key name="ne"> 22, </key>\r
+<key name="necessary"> 16, </key>\r
+<key name="negativ"> 18, </key>\r
+<key name="neighbor"> 26,50, </key>\r
+<key name="netgen"> 14, </key>\r
+<key name="netgen_3d"> 7, </key>\r
+<key name="netgen3d"> 7, </key>\r
+<key name="netgenplugin"> 7, </key>\r
+<key name="new"> 0,5,22,23,24,27,61,38,65,51, </key>\r
+<key name="next"> 18,61, </key>\r
+<key name="nod"> 13,0,16,1,17,18,19,20,21,24,27,28,10,31,33,35,60,61,62,63,39,40,64,65,43,44,45,47,66,52,68,54, </key>\r
+<key name="nodal"> 61,45, </key>\r
+<key name="node_id"> 60, </key>\r
+<key name="node_start_id"> 60, </key>\r
+<key name="non"> 22, </key>\r
+<key name="normal"> 46,54, </key>\r
+<key name="normalisation"> 19, </key>\r
+<key name="not"> 16,19,22,24,8, </key>\r
+<key name="noth"> 24, </key>\r
+<key name="notic"> 13, </key>\r
+<key name="now"> 5,22,11,60, </key>\r
+<key name="numb"> 12,13,1,18,6,24,7,10,31,33,61,64,43,45,66,52,68,53, </key>\r
+<key name="number"> 0,1,28, </key>\r
+<key name="numberofsegment"> 6,7,57,60,63,66,68, </key>\r
+<key name="numberofsegments_10"> 6, </key>\r
+<key name="numberofsegments_7"> 7, </key>\r
+<key name="numeric"> 25, </key>\r
+<key name="numerical"> 12, </key>\r
+<key name="obey"> 43, </key>\r
+<key name="object"> 12,14,0,16,1,18,5,21,22,23,24,25,7,8,29,30,33,60,34,61,62,38,39,40,41,48,49,52,69,53, </key>\r
+<key name="objecttoid"> 6,7,63, </key>\r
+<key name="objet"> 24, </key>\r
+<key name="obliqu"> 11, </key>\r
+<key name="obtain"> 16, </key>\r
+<key name="offset"> 53, </key>\r
+<key name="ok"> 16,1,20,5,25,8,26,27,29,10,11,30,60,39,40,64,43,45,49,50,51, </key>\r
+<key name="on"> 13,1,18,22,23,25,8,26,10,55,56,59,37,61,63,38,39,64,65,43,45,46,48,49,51,68, </key>\r
+<key name="onc"> 49, </key>\r
+<key name="onto"> 37,61, </key>\r
+<key name="oo"> 19, </key>\r
+<key name="opaqu"> 67, </key>\r
+<key name="operat"> 12, </key>\r
+<key name="operation"> 14,16,17,18,19,2,3,4,20,23,24,25,8,26,27,29,10,11,55,56,30,31,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54, </key>\r
+<key name="opposit"> 12,5,6,25,7,33,37,43,44,66, </key>\r
+<key name="option"> 13,0,18,46,48, </key>\r
+<key name="optional"> 22,11, </key>\r
+<key name="ord"> 13,20,61, </key>\r
+<key name="ordinary"> 1,37, </key>\r
+<key name="orientat"> 53, </key>\r
+<key name="orientation"> 20,5,25,60,49, </key>\r
+<key name="origin"> 54, </key>\r
+<key name="other"> 49, </key>\r
+<key name="otherwis"> 22,33, </key>\r
+<key name="our"> 22, </key>\r
+<key name="out"> 53, </key>\r
+<key name="outlin"> 56, </key>\r
+<key name="outsid"> 61, </key>\r
+<key name="own"> 13, </key>\r
+<key name="pag"> 24,29, </key>\r
+<key name="pair"> 18, </key>\r
+<key name="pan"> 53, </key>\r
+<key name="paramet"> 13,18,2,65,43, </key>\r
+<key name="parameter"> 12,0,5,11,41,43,53, </key>\r
+<key name="parametric"> 13,61, </key>\r
+<key name="parent"> 23, </key>\r
+<key name="part"> 43,45,53, </key>\r
+<key name="particular"> 60, </key>\r
+<key name="particularity"> 13, </key>\r
+<key name="pas"> 60, </key>\r
+<key name="path"> 11,60,65,66, </key>\r
+<key name="pattern"> 60,61, </key>\r
+<key name="pattern_nam"> 61, </key>\r
+<key name="pentahedron"> 2, </key>\r
+<key name="perform"> 31,40,43,46,51, </key>\r
+<key name="perimet"> 19, </key>\r
+<key name="pi"> 60,66, </key>\r
+<key name="pictur"> 3,24,11,55,56,59, </key>\r
+<key name="plac"> 43,53, </key>\r
+<key name="plan"> 5,63,46,54, </key>\r
+<key name="planar"> 54, </key>\r
+<key name="platform"> 24,42, </key>\r
+<key name="pleas"> 8, </key>\r
+<key name="plot"> 18, </key>\r
+<key name="plu"> 10,64, </key>\r
+<key name="png"> 0,53, </key>\r
+<key name="point"> 13,1,18,7,11,60,37,61,64,41,43,46,66,48,53,54, </key>\r
+<key name="point111"> 6,7, </key>\r
+<key name="point112"> 6,7, </key>\r
+<key name="point121"> 6,7, </key>\r
+<key name="point122"> 6,7, </key>\r
+<key name="point211"> 6,7, </key>\r
+<key name="point212"> 6,7, </key>\r
+<key name="point221"> 6,7, </key>\r
+<key name="point222"> 6,7, </key>\r
+<key name="pointstruct"> 60,66, </key>\r
+<key name="polygon"> 16,60,68, </key>\r
+<key name="polygonal"> 60, </key>\r
+<key name="polyhedral"> 16,60, </key>\r
+<key name="polyhedron"> 16,60,68, </key>\r
+<key name="pop"> 8,28, </key>\r
+<key name="position"> 13,61,53, </key>\r
+<key name="posses"> 37, </key>\r
+<key name="possibility"> 65, </key>\r
+<key name="possibl"> 12,2,24,61, </key>\r
+<key name="post"> 53, </key>\r
+<key name="powerful"> 65, </key>\r
+<key name="precision"> 16, </key>\r
+<key name="preferenc"> 12,31,33,62, </key>\r
+<key name="prefix"> 65, </key>\r
+<key name="preproces"> 24, </key>\r
+<key name="pres"> 16,1,11,39,53, </key>\r
+<key name="present"> 13,0,51, </key>\r
+<key name="presentation"> 15,0,53, </key>\r
+<key name="preserv"> 61, </key>\r
+<key name="preset"> 12, </key>\r
+<key name="preview"> 16,5,25,61,65, </key>\r
+<key name="previou"> 18,49, </key>\r
+<key name="previous"> 23,24,31,61, </key>\r
+<key name="principl"> 11, </key>\r
+<key name="print"> 6,7,57,60,63,66,68, </key>\r
+<key name="prism"> 68, </key>\r
+<key name="pro"> 53, </key>\r
+<key name="problem"> 6,7,57, </key>\r
+<key name="proce"> 22,8, </key>\r
+<key name="procedur"> 45, </key>\r
+<key name="proceed"> 38, </key>\r
+<key name="proces"> 45, </key>\r
+<key name="produc"> 13,10,64,45, </key>\r
+<key name="product"> 54, </key>\r
+<key name="program"> 22, </key>\r
+<key name="progression"> 18, </key>\r
+<key name="project"> 61, </key>\r
+<key name="projection"> 61,54, </key>\r
+<key name="prompt"> 18, </key>\r
+<key name="propagat"> 6,7,37,66, </key>\r
+<key name="propagation"> 12,6,7,37,66,68, </key>\r
+<key name="properti"> 53, </key>\r
+<key name="provid"> 0,16,25, </key>\r
+<key name="pseudo"> 26, </key>\r
+<key name="pul"> 45, </key>\r
+<key name="px"> 7,60,66, </key>\r
+<key name="px1"> 60,66, </key>\r
+<key name="py"> 7,60,66, </key>\r
+<key name="py1"> 60,66, </key>\r
+<key name="pyramid"> 68, </key>\r
+<key name="pyramidal"> 14, </key>\r
+<key name="python"> 52, </key>\r
+<key name="pz"> 7,60,66, </key>\r
+<key name="pz1"> 60,66, </key>\r
+<key name="qi"> 2, </key>\r
+<key name="qk"> 19,2, </key>\r
+<key name="quad"> 60,54, </key>\r
+<key name="quad2d"> 7,57, </key>\r
+<key name="quadrangl"> 12,13,14,16,17,19,2,6,25,7,26,10,31,33,32,36,60,64,44,66,68, </key>\r
+<key name="quadrangle_2d"> 7,57, </key>\r
+<key name="quadrangular"> 14,6,7,33,37,66, </key>\r
+<key name="quadratic"> 12,1,37, </key>\r
+<key name="quadtotri"> 60, </key>\r
+<key name="quality"> 15,0,17,18,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54, </key>\r
+<key name="quantity"> 12, </key>\r
+<key name="r1"> 60, </key>\r
+<key name="radio"> 20,24,25,41,43,46,49, </key>\r
+<key name="radiu"> 19,60, </key>\r
+<key name="rang"> 18,24,57,60,63, </key>\r
+<key name="ratio"> 15,19,2,31,63,45,47,54, </key>\r
+<key name="ready"> 22, </key>\r
<key name="recent"> 0, </key>\r
-<key name="red"> 54, </key>\r
-<key name="reduc"> 44, </key>\r
-<key name="reevaluat"> 44, </key>\r
-<key name="refer"> 58, </key>\r
-<key name="referenc"> 12,14,21,22, </key>\r
-<key name="refin"> 11, </key>\r
-<key name="reflect"> 58,43, </key>\r
+<key name="red"> 56, </key>\r
+<key name="redefin"> 0,53, </key>\r
+<key name="reduc"> 45, </key>\r
+<key name="reevaluat"> 45, </key>\r
+<key name="refer"> 61, </key>\r
+<key name="referenc"> 13,15,22,23, </key>\r
+<key name="refin"> 12, </key>\r
+<key name="reflect"> 61,44,69, </key>\r
<key name="refresh"> 0, </key>\r
-<key name="regular_1d"> 5,6,55,60,65, </key>\r
-<key name="regular1d"> 5,6,55, </key>\r
-<key name="relat"> 41, </key>\r
-<key name="relation"> 12, </key>\r
-<key name="relationship"> 12, </key>\r
-<key name="remain"> 18, </key>\r
-<key name="remov"> 19,5,23,24,7,28,10,55,57,38,62,48,65, </key>\r
-<key name="removeelement"> 57,60, </key>\r
-<key name="removehypothesi"> 5,65, </key>\r
-<key name="removenod"> 57, </key>\r
-<key name="renumb"> 39, </key>\r
-<key name="renumber"> 57,39, </key>\r
-<key name="renumbernod"> 57, </key>\r
-<key name="reorient"> 19, </key>\r
-<key name="repeat"> 18, </key>\r
-<key name="replac"> 42, </key>\r
-<key name="represent"> 11,12,17,59,46, </key>\r
-<key name="representation"> 12, </key>\r
-<key name="requir"> 25,26,49, </key>\r
-<key name="resembl"> 1, </key>\r
-<key name="respect"> 10, </key>\r
-<key name="rest"> 58,42, </key>\r
-<key name="restrict"> 12, </key>\r
-<key name="result"> 11,15,10,55,60,44,50, </key>\r
-<key name="ret"> 5,6,55, </key>\r
-<key name="retain"> 18, </key>\r
-<key name="retriev"> 12, </key>\r
-<key name="return"> 56, </key>\r
-<key name="revers"> 58, </key>\r
-<key name="revert"> 19, </key>\r
-<key name="revolution"> 9,57,61, </key>\r
-<key name="revolv"> 61, </key>\r
-<key name="right"> 0,20,21,7,26,27,10,59, </key>\r
-<key name="rotat"> 9,10,57,61,40,63, </key>\r
-<key name="rotateobject"> 63, </key>\r
-<key name="rotation"> 4,10,61,40,63, </key>\r
-<key name="rotationsweepobject"> 57, </key>\r
-<key name="rough"> 11, </key>\r
-<key name="rul"> 17,36,42, </key>\r
-<key name="run"> 41, </key>\r
-<key name="s"> 18,10, </key>\r
-<key name="salom"> 5,23,6,55,30,57,60,41,63,65, </key>\r
-<key name="sam"> 12,17,1,21,6,10,36,37,62,42,50, </key>\r
-<key name="sampl"> 13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52, </key>\r
-<key name="sav"> 62, </key>\r
-<key name="scal"> 17, </key>\r
-<key name="scalar"> 14, </key>\r
-<key name="script"> 13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52, </key>\r
-<key name="se"> 13,0,15,16,17,18,1,2,3,4,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52, </key>\r
-<key name="seam"> 58, </key>\r
-<key name="search"> 29,62, </key>\r
-<key name="second"> 15,42, </key>\r
-<key name="section"> 0,4,21,58, </key>\r
-<key name="segment"> 11,17,5,6,30,57,36,63, </key>\r
-<key name="select"> 11,13,0,15,19,20,21,22,23,24,7,25,26,28,9,10,29,34,36,58,59,38,39,61,40,41,62,42,44,45,47,48,49,50,51, </key>\r
-<key name="selection"> 15,19,23,24,7,62,48, </key>\r
-<key name="sens"> 12, </key>\r
-<key name="separat"> 46, </key>\r
-<key name="sequenc"> 42, </key>\r
-<key name="session"> 0, </key>\r
-<key name="set"> 12,13,0,15,17,19,4,21,23,24,26,10,30,32,57,33,36,58,59,62,42,44,64,48, </key>\r
-<key name="setcurrentstudy"> 5,60,65, </key>\r
-<key name="setdisplaymod"> 6, </key>\r
-<key name="setlength"> 5,65, </key>\r
-<key name="setmargin"> 55,60, </key>\r
-<key name="setmaxelementarea"> 5,6,55,60,65, </key>\r
-<key name="setmaxelementvolum"> 5,6,55, </key>\r
-<key name="setnam"> 5,6,55,60, </key>\r
-<key name="setnumberofsegment"> 5,6,55,60,65, </key>\r
-<key name="setnumfunctor"> 55,60, </key>\r
-<key name="setpredicat"> 55,60, </key>\r
-<key name="setting"> 21, </key>\r
-<key name="settransparency"> 6, </key>\r
-<key name="sew"> 60,42,63, </key>\r
-<key name="sewbordertosid"> 63, </key>\r
-<key name="sewconformfreeborder"> 63, </key>\r
-<key name="sewfreeborder"> 63, </key>\r
-<key name="sewsideelement"> 63, </key>\r
-<key name="sg"> 5,6,55,57,60,63,65, </key>\r
-<key name="shad"> 59,64, </key>\r
-<key name="shall"> 19,24,25,26,34,58,61,40,45,47,48,49, </key>\r
-<key name="shap"> 11,12,18,10,57,58,44, </key>\r
-<key name="shapetyp"> 5,55,60,63,65, </key>\r
-<key name="shift"> 15,38,44, </key>\r
-<key name="shortest"> 18,52, </key>\r
-<key name="should"> 17,23,9,10,58,61,40,62,42,44,50, </key>\r
-<key name="show"> 4,10,62, </key>\r
-<key name="shown"> 14,44, </key>\r
-<key name="shrink"> 59, </key>\r
-<key name="sid"> 18,5,6,35,42,43,63, </key>\r
-<key name="simp"> 21,36, </key>\r
-<key name="simpl"> 12,15,1,58, </key>\r
-<key name="simplex"> 1, </key>\r
-<key name="siz"> 0,44, </key>\r
-<key name="sk"> 1, </key>\r
-<key name="sketch"> 6, </key>\r
-<key name="sketcher"> 6, </key>\r
-<key name="sketcher1"> 6, </key>\r
-<key name="sketcher2"> 6, </key>\r
-<key name="skew"> 14,24,30,60,43,48, </key>\r
-<key name="slid"> 64, </key>\r
-<key name="smesh"> 15,5,6,55,57,60,38,39,42,63,65, </key>\r
-<key name="smesh_mechanic"> 55,57,60,63, </key>\r
-<key name="smesh_mechanic_tetra"> 60, </key>\r
-<key name="smesh_mesheditor"> 57,63, </key>\r
-<key name="smeshgroup1"> 55, </key>\r
-<key name="smeshgroup2"> 55, </key>\r
-<key name="smeshgui"> 5,6,55,60, </key>\r
-<key name="smooth"> 57,44, </key>\r
-<key name="smoothobject"> 57, </key>\r
-<key name="smp"> 58, </key>\r
-<key name="so"> 11,17,18,5,6,55,58,60,42,46,65, </key>\r
-<key name="solid"> 5,6,30, </key>\r
-<key name="someth"> 21, </key>\r
-<key name="somewhat"> 15, </key>\r
-<key name="sort"> 19,23,24,48, </key>\r
-<key name="sourc"> 62, </key>\r
-<key name="spac"> 12,58,40,47, </key>\r
-<key name="specifi"> 17,2,58,38,42,44, </key>\r
-<key name="specific"> 20,62, </key>\r
-<key name="specify"> 15,24,9,10,58,38,61,40,62,44,45,47,50, </key>\r
-<key name="spher"> 21, </key>\r
-<key name="split"> 13,17,4,42, </key>\r
-<key name="standalon"> 23,55,62, </key>\r
-<key name="standard"> 0,29,51, </key>\r
-<key name="start"> 11,17,4,6,10,41,42,47, </key>\r
-<key name="startendlength"> 6, </key>\r
-<key name="stdmesher"> 5,6,55,60,65, </key>\r
-<key name="step"> 9,61, </key>\r
-<key name="stor"> 58,62, </key>\r
-<key name="structur"> 21,22, </key>\r
-<key name="study"> 5,6,55,57,62, </key>\r
-<key name="sub"> 29,34,58,40,42,45,47, </key>\r
-<key name="submenu"> 15,8,38,39, </key>\r
-<key name="submesh"> 11,19,20,5,22,23,24,9,10,37,61,44,47,48,51, </key>\r
-<key name="subshapeall"> 5,55,60,63,65, </key>\r
-<key name="subshapelist"> 5,55,60,65, </key>\r
-<key name="subshapelist1"> 63, </key>\r
-<key name="subshapelist2"> 63, </key>\r
-<key name="subshapenam"> 5,55,65, </key>\r
-<key name="sum"> 1, </key>\r
-<key name="supplement"> 36, </key>\r
-<key name="supplementary"> 24, </key>\r
-<key name="surfac"> 12,9,58,61,42, </key>\r
-<key name="surround"> 12,44, </key>\r
-<key name="sweep"> 57, </key>\r
-<key name="swept"> 9,61, </key>\r
-<key name="symmetrical"> 45,63, </key>\r
-<key name="symmetry"> 45,63, </key>\r
-<key name="syntax"> 62, </key>\r
-<key name="t"> 12,17,21,36,58,59, </key>\r
-<key name="tabl"> 17, </key>\r
-<key name="tak"> 48, </key>\r
-<key name="taken"> 11,20,23,6,58, </key>\r
-<key name="tap"> 14,23,30,60,46, </key>\r
-<key name="techniqu"> 44, </key>\r
-<key name="tetrahedral"> 13, </key>\r
-<key name="tetrahedralization"> 21, </key>\r
-<key name="tetrahedron"> 12,13,15,1,6,57,33,65, </key>\r
-<key name="th"> 58,42, </key>\r
-<key name="them"> 11,15,17,23,7,9,10,34,38,61,42,44, </key>\r
-<key name="thos"> 24,48, </key>\r
-<key name="thre"> 12,6,57,42,45, </key>\r
-<key name="threshold"> 62, </key>\r
-<key name="tmp"> 5, </key>\r
-<key name="toggl"> 15,62,47, </key>\r
-<key name="toleranc"> 34,61,62,63, </key>\r
-<key name="tool"> 62,50, </key>\r
-<key name="toolbar"> 18,19,21,22,24,25,26,28,9,10,31,58,38,39,61,41,43,44,46,48,49,51,52, </key>\r
-<key name="topological"> 12,42, </key>\r
-<key name="topology"> 12, </key>\r
-<key name="total"> 51, </key>\r
-<key name="toward"> 44, </key>\r
-<key name="transform"> 26,63, </key>\r
-<key name="transformation"> 34,40,42,45,47, </key>\r
-<key name="translat"> 63,47, </key>\r
-<key name="translateobject"> 63, </key>\r
-<key name="translation"> 63,47, </key>\r
-<key name="transparency"> 0,64, </key>\r
-<key name="transparent"> 64, </key>\r
-<key name="triangl"> 12,13,15,16,18,1,6,25,9,32,31,35,57,61,43,46,48,49,65, </key>\r
-<key name="triangular"> 13, </key>\r
-<key name="tritoquad"> 57, </key>\r
-<key name="try"> 21, </key>\r
-<key name="tt"> 6, </key>\r
-<key name="tui"> 13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52, </key>\r
-<key name="two"> 12,15,18,4,23,24,6,25,10,55,35,57,58,42,46,63,47,49,50,51, </key>\r
-<key name="typ"> 12,15,17,1,20,21,23,9,10,38,61,62,42,51, </key>\r
-<key name="typical"> 44, </key>\r
-<key name="u"> 12,42, </key>\r
-<key name="unary"> 62, </key>\r
-<key name="unassign"> 37, </key>\r
-<key name="uniform"> 44, </key>\r
-<key name="union"> 55,48,49,50, </key>\r
-<key name="uniongroup"> 55, </key>\r
-<key name="unit"> 57,42,48,49,50, </key>\r
-<key name="unles"> 36, </key>\r
-<key name="unv"> 29, </key>\r
-<key name="up"> 0,17,7,27, </key>\r
-<key name="updat"> 0,41,44, </key>\r
-<key name="updateobjbrows"> 5,6,55,57,60,63,65, </key>\r
-<key name="upload"> 62, </key>\r
-<key name="us"> 12,13,0,17,2,4,21,22,9,34,58,61,62,42,44,64,50, </key>\r
-<key name="usag"> 14, </key>\r
-<key name="useful"> 0,15,10, </key>\r
-<key name="usual"> 42,44, </key>\r
-<key name="v"> 12, </key>\r
-<key name="valu"> 11,14,17,18,1,21,5,10,56,35,36,37,62,43,65, </key>\r
-<key name="ve"> 15,21, </key>\r
-<key name="vector"> 6,9,10,57,61,40,45,63,47,52, </key>\r
-<key name="vertex"> 12,58, </key>\r
-<key name="vertic"> 5,6,57,58, </key>\r
-<key name="very"> 15,10, </key>\r
-<key name="via"> 0,62,51, </key>\r
-<key name="view"> 0,15,16,18,19,4,23,24,7,25,26,27,9,10,31,35,38,39,61,62,42,43,44,46,48,49,51,65,52, </key>\r
-<key name="visual"> 14, </key>\r
-<key name="volum"> 11,12,13,15,20,23,6,30,33,60,62,51,65, </key>\r
-<key name="vxy"> 6,57, </key>\r
-<key name="walk"> 58, </key>\r
-<key name="warp"> 14,24,30,60,48,52, </key>\r
-<key name="way"> 12,0,15,21,23,10,58,37,50, </key>\r
-<key name="weight"> 44, </key>\r
-<key name="well"> 58, </key>\r
-<key name="wheth"> 62, </key>\r
-<key name="whil"> 38, </key>\r
-<key name="whit"> 2,53, </key>\r
-<key name="whol"> 9,10,61,62,44,47, </key>\r
-<key name="whos"> 19,23,24,48, </key>\r
-<key name="will"> 11,12,15,16,17,18,19,20,21,22,23,24,7,26,27,28,9,10,29,32,31,35,33,36,58,38,39,61,41,62,42,43,44,46,64,48,50,51,52, </key>\r
-<key name="window"> 4, </key>\r
-<key name="wir"> 13,5,6,10,55,57,36, </key>\r
-<key name="wirefram"> 10,59, </key>\r
-<key name="wish"> 21,7,29, </key>\r
-<key name="within"> 17,58,42, </key>\r
-<key name="without"> 60, </key>\r
-<key name="word"> 17, </key>\r
-<key name="work"> 10, </key>\r
-<key name="would"> 15,42, </key>\r
-<key name="ww"> 6, </key>\r
-<key name="x"> 12,4,52, </key>\r
-<key name="y"> 12,4, </key>\r
-<key name="your"> 11,12,14,0,15,16,17,18,19,4,20,21,22,23,26,27,28,29,32,31,34,35,33,58,59,37,38,39,40,62,43,44,45,46,47,51,52, </key>\r
-<key name="z"> 12,4, </key>\r
-<key name="zero"> 58, </key>\r
+<key name="regular"> 19, </key>\r
+<key name="regular_1d"> 6,7,57,63,68, </key>\r
+<key name="regular1d"> 6,7,57, </key>\r
+<key name="relat"> 42, </key>\r
+<key name="relation"> 13, </key>\r
+<key name="relationship"> 13, </key>\r
+<key name="remot"> 53, </key>\r
+<key name="remov"> 20,6,24,25,8,29,11,57,60,39,65,49,68, </key>\r
+<key name="removal"> 31, </key>\r
+<key name="removeelement"> 60,63, </key>\r
+<key name="removehypothesi"> 6,68, </key>\r
+<key name="removenod"> 60, </key>\r
+<key name="renumb"> 40, </key>\r
+<key name="renumber"> 60,40, </key>\r
+<key name="renumbernod"> 60, </key>\r
+<key name="reorient"> 20,60, </key>\r
+<key name="replac"> 43, </key>\r
+<key name="represent"> 12,13,18,2,62,47,53, </key>\r
+<key name="representation"> 13, </key>\r
+<key name="requir"> 26,27,50, </key>\r
+<key name="reset"> 53, </key>\r
+<key name="resiz"> 53, </key>\r
+<key name="respect"> 11, </key>\r
+<key name="respectiv"> 1, </key>\r
+<key name="rest"> 61,43, </key>\r
+<key name="restor"> 53, </key>\r
+<key name="restrict"> 13, </key>\r
+<key name="result"> 12,16,11,57,63,45,51, </key>\r
+<key name="ret"> 6,7,57, </key>\r
+<key name="retriev"> 13, </key>\r
+<key name="return"> 58,60, </key>\r
+<key name="reveal"> 19, </key>\r
+<key name="revers"> 1,61, </key>\r
+<key name="revert"> 20, </key>\r
+<key name="revolution"> 10,60,64, </key>\r
+<key name="revolv"> 64, </key>\r
+<key name="right"> 0,21,8,27,28,11,62, </key>\r
+<key name="rotat"> 10,11,60,64,41,66,53, </key>\r
+<key name="rotateobject"> 66, </key>\r
+<key name="rotation"> 5,11,64,41,66,53, </key>\r
+<key name="rotationsweepobject"> 60, </key>\r
+<key name="rough"> 12, </key>\r
+<key name="rr"> 60, </key>\r
+<key name="rul"> 18,37,43, </key>\r
+<key name="run"> 42, </key>\r
+<key name="s"> 11, </key>\r
+<key name="salom"> 6,24,7,57,31,60,63,42,66,68, </key>\r
+<key name="sam"> 13,0,18,19,2,22,23,7,11,37,38,65,43,51, </key>\r
+<key name="sampl"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54, </key>\r
+<key name="sav"> 65, </key>\r
+<key name="scal"> 18,53, </key>\r
+<key name="scalar"> 15, </key>\r
+<key name="scen"> 53, </key>\r
+<key name="script"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54, </key>\r
+<key name="se"> 14,16,17,18,19,2,3,4,20,5,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,53,54, </key>\r
+<key name="seam"> 61, </key>\r
+<key name="search"> 30,65, </key>\r
+<key name="second"> 16,60,43, </key>\r
+<key name="section"> 0,5,22,61, </key>\r
+<key name="segment"> 12,18,6,7,31,33,60,66, </key>\r
+<key name="select"> 12,14,0,16,1,18,20,21,22,23,24,25,8,26,27,29,10,11,30,35,37,61,62,39,40,64,41,42,65,43,45,46,48,49,50,51,52,53, </key>\r
+<key name="selectabl"> 59, </key>\r
+<key name="selection"> 16,1,20,24,25,8,65,49, </key>\r
+<key name="sens"> 13, </key>\r
+<key name="separat"> 47, </key>\r
+<key name="sequenc"> 43, </key>\r
+<key name="set"> 13,14,16,18,20,5,22,24,7,27,11,31,33,60,34,61,62,65,43,45,67,49, </key>\r
+<key name="setcurrentstudy"> 6,60,63,68, </key>\r
+<key name="setdisplaymod"> 7, </key>\r
+<key name="setlength"> 6,68, </key>\r
+<key name="setmargin"> 57,63, </key>\r
+<key name="setmaxelementarea"> 6,7,63,68, </key>\r
+<key name="setmaxelementvolum"> 6,7, </key>\r
+<key name="setmesh"> 63, </key>\r
+<key name="setnam"> 6,7,63, </key>\r
+<key name="setnumberofsegment"> 6,7,57,60,63,68, </key>\r
+<key name="setnumfunctor"> 57,63, </key>\r
+<key name="setpredicat"> 57,63, </key>\r
+<key name="setting"> 22, </key>\r
+<key name="settransparency"> 7, </key>\r
+<key name="sew"> 63,43,66, </key>\r
+<key name="sewbordertosid"> 66, </key>\r
+<key name="sewconformfreeborder"> 66, </key>\r
+<key name="sewfreeborder"> 66, </key>\r
+<key name="sewsideelement"> 66, </key>\r
+<key name="sg"> 6,7,57,60,63,66,68, </key>\r
+<key name="shad"> 0,62,67, </key>\r
+<key name="shall"> 20,26,27,35,61,64,41,46,48,49,50, </key>\r
+<key name="shap"> 12,13,11,61,45, </key>\r
+<key name="shape_mesh"> 60, </key>\r
+<key name="shapetyp"> 6,7,57,60,63,66,68, </key>\r
+<key name="shift"> 16,1,25,39,45, </key>\r
+<key name="shortest"> 54, </key>\r
+<key name="should"> 18,24,10,11,61,64,41,65,43,45,51, </key>\r
+<key name="show"> 18,5,11,65,53, </key>\r
+<key name="shown"> 15,45, </key>\r
+<key name="shrink"> 62, </key>\r
+<key name="sid"> 6,7,36,43,44,66, </key>\r
+<key name="simp"> 22,37, </key>\r
+<key name="simpl"> 13,16,61, </key>\r
+<key name="simplex"> 19,2, </key>\r
+<key name="sin"> 60, </key>\r
+<key name="siz"> 0,45, </key>\r
+<key name="sk"> 19,2, </key>\r
+<key name="sketch"> 7, </key>\r
+<key name="sketcher"> 7, </key>\r
+<key name="sketcher1"> 7, </key>\r
+<key name="sketcher2"> 7, </key>\r
+<key name="skew"> 15,25,31,63,44,49, </key>\r
+<key name="slid"> 67, </key>\r
+<key name="small"> 53, </key>\r
+<key name="smesh"> 6,7,57,60,63,43,66,68, </key>\r
+<key name="smesh_mechanic"> 57,60,63,66, </key>\r
+<key name="smesh_mechanic_tetra"> 63, </key>\r
+<key name="smesh_mesheditor"> 60,66, </key>\r
+<key name="smeshgroup1"> 57, </key>\r
+<key name="smeshgroup2"> 57, </key>\r
+<key name="smeshgui"> 6,7,63, </key>\r
+<key name="smooth"> 60,45, </key>\r
+<key name="smoothobject"> 60, </key>\r
+<key name="smp"> 61, </key>\r
+<key name="so"> 12,18,19,6,7,57,60,61,63,43,47,68, </key>\r
+<key name="solid"> 6,7,31, </key>\r
+<key name="somewhat"> 16, </key>\r
+<key name="sort"> 20,24,25,49, </key>\r
+<key name="sourc"> 65, </key>\r
+<key name="spac"> 13,61,41,48, </key>\r
+<key name="specifi"> 18,3,61,39,43,45, </key>\r
+<key name="specific"> 21,65, </key>\r
+<key name="specify"> 16,1,25,10,11,61,39,64,41,65,45,46,48,51, </key>\r
+<key name="spher"> 18,19,22, </key>\r
+<key name="split"> 14,18,2,5,43, </key>\r
+<key name="sqrt"> 60, </key>\r
+<key name="standalon"> 24,57,65, </key>\r
+<key name="standard"> 0,30,52, </key>\r
+<key name="start"> 12,18,5,7,11,31,42,43,48, </key>\r
+<key name="startendlength"> 7, </key>\r
+<key name="statu"> 60, </key>\r
+<key name="stdmesher"> 6,7,57,60,63,68, </key>\r
+<key name="step"> 10,64, </key>\r
+<key name="stor"> 61,65, </key>\r
+<key name="straight"> 1,7,37, </key>\r
+<key name="stretch"> 53, </key>\r
+<key name="strict"> 53, </key>\r
+<key name="structur"> 22,23, </key>\r
+<key name="study"> 6,7,57,65, </key>\r
+<key name="stuf"> 53, </key>\r
+<key name="sub"> 30,35,60,61,41,43,46,48, </key>\r
+<key name="submenu"> 16,9,39,40, </key>\r
+<key name="submesh"> 12,20,21,6,23,24,25,10,11,38,64,45,48,49,52, </key>\r
+<key name="subshapeall"> 6,7,57,60,63,66,68, </key>\r
+<key name="subshapelist"> 6,57,63,68, </key>\r
+<key name="subshapelist1"> 66, </key>\r
+<key name="subshapelist2"> 66, </key>\r
+<key name="subshapenam"> 6,57,68, </key>\r
+<key name="succed"> 7,57, </key>\r
+<key name="sum"> 2, </key>\r
+<key name="supplement"> 37, </key>\r
+<key name="supplementary"> 25, </key>\r
+<key name="surfac"> 13,19,2,10,61,64,43, </key>\r
+<key name="surround"> 13,45, </key>\r
+<key name="sweep"> 60, </key>\r
+<key name="swept"> 10,64, </key>\r
+<key name="switch"> 1, </key>\r
+<key name="symmetrical"> 46,66, </key>\r
+<key name="symmetry"> 46,66, </key>\r
+<key name="syntax"> 65, </key>\r
+<key name="t"> 13,18,2,22,37,61,62,53, </key>\r
+<key name="tabl"> 1,18, </key>\r
+<key name="tak"> 19,49, </key>\r
+<key name="taken"> 12,21,24,7,61, </key>\r
+<key name="tap"> 15,24,31,63,47, </key>\r
+<key name="techniqu"> 45, </key>\r
+<key name="tetra3d"> 7, </key>\r
+<key name="tetrahedral"> 14, </key>\r
+<key name="tetrahedralization"> 22, </key>\r
+<key name="tetrahedron"> 13,14,16,2,7,60,34,68, </key>\r
+<key name="th"> 61,43, </key>\r
+<key name="them"> 12,16,1,18,2,24,8,9,10,11,35,39,64,43,45,53, </key>\r
+<key name="thos"> 25,49, </key>\r
+<key name="thre"> 13,1,19,7,60,37,43,46, </key>\r
+<key name="threshold"> 65, </key>\r
+<key name="tick"> 53, </key>\r
+<key name="tim"> 0, </key>\r
+<key name="tmp"> 6, </key>\r
+<key name="togeth"> 33, </key>\r
+<key name="toggl"> 16,65,48, </key>\r
+<key name="toleranc"> 35,64,65,66, </key>\r
+<key name="tool"> 65,51, </key>\r
+<key name="toolbar"> 19,2,20,22,23,25,26,27,29,10,11,32,61,39,40,64,42,44,45,47,49,50,52,69,53,54, </key>\r
+<key name="top"> 60, </key>\r
+<key name="topological"> 13,43, </key>\r
+<key name="topology"> 13, </key>\r
+<key name="total"> 52, </key>\r
+<key name="toward"> 45, </key>\r
+<key name="transform"> 27,66, </key>\r
+<key name="transformation"> 35,41,43,46,48, </key>\r
+<key name="translat"> 66,48, </key>\r
+<key name="translateobject"> 66, </key>\r
+<key name="translation"> 66,48, </key>\r
+<key name="transparency"> 0,67, </key>\r
+<key name="transparent"> 67, </key>\r
+<key name="tri_mesh"> 66, </key>\r
+<key name="tria"> 7,60,66, </key>\r
+<key name="tria_mesh"> 7, </key>\r
+<key name="triangl"> 13,14,16,1,17,19,7,26,10,33,32,59,36,60,64,44,47,66,49,50,68,53, </key>\r
+<key name="triangle_mefisto"> 60, </key>\r
+<key name="triangular"> 14,33, </key>\r
+<key name="triangulation"> 7, </key>\r
+<key name="trihedron"> 53, </key>\r
+<key name="tritoquad"> 60, </key>\r
+<key name="try"> 22, </key>\r
+<key name="tt"> 7, </key>\r
+<key name="tui"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54, </key>\r
+<key name="two"> 13,16,5,24,25,7,26,11,57,36,60,61,43,47,66,48,50,51,52, </key>\r
+<key name="typ"> 13,16,18,19,2,21,22,24,10,11,39,64,65,43,52, </key>\r
+<key name="typical"> 45, </key>\r
+<key name="u"> 13,43, </key>\r
+<key name="unary"> 65, </key>\r
+<key name="unassign"> 38, </key>\r
+<key name="uniform"> 45, </key>\r
+<key name="union"> 57,49,50,51, </key>\r
+<key name="uniongroup"> 57, </key>\r
+<key name="unit"> 60,43,49,50,51, </key>\r
+<key name="unles"> 37, </key>\r
+<key name="unv"> 30, </key>\r
+<key name="up"> 18,8,28, </key>\r
+<key name="updat"> 0,42,45, </key>\r
+<key name="updateobjbrows"> 6,7,57,60,63,66,68, </key>\r
+<key name="upload"> 65, </key>\r
+<key name="us"> 13,14,18,3,5,22,23,24,10,33,35,61,64,65,43,45,67,51,53, </key>\r
+<key name="usag"> 15, </key>\r
+<key name="useful"> 0,16,24,11, </key>\r
+<key name="usual"> 43,45, </key>\r
+<key name="v"> 13, </key>\r
+<key name="valu"> 12,15,18,19,2,22,6,11,58,36,37,38,65,44,68, </key>\r
+<key name="vari"> 19, </key>\r
+<key name="variou"> 0, </key>\r
+<key name="ve"> 16, </key>\r
+<key name="vector"> 7,10,11,60,64,41,46,66,48,54, </key>\r
+<key name="vertex"> 13,61, </key>\r
+<key name="vertic"> 6,7,61, </key>\r
+<key name="very"> 16,11, </key>\r
+<key name="via"> 65,52,53, </key>\r
+<key name="view"> 0,16,1,17,19,2,20,5,24,25,8,26,27,28,10,11,32,36,39,40,64,65,43,44,45,47,49,50,52,68,69,53,54, </key>\r
+<key name="visibl"> 53, </key>\r
+<key name="visual"> 15, </key>\r
+<key name="visualiz"> 53, </key>\r
+<key name="vk"> 2, </key>\r
+<key name="volum"> 12,13,14,15,16,2,21,24,7,9,31,60,34,63,65,66,52,68,69, </key>\r
+<key name="vtk"> 0,53, </key>\r
+<key name="vxy"> 7,60,66, </key>\r
+<key name="walk"> 61, </key>\r
+<key name="warp"> 15,25,31,63,49,54, </key>\r
+<key name="way"> 13,16,22,23,24,11,61,38,51, </key>\r
+<key name="weight"> 45, </key>\r
+<key name="well"> 61, </key>\r
+<key name="wheth"> 65, </key>\r
+<key name="whil"> 39, </key>\r
+<key name="whit"> 55, </key>\r
+<key name="whol"> 2,10,11,60,64,65,45,48, </key>\r
+<key name="whos"> 20,24,25,37,49, </key>\r
+<key name="will"> 12,13,0,16,1,17,18,19,2,20,21,22,23,24,25,8,27,28,29,10,11,30,33,32,59,36,60,34,37,61,39,40,64,42,65,43,44,45,47,67,49,51,52,69,54, </key>\r
+<key name="window"> 5, </key>\r
+<key name="wir"> 14,6,7,11,33,60,66, </key>\r
+<key name="wire_discretisation"> 60, </key>\r
+<key name="wirefram"> 0,11,62, </key>\r
+<key name="wish"> 22,8,30,53, </key>\r
+<key name="within"> 18,61,43, </key>\r
+<key name="without"> 1,63, </key>\r
+<key name="word"> 18, </key>\r
+<key name="work"> 1,11, </key>\r
+<key name="worst"> 19, </key>\r
+<key name="would"> 16,43, </key>\r
+<key name="ww"> 7, </key>\r
+<key name="x"> 13,5,54, </key>\r
+<key name="x0"> 60, </key>\r
+<key name="y"> 13,5, </key>\r
+<key name="y0"> 60, </key>\r
+<key name="your"> 12,13,15,0,16,1,17,18,19,2,20,5,21,22,23,24,27,28,29,30,33,32,35,36,34,61,62,38,39,40,41,65,44,45,46,47,48,52,69,54, </key>\r
+<key name="z"> 13,5, </key>\r
+<key name="z0"> 60, </key>\r
+<key name="zero"> 61, </key>\r
+<key name="zoom"> 53, </key>\r
\r
</ftswdata> \r
<book name="Defining hypotheses" >\r
<item name="About Hypotheses" url="files/about_hypotheses.htm" />\r
<item name="1D Meshing Hypotheses" url="files/arithmetic_1d.htm" />\r
- <item name="Max Element Area hypothesis" url="files/max._element_area_hypothesis.htm" />\r
+ <item name="2D Meshing Hypotheses" url="files/max._element_area_hypothesis.htm" />\r
<item name="Max Element Volume hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
<item name="Additional Hypotheses" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
</book>\r
<item name="Editing Meshes" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
</book>\r
<book name="Viewing meshes" >\r
- <item name="About viewing meshes" url="about_viewing_meshes.htm" />\r
+ <item name="Viewing meshes" url="about_viewing_meshes.htm" />\r
+ <item name="VTK 3D Viewer" url="files/vtk_3d_viewer.htm" />\r
<item name="Mesh infos" url="files/viewing_mesh_info.htm" />\r
<item name="Numbering" url="files/displaying_nodes_numbers.htm" />\r
<item name="Display Mode" url="presentation.htm" />\r
<item name="Warping" url="files/warp.htm" />\r
<item name="Skew" url="files/skew.htm" />\r
<item name="Aspect ratio 3D" url="aspect_ratio_3d.htm" />\r
+ <item name="Volume" url="volume.htm" />\r
</book>\r
<book name="Grouping elements" >\r
<item name="Creating groups" url="files/creating_groups.htm" />\r
</book>\r
<book name="Modifying meshes" >\r
<item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
+ <item name="Adding quadratic elements" url="adding_quadratic_nodes_and_elements.htm" />\r
<item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
<item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
<book name="Transforming meshes" >\r
<item name="Symmetry" url="files/symmetry.htm" />\r
<item name="Sewing meshes" url="files/sewing_meshes.htm" />\r
<item name="Merging nodes" url="files/merging_nodes.htm" />\r
+ <item name="Merging Elements" url="merge_elements.htm" />\r
</book>\r
<item name="Moving nodes" url="files/displacing_nodes.htm" />\r
<item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
cp -fr $(srcdir)/SMESH ./INPUT; \
cd INPUT; \
sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
- mv -f doxyfile1 doxyfile; \
- $(doxygen) ./doxyfile; \
- mkdir py1; mkdir py2; \
- cd ..
- for file in $(PYTHON_SCRIPTS) dummy; do \
- if [ $$file != "dummy" ]; then \
- cp $(root_srcdir)/src/SMESH_SWIG/$$file INPUT/py1/; \
- fi ; \
- done
- cd INPUT; \
- python $(KERNEL_ROOT_DIR)/doc/salome/tui/KERNEL/pythfilter.py ./py1 ./py2; \
- sed 's|list_py_files_to_process|$(PYTHON_SCRIPTS)|' ./doxyfile_py > py2/doxyfile_py; \
- cd py2; \
- $(doxygen) ./doxyfile_py; \
- cd ../..; \
+ sed 's|../../build/salome|$(top_builddir)|' ./doxyfile1 > ./doxyfile2; \
+ sed "s|version|`cut -d: -f2 $(root_srcdir)/bin/VERSION`|" ./doxyfile2 > ./doxyfile3; \
+ mv -f doxyfile3 doxyfile1; \
+ if (test "x@DOXYGEN_WITH_PYTHON@" = "xyes"); then \
+ echo "DOXYGEN SUPPORT PYTHON - @DOXYGEN_WITH_PYTHON@"; \
+ sed 's|python_extension_must_be_here|*.py|' ./doxyfile1 > ./doxyfile2; \
+ mv -f doxyfile2 doxyfile1; \
+ $(doxygen) -u ./doxyfile1; \
+ if( test "x@DOXYGEN_WITH_STL@" = "xyes"); then \
+ sed -e 's|BUILTIN_STL_SUPPORT = NO|BUILTIN_STL_SUPPORT = YES|' ./doxyfile1 > ./doxyfile2; \
+ mv -f doxyfile2 doxyfile1; \
+ fi; \
+ mv -f doxyfile1 doxyfile; \
+ $(doxygen) ./doxyfile; \
+ cd ..; \
+ else \
+ sed 's|python_extension_must_be_here||' ./doxyfile1 > ./doxyfile2; \
+ mv -f doxyfile2 doxyfile1; \
+ mv -f doxyfile1 doxyfile; \
+ $(doxygen) ./doxyfile; \
+ mkdir py1; mkdir py2; \
+ cd ..; \
+ for file in $(PYTHON_SCRIPTS) dummy; do \
+ if [ $$file != "dummy" ]; then \
+ cp $(root_srcdir)/src/GEOM_SWIG/$$file INPUT/py1/; \
+ fi ; \
+ done; \
+ cd INPUT; \
+ python $(KERNEL_ROOT_DIR)/doc/salome/tui/KERNEL/pythfilter.py ./py1 ./py2; \
+ sed 's|list_py_files_to_process|$(PYTHON_SCRIPTS)|' ./doxyfile_py > py2/doxyfile_py; \
+ cd py2; \
+ $(doxygen) ./doxyfile_py; \
+ cd ../..; \
+ fi; \
cp -fr $(srcdir)/SMESH/sources/static/*.* ./SMESH/
cp -fr $(srcdir)/SMESH/sources/ SMESH/
cp -fr $(srcdir)/SMESH/HTML/ SMESH/
-# Doxyfile 1.3-rc1
+# Doxyfile 1.4.6
#---------------------------------------------------------------------------
-# General configuration options
+# Project related configuration options
#---------------------------------------------------------------------------
-PROJECT_NAME = "SALOME - SMESH - v.3.2.0a2"
-PROJECT_NUMBER = id#1.1
+PROJECT_NAME = "SALOME - SMESH - v.version"
+PROJECT_NUMBER =
OUTPUT_DIRECTORY = ../
+CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = NO
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = YES
+INLINE_INHERITED_MEMB = YES
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = ../../../share/salome \
+ ../../../build/salome
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 5
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = YES
+BUILTIN_STL_SUPPORT = NO
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
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
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
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
+SHOW_DIRECTORIES = NO
+FILE_VERSION_FILTER =
+
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
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
+INPUT = ../../../share/salome/src \
+ ../../../share/salome/idl \
+ ../../../build/salome/bin
+FILE_PATTERNS = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
+RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = sources/
INPUT_FILTER =
+FILTER_PATTERNS =
FILTER_SOURCE_FILES = YES
+
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 5
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 3
IGNORE_PREFIX =
+
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
HTML_OUTPUT = SMESH
HTML_FILE_EXTENSION = .html
HTML_HEADER = sources/myheader.html
-HTML_FOOTER =
-HTML_STYLESHEET =
+HTML_FOOTER = sources/footer.html
+HTML_STYLESHEET = sources/static/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
GENERATE_CHI = NO
BINARY_TOC = YES
TOC_EXPAND = YES
-DISABLE_INDEX = YES
+DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = YES
+GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
+
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
+
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
+
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
+XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
+XML_PROGRAMLISTING = YES
+
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
+
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
+
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
+MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = NO
+
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
+
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
+GROUP_GRAPHS = NO
+UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
+CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = jpg
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1200
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = NO
DOT_CLEANUP = YES
+
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions 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 =
-# Doxyfile 1.3-rc1
+# Doxyfile 1.4.6
#---------------------------------------------------------------------------
-# General configuration options
+# Project related configuration options
#---------------------------------------------------------------------------
-PROJECT_NAME = "SALOME - SMESH - v.3.2.0a2"
-PROJECT_NUMBER = id#1.1
+PROJECT_NAME = "SALOME - SMESH - v.version"
+PROJECT_NUMBER =
OUTPUT_DIRECTORY = ../
+CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = NO
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = YES
+INLINE_INHERITED_MEMB = YES
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = ../../../share/salome \
+ ../../../build/salome
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 5
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = YES
+BUILTIN_STL_SUPPORT = NO
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
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
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
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
+SHOW_DIRECTORIES = NO
+FILE_VERSION_FILTER =
+
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = log.txt
+
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = list_py_files_to_process
-FILE_PATTERNS =
-RECURSIVE = NO
+INPUT = ../../../share/salome/src \
+ ../../../share/salome/idl \
+ ../../../build/salome/bin
+FILE_PATTERNS = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
+RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
-IMAGE_PATH = ../sources/
+IMAGE_PATH = sources/
INPUT_FILTER =
+FILTER_PATTERNS =
FILTER_SOURCE_FILES = YES
+
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 5
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 3
IGNORE_PREFIX =
+
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
-HTML_OUTPUT = ../SMESH/meshpy_doc
+HTML_OUTPUT = SMESH
HTML_FILE_EXTENSION = .html
-HTML_HEADER = ../sources/myheader_py2.html
-HTML_FOOTER =
-HTML_STYLESHEET =
+HTML_HEADER = sources/myheader.html
+HTML_FOOTER = sources/footer.html
+HTML_STYLESHEET = sources/static/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
GENERATE_CHI = NO
BINARY_TOC = YES
TOC_EXPAND = YES
-DISABLE_INDEX = YES
+DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = YES
+GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
+
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
+
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
+
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
+XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
+XML_PROGRAMLISTING = YES
+
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
+
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
+
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
+MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = NO
+
#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
+# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
+
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
+GROUP_GRAPHS = NO
+UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
+CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = jpg
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1200
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = NO
DOT_CLEANUP = YES
+
#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
+# Configuration::additions 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 =
--- /dev/null
+</DIV>
+<DIV class="div-footer">
+Generated on $datetime for $projectname by <A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> $doxygenversion</DIV>
+</BODY>
+</HTML>
</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>
-H1 { text-align: center; }
-CAPTION { font-weight: bold }
+H1 {
+ text-align: center;
+}
+
+CAPTION {
+ font-weight: bold
+}
+
+/* Link in the top navbar */
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) }
+
+/* Link to any cross-referenced Doxygen element */
+A.el {
+ text-decoration: none;
+ font-weight: bold
+}
+
+A.elRef {
+ font-weight: bold
+}
+
+/* Link to any cross-referenced Doxygen element inside a code section
+ (ex: header)
+*/
+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
+}
+
+/* A code fragment (ex: header) */
+DIV.fragment {
+ width: 100%;
+ border: none;
+ background-color: #CCCCCC
+}
+
+/* In the alpha list (coumpound index), style of an alphabetical index letter */
+DIV.ah {
+ background-color: #CCCCCC;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px
+}
+
+/* Method name (+ type) */
+TD.md {
+ background-color: lightblue;
+ font-weight: bold;
+}
+
+/* Method parameter (some of them) */
+TD.mdname1 {
+ background-color: lightblue;
+ font-weight: bold; color: #602020;
+}
+
+/* Method parameter (some of them) */
+TD.mdname {
+ background-color: lightblue;
+ font-weight: bold;
+ color: #602020;
+ width: 600px;
+}
+
+/* Separator between methods group (usually empty, seems not supported by IE) */
+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: #FFFFFF;
+}
+
+/*div.div-page {
+ background-color: #FFFFFF;
+ margin-left: 1em;
+ margin-right: 1em;
+ margin-top: 1em;
+ margin-bottom: 0.1em;
+
+ padding-left: 1em;
+ padding-right: 1em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+
+ border: 2px solid #0D299A;
+ border-width: 2px;
+ border-color: #0D299A;
+}*/
+
+div.tabs {
+ text-align: justify;
+ margin-left : 2px;
+ margin-right : 2px;
+ margin-top : 2px;
+ margin-bottom : 2px
+ font-weight: bold;
+ color: #FFFFFF;
+}
+
+DIV.div-footer {
+ margin-left: 1em;
+ margin-right: 1em;
+ margin-bottom: 0.2em;
+ text-align: right;
+ font-size: 9pt;
+}
+
+/* In File List, Coumpound List, etc, 1st column of the index */
TD.indexkey {
background-color: #CCCCCC;
font-weight: bold;
margin-top : 2px;
margin-bottom : 2px
}
+
+/* In File List, Coumpound List, etc, 2nd column of the index */
TD.indexvalue {
background-color: #CCCCCC;
font-style: italic;
margin-top : 2px;
margin-bottom : 2px
}
+
span.keyword { color: #008000 }
span.keywordtype { color: #604020 }
span.keywordflow { color: #e08000 }
-foldersTree = gFld("<b>SALOME v.3.2.0a2 </b>", "", "")
+foldersTree = gFld("<b>SALOME v.3.2.0b1 </b>", "", "")
insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# generate dependencies for idl file :
#
#include "SALOME_Exception.idl"
#include "SALOME_GenericObj.idl"
+#include "GEOM_Gen.idl"
#include "SMESH_Mesh.idl"
-
-module GEOM
-{
- interface GEOM_Object;
-};
-
-
module SMESH
{
SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject )
raises ( SALOME::SALOME_Exception );
+ /*!
+ * Create a empty mesh object
+ */
+ SMESH_Mesh CreateEmptyMesh()
+ raises ( SALOME::SALOME_Exception );
+
/*!
* Create Mesh object importing data from given UNV file
*/
#include "SALOME_Exception.idl"
#include "SALOME_GenericObj.idl"
-
-module GEOM
-{
- interface GEOM_Object;
-};
-
-
-module SALOME_MED
-{
- interface MESH;
- interface FAMILY;
-};
-
+#include "GEOM_Gen.idl"
+#include "MED.idl"
module SMESH
{
interface SMESH_Hypothesis;
typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
+ interface SMESH_GroupBase;
+ typedef sequence<SMESH_GroupBase> ListOfGroups;
typedef sequence<double> double_array ;
typedef sequence<long> long_array ;
FACE,
VOLUME
};
+
+ /*!
+ * ElementOrder points out entities of what order are requested
+ */
+ enum ElementOrder {
+ ORDER_ANY, /*! entities of any order */
+ ORDER_LINEAR, /*! entities of 1st order */
+ ORDER_QUADRATIC /*! entities of 2nd order */
+ };
/*!
* Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
long_array GetIDs();
};
- interface SMESH_GroupBase;
interface SMESH_Group;
interface SMESH_GroupOnGeom;
interface SMESH_subMesh;
void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
raises (SALOME::SALOME_Exception);
+ /*!
+ * Get the list of groups existing in the mesh
+ */
+ ListOfGroups GetGroups()
+ raises (SALOME::SALOME_Exception);
+
/*!
* Union of two groups
* New group is created. All mesh elements that are
long NbEdges()
raises (SALOME::SALOME_Exception);
+ long NbEdgesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbFaces()
raises (SALOME::SALOME_Exception);
+ long NbFacesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbTriangles()
raises (SALOME::SALOME_Exception);
+ long NbTrianglesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbQuadrangles()
raises (SALOME::SALOME_Exception);
+ long NbQuadranglesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPolygons()
raises (SALOME::SALOME_Exception);
long NbVolumes()
raises (SALOME::SALOME_Exception);
+ long NbVolumesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbTetras()
raises (SALOME::SALOME_Exception);
+ long NbTetrasOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbHexas()
raises (SALOME::SALOME_Exception);
+ long NbHexasOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPyramids()
raises (SALOME::SALOME_Exception);
+ long NbPyramidsOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPrisms()
raises (SALOME::SALOME_Exception);
+ long NbPrismsOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPolyhedrons()
raises (SALOME::SALOME_Exception);
ElementType GetElementType( in long id, in boolean iselem )
raises (SALOME::SALOME_Exception);
+ long_array GetSubMeshElementsId(in long ShapeID)
+ raises (SALOME::SALOME_Exception);
+
+ long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
+ raises (SALOME::SALOME_Exception);
+
+ ElementType GetSubMeshElementType(in long ShapeID)
+ raises (SALOME::SALOME_Exception);
+
/*!
* Get mesh description
*/
*/
long GetMeshPtr();
+ /*!
+ * Get XYZ coordinates of node as list of double
+ * If there is not node for given ID - returns empty list
+ */
+ double_array GetNodeXYZ(in long id);
+
+ /*!
+ * For given node returns list of IDs of inverse elements
+ * If there is not node for given ID - returns empty list
+ */
+ long_array GetNodeInverseElements(in long id);
+
+ /*!
+ * If given element is node returns IDs of shape from position
+ * else - return ID of result shape after ::FindShape()
+ * from SMESH_MeshEditor
+ * If there is not element for given ID - returns -1
+ */
+ long GetShapeID(in long id);
+
+ /*!
+ * Returns number of nodes for given element
+ * If there is not element for given ID - returns -1
+ */
+ long GetElemNbNodes(in long id);
+
+ /*!
+ * Returns ID of node by given index for given element
+ * If there is not element for given ID - returns -1
+ * If there is not node for given index - returns -2
+ */
+ long GetElemNode(in long id, in long index);
+
+ /*!
+ * Returns true if given node is medium node
+ * in given quadratic element
+ */
+ boolean IsMediumNode(in long ide, in long idn);
+
+ /*!
+ * Returns true if given node is medium node
+ * in one of quadratic elements
+ */
+ boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
+
+ /*!
+ * Returns number of edges for given element
+ */
+ long ElemNbEdges(in long id);
+
+ /*!
+ * Returns number of faces for given element
+ */
+ long ElemNbFaces(in long id);
+
+ /*!
+ * Returns true if given element is polygon
+ */
+ boolean IsPoly(in long id);
+
+ /*!
+ * Returns true if given element is quadratic
+ */
+ boolean IsQuadratic(in long id);
+
+ /*!
+ * Returns XYZ coordinates of bary center for given element
+ * as list of double
+ * If there is not element for given ID - returns empty list
+ */
+ double_array BaryCenter(in long id);
+
};
interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
boolean RemoveNodes(in long_array IDsOfNodes);
- boolean AddNode(in double x, in double y, in double z);
+ long AddNode(in double x, in double y, in double z);
- boolean AddEdge(in long_array IDsOfNodes);
+ long AddEdge(in long_array IDsOfNodes);
- boolean AddFace(in long_array IDsOfNodes);
+ long AddFace(in long_array IDsOfNodes);
- boolean AddPolygonalFace(in long_array IdsOfNodes);
+ long AddPolygonalFace(in long_array IdsOfNodes);
- boolean AddVolume(in long_array IDsOfNodes);
+ long AddVolume(in long_array IDsOfNodes);
/*!
* Create volume of many faces, giving nodes for each face.
* \param Quantities List of integer values, Quantities[i]
* gives quantity of nodes in face number i.
*/
- boolean AddPolyhedralVolume (in long_array IdsOfNodes,
+ long AddPolyhedralVolume (in long_array IdsOfNodes,
in long_array Quantities);
/*!
* \note The created volume will refer only to nodes
* of the given faces, not to the faces itself.
*/
- boolean AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
+ long AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
boolean MoveNode(in long NodeID, in double x, in double y, in double z);
in double MaxAspectRatio,
in Smooth_Method Method);
+ void ConvertToQuadratic(in boolean theForce3d);
+
+ boolean ConvertFromQuadratic();
+
void RenumberNodes();
void RenumberElements();
in long NodeID2OfSide1ToMerge,
in long NodeID2OfSide2ToMerge);
+ /*!
+ * Set new nodes for given element.
+ * If number of nodes is not corresponded to type of
+ * element - returns false
+ */
+ boolean ChangeElemNodes(in long ide, in long_array newIDs);
+
+ /*!
+ * If during last operation of MeshEditor some nodes were
+ * created this method returns list of it's IDs, if new nodes
+ * not creared - returns empty list
+ */
+ long_array GetLastCreatedNodes();
+
+ /*!
+ * If during last operation of MeshEditor some elements were
+ * created this method returns list of it's IDs, if new elements
+ * not creared - returns empty list
+ */
+ long_array GetLastCreatedElems();
+
};
};
// Load(face)
ERR_LOADF_NARROW_FACE, // too narrow face
ERR_LOADF_CLOSED_FACE, // closed face
+ ERR_LOADF_CANT_PROJECT, // impossible to project nodes
// Load(volume)
ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters
<component-username>Mesh</component-username>
<component-type>MESH</component-type>
<component-author>NRI</component-author>
- <component-version>3.2.0a2</component-version>
+ <component-version>3.2.0b1</component-version>
<component-comment>Mesh component</component-comment>
<component-multistudy>1</component-multistudy>
<component-icone>ModuleMesh.png</component-icone>
--- /dev/null
+<document>
+ <section name="SMESH">
+ <!-- Major module parameters -->
+ <parameter name="name" value="Mesh"/>
+ <parameter name="icon" value="ModuleMesh.png"/>
+ <!-- Other module preferences -->
+ <parameter name="node_color" value="255, 0, 0"/>
+ <parameter name="fill_color" value="0, 170, 255"/>
+ <parameter name="outline_color" value="0, 170, 255"/>
+ <parameter name="backface_color" value="0, 0, 255"/>
+ <parameter name="highlight_color" value="0, 255, 255"/>
+ <parameter name="node_size" value="3" />
+ <parameter name="element_width" value="1" />
+ <parameter name="shrink_coeff" value="75"/>
+ <parameter name="selection_element_color" value="255, 255, 0"/>
+ <parameter name="selection_object_color" value="255, 255, 255"/>
+ <parameter name="selection_precision_element" value="0.005"/>
+ <parameter name="selection_precision_node" value="0.005"/>
+ <parameter name="selection_width" value="5"/>
+ <parameter name="highlight_width" value="5"/>
+ <parameter name="controls_precision" value="0"/>
+ <parameter name="scalar_bar_horizontal_height" value="0.05"/>
+ <parameter name="scalar_bar_horizontal_width" value="0.5" />
+ <parameter name="scalar_bar_horizontal_x" value="0.01"/>
+ <parameter name="scalar_bar_horizontal_y" value="0.01"/>
+ <parameter name="scalar_bar_label_color" value="255, 255, 255"/>
+ <parameter name="scalar_bar_label_font" value="Arial,12" />
+ <parameter name="scalar_bar_num_colors" value="64"/>
+ <parameter name="scalar_bar_num_labels" value="5" />
+ <parameter name="scalar_bar_orientation" value="0" />
+ <parameter name="scalar_bar_title_color" value="255, 255, 255"/>
+ <parameter name="scalar_bar_title_font" value="Arial,12" />
+ <parameter name="scalar_bar_vertical_height" value="0.5" />
+ <parameter name="scalar_bar_vertical_width" value="0.05" />
+ <parameter name="scalar_bar_vertical_x" value="0.01" />
+ <parameter name="scalar_bar_vertical_y" value="0.01" />
+ <parameter name="DisplayMode" value="true" />
+ <parameter name="auto_update" value="true" />
+ <parameter name="display_mode" value="1" />
+ <parameter name="auto_groups" value="false"/>
+ </section>
+ <section name="resources">
+ <!-- Module resources -->
+ <parameter name="SMESH" value="${SMESH_ROOT_DIR}/share/salome/resources"/>
+ <parameter name="StdMeshers" value="${SMESH_ROOT_DIR}/share/salome/resources"/>
+ </section>
+</document>
<algorithm type="Regular_1D"
label-id="Wire discretisation"
icon-id="mesh_algo_regular.png"
- dim="1"/>
+ hypos="LocalLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength"
+ opt-hypos="Propagation,QuadraticMesh"
+ output="EDGE"
+ dim="1"/>
<algorithm type="MEFISTO_2D"
label-id="Triangle (Mefisto)"
icon-id="mesh_algo_mefisto.png"
- dim="2"/>
+ hypos="LengthFromEdges,MaxElementArea"
+ input="EDGE"
+ output="TRIA"
+ dim="2"/>
<algorithm type="Quadrangle_2D"
label-id="Quadrangle (Mapping)"
icon-id="mesh_algo_quad.png"
+ opt-hypos="QuadranglePreference"
+ input="EDGE"
+ output="QUAD"
dim="2"/>
<algorithm type="Hexa_3D"
label-id="Hexahedron (i,j,k)"
icon-id="mesh_algo_hexa.png"
+ input="QUAD"
dim="3"/>
</algorithms>
</meshers-group>
double NumericalFunctor::GetValue( long theId )
{
+ myCurrElement = myMesh->FindElement( theId );
TSequenceOfXYZ P;
if ( GetPoints( theId, P ))
{
double AspectRatio3D::GetValue( const TSequenceOfXYZ& P )
{
double aQuality = 0.0;
+ if(myCurrElement->IsPoly()) return aQuality;
int nbNodes = P.size();
switch(nbNodes){
case 4:{
double MultiConnection2D::GetValue( long theElementId )
{
- TSequenceOfXYZ P;
int aResult = 0;
- if (GetPoints(theElementId,P)){
- const SMDS_MeshElement* anFaceElem = myMesh->FindElement( theElementId );
- SMDSAbs_ElementType aType = anFaceElem->GetType();
-
- int len = P.size();
-
- TColStd_MapOfInteger aMap;
- int aResult = 0;
+ const SMDS_MeshElement* aFaceElem = myMesh->FindElement(theElementId);
+ SMDSAbs_ElementType aType = aFaceElem->GetType();
- switch (aType){
- case SMDSAbs_All:
- case SMDSAbs_Node:
- case SMDSAbs_Edge:
- case SMDSAbs_Face:
- if (len == 3){ // triangles
- int Nb[3] = {0,0,0};
-
- int i=0;
- SMDS_ElemIteratorPtr anIter = anFaceElem->nodesIterator();
- if ( anIter != 0 ) {
- while( anIter->more() ) {
- const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
- if ( aNode == 0 ){
- break;
- }
- 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 ) ){
- Nb[i]++;
- }
- }
- else if ( anElem != 0 && anElem->GetType() == SMDSAbs_Edge ) i++;
- }
- }
- }
-
- aResult = Max(Max(Nb[0],Nb[1]),Nb[2]);
+ switch (aType) {
+ case SMDSAbs_Face:
+ {
+ int i = 0, len = aFaceElem->NbNodes();
+ SMDS_ElemIteratorPtr anIter = aFaceElem->nodesIterator();
+ if (!anIter) break;
+
+ const SMDS_MeshNode *aNode, *aNode0;
+ TColStd_MapOfInteger aMap, aMapPrev;
+
+ for (i = 0; i <= len; i++) {
+ aMapPrev = aMap;
+ aMap.Clear();
+
+ int aNb = 0;
+ if (anIter->more()) {
+ aNode = (SMDS_MeshNode*)anIter->next();
+ } else {
+ if (i == len)
+ aNode = aNode0;
+ else
+ break;
+ }
+ if (!aNode) break;
+ if (i == 0) aNode0 = aNode;
+
+ SMDS_ElemIteratorPtr anElemIter = aNode->GetInverseElementIterator();
+ while (anElemIter->more()) {
+ const SMDS_MeshElement* anElem = anElemIter->next();
+ if (anElem != 0 && anElem->GetType() == SMDSAbs_Face) {
+ int anId = anElem->GetID();
+
+ aMap.Add(anId);
+ if (aMapPrev.Contains(anId)) {
+ aNb++;
+ }
+ }
+ }
+ aResult = Max(aResult, aNb);
}
- break;
- case SMDSAbs_Volume:
- default: aResult=0;
}
-
+ break;
+ default:
+ aResult = 0;
}
- return aResult;//getNbMultiConnection( myMesh, theId );
+
+ return aResult;
}
double MultiConnection2D::GetBadRate( double Value, int /*nbNodes*/ ) const
else {
anIter = aFace->nodesIterator();
}
- if ( anIter != 0 )
+ if ( anIter == 0 )
return false;
int i = 0, nbNodes = aFace->NbNodes();
TSequenceOfXYZ& theRes);
protected:
const SMDS_Mesh* myMesh;
+ const SMDS_MeshElement* myCurrElement;
long myPrecision;
};
// Reading MED nodes to the corresponding SMDS structure
//------------------------------------------------------
PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo);
+ if(!aNodeInfo)
+ continue;
PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo);
//
#include "DriverUNV_R_SMDS_Mesh.h"
#include "SMDS_Mesh.hxx"
+#include "SMDS_MeshGroup.hxx"
#include "utilities.h"
#include "UNV2411_Structure.hxx"
#include "UNV2412_Structure.hxx"
+#include "UNV2417_Structure.hxx"
#include "UNV_Utilities.hxx"
using namespace std;
#endif
+DriverUNV_R_SMDS_Mesh::~DriverUNV_R_SMDS_Mesh()
+{
+ if (myGroup != 0)
+ delete myGroup;
+}
+
+
Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
{
Status aResult = DRS_OK;
const TElementLab& aLabel = anIter->first;
const TRecord& aRec = anIter->second;
if(IsBeam(aRec.fe_descriptor_id)) {
- if(aRec.fe_descriptor_id == 11) {
- // edge with two nodes
+ switch ( aRec.node_labels.size() ) {
+ case 2: // edge with two nodes
anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
aRec.node_labels[1],
aLabel);
- }
- else {
- // quadratic edge (with 3 nodes)
+ break;
+ case 3: // quadratic edge (with 3 nodes)
anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
- aRec.node_labels[1],
aRec.node_labels[2],
+ aRec.node_labels[1],
aLabel);
}
}
case 42: // Plane Stress Quadratic Triangle - TRI6
case 92: // Thin Shell Quadratic Triangle - TRI6
anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
- aRec.node_labels[1],
aRec.node_labels[2],
- aRec.node_labels[3],
aRec.node_labels[4],
+ aRec.node_labels[1],
+ aRec.node_labels[3],
aRec.node_labels[5],
aLabel);
break;
case 45: // Plane Stress Quadratic Quadrilateral - QUAD8
case 95: // Thin Shell Quadratic Quadrilateral - QUAD8
anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
- aRec.node_labels[1],
aRec.node_labels[2],
- aRec.node_labels[3],
aRec.node_labels[4],
- aRec.node_labels[5],
aRec.node_labels[6],
+ aRec.node_labels[1],
+ aRec.node_labels[3],
+ aRec.node_labels[5],
aRec.node_labels[7],
aLabel);
break;
case 118: // Solid Quadratic Tetrahedron - TET10
anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
- aRec.node_labels[2],
- aRec.node_labels[1],
- aRec.node_labels[3],
- aRec.node_labels[6],
- aRec.node_labels[5],
aRec.node_labels[4],
- aRec.node_labels[7],
+ aRec.node_labels[2],
+
aRec.node_labels[9],
+
+ aRec.node_labels[5],
+ aRec.node_labels[3],
+ aRec.node_labels[1],
+
+ aRec.node_labels[6],
aRec.node_labels[8],
+ aRec.node_labels[7],
aLabel);
break;
case 113: // Solid Quadratic Prism - PRISM15
anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
+ aRec.node_labels[4],
aRec.node_labels[2],
- aRec.node_labels[1],
- aRec.node_labels[3],
+
+ aRec.node_labels[9],
+ aRec.node_labels[13],
+ aRec.node_labels[11],
+
aRec.node_labels[5],
- aRec.node_labels[4],
+ aRec.node_labels[3],
+ aRec.node_labels[1],
+
+ aRec.node_labels[14],
+ aRec.node_labels[12],
+ aRec.node_labels[10],
+
+ aRec.node_labels[6],
aRec.node_labels[8],
aRec.node_labels[7],
- aRec.node_labels[6],
- aRec.node_labels[11],
- aRec.node_labels[10],
- aRec.node_labels[9],
- aRec.node_labels[12],
- aRec.node_labels[14],
- aRec.node_labels[13],
aLabel);
break;
case 116: // Solid Quadratic Brick - HEX20
anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
- aRec.node_labels[3],
- aRec.node_labels[2],
- aRec.node_labels[1],
+ aRec.node_labels[6],
aRec.node_labels[4],
+ aRec.node_labels[2],
+
+ aRec.node_labels[12],
+ aRec.node_labels[18],
+ aRec.node_labels[16],
+ aRec.node_labels[14],
+
aRec.node_labels[7],
- aRec.node_labels[6],
aRec.node_labels[5],
+ aRec.node_labels[3],
+ aRec.node_labels[1],
+
+ aRec.node_labels[19],
+ aRec.node_labels[17],
+ aRec.node_labels[15],
+ aRec.node_labels[13],
+
+ aRec.node_labels[8],
aRec.node_labels[11],
aRec.node_labels[10],
aRec.node_labels[9],
- aRec.node_labels[8],
- aRec.node_labels[15],
- aRec.node_labels[14],
- aRec.node_labels[13],
- aRec.node_labels[12],
- aRec.node_labels[16],
- aRec.node_labels[19],
- aRec.node_labels[18],
- aRec.node_labels[17],
aLabel);
break;
case 114: // pyramid of 13 nodes (quadratic) - PIRA13
anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
- aRec.node_labels[3],
- aRec.node_labels[2],
- aRec.node_labels[1],
+ aRec.node_labels[6],
aRec.node_labels[4],
- aRec.node_labels[8],
+ aRec.node_labels[2],
aRec.node_labels[7],
- aRec.node_labels[6],
aRec.node_labels[5],
- aRec.node_labels[9],
- aRec.node_labels[12],
+ aRec.node_labels[3],
+ aRec.node_labels[1],
+
+ aRec.node_labels[8],
aRec.node_labels[11],
aRec.node_labels[10],
+ aRec.node_labels[9],
+ aRec.node_labels[12],
aLabel);
break;
}
}
- if(!anElement)
- MESSAGE("DriverUNV_R_SMDS_Mesh::Perform - can not add element with ID = "<<aLabel<<" and type = "<<aRec.fe_descriptor_id);
+ // if(!anElement)
+ // MESSAGE("DriverUNV_R_SMDS_Mesh::Perform - can not add element with ID = "<<aLabel<<" and type = "<<aRec.fe_descriptor_id);
}
}
+ {
+ using namespace UNV2417;
+ in_stream.seekg(0);
+ TDataSet aDataSet2417;
+ UNV2417::Read(in_stream,aDataSet2417);
+ if(MYDEBUG) MESSAGE("Perform - aDataSet2417.size() = "<<aDataSet2417.size());
+ if (aDataSet2417.size() > 0) {
+ myGroup = new SMDS_MeshGroup(myMesh);
+ TDataSet::const_iterator anIter = aDataSet2417.begin();
+ for(; anIter != aDataSet2417.end(); anIter++){
+ const TGroupId& aLabel = anIter->first;
+ const TRecord& aRec = anIter->second;
+
+ int aNodesNb = aRec.NodeList.size();
+ int aElementsNb = aRec.ElementList.size();
+
+ bool useSuffix = ((aNodesNb > 0) && (aElementsNb > 0));
+ int i;
+ if (aNodesNb > 0) {
+ SMDS_MeshGroup* aNodesGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Node);
+ std::string aGrName = (useSuffix) ? aRec.GroupName + "_Nodes" : aRec.GroupName;
+ myGroupNames.insert(TGroupNamesMap::value_type(aNodesGroup, aGrName));
+ myGroupId.insert(TGroupIdMap::value_type(aNodesGroup, aLabel));
+
+ for (i = 0; i < aNodesNb; i++) {
+ const SMDS_MeshNode* aNode = myMesh->FindNode(aRec.NodeList[i]);
+ if (aNode)
+ aNodesGroup->Add(aNode);
+ }
+ }
+ if (aElementsNb > 0){
+ SMDS_MeshGroup* aEdgesGroup = 0;
+ SMDS_MeshGroup* aFacesGroup = 0;
+ SMDS_MeshGroup* aVolumeGroup = 0;
+ bool createdGroup = false;
+
+ for (i = 0; i < aElementsNb; i++) {
+ const SMDS_MeshElement* aElement = myMesh->FindElement(aRec.ElementList[i]);
+ if (aElement) {
+ switch (aElement->GetType()) {
+ case SMDSAbs_Edge:
+ if (!aEdgesGroup) {
+ aEdgesGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Edge);
+ if (!useSuffix && createdGroup) useSuffix = true;
+ std::string aEdgesGrName = (useSuffix) ? aRec.GroupName + "_Edges" : aRec.GroupName;
+ myGroupNames.insert(TGroupNamesMap::value_type(aEdgesGroup, aEdgesGrName));
+ myGroupId.insert(TGroupIdMap::value_type(aEdgesGroup, aLabel));
+ createdGroup = true;
+ }
+ aEdgesGroup->Add(aElement);
+ break;
+ case SMDSAbs_Face:
+ if (!aFacesGroup) {
+ aFacesGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Face);
+ if (!useSuffix && createdGroup) useSuffix = true;
+ std::string aFacesGrName = (useSuffix) ? aRec.GroupName + "_Faces" : aRec.GroupName;
+ myGroupNames.insert(TGroupNamesMap::value_type(aFacesGroup, aFacesGrName));
+ myGroupId.insert(TGroupIdMap::value_type(aFacesGroup, aLabel));
+ createdGroup = true;
+ }
+ aFacesGroup->Add(aElement);
+ break;
+ case SMDSAbs_Volume:
+ if (!aVolumeGroup) {
+ aVolumeGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Volume);
+ if (!useSuffix && createdGroup) useSuffix = true;
+ std::string aVolumeGrName = (useSuffix) ? aRec.GroupName + "_Volumes" : aRec.GroupName;
+ myGroupNames.insert(TGroupNamesMap::value_type(aVolumeGroup, aVolumeGrName));
+ myGroupId.insert(TGroupIdMap::value_type(aVolumeGroup, aLabel));
+ createdGroup = true;
+ }
+ aVolumeGroup->Add(aElement);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
catch(const std::exception& exc){
INFOS("Follow exception was cought:\n\t"<<exc.what());
#define _INCLUDE_DRIVERUNV_R_SMDS_MESH
#include "Driver_SMDS_Mesh.h"
+#include <map>
+#include <string>
+
class SMDS_Mesh;
+class SMDS_MeshGroup;
+
+
+typedef std::map<SMDS_MeshGroup*, std::string> TGroupNamesMap;
+typedef std::map<SMDS_MeshGroup*, int> TGroupIdMap;
class DriverUNV_R_SMDS_Mesh: public Driver_SMDS_Mesh
{
public:
+ DriverUNV_R_SMDS_Mesh():Driver_SMDS_Mesh(),myGroup(0) {};
+ ~DriverUNV_R_SMDS_Mesh();
+
virtual Status Perform();
+
+ const SMDS_MeshGroup* GetGroup() const { return myGroup;}
+ const TGroupNamesMap& GetGroupNamesMap() const { return myGroupNames; }
+ const TGroupIdMap& GetGroupIdMap() const { return myGroupId; }
+
+ private:
+ SMDS_MeshGroup* myGroup;
+ TGroupNamesMap myGroupNames;
+ TGroupIdMap myGroupId;
};
#endif
#include "DriverUNV_W_SMDS_Mesh.h"
#include "SMDS_Mesh.hxx"
+#include "SMESHDS_GroupBase.hxx"
+//#include "SMESH_Group.hxx"
+#include "SMDS_QuadraticEdge.hxx"
+#include "SMDS_QuadraticFaceOfNodes.hxx"
#include "utilities.h"
#include "UNV2411_Structure.hxx"
#include "UNV2412_Structure.hxx"
+#include "UNV2417_Structure.hxx"
#include "UNV_Utilities.hxx"
using namespace std;
int aNbNodes = anElem->NbNodes();
TRecord aRec;
aRec.node_labels.reserve(aNbNodes);
- SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+ SMDS_ElemIteratorPtr aNodesIter;
+ if( anElem->IsQuadratic() ) {
+ aNodesIter = static_cast<const SMDS_QuadraticEdge* >
+ ( anElem )->interlacedNodesElemIterator();
+ aRec.fe_descriptor_id = 22;
+ } else {
+ aNodesIter = anElem->nodesIterator();
+ aRec.fe_descriptor_id = 11;
+ }
for(; aNodesIter->more();){
const SMDS_MeshElement* aNode = aNodesIter->next();
aRec.node_labels.push_back(aNode->GetID());
}
- if(aNbNodes==2)
- aRec.fe_descriptor_id = 11;
- else
- aRec.fe_descriptor_id = 21;
aDataSet2412.insert(TDataSet::value_type(aLabel,aRec));
}
MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
int aNbNodes = anElem->NbNodes();
TRecord aRec;
aRec.node_labels.reserve(aNbNodes);
- SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+ SMDS_ElemIteratorPtr aNodesIter;
+ if( anElem->IsQuadratic() )
+ aNodesIter = static_cast<const SMDS_QuadraticFaceOfNodes* >
+ ( anElem )->interlacedNodesElemIterator();
+ else
+ aNodesIter = anElem->nodesIterator();
for(; aNodesIter->more();){
const SMDS_MeshElement* aNode = aNodesIter->next();
aRec.node_labels.push_back(aNode->GetID());
break;
}
case 10: {
- static int anIds[] = {0,2,1,3,6,5,4,7,9,8};
+ static int anIds[] = {0,4,2,9,5,3, 1,6,8, 7};
aConn = anIds;
anId = 118;
break;
}
case 13: {
- static int anIds[] = {0,3,2,1,4,8,7,6,5,9,12,11,10};
+ static int anIds[] = {0,6,4,2,7,5,3,1,8,11,10,9,12};
aConn = anIds;
anId = 114;
break;
}
case 15: {
- static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
+ static int anIds[] = {0,4,2,9,13,11,5,3,1,14,12,10,6,8,7};
aConn = anIds;
anId = 113;
break;
}
case 20: {
- static int anIds[] = {0,3,2,1,4,7,6,5,11,10,9,8,15,14,13,12,16,19,18,17};
+ static int anIds[] = {0,6, 4,2, 12,18,16,14,7, 5, 3, 1, 19,17,15,13,8, 11,10,9};
aConn = anIds;
anId = 116;
break;
}
UNV2412::Write(out_stream,aDataSet2412);
}
+ {
+ using namespace UNV2417;
+ if (myGroups.size() > 0) {
+ TDataSet aDataSet2417;
+ TGroupList::const_iterator aIter = myGroups.begin();
+ for (; aIter != myGroups.end(); aIter++) {
+ SMESHDS_GroupBase* aGroupDS = *aIter;
+ TRecord aRec;
+ aRec.GroupName = aGroupDS->GetStoreName();
+
+ int i;
+ SMDS_ElemIteratorPtr aIter = aGroupDS->GetElements();
+ if (aGroupDS->GetType() == SMDSAbs_Node) {
+ aRec.NodeList.resize(aGroupDS->Extent());
+ i = 0;
+ while (aIter->more()) {
+ const SMDS_MeshElement* aElem = aIter->next();
+ aRec.NodeList[i] = aElem->GetID();
+ i++;
+ }
+ } else {
+ aRec.ElementList.resize(aGroupDS->Extent());
+ i = 0;
+ while (aIter->more()) {
+ const SMDS_MeshElement* aElem = aIter->next();
+ aRec.ElementList[i] = aElem->GetID();
+ i++;
+ }
+ }
+ aDataSet2417.insert(TDataSet::value_type(aGroupDS->GetID(), aRec));
+ }
+ UNV2417::Write(out_stream,aDataSet2417);
+ myGroups.clear();
+ }
+ }
+ /* {
+ using namespace UNV2417;
+ TDataSet aDataSet2417;
+ for ( TGroupsMap::iterator it = myGroupsMap.begin(); it != myGroupsMap.end(); it++ ) {
+ SMESH_Group* aGroup = it->second;
+ SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
+ if ( aGroupDS ) {
+ TRecord aRec;
+ aRec.GroupName = aGroup->GetName();
+ int i;
+ SMDS_ElemIteratorPtr aIter = aGroupDS->GetElements();
+ if (aGroupDS->GetType() == SMDSAbs_Node) {
+ aRec.NodeList.resize(aGroupDS->Extent());
+ i = 0;
+ while (aIter->more()) {
+ const SMDS_MeshElement* aElem = aIter->next();
+ aRec.NodeList[i] = aElem->GetID();
+ i++;
+ }
+ } else {
+ aRec.ElementList.resize(aGroupDS->Extent());
+ i = 0;
+ while (aIter->more()) {
+ const SMDS_MeshElement* aElem = aIter->next();
+ aRec.ElementList[i] = aElem->GetID();
+ i++;
+ }
+ }
+ aDataSet2417.insert(TDataSet::value_type(aGroupDS->GetID(), aRec));
+ }
+ }
+ UNV2417::Write(out_stream,aDataSet2417);
+ }*/
}
catch(const std::exception& exc){
INFOS("Follow exception was cought:\n\t"<<exc.what());
#define _INCLUDE_DRIVERUNV_W_SMDS_MESH
#include "Driver_SMDS_Mesh.h"
+#include "SMESHDS_GroupBase.hxx"
+#include <list>
+
+
+typedef std::list<SMESHDS_GroupBase*> TGroupList;
class DriverUNV_W_SMDS_Mesh: public Driver_SMDS_Mesh
{
public:
virtual Status Perform();
+
+ void AddGroup(SMESHDS_GroupBase* theGroup) { myGroups.push_back(theGroup); }
+
+ private:
+ TGroupList myGroups;
};
DriverUNV_W_SMESHDS_Document.cxx \
DriverUNV_W_SMDS_Mesh.cxx \
DriverUNV_W_SMESHDS_Mesh.cxx \
- UNV_Utilities.cxx UNV2411_Structure.cxx UNV2412_Structure.cxx
+ UNV_Utilities.cxx UNV2411_Structure.cxx UNV2412_Structure.cxx UNV2417_Structure.cxx
# Executables targets
BIN = UNV_Test
// end of dataset is reached
break;
}
-
+
int n_nodes;
TRecord aRec;
in_stream>>aRec.fe_descriptor_id;
bool UNV2412::IsBeam(int theFeDescriptorId){
switch (theFeDescriptorId){
case 11: // edge with 2 nodes
- case 21: // edge with 3 nodes (quadratic)
- case 22:
+ case 21:
+ case 22: // edge with 3 nodes
+ case 23: // curved beam
case 24:
case 25:
return true;
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+#include "UNV2417_Structure.hxx"
+#include "UNV_Utilities.hxx"
+
+#include <fstream>
+#include <iomanip>
+
+using namespace std;
+using namespace UNV;
+using namespace UNV2417;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+
+static string _group_labels[] = {"2417", "2429", "2430", "2432", "2435", "2452", "2467"};
+#define NBGROUP 7
+
+static string _label_dataset = "2467";
+
+void UNV2417::Read(std::ifstream& in_stream, TDataSet& theDataSet)
+{
+ if(!in_stream.good())
+ EXCEPTION(runtime_error,"ERROR: Input file not good.");
+
+ std::string olds, news;
+
+ while(true){
+ in_stream >> olds >> news;
+ /*
+ * a "-1" followed by a number means the beginning of a dataset
+ * stop combing at the end of the file
+ */
+ while( ((olds != "-1") || (news == "-1") ) && !in_stream.eof() ){
+ olds = news;
+ in_stream >> news;
+ }
+ if(in_stream.eof())
+ return;
+ for (int i = 0; i < NBGROUP; i++) {
+ if (news == _group_labels[i]) {
+ ReadGroup(news, in_stream, theDataSet);
+ }
+ }
+ }
+}
+
+
+
+void UNV2417::ReadGroup(const std::string& myGroupLabel, std::ifstream& in_stream, TDataSet& theDataSet)
+{
+ TGroupId aId;
+ for(; !in_stream.eof();){
+ in_stream >> aId ;
+ if(aId == -1){
+ // end of dataset is reached
+ break;
+ }
+
+ int n_nodes;
+ TRecord aRec;
+ int aTmp;
+ in_stream>>aTmp; // miss not necessary values
+ in_stream>>aTmp;
+ in_stream>>aTmp;
+ in_stream>>aTmp;
+ in_stream>>aTmp;
+ in_stream>>aTmp;
+ in_stream>>n_nodes;
+
+ std::getline(in_stream, aRec.GroupName, '\n'); // Finalise previous reading
+ std::getline(in_stream, aRec.GroupName, '\n');
+
+ int aElType;
+ int aElId;
+ int aNum;
+ for(int j=0; j < n_nodes; j++){
+ in_stream>>aElType;
+ in_stream>>aElId;
+ if ((myGroupLabel.compare("2435") == 0) || (myGroupLabel.compare("2452") == 0) || (myGroupLabel.compare("2467") == 0)) {
+ in_stream>>aTmp;
+ in_stream>>aTmp;
+ }
+ switch (aElType) {
+ case 7: // Nodes
+ aNum = aRec.NodeList.size();
+ aRec.NodeList.resize(aNum + 1);
+ aRec.NodeList[aNum] = aElId;
+ break;
+ case 8: // Elements
+ aNum = aRec.ElementList.size();
+ aRec.ElementList.resize(aNum + 1);
+ aRec.ElementList[aNum] = aElId;
+ break;
+ }
+ }
+ theDataSet.insert(TDataSet::value_type(aId,aRec));
+ }
+
+}
+
+
+void UNV2417::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
+{
+ if(!out_stream.good())
+ EXCEPTION(runtime_error,"ERROR: Output file not good.");
+
+ /*
+ * Write beginning of dataset
+ */
+ out_stream<<" -1\n";
+ out_stream<<" "<<_label_dataset<<"\n";
+
+ TDataSet::const_iterator anIter = theDataSet.begin();
+ for(; anIter != theDataSet.end(); anIter++){
+ const TGroupId& aLabel = anIter->first;
+ const TRecord& aRec = anIter->second;
+ int aNbNodes = aRec.NodeList.size();
+ int aNbElements = aRec.ElementList.size();
+ int aNbRecords = aNbNodes + aNbElements;
+
+ out_stream<<std::setw(10)<<aLabel; /* group ID */
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<aNbRecords<<std::endl;
+
+ out_stream<<aRec.GroupName<<std::endl;
+ int aRow = 0;
+ int i;
+ for (i = 0; i < aNbNodes; i++) {
+ if (aRow == 2) {
+ out_stream<<std::endl;
+ aRow = 0;
+ }
+ out_stream<<std::setw(10)<<7;
+ out_stream<<std::setw(10)<<aRec.NodeList[i];
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ aRow++;
+ }
+ for (i = 0; i < aNbElements; i++) {
+ if (aRow == 2) {
+ out_stream<<std::endl;
+ aRow = 0;
+ }
+ out_stream<<std::setw(10)<<8;
+ out_stream<<std::setw(10)<<aRec.ElementList[i];
+ out_stream<<std::setw(10)<<0;
+ out_stream<<std::setw(10)<<0;
+ aRow++;
+ }
+ out_stream<<std::endl;
+ }
+
+ /*
+ * Write end of dataset
+ */
+ out_stream<<" -1\n";
+}
--- /dev/null
+// 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 UNV2417_Structure_HeaderFile
+#define UNV2417_Structure_HeaderFile
+
+#include <map>
+#include <vector>
+#include <fstream>
+#include <string>
+
+
+namespace UNV2417{
+
+ typedef std::vector<int> TListOfId; // Nodal connectivitiesList of Id
+
+ struct TRecord{
+ std::string GroupName;
+ TListOfId NodeList;
+ TListOfId ElementList;
+ };
+
+ typedef int TGroupId; // type of element label
+ typedef std::map<TGroupId, TRecord> TDataSet;
+
+ void Read(std::ifstream& in_stream, TDataSet& theDataSet);
+ void ReadGroup(const std::string& myGroupLabel, std::ifstream& in_stream, TDataSet& theDataSet);
+
+ void Write(std::ofstream& out_stream, const TDataSet& theDataSet);
+};
+
+
+#endif
+# Copyright (C) 2005 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.salome-platform.org/
+#
# File : Makefile.in
# Author :
# Module : SMESH
-// MEFISTO : library to compute 2D triangulation from segmented boundaries
+// MEFISTO2: a library to compute 2D triangulation from segmented boundaries
//
-// Copyright (C) 2003 Laboratoire J.-L. Lions UPMC Paris
+// Copyright (C) 2006 Laboratoire J.-L. Lions UPMC Paris
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
//
-//
-// File : aptrte.cxx
+// File : aptrte.cxx le C++ de l'appel du trianguleur plan
// Module : SMESH
-// Author: Alain PERRONNET
+// Author : Alain PERRONNET
+// Date : 16 mars 2006
#include "Rn.h"
#include "aptrte.h"
}
-void aptrte( Z nutysu, R aretmx,
- Z nblf, Z * nudslf, R2 * uvslf,
- Z nbpti, R2 *uvpti,
- Z & nbst, R2 * & uvst, Z & nbt, Z * & nust,
+void aptrte( Z nutysu, R aretmx,
+ Z nblf, Z * nudslf, R2 * uvslf,
+ Z nbpti, R2 * uvpti,
+ Z & nbst, R2 * & uvst,
+ Z & nbt, Z * & nust,
Z & ierr )
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// but : appel de la triangulation par un arbre-4 recouvrant
// ierr : 0 si pas d'erreur
// > 0 sinon
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// auteur : Alain Perronnet Analyse Numerique Paris UPMC decembre 2001
+// auteur : Alain Perronnet Laboratoire J.-L. LIONS Paris UPMC mars 2006
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
{
+ Z nbsttria=4; //Attention: 4 sommets stockes par triangle
+ //no st1, st2, st3, 0 (non quadrangle)
+
R d, tcpu=0;
R3 direction=R3(0,0,0); //direction pour areteideale() inactive ici!
Z nbarfr=nudslf[nblf]; //nombre total d'aretes des lignes fermees
R3 *mnpxyd=NULL;
Z *mnsoar=NULL, mosoar=7, mxsoar, n1soar; //le hachage des aretes
Z *mnartr=NULL, moartr=3, mxartr, n1artr; //le no des 3 aretes des triangles
- Z *mntree=NULL, motree=9, mxtree; //L'arbre 4 de TE et nombre d'entiers par TE
+ Z *mntree=NULL, motree=9, mxtree; //L'arbre 4 de TE et nombre d'entiers par TE
Z *mnqueu=NULL, mxqueu;
Z *mn1arcf=NULL;
Z *mnarcf=NULL, mxarcf;
Z *mnarcf2=NULL;
Z *mnarcf3=NULL;
Z *mntrsu=NULL;
- Z *mndalf=NULL;
Z *mnslig=NULL;
Z *mnarst=NULL;
Z *mnlftr=NULL;
Z i, l, n, ns, ns0, ns1, ns2, nosotr[3], nt;
Z mxsomm, nbsomm, nbarpi, nbarli, ndtri0, mn;
Z moins1=-1;
+ R dist;
aretemaxface_ = aretmx;
// quelques reservations de tableaux pour faire les calculs
// ========================================================
- // le tableau pointeur sur la premiere arete de chaque ligne fermee
- if( mndalf!=NULL ) delete [] mndalf;
- mndalf = new Z[1+nblf];
- if( mndalf==NULL ) goto ERREUR;
- mndalf[0]=0;
-
// declaration du tableau des coordonnees des sommets de la frontiere
// puis des sommets internes ajoutes
// majoration empirique du nombre de sommets de la triangulation
- i = 4*nbarfr/10;
+ i = 4*nbarfr/10;
mxsomm = Max( 20000, 64*nbpti+i*i );
- MESSAGE( "APTRTE: Depart de la triangulation avec " );
+ MESSAGE( "APTRTE: Debut de la triangulation plane avec " );
MESSAGE( "nutysu=" << nutysu << " aretmx=" << aretmx << " mxsomm=" << mxsomm );
+ MESSAGE( nbarfr << " sommets sur la frontiere et " << nbpti << " points internes");
NEWDEPART:
//mnpxyd( 3, mxsomm ) les coordonnees UV des sommets et la taille d'arete aux sommets
//pas de test sur ierr car pas de saturation possible a ce niveau
//le pointeur dans le hachage sur la premiere arete de la ligne fermee n
- mndalf[n] = noar0;
+ //mndalf[n] = noar0;
//la nouvelle arete est la suivante de l'arete definie juste avant
if( noar > 0 )
// mise en delaunay de la triangulation
// =====================================================
mnarcf3 = new Z[mxarcf];
- if( mnarcf3 == NULL ) goto ERREUR;
-
+ if( mnarcf3 == NULL )
+ {
+ cout << "aptrte: MC saturee mnarcf3=" << mnarcf3 << endl;
+ goto ERREUR;
+ }
teamqt_( nutysu,
mnarst, mosoar, mxsoar, n1soar, mnsoar,
moartr, mxartr, n1artr, mnartr,
mn1arcf, mnarcf, mnarcf1,
comxmi, nbarpi, nbsomm, mxsomm, mnpxyd, mnslig,
ierr );
+ if( mnarcf3 != NULL ) {delete [] mnarcf3; mnarcf3=NULL;}
if( mn1arcf != NULL ) {delete [] mn1arcf; mn1arcf=NULL;}
if( mnarcf != NULL ) {delete [] mnarcf; mnarcf =NULL;}
if( mnarcf1 != NULL ) {delete [] mnarcf1; mnarcf1=NULL;}
if( mnarcf2 != NULL ) {delete [] mnarcf2; mnarcf2=NULL;}
- if( mnarcf3 != NULL ) {delete [] mnarcf3; mnarcf3=NULL;}
deltacpu_( d );
tcpu += d;
// -----------------------------------------------------
// boucle sur les triangles occupes (internes et externes)
if( nust != NULL ) delete [] nust;
- nust = new Z[4*nbt];
+ nust = new Z[nbsttria*nbt];
if( nust == NULL ) goto ERREUR;
nbt = 0;
for (i=1; i<=mxartr; i++)
nust[nbt++] = 0;
}
}
- nbt /= 4; //le nombre final de triangles de la surface
- MESSAGE("Nombre de sommets=" << nbst
- << " Nombre de triangles=" << nbt);
-
+ nbt /= nbsttria; //le nombre final de triangles de la surface
+ MESSAGE( "APTRTE: Fin de la triangulation plane avec "<<nbst<<" sommets et "
+ << nbt << " triangles=" << nbt);
deltacpu_( d );
tcpu += d;
- MESSAGE( "Temps total de la triangulation=" << tcpu << " secondes" );
+ MESSAGE( "APTRTE: Temps total de la triangulation plane=" << tcpu << " secondes" );
// destruction des tableaux auxiliaires
// ------------------------------------
if( mnslig != NULL ) delete [] mnslig;
if( mnsoar != NULL ) delete [] mnsoar;
if( mnpxyd != NULL ) delete [] mnpxyd;
- if( mndalf != NULL ) delete [] mndalf;
if( mntree != NULL ) delete [] mntree;
if( mnqueu != NULL ) delete [] mnqueu;
if( mntrsu != NULL ) delete [] mntrsu;
}
else
{
- MESSAGE( "Triangulation non realisee " << ierr );
+ MESSAGE( "APTRTE: Triangulation NON REALISEE avec erreur=" << ierr );
if( ierr == 0 ) ierr=1;
goto NETTOYAGE;
}
quamoy /= nbtria;
MESSAGE("Qualite moyenne=" << quamoy
<< " Qualite minimale=" << quamin
- << " des " << nbtria << " triangles de surface totale="
+ << " des " << nbtria << " triangles de surface plane totale="
<< aire);
if( nbtrianeg>0 )
-c MEFISTO : library to compute 2D triangulation from segmented boundaries
+c MEFISTO2: a library to compute 2D triangulation from segmented boundaries
c
-c Copyright (C) 2003 Laboratoire J.-L. Lions UPMC Paris
+c Copyright (C) 2006 Laboratoire J.-L. Lions UPMC Paris
c
c This library is free software; you can redistribute it and/or
c modify it under the terms of the GNU Lesser General Public
c License along with this library; if not, write to the Free Software
c Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
c
-c See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
+c See http://www.ann.jussieu.fr/~perronnet or email perronnet@ann.jussieu.fr
c
-c
-c File : trte.f
+c File : trte.f le Fortran du trianguleur plan
c Module : SMESH
-c Author: Alain PERRONNET
+c Author : Alain PERRONNET
+c Date : 16 mars 2006
subroutine qutr2d( p1, p2, p3, qualite )
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% noarst(*)
integer lapile(1:mxpile)
integer nosotr(3)
+c
+ lhpile = 0
c
c la premiere arete de sommet ns
nar = noarst( ns )
c
c saturation de la pile des triangles
c -----------------------------------
- 9990 write(imprim,*) 'trp1st:saturation pile des triangles autour ',
+ 9990 write(imprim,*)'trp1st: saturation pile des triangles autour ',
%'sommet',ns
goto 9999
c
c erreur triangle ne contenant pas le sommet ns
c ----------------------------------------------
- 9995 write(imprim,*) 'trp1st:triangle ',nta,' st=',
+ 9995 write(imprim,*) 'trp1st: triangle ',nta,' st=',
% (nosotr(nar),nar=1,3),' sans le sommet' ,ns
c
9999 lhpile = 0
% mosoar, mxsoar, n1soar, nosoar,
% moartr, mxartr, n1artr, noartr,
% mxarcf, n1arcf, noarcf, larmin, notrcf, liarcf,
- % nbstsu, ierr )
+ % ierr )
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
c but : supprimer de la triangulation les sommets de te trop proches
c ----- soit d'un sommet frontalier ou point interne impose
c
c sortie :
c --------
-c nbstsu : nombre de sommets de te supprimes
c ierr : =0 si pas d'erreur
c >0 si une erreur est survenue
c 11 algorithme defaillant
equivalence (nosotr(1),ns1), (nosotr(2),ns2),
% (nosotr(3),ns3)
c
-c le nombre de sommets de te supprimes
- nbstsu = 0
+cccc le nombre de sommets de te supprimes
+ccc nbstsu = 0
c
c initialisation du chainage des aretes des cf => 0 arete de cf
do 10 narete=1,mxsoar
c ils doivent former un contour ferme de type etoile
call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
% mxarcf, nbtrcf, notrcf )
- if( nbtrcf .le. 0 ) then
+ if( nbtrcf .eq. 0 ) goto 100
+ if( nbtrcf .lt. 0 ) then
c erreur: impossible de trouver tous les triangles de sommet ns
c seule une partie est a priori retrouvee
nbtrcf = -nbtrcf
% mxarcf, n1arcf, noarcf,
% larmin, notrcf, liarcf, ierr )
if( ierr .eq. 0 ) then
-c un sommet de te supprime de plus
- nbstsu = nbstsu + 1
+cccc un sommet de te supprime de plus
+ccc nbstsu = nbstsu + 1
+ goto 100
else if( ierr .lt. 0 ) then
c le sommet nste est externe donc non supprime
c ou bien le sommet nste est le centre d'un cf dont toutes
return
endif
c
-c boucle jusqu'a obtenir une qualite suffisante
-c si triangulation tres irreguliere =>
-c destruction de beaucoup de points internes
-c les 2 variables suivantes brident ces destructions massives
+cccc boucle jusqu'a obtenir une qualite suffisante
+cccc si triangulation tres irreguliere =>
+cccc destruction de beaucoup de points internes
+cccc les 2 variables suivantes brident ces destructions massives
ccc nbsuns = nbsuns + 1
- quaopt = quaopt * 0.8
-ccc if( nbsuns .le. 5 ) goto 15
- goto 15
+ccc quaopt = quaopt * 0.8
+ccc if( nbsuns .lt. 5 ) goto 15
endif
endif
c
100 continue
+c
+c write(imprim,*)'retrait de',nbstsu,
+c % ' sommets de te trop proches de la frontiere'
+ return
end
% mxtrcf, n1arcf, noarcf,
% larmin, notrcf, nostbo,
% ierr )
- if( ierr .lt. 0 ) then
+ if( ierr .eq. -543 ) then
+ ierr = 0
+ goto 1000
+ else if( ierr .lt. 0 ) then
c le sommet ns est externe donc non supprime
c ou bien le sommet ns est le centre d'un cf dont toutes
c les aretes simples sont frontalieres
c noarcf : tableau (3,mxtrcf) auxiliaire d'entiers
c larmin : tableau ( mxtrcf ) auxiliaire d'entiers
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique paris upmc mai 1997
+c auteur : Alain Perronnet Laboratoire J.-L. LIONS Paris UPMC mars 2006
c....................................................................012
parameter (lchain=6)
common / unites / lecteu, imprim, nunite(30)
double precision pxyd(3,*)
double precision ponder, ponde1, xbar, ybar, x, y, d, dmin, dmax
+ double precision surtd2
double precision d2d3(3,3)
real origin(3), xyz(3)
integer noartr(moartr,*),
nbst8 = 0
c
c coefficient de ponderation croissant avec les iterations
- ponder = min( 1d0, ( 50 + (50*iter)/nbitaq ) * 0.01d0 )
+ ponder = min( 1d0, 0.1d0 + iter * 0.9d0 / nbitaq )
+ccc 9 mars 2006 ponder = min( 1d0, ( 50 + (50*iter)/nbitaq ) * 0.01d0 )
ponde1 = 1d0 - ponder
c
c l'ordre du parcours dans le sens croissant ou decroissant
c ils doivent former un contour ferme de type etoile
call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
% mxtrcf, nbtrcf, notrcf )
- if( nbtrcf .le. 0 ) goto 1000
+ if( nbtrcf .le. 2 ) goto 1000
c
c boucle sur les triangles qui forment une boule autour du sommet ns
nbstbo = 0
c =================================================================
if( iter .ge. nbitaq ) goto 200
c
-c si la boule de ns contient 3 ou 4 triangles le sommet ns est detruit
-c ====================================================================
- if( nbtrcf .le. 4 ) then
+c si la boule de ns contient au plus 3 triangles
+c => pas de changement de topologie
+c ==============================================
+ if( nbtrcf .le. 3 ) goto 200
+c
+c si la boule de ns contient 4 triangles le sommet ns est detruit
+c ===============================================================
+ if( nbtrcf .eq. 4 ) then
c
c remise a -1 du chainage des aretes peripheriques de la boule ns
noar = noar0
% mxtrcf, n1arcf, noarcf,
% larmin, notrcf, nostbo,
% ierr )
- if( ierr .lt. 0 ) then
+ if( ierr .eq. -543 ) then
+ ierr = 0
+ goto 1000
+ else if( ierr .lt. 0 ) then
c le sommet ns est externe donc non supprime
c ou bien le sommet ns est le centre d'un cf dont toutes
c les aretes simples sont frontalieres
nbstsu = nbstsu + 1
else
c erreur irrecuperable
+ write(imprim,*)
+ % 'teamqs: erreur1 irrecuperable en sortie te1stm'
goto 9999
endif
goto 1000
endif
c
c le point ns1 devient le milieu de l'arete ns-ns1
+ x = pxyd(1,ns1)
+ y = pxyd(2,ns1)
+ d = pxyd(3,ns1)
do 75 j=1,3
pxyd(j,ns1) = (pxyd(j,ns) + pxyd(j,ns1)) * 0.5d0
75 continue
if( ierr .lt. 0 ) then
c le sommet ns est externe donc non supprime
c ou bien le sommet ns est le centre d'un cf dont toutes
-c les aretes simples sont frontalieres
-c dans les 2 cas le sommet ns n'est pas supprime
+c les aretes simples sont frontalieres ou erreur
+c dans les 3 cas le sommet ns n'est pas supprime
+c restauration du sommet ns1 a son ancienne place
+ pxyd(1,ns1) = x
+ pxyd(2,ns1) = y
+ pxyd(3,ns1) = d
ierr = 0
- goto 200
+ goto 1000
else if( ierr .eq. 0 ) then
nbstsu = nbstsu + 1
nbst5 = nbst5 + 1
goto 1000
else
c erreur irrecuperable
+ write(imprim,*)
+ % 'teamqs: erreur2 irrecuperable en sortie te1stm'
goto 9999
endif
endif
c
c ajout du nouveau barycentre
if( nbsomm .ge. mxsomm ) then
- write(imprim,*) 'saturation du tableau pxyd'
+ write(imprim,*) 'teamqs: saturation du tableau pxyd'
c abandon de l'amelioration
- goto 1100
+ goto 9999
endif
nbsomm = nbsomm + 1
do 120 i=1,3
% moartr, mxartr, n1artr, noartr,
% noarst,
% nosotr, ierr )
- if( ierr .ne. 0 ) goto 9999
+ if( ierr .ne. 0 ) then
+ write(imprim,*)
+ % 'teamqs: erreur irrecuperable en sortie tr3str'
+ goto 9999
+ endif
140 continue
c
nbst8 = nbst8 + 1
200 xbar = xbar / nbstbo
ybar = ybar / nbstbo
c
-c ponderation pour eviter les degenerescenses
+C DEBUT AJOUT 21/MAI/2005
+C PONDERATION POUR EVITER LES DEGENERESCENSES AVEC PROTECTION
+C SI UN TRIANGLE DE SOMMET NS A UNE AIRE NEGATIVE APRES BARYCENTRAGE
+C ALORS LE SOMMET NS N'EST PAS BOUGE
+c
+c protection des XY du point initial
+ xxx = pxyd(1,ns)
+ yyy = pxyd(2,ns)
+c
pxyd(1,ns) = ponde1 * pxyd(1,ns) + ponder * xbar
pxyd(2,ns) = ponde1 * pxyd(2,ns) + ponder * ybar
c
+ccc write(imprim,*)'teamqs 200: ns=',ns,' ancien =',xxx,yyy
+ccc write(imprim,*)'teamqs 200: ns=',ns,' nouveau=',pxyd(1,ns),pxyd(2,ns)
+c
+ do 240 i=1,nbtrcf
+c le numero de l'arete du triangle nt ne contenant pas le sommet ns
+ nt = notrcf(i)
+ do 220 na=1,3
+c le numero de l'arete na dans le tableau nosoar
+ noar = abs( noartr(na,nt) )
+ if( nosoar(1,noar) .ne. ns .and.
+ % nosoar(2,noar) .ne. ns ) then
+ if( noartr(na,nt) .ge. 0 ) then
+ ns2 = nosoar(1,noar)
+ ns3 = nosoar(2,noar)
+ else
+ ns3 = nosoar(1,noar)
+ ns2 = nosoar(2,noar)
+ endif
+ goto 225
+ endif
+ 220 continue
+
+c aire signee du triangle nt
+ 225 d = surtd2( pxyd(1,ns), pxyd(1,ns2), pxyd(1,ns3) )
+ if( d .le. 0d0 ) then
+ccc write(imprim,*),'iter=',iter,
+ccc % ' Barycentrage au point ns=',ns,
+ccc % ' XB=',pxyd(1,ns),' YB=',pxyd(2,ns),
+ccc % ' => triangle avec AIRE<0 => Pt REMIS en X =',xxx,
+ccc % ' Y =',yyy
+ pxyd(1,ns) = xxx
+ pxyd(2,ns) = yyy
+ goto 1000
+ endif
+ 240 continue
+C
+C FIN AJOUT 21/MAI/2005
+c
c les aretes chainees de la boule sont rendues delaunay
300 call tedela( pxyd, noarst,
% mosoar, mxsoar, n1soar, nosoar, noar0,
c
1000 continue
c
-c trace de la triangulation actuelle et calcul de la qualite
- 1100 continue
-c
-ccc write(imprim,11000) nbst4, nbst5, nbst8
-ccc11000 format( i7,' sommets de 4t',
+ccc write(imprim,11000) iter, nbitaq, nbst4, nbst5, nbst8
+ccc11000 format( 'teamqs iter=',i2,' max iter=',i2,':',
+ccc % i7,' sommets de 4t',
ccc % i7,' sommets 5t+5t',
ccc % i7,' sommets >7t' )
c
% comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
% ierr )
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but : amelioration de la qualite de la triangulation issue de teabr4
+c but : amelioration de la qualite de la triangulation
c -----
c
c entrees:
% mosoar, mxsoar, n1soar, nosoar,
% moartr, mxartr, n1artr, noartr,
% mxarcf, n1arcf, noarcf, larmin, notrcf, nostbo,
- % nbstsu, ierr )
+ % ierr )
if( ierr .ne. 0 ) goto 9999
-c write(imprim,*) 'retrait de',nbstsu,
-c % ' sommets de te trop proches de la frontiere'
c
c ajustage des tailles moyennes des aretes avec ampli=1.34d0 entre
c ampli/2 x taille_souhaitee et ampli x taille_souhaitee
% ierr )
if( ierr .ne. 0 ) goto 9999
c
-c modification de la topologie autour des sommets frontaliers
-c pour avoir un nombre de triangles egal a l'angle/60 degres
-c et mise en triangulation delaunay locale
-c ===========================================================
- call teamsf( nutysu,
- % noarst, mosoar, mxsoar, n1soar, nosoar,
- % moartr, mxartr, n1artr, noartr,
- % mxarcf, notrcf, nostbo,
- % n1arcf, noarcf, larmin,
- % comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
- % ierr )
- if( ierr .ne. 0 ) goto 9999
+cccc modification de la topologie autour des sommets frontaliers
+cccc pour avoir un nombre de triangles egal a l'angle/60 degres
+cccc et mise en triangulation delaunay locale
+cccc ===========================================================
+ccc call teamsf( nutysu,
+ccc % noarst, mosoar, mxsoar, n1soar, nosoar,
+ccc % moartr, mxartr, n1artr, noartr,
+ccc % mxarcf, notrcf, nostbo,
+ccc % n1arcf, noarcf, larmin,
+ccc % comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
+ccc % ierr )
+ccc if( ierr .ne. 0 ) goto 9999
c
c quelques iterations de barycentrage des points internes
c modification de la topologie pour avoir 4 ou 5 ou 6 triangles
c >0 si une erreur est survenue
c =11 algorithme defaillant
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet analyse numerique paris upmc mars 1997
+c auteur : alain perronnet analyse numerique paris upmc mars 2006
c....................................................................012
parameter ( lchain=6, quamal=0.3)
common / unites / lecteu,imprim,intera,nunite(29)
% moartr, n1artr, noartr,
% nbarcf, n1arcf, noarcf,
% ierr )
- if( ierr .ne. 0 ) return
+ if( ierr .ne. 0 ) then
+c modification de ierr pour continuer le calcul
+ ierr = -543
+ return
+ endif
c
c ici le sommet nsasup appartient a aucune arete
noarst( nsasup ) = 0
call tedela( pxyd, noarst,
% mosoar, mxsoar, n1soar, nosoar, liarcf(1),
% moartr, mxartr, n1artr, noartr, modifs )
-ccc write(imprim,*) 'nombre echanges diagonales =',modifs
+ccc write(imprim,*) 'nombre echanges diagonales =',modifs
return
end
c
c sortie :
c --------
-c nbtrar : 1 si arete ajoutee, 2 si arete double supprimee
+c nbtrar : 1 si arete ajoutee, 2 si arete double supprimee, 0 si erreur
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
c auteur : alain perronnet analyse numerique paris upmc mars 1997
c2345x7..............................................................012
parameter (lchain=6)
+ common / unites / lecteu, imprim, nunite(30)
integer nosoar(mosoar,mxsoar)
c
c si l'arete n'appartient pas aux aretes de l'etoile naetoi
c arete double de l'etoile. elle est supprimee du chainage
na0 = 0
na = n1aeoc
+ nbpass = 0
c parcours des aretes chainees jusqu'a trouver l'arete noar
10 if( na .ne. noar ) then
c passage a la suivante
na0 = na
na = nosoar( lchain, na )
+ if( na .le. 0 ) then
+ nbtrar = 0
+ return
+ endif
+ nbpass = nbpass + 1
+ if( nbpass .gt. 128 ) then
+ write(imprim,*)'Pb dans caetoi: boucle infinie evitee'
+ nbtrar = 0
+ return
+ endif
goto 10
endif
c
c 15 si une seule arete simple frontaliere
c 16 si boucle infinie car toutes les aretes simples
c de la boule sont frontalieres!
+c 17 si boucle infinie dans caetoi
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
c auteur : alain perronnet analyse numerique paris upmc mars 1997
c....................................................................012
noar = abs( noartr(j,nt) )
call caetoi( noar, mosoar, mxsoar, n1soar, nosoar,
% n1aeoc, nbtrar )
-c si arete simple alors suppression du numero de triangle pour cette a
+ if( nbtrar .le. 0 ) then
+ ierr = 17
+ return
+ endif
+c si arete simple alors suppression du numero de triangle
+c pour cette arete
if( nbtrar .eq. 1 ) then
if( nosoar(4,noar) .eq. nt ) then
nosoar(4,noar) = nosoar(5,noar)
+# Copyright (C) 2005 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.salome-platform.org/
+#
# -* Makefile *-
#
# Author : Nadir Bouhamou (CEA)
+# Copyright (C) 2005 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.salome-platform.org/
+#
# This is a Qt message file in .po format. Each msgid starts with
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
# would be translated to "Pub", not "Foo::Pub".
LIB_CLIENT_IDL = SALOME_Exception.idl \
SALOME_GenericObj.idl \
+ SALOME_Comm.idl \
+ MED.idl \
SMESH_Mesh.idl \
SMESH_Group.idl \
SALOMEDS.idl \
if ( mgr && mgr->booleanValue( "SMESH", "use_precision", false ) )
myControlsPrecision = (long)SMESH::GetFloat( "SMESH", "controls_precision", -1 );
- float aPointSize = SMESH::GetFloat("SMESH:node_size",3);
- float aLineWidth = SMESH::GetFloat("SMESH:element_width",1);
+ vtkFloatingPointType aPointSize = SMESH::GetFloat("SMESH:node_size",3);
+ vtkFloatingPointType aLineWidth = SMESH::GetFloat("SMESH:element_width",1);
vtkMatrix4x4 *aMatrix = vtkMatrix4x4::New();
VTKViewer_ExtractUnstructuredGrid* aFilter = NULL;
//Definition 2D and 3D divices of the actor
//-----------------------------------------
- float anRGB[3] = {1,1,1};
+ vtkFloatingPointType anRGB[3] = {1,1,1};
mySurfaceProp = vtkProperty::New();
SMESH::GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
mySurfaceProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
my2DActor->GetMapper()->SetLookupTable(myLookupTable);
my3DActor->GetMapper()->SetLookupTable(myLookupTable);
- float aFactor, aUnits;
+ vtkFloatingPointType aFactor, aUnits;
my2DActor->GetPolygonOffsetParameters(aFactor,aUnits);
my2DActor->SetPolygonOffsetParameters(aFactor,aUnits*0.75);
}
-float* SMESH_ActorDef::GetBounds(){
+vtkFloatingPointType* SMESH_ActorDef::GetBounds(){
return myNodeActor->GetBounds();
}
Modified();
}
-float SMESH_ActorDef::GetShrinkFactor(){
+vtkFloatingPointType SMESH_ActorDef::GetShrinkFactor(){
return myBaseActor->GetShrinkFactor();
}
-void SMESH_ActorDef::SetShrinkFactor(float theValue){
+void SMESH_ActorDef::SetShrinkFactor(vtkFloatingPointType theValue){
myBaseActor->SetShrinkFactor(theValue);
my1DActor->SetShrinkFactor(theValue);
return myPickableActor->GetNodeObjId(theVtkID);
}
-float* SMESH_ActorDef::GetNodeCoord(int theObjID){
+vtkFloatingPointType* SMESH_ActorDef::GetNodeCoord(int theObjID){
return myPickableActor->GetNodeCoord(theObjID);
}
}
-static void GetColor(vtkProperty *theProperty, float& r,float& g,float& b){
- float* aColor = theProperty->GetColor();
+static void GetColor(vtkProperty *theProperty, vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
+ vtkFloatingPointType* aColor = theProperty->GetColor();
r = aColor[0];
g = aColor[1];
b = aColor[2];
}
-void SMESH_ActorDef::SetOpacity(float theValue){
+void SMESH_ActorDef::SetOpacity(vtkFloatingPointType theValue){
mySurfaceProp->SetOpacity(theValue);
myBackSurfaceProp->SetOpacity(theValue);
myEdgeProp->SetOpacity(theValue);
}
-float SMESH_ActorDef::GetOpacity(){
+vtkFloatingPointType SMESH_ActorDef::GetOpacity(){
return mySurfaceProp->GetOpacity();
}
-void SMESH_ActorDef::SetSufaceColor(float r,float g,float b){
+void SMESH_ActorDef::SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
mySurfaceProp->SetColor(r,g,b);
Modified();
}
-void SMESH_ActorDef::GetSufaceColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
::GetColor(mySurfaceProp,r,g,b);
}
-void SMESH_ActorDef::SetBackSufaceColor(float r,float g,float b){
+void SMESH_ActorDef::SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
myBackSurfaceProp->SetColor(r,g,b);
Modified();
}
-void SMESH_ActorDef::GetBackSufaceColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
::GetColor(myBackSurfaceProp,r,g,b);
}
-void SMESH_ActorDef::SetEdgeColor(float r,float g,float b){
+void SMESH_ActorDef::SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
myEdgeProp->SetColor(r,g,b);
my1DProp->SetColor(r,g,b);
my1DExtProp->SetColor(1.0-r,1.0-g,1.0-b);
Modified();
}
-void SMESH_ActorDef::GetEdgeColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
::GetColor(myEdgeProp,r,g,b);
}
-void SMESH_ActorDef::SetNodeColor(float r,float g,float b){
+void SMESH_ActorDef::SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
myNodeProp->SetColor(r,g,b);
Modified();
}
-void SMESH_ActorDef::GetNodeColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
::GetColor(myNodeProp,r,g,b);
}
-void SMESH_ActorDef::SetHighlightColor(float r,float g,float b){
+void SMESH_ActorDef::SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
myHighlightProp->SetColor(r,g,b);
Modified();
}
-void SMESH_ActorDef::GetHighlightColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
::GetColor(myHighlightProp,r,g,b);
}
-void SMESH_ActorDef::SetPreHighlightColor(float r,float g,float b){
+void SMESH_ActorDef::SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
myPreselectProp->SetColor(r,g,b);
Modified();
}
-void SMESH_ActorDef::GetPreHighlightColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
::GetColor(myPreselectProp,r,g,b);
}
-float SMESH_ActorDef::GetLineWidth(){
+vtkFloatingPointType SMESH_ActorDef::GetLineWidth(){
return myEdgeProp->GetLineWidth();
}
-void SMESH_ActorDef::SetLineWidth(float theVal){
+void SMESH_ActorDef::SetLineWidth(vtkFloatingPointType theVal){
myEdgeProp->SetLineWidth(theVal);
my1DProp->SetLineWidth(theVal + aLineWidthInc);
}
-void SMESH_ActorDef::SetNodeSize(float theVal){
+void SMESH_ActorDef::SetNodeSize(vtkFloatingPointType theVal){
myNodeProp->SetPointSize(theVal);
myHighlightProp->SetPointSize(theVal);
myPreselectProp->SetPointSize(theVal);
Modified();
}
-float SMESH_ActorDef::GetNodeSize(){
+vtkFloatingPointType SMESH_ActorDef::GetNodeSize(){
return myNodeProp->GetPointSize();
}
static void ComputeBoundsParam(vtkDataSet* theDataSet,
- float theDirection[3], float theMinPnt[3],
- float& theMaxBoundPrj, float& theMinBoundPrj)
+ vtkFloatingPointType theDirection[3], vtkFloatingPointType theMinPnt[3],
+ vtkFloatingPointType& theMaxBoundPrj, vtkFloatingPointType& theMinBoundPrj)
{
- float aBounds[6];
+ vtkFloatingPointType aBounds[6];
theDataSet->GetBounds(aBounds);
//Enlarge bounds in order to avoid conflicts of precision
for(int i = 0; i < 6; i += 2){
static double EPS = 1.0E-3;
- float aDelta = (aBounds[i+1] - aBounds[i])*EPS;
+ vtkFloatingPointType aDelta = (aBounds[i+1] - aBounds[i])*EPS;
aBounds[i] -= aDelta;
aBounds[i+1] += aDelta;
}
- float aBoundPoints[8][3] = { {aBounds[0],aBounds[2],aBounds[4]},
+ vtkFloatingPointType aBoundPoints[8][3] = { {aBounds[0],aBounds[2],aBounds[4]},
{aBounds[1],aBounds[2],aBounds[4]},
{aBounds[0],aBounds[3],aBounds[4]},
{aBounds[1],aBounds[3],aBounds[4]},
theMaxBoundPrj = vtkMath::Dot(theDirection,aBoundPoints[aMaxId]);
theMinBoundPrj = theMaxBoundPrj;
for(int i = 1; i < 8; i++){
- float aTmp = vtkMath::Dot(theDirection,aBoundPoints[i]);
+ vtkFloatingPointType aTmp = vtkMath::Dot(theDirection,aBoundPoints[i]);
if(theMaxBoundPrj < aTmp){
theMaxBoundPrj = aTmp;
aMaxId = i;
aMinId = i;
}
}
- float *aMinPnt = aBoundPoints[aMaxId];
+ vtkFloatingPointType *aMinPnt = aBoundPoints[aMaxId];
theMinPnt[0] = aMinPnt[0];
theMinPnt[1] = aMinPnt[1];
theMinPnt[2] = aMinPnt[2];
static void DistanceToPosition(vtkDataSet* theDataSet,
- float theDirection[3], float theDist, float thePos[3])
+ vtkFloatingPointType theDirection[3], vtkFloatingPointType theDist, vtkFloatingPointType thePos[3])
{
- float aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
+ vtkFloatingPointType aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
ComputeBoundsParam(theDataSet,theDirection,aMinPnt,aMaxBoundPrj,aMinBoundPrj);
- float aLength = (aMaxBoundPrj-aMinBoundPrj)*theDist;
+ vtkFloatingPointType aLength = (aMaxBoundPrj-aMinBoundPrj)*theDist;
thePos[0] = aMinPnt[0]-theDirection[0]*aLength;
thePos[1] = aMinPnt[1]-theDirection[1]*aLength;
thePos[2] = aMinPnt[2]-theDirection[2]*aLength;
static void PositionToDistance(vtkDataSet* theDataSet,
- float theDirection[3], float thePos[3], float& theDist)
+ vtkFloatingPointType theDirection[3], vtkFloatingPointType thePos[3], vtkFloatingPointType& theDist)
{
- float aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
+ vtkFloatingPointType aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
ComputeBoundsParam(theDataSet,theDirection,aMinPnt,aMaxBoundPrj,aMinBoundPrj);
- float aPrj = vtkMath::Dot(theDirection,thePos);
+ vtkFloatingPointType aPrj = vtkMath::Dot(theDirection,thePos);
theDist = (aPrj-aMinBoundPrj)/(aMaxBoundPrj-aMinBoundPrj);
}
-void SMESH_ActorDef::SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane)
+void SMESH_ActorDef::SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane)
{
thePlane->SetNormal(theDir);
- float anOrigin[3];
+ vtkFloatingPointType anOrigin[3];
::DistanceToPosition(GetUnstructuredGrid(),theDir,theDist,anOrigin);
thePlane->SetOrigin(anOrigin);
}
-void SMESH_ActorDef::GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane)
+void SMESH_ActorDef::GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& theDist, vtkPlane* thePlane)
{
thePlane->GetNormal(theDir);
- float anOrigin[3];
+ vtkFloatingPointType anOrigin[3];
thePlane->GetOrigin(anOrigin);
::PositionToDistance(GetUnstructuredGrid(),theDir,anOrigin,theDist);
}
myScalarBarActor->SetOrientationToVertical();
- float aXVal = horiz ? 0.20 : 0.01;
+ vtkFloatingPointType aXVal = horiz ? 0.20 : 0.01;
if( mgr->hasValue( "SMESH", name + "x" ) )
aXVal = mgr->doubleValue( "SMESH", name + "x", aXVal );
- float aYVal = horiz ? 0.01 : 0.1;
+ vtkFloatingPointType aYVal = horiz ? 0.01 : 0.1;
if( mgr->hasValue( "SMESH", name + "y" ) )
aYVal = mgr->doubleValue( "SMESH", name + "y", aYVal );
myScalarBarActor->SetPosition( aXVal, aYVal );
- float aWVal = horiz ? 0.60 : 0.10;
+ vtkFloatingPointType aWVal = horiz ? 0.60 : 0.10;
if( mgr->hasValue( "SMESH", name + "width" ) )
aWVal = mgr->doubleValue( "SMESH", name + "width", aWVal );
myScalarBarActor->SetWidth( aWVal );
- float aHVal = horiz ? 0.12 : 0.80;
+ vtkFloatingPointType aHVal = horiz ? 0.12 : 0.80;
if( mgr->hasValue( "SMESH", name + "height" ) )
aHVal = mgr->doubleValue( "SMESH", name + "height", aHVal );
myScalarBarActor->SetHeight( aHVal );
const char* theName,
int theIsClear);
- virtual void SetSufaceColor(float r,float g,float b) = 0;
- virtual void GetSufaceColor(float& r,float& g,float& b) = 0;
+ virtual void SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+ virtual void GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
- virtual void SetBackSufaceColor(float r,float g,float b) = 0;
- virtual void GetBackSufaceColor(float& r,float& g,float& b) = 0;
+ virtual void SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+ virtual void GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
- virtual void SetEdgeColor(float r,float g,float b) = 0;
- virtual void GetEdgeColor(float& r,float& g,float& b) = 0;
+ virtual void SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+ virtual void GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
- virtual void SetNodeColor(float r,float g,float b) = 0;
- virtual void GetNodeColor(float& r,float& g,float& b) = 0;
+ virtual void SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+ virtual void GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
- virtual void SetHighlightColor(float r,float g,float b) = 0;
- virtual void GetHighlightColor(float& r,float& g,float& b) = 0;
+ virtual void SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+ virtual void GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
- virtual void SetPreHighlightColor(float r,float g,float b) = 0;
- virtual void GetPreHighlightColor(float& r,float& g,float& b) = 0;
+ virtual void SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+ virtual void GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
- virtual float GetLineWidth() = 0;
- virtual void SetLineWidth(float theVal) = 0;
+ virtual vtkFloatingPointType GetLineWidth() = 0;
+ virtual void SetLineWidth(vtkFloatingPointType theVal) = 0;
- virtual void SetNodeSize(float size) = 0;
- virtual float GetNodeSize() = 0;
+ virtual void SetNodeSize(vtkFloatingPointType size) = 0;
+ virtual vtkFloatingPointType GetNodeSize() = 0;
enum EReperesent { ePoint, eEdge, eSurface};
virtual vtkUnstructuredGrid* GetUnstructuredGrid() = 0;
- virtual void SetShrinkFactor(float theValue) = 0;
+ virtual void SetShrinkFactor(vtkFloatingPointType theValue) = 0;
virtual void SetPointsLabeled(bool theIsPointsLabeled) = 0;
virtual bool GetPointsLabeled() = 0;
virtual vtkScalarBarActor* GetScalarBarActor() = 0;
- virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane) = 0;
- virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane) = 0;
+ virtual void SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane) = 0;
+ virtual void GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& theDist, vtkPlane* thePlane) = 0;
virtual void RemoveAllClippingPlanes() = 0;
virtual vtkIdType GetNumberOfClippingPlanes() = 0;
class SMESH_DeviceActor;
-class SMESH_ActorDef : public SMESH_Actor{
+class SMESH_ActorDef : public SMESH_Actor
+{
friend class SMESH_VisualObj;
friend class SMESH_Actor;
virtual bool IsInfinitive();
- virtual void SetOpacity(float theValue);
- virtual float GetOpacity();
+ virtual void SetOpacity(vtkFloatingPointType theValue);
+ virtual vtkFloatingPointType GetOpacity();
- virtual void SetSufaceColor(float r,float g,float b);
- virtual void GetSufaceColor(float& r,float& g,float& b);
+ virtual void SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetBackSufaceColor(float r,float g,float b);
- virtual void GetBackSufaceColor(float& r,float& g,float& b);
+ virtual void SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetEdgeColor(float r,float g,float b);
- virtual void GetEdgeColor(float& r,float& g,float& b);
+ virtual void SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetNodeColor(float r,float g,float b);
- virtual void GetNodeColor(float& r,float& g,float& b);
+ virtual void SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetHighlightColor(float r,float g,float b);
- virtual void GetHighlightColor(float& r,float& g,float& b);
+ virtual void SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual void SetPreHighlightColor(float r,float g,float b);
- virtual void GetPreHighlightColor(float& r,float& g,float& b);
+ virtual void SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+ virtual void GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
- virtual float GetLineWidth();
- virtual void SetLineWidth(float theVal);
+ virtual vtkFloatingPointType GetLineWidth();
+ virtual void SetLineWidth(vtkFloatingPointType theVal);
- virtual void SetNodeSize(float size) ;
- virtual float GetNodeSize() ;
+ virtual void SetNodeSize(vtkFloatingPointType size) ;
+ virtual vtkFloatingPointType GetNodeSize() ;
virtual int GetNodeObjId(int theVtkID);
- virtual float* GetNodeCoord(int theObjID);
+ virtual vtkFloatingPointType* GetNodeCoord(int theObjID);
virtual int GetElemObjId(int theVtkID);
virtual vtkCell* GetElemCell(int theObjID);
virtual void SetPointRepresentation(bool theIsPointsVisible);
virtual bool GetPointRepresentation();
- virtual float* GetBounds();
+ virtual vtkFloatingPointType* GetBounds();
virtual void SetTransform(VTKViewer_Transform* theTransform);
virtual vtkUnstructuredGrid* GetUnstructuredGrid();
virtual vtkDataSet* GetInput();
virtual vtkMapper* GetMapper();
- virtual float GetShrinkFactor();
- virtual void SetShrinkFactor(float theValue);
+ virtual vtkFloatingPointType GetShrinkFactor();
+ virtual void SetShrinkFactor(vtkFloatingPointType theValue);
virtual bool IsShrunkable() { return myIsShrinkable;}
virtual bool IsShrunk() { return myIsShrunk;}
virtual vtkScalarBarActor* GetScalarBarActor(){ return myScalarBarActor;}
- virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane);
- virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane);
+ virtual void SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane);
+ virtual void GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& theDist, vtkPlane* thePlane);
virtual void RemoveAllClippingPlanes();
virtual vtkIdType GetNumberOfClippingPlanes();
static int MYDEBUG = 0;
#endif
-namespace SMESH{
+namespace SMESH
+{
- float GetFloat( const QString& theValue, float theDefault )
+ vtkFloatingPointType
+ GetFloat( const QString& theValue,
+ vtkFloatingPointType theDefault )
{
int pos = theValue.find( ":" );
- float val = theDefault;
+ vtkFloatingPointType val = theDefault;
if( pos>=0 )
{
QString name = theValue.right( theValue.length()-pos-1 ),
return val;
}
- float GetFloat( const QString& theValue, const QString& theSection, float theDefault )
+ vtkFloatingPointType
+ GetFloat( const QString& theValue,
+ const QString& theSection,
+ vtkFloatingPointType theDefault )
{
- float val = theDefault;
+ vtkFloatingPointType val = theDefault;
SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
if( mgr )
- val = (float) mgr->doubleValue( theValue, theSection, theDefault );
+ val = (vtkFloatingPointType) mgr->doubleValue( theValue, theSection, theDefault );
return val;
}
- void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName){
+ void
+ WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid,
+ const char* theFileName)
+ {
vtkUnstructuredGridWriter* aWriter = vtkUnstructuredGridWriter::New();
aWriter->SetFileName(theFileName);
aWriter->SetInput(theGrid);
aWriter->Delete();
}
- QColor GetColor( const QString& theSect, const QString& theName, const QColor& def )
+ QColor
+ GetColor( const QString& theSect,
+ const QString& theName,
+ const QColor& def )
{
QColor c = def;
SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
return c;
}
- void GetColor( const QString& theSect, const QString& theName, int& r, int& g, int& b, const QColor& def )
+ void
+ GetColor( const QString& theSect,
+ const QString& theName,
+ int& r,
+ int& g,
+ int& b,
+ const QColor& def )
{
QColor c = def;
SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
SUIT_Tools::rgbSet( SUIT_Tools::rgbSet( c ), r, g, b );
}
- void GetColor( const QString& theSect, const QString& theName, float& r, float& g, float& b, const QColor& def )
+ void
+ GetColor( const QString& theSect,
+ const QString& theName,
+ vtkFloatingPointType& r,
+ vtkFloatingPointType& g,
+ vtkFloatingPointType& b,
+ const QColor& def )
{
int ir( 0 ), ig( 0 ), ib( 0 );
GetColor( theSect, theName, ir, ig, ib, def );
#include <qcolor.h>
#include <qstring.h>
+#include "VTKViewer.h"
+
class vtkUnstructuredGrid;
-namespace SMESH{
+namespace SMESH
+{
- float GetFloat( const QString& theValue, float theDefault = 0 );
- float GetFloat( const QString& theName, const QString& theSection, float theDefault = 0 );
+ vtkFloatingPointType
+ GetFloat( const QString& theValue,
+ vtkFloatingPointType theDefault = 0 );
+
+ vtkFloatingPointType
+ GetFloat( const QString& theName,
+ const QString& theSection,
+ vtkFloatingPointType theDefault = 0 );
+
+ QColor
+ GetColor( const QString& theSect,
+ const QString& theName,
+ const QColor&t = QColor() );
+
+ void
+ GetColor( const QString& theSect,
+ const QString& theName,
+ int&,
+ int&,
+ int&,
+ const QColor&t = QColor() );
- QColor GetColor( const QString& theSect, const QString& theName, const QColor&t = QColor() );
- void GetColor( const QString& theSect, const QString& theName, int&, int&, int&, const QColor&t = QColor() );
- void GetColor( const QString& theSect, const QString& theName, float&, float&, float&, const QColor&t = QColor() );
+ void
+ GetColor( const QString& theSect,
+ const QString& theName,
+ vtkFloatingPointType&,
+ vtkFloatingPointType&,
+ vtkFloatingPointType&,
+ const QColor&t = QColor() );
- void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName);
+ void
+ WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid,
+ const char* theFileName);
}
#include "SMESH_ExtractGeometry.h"
#include "SMESH_ControlsDef.hxx"
#include "SMESH_ActorUtils.h"
+#include "VTKViewer_CellLocationsArray.h"
#include <VTKViewer_Transform.h>
#include <VTKViewer_TransformFilter.h>
#include <vtkCell.h>
#include <vtkIdList.h>
-#include <vtkIntArray.h>
#include <vtkCellArray.h>
#include <vtkUnsignedCharArray.h>
vtkStandardNewMacro(SMESH_DeviceActor);
-SMESH_DeviceActor::SMESH_DeviceActor()
+SMESH_DeviceActor
+::SMESH_DeviceActor()
{
if(MYDEBUG) MESSAGE("SMESH_DeviceActor - "<<this);
}
-SMESH_DeviceActor::~SMESH_DeviceActor(){
+SMESH_DeviceActor
+::~SMESH_DeviceActor()
+{
if(MYDEBUG) MESSAGE("~SMESH_DeviceActor - "<<this);
myProperty->Delete();
void
-SMESH_DeviceActor::
-SetStoreGemetryMapping(bool theStoreMapping)
+SMESH_DeviceActor
+::SetStoreGemetryMapping(bool theStoreMapping)
{
myGeomFilter->SetStoreMapping(theStoreMapping);
SetStoreClippingMapping(theStoreMapping);
void
-SMESH_DeviceActor::
-SetStoreClippingMapping(bool theStoreMapping)
+SMESH_DeviceActor
+::SetStoreClippingMapping(bool theStoreMapping)
{
myStoreClippingMapping = theStoreMapping;
myExtractGeometry->SetStoreMapping(theStoreMapping && myIsImplicitFunctionUsed);
void
-SMESH_DeviceActor::
-SetStoreIDMapping(bool theStoreMapping)
+SMESH_DeviceActor
+::SetStoreIDMapping(bool theStoreMapping)
{
myExtractUnstructuredGrid->SetStoreMapping(theStoreMapping);
}
-void SMESH_DeviceActor::Init(TVisualObjPtr theVisualObj,
- vtkImplicitBoolean* theImplicitBoolean)
+void
+SMESH_DeviceActor
+::Init(TVisualObjPtr theVisualObj,
+ vtkImplicitBoolean* theImplicitBoolean)
{
myVisualObj = theVisualObj;
myExtractGeometry->SetImplicitFunction(theImplicitBoolean);
void
-SMESH_DeviceActor::
-SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
+SMESH_DeviceActor
+::SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
{
int anId = 0;
if(theIsImplicitFunctionUsed)
}
-void SMESH_DeviceActor::SetUnstructuredGrid(vtkUnstructuredGrid* theGrid){
+void
+SMESH_DeviceActor
+::SetUnstructuredGrid(vtkUnstructuredGrid* theGrid)
+{
if(theGrid){
//myIsShrinkable = theGrid->GetNumberOfCells() > 10;
myIsShrinkable = true;
}
-VTKViewer_ExtractUnstructuredGrid* SMESH_DeviceActor::GetExtractUnstructuredGrid(){
+VTKViewer_ExtractUnstructuredGrid*
+SMESH_DeviceActor
+::GetExtractUnstructuredGrid()
+{
return myExtractUnstructuredGrid;
}
-vtkUnstructuredGrid* SMESH_DeviceActor::GetUnstructuredGrid(){
+vtkUnstructuredGrid*
+SMESH_DeviceActor
+::GetUnstructuredGrid()
+{
myExtractUnstructuredGrid->Update();
return myExtractUnstructuredGrid->GetOutput();
}
-void SMESH_DeviceActor::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
- vtkScalarBarActor* theScalarBarActor,
- vtkLookupTable* theLookupTable)
+void
+SMESH_DeviceActor
+::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
+ vtkScalarBarActor* theScalarBarActor,
+ vtkLookupTable* theLookupTable)
{
bool anIsInitialized = theFunctor;
if(anIsInitialized){
aScalars->Delete();
theLookupTable->SetRange(aScalars->GetRange());
+ theLookupTable->SetNumberOfTableValues(theScalarBarActor->GetMaximumNumberOfColors());
theLookupTable->Build();
myMergeFilter->SetScalars(aDataSet);
theScalarBarActor->SetVisibility(anIsInitialized);
}
-void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor,
- vtkScalarBarActor* theScalarBarActor,
- vtkLookupTable* theLookupTable)
+void
+SMESH_DeviceActor
+::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor,
+ vtkScalarBarActor* theScalarBarActor,
+ vtkLookupTable* theLookupTable)
{
bool anIsInitialized = theFunctor;
myExtractUnstructuredGrid->ClearRegisteredCells();
}
}
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents( 1 );
aCellLocationsArray->SetNumberOfTuples( aNbCells );
}
}
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents( 1 );
aCellLocationsArray->SetNumberOfTuples( aNbCells );
theScalarBarActor->SetVisibility(anIsInitialized);
}
-void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor)
+void
+SMESH_DeviceActor
+::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor)
{
myExtractUnstructuredGrid->ClearRegisteredCells();
myExtractUnstructuredGrid->ClearRegisteredCellsWithType();
}
}
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents( 1 );
aCellLocationsArray->SetNumberOfTuples( aNbCells );
-unsigned long int SMESH_DeviceActor::GetMTime(){
+unsigned long int
+SMESH_DeviceActor
+::GetMTime()
+{
unsigned long mTime = this->Superclass::GetMTime();
mTime = max(mTime,myExtractGeometry->GetMTime());
mTime = max(mTime,myExtractUnstructuredGrid->GetMTime());
}
-void SMESH_DeviceActor::SetTransform(VTKViewer_Transform* theTransform){
+void
+SMESH_DeviceActor
+::SetTransform(VTKViewer_Transform* theTransform)
+{
myTransformFilter->SetTransform(theTransform);
}
-void SMESH_DeviceActor::SetShrink() {
+void
+SMESH_DeviceActor
+::SetShrink()
+{
if ( !myIsShrinkable ) return;
if ( vtkDataSet* aDataSet = myPassFilter[ 0 ]->GetOutput() )
{
}
}
-void SMESH_DeviceActor::UnShrink() {
+void
+SMESH_DeviceActor
+::UnShrink()
+{
if ( !myIsShrunk ) return;
if ( vtkDataSet* aDataSet = myPassFilter[ 0 ]->GetOutput() )
{
}
-void SMESH_DeviceActor::SetRepresentation(EReperesent theMode){
+void
+SMESH_DeviceActor
+::SetRepresentation(EReperesent theMode)
+{
switch(theMode){
case ePoint:
myGeomFilter->SetInside(true);
}
-void SMESH_DeviceActor::SetVisibility(int theMode){
+void
+SMESH_DeviceActor
+::SetVisibility(int theMode)
+{
if(!myExtractUnstructuredGrid->GetInput() ||
GetUnstructuredGrid()->GetNumberOfCells())
{
}
-int SMESH_DeviceActor::GetVisibility(){
+int
+SMESH_DeviceActor
+::GetVisibility()
+{
if(!GetUnstructuredGrid()->GetNumberOfCells()){
vtkLODActor::SetVisibility(false);
}
}
-int SMESH_DeviceActor::GetNodeObjId(int theVtkID){
+int
+SMESH_DeviceActor
+::GetNodeObjId(int theVtkID)
+{
vtkIdType anID = theVtkID;
if(IsImplicitFunctionUsed())
return aRetID;
}
-float* SMESH_DeviceActor::GetNodeCoord(int theObjID){
+vtkFloatingPointType*
+SMESH_DeviceActor
+::GetNodeCoord(int theObjID)
+{
vtkDataSet* aDataSet = myMergeFilter->GetOutput();
vtkIdType anID = myVisualObj->GetNodeVTKId(theObjID);
- float* aCoord = aDataSet->GetPoint(anID);
+ vtkFloatingPointType* aCoord = aDataSet->GetPoint(anID);
if(MYDEBUG) MESSAGE("GetNodeCoord - theObjID = "<<theObjID<<"; anID = "<<anID);
return aCoord;
}
-int SMESH_DeviceActor::GetElemObjId(int theVtkID){
+int
+SMESH_DeviceActor
+::GetElemObjId(int theVtkID)
+{
vtkIdType anId = myGeomFilter->GetElemObjId(theVtkID);
if(anId < 0)
return -1;
return aRetID;
}
-vtkCell* SMESH_DeviceActor::GetElemCell(int theObjID){
+vtkCell*
+SMESH_DeviceActor
+::GetElemCell(int theObjID)
+{
vtkDataSet* aDataSet = myVisualObj->GetUnstructuredGrid();
vtkIdType aGridID = myVisualObj->GetElemVTKId(theObjID);
vtkCell* aCell = aDataSet->GetCell(aGridID);
}
-float SMESH_DeviceActor::GetShrinkFactor(){
+vtkFloatingPointType
+SMESH_DeviceActor
+::GetShrinkFactor()
+{
return myShrinkFilter->GetShrinkFactor();
}
-void SMESH_DeviceActor::SetShrinkFactor(float theValue){
+void
+SMESH_DeviceActor
+::SetShrinkFactor(vtkFloatingPointType theValue)
+{
theValue = theValue > 0.1? theValue: 0.8;
myShrinkFilter->SetShrinkFactor(theValue);
Modified();
}
-void SMESH_DeviceActor::SetHighlited(bool theIsHighlited){
+void
+SMESH_DeviceActor
+::SetHighlited(bool theIsHighlited)
+{
if ( myIsHighlited == theIsHighlited )
return;
myIsHighlited = theIsHighlited;
Modified();
}
-void SMESH_DeviceActor::Render(vtkRenderer *ren, vtkMapper* m){
+void
+SMESH_DeviceActor
+::Render(vtkRenderer *ren, vtkMapper* m)
+{
int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
- float aStoredFactor, aStoredUnit;
+ vtkFloatingPointType aStoredFactor, aStoredUnit;
vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aStoredFactor,aStoredUnit);
vtkMapper::SetResolveCoincidentTopologyToPolygonOffset();
- float aFactor = myPolygonOffsetFactor, aUnits = myPolygonOffsetUnits;
+ vtkFloatingPointType aFactor = myPolygonOffsetFactor, aUnits = myPolygonOffsetUnits;
if(myIsHighlited){
- static float EPS = .01;
+ static vtkFloatingPointType EPS = .01;
aUnits *= (1.0-EPS);
}
vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnits);
}
-void SMESH_DeviceActor::SetPolygonOffsetParameters(float factor, float units){
+void
+SMESH_DeviceActor
+::SetPolygonOffsetParameters(vtkFloatingPointType factor,
+ vtkFloatingPointType units)
+{
myPolygonOffsetFactor = factor;
myPolygonOffsetUnits = units;
}
void SetStoreIDMapping(bool theStoreMapping);
virtual int GetNodeObjId(int theVtkID);
- virtual float* GetNodeCoord(int theObjID);
+ virtual vtkFloatingPointType* GetNodeCoord(int theObjID);
virtual int GetElemObjId(int theVtkID);
virtual vtkCell* GetElemCell(int theObjID);
virtual void SetTransform(VTKViewer_Transform* theTransform);
virtual unsigned long int GetMTime();
- float GetShrinkFactor();
- void SetShrinkFactor(float value);
+ vtkFloatingPointType GetShrinkFactor();
+ void SetShrinkFactor(vtkFloatingPointType value);
bool IsShrunkable() { return myIsShrinkable;}
bool IsShrunk() { return myIsShrunk;}
bool myIsHighlited;
- float myPolygonOffsetFactor;
- float myPolygonOffsetUnits;
+ vtkFloatingPointType myPolygonOffsetFactor;
+ vtkFloatingPointType myPolygonOffsetUnits;
- void SetPolygonOffsetParameters(float factor, float units);
- void GetPolygonOffsetParameters(float& factor, float& units){
+ void
+ SetPolygonOffsetParameters(vtkFloatingPointType factor,
+ vtkFloatingPointType units);
+
+ void
+ GetPolygonOffsetParameters(vtkFloatingPointType& factor,
+ vtkFloatingPointType& units)
+ {
factor = myPolygonOffsetFactor;
units = myPolygonOffsetUnits;
}
#include "SMESH_ExtractGeometry.h"
-#include "vtkCell.h"
-#include "vtkCellData.h"
-#include "vtkFloatArray.h"
-#include "vtkIdList.h"
-#include "vtkImplicitFunction.h"
-#include "vtkObjectFactory.h"
-#include "vtkPointData.h"
-#include "vtkUnstructuredGrid.h"
+#include <vtkCell.h>
+#include <vtkCellData.h>
+#include <vtkFloatArray.h>
+#include <vtkIdList.h>
+#include <vtkImplicitFunction.h>
+#include <vtkObjectFactory.h>
+#include <vtkPointData.h>
+#include <vtkUnstructuredGrid.h>
using namespace std;
vtkIdList *cellPts;
vtkCell *cell;
int numCellPts;
- float *x;
- float multiplier;
+ vtkFloatingPointType *x;
+ vtkFloatingPointType multiplier;
vtkPoints *newPts;
vtkIdList *newCellPts;
vtkDataSet *input = this->GetInput();
// To extract boundary cells, we have to create supplemental information
if ( this->ExtractBoundaryCells )
{
- float val;
+ vtkFloatingPointType val;
newScalars = vtkFloatArray::New();
newScalars->SetNumberOfValues(numPts);
#include <vtkExtractGeometry.h>
#include <vector>
+#include "VTKViewer.h"
-class SMESH_ExtractGeometry : public vtkExtractGeometry{
+class SMESH_ExtractGeometry : public vtkExtractGeometry
+{
public:
vtkTypeMacro(SMESH_ExtractGeometry,vtkExtractGeometry);
#include "SMESH_ControlsDef.hxx"
#include "SalomeApp_Application.h"
#include "VTKViewer_ExtractUnstructuredGrid.h"
+#include "VTKViewer_CellLocationsArray.h"
#include CORBA_SERVER_HEADER(SMESH_Gen)
#include CORBA_SERVER_HEADER(SALOME_Exception)
#include <vtkCell.h>
#include <vtkIdList.h>
-#include <vtkIntArray.h>
#include <vtkCellArray.h>
#include <vtkUnsignedCharArray.h>
// Insert cells in grid
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents( 1 );
aCellLocationsArray->SetNumberOfTuples( aNbCells );
const SMDS_MeshNode * n2,
int ID)
{
+ if ( !n1 || !n2 ) return 0;
+
SMDS_MeshEdge * edge=new SMDS_MeshEdge(n1,n2);
if(myElementIDFactory->BindID(ID, edge)) {
SMDS_MeshNode *node1,*node2;
{
SMDS_MeshFace * face=createTriangle(n1, n2, n3);
- if (!registerElement(ID, face)) {
+ if (face && !registerElement(ID, face)) {
RemoveElement(face, false);
face = NULL;
}
{
SMDS_MeshFace * face=createQuadrangle(n1, n2, n3, n4);
- if (!registerElement(ID, face)) {
+ if (face && !registerElement(ID, face)) {
RemoveElement(face, false);
face = NULL;
}
{
if (!hasConstructionEdges())
return NULL;
+ if ( !e1 || !e2 || !e3 ) return 0;
+
SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3);
myFaces.Add(face);
{
if (!hasConstructionEdges())
return NULL;
+ if ( !e1 || !e2 || !e3 || !e4 ) return 0;
SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3,e4);
myFaces.Add(face);
const SMDS_MeshNode * n4,
int ID)
{
- SMDS_MeshVolume* volume;
+ SMDS_MeshVolume* volume = 0;
+ if ( !n1 || !n2 || !n3 || !n4) return volume;
if(hasConstructionFaces()) {
SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n4);
const SMDS_MeshNode * n5,
int ID)
{
- SMDS_MeshVolume* volume;
+ SMDS_MeshVolume* volume = 0;
+ if ( !n1 || !n2 || !n3 || !n4 || !n5) return volume;
if(hasConstructionFaces()) {
SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n5);
const SMDS_MeshNode * n6,
int ID)
{
- SMDS_MeshVolume* volume;
+ SMDS_MeshVolume* volume = 0;
+ if ( !n1 || !n2 || !n3 || !n4 || !n5 || !n6) return volume;
if(hasConstructionFaces()) {
SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
SMDS_MeshFace * f2=FindFaceOrCreate(n4,n5,n6);
const SMDS_MeshNode * n8,
int ID)
{
- SMDS_MeshVolume* volume;
+ SMDS_MeshVolume* volume = 0;
+ if ( !n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n7 || !n8) return volume;
if(hasConstructionFaces()) {
SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
SMDS_MeshFace * f2=FindFaceOrCreate(n5,n6,n7,n8);
{
if (!hasConstructionFaces())
return NULL;
+ if ( !f1 || !f2 || !f3 || !f4) return 0;
SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4);
myVolumes.Add(volume);
{
if (!hasConstructionFaces())
return NULL;
+ if ( !f1 || !f2 || !f3 || !f4 || !f5) return 0;
SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5);
myVolumes.Add(volume);
{
if (!hasConstructionFaces())
return NULL;
+ if ( !f1 || !f2 || !f3 || !f4 || !f5 || !f6) return 0;
SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5,f6);
myVolumes.Add(volume);
}
else
{
+ for ( int i = 0; i < nodes.size(); ++i )
+ if ( !nodes[ i ] ) return 0;
face = new SMDS_PolygonalFaceOfNodes(nodes);
myFaces.Add(face);
}
MESSAGE("Error : Not implemented");
return NULL;
} else {
+ for ( int i = 0; i < nodes.size(); ++i )
+ if ( !nodes[ i ] ) return 0;
volume = new SMDS_PolyhedralVolumeOfNodes(nodes, quantities);
myVolumes.Add(volume);
}
const SMDS_MeshNode * node2,
const SMDS_MeshNode * node3)
{
+ if ( !node1 || !node2 || !node3) return 0;
if(hasConstructionEdges())
{
SMDS_MeshEdge *edge1, *edge2, *edge3;
const SMDS_MeshNode * node3,
const SMDS_MeshNode * node4)
{
+ if ( !node1 || !node2 || !node3 || !node4 ) return 0;
if(hasConstructionEdges())
{
SMDS_MeshEdge *edge1, *edge2, *edge3, *edge4;
SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
const SMDS_MeshNode * node2)
{
+ if ( !node1 || !node2) return 0;
SMDS_MeshEdge * toReturn=NULL;
toReturn=const_cast<SMDS_MeshEdge*>(FindEdge(node1,node2));
if(toReturn==NULL) {
const SMDS_MeshNode * node1=FindNode(idnode1);
const SMDS_MeshNode * node2=FindNode(idnode2);
const SMDS_MeshNode * node3=FindNode(idnode3);
- if( (node1==NULL) || (node2==NULL) || (node3==NULL) ) return NULL;
return FindEdge(node1,node2,node3);
}
const SMDS_MeshNode * node2,
const SMDS_MeshNode * node3)
{
+ if ( !node1 || !node2 || !node3 ) return 0;
const SMDS_MeshEdge * toReturn = NULL;
SMDS_ElemIteratorPtr it1 = node1->edgesIterator();
while(it1->more()) {
const SMDS_MeshNode * node1=FindNode(idnode1);
const SMDS_MeshNode * node2=FindNode(idnode2);
const SMDS_MeshNode * node3=FindNode(idnode3);
- if( (node1==NULL) || (node2==NULL) || (node3==NULL) ) return NULL;
return FindFace(node1, node2, node3);
}
const SMDS_MeshNode *node2,
const SMDS_MeshNode *node3)
{
+ if ( !node1 || !node2 || !node3 ) return 0;
const SMDS_MeshFace * face;
const SMDS_MeshElement * node;
bool node2found, node3found;
const SMDS_MeshNode * node2=FindNode(idnode2);
const SMDS_MeshNode * node3=FindNode(idnode3);
const SMDS_MeshNode * node4=FindNode(idnode4);
- if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) )
- return NULL;
return FindFace(node1, node2, node3, node4);
}
const SMDS_MeshNode *node3,
const SMDS_MeshNode *node4)
{
+ if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) )
+ return NULL;
const SMDS_MeshFace * face;
const SMDS_MeshElement * node;
bool node2found, node3found, node4found;
const SMDS_MeshNode * node4 = FindNode(idnode4);
const SMDS_MeshNode * node5 = FindNode(idnode5);
const SMDS_MeshNode * node6 = FindNode(idnode6);
- if( (node1==NULL) || (node2==NULL) || (node3==NULL) ||
- (node4==NULL) || (node5==NULL) || (node6==NULL) ) return NULL;
return FindFace(node1, node2, node3, node4, node5, node6);
}
const SMDS_MeshNode *node5,
const SMDS_MeshNode *node6)
{
+ if( (node1==NULL) || (node2==NULL) || (node3==NULL) ||
+ (node4==NULL) || (node5==NULL) || (node6==NULL) ) return NULL;
const SMDS_MeshFace * face;
const SMDS_MeshElement * node;
SMDS_ElemIteratorPtr it1 = node1->facesIterator();
const SMDS_MeshNode * node6 = FindNode(idnode6);
const SMDS_MeshNode * node7 = FindNode(idnode7);
const SMDS_MeshNode * node8 = FindNode(idnode8);
- if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) ||
- (node5==NULL) || (node6==NULL) || (node7==NULL) || (node8==NULL) )
- return NULL;
return FindFace(node1, node2, node3, node4, node5, node6, node7, node8);
}
const SMDS_MeshNode *node7,
const SMDS_MeshNode *node8)
{
+ if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) ||
+ (node5==NULL) || (node6==NULL) || (node7==NULL) || (node8==NULL) )
+ return NULL;
const SMDS_MeshFace * face;
const SMDS_MeshElement * node;
SMDS_ElemIteratorPtr it1 = node1->facesIterator();
set<const SMDS_MeshFace *> faces;
for (int inode = 0; inode < nbNodes && isFound; inode++) {
+ if ( !nodes[ inode ]) return 0;
+
set<const SMDS_MeshFace *> new_faces;
SMDS_ElemIteratorPtr itF = nodes[inode]->facesIterator();
//=======================================================================
SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(int n1, int n2, int n12, int ID)
{
- SMDS_MeshNode* node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
- SMDS_MeshNode* node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
- SMDS_MeshNode* node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
- if(!node1 || !node2 || !node12) return NULL;
- return SMDS_Mesh::AddEdgeWithID(node1, node2, node12, ID);
+ return SMDS_Mesh::AddEdgeWithID
+ ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+ ID);
}
//=======================================================================
const SMDS_MeshNode * n12,
int ID)
{
+ if ( !n1 || !n2 || !n12 ) return 0;
SMDS_QuadraticEdge* edge = new SMDS_QuadraticEdge(n1,n2,n12);
if(myElementIDFactory->BindID(ID, edge)) {
SMDS_MeshNode *node1,*node2, *node12;
SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
int n12,int n23,int n31, int ID)
{
- SMDS_MeshNode * node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1);
- SMDS_MeshNode * node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2);
- SMDS_MeshNode * node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3);
- SMDS_MeshNode * node12 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12);
- SMDS_MeshNode * node23 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23);
- SMDS_MeshNode * node31 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n31);
- if(!node1 || !node2 || !node3 || !node12 || !node23 || !node31) return NULL;
- return SMDS_Mesh::AddFaceWithID(node1, node2, node3,
- node12, node23, node31, ID);
+ return SMDS_Mesh::AddFaceWithID
+ ((SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12),
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23),
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n31),
+ ID);
}
//=======================================================================
const SMDS_MeshNode * n31,
int ID)
{
+ if ( !n1 || !n2 || !n3 || !n12 || !n23 || !n31) return 0;
if(hasConstructionEdges()) {
// creation quadratic edges - not implemented
+ return 0;
}
SMDS_QuadraticFaceOfNodes* face =
new SMDS_QuadraticFaceOfNodes(n1,n2,n3,n12,n23,n31);
SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
int n12,int n23,int n34,int n41, int ID)
{
- SMDS_MeshNode * node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1);
- SMDS_MeshNode * node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2);
- SMDS_MeshNode * node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3);
- SMDS_MeshNode * node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n4);
- SMDS_MeshNode * node12 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12);
- SMDS_MeshNode * node23 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23);
- SMDS_MeshNode * node34 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n34);
- SMDS_MeshNode * node41 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n41);
- if(!node1 || !node2 || !node3 || !node4 ||
- !node12 || !node23 || !node34 || !node41) return NULL;
- return SMDS_Mesh::AddFaceWithID(node1, node2, node3, node4,
- node12, node23, node34, node41, ID);
+ return SMDS_Mesh::AddFaceWithID
+ ((SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n4) ,
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12),
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23),
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n34),
+ (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n41),
+ ID);
}
//=======================================================================
const SMDS_MeshNode * n41,
int ID)
{
+ if ( !n1 || !n2 || !n3 || !n4 || !n12 || !n23 || !n34 || !n41) return 0;
if(hasConstructionEdges()) {
// creation quadratic edges - not implemented
}
int n12,int n23,int n31,
int n14,int n24,int n34, int ID)
{
- SMDS_MeshNode *node1, *node2, *node3, *node4, *node12, *node23;
- SMDS_MeshNode *node31, *node14, *node24, *node34;
- node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
- node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
- node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
- node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
- node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
- node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
- node31 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31);
- node14 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14);
- node24 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n24);
- node34 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34);
- if( !node1 || !node2 || !node3 || !node4 || !node12 || !node23 ||
- !node31 || !node14 || !node24 || !node34 ) return NULL;
- return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node12, node23,
- node31, node14, node24, node34, ID);
+ return SMDS_Mesh::AddVolumeWithID
+ ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n24),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34),
+ ID);
}
-
+
//=======================================================================
//function : AddVolumeWithID
//purpose : 2d order tetrahedron of 10 nodes
const SMDS_MeshNode * n34,
int ID)
{
+ if ( !n1 || !n2 || !n3 || !n4 || !n12 || !n23 || !n31 || !n14 || !n24 || !n34)
+ return 0;
if(hasConstructionFaces()) {
// creation quadratic faces - not implemented
+ return 0;
}
SMDS_QuadraticVolumeOfNodes * volume =
new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
int n12,int n23,int n34,int n41,
int n15,int n25,int n35,int n45, int ID)
{
- SMDS_MeshNode *node1, *node2, *node3, *node4, *node5;
- SMDS_MeshNode *node12, *node23, *node34, *node41;
- SMDS_MeshNode *node15, *node25, *node35, *node45;
- node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
- node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
- node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
- node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
- node5 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5);
- node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
- node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
- node34 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34);
- node41 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41);
- node15 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15);
- node25 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25);
- node35 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n35);
- node45 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45);
- if( !node1 || !node2 || !node3 || !node4 || !node5 ||
- !node12 || !node23 || !node34 || !node41 ||
- !node15 || !node25 || !node35 || !node45 ) return NULL;
- return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5,
- node12, node23, node34, node41,
- node15, node25, node35, node45, ID);
+ return SMDS_Mesh::AddVolumeWithID
+ ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n35),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45),
+ ID);
}
-
+
//=======================================================================
//function : AddVolumeWithID
//purpose : 2d order pyramid of 13 nodes
const SMDS_MeshNode * n45,
int ID)
{
+ if (!n1 || !n2 || !n3 || !n4 || !n5 || !n12 || !n23 ||
+ !n34 || !n41 || !n15 || !n25 || !n35 || !n45)
+ return 0;
if(hasConstructionFaces()) {
// creation quadratic faces - not implemented
+ return 0;
}
SMDS_QuadraticVolumeOfNodes * volume =
new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n12,n23,
int n45,int n56,int n64,
int n14,int n25,int n36, int ID)
{
- SMDS_MeshNode *node1, *node2, *node3, *node4, *node5, *node6;
- SMDS_MeshNode *node12, *node23, *node31;
- SMDS_MeshNode *node45, *node56, *node64;
- SMDS_MeshNode *node14, *node25, *node36;
- node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
- node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
- node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
- node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
- node5 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5);
- node6 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6);
- node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
- node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
- node31 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31);
- node45 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45);
- node56 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56);
- node64 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n64);
- node14 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14);
- node25 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25);
- node36 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n36);
- if( !node1 || !node2 || !node3 || !node4 || !node5 || !node6 ||
- !node12 || !node23 || !node31 || !node45 || !node56 ||
- !node64 || !node14 || !node25 || !node36 ) return NULL;
- return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5, node6,
- node12, node23, node31, node45, node56,
- node64, node14, node25, node36, ID);
+ return SMDS_Mesh::AddVolumeWithID
+ ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6) ,
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n64),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n36),
+ ID);
}
-
+
//=======================================================================
//function : AddVolumeWithID
//purpose : 2d order Pentahedron with 15 nodes
const SMDS_MeshNode * n36,
int ID)
{
+ if (!n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n12 || !n23 ||
+ !n31 || !n45 || !n56 || !n64 || !n14 || !n25 || !n36)
+ return 0;
if(hasConstructionFaces()) {
// creation quadratic faces - not implemented
+ return 0;
}
SMDS_QuadraticVolumeOfNodes * volume =
new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n6,n12,n23,n31,
int n56,int n67,int n78,int n85,
int n15,int n26,int n37,int n48, int ID)
{
- SMDS_MeshNode *node1, *node2, *node3, *node4;
- SMDS_MeshNode *node5, *node6, *node7, *node8;
- SMDS_MeshNode *node12, *node23, *node34, *node41;
- SMDS_MeshNode *node56, *node67, *node78, *node85;
- SMDS_MeshNode *node15, *node26, *node37, *node48;
- node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
- node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
- node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
- node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
- node5 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5);
- node6 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6);
- node7 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n7);
- node8 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n8);
- node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
- node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
- node34 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34);
- node41 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41);
- node56 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56);
- node67 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n67);
- node78 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n78);
- node85 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n85);
- node15 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15);
- node26 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n26);
- node37 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n37);
- node48 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n48);
- if( !node1 || !node2 || !node3 || !node4 ||
- !node5 || !node6 || !node7 || !node8 ||
- !node12 || !node23 || !node34 || !node41 ||
- !node56 || !node67 || !node78 || !node85 ||
- !node15 || !node26 || !node37 || !node48 ) return NULL;
- return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4,
- node5, node6, node7, node8,
- node12, node23, node34, node41,
- node56, node67, node78, node85,
- node15, node26, node37, node48, ID);
+ return SMDS_Mesh::AddVolumeWithID
+ ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n7),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n8),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n67),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n78),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n85),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n26),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n37),
+ (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n48),
+ ID);
}
-
+
//=======================================================================
//function : AddVolumeWithID
//purpose : 2d order Hexahedrons with 20 nodes
const SMDS_MeshNode * n48,
int ID)
{
+ if (!n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n7 || !n8 || !n12 || !n23 ||
+ !n34 || !n41 || !n56 || !n67 || !n78 || !n85 || !n15 || !n26 || !n37 || !n48)
+ return 0;
if(hasConstructionFaces()) {
+ return 0;
// creation quadratic faces - not implemented
}
SMDS_QuadraticVolumeOfNodes * volume =
{
return false;
}
+
+//================================================================================
+ /*!
+ * \brief Check if a node belongs to the element
+ * \param node - the node to check
+ * \retval int - node index within the element, -1 if not found
+ */
+//================================================================================
+
+int SMDS_MeshElement::GetNodeIndex( const SMDS_MeshNode* node ) const
+{
+ SMDS_ElemIteratorPtr nIt = nodesIterator();
+ for ( int i = 0; nIt->more(); ++i )
+ if ( nIt->next() == node )
+ return i;
+ return -1;
+}
return ind;
}
+ /*!
+ * \brief Check if a node belongs to the element
+ * \param node - the node to check
+ * \retval int - node index within the element, -1 if not found
+ */
+ int GetNodeIndex( const SMDS_MeshNode* node ) const;
+
protected:
SMDS_MeshElement(int ID=-1);
virtual void Print(std::ostream & OS) const;
bool IsEmpty() const { return myElements.empty(); }
int Extent() const { return myElements.size(); }
+ int SubGroupsNb() const { return myChildren.size(); }
+
SMDSAbs_ElementType GetType() const { return myType; }
bool Contains(const SMDS_MeshElement * theElem) const;
const SMDS_MeshElement* Next() const
{ return *(const_cast<TIterator&>(myIterator))++; }
+ void InitSubGroupsIterator() const
+ { const_cast<TGroupIterator&>(myGroupIterator) = myChildren.begin(); }
+
+ bool MoreSubGroups() const { return myGroupIterator != myChildren.end(); }
+
+ const SMDS_MeshGroup* NextSubGroup() const
+ { return *(const_cast<TGroupIterator&>(myGroupIterator))++; }
+
private:
SMDS_MeshGroup(SMDS_MeshGroup* theParent,
const SMDSAbs_ElementType theType = SMDSAbs_All);
typedef std::set<const SMDS_MeshElement *>::const_iterator TIterator;
+ typedef std::list<const SMDS_MeshGroup *>::const_iterator TGroupIterator;
+
const SMDS_Mesh * myMesh;
SMDSAbs_ElementType myType;
std::set<const SMDS_MeshElement *> myElements;
SMDS_MeshGroup * myParent;
std::list<const SMDS_MeshGroup*> myChildren;
TIterator myIterator;
+ TGroupIterator myGroupIterator;
};
#endif
SMESH_IndexedDataMapOfShapeIndexedMapOfShape.hxx \
SMESH_DataMapOfElemPtrSequenceOfElemPtr.hxx \
SMESH_SequenceOfElemPtr.hxx \
- SMESH_SequenceOfNode.hxx
+ SMESH_SequenceOfNode.hxx \
+ SMESH_MesherHelper.hxx
EXPORT_PYSCRIPTS =
SMESH_MeshEditor.cxx \
SMESH_Block.cxx \
SMESH_Pattern.cxx \
- SMESH_HypoFilter.cxx
+ SMESH_HypoFilter.cxx \
+ SMESH_MesherHelper.cxx
LIB_SERVER_IDL =
-I${MED_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-I${MED_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
-LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV
+LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -L${OCC_KERNEL_LIBS} $(OCC_LDPATH)-lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV -lTKShHealing
@CONCLUDE@
myReader.SetMeshId(-1);
myReader.Perform();
if(MYDEBUG){
- MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
- MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
- MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
- MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+ MESSAGE("UNVToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
+ MESSAGE("UNVToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
+ MESSAGE("UNVToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
+ MESSAGE("UNVToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+ }
+ SMDS_MeshGroup* aGroup = (SMDS_MeshGroup*) myReader.GetGroup();
+ if (aGroup != 0) {
+ TGroupNamesMap aGroupNames = myReader.GetGroupNamesMap();
+ //const TGroupIdMap& aGroupId = myReader.GetGroupIdMap();
+ aGroup->InitSubGroupsIterator();
+ while (aGroup->MoreSubGroups()) {
+ SMDS_MeshGroup* aSubGroup = (SMDS_MeshGroup*) aGroup->NextSubGroup();
+ std::string aName = aGroupNames[aSubGroup];
+ int aId;
+
+ SMESH_Group* aSMESHGroup = AddGroup( aSubGroup->GetType(), aName.c_str(), aId );
+ if ( aSMESHGroup ) {
+ if(MYDEBUG) MESSAGE("UNVToMesh - group added: "<<aName);
+ SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( aSMESHGroup->GetGroupDS() );
+ if ( aGroupDS ) {
+ aGroupDS->SetStoreName(aName.c_str());
+ aSubGroup->InitIterator();
+ const SMDS_MeshElement* aElement = 0;
+ while (aSubGroup->More()) {
+ aElement = aSubGroup->Next();
+ if (aElement) {
+ aGroupDS->SMDSGroup().Add(aElement);
+ }
+ }
+ if (aElement)
+ aGroupDS->SetType(aElement->GetType());
+ }
+ }
+ }
}
return 1;
}
int SMESH_Mesh::STLToMesh(const char* theFileName)
{
- if(MYDEBUG) MESSAGE("UNVToMesh - theFileName = "<<theFileName);
+ if(MYDEBUG) MESSAGE("STLToMesh - theFileName = "<<theFileName);
if(_isShapeToMesh)
throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
_isShapeToMesh = true;
myReader.SetMeshId(-1);
myReader.Perform();
if(MYDEBUG){
- MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
- MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
- MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
- MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+ MESSAGE("STLToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
+ MESSAGE("STLToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
+ MESSAGE("STLToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
+ MESSAGE("STLToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
}
return 1;
}
myWriter.SetFile(string(file));
myWriter.SetMesh(_myMeshDS);
myWriter.SetMeshId(_idDoc);
+ // myWriter.SetGroups(_mapGroup);
+
+ for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
+ SMESH_Group* aGroup = it->second;
+ SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
+ if ( aGroupDS ) {
+ string aGroupName = aGroup->GetName();
+ aGroupDS->SetStoreName( aGroupName.c_str() );
+ myWriter.AddGroup( aGroupDS );
+ }
+ }
myWriter.Perform();
}
*
*/
//=============================================================================
-int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
+int SMESH_Mesh::NbEdges(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
- return _myMeshDS->NbEdges();
+ if (order == ORDER_ANY)
+ return _myMeshDS->NbEdges();
+
+ int Nb = 0;
+ SMDS_EdgeIteratorPtr it = _myMeshDS->edgesIterator();
+ while (it->more()) {
+ const SMDS_MeshEdge* cur = it->next();
+ if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
+ order == ORDER_QUADRATIC && cur->IsQuadratic() )
+ Nb++;
+ }
+ return Nb;
}
//=============================================================================
*
*/
//=============================================================================
-int SMESH_Mesh::NbFaces() throw(SALOME_Exception)
+int SMESH_Mesh::NbFaces(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
- return _myMeshDS->NbFaces();
+ if (order == ORDER_ANY)
+ return _myMeshDS->NbFaces();
+
+ int Nb = 0;
+ SMDS_FaceIteratorPtr it = _myMeshDS->facesIterator();
+ while (it->more()) {
+ const SMDS_MeshFace* cur = it->next();
+ if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
+ order == ORDER_QUADRATIC && cur->IsQuadratic() )
+ Nb++;
+ }
+ return Nb;
}
///////////////////////////////////////////////////////////////////////////////
/// Return the number of 3 nodes faces in the mesh. This method run in O(n)
///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
+int SMESH_Mesh::NbTriangles(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
int Nb = 0;
SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
- //while(itFaces->more()) if(itFaces->next()->NbNodes()==3) Nb++;
- const SMDS_MeshFace * curFace;
while (itFaces->more()) {
- curFace = itFaces->next();
+ const SMDS_MeshFace* curFace = itFaces->next();
+ int nbnod = curFace->NbNodes();
if ( !curFace->IsPoly() &&
- ( curFace->NbNodes()==3 || curFace->NbNodes()==6 ) ) Nb++;
+ ( order == ORDER_ANY && (nbnod==3 || nbnod==6) ||
+ order == ORDER_LINEAR && nbnod==3 ||
+ order == ORDER_QUADRATIC && nbnod==6 ) )
+ Nb++;
}
return Nb;
}
///////////////////////////////////////////////////////////////////////////////
/// Return the number of 4 nodes faces in the mesh. This method run in O(n)
///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception)
+int SMESH_Mesh::NbQuadrangles(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
int Nb = 0;
SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
- //while(itFaces->more()) if(itFaces->next()->NbNodes()==4) Nb++;
- const SMDS_MeshFace * curFace;
while (itFaces->more()) {
- curFace = itFaces->next();
+ const SMDS_MeshFace* curFace = itFaces->next();
+ int nbnod = curFace->NbNodes();
if ( !curFace->IsPoly() &&
- ( curFace->NbNodes() == 4 || curFace->NbNodes()==8 ) ) Nb++;
+ ( order == ORDER_ANY && (nbnod==4 || nbnod==8) ||
+ order == ORDER_LINEAR && nbnod==4 ||
+ order == ORDER_QUADRATIC && nbnod==8 ) )
+ Nb++;
}
return Nb;
}
*
*/
//=============================================================================
-int SMESH_Mesh::NbVolumes() throw(SALOME_Exception)
+int SMESH_Mesh::NbVolumes(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
- return _myMeshDS->NbVolumes();
+ if (order == ORDER_ANY)
+ return _myMeshDS->NbVolumes();
+
+ int Nb = 0;
+ SMDS_VolumeIteratorPtr it = _myMeshDS->volumesIterator();
+ while (it->more()) {
+ const SMDS_MeshVolume* cur = it->next();
+ if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
+ order == ORDER_QUADRATIC && cur->IsQuadratic() )
+ Nb++;
+ }
+ return Nb;
}
-int SMESH_Mesh::NbTetras() throw(SALOME_Exception)
+int SMESH_Mesh::NbTetras(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
int Nb = 0;
SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
- //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==4) Nb++;
- const SMDS_MeshVolume * curVolume;
while (itVolumes->more()) {
- curVolume = itVolumes->next();
+ const SMDS_MeshVolume* curVolume = itVolumes->next();
+ int nbnod = curVolume->NbNodes();
if ( !curVolume->IsPoly() &&
- ( curVolume->NbNodes() == 4 || curVolume->NbNodes()==10 ) ) Nb++;
+ ( order == ORDER_ANY && (nbnod==4 || nbnod==10) ||
+ order == ORDER_LINEAR && nbnod==4 ||
+ order == ORDER_QUADRATIC && nbnod==10 ) )
+ Nb++;
}
return Nb;
}
-int SMESH_Mesh::NbHexas() throw(SALOME_Exception)
+int SMESH_Mesh::NbHexas(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
int Nb = 0;
SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
- //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==8) Nb++;
- const SMDS_MeshVolume * curVolume;
while (itVolumes->more()) {
- curVolume = itVolumes->next();
+ const SMDS_MeshVolume* curVolume = itVolumes->next();
+ int nbnod = curVolume->NbNodes();
if ( !curVolume->IsPoly() &&
- ( curVolume->NbNodes() == 8 || curVolume->NbNodes()==20 ) ) Nb++;
+ ( order == ORDER_ANY && (nbnod==8 || nbnod==20) ||
+ order == ORDER_LINEAR && nbnod==8 ||
+ order == ORDER_QUADRATIC && nbnod==20 ) )
+ Nb++;
}
return Nb;
}
-int SMESH_Mesh::NbPyramids() throw(SALOME_Exception)
+int SMESH_Mesh::NbPyramids(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
int Nb = 0;
SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
- //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==5) Nb++;
- const SMDS_MeshVolume * curVolume;
while (itVolumes->more()) {
- curVolume = itVolumes->next();
+ const SMDS_MeshVolume* curVolume = itVolumes->next();
+ int nbnod = curVolume->NbNodes();
if ( !curVolume->IsPoly() &&
- ( curVolume->NbNodes() == 5 || curVolume->NbNodes()==13 ) ) Nb++;
+ ( order == ORDER_ANY && (nbnod==5 || nbnod==13) ||
+ order == ORDER_LINEAR && nbnod==5 ||
+ order == ORDER_QUADRATIC && nbnod==13 ) )
+ Nb++;
}
return Nb;
}
-int SMESH_Mesh::NbPrisms() throw(SALOME_Exception)
+int SMESH_Mesh::NbPrisms(ElementOrder order) throw(SALOME_Exception)
{
Unexpect aCatch(SalomeException);
int Nb = 0;
SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
- //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==6) Nb++;
- const SMDS_MeshVolume * curVolume;
while (itVolumes->more()) {
- curVolume = itVolumes->next();
+ const SMDS_MeshVolume* curVolume = itVolumes->next();
+ int nbnod = curVolume->NbNodes();
if ( !curVolume->IsPoly() &&
- ( curVolume->NbNodes() == 6 || curVolume->NbNodes()==15 ) ) Nb++;
+ ( order == ORDER_ANY && (nbnod==6 || nbnod==15) ||
+ order == ORDER_LINEAR && nbnod==6 ||
+ order == ORDER_QUADRATIC && nbnod==15 ) )
+ Nb++;
}
return Nb;
}
int NbNodes() throw(SALOME_Exception);
- int NbEdges() throw(SALOME_Exception);
+ /*!
+ * ElementOrder points out entities of what order are requested
+ */
+ enum ElementOrder {
+ ORDER_ANY, /*! entities of any order */
+ ORDER_LINEAR, /*! entities of 1st order */
+ ORDER_QUADRATIC /*! entities of 2nd order */
+ };
+
+ int NbEdges(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbFaces() throw(SALOME_Exception);
+ int NbFaces(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbTriangles() throw(SALOME_Exception);
+ int NbTriangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbQuadrangles() throw(SALOME_Exception);
+ int NbQuadrangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
int NbPolygons() throw(SALOME_Exception);
- int NbVolumes() throw(SALOME_Exception);
+ int NbVolumes(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbTetras() throw(SALOME_Exception);
+ int NbTetras(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbHexas() throw(SALOME_Exception);
+ int NbHexas(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbPyramids() throw(SALOME_Exception);
+ int NbPyramids(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
- int NbPrisms() throw(SALOME_Exception);
+ int NbPrisms(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
int NbPolyhedrons() throw(SALOME_Exception);
#include "SMESH_subMesh.hxx"
#include "SMESH_ControlsDef.hxx"
+#include "SMESH_MesherHelper.hxx"
#include "utilities.h"
#include <GeomAdaptor_Surface.hxx>
#include <ElCLib.hxx>
#include <TColStd_ListOfInteger.hxx>
+#include <TopoDS_Face.hxx>
#include <map>
bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
const bool isNodes )
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
SMESHDS_Mesh* aMesh = GetMeshDS();
set< SMESH_subMesh *> smmap;
const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
const SMDS_PositionPtr& aPosition = node->GetPosition();
if ( aPosition.get() ) {
- int aShapeID = aPosition->GetShapeId();
- if ( aShapeID ) {
- TopoDS_Shape aShape = aMesh->IndexToShape( aShapeID );
- SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShape );
- if ( sm )
+ if ( int aShapeID = aPosition->GetShapeId() ) {
+ if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShapeID ) )
smmap.insert( sm );
}
}
(*smIt)->ComputeStateEngine( SMESH_subMesh::MESH_ENTITY_REMOVED );
}
+ // Check if the whole mesh becomes empty
+ if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( 1 ) )
+ sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
+
return true;
}
int SMESH_MeshEditor::FindShape (const SMDS_MeshElement * theElem)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
SMESHDS_Mesh * aMesh = GetMeshDS();
if ( aMesh->ShapeToMesh().IsNull() )
return 0;
bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshElement * theTria1,
const SMDS_MeshElement * theTria2 )
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
if (!theTria1 || !theTria2)
return false;
if ( elem->GetType() == SMDSAbs_Face &&
emap.find( elem ) != emap.end() )
if ( theTria1 ) {
- theTria2 = elem;
+ // theTria1 must be element with minimum ID
+ if( theTria1->GetID() < elem->GetID() ) {
+ theTria2 = elem;
+ }
+ else {
+ theTria2 = theTria1;
+ theTria1 = elem;
+ }
break;
}
else {
bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshNode * theNode1,
const SMDS_MeshNode * theNode2)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE( "::InverseDiag()" );
const SMDS_MeshElement *tr1, *tr2;
bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
const SMDS_MeshNode * theNode2)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE( "::DeleteDiag()" );
const SMDS_MeshElement *tr1, *tr2;
//MESSAGE( endl << tr1 << tr2 );
GetMeshDS()->ChangeElementNodes( tr1, aNodes, 4 );
+ myLastCreatedElems.Append(tr1);
GetMeshDS()->RemoveElement( tr2 );
//MESSAGE( endl << tr1 );
aNodes[7] = N1[5];
GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+ myLastCreatedElems.Append(tr1);
GetMeshDS()->RemoveElement( tr2 );
// remove middle node (9)
bool SMESH_MeshEditor::Reorient (const SMDS_MeshElement * theElem)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
if (!theElem)
return false;
SMDS_ElemIteratorPtr it = theElem->nodesIterator();
// theCrit is used to select a diagonal to cut
//=======================================================================
-bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> & theElems,
+bool SMESH_MeshEditor::QuadToTri (map<int,const SMDS_MeshElement*> & theElems,
SMESH::Controls::NumericalFunctorPtr theCrit)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE( "::QuadToTri()" );
if ( !theCrit.get() )
SMESHDS_Mesh * aMesh = GetMeshDS();
- set< const SMDS_MeshElement * >::iterator itElem;
+ Handle(Geom_Surface) surface;
+ SMESH_MesherHelper helper( *GetMesh() );
+
+ map<int, const SMDS_MeshElement * >::iterator itElem;
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem || elem->GetType() != SMDSAbs_Face )
continue;
+ if ( elem->NbNodes() != ( elem->IsQuadratic() ? 8 : 4 ))
+ continue;
- if(elem->NbNodes()==4) {
+ // retrieve element nodes
+ const SMDS_MeshNode* aNodes [8];
+ SMDS_ElemIteratorPtr itN = elem->nodesIterator();
+ int i = 0;
+ while ( itN->more() )
+ aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
- // retrieve element nodes
- const SMDS_MeshNode* aNodes [4];
- SMDS_ElemIteratorPtr itN = elem->nodesIterator();
- int i = 0;
- while ( itN->more() )
- aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+ // compare two sets of possible triangles
+ double aBadRate1, aBadRate2; // to what extent a set is bad
+ SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
+ SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
+ aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
- // compare two sets of possible triangles
- double aBadRate1, aBadRate2; // to what extent a set is bad
- SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
- SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
- aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
-
- SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
- SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
- aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
+ SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
+ SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
+ aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
- int aShapeId = FindShape( elem );
- //MESSAGE( "aBadRate1 = " << aBadRate1 << "; aBadRate2 = " << aBadRate2
- // << " ShapeID = " << aShapeId << endl << elem );
+ int aShapeId = FindShape( elem );
+ const SMDS_MeshElement* newElem = 0;
+
+ if( !elem->IsQuadratic() ) {
+
+ // split liner quadrangle
if ( aBadRate1 <= aBadRate2 ) {
// tr1 + tr2 is better
aMesh->ChangeElementNodes( elem, aNodes, 3 );
- //MESSAGE( endl << elem );
-
- elem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
+ newElem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
}
else {
// tr3 + tr4 is better
aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
- //MESSAGE( endl << elem );
-
- elem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
+ newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
}
- //MESSAGE( endl << elem );
-
- // put a new triangle on the same shape
- if ( aShapeId )
- aMesh->SetMeshElementOnShape( elem, aShapeId );
}
+ else {
- if( elem->NbNodes()==8 && elem->IsQuadratic() ) {
+ // split qudratic quadrangle
+
+ // get surface elem is on
+ if ( aShapeId != helper.GetSubShapeID() ) {
+ surface.Nullify();
+ TopoDS_Shape shape;
+ if ( aShapeId > 0 )
+ shape = aMesh->IndexToShape( aShapeId );
+ if ( !shape.IsNull() && shape.ShapeType() == TopAbs_FACE ) {
+ TopoDS_Face face = TopoDS::Face( shape );
+ surface = BRep_Tool::Surface( face );
+ if ( !surface.IsNull() )
+ helper.SetSubShape( shape );
+ }
+ }
+ // get elem nodes
const SMDS_MeshNode* aNodes [8];
+ const SMDS_MeshNode* inFaceNode = 0;
SMDS_ElemIteratorPtr itN = elem->nodesIterator();
int i = 0;
while ( itN->more() ) {
aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+ if ( !inFaceNode && helper.GetNodeUVneedInFaceNode() &&
+ aNodes[ i-1 ]->GetPosition()->GetTypeOfPosition() == SMDS_TOP_FACE )
+ {
+ inFaceNode = aNodes[ i-1 ];
+ }
}
-
- // compare two sets of possible triangles
- // use for comparing simple triangles (not quadratic)
- double aBadRate1, aBadRate2; // to what extent a set is bad
- SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
- SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
- aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
-
- SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
- SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
- aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
-
- int aShapeId = FindShape( elem );
-
// find middle point for (0,1,2,3)
- // and create node in this point;
- double x=0., y=0., z=0.;
- for(i=0; i<4; i++) {
- x += aNodes[i]->X();
- y += aNodes[i]->Y();
- z += aNodes[i]->Z();
+ // and create a node in this point;
+ gp_XYZ p( 0,0,0 );
+ if ( surface.IsNull() ) {
+ for(i=0; i<4; i++)
+ p += gp_XYZ(aNodes[i]->X(), aNodes[i]->Y(), aNodes[i]->Z() );
+ p /= 4;
}
- const SMDS_MeshNode* newN = aMesh->AddNode(x/4, y/4, z/4);
-
+ else {
+ TopoDS_Face face = TopoDS::Face( helper.GetSubShape() );
+ gp_XY uv( 0,0 );
+ for(i=0; i<4; i++)
+ uv += helper.GetNodeUV( face, aNodes[i], inFaceNode );
+ uv /= 4.;
+ p = surface->Value( uv.X(), uv.Y() ).XYZ();
+ }
+ const SMDS_MeshNode* newN = aMesh->AddNode( p.X(), p.Y(), p.Z() );
+ myLastCreatedNodes.Append(newN);
+
+ // create a new element
+ const SMDS_MeshNode* N[6];
if ( aBadRate1 <= aBadRate2 ) {
- // tr1 + tr2 is better
- const SMDS_MeshNode* N[6];
N[0] = aNodes[0];
N[1] = aNodes[1];
N[2] = aNodes[2];
N[3] = aNodes[4];
N[4] = aNodes[5];
N[5] = newN;
- aMesh->ChangeElementNodes( elem, N, 6 );
- elem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
- aNodes[6], aNodes[7], newN );
+ newElem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
+ aNodes[6], aNodes[7], newN );
}
else {
- // tr3 + tr4 is better
- const SMDS_MeshNode* N[6];
N[0] = aNodes[1];
N[1] = aNodes[2];
N[2] = aNodes[3];
N[3] = aNodes[5];
N[4] = aNodes[6];
N[5] = newN;
- aMesh->ChangeElementNodes( elem, N, 6 );
- elem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
- aNodes[7], aNodes[4], newN );
- }
- // put a new triangle on the same shape
- if ( aShapeId ) {
- aMesh->SetMeshElementOnShape( elem, aShapeId );
+ newElem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
+ aNodes[7], aNodes[4], newN );
}
- }
+ aMesh->ChangeElementNodes( elem, N, 6 );
+
+ } // qudratic case
+
+ // care of a new element
+ myLastCreatedElems.Append(newElem);
+ AddToSameGroups( newElem, elem, aMesh );
+
+ // put a new triangle on the same shape
+ if ( aShapeId )
+ aMesh->SetMeshElementOnShape( newElem, aShapeId );
}
return true;
}
int SMESH_MeshEditor::BestSplit (const SMDS_MeshElement* theQuad,
SMESH::Controls::NumericalFunctorPtr theCrit)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
if (!theCrit.get())
return -1;
}
}
+
+//=======================================================================
+//function : RemoveElemFromGroups
+//purpose : Remove removeelem to the groups the elemInGroups belongs to
+//=======================================================================
+void SMESH_MeshEditor::RemoveElemFromGroups (const SMDS_MeshElement* removeelem,
+ SMESHDS_Mesh * aMesh)
+{
+ const set<SMESHDS_GroupBase*>& groups = aMesh->GetGroups();
+ if (!groups.empty())
+ {
+ set<SMESHDS_GroupBase*>::const_iterator GrIt = groups.begin();
+ for (; GrIt != groups.end(); GrIt++)
+ {
+ SMESHDS_Group* grp = dynamic_cast<SMESHDS_Group*>(*GrIt);
+ if (!grp || grp->IsEmpty()) continue;
+ grp->SMDSGroup().Remove(removeelem);
+ }
+ }
+}
+
+
//=======================================================================
//function : QuadToTri
//purpose : Cut quadrangles into triangles.
// theCrit is used to select a diagonal to cut
//=======================================================================
-bool SMESH_MeshEditor::QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
- const bool the13Diag)
+bool SMESH_MeshEditor::QuadToTri (std::map<int,const SMDS_MeshElement*> & theElems,
+ const bool the13Diag)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE( "::QuadToTri()" );
SMESHDS_Mesh * aMesh = GetMeshDS();
- set< const SMDS_MeshElement * >::iterator itElem;
+ Handle(Geom_Surface) surface;
+ SMESH_MesherHelper helper( *GetMesh() );
+
+ map<int, const SMDS_MeshElement * >::iterator itElem;
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem || elem->GetType() != SMDSAbs_Face )
continue;
bool isquad = elem->NbNodes()==4 || elem->NbNodes()==8;
aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
}
+ myLastCreatedElems.Append(newElem);
// put a new triangle on the same shape and add to the same groups
if ( aShapeId )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
AddToSameGroups( newElem, elem, aMesh );
}
+ // Quadratic quadrangle
+
if( elem->NbNodes()==8 && elem->IsQuadratic() ) {
+
+ // get surface elem is on
+ int aShapeId = FindShape( elem );
+ if ( aShapeId != helper.GetSubShapeID() ) {
+ surface.Nullify();
+ TopoDS_Shape shape;
+ if ( aShapeId > 0 )
+ shape = aMesh->IndexToShape( aShapeId );
+ if ( !shape.IsNull() && shape.ShapeType() == TopAbs_FACE ) {
+ TopoDS_Face face = TopoDS::Face( shape );
+ surface = BRep_Tool::Surface( face );
+ if ( !surface.IsNull() )
+ helper.SetSubShape( shape );
+ }
+ }
+
const SMDS_MeshNode* aNodes [8];
+ const SMDS_MeshNode* inFaceNode = 0;
SMDS_ElemIteratorPtr itN = elem->nodesIterator();
int i = 0;
while ( itN->more() ) {
aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+ if ( !inFaceNode && helper.GetNodeUVneedInFaceNode() &&
+ aNodes[ i-1 ]->GetPosition()->GetTypeOfPosition() == SMDS_TOP_FACE )
+ {
+ inFaceNode = aNodes[ i-1 ];
+ }
}
// find middle point for (0,1,2,3)
- // and create node in this point;
- double x=0., y=0., z=0.;
- for(i=0; i<4; i++) {
- x += aNodes[i]->X();
- y += aNodes[i]->Y();
- z += aNodes[i]->Z();
+ // and create a node in this point;
+ gp_XYZ p( 0,0,0 );
+ if ( surface.IsNull() ) {
+ for(i=0; i<4; i++)
+ p += gp_XYZ(aNodes[i]->X(), aNodes[i]->Y(), aNodes[i]->Z() );
+ p /= 4;
}
- const SMDS_MeshNode* newN = aMesh->AddNode(x/4, y/4, z/4);
+ else {
+ TopoDS_Face geomFace = TopoDS::Face( helper.GetSubShape() );
+ gp_XY uv( 0,0 );
+ for(i=0; i<4; i++)
+ uv += helper.GetNodeUV( geomFace, aNodes[i], inFaceNode );
+ uv /= 4.;
+ p = surface->Value( uv.X(), uv.Y() ).XYZ();
+ }
+ const SMDS_MeshNode* newN = aMesh->AddNode( p.X(), p.Y(), p.Z() );
+ myLastCreatedNodes.Append(newN);
- int aShapeId = FindShape( elem );
+ // create a new element
const SMDS_MeshElement* newElem = 0;
+ const SMDS_MeshNode* N[6];
if ( the13Diag ) {
- const SMDS_MeshNode* N[6];
N[0] = aNodes[0];
N[1] = aNodes[1];
N[2] = aNodes[2];
N[3] = aNodes[4];
N[4] = aNodes[5];
N[5] = newN;
- aMesh->ChangeElementNodes( elem, N, 6 );
- elem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
- aNodes[6], aNodes[7], newN );
+ newElem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
+ aNodes[6], aNodes[7], newN );
}
else {
- const SMDS_MeshNode* N[6];
N[0] = aNodes[1];
N[1] = aNodes[2];
N[2] = aNodes[3];
N[3] = aNodes[5];
N[4] = aNodes[6];
N[5] = newN;
- aMesh->ChangeElementNodes( elem, N, 6 );
- elem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
- aNodes[7], aNodes[4], newN );
+ newElem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
+ aNodes[7], aNodes[4], newN );
}
+ myLastCreatedElems.Append(newElem);
+ aMesh->ChangeElementNodes( elem, N, 6 );
// put a new triangle on the same shape and add to the same groups
if ( aShapeId )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
// fusion is still performed.
//=======================================================================
-bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> & theElems,
+bool SMESH_MeshEditor::TriToQuad (map<int,const SMDS_MeshElement*> & theElems,
SMESH::Controls::NumericalFunctorPtr theCrit,
const double theMaxAngle)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE( "::TriToQuad()" );
if ( !theCrit.get() )
map< const SMDS_MeshElement*, set< NLink > > mapEl_setLi;
map< const SMDS_MeshElement*, set< NLink > >::iterator itEL;
- set<const SMDS_MeshElement*>::iterator itElem;
+ map<int,const SMDS_MeshElement*>::iterator itElem;
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
//if ( !elem || elem->NbNodes() != 3 )
// continue;
if(!elem || elem->GetType() != SMDSAbs_Face ) continue;
mapEl_setLi.erase( tr2 );
mapLi_listEl.erase( link12 );
if(tr1->NbNodes()==3) {
- aMesh->ChangeElementNodes( tr1, n12, 4 );
- aMesh->RemoveElement( tr2 );
+ if( tr1->GetID() < tr2->GetID() ) {
+ aMesh->ChangeElementNodes( tr1, n12, 4 );
+ myLastCreatedElems.Append(tr1);
+ aMesh->RemoveElement( tr2 );
+ }
+ else {
+ aMesh->ChangeElementNodes( tr2, n12, 4 );
+ myLastCreatedElems.Append(tr2);
+ aMesh->RemoveElement( tr1);
+ }
}
else {
const SMDS_MeshNode* N1 [6];
aNodes[5] = N2[5];
aNodes[6] = N2[3];
aNodes[7] = N1[5];
- GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
- GetMeshDS()->RemoveElement( tr2 );
+ if( tr1->GetID() < tr2->GetID() ) {
+ GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+ myLastCreatedElems.Append(tr1);
+ GetMeshDS()->RemoveElement( tr2 );
+ }
+ else {
+ GetMeshDS()->ChangeElementNodes( tr2, aNodes, 8 );
+ myLastCreatedElems.Append(tr2);
+ GetMeshDS()->RemoveElement( tr1 );
+ }
// remove middle node (9)
GetMeshDS()->RemoveNode( N1[4] );
}
mapEl_setLi.erase( tr3 );
mapLi_listEl.erase( link13 );
if(tr1->NbNodes()==3) {
- aMesh->ChangeElementNodes( tr1, n13, 4 );
- aMesh->RemoveElement( tr3 );
+ if( tr1->GetID() < tr2->GetID() ) {
+ aMesh->ChangeElementNodes( tr1, n13, 4 );
+ myLastCreatedElems.Append(tr1);
+ aMesh->RemoveElement( tr3 );
+ }
+ else {
+ aMesh->ChangeElementNodes( tr3, n13, 4 );
+ myLastCreatedElems.Append(tr3);
+ aMesh->RemoveElement( tr1 );
+ }
}
else {
const SMDS_MeshNode* N1 [6];
aNodes[5] = N2[5];
aNodes[6] = N2[3];
aNodes[7] = N1[5];
- GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
- GetMeshDS()->RemoveElement( tr3 );
+ if( tr1->GetID() < tr2->GetID() ) {
+ GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+ myLastCreatedElems.Append(tr1);
+ GetMeshDS()->RemoveElement( tr3 );
+ }
+ else {
+ GetMeshDS()->ChangeElementNodes( tr3, aNodes, 8 );
+ myLastCreatedElems.Append(tr3);
+ GetMeshDS()->RemoveElement( tr1 );
+ }
// remove middle node (9)
GetMeshDS()->RemoveNode( N1[4] );
}
// on edges and boundary nodes are always fixed.
//=======================================================================
-void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
+void SMESH_MeshEditor::Smooth (map<int,const SMDS_MeshElement*> & theElems,
set<const SMDS_MeshNode*> & theFixedNodes,
const SmoothMethod theSmoothMethod,
const int theNbIterations,
double theTgtAspectRatio,
const bool the2D)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE((theSmoothMethod==LAPLACIAN ? "LAPLACIAN" : "CENTROIDAL") << "--::Smooth()");
if ( theTgtAspectRatio < 1.0 )
if ( theElems.empty() ) {
// add all faces to theElems
SMDS_FaceIteratorPtr fIt = aMesh->facesIterator();
- while ( fIt->more() )
- theElems.insert( fIt->next() );
+ while ( fIt->more() ) {
+ const SMDS_MeshElement* face = fIt->next();
+ theElems.insert( make_pair(face->GetID(),face) );
+ }
}
// get all face ids theElems are on
set< int > faceIdSet;
- set< const SMDS_MeshElement* >::iterator itElem;
+ map<int, const SMDS_MeshElement* >::iterator itElem;
if ( the2D )
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- int fId = FindShape( *itElem );
+ int fId = FindShape( (*itElem).second );
// check that corresponding submesh exists and a shape is face
if (fId &&
faceIdSet.find( fId ) == faceIdSet.end() &&
if ( faceSubMesh && nbElemOnFace == faceSubMesh->NbElements() )
break; // all elements found
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() < 3 ||
( faceSubMesh && !faceSubMesh->Contains( elem ))) {
++itElem;
// move medium nodes of quadratic elements
if ( isQuadratic )
{
+ SMESH_MesherHelper helper( *GetMesh() );
+ if ( !face.IsNull() )
+ helper.SetSubShape( face );
list< const SMDS_MeshElement* >::iterator elemIt = elemsOnFace.begin();
for ( ; elemIt != elemsOnFace.end(); ++elemIt ) {
const SMDS_QuadraticFaceOfNodes* QF =
while ( anIter->more() )
Ns.push_back( anIter->next() );
Ns.push_back( Ns[0] );
+ double x, y, z;
for(int i=0; i<QF->NbNodes(); i=i+2) {
- double x = (Ns[i]->X() + Ns[i+2]->X())/2;
- double y = (Ns[i]->Y() + Ns[i+2]->Y())/2;
- double z = (Ns[i]->Z() + Ns[i+2]->Z())/2;
+ if ( !surface.IsNull() ) {
+ gp_XY uv1 = helper.GetNodeUV( face, Ns[i], Ns[i+2] );
+ gp_XY uv2 = helper.GetNodeUV( face, Ns[i+2], Ns[i] );
+ gp_XY uv = ( uv1 + uv2 ) / 2.;
+ gp_Pnt xyz = surface->Value( uv.X(), uv.Y() );
+ x = xyz.X(); y = xyz.Y(); z = xyz.Z();
+ }
+ else {
+ x = (Ns[i]->X() + Ns[i+2]->X())/2;
+ y = (Ns[i]->Y() + Ns[i+2]->Y())/2;
+ z = (Ns[i]->Z() + Ns[i+2]->Z())/2;
+ }
if( fabs( Ns[i+1]->X() - x ) > disttol ||
fabs( Ns[i+1]->Y() - y ) > disttol ||
fabs( Ns[i+1]->Z() - z ) > disttol ) {
const SMDS_MeshElement* elem,
const vector<TNodeOfNodeListMapItr> & newNodesItVec,
list<const SMDS_MeshElement*>& newElems,
- const int nbSteps)
+ const int nbSteps,
+ SMESH_SequenceOfElemPtr& myLastCreatedElems)
{
// Loop on elem nodes:
// find new nodes and detect same nodes indices
if ( aNewElem ) {
newElems.push_back( aNewElem );
+ myLastCreatedElems.Append(aNewElem);
}
// set new prev nodes
TNodeOfNodeListMap & mapNewNodes,
TElemOfElemListMap & newElemsMap,
TElemOfVecOfNnlmiMap & elemNewNodesMap,
- set<const SMDS_MeshElement*>& elemSet,
- const int nbSteps)
+ map<int,const SMDS_MeshElement*>& elemSet,
+ const int nbSteps,
+ SMESH_SequenceOfElemPtr& myLastCreatedElems)
{
ASSERT( newElemsMap.size() == elemNewNodesMap.size() );
while ( eIt->more() && nbInitElems < 2 ) {
el = eIt->next();
//if ( elemSet.find( eIt->next() ) != elemSet.end() )
- if ( elemSet.find(el) != elemSet.end() )
+ if ( elemSet.find(el->GetID()) != elemSet.end() )
nbInitElems++;
}
if ( nbInitElems < 2 ) {
if(!NotCreateEdge) {
vector<TNodeOfNodeListMapItr> newNodesItVec( 1, nList );
list<const SMDS_MeshElement*> newEdges;
- sweepElement( aMesh, node, newNodesItVec, newEdges, nbSteps );
+ sweepElement( aMesh, node, newNodesItVec, newEdges, nbSteps, myLastCreatedElems );
}
}
}
if ( elem->GetType() == SMDSAbs_Edge ) {
if(!elem->IsQuadratic()) {
// create a ceiling edge
- aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
- vecNewNodes[ 1 ]->second.back() );
+ myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
+ vecNewNodes[ 1 ]->second.back()));
}
else {
// create a ceiling edge
- aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
- vecNewNodes[ 1 ]->second.back(),
- vecNewNodes[ 2 ]->second.back());
+ myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
+ vecNewNodes[ 1 ]->second.back(),
+ vecNewNodes[ 2 ]->second.back()));
}
}
if ( elem->GetType() != SMDSAbs_Face )
continue;
+ if(itElem->second.size()==0) continue;
+
bool hasFreeLinks = false;
- set<const SMDS_MeshElement*> avoidSet;
- avoidSet.insert( elem );
+ map<int,const SMDS_MeshElement*> avoidSet;
+ avoidSet.insert( make_pair(elem->GetID(),elem) );
set<const SMDS_MeshNode*> aFaceLastNodes;
int iNode, nbNodes = vecNewNodes.size();
hasFreeLinks = true;
// make an edge and a ceiling for a new edge
if ( !aMesh->FindEdge( n1, n2 )) {
- aMesh->AddEdge( n1, n2 );
+ myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
}
n1 = vecNewNodes[ iNode ]->second.back();
n2 = vecNewNodes[ iNext ]->second.back();
if ( !aMesh->FindEdge( n1, n2 )) {
- aMesh->AddEdge( n1, n2 );
+ myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
}
}
}
// find medium node
const SMDS_MeshNode* n3 = vecNewNodes[ iNode+nbn ]->first;
if ( !aMesh->FindEdge( n1, n2, n3 )) {
- aMesh->AddEdge( n1, n2, n3 );
+ myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
}
n1 = vecNewNodes[ iNode ]->second.back();
n2 = vecNewNodes[ iNext ]->second.back();
n3 = vecNewNodes[ iNode+nbn ]->second.back();
if ( !aMesh->FindEdge( n1, n2, n3 )) {
- aMesh->AddEdge( n1, n2, n3 );
+ myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
}
}
}
//switch ( vTool.NbFaceNodes( *ind ) ) {
switch ( nbn ) {
case 3:
- aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ); break;
+ myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] )); break;
case 4:
- aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ); break;
+ myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] )); break;
default:
{
if( (*v)->IsQuadratic() ) {
if(nbn==6) {
- aMesh->AddFace(nodes[0], nodes[2], nodes[4],
- nodes[1], nodes[3], nodes[5]); break;
+ myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4],
+ nodes[1], nodes[3], nodes[5])); break;
}
else {
- aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
- nodes[1], nodes[3], nodes[5], nodes[7]);
+ myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
+ nodes[1], nodes[3], nodes[5], nodes[7]));
break;
}
}
for (int inode = 0; inode < nbPolygonNodes; inode++) {
polygon_nodes[inode] = nodes[inode];
}
- aMesh->AddPolygonalFace(polygon_nodes);
+ myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
}
break;
}
case 3:
if (!hasFreeLinks ||
!aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ]))
- aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
+ myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
break;
case 4:
if (!hasFreeLinks ||
!aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ]))
- aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] );
+ myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ));
break;
default:
{
if (!hasFreeLinks ||
!aMesh->FindFace(nodes[0], nodes[2], nodes[4],
nodes[1], nodes[3], nodes[5]) ) {
- aMesh->AddFace(nodes[0], nodes[2], nodes[4],
- nodes[1], nodes[3], nodes[5]); break;
+ myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4],
+ nodes[1], nodes[3], nodes[5])); break;
}
}
else { // nbn==8
if (!hasFreeLinks ||
!aMesh->FindFace(nodes[0], nodes[2], nodes[4], nodes[6],
nodes[1], nodes[3], nodes[5], nodes[7]) )
- aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
- nodes[1], nodes[3], nodes[5], nodes[7]);
+ myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
+ nodes[1], nodes[3], nodes[5], nodes[7]));
}
}
else {
polygon_nodes[inode] = nodes[inode];
}
if (!hasFreeLinks || !aMesh->FindFace(polygon_nodes))
- aMesh->AddPolygonalFace(polygon_nodes);
+ myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
}
}
break;
//purpose :
//=======================================================================
-void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
+void SMESH_MeshEditor::RotationSweep(map<int,const SMDS_MeshElement*> & theElems,
const gp_Ax1& theAxis,
const double theAngle,
const int theNbSteps,
const double theTol)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE( "RotationSweep()");
gp_Trsf aTrsf;
aTrsf.SetRotation( theAxis, theAngle );
TElemOfElemListMap newElemsMap;
// loop on theElems
- set< const SMDS_MeshElement* >::iterator itElem;
+ map<int, const SMDS_MeshElement* >::iterator itElem;
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem )
continue;
vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
aTrsf2.Transforms( coord[0], coord[1], coord[2] );
//aTrsf.Transforms( coord[0], coord[1], coord[2] );
newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
aTrsf2.Transforms( coord[0], coord[1], coord[2] );
//aTrsf.Transforms( coord[0], coord[1], coord[2] );
aTrsf.Transforms( coord[0], coord[1], coord[2] );
}
newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
}
listNewNodes.push_back( newNode );
}
for(int i = 0; i<theNbSteps; i++) {
aTrsf2.Transforms( coord[0], coord[1], coord[2] );
newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
aTrsf2.Transforms( coord[0], coord[1], coord[2] );
newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
}
}
newNodesItVec.push_back( nIt );
}
// make new elements
- sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], theNbSteps );
+ sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], theNbSteps, myLastCreatedElems );
}
- makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, theNbSteps );
+ makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, theNbSteps, myLastCreatedElems );
}
const double tolnode,
SMESH_SequenceOfNode& aNodes)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
gp_Pnt P1(x,y,z);
SMESHDS_Mesh * aMesh = myMesh->GetMeshDS();
// create new node and return it
const SMDS_MeshNode* NewNode = aMesh->AddNode(x,y,z);
+ myLastCreatedNodes.Append(NewNode);
return NewNode;
}
//=======================================================================
void SMESH_MeshEditor::ExtrusionSweep
- (set<const SMDS_MeshElement*> & theElems,
+ (map<int,const SMDS_MeshElement*> & theElems,
const gp_Vec& theStep,
const int theNbSteps,
TElemOfElemListMap& newElemsMap,
//=======================================================================
void SMESH_MeshEditor::ExtrusionSweep
- (set<const SMDS_MeshElement*> & theElems,
+ (map<int,const SMDS_MeshElement*> & theElems,
ExtrusParam& theParams,
TElemOfElemListMap& newElemsMap,
const int theFlags,
const double theTolerance)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
int nbsteps = theParams.mySteps->Length();
//TElemOfVecOfMapNodesMap mapElemNewNodes;
// loop on theElems
- set< const SMDS_MeshElement* >::iterator itElem;
+ map<int, const SMDS_MeshElement* >::iterator itElem;
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
// check element type
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem )
continue;
}
else {
const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
}
}
}
else {
const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
//vecNewNodes[i]=newNode;
}
}
else {
const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
}
coord[0] = coord[0] + theParams.myDir.X()*theParams.mySteps->Value(i+1);
}
else {
const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
}
}
newNodesItVec.push_back( nIt );
}
// make new elements
- sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], nbsteps );
+ sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], nbsteps, myLastCreatedElems );
}
+
if( theFlags & EXTRUSION_FLAG_BOUNDARY ) {
- makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps );
+ makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps, myLastCreatedElems );
}
}
//purpose :
//=======================================================================
SMESH_MeshEditor::Extrusion_Error
- SMESH_MeshEditor::ExtrusionAlongTrack (std::set<const SMDS_MeshElement*> & theElements,
+ SMESH_MeshEditor::ExtrusionAlongTrack (std::map<int,const SMDS_MeshElement*> & theElements,
SMESH_subMesh* theTrack,
const SMDS_MeshNode* theN1,
const bool theHasAngles,
const bool theHasRefPoint,
const gp_Pnt& theRefPoint)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE("SMESH_MeshEditor::ExtrusionAlongTrack")
int j, aNbTP, aNbE, aNb;
double aT1, aT2, aT, aAngle, aX, aY, aZ;
std::list<double> aPrms;
std::list<double>::iterator aItD;
- std::set< const SMDS_MeshElement* >::iterator itElem;
+ std::map<int, const SMDS_MeshElement* >::iterator itElem;
Standard_Real aTx1, aTx2, aL2, aTolVec, aTolVec2;
gp_Pnt aP3D, aV0;
itElem = theElements.begin();
for ( ; itElem != theElements.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
SMDS_ElemIteratorPtr itN = elem->nodesIterator();
while ( itN->more() ) {
for ( itElem = theElements.begin(); itElem != theElements.end(); itElem++ ) {
// check element type
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
aTypeE = elem->GetType();
if ( !elem || ( aTypeE != SMDSAbs_Face && aTypeE != SMDSAbs_Edge ) )
continue;
double y = ( aPN1.Y() + aPN0.Y() )/2.;
double z = ( aPN1.Z() + aPN0.Z() )/2.;
const SMDS_MeshNode* newNode = aMesh->AddNode(x,y,z);
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
}
aX = aPN1.X();
aY = aPN1.Y();
aZ = aPN1.Z();
const SMDS_MeshNode* newNode = aMesh->AddNode( aX, aY, aZ );
+ myLastCreatedNodes.Append(newNode);
listNewNodes.push_back( newNode );
aPN0 = aPN1;
double y = ( N->Y() + P.Y() )/2.;
double z = ( N->Z() + P.Z() )/2.;
const SMDS_MeshNode* newN = aMesh->AddNode(x,y,z);
+ myLastCreatedNodes.Append(newN);
aNodes[2*i] = newN;
aNodes[2*i+1] = N;
P = gp_XYZ(N->X(),N->Y(),N->Z());
newNodesItVec.push_back( nIt );
}
// make new elements
+ //sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
+ // newNodesItVec[0]->second.size(), myLastCreatedElems );
sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
- newNodesItVec[0]->second.size() );
+ aNbTP-1, myLastCreatedElems );
}
makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElements,
- aNbTP-1 );
+ aNbTP-1, myLastCreatedElems );
return EXTR_OK;
}
//purpose :
//=======================================================================
-void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
+void SMESH_MeshEditor::Transform (map<int,const SMDS_MeshElement*> & theElems,
const gp_Trsf& theTrsf,
const bool theCopy)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
bool needReverse;
switch ( theTrsf.Form() ) {
case gp_PntMirror:
// elements sharing moved nodes; those of them which have all
// nodes mirrored but are not in theElems are to be reversed
- set<const SMDS_MeshElement*> inverseElemSet;
+ map<int,const SMDS_MeshElement*> inverseElemSet;
// loop on theElems
- set< const SMDS_MeshElement* >::iterator itElem;
+ map<int, const SMDS_MeshElement* >::iterator itElem;
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem )
continue;
coord[2] = node->Z();
theTrsf.Transforms( coord[0], coord[1], coord[2] );
const SMDS_MeshNode * newNode = node;
- if ( theCopy )
+ if ( theCopy ) {
newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+ myLastCreatedNodes.Append(newNode);
+ }
else {
aMesh->MoveNode( node, coord[0], coord[1], coord[2] );
// node position on shape becomes invalid
// keep inverse elements
if ( !theCopy && needReverse ) {
SMDS_ElemIteratorPtr invElemIt = node->GetInverseElementIterator();
- while ( invElemIt->more() )
- inverseElemSet.insert( invElemIt->next() );
+ while ( invElemIt->more() ) {
+ const SMDS_MeshElement* iel = invElemIt->next();
+ inverseElemSet.insert( make_pair(iel->GetID(),iel) );
+ }
}
}
}
return;
if ( !inverseElemSet.empty()) {
- set<const SMDS_MeshElement*>::iterator invElemIt = inverseElemSet.begin();
+ map<int,const SMDS_MeshElement*>::iterator invElemIt = inverseElemSet.begin();
for ( ; invElemIt != inverseElemSet.end(); invElemIt++ )
theElems.insert( *invElemIt );
}
};
for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
- const SMDS_MeshElement* elem = (*itElem);
+ const SMDS_MeshElement* elem = (*itElem).second;
if ( !elem || elem->GetType() == SMDSAbs_Node )
continue;
continue; // not all nodes transformed
if ( theCopy ) {
- aMesh->AddPolygonalFace(poly_nodes);
- } else {
+ myLastCreatedElems.Append(aMesh->AddPolygonalFace(poly_nodes));
+ }
+ else {
aMesh->ChangePolygonNodes(elem, poly_nodes);
}
}
continue; // not all nodes transformed
if ( theCopy ) {
- aMesh->AddPolyhedralVolume(poly_nodes, quantities);
- } else {
+ myLastCreatedElems.Append(aMesh->AddPolyhedralVolume(poly_nodes, quantities));
+ }
+ else {
aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
}
}
switch ( elemType ) {
case SMDSAbs_Edge:
if ( nbNodes == 2 )
- aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] );
+ myLastCreatedElems.Append(aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] ));
else
- aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
+ myLastCreatedElems.Append(aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
break;
case SMDSAbs_Face:
if ( nbNodes == 3 )
- aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
+ myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
else if(nbNodes==4)
- aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]);
+ myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]));
else if(nbNodes==6)
- aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
- nodes[4], nodes[5]);
+ myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+ nodes[4], nodes[5]));
else // nbNodes==8
- aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
- nodes[4], nodes[5], nodes[6], nodes[7]);
+ myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+ nodes[4], nodes[5], nodes[6], nodes[7]));
break;
case SMDSAbs_Volume:
if ( nbNodes == 4 )
- aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ] );
+ myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ] ));
else if ( nbNodes == 8 )
- aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
- nodes[ 4 ], nodes[ 5 ], nodes[ 6 ] , nodes[ 7 ]);
+ myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
+ nodes[ 4 ], nodes[ 5 ], nodes[ 6 ] , nodes[ 7 ]));
else if ( nbNodes == 6 )
- aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
- nodes[ 4 ], nodes[ 5 ]);
+ myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
+ nodes[ 4 ], nodes[ 5 ]));
else if ( nbNodes == 5 )
- aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
- nodes[ 4 ]);
+ myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
+ nodes[ 4 ]));
else if(nbNodes==10)
- aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
- nodes[5], nodes[6], nodes[7], nodes[8], nodes[9]);
+ myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+ nodes[5], nodes[6], nodes[7], nodes[8], nodes[9]));
else if(nbNodes==13)
- aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
- nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
- nodes[10], nodes[11], nodes[12]);
+ myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+ nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
+ nodes[10], nodes[11], nodes[12]));
else if(nbNodes==15)
- aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
- nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
- nodes[10], nodes[11], nodes[12], nodes[13], nodes[14]);
+ myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+ nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
+ nodes[10], nodes[11], nodes[12], nodes[13], nodes[14]));
else // nbNodes==20
- aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
- nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
- nodes[10], nodes[11], nodes[12], nodes[13], nodes[14],
- nodes[15], nodes[16], nodes[17], nodes[18], nodes[19]);
+ myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+ nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
+ nodes[10], nodes[11], nodes[12], nodes[13], nodes[14],
+ nodes[15], nodes[16], nodes[17], nodes[18], nodes[19]));
break;
default:;
}
const double theTolerance,
TListOfListOfNodes & theGroupsOfNodes)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
double tol2 = theTolerance * theTolerance;
list<const SMDS_MeshNode*> nodes;
groupPtr = & theGroupsOfNodes.back();
groupPtr->push_back( n1 );
}
- groupPtr->push_back( n2 );
+ if(groupPtr->front()>n2)
+ groupPtr->push_front( n2 );
+ else
+ groupPtr->push_back( n2 );
it2 = nodes.erase( it2 );
it2--;
}
void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
TNodeNodeMap nodeNodeMap; // node to replace - new node
poly_nodes[ii] = polygons_nodes[inode];
}
SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
+ myLastCreatedElems.Append(newElem);
if (aShapeId)
aMesh->SetMeshElementOnShape(newElem, aShapeId);
}
curNodes[ 4 ],
curNodes[ 5 ],
curNodes[ iRepl[ 0 ] == 2 ? 1 : 2 ]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
// 2. : reverse a bottom
curNodes[ind[ 3 ]],
curNodes[ind[ 2 ]],
curNodes[indTop[ 0 ]]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
isOk = true;
curNodes[ i2 ],
curNodes[ i3d ],
curNodes[ i2t ]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
isOk = true;
}
+
+// =================================================
+// class : SortableElement
+// purpose : auxilary
+// =================================================
+class SortableElement : public set <const SMDS_MeshElement*>
+{
+ public:
+
+ SortableElement( const SMDS_MeshElement* theElem )
+ {
+ myID = theElem->GetID();
+ SMDS_ElemIteratorPtr nodeIt = theElem->nodesIterator();
+ while ( nodeIt->more() )
+ this->insert( nodeIt->next() );
+ }
+
+ const long GetID() const
+ { return myID; }
+
+ void SetID(const long anID) const
+ { myID = anID; }
+
+
+ private:
+ mutable long myID;
+};
+
+
//=======================================================================
//function : MergeEqualElements
//purpose : Remove all but one of elements built on the same nodes.
void SMESH_MeshEditor::MergeEqualElements()
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
SMDS_EdgeIteratorPtr eIt = aMesh->edgesIterator();
for ( int iDim = 1; iDim <= 3; iDim++ ) {
- set< set <const SMDS_MeshElement*> > setOfNodeSet;
-
+ set< SortableElement > setOfNodeSet;
while ( 1 ) {
// get next element
const SMDS_MeshElement* elem = 0;
}
if ( !elem ) break;
- // get elem nodes
- set <const SMDS_MeshElement*> nodeSet;
- SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
- while ( nodeIt->more() )
- nodeSet.insert( nodeIt->next() );
+ SortableElement SE(elem);
// check uniqueness
- bool isUnique = setOfNodeSet.insert( nodeSet ).second;
- if ( !isUnique )
- rmElemIds.push_back( elem->GetID() );
+ pair< set<SortableElement>::iterator, bool> pp = setOfNodeSet.insert(SE);
+ if( !(pp.second) ) {
+ set<SortableElement>::iterator itSE = pp.first;
+ SortableElement SEold = *itSE;
+ if( SEold.GetID() > SE.GetID() ) {
+ rmElemIds.push_back( SEold.GetID() );
+ (*itSE).SetID(SE.GetID());
+ }
+ else {
+ rmElemIds.push_back( SE.GetID() );
+ }
+ }
}
}
const SMDS_MeshElement*
SMESH_MeshEditor::FindFaceInSet(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
- const set<const SMDS_MeshElement*>& elemSet,
- const set<const SMDS_MeshElement*>& avoidSet)
+ const map<int,const SMDS_MeshElement*>& elemSet,
+ const map<int,const SMDS_MeshElement*>& avoidSet)
{
SMDS_ElemIteratorPtr invElemIt = n1->GetInverseElementIterator();
while ( invElemIt->more() ) { // loop on inverse elements of n1
const SMDS_MeshElement* elem = invElemIt->next();
if (elem->GetType() != SMDSAbs_Face ||
- avoidSet.find( elem ) != avoidSet.end() )
+ avoidSet.find( elem->GetID() ) != avoidSet.end() )
continue;
- if ( !elemSet.empty() && elemSet.find( elem ) == elemSet.end())
+ if ( !elemSet.empty() && elemSet.find( elem->GetID() ) == elemSet.end())
continue;
// get face nodes and find index of n1
int i1, nbN = elem->NbNodes(), iNode = 0;
const SMDS_QuadraticFaceOfNodes* F =
static_cast<const SMDS_QuadraticFaceOfNodes*>(elem);
// use special nodes iterator
+ iNode = 0;
SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
while ( anIter->more() ) {
faceNodes[iNode] = static_cast<const SMDS_MeshNode*>(anIter->next());
const SMDS_MeshNode* n2,
const SMDS_MeshElement* elem)
{
- set<const SMDS_MeshElement*> elemSet, avoidSet;
+ map<int,const SMDS_MeshElement*> elemSet, avoidSet;
if ( elem )
- avoidSet.insert ( elem );
+ avoidSet.insert ( make_pair(elem->GetID(),elem) );
return SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
}
const bool toCreatePolygons,
const bool toCreatePolyedrs)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE("::SewFreeBorder()");
Sew_Error aResult = SEW_OK;
int aShapeId = FindShape( theFace );
SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
newElem = aMesh->AddFace (linkNodes[ i1++ ],
linkNodes[ i2++ ],
nodes[ iSplit < iBestQuad ? i4 : i3 ]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
}
if(nbFaceNodes==6) { // quadratic triangle
SMDS_MeshElement* newElem =
aMesh->AddFace(nodes[3],nodes[4],nodes[5]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
if(theFace->IsMediumNode(nodes[il1])) {
// create quadrangle
newElem = aMesh->AddFace(nodes[0],nodes[1],nodes[3],nodes[5]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
n1 = 1;
else {
// create quadrangle
newElem = aMesh->AddFace(nodes[1],nodes[2],nodes[3],nodes[5]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
n1 = 0;
else { // nbFaceNodes==8 - quadratic quadrangle
SMDS_MeshElement* newElem =
aMesh->AddFace(nodes[3],nodes[4],nodes[5]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
newElem = aMesh->AddFace(nodes[5],nodes[6],nodes[7]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
newElem = aMesh->AddFace(nodes[5],nodes[7],nodes[3]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
if(theFace->IsMediumNode(nodes[il1])) {
// create quadrangle
newElem = aMesh->AddFace(nodes[0],nodes[1],nodes[3],nodes[7]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
n1 = 1;
else {
// create quadrangle
newElem = aMesh->AddFace(nodes[1],nodes[2],nodes[3],nodes[7]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
n1 = 0;
for(i=1; i<nbn; i++) {
SMDS_MeshElement* newElem =
aMesh->AddFace(aNodes[i-1],aNodes[i],nodes[n3]);
+ myLastCreatedElems.Append(newElem);
if ( aShapeId && newElem )
aMesh->SetMeshElementOnShape( newElem, aShapeId );
}
const SMDS_MeshNode* theBetweenNode2,
list<const SMDS_MeshNode*>& theNodesToInsert)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
SMDS_ElemIteratorPtr invElemIt = theBetweenNode1->GetInverseElementIterator();
while (invElemIt->more()) { // loop on inverse elements of theBetweenNode1
const SMDS_MeshElement* elem = invElemIt->next();
SMDS_MeshElement* newElem =
aMesh->AddPolyhedralVolume(poly_nodes, quantities);
+ myLastCreatedElems.Append(newElem);
if (aShapeId && newElem)
aMesh->SetMeshElementOnShape(newElem, aShapeId);
}
}
+//=======================================================================
+//function : ConvertElemToQuadratic
+//purpose :
+//=======================================================================
+void SMESH_MeshEditor::ConvertElemToQuadratic(SMESHDS_SubMesh *theSm,
+ SMESH_MesherHelper* theHelper,
+ const bool theForce3d)
+{
+ if( !theSm ) return;
+ SMESHDS_Mesh* meshDS = GetMeshDS();
+ SMDS_ElemIteratorPtr ElemItr = theSm->GetElements();
+ while(ElemItr->more())
+ {
+ const SMDS_MeshElement* elem = ElemItr->next();
+ if( !elem ) continue;
+
+ int id = elem->GetID();
+ int nbNodes = elem->NbNodes();
+ vector<const SMDS_MeshNode *> aNds (nbNodes);
+
+ for(int i = 0; i < nbNodes; i++)
+ {
+ aNds[i] = elem->GetNode(i);
+ }
+
+ SMDSAbs_ElementType aType = elem->GetType();
+ const SMDS_MeshElement* NewElem = 0;
+
+ switch( aType )
+ {
+ case SMDSAbs_Edge :
+ {
+ meshDS->RemoveFreeElement(elem, theSm);
+ NewElem = theHelper->AddQuadraticEdge(aNds[0], aNds[1], id, theForce3d);
+ break;
+ }
+ case SMDSAbs_Face :
+ {
+ if(elem->IsQuadratic()) continue;
+
+ meshDS->RemoveFreeElement(elem, theSm);
+ switch(nbNodes)
+ {
+ case 3:
+ NewElem = theHelper->AddFace(aNds[0], aNds[1], aNds[2], id, theForce3d);
+ break;
+ case 4:
+ NewElem = theHelper->AddFace(aNds[0], aNds[1], aNds[2], aNds[3], id, theForce3d);
+ break;
+ default:
+ continue;
+ }
+ break;
+ }
+ case SMDSAbs_Volume :
+ {
+ if( elem->IsQuadratic() ) continue;
+
+ meshDS->RemoveFreeElement(elem, theSm);
+ switch(nbNodes)
+ {
+ case 4:
+ NewElem = theHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3], id, true);
+ break;
+ case 6:
+ NewElem = theHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3], aNds[4], aNds[5], id, true);
+ break;
+ case 8:
+ NewElem = theHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3],
+ aNds[4], aNds[5], aNds[6], aNds[7], id, true);
+ break;
+ default:
+ continue;
+ }
+ break;
+ }
+ default :
+ continue;
+ }
+ if( NewElem )
+ {
+ AddToSameGroups( NewElem, elem, meshDS);
+ theSm->AddElement( NewElem );
+ }
+ }
+}
+
+//=======================================================================
+//function : ConvertToQuadratic
+//purpose :
+//=======================================================================
+void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d)
+{
+ SMESHDS_Mesh* meshDS = GetMeshDS();
+
+ SMESH_MesherHelper* aHelper = new SMESH_MesherHelper(*myMesh);
+ aHelper->SetKeyIsQuadratic( true );
+ const TopoDS_Shape& aShape = meshDS->ShapeToMesh();
+
+ if ( !aShape.IsNull() && GetMesh()->GetSubMeshContaining(aShape) )
+ {
+ SMESH_subMesh *aSubMesh = GetMesh()->GetSubMeshContaining(aShape);
+
+ const map < int, SMESH_subMesh * >& aMapSM = aSubMesh->DependsOn();
+ map < int, SMESH_subMesh * >::const_iterator itsub;
+ for (itsub = aMapSM.begin(); itsub != aMapSM.end(); itsub++)
+ {
+ SMESHDS_SubMesh *sm = ((*itsub).second)->GetSubMeshDS();
+ aHelper->SetSubShape( (*itsub).second->GetSubShape() );
+ ConvertElemToQuadratic(sm, aHelper, theForce3d);
+ }
+ aHelper->SetSubShape( aSubMesh->GetSubShape() );
+ ConvertElemToQuadratic(aSubMesh->GetSubMeshDS(), aHelper, theForce3d);
+ }
+ else
+ {
+ SMDS_EdgeIteratorPtr aEdgeItr = meshDS->edgesIterator();
+ while(aEdgeItr->more())
+ {
+ const SMDS_MeshEdge* edge = aEdgeItr->next();
+ if(edge)
+ {
+ int id = edge->GetID();
+ const SMDS_MeshNode* n1 = edge->GetNode(0);
+ const SMDS_MeshNode* n2 = edge->GetNode(1);
+
+ RemoveElemFromGroups (edge, meshDS);
+ meshDS->SMDS_Mesh::RemoveFreeElement(edge);
+
+ const SMDS_QuadraticEdge* NewEdge = aHelper->AddQuadraticEdge(n1, n2, id, theForce3d);
+ AddToSameGroups(NewEdge, edge, meshDS);
+ }
+ }
+ SMDS_FaceIteratorPtr aFaceItr = meshDS->facesIterator();
+ while(aFaceItr->more())
+ {
+ const SMDS_MeshFace* face = aFaceItr->next();
+ if(!face || face->IsQuadratic() ) continue;
+
+ int id = face->GetID();
+ int nbNodes = face->NbNodes();
+ vector<const SMDS_MeshNode *> aNds (nbNodes);
+
+ for(int i = 0; i < nbNodes; i++)
+ {
+ aNds[i] = face->GetNode(i);
+ }
+
+ RemoveElemFromGroups (face, meshDS);
+ meshDS->SMDS_Mesh::RemoveFreeElement(face);
+
+ SMDS_MeshFace * NewFace = 0;
+ switch(nbNodes)
+ {
+ case 3:
+ NewFace = aHelper->AddFace(aNds[0], aNds[1], aNds[2], id, theForce3d);
+ break;
+ case 4:
+ NewFace = aHelper->AddFace(aNds[0], aNds[1], aNds[2], aNds[3], id, theForce3d);
+ break;
+ default:
+ continue;
+ }
+ AddToSameGroups(NewFace, face, meshDS);
+ }
+ SMDS_VolumeIteratorPtr aVolumeItr = meshDS->volumesIterator();
+ while(aVolumeItr->more())
+ {
+ const SMDS_MeshVolume* volume = aVolumeItr->next();
+ if(!volume || volume->IsQuadratic() ) continue;
+
+ int id = volume->GetID();
+ int nbNodes = volume->NbNodes();
+ vector<const SMDS_MeshNode *> aNds (nbNodes);
+
+ for(int i = 0; i < nbNodes; i++)
+ {
+ aNds[i] = volume->GetNode(i);
+ }
+
+ RemoveElemFromGroups (volume, meshDS);
+ meshDS->SMDS_Mesh::RemoveFreeElement(volume);
+
+ SMDS_MeshVolume * NewVolume = 0;
+ switch(nbNodes)
+ {
+ case 4:
+ NewVolume = aHelper->AddVolume(aNds[0], aNds[1], aNds[2],
+ aNds[3], id, true );
+ break;
+ case 6:
+ NewVolume = aHelper->AddVolume(aNds[0], aNds[1], aNds[2],
+ aNds[3], aNds[4], aNds[5], id, true);
+ break;
+ case 8:
+ NewVolume = aHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3],
+ aNds[4], aNds[5], aNds[6], aNds[7], id, true);
+ break;
+ default:
+ continue;
+ }
+ AddToSameGroups(NewVolume, volume, meshDS);
+ }
+ }
+ delete aHelper;
+}
+
+//=======================================================================
+//function : RemoveQuadElem
+//purpose :
+//=======================================================================
+void SMESH_MeshEditor::RemoveQuadElem(SMESHDS_SubMesh *theSm,
+ SMDS_ElemIteratorPtr theItr,
+ RemoveQuadNodeMap& theRemoveNodeMap)
+{
+ SMESHDS_Mesh* meshDS = GetMeshDS();
+ while( theItr->more() )
+ {
+ const SMDS_MeshElement* elem = theItr->next();
+ if( elem )
+ {
+ if( !elem->IsQuadratic() )
+ continue;
+
+ int id = elem->GetID();
+
+ int nbNodes = elem->NbNodes(), idx = 0;
+ vector<const SMDS_MeshNode *> aNds;
+
+ for(int i = 0; i < nbNodes; i++)
+ {
+ const SMDS_MeshNode* n = elem->GetNode(i);
+
+ if( elem->IsMediumNode( n ) )
+ {
+ ItRemoveQuadNodeMap itRNM = theRemoveNodeMap.find( n );
+ if( itRNM == theRemoveNodeMap.end() )
+ {
+ theRemoveNodeMap.insert(RemoveQuadNodeMap::value_type( n,theSm ));
+ }
+ }
+ else
+ aNds.push_back( n );
+ }
+
+ idx = aNds.size();
+ if( !idx ) continue;
+ SMDSAbs_ElementType aType = elem->GetType();
+
+ //remove old quadratic elements
+ meshDS->RemoveFreeElement( elem, theSm );
+
+ SMDS_MeshElement * NewElem = 0;
+ switch(aType)
+ {
+ case SMDSAbs_Edge:
+ NewElem = meshDS->AddEdgeWithID( aNds[0], aNds[1] ,id );
+ break;
+ case SMDSAbs_Face:
+ if( idx==3 ) NewElem = meshDS->AddFaceWithID( aNds[0],
+ aNds[1], aNds[2], id );
+ if( idx==4 ) NewElem = meshDS->AddFaceWithID( aNds[0],
+ aNds[1], aNds[2], aNds[3],id );
+ break;
+ case SMDSAbs_Volume:
+ if( idx==4 ) NewElem = meshDS->AddVolumeWithID( aNds[0],
+ aNds[1], aNds[2], aNds[3], id );
+ if( idx==6 ) NewElem = meshDS->AddVolumeWithID( aNds[0],
+ aNds[1], aNds[2], aNds[3],
+ aNds[4], aNds[5], id );
+ if( idx==8 ) NewElem = meshDS->AddVolumeWithID(aNds[0],
+ aNds[1], aNds[2], aNds[3],
+ aNds[4], aNds[5], aNds[6],
+ aNds[7] ,id );
+ break;
+ default:
+ break;
+ }
+
+ AddToSameGroups(NewElem, elem, meshDS);
+ if( theSm )
+ theSm->AddElement( NewElem );
+ }
+ }
+}
+//=======================================================================
+//function : ConvertFromQuadratic
+//purpose :
+//=======================================================================
+bool SMESH_MeshEditor::ConvertFromQuadratic()
+{
+ SMESHDS_Mesh* meshDS = GetMeshDS();
+ RemoveQuadNodeMap aRemoveNodeMap;
+
+ const TopoDS_Shape& aShape = meshDS->ShapeToMesh();
+
+ if ( !aShape.IsNull() && GetMesh()->GetSubMeshContaining(aShape) )
+ {
+ SMESH_subMesh *aSubMesh = GetMesh()->GetSubMeshContaining(aShape);
+
+ const map < int, SMESH_subMesh * >& aMapSM = aSubMesh->DependsOn();
+ map < int, SMESH_subMesh * >::const_iterator itsub;
+ for (itsub = aMapSM.begin(); itsub != aMapSM.end(); itsub++)
+ {
+ SMESHDS_SubMesh *sm = ((*itsub).second)->GetSubMeshDS();
+ if( sm )
+ RemoveQuadElem( sm, sm->GetElements(), aRemoveNodeMap );
+ }
+ SMESHDS_SubMesh *Sm = aSubMesh->GetSubMeshDS();
+ if( Sm )
+ RemoveQuadElem( Sm, Sm->GetElements(), aRemoveNodeMap );
+ }
+ else
+ {
+ SMESHDS_SubMesh *aSM = 0;
+ RemoveQuadElem( aSM, meshDS->elementsIterator(), aRemoveNodeMap );
+ }
+
+ //remove all quadratic nodes
+ ItRemoveQuadNodeMap itRNM = aRemoveNodeMap.begin();
+ for ( ; itRNM != aRemoveNodeMap.end(); itRNM++ )
+ {
+ meshDS->RemoveFreeNode( (*itRNM).first, (*itRNM).second );
+ }
+
+ return true;
+}
+
//=======================================================================
//function : SewSideElements
//purpose :
//=======================================================================
SMESH_MeshEditor::Sew_Error
- SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
- set<const SMDS_MeshElement*>& theSide2,
+ SMESH_MeshEditor::SewSideElements (map<int,const SMDS_MeshElement*>& theSide1,
+ map<int,const SMDS_MeshElement*>& theSide2,
const SMDS_MeshNode* theFirstNode1,
const SMDS_MeshNode* theFirstNode2,
const SMDS_MeshNode* theSecondNode1,
const SMDS_MeshNode* theSecondNode2)
{
+ myLastCreatedElems.Clear();
+ myLastCreatedNodes.Clear();
+
MESSAGE ("::::SewSideElements()");
if ( theSide1.size() != theSide2.size() )
return SEW_DIFF_NB_OF_ELEMENTS;
set<const SMDS_MeshElement*> * faceSetPtr[] = { &faceSet1, &faceSet2 };
set<const SMDS_MeshElement*> * volSetPtr[] = { &volSet1, &volSet2 };
set<const SMDS_MeshNode*> * nodeSetPtr[] = { &nodeSet1, &nodeSet2 };
- set<const SMDS_MeshElement*> * elemSetPtr[] = { &theSide1, &theSide2 };
+ map<int,const SMDS_MeshElement*> * elemSetPtr[] = { &theSide1, &theSide2 };
int iSide, iFace, iNode;
for ( iSide = 0; iSide < 2; iSide++ ) {
set<const SMDS_MeshNode*> * nodeSet = nodeSetPtr[ iSide ];
- set<const SMDS_MeshElement*> * elemSet = elemSetPtr[ iSide ];
+ map<int,const SMDS_MeshElement*> * elemSet = elemSetPtr[ iSide ];
set<const SMDS_MeshElement*> * faceSet = faceSetPtr[ iSide ];
set<const SMDS_MeshElement*> * volSet = volSetPtr [ iSide ];
- set<const SMDS_MeshElement*>::iterator vIt, eIt;
+ set<const SMDS_MeshElement*>::iterator vIt;
+ map<int,const SMDS_MeshElement*>::iterator eIt;
set<const SMDS_MeshNode*>::iterator nIt;
- // -----------------------------------------------------------
- // 1a. Collect nodes of existing faces
- // and build set of face nodes in order to detect missing
- // faces corresponing to sides of volumes
- // -----------------------------------------------------------
+ // check that given nodes belong to given elements
+ const SMDS_MeshNode* n1 = ( iSide == 0 ) ? theFirstNode1 : theFirstNode2;
+ const SMDS_MeshNode* n2 = ( iSide == 0 ) ? theSecondNode1 : theSecondNode2;
+ int firstIndex = -1, secondIndex = -1;
+ for (eIt = elemSet->begin(); eIt != elemSet->end(); eIt++ ) {
+ const SMDS_MeshElement* elem = (*eIt).second;
+ if ( firstIndex < 0 ) firstIndex = elem->GetNodeIndex( n1 );
+ if ( secondIndex < 0 ) secondIndex = elem->GetNodeIndex( n2 );
+ if ( firstIndex > -1 && secondIndex > -1 ) break;
+ }
+ if ( firstIndex < 0 || secondIndex < 0 ) {
+ // we can simply return until temporary faces created
+ return (iSide == 0 ) ? SEW_BAD_SIDE1_NODES : SEW_BAD_SIDE2_NODES;
+ }
+
+ // -----------------------------------------------------------
+ // 1a. Collect nodes of existing faces
+ // and build set of face nodes in order to detect missing
+ // faces corresponing to sides of volumes
+ // -----------------------------------------------------------
set< set <const SMDS_MeshNode*> > setOfFaceNodeSet;
// loop on the given element of a side
for (eIt = elemSet->begin(); eIt != elemSet->end(); eIt++ ) {
- const SMDS_MeshElement* elem = *eIt;
+ //const SMDS_MeshElement* elem = *eIt;
+ const SMDS_MeshElement* elem = (*eIt).second;
if ( elem->GetType() == SMDSAbs_Face ) {
faceSet->insert( elem );
set <const SMDS_MeshNode*> faceNodeSet;
- if(elem->IsQuadratic()) {
- const SMDS_QuadraticFaceOfNodes* F =
- static_cast<const SMDS_QuadraticFaceOfNodes*>(elem);
- // use special nodes iterator
- SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
- while( anIter->more() ) {
- const SMDS_MeshNode* n = anIter->next();
- nodeSet->insert( n );
- faceNodeSet.insert( n );
- }
- }
- else {
- SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
- while ( nodeIt->more() ) {
- const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
- nodeSet->insert( n );
- faceNodeSet.insert( n );
- }
+ SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
+ while ( nodeIt->more() ) {
+ const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+ nodeSet->insert( n );
+ faceNodeSet.insert( n );
}
setOfFaceNodeSet.insert( faceNodeSet );
}
aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] );
}
else {
- vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
- for (int inode = 0; inode < nbNodes; inode++) {
- poly_nodes[inode] = fNodes[inode];
- }
+ vector<const SMDS_MeshNode *> poly_nodes ( fNodes, & fNodes[nbNodes]);
aFreeFace = aMesh->FindFace(poly_nodes);
}
}
aFreeFace = aTmpFacesMesh.AddFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] );
}
else {
- vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
- for (int inode = 0; inode < nbNodes; inode++) {
- poly_nodes[inode] = fNodes[inode];
- }
+ vector<const SMDS_MeshNode *> poly_nodes ( fNodes, & fNodes[nbNodes]);
aFreeFace = aTmpFacesMesh.AddPolygonalFace(poly_nodes);
}
}
const SMDS_MeshElement* e = invElemIt->next();
if ( faceSet->find( e ) != faceSet->end() )
nbSharedNodes++;
- if ( elemSet->find( e ) != elemSet->end() )
+ if ( elemSet->find( e->GetID() ) != elemSet->end() )
nbSharedNodes++;
}
}
// choose a face most close to the bary center of the opposite side
gp_XYZ aBC( 0., 0., 0. );
set <const SMDS_MeshNode*> addedNodes;
- set<const SMDS_MeshElement*> * elemSet2 = elemSetPtr[ 1 - iSide ];
+ map<int,const SMDS_MeshElement*> * elemSet2 = elemSetPtr[ 1 - iSide ];
eIt = elemSet2->begin();
for ( eIt = elemSet2->begin(); eIt != elemSet2->end(); eIt++ ) {
- SMDS_ElemIteratorPtr nodeIt = (*eIt)->nodesIterator();
+ SMDS_ElemIteratorPtr nodeIt = (*eIt).second->nodesIterator();
while ( nodeIt->more() ) { // loop on free face nodes
const SMDS_MeshNode* n =
static_cast<const SMDS_MeshNode*>( nodeIt->next() );
const SMDS_MeshElement* e = invElemIt->next();
// get a new suite of nodes: make replacement
int nbReplaced = 0, i = 0, nbNodes = e->NbNodes();
- const SMDS_MeshNode* nodes[ 8 ];
+ vector< const SMDS_MeshNode*> nodes( nbNodes );
SMDS_ElemIteratorPtr nIt = e->nodesIterator();
while ( nIt->more() ) {
const SMDS_MeshNode* n =
// elemIDsToRemove.push_back( e->GetID() );
// else
if ( nbReplaced )
- aMesh->ChangeElementNodes( e, nodes, nbNodes );
+ aMesh->ChangeElementNodes( e, & nodes[0], nbNodes );
}
}
#include "SMESH_Mesh.hxx"
#include "SMESH_Controls.hxx"
#include "SMESH_SequenceOfNode.hxx"
+#include "SMESH_SequenceOfElemPtr.hxx"
#include "gp_Dir.hxx"
#include "TColStd_HSequenceOfReal.hxx"
+#include "SMESH_MesherHelper.hxx"
#include <list>
#include <map>
typedef map<const SMDS_MeshElement*,
list<const SMDS_MeshElement*> > TElemOfElemListMap;
+typedef map<const SMDS_MeshNode*, SMESHDS_SubMesh*> RemoveQuadNodeMap;
+typedef map<const SMDS_MeshNode*, SMESHDS_SubMesh*>::iterator ItRemoveQuadNodeMap;
+
class SMDS_MeshElement;
class SMDS_MeshFace;
class SMDS_MeshNode;
* is still performed; theMaxAngle is mesured in radians.
* \retval bool - Success or not.
*/
- bool TriToQuad (std::set<const SMDS_MeshElement*> & theElems,
+ bool TriToQuad (std::map<int,const SMDS_MeshElement*> & theElems,
SMESH::Controls::NumericalFunctorPtr theCriterion,
const double theMaxAngle);
* \param theCriterion - Is used to choose a diagonal for splitting.
* \retval bool - Success or not.
*/
- bool QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
+ bool QuadToTri (std::map<int,const SMDS_MeshElement*> & theElems,
SMESH::Controls::NumericalFunctorPtr theCriterion);
/*!
* \param the13Diag - Is used to choose a diagonal for splitting.
* \retval bool - Success or not.
*/
- bool QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
+ bool QuadToTri (std::map<int,const SMDS_MeshElement*> & theElems,
const bool the13Diag);
/*!
enum SmoothMethod { LAPLACIAN = 0, CENTROIDAL };
- void Smooth (std::set<const SMDS_MeshElement*> & theElements,
+ void Smooth (std::map<int,const SMDS_MeshElement*> & theElements,
std::set<const SMDS_MeshNode*> & theFixedNodes,
const SmoothMethod theSmoothMethod,
const int theNbIterations,
// on geometrical faces
- void RotationSweep (std::set<const SMDS_MeshElement*> & theElements,
+ void RotationSweep (std::map<int,const SMDS_MeshElement*> & theElements,
const gp_Ax1& theAxis,
const double theAngle,
const int theNbSteps,
* EXTRUSION_FLAG_SEW is set
*/
void ExtrusionSweep
- (set<const SMDS_MeshElement*> & theElems,
+ (map<int,const SMDS_MeshElement*> & theElems,
const gp_Vec& theStep,
const int theNbSteps,
TElemOfElemListMap& newElemsMap,
* EXTRUSION_FLAG_SEW is set
* param theParams - special structure for manage of extrusion
*/
- void ExtrusionSweep (set<const SMDS_MeshElement*> & theElems,
+ void ExtrusionSweep (map<int,const SMDS_MeshElement*> & theElems,
ExtrusParam& theParams,
TElemOfElemListMap& newElemsMap,
const int theFlags,
EXTR_CANT_GET_TANGENT
};
- Extrusion_Error ExtrusionAlongTrack (std::set<const SMDS_MeshElement*> & theElements,
+ Extrusion_Error ExtrusionAlongTrack (std::map<int,const SMDS_MeshElement*> & theElements,
SMESH_subMesh* theTrackPattern,
const SMDS_MeshNode* theNodeStart,
const bool theHasAngles,
// Generate new elements by extrusion of theElements along path given by theTrackPattern,
// theHasAngles are the rotation angles, base point can be given by theRefPoint
- void Transform (std::set<const SMDS_MeshElement*> & theElements,
+ void Transform (std::map<int,const SMDS_MeshElement*> & theElements,
const gp_Trsf& theTrsf,
const bool theCopy);
// Move or copy theElements applying theTrsf to their nodes
// nodes are inserted.
// Return false, if sewing failed.
- Sew_Error SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
- std::set<const SMDS_MeshElement*>& theSide2,
+ Sew_Error SewSideElements (std::map<int,const SMDS_MeshElement*>& theSide1,
+ std::map<int,const SMDS_MeshElement*>& theSide2,
const SMDS_MeshNode* theFirstNode1ToMerge,
const SMDS_MeshNode* theFirstNode2ToMerge,
const SMDS_MeshNode* theSecondNode1ToMerge,
// insert theNodesToInsert into all volumes, containing link
// theBetweenNode1 - theBetweenNode2, between theBetweenNode1 and theBetweenNode2.
+ void ConvertToQuadratic(const bool theForce3d);
+ //converts all mesh to quadratic one, deletes old elements, replacing
+ //them with quadratic ones with the same id.
+
+ bool ConvertFromQuadratic();
+ //converts all mesh from quadratic to ordinary ones, deletes old quadratic elements, replacing
+ //them with ordinary mesh elements with the same id.
+
+
// static int SortQuadNodes (const SMDS_Mesh * theMesh,
// int theNodeIds[] );
// // Set 4 nodes of a quadrangle face in a good order.
SMESHDS_Mesh * aMesh);
// Add elemToAdd to the groups the elemInGroups belongs to
+ static void RemoveElemFromGroups (const SMDS_MeshElement* removeelem,
+ SMESHDS_Mesh * aMesh);
+ // remove elemToAdd from the groups
+
static const SMDS_MeshElement*
FindFaceInSet(const SMDS_MeshNode* n1,
const SMDS_MeshNode* n2,
- const std::set<const SMDS_MeshElement*>& elemSet,
- const std::set<const SMDS_MeshElement*>& avoidSet);
+ const std::map<int,const SMDS_MeshElement*>& elemSet,
+ const std::map<int,const SMDS_MeshElement*>& avoidSet);
// Return a face having linked nodes n1 and n2 and which is
// - not in avoidSet,
// - in elemSet provided that !elemSet.empty()
// Return an index of the shape theElem is on
// or zero if a shape not found
-
SMESH_Mesh * GetMesh() { return myMesh; }
SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
- private:
+ SMESH_SequenceOfElemPtr GetLastCreatedNodes() { return myLastCreatedNodes; }
+
+ SMESH_SequenceOfElemPtr GetLastCreatedElems() { return myLastCreatedElems; }
+
+private:
+
+ void ConvertElemToQuadratic(SMESHDS_SubMesh *theSm,
+ SMESH_MesherHelper* theHelper,
+ const bool theForce3d);
+ //Auxiliary function for "ConvertToQuadratic" is intended to convert
+ //elements contained in submesh to quadratic
+
+ void RemoveQuadElem( SMESHDS_SubMesh *theSm,
+ SMDS_ElemIteratorPtr theItr,
+ RemoveQuadNodeMap& theRemoveNodeMap);
+ //Auxiliary function for "ConvertFromQuadratic" is intended to convert quadratic
+ //element to ordinary and for removing quadratic nodes
+
+private:
SMESH_Mesh * myMesh;
+ /*!
+ * Sequence for keeping nodes created during last operation
+ */
+ SMESH_SequenceOfElemPtr myLastCreatedNodes;
+
+ /*!
+ * Sequence for keeping elements created during last operation
+ */
+ SMESH_SequenceOfElemPtr myLastCreatedElems;
+
};
#endif
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+// File: SMESH_MesherHelper.cxx
+// Created: 15.02.06 15:22:41
+// Author: Sergey KUUL
+// Copyright: Open CASCADE 2006
+
+
+#include "SMESH_MesherHelper.hxx"
+
+#include "SMDS_FacePosition.hxx"
+#include "SMDS_EdgePosition.hxx"
+#include "SMESH_MeshEditor.hxx"
+
+#include <BRepAdaptor_Surface.hxx>
+#include <BRepTools.hxx>
+#include <BRep_Tool.hxx>
+#include <Geom2d_Curve.hxx>
+#include <Geom_Curve.hxx>
+#include <Geom_Surface.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopTools_MapOfShape.hxx>
+#include <gp_Pnt2d.hxx>
+#include <ShapeAnalysis.hxx>
+
+//=======================================================================
+//function : CheckShape
+//purpose :
+//=======================================================================
+
+bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
+{
+ SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+ // we can create quadratic elements only if all elements
+ // created on subshapes of given shape are quadratic
+ // also we have to fill myNLinkNodeMap
+ myCreateQuadratic = true;
+ mySeamShapeIds.clear();
+ TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
+ SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
+
+ TopExp_Explorer exp( aSh, subType );
+ for (; exp.More() && myCreateQuadratic; exp.Next()) {
+ if ( SMESHDS_SubMesh * subMesh = meshDS->MeshElements( exp.Current() )) {
+ if ( SMDS_ElemIteratorPtr it = subMesh->GetElements() ) {
+ while(it->more()) {
+ const SMDS_MeshElement* e = it->next();
+ if ( e->GetType() != elemType || !e->IsQuadratic() ) {
+ myCreateQuadratic = false;
+ break;
+ }
+ else {
+ // fill NLinkNodeMap
+ switch ( e->NbNodes() ) {
+ case 3:
+ AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(2)); break;
+ case 6:
+ AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(3));
+ AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(4));
+ AddNLinkNode(e->GetNode(2),e->GetNode(0),e->GetNode(5)); break;
+ case 8:
+ AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(4));
+ AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(5));
+ AddNLinkNode(e->GetNode(2),e->GetNode(3),e->GetNode(6));
+ AddNLinkNode(e->GetNode(3),e->GetNode(0),e->GetNode(7));
+ break;
+ default:
+ myCreateQuadratic = false;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if(!myCreateQuadratic) {
+ myNLinkNodeMap.clear();
+ }
+ else {
+ SetSubShape( aSh );
+ }
+ return myCreateQuadratic;
+}
+
+//================================================================================
+/*!
+ * \brief Set geomerty to make elements on
+ * \param aSh - geomertic shape
+ */
+//================================================================================
+
+void SMESH_MesherHelper::SetSubShape(const int aShID)
+{
+ if ( aShID == myShapeID )
+ return;
+ if ( aShID > 1 )
+ SetSubShape( GetMesh()->GetMeshDS()->IndexToShape( aShID ));
+ else
+ SetSubShape( TopoDS_Shape() );
+}
+
+//================================================================================
+/*!
+ * \brief Set geomerty to make elements on
+ * \param aSh - geomertic shape
+ */
+//================================================================================
+
+void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
+{
+ if ( !myShape.IsNull() && !aSh.IsNull() && myShape.IsSame( aSh ))
+ return;
+
+ myShape = aSh;
+ mySeamShapeIds.clear();
+
+ if ( myShape.IsNull() ) {
+ myShapeID = -1;
+ return;
+ }
+ SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+ myShapeID = meshDS->ShapeToIndex(aSh);
+
+ // treatment of periodic faces
+ if ( aSh.ShapeType() == TopAbs_FACE )
+ {
+ const TopoDS_Face& face = TopoDS::Face( aSh );
+ BRepAdaptor_Surface surface( face );
+ if ( surface.IsUPeriodic() || surface.IsVPeriodic() )
+ {
+ // look for a seam edge
+ for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
+ const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
+ if ( BRep_Tool::IsClosed( edge, face )) {
+ // initialize myPar1, myPar2 and myParIndex
+ if ( mySeamShapeIds.empty() ) {
+ gp_Pnt2d uv1, uv2;
+ BRep_Tool::UVPoints( edge, face, uv1, uv2 );
+ if ( Abs( uv1.Coord(1) - uv2.Coord(1) ) < Abs( uv1.Coord(2) - uv2.Coord(2) ))
+ {
+ myParIndex = 1; // U periodic
+ myPar1 = surface.FirstUParameter();
+ myPar2 = surface.LastUParameter();
+ }
+ else {
+ myParIndex = 2; // V periodic
+ myPar1 = surface.FirstVParameter();
+ myPar2 = surface.LastVParameter();
+ }
+ }
+ // store shapes indices
+ mySeamShapeIds.insert( meshDS->ShapeToIndex( exp.Current() ));
+ for ( TopExp_Explorer v( exp.Current(), TopAbs_VERTEX ); v.More(); v.Next() )
+ mySeamShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
+ }
+ }
+ }
+ }
+}
+
+//================================================================================
+ /*!
+ * \brief Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
+ * \param F - the face
+ * \retval bool - return true if the face is periodic
+ */
+//================================================================================
+
+bool SMESH_MesherHelper::GetNodeUVneedInFaceNode(const TopoDS_Face& F) const
+{
+ if ( F.IsNull() ) return !mySeamShapeIds.empty();
+
+ if ( !F.IsNull() && !myShape.IsNull() && myShape.IsSame( F ))
+ return !mySeamShapeIds.empty();
+
+ Handle(Geom_Surface) aSurface = BRep_Tool::Surface( F );
+ if ( !aSurface.IsNull() )
+ return ( aSurface->IsUPeriodic() || aSurface->IsVPeriodic() );
+
+ return false;
+}
+
+//=======================================================================
+//function : IsMedium
+//purpose :
+//=======================================================================
+
+bool SMESH_MesherHelper::IsMedium(const SMDS_MeshNode* node,
+ const SMDSAbs_ElementType typeToCheck)
+{
+ return SMESH_MeshEditor::IsMedium( node, typeToCheck );
+}
+
+//=======================================================================
+//function : AddNLinkNode
+//purpose :
+//=======================================================================
+/*!
+ * Auxilary function for filling myNLinkNodeMap
+ */
+void SMESH_MesherHelper::AddNLinkNode(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n12)
+{
+ NLink link( n1, n2 );
+ if ( n1 > n2 ) link = NLink( n2, n1 );
+ // add new record to map
+ myNLinkNodeMap.insert( make_pair(link,n12));
+}
+
+//=======================================================================
+/*!
+ * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
+ * \param uv1 - UV on the seam
+ * \param uv2 - UV within a face
+ * \retval gp_Pnt2d - selected UV
+ */
+//=======================================================================
+
+gp_Pnt2d SMESH_MesherHelper::GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const
+{
+ double p1 = uv1.Coord( myParIndex );
+ double p2 = uv2.Coord( myParIndex );
+ double p3 = ( Abs( p1 - myPar1 ) < Abs( p1 - myPar2 )) ? myPar2 : myPar1;
+ if ( Abs( p2 - p1 ) > Abs( p2 - p3 ))
+ p1 = p3;
+ gp_Pnt2d result = uv1;
+ result.SetCoord( myParIndex, p1 );
+ return result;
+}
+
+//=======================================================================
+/*!
+ * \brief Return node UV on face
+ * \param F - the face
+ * \param n - the node
+ * \param n2 - a node of element being created located inside a face
+ * \retval gp_XY - resulting UV
+ *
+ * Auxilary function called form GetMediumNode()
+ */
+//=======================================================================
+
+gp_XY SMESH_MesherHelper::GetNodeUV(const TopoDS_Face& F,
+ const SMDS_MeshNode* n,
+ const SMDS_MeshNode* n2)
+{
+ gp_Pnt2d uv;
+ const SMDS_PositionPtr Pos = n->GetPosition();
+ if(Pos->GetTypeOfPosition()==SMDS_TOP_FACE) {
+ // node has position on face
+ const SMDS_FacePosition* fpos =
+ static_cast<const SMDS_FacePosition*>(n->GetPosition().get());
+ uv = gp_Pnt2d(fpos->GetUParameter(),fpos->GetVParameter());
+ }
+ else if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
+ // node has position on edge => it is needed to find
+ // corresponding edge from face, get pcurve for this
+ // edge and recieve value from this pcurve
+ const SMDS_EdgePosition* epos =
+ static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
+ SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+ int edgeID = Pos->GetShapeId();
+ TopoDS_Edge E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
+ double f, l;
+ TopLoc_Location loc;
+ Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
+ uv = C2d->Value( epos->GetUParameter() );
+ // for a node on a seam edge select one of UVs on 2 pcurves
+ if ( n2 && mySeamShapeIds.find( edgeID ) != mySeamShapeIds.end() )
+ uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
+ }
+ else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ int vertexID = n->GetPosition()->GetShapeId();
+ const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
+ uv = BRep_Tool::Parameters( V, F );
+ if ( n2 && mySeamShapeIds.find( vertexID ) != mySeamShapeIds.end() )
+ uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
+ }
+ return uv.XY();
+}
+
+//=======================================================================
+/*!
+ * \brief Return node U on edge
+ * \param E - the Edge
+ * \param n - the node
+ * \retval double - resulting U
+ *
+ * Auxilary function called form GetMediumNode()
+ */
+//=======================================================================
+
+double SMESH_MesherHelper::GetNodeU(const TopoDS_Edge& E,
+ const SMDS_MeshNode* n)
+{
+ double param = 0;
+ const SMDS_PositionPtr Pos = n->GetPosition();
+ if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
+ const SMDS_EdgePosition* epos =
+ static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
+ param = epos->GetUParameter();
+ }
+ else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ int vertexID = n->GetPosition()->GetShapeId();
+ const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
+ param = BRep_Tool::Parameter( V, E );
+ }
+ return param;
+}
+
+//=======================================================================
+//function : GetMediumNode
+//purpose :
+//=======================================================================
+/*!
+ * Special function for search or creation medium node
+ */
+const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ bool force3d)
+{
+ TopAbs_ShapeEnum shapeType = myShape.IsNull() ? TopAbs_SHAPE : myShape.ShapeType();
+
+ NLink link(( n1 < n2 ? n1 : n2 ), ( n1 < n2 ? n2 : n1 ));
+ ItNLinkNode itLN = myNLinkNodeMap.find( link );
+ if ( itLN != myNLinkNodeMap.end() ) {
+ return (*itLN).second;
+ }
+ else {
+ // create medium node
+ SMDS_MeshNode* n12;
+ SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+ int faceID = -1, edgeID = -1;
+ const SMDS_PositionPtr Pos1 = n1->GetPosition();
+ const SMDS_PositionPtr Pos2 = n2->GetPosition();
+
+ if( myShape.IsNull() )
+ {
+ if( Pos1->GetTypeOfPosition()==SMDS_TOP_FACE ) {
+ faceID = Pos1->GetShapeId();
+ }
+ else if( Pos2->GetTypeOfPosition()==SMDS_TOP_FACE ) {
+ faceID = Pos2->GetShapeId();
+ }
+
+ if( Pos1->GetTypeOfPosition()==SMDS_TOP_EDGE ) {
+ edgeID = Pos1->GetShapeId();
+ }
+ if( Pos2->GetTypeOfPosition()==SMDS_TOP_EDGE ) {
+ edgeID = Pos2->GetShapeId();
+ }
+ }
+
+ if(!force3d) {
+ // we try to create medium node using UV parameters of
+ // nodes, else - medium between corresponding 3d points
+ if(faceID>-1 || shapeType == TopAbs_FACE) {
+ // obtaining a face and 2d points for nodes
+ TopoDS_Face F;
+ if( myShape.IsNull() )
+ F = TopoDS::Face(meshDS->IndexToShape(faceID));
+ else {
+ F = TopoDS::Face(myShape);
+ faceID = myShapeID;
+ }
+
+ gp_XY p1 = GetNodeUV(F,n1,n2);
+ gp_XY p2 = GetNodeUV(F,n2,n1);
+
+ //checking if surface is periodic
+ Handle(Geom_Surface) S = BRep_Tool::Surface(F);
+ Standard_Real UF,UL,VF,VL;
+ S->Bounds(UF,UL,VF,VL);
+
+ Standard_Real u,v;
+ Standard_Boolean isUPeriodic = S->IsUPeriodic();
+ if(isUPeriodic) {
+ Standard_Real UPeriod = S->UPeriod();
+ Standard_Real p2x = p2.X()+ShapeAnalysis::AdjustByPeriod(p2.X(),p1.X(),UPeriod);
+ Standard_Real pmid = (p1.X()+p2x)/2.;
+ u = pmid+ShapeAnalysis::AdjustToPeriod(pmid,UF,UL);
+ }
+ else
+ u= (p1.X()+p2.X())/2.;
+
+ Standard_Boolean isVPeriodic = S->IsVPeriodic();
+ if(isVPeriodic) {
+ Standard_Real VPeriod = S->VPeriod();
+ Standard_Real p2y = p2.Y()+ShapeAnalysis::AdjustByPeriod(p2.Y(),p1.Y(),VPeriod);
+ Standard_Real pmid = (p1.Y()+p2y)/2.;
+ v = pmid+ShapeAnalysis::AdjustToPeriod(pmid,VF,VL);
+ }
+ else
+ v = (p1.Y()+p2.Y())/2.;
+
+ gp_Pnt P = S->Value(u, v);
+ n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
+ meshDS->SetNodeOnFace(n12, faceID, u, v);
+ myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+ return n12;
+ }
+ if (edgeID>-1 || shapeType == TopAbs_EDGE) {
+
+ TopoDS_Edge E;
+ if( myShape.IsNull() )
+ E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
+ else {
+ E = TopoDS::Edge(myShape);
+ edgeID = myShapeID;
+ }
+
+ double p1 = GetNodeU(E,n1);
+ double p2 = GetNodeU(E,n2);
+
+ double f,l;
+ Handle(Geom_Curve) C = BRep_Tool::Curve(E, f, l);
+ if(!C.IsNull()) {
+
+ Standard_Boolean isPeriodic = C->IsPeriodic();
+ double u;
+ if(isPeriodic) {
+ Standard_Real Period = C->Period();
+ Standard_Real p = p2+ShapeAnalysis::AdjustByPeriod(p2,p1,Period);
+ Standard_Real pmid = (p1+p)/2.;
+ u = pmid+ShapeAnalysis::AdjustToPeriod(pmid,C->FirstParameter(),C->LastParameter());
+ }
+ else
+ u = (p1+p2)/2.;
+
+ gp_Pnt P = C->Value( u );
+ n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
+ meshDS->SetNodeOnEdge(n12, edgeID, u);
+ myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+ return n12;
+ }
+ }
+ }
+ // 3d variant
+ double x = ( n1->X() + n2->X() )/2.;
+ double y = ( n1->Y() + n2->Y() )/2.;
+ double z = ( n1->Z() + n2->Z() )/2.;
+ n12 = meshDS->AddNode(x,y,z);
+ if(edgeID>-1)
+ meshDS->SetNodeOnEdge(n12, edgeID);
+ else if(faceID>-1)
+ meshDS->SetNodeOnFace(n12, faceID);
+ else
+ meshDS->SetNodeInVolume(n12, myShapeID);
+ myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+ return n12;
+ }
+}
+
+//=======================================================================
+//function : AddQuadraticEdge
+//purpose :
+//=======================================================================
+/**
+ * Special function for creation quadratic edge
+ */
+SMDS_QuadraticEdge* SMESH_MesherHelper::AddQuadraticEdge(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const int id,
+ const bool force3d)
+{
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+
+ const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+
+ myCreateQuadratic = true;
+
+ if(id)
+ return (SMDS_QuadraticEdge*)(meshDS->AddEdgeWithID(n1, n2, n12, id));
+ else
+ return (SMDS_QuadraticEdge*)(meshDS->AddEdge(n1, n2, n12));
+}
+
+//=======================================================================
+//function : AddFace
+//purpose :
+//=======================================================================
+/*!
+ * Special function for creation quadratic triangle
+ */
+SMDS_MeshFace* SMESH_MesherHelper::AddFace(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const int id,
+ const bool force3d)
+{
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ if(!myCreateQuadratic) {
+ if(id)
+ return meshDS->AddFaceWithID(n1, n2, n3, id);
+ else
+ return meshDS->AddFace(n1, n2, n3);
+ }
+
+ const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+ const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+ const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+ if(id)
+ return meshDS->AddFaceWithID(n1, n2, n3, n12, n23, n31, id);
+ else
+ return meshDS->AddFace(n1, n2, n3, n12, n23, n31);
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose :
+//=======================================================================
+/*!
+ * Special function for creation quadratic quadrangle
+ */
+SMDS_MeshFace* SMESH_MesherHelper::AddFace(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const int id,
+ const bool force3d)
+{
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ if(!myCreateQuadratic) {
+ if(id)
+ return meshDS->AddFaceWithID(n1, n2, n3, n4, id);
+ else
+ return meshDS->AddFace(n1, n2, n3, n4);
+ }
+
+ const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+ const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+ const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+ const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,force3d);
+
+ if(id)
+ return meshDS->AddFaceWithID(n1, n2, n3, n4, n12, n23, n34, n41, id);
+ else
+ return meshDS->AddFace(n1, n2, n3, n4, n12, n23, n34, n41);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose :
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const SMDS_MeshNode* n5,
+ const SMDS_MeshNode* n6,
+ const int id,
+ const bool force3d)
+{
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ if(!myCreateQuadratic) {
+ if(id)
+ return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, id);
+ else
+ return meshDS->AddVolume(n1, n2, n3, n4, n5, n6);
+ }
+
+ const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+ const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+ const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+ const SMDS_MeshNode* n45 = GetMediumNode(n4,n5,force3d);
+ const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,force3d);
+ const SMDS_MeshNode* n64 = GetMediumNode(n6,n4,force3d);
+
+ const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,force3d);
+ const SMDS_MeshNode* n25 = GetMediumNode(n2,n5,force3d);
+ const SMDS_MeshNode* n36 = GetMediumNode(n3,n6,force3d);
+
+ if(id)
+ return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6,
+ n12, n23, n31, n45, n56, n64, n14, n25, n36, id);
+ else
+ return meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
+ n12, n23, n31, n45, n56, n64, n14, n25, n36);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose :
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const int id,
+ const bool force3d)
+{
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ if(!myCreateQuadratic) {
+ if(id)
+ return meshDS->AddVolumeWithID(n1, n2, n3, n4, id);
+ else
+ return meshDS->AddVolume(n1, n2, n3, n4);
+ }
+
+ const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+ const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+ const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+ const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,force3d);
+ const SMDS_MeshNode* n24 = GetMediumNode(n2,n4,force3d);
+ const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+
+ if(id)
+ return meshDS->AddVolumeWithID(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34, id);
+ else
+ return meshDS->AddVolume(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose :
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const SMDS_MeshNode* n5,
+ const SMDS_MeshNode* n6,
+ const SMDS_MeshNode* n7,
+ const SMDS_MeshNode* n8,
+ const int id,
+ const bool force3d)
+{
+ SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+ if(!myCreateQuadratic) {
+ if(id)
+ return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, id);
+ else
+ return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
+ }
+
+ const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+ const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+ const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+ const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,force3d);
+
+ const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,force3d);
+ const SMDS_MeshNode* n67 = GetMediumNode(n6,n7,force3d);
+ const SMDS_MeshNode* n78 = GetMediumNode(n7,n8,force3d);
+ const SMDS_MeshNode* n85 = GetMediumNode(n8,n5,force3d);
+
+ const SMDS_MeshNode* n15 = GetMediumNode(n1,n5,force3d);
+ const SMDS_MeshNode* n26 = GetMediumNode(n2,n6,force3d);
+ const SMDS_MeshNode* n37 = GetMediumNode(n3,n7,force3d);
+ const SMDS_MeshNode* n48 = GetMediumNode(n4,n8,force3d);
+
+ if(id)
+ return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8,
+ n12, n23, n34, n41, n56, n67,
+ n78, n85, n15, n26, n37, n48, id);
+ else
+ return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8,
+ n12, n23, n34, n41, n56, n67,
+ n78, n85, n15, n26, n37, n48);
+}
+
+
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+// File: SMESH_MesherHelper.hxx
+// Created: 15.02.06 14:48:09
+// Author: Sergey KUUL
+// Copyright: Open CASCADE 2006
+
+
+#ifndef SMESH_MesherHelper_HeaderFile
+#define SMESH_MesherHelper_HeaderFile
+
+#include <SMESH_Mesh.hxx>
+#include <TopoDS_Shape.hxx>
+#include <SMDS_MeshNode.hxx>
+#include <TopoDS_Face.hxx>
+#include <gp_Pnt2d.hxx>
+#include <SMDS_QuadraticEdge.hxx>
+
+#include <map>
+
+typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> NLink;
+typedef map<NLink, const SMDS_MeshNode*> NLinkNodeMap;
+typedef map<NLink, const SMDS_MeshNode*>::iterator ItNLinkNode;
+
+/*!
+ * \brief It helps meshers to add elements
+ *
+ * It allow meshers not to care about creation of medium nodes
+ * when filling a quadratic mesh. Helper does it itself.
+ * It defines degree of elements to create when IsQuadraticSubMesh()
+ * is called.
+ */
+
+class SMESH_MesherHelper
+{
+ public:
+ // ---------- PUBLIC METHODS ----------
+
+ /// Empty constructor
+ SMESH_MesherHelper(SMESH_Mesh& theMesh)
+ { myMesh=(void *)&theMesh; myCreateQuadratic = false; myShapeID=-1;}
+
+ SMESH_Mesh* GetMesh() const
+ { return (SMESH_Mesh*)myMesh; }
+
+ /// Copy constructor
+ //Standard_EXPORT SMESH_MesherHelper (const SMESH_MesherHelper& theOther);
+
+ /// Destructor
+ //Standard_EXPORT virtual ~SMESH_MesherHelper ();
+
+ /**
+ * Check submesh for given shape
+ * Check if all elements on this shape
+ * are quadratic, if yes => set true to myCreateQuadratic
+ * (default value is false). Also fill myNLinkNodeMap
+ * Returns myCreateQuadratic
+ */
+ bool IsQuadraticSubMesh(const TopoDS_Shape& theShape);
+
+ /*!
+ * \brief Returns true if given node is medium
+ * \param n - node to check
+ * \param typeToCheck - type of elements containing the node to ask about node status
+ * \retval bool - check result
+ */
+ static bool IsMedium(const SMDS_MeshNode* node,
+ const SMDSAbs_ElementType typeToCheck = SMDSAbs_All);
+
+ /**
+ * Auxilary function for filling myNLinkNodeMap
+ */
+ void AddNLinkNode(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n12);
+
+ /**
+ * Auxilary function for filling myNLinkNodeMap
+ */
+ void AddNLinkNodeMap(const NLinkNodeMap& aMap)
+ { myNLinkNodeMap.insert(aMap.begin(), aMap.end()); }
+
+ /**
+ * Returns myNLinkNodeMap
+ */
+ const NLinkNodeMap& GetNLinkNodeMap() { return myNLinkNodeMap; }
+
+ /*!
+ * \brief Return node UV on face
+ * \param F - the face
+ * \param n - the node
+ * \param inFaceNode - a node of element being created located inside a face
+ * \retval gp_XY - resulting UV
+ *
+ * Auxilary function called form GetMediumNode()
+ */
+ gp_XY GetNodeUV(const TopoDS_Face& F,
+ const SMDS_MeshNode* n,
+ const SMDS_MeshNode* inFaceNode=0);
+
+ /*!
+ * \brief Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
+ * \param F - the face
+ * \retval bool - return true if the face is periodic
+ *
+ * if F is Null, answer about subshape set through IsQuadraticSubMesh() or
+ * SetSubShape()
+ */
+ bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
+
+ /*!
+ * \brief Return U on edge
+ * \param F - the edge
+ * \param n - the node
+ * \retval double - resulting U
+ *
+ * Auxilary function called from GetMediumNode()
+ */
+ double GetNodeU(const TopoDS_Edge& E,
+ const SMDS_MeshNode* n);
+
+
+ /**
+ * Special function for search or creation medium node
+ */
+ const SMDS_MeshNode* GetMediumNode(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const bool force3d);
+
+ /**
+ * Special function for creation quadratic edge
+ */
+ SMDS_QuadraticEdge* AddQuadraticEdge(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const int id = 0,
+ const bool force3d = true);
+
+ /**
+ * Special function for creation quadratic triangle
+ */
+ SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const int id=0,
+ const bool force3d = false);
+
+ /**
+ * Special function for creation quadratic quadrangle
+ */
+ SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const int id = 0,
+ const bool force3d = false);
+
+ /**
+ * Special function for creation quadratic tetraahedron
+ */
+ SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const int id = 0,
+ const bool force3d = true);
+
+ /**
+ * Special function for creation quadratic pentahedron
+ */
+ SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const SMDS_MeshNode* n5,
+ const SMDS_MeshNode* n6,
+ const int id = 0,
+ const bool force3d = true);
+
+ /**
+ * Special function for creation quadratic hexahedron
+ */
+ SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const SMDS_MeshNode* n5,
+ const SMDS_MeshNode* n6,
+ const SMDS_MeshNode* n7,
+ const SMDS_MeshNode* n8,
+ const int id = 0,
+ bool force3d = true);
+
+
+ /*!
+ * \brief Set order of elements to create
+ * \param theBuildQuadratic - to build quadratic or not
+ *
+ * To be used for quadratic elements creation without preceding
+ * IsQuadraticSubMesh() or AddQuadraticEdge() call
+ */
+ void SetKeyIsQuadratic(const bool theBuildQuadratic)
+ { myCreateQuadratic = theBuildQuadratic; }
+
+ /*!
+ * \brief Set shape to make elements on
+ * \param subShape, subShapeID - shape or its ID (==SMESHDS_Mesh::ShapeToIndex(shape))
+ */
+ void SetSubShape(const int subShapeID);
+ void SetSubShape(const TopoDS_Shape& subShape);
+
+ /*!
+ * \brief Return shape or its ID, on which created elements are added
+ * \retval TopoDS_Shape, int - shape or its ID
+ */
+ int GetSubShapeID() { return myShapeID; }
+ TopoDS_Shape GetSubShape() { return myShape; }
+
+ protected:
+
+ /*!
+ * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
+ * \param uv1 - UV on the seam
+ * \param uv2 - UV within a face
+ * \retval gp_Pnt2d - selected UV
+ */
+ gp_Pnt2d GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
+
+ private:
+
+ void* myMesh;
+
+ int myShapeID;
+
+ // Key for creation quadratic faces
+ bool myCreateQuadratic;
+
+ // special map for using during creation quadratic faces
+ NLinkNodeMap myNLinkNodeMap;
+
+ std::set< int > mySeamShapeIds;
+ double myPar1, myPar2; // bounds of a closed periodic surface
+ int myParIndex; // bounds' index (1-U, 2-V)
+ TopoDS_Shape myShape;
+
+};
+
+
+#endif
}
//=======================================================================
-//function : isMeshBoundToShape
-//purpose : return true if all 2d elements are bound to shape
+//function : areNodesBound
+//purpose : true if all nodes of faces are bound to shapes
//=======================================================================
-static bool isMeshBoundToShape(SMESH_Mesh* theMesh)
+template <class TFaceIterator> bool areNodesBound( TFaceIterator & faceItr )
{
- // check faces binding
- SMESHDS_Mesh * aMeshDS = theMesh->GetMeshDS();
- SMESHDS_SubMesh * aMainSubMesh = aMeshDS->MeshElements( aMeshDS->ShapeToMesh() );
- if ( aMeshDS->NbFaces() != aMainSubMesh->NbElements() )
- return false;
-
- // check face nodes binding
- SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
- while ( fIt->more() )
+ while ( faceItr->more() )
{
- SMDS_ElemIteratorPtr nIt = fIt->next()->nodesIterator();
+ SMDS_ElemIteratorPtr nIt = faceItr->next()->nodesIterator();
while ( nIt->more() )
{
const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nIt->next() );
SMDS_PositionPtr pos = node->GetPosition();
- if ( !pos || !pos->GetShapeId() )
+ if ( !pos || !pos->GetShapeId() ) {
return false;
+ }
}
}
return true;
}
+//=======================================================================
+//function : isMeshBoundToShape
+//purpose : return true if all 2d elements are bound to shape
+// if aFaceSubmesh != NULL, then check faces bound to it
+// else check all faces in aMeshDS
+//=======================================================================
+
+static bool isMeshBoundToShape(SMESHDS_Mesh * aMeshDS,
+ SMESHDS_SubMesh * aFaceSubmesh,
+ const bool isMainShape)
+{
+ if ( isMainShape ) {
+ // check that all faces are bound to aFaceSubmesh
+ if ( aMeshDS->NbFaces() != aFaceSubmesh->NbElements() )
+ return false;
+ }
+
+ // check face nodes binding
+ if ( aFaceSubmesh ) {
+ SMDS_ElemIteratorPtr fIt = aFaceSubmesh->GetElements();
+ return areNodesBound( fIt );
+ }
+ SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
+ return areNodesBound( fIt );
+}
+
//=======================================================================
//function : Load
//purpose : Create a pattern from the mesh built on <theFace>.
for ( ; elIt != eList.end() ; elIt++ )
if ( BRep_Tool::IsClosed( *elIt , face ))
return setErrorCode( ERR_LOADF_CLOSED_FACE );
-
+
+ // check that requested or needed projection is possible
+ bool isMainShape = theMesh->IsMainShape( face );
+ bool needProject = !isMeshBoundToShape( aMeshDS, fSubMesh, isMainShape );
+ bool canProject = ( nbElems ? true : isMainShape );
+
+ if ( ( theProject || needProject ) && !canProject )
+ return setErrorCode( ERR_LOADF_CANT_PROJECT );
Extrema_GenExtPS projector;
GeomAdaptor_Surface aSurface( BRep_Tool::Surface( face ));
- if ( theProject || nbElems == 0 )
+ if ( theProject || needProject )
projector.Initialize( aSurface, 20,20, 1e-5,1e-5 );
int iPoint = 0;
TNodePointIDMap nodePointIDMap;
- if ( nbElems == 0 || (theProject &&
- theMesh->IsMainShape( face ) &&
- !isMeshBoundToShape( theMesh )))
+ if ( needProject )
{
- MESSAGE("Project the whole mesh");
+ MESSAGE("Project the submesh");
// ---------------------------------------------------------------
- // The case where the whole mesh is projected to theFace
+ // The case where the submesh is projected to theFace
// ---------------------------------------------------------------
- // put nodes of all faces in the nodePointIDMap and fill myElemPointIDs
- SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
- while ( fIt->more() )
+ // get all faces
+ list< const SMDS_MeshElement* > faces;
+ if ( nbElems > 0 ) {
+ SMDS_ElemIteratorPtr fIt = fSubMesh->GetElements();
+ while ( fIt->more() ) {
+ const SMDS_MeshElement* f = fIt->next();
+ if ( f && f->GetType() == SMDSAbs_Face )
+ faces.push_back( f );
+ }
+ }
+ else {
+ SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
+ while ( fIt->more() )
+ faces.push_back( fIt->next() );
+ }
+
+ // put nodes of all faces into the nodePointIDMap and fill myElemPointIDs
+ list< const SMDS_MeshElement* >::iterator fIt = faces.begin();
+ for ( ; fIt != faces.end(); ++fIt )
{
myElemPointIDs.push_back( TElemDef() );
TElemDef& elemPoints = myElemPointIDs.back();
- SMDS_ElemIteratorPtr nIt = fIt->next()->nodesIterator();
+ SMDS_ElemIteratorPtr nIt = (*fIt)->nodesIterator();
while ( nIt->more() )
{
const SMDS_MeshElement* node = nIt->next();
double dU = maxU - minU, dV = maxV - minV;
if ( dU <= DBL_MIN || dV <= DBL_MIN ) {
Clear();
- return setErrorCode( ERR_LOADF_NARROW_FACE );
+ bndBox.SetVoid();
+ // define where is the problem, in the face or in the mesh
+ TopExp_Explorer vExp( face, TopAbs_VERTEX );
+ for ( ; vExp.More(); vExp.Next() ) {
+ gp_Pnt2d uv = BRep_Tool::Parameters( TopoDS::Vertex( vExp.Current() ), face );
+ bndBox.Add( uv );
+ }
+ bndBox.Get( minU, minV, maxU, maxV );
+ dU = maxU - minU, dV = maxV - minV;
+ if ( dU <= DBL_MIN || dV <= DBL_MIN )
+ // face problem
+ return setErrorCode( ERR_LOADF_NARROW_FACE );
+ else
+ // mesh is projected onto a line, e.g.
+ return setErrorCode( ERR_LOADF_CANT_PROJECT );
}
double ratio = dU / dV, maxratio = 3, scale;
int iCoord = 0;
myPolyElems.reserve( myIdsOnBoundary.size() );
// make a set of refined elements
- set< const SMDS_MeshElement* > avoidSet, elemSet;
- avoidSet.insert( myElements.begin(), myElements.end() );
+ map<int,const SMDS_MeshElement* > avoidSet, elemSet;
+ std::vector<const SMDS_MeshElement*>::iterator itv = myElements.begin();
+ for(; itv!=myElements.end(); itv++) {
+ const SMDS_MeshElement* el = (*itv);
+ avoidSet.insert( make_pair(el->GetID(),el) );
+ }
+ //avoidSet.insert( myElements.begin(), myElements.end() );
map< TNodeSet, list< list< int > > >::iterator indListIt, nn_IdList;
SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
if ( face )
{
- avoidSet.insert ( face );
+ avoidSet.insert ( make_pair(face->GetID(),face) );
myPolyElems.push_back( face );
// some links of <face> are split;
while ( eIt->more() )
{
const SMDS_MeshElement* elem = eIt->next();
- if ( !volTool.Set( elem ) || !avoidSet.insert( elem ).second )
+ if ( !volTool.Set( elem ) || !avoidSet.insert( make_pair(elem->GetID(),elem) ).second )
continue; // skip faces or refined elements
// add polyhedron definition
myPolyhedronQuantities.push_back(vector<int> ());
return makePoly;
}
+//=======================================================================
+//function : clearSubMesh
+//purpose :
+//=======================================================================
+
+static bool clearSubMesh( SMESH_Mesh* theMesh,
+ const TopoDS_Shape& theShape)
+{
+ bool removed = false;
+ if ( SMESH_subMesh * aSubMesh = theMesh->GetSubMeshContaining( theShape ))
+ {
+ if ( aSubMesh->GetSubMeshDS() ) {
+ removed =
+ aSubMesh->GetSubMeshDS()->NbElements() || aSubMesh->GetSubMeshDS()->NbNodes();
+ aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
+ }
+ }
+ else {
+ SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
+ if ( SMESHDS_SubMesh* aSubMeshDS = aMeshDS->MeshElements( theShape ))
+ {
+ SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
+ removed = eIt->more();
+ while ( eIt->more() )
+ aMeshDS->RemoveElement( eIt->next() );
+ SMDS_NodeIteratorPtr nIt = aSubMeshDS->GetNodes();
+ removed = removed || nIt->more();
+ while ( nIt->more() )
+ aMeshDS->RemoveNode( static_cast<const SMDS_MeshNode*>( nIt->next() ));
+ }
+ }
+ return removed;
+}
+
//=======================================================================
//function : clearMesh
//purpose : clear mesh elements existing on myShape in theMesh
if ( !myShape.IsNull() )
{
- if ( SMESH_subMesh * aSubMesh = theMesh->GetSubMesh/*Containing*/( myShape ))
- {
- aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
- }
- else {
- SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
- if ( SMESHDS_SubMesh* aSubMeshDS = aMeshDS->MeshElements( myShape ))
+ if ( !clearSubMesh( theMesh, myShape ) && !myIs2D ) { // myShape is SHELL but volumes may be bound to SOLID
+ TopTools_ListIteratorOfListOfShape it( theMesh->GetAncestors( myShape ));
+ for (; it.More() && it.Value().ShapeType() == TopAbs_SOLID; it.Next())
{
- SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
- while ( eIt->more() )
- aMeshDS->RemoveElement( eIt->next() );
- SMDS_NodeIteratorPtr nIt = aSubMeshDS->GetNodes();
- while ( nIt->more() )
- aMeshDS->RemoveNode( static_cast<const SMDS_MeshNode*>( nIt->next() ));
+ clearSubMesh( theMesh, it.Value() );
}
}
}
MESSAGE(" findBoundaryPoints() ");
+ myNbKeyPntInBoundary.clear();
+
if ( myIs2D )
{
set< TPoint* > pointsInElems;
// Load(face)
ERR_LOADF_NARROW_FACE, // too narrow face
ERR_LOADF_CLOSED_FACE, // closed face
+ ERR_LOADF_CANT_PROJECT, // impossible to project nodes
// Load(volume)
ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters
//MESSAGE("SMESH_subMesh::SubMeshesComputed");
const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
+ int myDim = SMESH_Gen::GetShapeDim( _subShape );
+ int dimToCheck = myDim - 1;
bool subMeshesComputed = true;
map < int, SMESH_subMesh * >::const_iterator itsub;
for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
{
SMESH_subMesh *sm = (*itsub).second;
+ const TopoDS_Shape & ss = sm->GetSubShape();
+ // MSV 07.04.2006: restrict checking to myDim-1 only. Ex., there is no sense
+ // in checking of existence of edges if the algo needs only faces. Moreover,
+ // degenerated edges may have no submesh, as after computing NETGEN_2D.
+ int dim = SMESH_Gen::GetShapeDim( ss );
+ if (dim < dimToCheck)
+ continue;
SMESHDS_SubMesh * ds = sm->GetSubMeshDS();
// PAL10974.
// There are some tricks with compute states, e.g. Penta_3D leaves
// one face with READY_TO_COMPUTE state in order to be able to
// recompute 3D when a locale triangle hypo changes (see PAL7428).
// So we check if mesh is really present
- //bool computeOk = (sm->GetComputeState() == COMPUTE_OK);
- bool computeOk = ( ds && ( ds->GetNodes()->more() || ds->GetElements()->more() ));
+ bool computeOk = (sm->GetComputeState() == COMPUTE_OK ||
+ (ds && ( ds->GetNodes()->more() || ds->GetElements()->more() )));
if (!computeOk)
{
- const TopoDS_Shape & ss = sm->GetSubShape();
int type = ss.ShapeType();
subMeshesComputed = false;
ret = SMESH_Hypothesis::HYP_CONCURENT;
}
} // Serve Propagation of 1D hypothesis
+ else // event == REMOVE_ALGO
+ {
+ SMESH_Algo* algo = dynamic_cast<SMESH_Algo*> (anHyp);
+ if (!algo->NeedDescretBoundary())
+ {
+ // clean all mesh in the tree of the current submesh;
+ // we must perform it now because later
+ // we will have no information about the type of the removed algo
+ CleanDependants();
+ ComputeStateEngine( CLEAN );
+ CleanDependsOn();
+ }
+ }
}
// ------------------
void SMESH_subMesh::CleanDependsOn()
{
//MESSAGE("SMESH_subMesh::CleanDependsOn");
- // **** parcourir les ancetres dans l'ordre de dépendance
-
- ComputeStateEngine(CLEAN);
const map < int, SMESH_subMesh * >&dependson = DependsOn();
map < int, SMESH_subMesh * >::const_iterator its;
case NOT_READY:
switch (event)
{
- case MODIF_HYP: // nothing to do
- break;
+ case MODIF_HYP:
case MODIF_ALGO_STATE:
- if (_algoState == HYP_OK)
+ algo = gen->GetAlgo((*_father), _subShape);
+ if (algo && !algo->NeedDescretBoundary())
+ CleanDependsOn(); // clean sub-meshes with event CLEAN
+ if (event == MODIF_ALGO_STATE && _algoState == HYP_OK)
{
_computeState = READY_TO_COMPUTE;
}
case READY_TO_COMPUTE:
switch (event)
{
- case MODIF_HYP: // nothing to do
- break;
+ case MODIF_HYP:
case MODIF_ALGO_STATE:
- _computeState = NOT_READY;
algo = gen->GetAlgo((*_father), _subShape);
+ if (algo && !algo->NeedDescretBoundary())
+ CleanDependsOn(); // clean sub-meshes with event CLEAN
+ if (event == MODIF_HYP)
+ break; // nothing else to do when MODIF_HYP
+ _computeState = NOT_READY;
if (algo)
{
ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
// compute
CleanDependants();
RemoveSubMeshElementsAndNodes();
- try {
- if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
- ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
- else
- ret = algo->Compute((*_father), _subShape);
- }
- catch (Standard_Failure) {
- MESSAGE( "Exception in algo->Compute() ");
- ret = false;
- }
+ {
+ try {
+ if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
+ ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
+ else
+ ret = algo->Compute((*_father), _subShape);
+ }
+ catch (Standard_Failure) {
+ MESSAGE( "Exception in algo->Compute() ");
+ ret = false;
+ }
+ }
if (!ret)
{
MESSAGE("problem in algo execution: failed to compute");
#ifdef _DEBUG_
// Show vertices location of a failed shape
+ cout << algo->GetName() << " failed on shape with the following vertices:" << endl;
TopTools_IndexedMapOfShape vMap;
TopExp::MapShapes( _subShape, TopAbs_VERTEX, vMap );
for ( int iv = 1; iv <= vMap.Extent(); ++iv ) {
namespace
{
+ //=======================================================================
+ //function : FindNode
+ //=======================================================================
inline const SMDS_MeshNode* FindNode(const SMDS_Mesh* theMesh, int theId){
if(const SMDS_MeshNode* anElem = theMesh->FindNode(theId)) return anElem;
EXCEPTION(runtime_error,"SMDS_Mesh::FindNode - cannot find a SMDS_MeshNode for ID = "<<theId);
}
+ //=======================================================================
+ //function : FindElement
+ //=======================================================================
inline const SMDS_MeshElement* FindElement(const SMDS_Mesh* theMesh, int theId){
if(const SMDS_MeshElement* anElem = theMesh->FindElement(theId)) return anElem;
EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot find a SMDS_MeshElement for ID = "<<theId);
}
+ //=======================================================================
+ //function : AddNodesWithID
+ //=======================================================================
inline void AddNodesWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
}
+ //=======================================================================
+ //function : AddEdgesWithID
+ //=======================================================================
inline void AddEdgesWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
}
+ //=======================================================================
+ //function : AddTriasWithID
+ //=======================================================================
inline void AddTriasWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
if(4*aNbElems != anIndexes.length())
- EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
+ EXCEPTION(runtime_error,"AddTriasWithID - 4*aNbElems != anIndexes.length()");
for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
anIndexes[anIndexId+2],
}
+ //=======================================================================
+ //function : AddQuadsWithID
+ //=======================================================================
inline void AddQuadsWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var theSeq,
CORBA::Long theId)
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
if(5*aNbElems != anIndexes.length())
- EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
+ EXCEPTION(runtime_error,"AddQuadsWithID - 4*aNbElems != anIndexes.length()");
for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
anIndexes[anIndexId+2],
}
+ //=======================================================================
+ //function : AddPolygonsWithID
+ //=======================================================================
inline void AddPolygonsWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
}
+ //=======================================================================
+ //function : AddTetrasWithID
+ //=======================================================================
inline void AddTetrasWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
if(5*aNbElems != anIndexes.length())
- EXCEPTION(runtime_error,"AddEdgeWithID - 5*aNbElems != anIndexes.length()");
+ EXCEPTION(runtime_error,"AddTetrasWithID - 5*aNbElems != anIndexes.length()");
for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
anIndexes[anIndexId+2],
}
+ //=======================================================================
+ //function : AddPiramidsWithID
+ //=======================================================================
inline void AddPiramidsWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
if(6*aNbElems != anIndexes.length())
- EXCEPTION(runtime_error,"AddEdgeWithID - 6*aNbElems != anIndexes.length()");
+ EXCEPTION(runtime_error,"AddPiramidsWithID - 6*aNbElems != anIndexes.length()");
for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=6){
SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
anIndexes[anIndexId+2],
}
+ //=======================================================================
+ //function : AddPrismsWithID
+ //=======================================================================
inline void AddPrismsWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
if(7*aNbElems != anIndexes.length())
- EXCEPTION(runtime_error,"AddEdgeWithID - 7*aNbElems != anIndexes.length()");
+ EXCEPTION(runtime_error,"AddPrismsWithID - 7*aNbElems != anIndexes.length()");
for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
anIndexes[anIndexId+2],
}
+ //=======================================================================
+ //function : AddHexasWithID
+ //=======================================================================
inline void AddHexasWithID(SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
if(9*aNbElems != anIndexes.length())
- EXCEPTION(runtime_error,"AddEdgeWithID - 9*aNbElems != anIndexes.length()");
+ EXCEPTION(runtime_error,"AddHexasWithID - 9*aNbElems != anIndexes.length()");
for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
anIndexes[anIndexId+2],
}
+ //=======================================================================
+ //function : AddPolyhedronsWithID
+ //=======================================================================
inline void AddPolyhedronsWithID (SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
}
+ //=======================================================================
+ //function : AddQuadEdgesWithID
+ //=======================================================================
+ inline void AddQuadEdgesWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var& theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(4*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadEdgeWithID - 4*aNbElems != aCoords.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
+ SMDS_MeshElement* anElem = theMesh->AddEdgeWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddEdgeWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : AddQuadTriasWithID
+ //=======================================================================
+ inline void AddQuadTriasWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var& theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(7*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadTriasWithID - 7*aNbElems != anIndexes.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
+ SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId+4],
+ anIndexes[anIndexId+5],
+ anIndexes[anIndexId+6],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : AddQuadQuadsWithID
+ //=======================================================================
+ inline void AddQuadQuadsWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(9*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadQuadsWithID - 9*aNbElems != anIndexes.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
+ SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId+4],
+ anIndexes[anIndexId+5],
+ anIndexes[anIndexId+6],
+ anIndexes[anIndexId+7],
+ anIndexes[anIndexId+8],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : AddQuadTetrasWithID
+ //=======================================================================
+ inline void AddQuadTetrasWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var& theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(11*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadTetrasWithID - 11*aNbElems != anIndexes.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=11){
+ SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId+4],
+ anIndexes[anIndexId+5],
+ anIndexes[anIndexId+6],
+ anIndexes[anIndexId+7],
+ anIndexes[anIndexId+8],
+ anIndexes[anIndexId+9],
+ anIndexes[anIndexId+10],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : AddQuadPiramidsWithID
+ //=======================================================================
+ inline void AddQuadPiramidsWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var& theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(14*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadPiramidsWithID - 14*aNbElems != anIndexes.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=14){
+ SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId+4],
+ anIndexes[anIndexId+5],
+ anIndexes[anIndexId+6],
+ anIndexes[anIndexId+7],
+ anIndexes[anIndexId+8],
+ anIndexes[anIndexId+9],
+ anIndexes[anIndexId+10],
+ anIndexes[anIndexId+11],
+ anIndexes[anIndexId+12],
+ anIndexes[anIndexId+13],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : AddQuadPentasWithID
+ //=======================================================================
+ inline void AddQuadPentasWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var& theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(16*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadPentasWithID - 16*aNbElems != anIndexes.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=16){
+ SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId+4],
+ anIndexes[anIndexId+5],
+ anIndexes[anIndexId+6],
+ anIndexes[anIndexId+7],
+ anIndexes[anIndexId+8],
+ anIndexes[anIndexId+9],
+ anIndexes[anIndexId+10],
+ anIndexes[anIndexId+11],
+ anIndexes[anIndexId+12],
+ anIndexes[anIndexId+13],
+ anIndexes[anIndexId+14],
+ anIndexes[anIndexId+15],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : AddQuadHexasWithID
+ //=======================================================================
+ inline void AddQuadHexasWithID(SMDS_Mesh* theMesh,
+ SMESH::log_array_var& theSeq,
+ CORBA::Long theId)
+ {
+ const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+ CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+ if(21*aNbElems != anIndexes.length())
+ EXCEPTION(runtime_error,"AddQuadHexasWithID - 21*aNbElems != anIndexes.length()");
+ for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=21){
+ SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+ anIndexes[anIndexId+2],
+ anIndexes[anIndexId+3],
+ anIndexes[anIndexId+4],
+ anIndexes[anIndexId+5],
+ anIndexes[anIndexId+6],
+ anIndexes[anIndexId+7],
+ anIndexes[anIndexId+8],
+ anIndexes[anIndexId+9],
+ anIndexes[anIndexId+10],
+ anIndexes[anIndexId+11],
+ anIndexes[anIndexId+12],
+ anIndexes[anIndexId+13],
+ anIndexes[anIndexId+14],
+ anIndexes[anIndexId+15],
+ anIndexes[anIndexId+16],
+ anIndexes[anIndexId+17],
+ anIndexes[anIndexId+18],
+ anIndexes[anIndexId+19],
+ anIndexes[anIndexId+20],
+ anIndexes[anIndexId]);
+ if(!anElem)
+ EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+ }
+ }
+
+
+ //=======================================================================
+ //function : ChangePolyhedronNodes
+ //=======================================================================
inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
CORBA::Long theId)
case SMESH::ADD_HEXAHEDRON : AddHexasWithID ( mySMDSMesh, aSeq, anId ); break;
case SMESH::ADD_POLYHEDRON : AddPolyhedronsWithID( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADEDGE : AddQuadEdgesWithID ( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADTRIANGLE : AddQuadTriasWithID ( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADQUADRANGLE : AddQuadQuadsWithID ( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADTETRAHEDRON: AddQuadTetrasWithID ( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADPYRAMID : AddQuadPiramidsWithID( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADPENTAHEDRON: AddQuadPentasWithID ( mySMDSMesh, aSeq, anId ); break;
+ case SMESH::ADD_QUADHEXAHEDRON : AddQuadHexasWithID ( mySMDSMesh, aSeq, anId ); break;
+
case SMESH::REMOVE_NODE:
for( ; anElemId < aNbElems; anElemId++ )
mySMDSMesh->RemoveNode( FindNode( mySMDSMesh, anIndexes[anElemId] ) );
return true;
}
-//=======================================================================
+
+//======================================================================
//function : Clear
//purpose :
//=======================================================================
//purpose :
//=======================================================================
SMESHDS_Mesh::SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode):
+ myMeshID(theMeshID),
myIsEmbeddedMode(theIsEmbeddedMode),
- myMeshID(theMeshID)
+ myCurSubID(-1)
{
myScript = new SMESHDS_Script(theIsEmbeddedMode);
+ myCurSubMesh = 0;
}
//=======================================================================
// Rm from sub-mesh
// Node should belong to only one sub-mesh
- subMesh->RemoveNode(n);
+ if( subMesh )
+ subMesh->RemoveNode(n);
SMDS_Mesh::RemoveFreeElement(n);
}
// Rm from sub-mesh
// Element should belong to only one sub-mesh
- subMesh->RemoveElement(elt);
+ if( subMesh )
+ subMesh->RemoveElement(elt);
SMDS_Mesh::RemoveFreeElement(elt);
}
void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode * aNode,
const TopoDS_Shell & S)
{
- add( aNode, getSubmesh(S) );
+ if ( add( aNode, getSubmesh(S) ))
+ const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
}
//=======================================================================
//function : SetNodeOnVolume
void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode * aNode,
const TopoDS_Solid & S)
{
- add( aNode, getSubmesh(S) );
+ if ( add( aNode, getSubmesh(S) ))
+ const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
}
//=======================================================================
//=======================================================================
void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
{
- add( aNode, getSubmesh( Index ));
+ if ( add( aNode, getSubmesh( Index )))
+ const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( Index );
}
//=======================================================================
//=======================================================================
void SMESHDS_Script::AddNode(int NewNodeID, double x, double y, double z)
{
+ if(myIsEmbeddedMode){
+ myIsModified = true;
+ return;
+ }
getCommand(SMESHDS_AddNode)->AddNode(NewNodeID, x, y, z);
}
SALOME_Component.idl \
SMESH_Filter.idl \
SMESH_Pattern.idl \
- SALOME_GenericObj.idl
+ SALOME_GenericObj.idl \
+ SALOME_Comm.idl \
+ MED.idl
# header files
EXPORT_HEADERS= SMESH_Type.h \
SMESHGUI_Swig.cxx \
SMESHGUI_MoveNodesDlg.cxx \
SMESHGUI_AddMeshElementDlg.cxx \
- SMESHGUI_EditHypothesesDlg.cxx \
- SMESHGUI_CreateHypothesesDlg.cxx \
SMESHGUI_XmlHandler.cxx \
SMESHGUI_Filter.cxx \
SMESHGUI_FilterDlg.cxx \
SMESHGUI_FilterUtils.cxx \
SMESHGUI_PatternUtils.cxx \
SMESHGUI_HypothesesUtils.cxx \
- SMESHGUI_PrecisionDlg.cxx \
SMESHGUI_VTKUtils.cxx \
SMESHGUI_Selection.cxx \
SMESHGUI_CreatePolyhedralVolumeDlg.cxx \
SMESHGUI_Displayer.cxx \
SMESHGUI_Hypotheses.cxx \
SMESHGUI_ShapeByMeshDlg.cxx \
- SMESHGUI_AddQuadraticElementDlg.cxx
+ SMESHGUI_AddQuadraticElementDlg.cxx \
+ SMESHGUI_ConvToQuadDlg.cxx \
+ SMESHGUI_ConvToQuadOp.cxx
LIB_MOC = \
SMESHGUI.h \
SMESHGUI_Preferences_SelectionDlg.h \
SMESHGUI_MoveNodesDlg.h \
SMESHGUI_AddMeshElementDlg.h \
- SMESHGUI_EditHypothesesDlg.h \
- SMESHGUI_CreateHypothesesDlg.h \
SMESHGUI_FilterDlg.h \
SMESHGUI_FilterLibraryDlg.h \
SMESHGUI_SingleEditDlg.h \
SMESHGUI_TranslationDlg.h \
SMESHGUI_SymmetryDlg.h \
SMESHGUI_SewingDlg.h \
- SMESHGUI_PrecisionDlg.h \
SMESHGUI_MergeNodesDlg.h \
SMESHGUI_EditMeshDlg.h \
SMESHGUI_CreatePolyhedralVolumeDlg.h \
SMESHGUI_MeshOp.h \
SMESHGUI_Hypotheses.h \
SMESHGUI_ShapeByMeshDlg.h \
- SMESHGUI_AddQuadraticElementDlg.h
+ SMESHGUI_AddQuadraticElementDlg.h \
+ SMESHGUI_ConvToQuadDlg.h \
+ SMESHGUI_ConvToQuadOp.h
LIB_CLIENT_IDL = SALOME_Exception.idl \
#include "SMESHGUI_MoveNodesDlg.h"
#include "SMESHGUI_AddMeshElementDlg.h"
#include "SMESHGUI_AddQuadraticElementDlg.h"
-#include "SMESHGUI_EditHypothesesDlg.h"
-#include "SMESHGUI_CreateHypothesesDlg.h"
#include "SMESHGUI_FilterDlg.h"
#include "SMESHGUI_FilterLibraryDlg.h"
#include "SMESHGUI_SingleEditDlg.h"
#include "SMESHGUI_MergeNodesDlg.h"
#include "SMESHGUI_EditMeshDlg.h"
#include "SMESHGUI_MeshPatternDlg.h"
-#include "SMESHGUI_PrecisionDlg.h"
#include "SMESHGUI_Selection.h"
#include "SMESHGUI_CreatePolyhedralVolumeDlg.h"
+#include "SMESHGUI_ConvToQuadOp.h"
#include "SMESHGUI_MeshOp.h"
#include "SMESHGUI_Displayer.h"
anActor->SetRepresentation(SMESH_Actor::ePoint);
break;
case 1132:{
- float color[3];
+ vtkFloatingPointType color[3];
anActor->GetSufaceColor(color[0], color[1], color[2]);
int c0 = int (color[0] * 255);
int c1 = int (color[1] * 255);
int c2 = int (color[2] * 255);
QColor c(c0, c1, c2);
- float edgecolor[3];
+ vtkFloatingPointType edgecolor[3];
anActor->GetEdgeColor(edgecolor[0], edgecolor[1], edgecolor[2]);
c0 = int (edgecolor[0] * 255);
c1 = int (edgecolor[1] * 255);
c2 = int (edgecolor[2] * 255);
QColor e(c0, c1, c2);
- float backfacecolor[3];
+ vtkFloatingPointType backfacecolor[3];
anActor->GetBackSufaceColor(backfacecolor[0], backfacecolor[1], backfacecolor[2]);
c0 = int (backfacecolor[0] * 255);
c1 = int (backfacecolor[1] * 255);
c2 = int (backfacecolor[2] * 255);
QColor b(c0, c1, c2);
- float nodecolor[3];
+ vtkFloatingPointType nodecolor[3];
anActor->GetNodeColor(nodecolor[0], nodecolor[1], nodecolor[2]);
c0 = int (nodecolor[0] * 255);
c1 = int (nodecolor[1] * 255);
if(Edgewidth == 0)
Edgewidth = 1;
int intValue = int(anActor->GetNodeSize());
- float Shrink = anActor->GetShrinkFactor();
+ vtkFloatingPointType Shrink = anActor->GetShrinkFactor();
SMESHGUI_Preferences_ColorDlg *aDlg =
new SMESHGUI_Preferences_ColorDlg( SMESHGUI::GetSMESHGUI(), "" );
QColor nodecolor = aDlg->GetColor(3);
QColor backfacecolor = aDlg->GetColor(4);
/* actor color and backface color */
- anActor->SetSufaceColor(float (color.red()) / 255.,
- float (color.green()) / 255.,
- float (color.blue()) / 255.);
- anActor->SetBackSufaceColor(float (backfacecolor.red()) / 255.,
- float (backfacecolor.green()) / 255.,
- float (backfacecolor.blue()) / 255.);
+ anActor->SetSufaceColor(vtkFloatingPointType (color.red()) / 255.,
+ vtkFloatingPointType (color.green()) / 255.,
+ vtkFloatingPointType (color.blue()) / 255.);
+ anActor->SetBackSufaceColor(vtkFloatingPointType (backfacecolor.red()) / 255.,
+ vtkFloatingPointType (backfacecolor.green()) / 255.,
+ vtkFloatingPointType (backfacecolor.blue()) / 255.);
/* edge color */
- anActor->SetEdgeColor(float (edgecolor.red()) / 255.,
- float (edgecolor.green()) / 255.,
- float (edgecolor.blue()) / 255.);
+ anActor->SetEdgeColor(vtkFloatingPointType (edgecolor.red()) / 255.,
+ vtkFloatingPointType (edgecolor.green()) / 255.,
+ vtkFloatingPointType (edgecolor.blue()) / 255.);
/* Shrink factor and size edges */
anActor->SetShrinkFactor(aDlg->GetIntValue(3) / 100.);
anActor->SetLineWidth(aDlg->GetIntValue(1));
/* Nodes color and size */
- anActor->SetNodeColor(float (nodecolor.red()) / 255.,
- float (nodecolor.green()) / 255.,
- float (nodecolor.blue()) / 255.);
+ anActor->SetNodeColor(vtkFloatingPointType (nodecolor.red()) / 255.,
+ vtkFloatingPointType (nodecolor.green()) / 255.,
+ vtkFloatingPointType (nodecolor.blue()) / 255.);
anActor->SetNodeSize(aDlg->GetIntValue(2));
delete aDlg;
SALOME_ListIteratorOfListIO It(selected);
aStudyBuilder->NewCommand(); // There is a transaction
- for(; It.More(); It.Next()){
+ for(; It.More(); It.Next()){ // loop on selected IO's
Handle(SALOME_InteractiveObject) IObject = It.Value();
- if(IObject->hasEntry()){
- _PTR(SObject) SO = aStudy->FindObjectID(IObject->getEntry());
+ if(IObject->hasEntry()) {
+ _PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry());
// disable removal of "SMESH" component object
- if(SO->FindAttribute(anAttr, "AttributeIOR")){
+ if(aSO->FindAttribute(anAttr, "AttributeIOR")){
anIOR = anAttr;
if ( !strcmp( (char*)anIOR->Value().c_str(), engineIOR().latin1() ) )
continue;
}
- /* Erase child graphical objects */
- _PTR(ChildIterator) it = aStudy->NewChildIterator(SO);
- for(it->InitEx(true); it->More(); it->Next()){
- _PTR(SObject) CSO = it->Value();
- if(CSO->FindAttribute(anAttr, "AttributeIOR")){
- anIOR = anAttr;
+ // put the whole hierarchy of sub-objects of the selected SO into a list and
+ // then treat them all starting from the deepest objects (at list back)
+ list< _PTR(SObject) > listSO;
+ listSO.push_back( aSO );
+ list< _PTR(SObject) >::iterator itSO = listSO.begin();
+ for ( ; itSO != listSO.end(); ++itSO ) {
+ _PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO );
+ for (it->InitEx(false); it->More(); it->Next())
+ listSO.push_back( it->Value() );
+ }
+
+ // treat SO's in the list starting from the back
+
+ list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin();
+ for ( ; ritSO != listSO.rend(); ++ritSO ) {
+ _PTR(SObject) SO = *ritSO;
+ if ( !SO ) continue;
+ string anEntry = SO->GetID();
+
+ /** Erase graphical object **/
+ if(SO->FindAttribute(anAttr, "AttributeIOR")){
QPtrVector<SUIT_ViewWindow> aViews = vm->getViews();
for(int i = 0; i < nbSf; i++){
SUIT_ViewWindow *sf = aViews[i];
- CORBA::String_var anEntry = CSO->GetID().c_str();
- if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.in())){
+ if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){
SMESH::RemoveActor(sf,anActor);
}
}
}
- }
-
- /* Erase main graphical object */
- QPtrVector<SUIT_ViewWindow> aViews = vm->getViews();
- for(int i = 0; i < nbSf; i++){
- SUIT_ViewWindow *sf = aViews[i];
- if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,IObject->getEntry())){
- SMESH::RemoveActor(sf,anActor);
- }
- }
- // Remove object(s) from data structures
- _PTR(SObject) obj = aStudy->FindObjectID(IObject->getEntry());
- if(obj){
- SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( obj ) );
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( obj ) );
- QString objType = CheckTypeObject(IObject);
- if ( !aGroup->_is_nil() ) { // DELETE GROUP
- SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
- aMesh->RemoveGroup( aGroup );
- }
- else if ( !aSubMesh->_is_nil() ) { // DELETE SUBMESH
- SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
- aMesh->RemoveSubMesh( aSubMesh );
- }
- else if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
- SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
- aStudyBuilder->RemoveObjectWithChildren( obj );
- }
- else {// default action: remove SObject from the study
- // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
- //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
- //op->start();
- aStudyBuilder->RemoveObjectWithChildren( obj );
- //op->finish();
- }
- }
+ /** Remove an object from data structures **/
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO ));
+ SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO ));
+ if ( !aGroup->_is_nil() ) { // DELETE GROUP
+ SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
+ aMesh->RemoveGroup( aGroup );
+ }
+ else if ( !aSubMesh->_is_nil() ) { // DELETE SUBMESH
+ SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
+ aMesh->RemoveSubMesh( aSubMesh );
+ _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
+ if (aMeshSO)
+ SMESH::ModifiedMesh(aMeshSO, false);
+ }
+ else {
+ IObject = new SALOME_InteractiveObject
+ ( anEntry.c_str(), engineIOR().latin1(), SO->GetName().c_str() );
+ QString objType = CheckTypeObject(IObject);
+ if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
+ SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
+ aStudyBuilder->RemoveObjectWithChildren( SO );
+ }
+ else {// default action: remove SObject from the study
+ // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
+ //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
+ //op->start();
+ aStudyBuilder->RemoveObjectWithChildren( SO );
+ //op->finish();
+ }
+ }
+ } /* listSO back loop */
} /* IObject->hasEntry() */
} /* more/next */
aStudyBuilder->CommitCommand();
}
myActiveDialogBox = 0;
+ myFilterLibraryDlg = 0;
myState = -1;
myDisplayer = 0;
}
break;
}
+ case 417: // Convert mesh to quadratic
+ {
+ startOperation( 417 );
+ /* if (checkLock(aStudy)) break;
+ if (vtkwnd) {
+ EmitSignalDeactivateDialog();
+ new SMESHGUI_ConvToQuadDlg();
+ } else {
+ SUIT_MessageBox::warn1(desktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_OK"));
+ }*/
+ break;
+ }
case 801: // CREATE GROUP
{
if ( !vtkwnd )
aTypes.append( SMESH::FACE );
aTypes.append( SMESH::VOLUME );
}
- new SMESHGUI_FilterLibraryDlg( this, SMESH::GetDesktop( this ), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+ if (!myFilterLibraryDlg)
+ myFilterLibraryDlg = new SMESHGUI_FilterLibraryDlg( this, SMESH::GetDesktop( this ), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+ else if (myFilterLibraryDlg->isHidden())
+ myFilterLibraryDlg->Init( aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+ myFilterLibraryDlg->raise();
}
break;
createSMESHAction( 414, "REVOLUTION", "ICON_REVOLUTION" );
createSMESHAction( 415, "MAP", "ICON_MAP" );
createSMESHAction( 416, "EXTRUSION_ALONG", "ICON_EXTRUSION_ALONG" );
+ createSMESHAction( 417, "CONV_TO_QUAD", "ICON_CONV_TO_QUAD" );
createSMESHAction( 200, "RESET" );
createSMESHAction( 201, "SCALAR_BAR_PROP" );
createSMESHAction( 211, "WIRE", "ICON_WIRE", 0, true );
createMenu( 416, modifyId, -1 );
createMenu( 414, modifyId, -1 );
createMenu( 415, modifyId, -1 );
+ createMenu( 417, modifyId, -1 );
createMenu( 214, viewId, -1 );
createTool( 416, modifyTb );
createTool( 414, modifyTb );
createTool( 415, modifyTb );
+ createTool( 417, modifyTb );
createTool( 214, dispModeTb );
popupMgr()->insert( action( 6003 ), anId, -1 ); // FREE_BORDER
popupMgr()->setRule( action( 6003 ), aMeshInVtkHasEdges, true );
- popupMgr()->setRule( action( 6003 ), "controlMode = 'eFreeEdges'", false );
+ popupMgr()->setRule( action( 6003 ), "controlMode = 'eFreeBorders'", false );
popupMgr()->insert( action( 6001 ), anId, -1 ); // LENGTH
popupMgr()->setRule( action( 6001 ), aMeshInVtkHasEdges, true );
popupMgr()->insert( action( 6002 ), anId, -1 ); // FREE_EDGE
popupMgr()->setRule( action( 6002 ), aMeshInVtkHasFaces, true );
- popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeBorders'", false );
+ popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeEdges'", false );
popupMgr()->insert( action( 6018 ), anId, -1 ); // LENGTH_2D
popupMgr()->setRule( action( 6018 ), aMeshInVtkHasFaces, true );
case 704: // Edit mesh/sub-mesh
op = new SMESHGUI_MeshOp( false );
break;
+ case 417: //convert to quadratic
+ op = new SMESHGUI_ConvToQuadOp();
+ break;
default:
break;
}
class SalomeApp_Study;
class LightApp_SelectionMgr;
+class SMESHGUI_FilterLibraryDlg;
+
//=================================================================================
// class : SMESHGUI
int myState;
QMap<int,QString> myRules;
LightApp_Displayer* myDisplayer;
+
+ SMESHGUI_FilterLibraryDlg* myFilterLibraryDlg;
};
#endif
#include "SMESH_Actor.h"
#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
#include "SVTK_Selection.h"
#include "SVTK_Selector.h"
myPreviewActor->VisibilityOff();
myPreviewActor->SetMapper(myMapper);
- float anRGB[3];
+ vtkFloatingPointType anRGB[3];
vtkProperty* aProp = vtkProperty::New();
GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
}
QString elemName;
- if (myNbNodes == 2)
+ if (myNbNodes == 2) {
elemName = "EDGE";
- else if (myNbNodes == 3)
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_edges";
+ }
+ else if (myNbNodes == 3) {
elemName = "TRIANGLE";
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_triangles";
+ }
else if (myNbNodes == 4)
- if (myElementType == SMDSAbs_Face)
+ if (myElementType == SMDSAbs_Face) {
elemName = "QUADRANGLE";
- else
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_quadrangles";
+ }
+ else {
elemName = "TETRAS";
- else if (myNbNodes == 8)
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_tetrahedrons";
+ }
+ else if (myNbNodes == 8) {
elemName = "HEXAS";
- else if (myElementType == SMDSAbs_Face){
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_hexahedrons";
+ }
+ else if (myElementType == SMDSAbs_Face) {
elemName = "POLYGON";
myIsPoly = true;
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polygons";
+ }
+ else if (myElementType == SMDSAbs_Volume) {
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polyhedrons";
}
QString iconName = tr(QString("ICON_DLG_%1").arg(elemName));
buttonOk->setAutoDefault(TRUE);
buttonOk->setDefault(TRUE);
GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
+
SMESHGUI_AddMeshElementDlgLayout->addWidget(GroupButtons, 2, 0);
/***************************************************************/
connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp()));
connect(SelectButtonC1A1, SIGNAL(clicked()), SLOT(SetEditCurrentArgument()));
connect(LineEditC1A1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
switch (myElementType) {
case SMDSAbs_Edge:
aMeshEditor->AddEdge(anArrayOfIdeces.inout()); break;
- case SMDSAbs_Face:
- aMeshEditor->AddFace(anArrayOfIdeces.inout()); break;
+ case SMDSAbs_Face:{
+ if(myIsPoly)
+ aMeshEditor->AddPolygonalFace(anArrayOfIdeces.inout());
+ else
+ aMeshEditor->AddFace(anArrayOfIdeces.inout());
+ break;
+
+ }
case SMDSAbs_Volume:
aMeshEditor->AddVolume(anArrayOfIdeces.inout()); break;
default:;
return;
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_AddMeshElementDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : onTextChange()
// purpose :
QPushButton * buttonOk;
QPushButton * buttonCancel;
QPushButton * buttonApply;
+ QPushButton * buttonHelp;
QGroupBox * GroupC1;
QLabel * TextLabelC1A1;
QPushButton * SelectButtonC1A1;
QCheckBox * Reverse;
+ QString myHelpFileName;
+
private slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
+// Copyright (C) 2005 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.salome-platform.org/
+//
#include "SMESHGUI_AddQuadraticElementDlg.h"
#include "SMESHGUI.h"
#include "SMESH_Actor.h"
#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
#include "SVTK_Selection.h"
#include "SVTK_Selector.h"
conn = aConn;
break;
}
+ case QUAD_EDGE: {
+ static int aConn[] = {1,0,2};
+ conn = aConn;
+ break;
+ }
+ case QUAD_TRIANGLE: {
+ static int aConn[] = {0,2,1,5,4,3};
+ conn = aConn;
+ break;
+ }
+ case QUAD_QUADRANGLE: {
+ static int aConn[] = {0,3,2,1,7,6,5,4};
+ conn = aConn;
+ break;
+ }
default:;
}
if ( !conn ) {
vtkUnstructuredGrid* myGrid;
//vtkProperty* myBackProp, *myProp;
- float anRGB[3], aBackRGB[3];
+ vtkFloatingPointType myRGB[3], myBackRGB[3];
public:
TElementSimulation (SalomeApp_Application* theApplication)
myPreviewActor->SetMapper(myMapper);
vtkProperty* myProp = vtkProperty::New();
- GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
- myProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
+ GetColor( "SMESH", "fill_color", myRGB[0], myRGB[1], myRGB[2], QColor( 0, 170, 255 ) );
+ myProp->SetColor( myRGB[0], myRGB[1], myRGB[2] );
myPreviewActor->SetProperty( myProp );
myProp->Delete();
vtkProperty* myBackProp = vtkProperty::New();
- GetColor( "SMESH", "backface_color", aBackRGB[0], aBackRGB[1], aBackRGB[2], QColor( 0, 0, 255 ) );
- myBackProp->SetColor( aBackRGB[0], aBackRGB[1], aBackRGB[2] );
+ GetColor( "SMESH", "backface_color", myBackRGB[0], myBackRGB[1], myBackRGB[2], QColor( 0, 0, 255 ) );
+ myBackProp->SetColor( myBackRGB[0], myBackRGB[1], myBackRGB[2] );
myPreviewActor->SetBackfaceProperty( myBackProp );
myBackProp->Delete();
// take care of orientation
if ( aType == VTK_CONVEX_POINT_SET ) {
if ( theReverse && theMode == VTK_SURFACE ) {
- //myPreviewActor->GetProperty()->SetColor( aBackRGB[0], aBackRGB[1], aBackRGB[2] );
+ //myPreviewActor->GetProperty()->SetColor( myBackRGB[0], myBackRGB[1], myBackRGB[2] );
}
}
else {
- // VTK cell connectivity opposites the MED one
- if ( !theReverse ) {
+ // VTK cell connectivity opposites the MED one for volumic elements
+ if ( theIds.size() > 8 ? !theReverse : theReverse ) {
ReverseConnectivity( theIds, theType );
}
}
// restore normal orientation
if ( aType == VTK_CONVEX_POINT_SET ) {
if ( theReverse && theMode == VTK_SURFACE ) {
- //myPreviewActor->GetProperty()->SetColor( anRGB[0], anRGB[1], anRGB[2] );
+ //myPreviewActor->GetProperty()->SetColor( myRGB[0], myRGB[1], myRGB[2] );
}
}
}
buttonOk->setAutoDefault(TRUE);
buttonOk->setDefault(TRUE);
aGroupButtonsLayout->addWidget(buttonOk, 0, 0);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ aGroupButtonsLayout->addWidget(buttonHelp, 0, 4);
aDialogLayout->addWidget(GroupButtons, 2, 0);
case QUAD_EDGE:
aNumRows = 1;
myNbCorners = 2;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_edges
break;
case QUAD_TRIANGLE:
aNumRows = 3;
myNbCorners = 3;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_triangles
break;
case QUAD_QUADRANGLE:
aNumRows = 4;
myNbCorners = 4;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_quadrangles
break;
case QUAD_TETRAHEDRON:
aNumRows = 6;
myNbCorners = 4;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_tetrahedrons
break;
case QUAD_PYRAMID:
aNumRows = 8;
myNbCorners = 5;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pyramids
break;
case QUAD_PENTAHEDRON:
aNumRows = 9;
myNbCorners = 6;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pentahedrons
break;
case QUAD_HEXAHEDRON:
aNumRows = 12;
myNbCorners = 8;
+ myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_hexahedrons
break;
}
connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp()));
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
return;
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : onTextChange()
// purpose :
+// Copyright (C) 2005 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.salome-platform.org/
+//
#ifndef DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
#define DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
-
+ QPushButton * buttonHelp;
+
+ QString myHelpFileName;
+
private slots:
void onTextChange(const QString&);
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCorners() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SUIT_Session.h"
#include "SUIT_OverrideCursor.h"
+#include "SUIT_MessageBox.h"
#include "SALOME_ListIO.hxx"
#include "SALOME_InteractiveObject.hxx"
#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SalomeApp_Application.h"
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "SVTK_Selector.h"
myActor->SetInfinitive(true);
myActor->SetMapper(myMapper);
- float anRGB[3];
+ vtkFloatingPointType anRGB[3];
vtkProperty* aProp = vtkProperty::New();
SMESH::GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
aProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
buttonOk->setAutoDefault(TRUE);
buttonOk->setDefault(TRUE);
GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
SMESHGUI_ClippingDlgLayout->addWidget(GroupPlanes, 0, 0);
SMESHGUI_ClippingDlgLayout->addWidget(GroupParameters, 1, 0);
myIsSelectPlane = false;
onSelectionChanged();
+ myHelpFileName = "clipping.htm";
+
// signals and slots connections :
connect(ComboBoxPlanes, SIGNAL(activated(int)), this, SLOT(onSelectPlane(int)));
connect(buttonNew, SIGNAL(clicked()), this, SLOT(ClickOnNew()));
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
/* to close dialog if study frame change */
close();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_ClippingDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : onSelectionChanged()
// purpose : Called when selection is changed
OrientedPlane* aPlane = myPlanes[aCurPlaneIndex].GetPointer();
- float aNormal[3];
+ vtkFloatingPointType aNormal[3];
SMESH::Orientation anOrientation;
- float aDir[3][3] = {{0, 0, 0}, {0, 0, 0}};
+ vtkFloatingPointType aDir[3][3] = {{0, 0, 0}, {0, 0, 0}};
{
static double aCoeff = vtkMath::Pi()/180.0;
- float aRot[2] = {getRotation1(), getRotation2()};
+ vtkFloatingPointType aRot[2] = {getRotation1(), getRotation2()};
aPlane->myAngle[0] = aRot[0];
aPlane->myAngle[1] = aRot[1];
- float anU[2] = {cos(aCoeff*aRot[0]), cos(aCoeff*aRot[1])};
- float aV[2] = {sqrt(1.0-anU[0]*anU[0]), sqrt(1.0-anU[1]*anU[1])};
+ vtkFloatingPointType anU[2] = {cos(aCoeff*aRot[0]), cos(aCoeff*aRot[1])};
+ vtkFloatingPointType aV[2] = {sqrt(1.0-anU[0]*anU[0]), sqrt(1.0-anU[1]*anU[1])};
aV[0] = aRot[0] > 0? aV[0]: -aV[0];
aV[1] = aRot[1] > 0? aV[1]: -aV[1];
myActor->SetPlaneParam(aNormal, getDistance(), aPlane);
vtkDataSet* aDataSet = myActor->GetInput();
- float *aPnt = aDataSet->GetCenter();
+ vtkFloatingPointType *aPnt = aDataSet->GetCenter();
- float* anOrigin = aPlane->GetOrigin();
- float aDel = aDataSet->GetLength()/2.0;
+ vtkFloatingPointType* anOrigin = aPlane->GetOrigin();
+ vtkFloatingPointType aDel = aDataSet->GetLength()/2.0;
- float aDelta[2][3] = {{aDir[0][0]*aDel, aDir[0][1]*aDel, aDir[0][2]*aDel},
- {aDir[1][0]*aDel, aDir[1][1]*aDel, aDir[1][2]*aDel}};
- float aParam, aPnt0[3], aPnt1[3], aPnt2[3];
+ vtkFloatingPointType aDelta[2][3] = {{aDir[0][0]*aDel, aDir[0][1]*aDel, aDir[0][2]*aDel},
+ {aDir[1][0]*aDel, aDir[1][1]*aDel, aDir[1][2]*aDel}};
+ vtkFloatingPointType aParam, aPnt0[3], aPnt1[3], aPnt2[3];
- float aPnt01[3] = {aPnt[0] - aDelta[0][0] - aDelta[1][0],
- aPnt[1] - aDelta[0][1] - aDelta[1][1],
- aPnt[2] - aDelta[0][2] - aDelta[1][2]};
- float aPnt02[3] = {aPnt01[0] + aNormal[0],
- aPnt01[1] + aNormal[1],
- aPnt01[2] + aNormal[2]};
+ vtkFloatingPointType aPnt01[3] = {aPnt[0] - aDelta[0][0] - aDelta[1][0],
+ aPnt[1] - aDelta[0][1] - aDelta[1][1],
+ aPnt[2] - aDelta[0][2] - aDelta[1][2]};
+ vtkFloatingPointType aPnt02[3] = {aPnt01[0] + aNormal[0],
+ aPnt01[1] + aNormal[1],
+ aPnt01[2] + aNormal[2]};
vtkPlane::IntersectWithLine(aPnt01,aPnt02,aNormal,anOrigin,aParam,aPnt0);
- float aPnt11[3] = {aPnt[0] - aDelta[0][0] + aDelta[1][0],
- aPnt[1] - aDelta[0][1] + aDelta[1][1],
- aPnt[2] - aDelta[0][2] + aDelta[1][2]};
- float aPnt12[3] = {aPnt11[0] + aNormal[0],
- aPnt11[1] + aNormal[1],
- aPnt11[2] + aNormal[2]};
+ vtkFloatingPointType aPnt11[3] = {aPnt[0] - aDelta[0][0] + aDelta[1][0],
+ aPnt[1] - aDelta[0][1] + aDelta[1][1],
+ aPnt[2] - aDelta[0][2] + aDelta[1][2]};
+ vtkFloatingPointType aPnt12[3] = {aPnt11[0] + aNormal[0],
+ aPnt11[1] + aNormal[1],
+ aPnt11[2] + aNormal[2]};
vtkPlane::IntersectWithLine(aPnt11,aPnt12,aNormal,anOrigin,aParam,aPnt1);
- float aPnt21[3] = {aPnt[0] + aDelta[0][0] - aDelta[1][0],
- aPnt[1] + aDelta[0][1] - aDelta[1][1],
- aPnt[2] + aDelta[0][2] - aDelta[1][2]};
- float aPnt22[3] = {aPnt21[0] + aNormal[0],
- aPnt21[1] + aNormal[1],
- aPnt21[2] + aNormal[2]};
+ vtkFloatingPointType aPnt21[3] = {aPnt[0] + aDelta[0][0] - aDelta[1][0],
+ aPnt[1] + aDelta[0][1] - aDelta[1][1],
+ aPnt[2] + aDelta[0][2] - aDelta[1][2]};
+ vtkFloatingPointType aPnt22[3] = {aPnt21[0] + aNormal[0],
+ aPnt21[1] + aNormal[1],
+ aPnt21[2] + aNormal[2]};
vtkPlane::IntersectWithLine(aPnt21,aPnt22,aNormal,anOrigin,aParam,aPnt2);
vtkPlaneSource* aPlaneSource = aPlane->myPlaneSource;
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
bool myIsSelectPlane;
+ QString myHelpFileName;
public slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
};
#endif // DIALOGBOX_TRANSPARENCYDLG_H
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+/**
+* SMESH SMESHGUI
+*
+* Copyright (C) 2005 CEA/DEN, EDF R&D
+*
+*
+*
+* File : SMESHGUI_ConvToQuadDlg.cxx
+* Module : SMESH
+*/
+
+#include <SMESHGUI_ConvToQuadDlg.h>
+#include <SUIT_Session.h>
+
+#include <qgroupbox.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+
+SMESHGUI_ConvToQuadDlg::SMESHGUI_ConvToQuadDlg()
+: SMESHGUI_Dialog( 0, false, true )
+{
+
+ setCaption( tr( "CAPTION" ) );
+
+ // Create top controls
+ QGroupBox* aGrp = new QGroupBox( 3, Qt::Horizontal, mainFrame() );
+ aGrp->setFrameStyle( QFrame::NoFrame );
+ aGrp->setInsideMargin( 0 );
+
+ // mesh
+ createObject( tr( "MESH" ), aGrp, 0 );
+
+ //Create check box
+ myMedNdsOnGeom = new QCheckBox( tr( "MEDIUMNDS" ), mainFrame() );
+
+ //Create RadioButtons
+ myBG = new QButtonGroup( 2, Qt::Vertical, "", mainFrame() );
+ myBG->setExclusive( true );
+
+ myRB1 = new QRadioButton( myBG );
+ myRB1->setText( tr( "RADIOBTN_1" ) );
+ myRB1->setChecked( true );
+
+ myRB2 = new QRadioButton( myBG );
+ myRB2->setText( tr( "RADIOBTN_2" ) );
+
+ // Fill layout
+ QVBoxLayout* aLay = new QVBoxLayout( mainFrame(), 5, 5 );
+ aLay->addWidget( aGrp );
+ aLay->addWidget( myMedNdsOnGeom );
+ aLay->addWidget( myBG );
+
+ connect(myBG, SIGNAL( clicked( int ) ), this, SIGNAL( onClicked( int ) ) );
+}
+
+SMESHGUI_ConvToQuadDlg::~SMESHGUI_ConvToQuadDlg()
+{
+}
+
+bool SMESHGUI_ConvToQuadDlg::IsMediumNdsOnGeom() const
+{
+ return !myMedNdsOnGeom->isChecked();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetMediumNdsOnGeom(const bool theCheck)
+{
+ myMedNdsOnGeom->setChecked(theCheck);
+}
+
+bool SMESHGUI_ConvToQuadDlg::IsEnabledCheck() const
+{
+ return myMedNdsOnGeom->isEnabled();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledCheck( const bool theCheck )
+{
+ myMedNdsOnGeom->setEnabled( theCheck );
+}
+
+int SMESHGUI_ConvToQuadDlg::CurrentRB( )
+{
+ return myBG->selectedId();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledControls( const bool theCheck )
+{
+ myBG->setEnabled( theCheck );
+ myMedNdsOnGeom->setEnabled( theCheck );
+ setButtonEnabled( theCheck, QtxDialog::OK | QtxDialog::Apply );
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledRB( const int idx, const bool theCheck )
+{
+ if(idx)
+ {
+ myRB2->setEnabled( theCheck );
+ myRB1->setEnabled( !theCheck );
+ myRB1->setChecked( true );
+ }
+ else
+ {
+ myRB1->setEnabled( theCheck );
+ myRB2->setEnabled( !theCheck );
+ myRB2->setChecked( true );
+ }
+ emit onClicked( myBG->selectedId() );
+}
+
+
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+/**
+* SMESH SMESHGUI
+*
+* Copyright (C) 2005 CEA/DEN, EDF R&D
+*
+*
+*
+* File : SMESHGUI_ConvToQuadDlg.h
+* Module : SMESH
+*/
+
+
+#ifndef SMESHGUI_ConvToQuadDlg_H
+#define SMESHGUI_ConvToQuadDlg_H
+
+#include "SMESHGUI_Dialog.h"
+/*#include <qframe.h>
+#include <qstringlist.h>
+#include <qmap.h>*/
+
+//idl headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+class QCheckBox;
+class QRadioButton;
+class QButtonGroup;
+
+class SMESHGUI_ConvToQuadDlg : public SMESHGUI_Dialog
+{
+ Q_OBJECT
+
+public:
+ SMESHGUI_ConvToQuadDlg();
+ virtual ~SMESHGUI_ConvToQuadDlg();
+
+ bool IsMediumNdsOnGeom() const;
+ void SetMediumNdsOnGeom(const bool theCheck);
+ bool IsEnabledCheck() const;
+ void SetEnabledCheck( const bool theCheck );
+ void SetEnabledGroup( const bool theCheck );
+ void SetEnabledControls( const bool theCheck );
+ void SetEnabledRB( const int idx, const bool theCheck );
+ int CurrentRB();//returns the ID of the selected toggle button
+
+signals:
+ void onClicked( int );
+
+private:
+
+ QCheckBox* myMedNdsOnGeom;
+ QButtonGroup* myBG;
+ QRadioButton* myRB1;
+ QRadioButton* myRB2;
+
+};
+
+#endif
+
+
+
+
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+/**
+* SMESH SMESHGUI
+*
+* Copyright (C) 2005 CEA/DEN, EDF R&D
+*
+*
+*
+* File : SMESHGUI_ConvToQuadOp.h
+* Module : SMESHGUI
+*/
+
+#include "SMESHGUI_ConvToQuadOp.h"
+#include "SMESHGUI_ConvToQuadDlg.h"
+
+#include "SMESHGUI.h"
+#include "SMESHGUI_Utils.h"
+
+#include "SMESH_TypeFilter.hxx"
+
+#include "SalomeApp_Tools.h"
+
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_UpdateFlags.h"
+
+//================================================================================
+/*!
+ * \brief Constructor
+ *
+ * Initialize operation
+*/
+//================================================================================
+SMESHGUI_ConvToQuadOp::SMESHGUI_ConvToQuadOp()
+ : SMESHGUI_SelectionOp(),
+ myDlg( 0 )
+{
+}
+
+//================================================================================
+/*!
+ * \brief Destructor
+*/
+//================================================================================
+SMESHGUI_ConvToQuadOp::~SMESHGUI_ConvToQuadOp()
+{
+ if ( myDlg )
+ delete myDlg;
+}
+
+//================================================================================
+/*!
+ * \brief Gets dialog of this operation
+ * \retval LightApp_Dialog* - pointer to dialog of this operation
+*/
+//================================================================================
+LightApp_Dialog* SMESHGUI_ConvToQuadOp::dlg() const
+{
+ return myDlg;
+}
+
+//================================================================================
+/*!
+ * \brief Creates dialog if necessary and shows it
+ *
+ * Virtual method redefined from base class called when operation is started creates
+ * dialog if necessary and shows it, activates selection
+ */
+//================================================================================
+void SMESHGUI_ConvToQuadOp::startOperation()
+{
+ if( !myDlg )
+ {
+ myDlg = new SMESHGUI_ConvToQuadDlg( );
+ }
+ connect( myDlg, SIGNAL( onClicked( int ) ), SLOT( ConnectRadioButtons( int ) ) );
+
+ SMESHGUI_SelectionOp::startOperation();
+
+ myDlg->SetMediumNdsOnGeom( false );
+ myDlg->activateObject( 0 );
+ myDlg->show();
+
+ selectionDone();
+}
+
+//================================================================================
+/*!
+ * \brief Updates dialog's look and feel
+ *
+ * Virtual method redefined from the base class updates dialog's look and feel
+ */
+//================================================================================
+void SMESHGUI_ConvToQuadOp::selectionDone()
+{
+ if ( !dlg()->isShown() )
+ return;
+
+ SMESHGUI_SelectionOp::selectionDone();
+ try
+ {
+ QString anMeshEntry = myDlg->selectedObject( 0 );
+ _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+ if ( !pMesh ) return;
+
+ SMESH::SMESH_Mesh_var mesh =
+ SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
+
+ if( mesh->_is_nil() )
+ {
+ myDlg->SetEnabledControls( false );
+ }
+ else if( ConsistMesh( mesh ) == SMESHGUI_ConvToQuadOp::Quadratic )
+ {
+ myDlg->SetEnabledRB( 0, false );
+ }
+ else if( ConsistMesh( mesh ) == SMESHGUI_ConvToQuadOp::Linear )
+ {
+ myDlg->SetEnabledRB( 1, false );
+ }
+ else
+ {
+ myDlg->SetEnabledControls( true );
+ }
+ }
+ catch ( const SALOME::SALOME_Exception& S_ex )
+ {
+ SalomeApp_Tools::QtCatchCorbaException( S_ex );
+ }
+ catch ( ... )
+ {
+ }
+}
+
+//================================================================================
+/*!
+ * \brief Creates selection filter
+ * \param theId - identifier of current selection widget
+ * \retval SUIT_SelectionFilter* - pointer to the created filter or null
+ *
+ * Creates selection filter in accordance with identifier of current selection widget
+ */
+//================================================================================
+SUIT_SelectionFilter* SMESHGUI_ConvToQuadOp::createFilter( const int theId ) const
+{
+ if ( theId == 0 )
+ return new SMESH_TypeFilter( MESH );
+ else
+ return 0;
+}
+
+//================================================================================
+/*!
+ * \brief Edits mesh
+ *
+ * Virtual slot redefined from the base class called when "Apply" button is clicked
+ */
+//================================================================================
+bool SMESHGUI_ConvToQuadOp::onApply()
+{
+
+ QString aMess;
+
+ QString anMeshEntry = myDlg->selectedObject( 0 );
+ _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+ if ( !pMesh )
+ {
+ dlg()->show();
+ SUIT_MessageBox::warn1( myDlg,
+ tr( "SMESH_WRN_WARNING" ), tr("MESH_IS_NOT_SELECTED"), tr( "SMESH_BUT_OK" ) );
+
+ return false;
+ }
+
+ SMESH::SMESH_Mesh_var mesh =
+ SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
+
+ if( CORBA::is_nil(mesh) )
+ {
+ SUIT_MessageBox::warn1( myDlg,
+ tr( "SMESH_WRN_WARNING" ), tr("REF_IS_NULL"), tr( "SMESH_BUT_OK" ) );
+
+ return false;
+ }
+
+ bool aResult = false;
+
+ try
+ {
+ SMESH::SMESH_MeshEditor_var aEditor = mesh->GetMeshEditor();
+ if( !myDlg->CurrentRB() )
+ {
+ bool aParam = true;
+ if( myDlg->IsEnabledCheck() )
+ aParam = myDlg->IsMediumNdsOnGeom();
+
+ aEditor->ConvertToQuadratic( aParam );
+ aResult = true;
+ }
+ else
+ {
+ aResult = aEditor->ConvertFromQuadratic();
+ }
+ }
+ catch ( const SALOME::SALOME_Exception& S_ex )
+ {
+ SalomeApp_Tools::QtCatchCorbaException( S_ex );
+ aResult = false;
+ }
+ catch ( ... )
+ {
+ aResult = false;
+ }
+ if( aResult )
+ {
+ update( UF_ObjBrowser | UF_Model | UF_Viewer );
+ selectionDone();
+ }
+ return aResult;
+}
+
+//================================================================================
+/*! ConsistMesh
+ * Determines, what elements this mesh contains.
+ */
+//================================================================================
+SMESHGUI_ConvToQuadOp::MeshType SMESHGUI_ConvToQuadOp::ConsistMesh( const SMESH::SMESH_Mesh_var& mesh) const
+{
+ int nbAllElem = 0, nbQEdges =0, nbQFaces =0, nbQVolum = 0;
+ int nbEdges = 0, nbFaces = 0, nbVolum = 0;
+
+ nbAllElem = (int)mesh->NbElements();
+ nbQEdges = (int)mesh->NbEdgesOfOrder(SMESH::ORDER_QUADRATIC);
+ nbQFaces = (int)mesh->NbFacesOfOrder(SMESH::ORDER_QUADRATIC);
+ nbQVolum = (int)mesh->NbVolumesOfOrder(SMESH::ORDER_QUADRATIC);
+
+ nbEdges = (int)mesh->NbEdgesOfOrder(SMESH::ORDER_LINEAR);
+ nbFaces = (int)mesh->NbFacesOfOrder(SMESH::ORDER_LINEAR);
+ nbVolum = (int)mesh->NbVolumesOfOrder(SMESH::ORDER_LINEAR);
+
+ if( nbAllElem == (nbQEdges+nbQFaces+nbQVolum) )
+ return SMESHGUI_ConvToQuadOp::Quadratic;
+ else if ( nbAllElem == (nbEdges+nbFaces+nbVolum) )
+ return SMESHGUI_ConvToQuadOp::Linear;
+ else
+ return SMESHGUI_ConvToQuadOp::Comp;
+}
+
+
+void SMESHGUI_ConvToQuadOp::ConnectRadioButtons( int id )
+{
+ QString anMeshEntry = myDlg->selectedObject( 0 );
+ _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+ if ( !pMesh ) return;
+
+ SMESH::SMESH_Mesh_var mesh =
+ SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
+
+ GEOM::GEOM_Object_var mainGeom;
+ mainGeom = mesh->GetShapeToMesh();
+
+ if( id || mainGeom->_is_nil() )
+ myDlg->SetEnabledCheck( false );
+ else
+ myDlg->SetEnabledCheck( true );
+}
+
+
--- /dev/null
+// Copyright (C) 2005 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.salome-platform.org/
+//
+/**
+* SMESH SMESHGUI
+*
+* Copyright (C) 2005 CEA/DEN, EDF R&D
+*
+*
+*
+* File : SMESHGUI_ConvToQuadOp.h
+* Module : SMESHGUI
+*/
+
+#ifndef SMESHGUI_ConvToQuadOp_H
+#define SMESHGUI_ConvToQuadOp_H
+
+#include <SMESHGUI_SelectionOp.h>
+//#include <qstringlist.h>
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+class SMESHGUI_ConvToQuadDlg;
+
+class SMESHGUI_ConvToQuadOp : public SMESHGUI_SelectionOp
+{
+ Q_OBJECT
+
+public:
+enum MeshType{ Comp = 0, Linear, Quadratic };
+
+public:
+ SMESHGUI_ConvToQuadOp();
+ virtual ~SMESHGUI_ConvToQuadOp();
+
+ virtual LightApp_Dialog* dlg() const;
+
+protected:
+ virtual void startOperation();
+ virtual void selectionDone();
+ virtual SUIT_SelectionFilter* createFilter( const int ) const;
+ MeshType ConsistMesh( const SMESH::SMESH_Mesh_var& ) const;
+
+protected slots:
+ virtual bool onApply();
+ void ConnectRadioButtons( int);
+
+private:
+ SMESHGUI_ConvToQuadDlg* myDlg;
+};
+
+#endif
+
+++ /dev/null
-// SMESH SMESHGUI : GUI for SMESH component
-//
-// Copyright (C) 2003 CEA
-//
-// 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SMESHGUI_CreateHypothesesDlg.cxx
-// Author : Julia DOROVSKIKH
-// Module : SMESH
-// $Header$
-
-#include "SMESHGUI_CreateHypothesesDlg.h"
-
-#include "SMESHGUI_HypothesesUtils.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qlistview.h>
-#include <qheader.h>
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_CreateHypothesesDlg()
-// purpose : Constructs a SMESHGUI_CreateHypothesesDlg which is a child of 'parent', with the
-// name 'name' and widget flags set to 'f'.
-// The dialog will by default be modeless, unless you set 'modal' to
-// TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_CreateHypothesesDlg::SMESHGUI_CreateHypothesesDlg (SMESHGUI* theModule,
- const char* name,
- bool modal,
- bool isAlgo)
- : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
- WStyle_Title | WStyle_SysMenu | WDestructiveClose),
- myIsAlgo(isAlgo),
- mySMESHGUI( theModule )
-{
- if (!name)
- setName("SMESHGUI_CreateHypothesesDlg");
- setCaption(isAlgo ? tr("SMESH_CREATE_ALGORITHMS" ) : tr("SMESH_CREATE_HYPOTHESES" ));
- setSizeGripEnabled(TRUE);
-
- QGridLayout* SMESHGUI_CreateHypothesesDlgLayout = new QGridLayout(this);
- SMESHGUI_CreateHypothesesDlgLayout->setSpacing(6);
- SMESHGUI_CreateHypothesesDlgLayout->setMargin(11);
-
- /***************************************************************/
- GroupAlgorithms = new QGroupBox(this, "GroupAlgorithms");
- GroupAlgorithms->setTitle(isAlgo ? tr("SMESH_AVAILABLE_ALGORITHMS") : tr("SMESH_AVAILABLE_HYPOTHESES"));
- GroupAlgorithms->setColumnLayout(0, Qt::Vertical);
- GroupAlgorithms->layout()->setSpacing(0);
- GroupAlgorithms->layout()->setMargin(0);
-
- QGridLayout* hypLayout = new QGridLayout(GroupAlgorithms->layout());
- hypLayout->setGeometry(QRect(12, 18, 139, 250));
- hypLayout->setAlignment(Qt::AlignTop);
- hypLayout->setSpacing(6);
- hypLayout->setMargin(11);
-
- ListAlgoDefinition = new QListView(GroupAlgorithms, "ListAlgoDefinition");
- ListAlgoDefinition->setMinimumSize(400, 200);
- ListAlgoDefinition->addColumn("");
- ListAlgoDefinition->header()->hide();
- ListAlgoDefinition->setSelectionMode(QListView::Single);
- ListAlgoDefinition->setResizeMode(QListView::AllColumns);
- ListAlgoDefinition->setRootIsDecorated(true);
-
- hypLayout->addWidget(ListAlgoDefinition, 0, 0);
- SMESHGUI_CreateHypothesesDlgLayout->addWidget(GroupAlgorithms, 0, 0);
-
- /***************************************************************/
- GroupButtons = new QGroupBox(this, "GroupButtons");
- GroupButtons->setColumnLayout(0, Qt::Vertical);
- GroupButtons->layout()->setSpacing(0);
- GroupButtons->layout()->setMargin(0);
- QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
- GroupButtonsLayout->setAlignment(Qt::AlignTop);
- GroupButtonsLayout->setSpacing(6);
- GroupButtonsLayout->setMargin(11);
-
- buttonApply = new QPushButton(GroupButtons, "buttonApply");
- buttonApply->setText(tr("SMESH_BUT_CREATE" ));
- buttonApply->setAutoDefault(TRUE);
- buttonApply->setDefault(FALSE);
- buttonApply->setEnabled(FALSE);
- GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
- QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
- GroupButtonsLayout->addItem(spacer_9, 0, 2);
-
- buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
- buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
- buttonCancel->setAutoDefault(TRUE);
- buttonCancel->setDefault(TRUE);
- buttonCancel->setEnabled(TRUE);
- GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
- SMESHGUI_CreateHypothesesDlgLayout->addWidget(GroupButtons, 1, 0);
- /***************************************************************/
-
- Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_CreateHypothesesDlg()
-// purpose : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_CreateHypothesesDlg::~SMESHGUI_CreateHypothesesDlg()
-{
- // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::Init()
-{
- mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
- InitAlgoDefinition();
-
- /* signals and slots connections */
- connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
- connect(buttonApply , SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-
-// connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
- connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
- connect(ListAlgoDefinition, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged()));
- connect(ListAlgoDefinition, SIGNAL(doubleClicked(QListViewItem*)), this, SLOT(onDoubleClicked(QListViewItem*)));
-
- this->show();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ClickOnCancel()
-{
- close();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ClickOnApply()
-{
- if (mySMESHGUI->isActiveStudyLocked())
- return;
- QListViewItem* item = ListAlgoDefinition->selectedItem();
- if (!item)
- return;
- QString aHypType = item->text(1);
- MESSAGE("Apply " << aHypType);
- char* sHypType = (char*)aHypType.latin1();
-
- HypothesisData* aHypData = SMESH::GetHypothesisData(sHypType);
- if (!aHypData)
- return;
- QString aClientLibName = aHypData->ClientLibName;
- MESSAGE("Client lib name = " << aClientLibName);
-
- if (aClientLibName == "") {
- // Call hypothesis creation server method (without GUI)
- QString aHypName = aHypData->Label;
- SMESH::CreateHypothesis(sHypType, aHypName, myIsAlgo);
- } else {
- // Get hypotheses creator client (GUI)
- SMESHGUI_GenericHypothesisCreator* aCreator =
- SMESH::GetHypothesisCreator(sHypType);
-
- if( aCreator )
- // Create hypothesis/algorithm
- aCreator->create( myIsAlgo, this );
- else
- {
- // report about error
- }
- }
-
-// buttonApply->setEnabled(FALSE);
- return;
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ActivateThisDialog()
-{
- mySMESHGUI->EmitSignalDeactivateDialog();
- GroupButtons->setEnabled(true);
- return;
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::enterEvent (QEvent*)
-{
- ActivateThisDialog();
- return;
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::closeEvent (QCloseEvent* e)
-{
- mySMESHGUI->ResetState();
- QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : onSelectionChanged()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::onSelectionChanged()
-{
- QListViewItem* item = ListAlgoDefinition->selectedItem();
- buttonApply->setEnabled(item && item->depth() > 0);
-}
-
-//=================================================================================
-// function : onDoubleClicked()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::onDoubleClicked (QListViewItem* i)
-{
- if (i && i->depth() > 0)
- this->ClickOnApply();
-}
-
-//=================================================================================
-// function : InitAlgoDefinition()
-// purpose :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::InitAlgoDefinition()
-{
- ListAlgoDefinition->clear();
- QStringList HypList = SMESH::GetAvailableHypotheses(myIsAlgo);
- for (int i = 0; i < HypList.count(); ++i) {
- HypothesisData* aHypData = SMESH::GetHypothesisData(HypList[i]);
- QListViewItem* parentItem = 0;
- QListViewItem* childItem = ListAlgoDefinition->firstChild();
- while (childItem) {
- if (childItem->text(0) == aHypData->PluginName) {
- parentItem = childItem;
- break;
- }
- childItem = childItem->nextSibling();
- }
- if (!parentItem)
- parentItem = new QListViewItem(ListAlgoDefinition, aHypData->PluginName);
- parentItem->setOpen(true);
- QListViewItem* aItem = new QListViewItem(parentItem, aHypData->Label, HypList[i]);
- QPixmap aPixMap (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr(aHypData->IconId)));
- if (!aPixMap.isNull())
- aItem->setPixmap(0, aPixMap);
- }
-}
+++ /dev/null
-// SMESH SMESHGUI : GUI for SMESH component
-//
-// Copyright (C) 2003 CEA
-//
-// 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SMESHGUI_CreateHypothesesDlg.h
-// Author : Julia DOROVSKIKH
-// Module : SMESH
-// $Header$
-
-#ifndef DIALOGBOX_CREATE_HYPOTHESES_H
-#define DIALOGBOX_CREATE_HYPOTHESES_H
-
-// QT Includes
-#include <qvariant.h>
-#include <qdialog.h>
-#include <qstringlist.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <map>
-#include <string>
-
-class QButtonGroup;
-class QGroupBox;
-class QPushButton;
-class QListView;
-class QListViewItem;
-class SMESHGUI;
-
-//=================================================================================
-// class : SMESHGUI_CreateHypothesesDlg
-// purpose :
-//=================================================================================
-class SMESHGUI_CreateHypothesesDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- SMESHGUI_CreateHypothesesDlg (SMESHGUI*,
- const char* name = 0,
- bool modal = FALSE,
- bool isAlgo = FALSE);
- ~SMESHGUI_CreateHypothesesDlg ();
-
-private:
-
- void Init() ;
- void closeEvent( QCloseEvent* e ) ;
- void enterEvent ( QEvent * ) ;
-
- void InitAlgoDefinition();
-
- SMESHGUI* mySMESHGUI;
- bool myIsAlgo;
-
- QGroupBox* GroupButtons;
- QPushButton* buttonCancel;
- QPushButton* buttonApply;
-
- QGroupBox* GroupAlgorithms;
- QListView* ListAlgoDefinition;
-
-private slots:
-
- void ClickOnCancel();
- void ClickOnApply();
- void ActivateThisDialog() ;
-
- void onSelectionChanged();
- void onDoubleClicked(QListViewItem*);
-};
-
-#endif // DIALOGBOX_CREATE_HYPOTHESES_H
#include "SUIT_ResourceMgr.h"\r
#include "SUIT_Desktop.h"\r
#include "SUIT_FileDlg.h"\r
+#include "SUIT_Session.h"\r
+#include "SUIT_MessageBox.h"\r
\r
#include "SalomeApp_Study.h"\r
+#include "LightApp_Application.h"\r
#include "LightApp_DataOwner.h"\r
#include "LightApp_SelectionMgr.h"\r
#include "SalomeApp_Tools.h"\r
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
mySelector = aViewWindow->GetSelector();\r
\r
+ myHelpFileName = "pattern_mapping.htm";\r
+\r
Init(theType);\r
}\r
\r
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);\r
mySaveBtn = new QPushButton(tr("SAVE" ), aFrame);\r
myCloseBtn = new QPushButton(tr("SMESH_BUT_CANCEL"), aFrame);\r
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);\r
\r
QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);\r
\r
aLay->addWidget(mySaveBtn);\r
aLay->addItem(aSpacer);\r
aLay->addWidget(myCloseBtn);\r
+ aLay->addWidget(myHelpBtn);\r
\r
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));\r
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));\r
connect(mySaveBtn, SIGNAL(clicked()), SLOT(onSave()));\r
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));\r
\r
return aFrame;\r
}\r
emit Close();\r
}\r
\r
+//=================================================================================\r
+// function : onHelp()\r
+// purpose :\r
+//=================================================================================\r
+void SMESHGUI_CreatePatternDlg::onHelp()\r
+{\r
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());\r
+ if (app) \r
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);\r
+ else {\r
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),\r
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").\r
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),\r
+ QObject::tr("BUT_OK"));\r
+ }\r
+}\r
+\r
//=======================================================================\r
// function : loadFromObject()\r
// purpose : Load pattern from geom object corresponding to the mesh/submesh\r
if (aCode == SMESH::SMESH_Pattern::ERR_LOAD_EMPTY_SUBMESH ) aMess = tr("ERR_LOAD_EMPTY_SUBMESH");\r
else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_NARROW_FACE ) aMess = tr("ERR_LOADF_NARROW_FACE");\r
else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CLOSED_FACE ) aMess = tr("ERR_LOADF_CLOSED_FACE");\r
+ else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CANT_PROJECT ) aMess = tr("ERR_LOADF_CANT_PROJECT");\r
else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_BAD_SHAPE ) aMess = tr("ERR_LOADV_BAD_SHAPE");\r
else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_COMPUTE_PARAMS) aMess = tr("ERR_LOADV_COMPUTE_PARAMS");\r
else aMess = tr("ERROR_OF_CREATION");\r
void onOk();
void onSave();
void onClose();
+ void onHelp();
void onDeactivate();
QPushButton* myOkBtn;
QPushButton* mySaveBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
QButtonGroup* myTypeGrp;
QRadioButton* mySwitch2d;
SMESH::SMESH_Pattern_var myPattern;
bool myIsLoaded;
+
+ QString myHelpFileName;
};
#endif
#include "SMDS_Mesh.hxx"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "SalomeApp_Application.h"
#include "SalomeApp_Study.h"
#include "SUIT_Desktop.h"
#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "utilities.h"
myPreviewActor->SetMapper( myMapper );
myPreviewActor->SetRepresentation( 3 );
- float anRGB[3];
+ vtkFloatingPointType anRGB[3];
vtkProperty* aProp = vtkProperty::New();
GetColor( "SMESH", "selection_element_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
aProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
myPreviewActor->SetProperty( aProp );
- float aFactor,aUnits;
+ vtkFloatingPointType aFactor,aUnits;
myPreviewActor->SetResolveCoincidentTopology(true);
myPreviewActor->GetPolygonOffsetParameters(aFactor,aUnits);
myPreviewActor->SetPolygonOffsetParameters(aFactor,0.2*aUnits);
buttonOk->setAutoDefault( TRUE );
buttonOk->setDefault( TRUE );
GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
+
SMESHGUI_CreatePolyhedralVolumeDlgLayout->addWidget( GroupButtons, 2, 0 );
/***************************************************************/
RadioButton1->setChecked( TRUE );
mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
+
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polyhedrons?";
Init();
}
connect(buttonOk, SIGNAL( clicked() ), SLOT( ClickOnOk() ) );
connect(buttonCancel, SIGNAL( clicked() ), SLOT( ClickOnCancel() ) ) ;
connect(buttonApply, SIGNAL( clicked() ), SLOT(ClickOnApply() ) );
+ connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp() ) );
connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
connect(SelectElementsButton, SIGNAL( clicked() ), SLOT( SetEditCurrentArgument() ) ) ;
reject() ;
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
//function : onTextChange
//purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupContent;
QLabel* TextLabelIds;
QPushButton* SelectElementsButton;
QLabel* myFacesByNodesLabel;
QPushButton* AddButton;
QPushButton* RemoveButton;
+
+ QString myHelpFileName;
public slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SMESH_TypeFilter.hxx"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "SALOME_ListIO.hxx"
aDlgLay->setStretchFactor(aMainFrame, 1);
+ myHelpFileName = "deleting_groups.htm";
+
Init();
}
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);
myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
aLay->addWidget(myApplyBtn);
aLay->addItem(aSpacer);
aLay->addWidget(myCloseBtn);
+ aLay->addWidget(myHelpBtn);
// connect signals and slots
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
return aFrame;
}
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_DeleteGroupDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : onSelectionDone()
// purpose : SLOT called when selection changed
void onOk();
bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
QPushButton* myOkBtn;
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
QListBox* myListBox;
SMESHGUI* mySMESHGUI;
QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
bool myBlockSelection;
+
+ QString myHelpFileName;
};
#endif
Q_OBJECT
public:
- SMESHGUI_Dialog( QWidget* = 0, const bool = false, const bool = false, const int = OK | Close | Apply );
+ SMESHGUI_Dialog( QWidget* = 0, const bool = false, const bool = false, const int = OK | Close | Apply | Help );
virtual ~SMESHGUI_Dialog();
virtual void show();
+++ /dev/null
-// SMESH SMESHGUI : GUI for SMESH component
-//
-// 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 : SMESHGUI_EditHypothesesDlg.cxx
-// Author : Nicolas REJNERI
-// Module : SMESH
-// $Header$
-
-#include "SMESHGUI_EditHypothesesDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOMEDSClient_AttributeIOR.hxx"
-#include "SALOMEDSClient_AttributeName.hxx"
-
-#include "SUIT_Session.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Operation.h"
-#include "SUIT_Desktop.h"
-
-#include "utilities.h"
-
-#include "SVTK_ViewModel.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-//VRV: porting on Qt 3.0.5
-#if QT_VERSION >= 0x030005
-#include <qlistbox.h>
-#endif
-//VRV: porting on Qt 3.0.5
-
-class ListBoxIOR : public QListBoxText
-{
-public:
- enum { RTTI_IOR = 1000 };
-
-public:
- ListBoxIOR (QListBox* listbox,
- const char* ior,
- const QString& text = QString::null)
- : QListBoxText(listbox, text), myIOR(ior) {}
- virtual ~ListBoxIOR() {};
- virtual int rtti() const { return RTTI_IOR; }
- const char* GetIOR() { return myIOR.c_str(); }
-
-private:
- string myIOR;
-};
-
-#define ALLOW_CHANGE_SHAPE 0
-
-int findItem (QListBox* listBox, const string& ior)
-{
- for (int i = 0; i < listBox->count(); i++) {
- if (listBox->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
- ListBoxIOR* anItem = (ListBoxIOR*)(listBox->item(i));
- if (anItem && ior == string(anItem->GetIOR()))
- return i;
- }
- }
- return -1;
-}
-
-//=================================================================================
-// function : SMESHGUI_EditHypothesesDlg()
-// purpose : Constructs a SMESHGUI_EditHypothesesDlg which is a child of 'parent', with the
-// name 'name' and widget flags set to 'f'.
-// The dialog will by default be modeless, unless you set 'modal' to
-// TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_EditHypothesesDlg::SMESHGUI_EditHypothesesDlg (SMESHGUI* theModule, const char* name,
- bool modal, WFlags fl)
- : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
- WStyle_Title | WStyle_SysMenu | WDestructiveClose),
- myImportedMesh(false),
- mySMESHGUI( theModule ),
- mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
- QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
- if (!name)
- setName("SMESHGUI_EditHypothesesDlg");
- setCaption(tr("SMESH_EDIT_HYPOTHESES"));
- setSizeGripEnabled(TRUE);
- QGridLayout* SMESHGUI_EditHypothesesDlgLayout = new QGridLayout(this);
- SMESHGUI_EditHypothesesDlgLayout->setSpacing(6);
- SMESHGUI_EditHypothesesDlgLayout->setMargin(11);
-
- /***************************************************************/
- GroupC1 = new QGroupBox(tr("SMESH_ARGUMENTS"), this, "GroupC1");
- GroupC1->setColumnLayout(0, Qt::Vertical);
- GroupC1->layout()->setSpacing(0);
- GroupC1->layout()->setMargin(0);
- QGridLayout* GroupC1Layout = new QGridLayout(GroupC1->layout());
- GroupC1Layout->setAlignment(Qt::AlignTop);
- GroupC1Layout->setSpacing(6);
- GroupC1Layout->setMargin(11);
-
- TextLabelC1A1 = new QLabel(tr("SMESH_OBJECT_MESHorSUBMESH"), GroupC1, "TextLabelC1A1");
- GroupC1Layout->addWidget(TextLabelC1A1, 0, 0);
- SelectButtonC1A1 = new QPushButton(GroupC1, "SelectButtonC1A1");
- SelectButtonC1A1->setPixmap(image0);
- GroupC1Layout->addWidget(SelectButtonC1A1, 0, 1);
- LineEditC1A1 = new QLineEdit(GroupC1, "LineEditC1A1");
- LineEditC1A1->setReadOnly(true);
- GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
-
- TextLabelC1A2 = new QLabel(tr("SMESH_OBJECT_GEOM"), GroupC1, "TextLabelC1A2");
- GroupC1Layout->addWidget(TextLabelC1A2, 1, 0);
- SelectButtonC1A2 = new QPushButton(GroupC1, "SelectButtonC1A2");
- SelectButtonC1A2->setPixmap(image0);
- SelectButtonC1A2->setToggleButton(FALSE);
- GroupC1Layout->addWidget(SelectButtonC1A2, 1, 1);
- LineEditC1A2 = new QLineEdit(GroupC1, "LineEditC1A2");
- LineEditC1A2->setReadOnly(true);
- GroupC1Layout->addWidget(LineEditC1A2, 1, 2);
-
- SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupC1, 0, 0);
-
- /***************************************************************/
- GroupHypotheses = new QGroupBox(tr("SMESH_HYPOTHESES"), this, "GroupHypotheses");
- GroupHypotheses->setColumnLayout(0, Qt::Vertical);
- GroupHypotheses->layout()->setSpacing(0);
- GroupHypotheses->layout()->setMargin(0);
- QGridLayout* grid_3 = new QGridLayout(GroupHypotheses->layout());
- grid_3->setAlignment(Qt::AlignTop);
- grid_3->setSpacing(6);
- grid_3->setMargin(11);
-
- TextHypDefinition = new QLabel(tr("SMESH_AVAILABLE"), GroupHypotheses, "TextHypDefinition");
- grid_3->addWidget(TextHypDefinition, 0, 0);
-
- ListHypDefinition = new QListBox(GroupHypotheses, "ListHypDefinition");
- ListHypDefinition->setMinimumSize(100, 100);
- grid_3->addWidget(ListHypDefinition, 1, 0);
-
- TextHypAssignation = new QLabel(tr("SMESH_EDIT_USED"), GroupHypotheses, "TextHypAssignation");
- grid_3->addWidget(TextHypAssignation, 0, 1);
-
- ListHypAssignation = new QListBox(GroupHypotheses, "ListHypAssignation");
- ListHypAssignation->setMinimumSize(100, 100);
- grid_3->addWidget(ListHypAssignation, 1, 1);
-
- SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupHypotheses, 1, 0);
-
- /***************************************************************/
- GroupAlgorithms = new QGroupBox(tr("SMESH_ADD_ALGORITHM"), this, "GroupAlgorithms");
- GroupAlgorithms->setColumnLayout(0, Qt::Vertical);
- GroupAlgorithms->layout()->setSpacing(0);
- GroupAlgorithms->layout()->setMargin(0);
- QGridLayout* grid_4 = new QGridLayout(GroupAlgorithms->layout());
- grid_4->setAlignment(Qt::AlignTop);
- grid_4->setSpacing(6);
- grid_4->setMargin(11);
-
- TextAlgoDefinition = new QLabel(tr("SMESH_AVAILABLE"), GroupAlgorithms, "TextAlgoDefinition");
- grid_4->addWidget(TextAlgoDefinition, 0, 0);
-
- ListAlgoDefinition = new QListBox(GroupAlgorithms, "ListAlgoDefinition");
- ListAlgoDefinition->setMinimumSize(100, 100);
- grid_4->addWidget(ListAlgoDefinition, 1, 0);
-
- TextAlgoAssignation = new QLabel(tr("SMESH_EDIT_USED"), GroupAlgorithms, "TextAlgoAssignation");
- grid_4->addWidget(TextAlgoAssignation, 0, 1);
-
- ListAlgoAssignation = new QListBox(GroupAlgorithms, "ListAlgoAssignation");
- ListAlgoAssignation ->setMinimumSize(100, 100);
- grid_4->addWidget(ListAlgoAssignation, 1, 1);
-
- SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupAlgorithms, 2, 0);
-
- /***************************************************************/
- GroupButtons = new QGroupBox(this, "GroupButtons");
- GroupButtons->setColumnLayout(0, Qt::Vertical);
- GroupButtons->layout()->setSpacing(0);
- GroupButtons->layout()->setMargin(0);
- QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
- GroupButtonsLayout->setAlignment(Qt::AlignTop);
- GroupButtonsLayout->setSpacing(6);
- GroupButtonsLayout->setMargin(11);
-
- buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons, "buttonOk");
- buttonOk->setAutoDefault(TRUE);
- buttonOk->setDefault(FALSE);
- GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
- buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons, "buttonApply");
- buttonApply->setAutoDefault(TRUE);
- buttonApply->setDefault(FALSE);
- GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
- GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
-
- buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons, "buttonCancel");
- buttonCancel->setAutoDefault(TRUE);
- buttonCancel->setDefault(TRUE);
- buttonCancel->setEnabled(TRUE);
- GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
- SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupButtons, 4, 0);
-
- /***************************************************************/
- Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_EditHypothesesDlg()
-// purpose : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_EditHypothesesDlg::~SMESHGUI_EditHypothesesDlg()
-{
- // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::Init()
-{
- mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
- InitHypDefinition();
- InitAlgoDefinition();
-
- //myGeomFilter = new SALOME_TypeFilter ("GEOM");
- TColStd_MapOfInteger allTypesMap;
- for (int i = 0; i < 10; i++)
- allTypesMap.Add(i);
- myGeomFilter = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, 0, allTypesMap);
- myMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-
- myGeomShape = GEOM::GEOM_Object::_nil();
- myMesh = SMESH::SMESH_Mesh::_nil();
- mySubMesh = SMESH::SMESH_subMesh::_nil();
-
- /* signals and slots connections */
- connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
- connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
- connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-
- connect(SelectButtonC1A1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
- connect(SelectButtonC1A2, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-
- connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
- connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
- connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
- connect(ListHypAssignation, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(removeItem(QListBoxItem*)));
- connect(ListAlgoAssignation, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(removeItem(QListBoxItem*)));
-
- connect(ListHypDefinition, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(addItem(QListBoxItem*)));
- connect(ListAlgoDefinition, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(addItem(QListBoxItem*)));
-
- this->show();
-
- LineEditC1A1->setFocus();
- myEditCurrentArgument = LineEditC1A1;
- mySelectionMgr->clearFilters();
- mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
-
- SelectionIntoArgument();
-
- UpdateControlState();
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ClickOnOk()
-{
- if (ClickOnApply())
- ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::ClickOnApply()
-{
- if (mySMESHGUI->isActiveStudyLocked())
- return false;
-
- bool aRes = false;
-
- SUIT_OverrideCursor wc;
-
- SUIT_Operation* op = new SUIT_Operation
- (SUIT_Session::session()->activeApplication());
-
- // start transaction
- op->start();
-
- if (!myMesh->_is_nil())
- aRes = StoreMesh();
- else if (!mySubMesh->_is_nil())
- aRes = StoreSubMesh();
-
- if (true/*aRes*/) { // abort desynchronizes contents of a Study and a mesh on server
- // commit transaction
- op->commit();
- InitHypAssignation();
- InitAlgoAssignation();
- } else {
- // abort transaction
- op->abort();
- }
-
- UpdateControlState();
- mySMESHGUI->updateObjBrowser();
-
- return aRes;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ClickOnCancel()
-{
- close();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::SelectionIntoArgument()
-{
- QString aString = "";
-
- SALOME_ListIO aList;
- mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
- int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
- if (myEditCurrentArgument == LineEditC1A1) {
- if (nbSel != 1) {
- myMesh = SMESH::SMESH_Mesh::_nil();
- mySubMesh = SMESH::SMESH_subMesh::_nil();
- aString = "";
- } else {
- Handle(SALOME_InteractiveObject) IO = aList.First();
- myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
- if (myMesh->_is_nil()) {
- mySubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
- if (mySubMesh->_is_nil()) {
- aString = "";
- }
- }
- }
- myEditCurrentArgument->setText(aString);
-
- // InitGeom() will try to retrieve a shape from myMesh or mySubMesh
- myGeomShape = GEOM::GEOM_Object::_nil();
- InitGeom();
-
- myImportedMesh = myGeomShape->_is_nil();
-
- InitHypAssignation();
- InitAlgoAssignation();
-
- } else if (myEditCurrentArgument == LineEditC1A2) {
- if (nbSel != 1) {
- myGeomShape = GEOM::GEOM_Object::_nil();
- } else {
- Handle(SALOME_InteractiveObject) IO = aList.First();
- myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
- }
- InitGeom();
- }
-
- UpdateControlState();
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::SetEditCurrentArgument()
-{
- QPushButton* send = (QPushButton*)sender();
- if(send == SelectButtonC1A1) {
- LineEditC1A1->setFocus();
- myEditCurrentArgument = LineEditC1A1;
- mySelectionMgr->clearFilters();
- mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
- } else if (send == SelectButtonC1A2) {
- LineEditC1A2->setFocus();
- myEditCurrentArgument = LineEditC1A2;
- mySelectionMgr->clearFilters();
- mySelectionMgr->installFilter(myGeomFilter);
- }
- SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::DeactivateActiveDialog()
-{
- if (GroupC1->isEnabled()) {
- disconnect(mySelectionMgr, 0, this, 0);
- GroupC1->setEnabled(false);
- GroupButtons->setEnabled(false);
- }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ActivateThisDialog()
-{
- mySMESHGUI->EmitSignalDeactivateDialog();
- GroupC1->setEnabled(true);
- GroupButtons->setEnabled(true);
- connect (mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::enterEvent (QEvent*)
-{
- if (!GroupC1->isEnabled())
- ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::closeEvent (QCloseEvent* e)
-{
- disconnect(mySelectionMgr, 0, this, 0);
- mySMESHGUI->ResetState();
- mySelectionMgr->clearFilters();
- QDialog::closeEvent(e);
-}
-
-//=======================================================================
-// function : IsOld()
-// purpose :
-//=======================================================================
-bool SMESHGUI_EditHypothesesDlg::IsOld (QListBoxItem* hypItem)
-{
- if (hypItem->rtti() == ListBoxIOR::RTTI_IOR) {
- ListBoxIOR* hyp = (ListBoxIOR*) hypItem;
- return (myMapOldHypos.find(hyp->GetIOR()) != myMapOldHypos.end() ||
- myMapOldAlgos.find(hyp->GetIOR()) != myMapOldAlgos.end());
- }
-
- return false;
-}
-
-//=================================================================================
-// function : removeItem()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::removeItem (QListBoxItem* item)
-{
- const QObject* aSender = sender();
-
- if (!item) return;
-
- if (aSender == ListHypAssignation) {
- myNbModification += IsOld(item) ? 1 : -1;
- ListHypAssignation->removeItem(ListHypAssignation->index(item));
- }
- else if (aSender == ListAlgoAssignation) {
- myNbModification += IsOld(item) ? 1 : -1;
- ListAlgoAssignation->removeItem(ListAlgoAssignation->index(item));
- }
-
- UpdateControlState();
-}
-
-//=================================================================================
-// function : addItem()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::addItem (QListBoxItem* item)
-{
- const QObject* aSender = sender();
-
- if (!item) return;
-
- ListBoxIOR* i = 0;
- if (item->rtti() == ListBoxIOR::RTTI_IOR)
- i = (ListBoxIOR*)item;
- if (!i) return;
-
- bool isFound = false;
-
- ListBoxIOR* anItem;
- if (aSender == ListHypDefinition) {
- for (int j = 0, n = ListHypAssignation->count(); !isFound && j < n; j++) {
- if (ListHypAssignation->item(j)->rtti() == ListBoxIOR::RTTI_IOR) {
- anItem = (ListBoxIOR*)ListHypAssignation->item(j);
- isFound = !strcmp(anItem->GetIOR(), i->GetIOR());
- }
- }
- if (!isFound)
- anItem = new ListBoxIOR (ListHypAssignation,
- CORBA::string_dup(i->GetIOR()),
- CORBA::string_dup(i->text().latin1()));
-
- } else if (aSender == ListAlgoDefinition) {
- for (int j = 0, n = ListAlgoAssignation->count(); !isFound && j < n; j++) {
- if (ListAlgoAssignation->item(j)->rtti() == ListBoxIOR::RTTI_IOR) {
- anItem = (ListBoxIOR*)ListAlgoAssignation->item(j);
- isFound = !strcmp(anItem->GetIOR(), i->GetIOR());
- }
- }
- if (!isFound)
- anItem = new ListBoxIOR (ListAlgoAssignation,
- CORBA::string_dup(i->GetIOR()),
- CORBA::string_dup(i->text().latin1()));
- } else {
- }
-
- if (!isFound)
- myNbModification += IsOld(item) ? -1 : 1;
-
- UpdateControlState();
-}
-
-//=================================================================================
-// function : InitHypDefinition()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitHypDefinition()
-{
- ListHypDefinition->clear();
-
- _PTR(SComponent) father = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
- if (!father)
- return;
-
- _PTR(SObject) HypothesisRoot;
- _PTR(GenericAttribute) anAttr;
- _PTR(AttributeName) aName;
- _PTR(AttributeIOR) anIOR;
-
- //int Tag_HypothesisRoot = 1;
- if (father->FindSubObject(1, HypothesisRoot)) {
- _PTR(ChildIterator) it =
- SMESH::GetActiveStudyDocument()->NewChildIterator(HypothesisRoot);
- ListBoxIOR* anItem;
- for (; it->More();it->Next()) {
- _PTR(SObject) Obj = it->Value();
- if (Obj->FindAttribute(anAttr, "AttributeName")) {
- aName = anAttr;
- if (Obj->FindAttribute(anAttr, "AttributeIOR")) {
- anIOR = anAttr;
- anItem = new ListBoxIOR (ListHypDefinition,
- anIOR->Value().c_str(),
- aName->Value().c_str());
- }
- }
- }
- }
-}
-
-//=================================================================================
-// function : InitHypAssignation()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitHypAssignation()
-{
- myNbModification = 0;
-
- myMapOldHypos.clear();
- ListHypAssignation->clear();
- if (myImportedMesh)
- return;
-
- _PTR(SObject) aMorSM, AHR, aRef;
- _PTR(GenericAttribute) anAttr;
- _PTR(AttributeName) aName;
- _PTR(AttributeIOR) anIOR;
-
- if (!myMesh->_is_nil())
- aMorSM = SMESH::FindSObject(myMesh);
- else if (!mySubMesh->_is_nil())
- aMorSM = SMESH::FindSObject(mySubMesh);
-
- if (aMorSM && aMorSM->FindSubObject(2, AHR)) {
- _PTR(ChildIterator) it =
- SMESH::GetActiveStudyDocument()->NewChildIterator(AHR);
- for (; it->More();it->Next()) {
- _PTR(SObject) Obj = it->Value();
- if (Obj->ReferencedObject(aRef)) {
- if (aRef->FindAttribute(anAttr, "AttributeName")) {
- aName = anAttr;
- if (aRef->FindAttribute(anAttr, "AttributeIOR")) {
- anIOR = anAttr;
- ListBoxIOR* anItem = new ListBoxIOR (ListHypAssignation,
- anIOR->Value().c_str(),
- aName->Value().c_str());
- myMapOldHypos[ anIOR->Value() ] = ListHypAssignation->index(anItem);
- }
- }
- }
- }
- }
-}
-
-//=================================================================================
-// function : InitAlgoDefinition()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitAlgoDefinition()
-{
- ListAlgoDefinition->clear();
-
- _PTR(SComponent) father = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
- if (!father)
- return;
-
- _PTR(SObject) AlgorithmsRoot;
- _PTR(GenericAttribute) anAttr;
- _PTR(AttributeName) aName;
- _PTR(AttributeIOR) anIOR;
-
- if (father->FindSubObject (2, AlgorithmsRoot)) {
- _PTR(ChildIterator) it =
- SMESH::GetActiveStudyDocument()->NewChildIterator(AlgorithmsRoot);
- ListBoxIOR* anItem;
- for (; it->More();it->Next()) {
- _PTR(SObject) Obj = it->Value();
- if (Obj->FindAttribute(anAttr, "AttributeName")) {
- aName = anAttr;
- if (Obj->FindAttribute(anAttr, "AttributeIOR")) {
- anIOR = anAttr;
- anItem = new ListBoxIOR (ListAlgoDefinition,
- anIOR->Value().c_str(),
- aName->Value().c_str());
- }
- }
- }
- }
-}
-
-//=================================================================================
-// function : InitAlgoAssignation()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitAlgoAssignation()
-{
- myMapOldAlgos.clear();
- ListAlgoAssignation->clear();
- if (myImportedMesh)
- return;
-
- _PTR(SObject) aMorSM, AHR, aRef;
- _PTR(GenericAttribute) anAttr;
- _PTR(AttributeName) aName;
- _PTR(AttributeIOR) anIOR;
-
- if (!myMesh->_is_nil())
- aMorSM = SMESH::FindSObject(myMesh);
- else if (!mySubMesh->_is_nil())
- aMorSM = SMESH::FindSObject(mySubMesh);
-
- if (aMorSM && aMorSM->FindSubObject(3, AHR)) {
- _PTR(ChildIterator) it =
- SMESH::GetActiveStudyDocument()->NewChildIterator(AHR);
- for (; it->More();it->Next()) {
- _PTR(SObject) Obj = it->Value();
- if (Obj->ReferencedObject(aRef)) {
- if (aRef->FindAttribute(anAttr, "AttributeName")) {
- aName = anAttr;
- if (aRef->FindAttribute(anAttr, "AttributeIOR")) {
- anIOR = anAttr;
- ListBoxIOR* anItem = new ListBoxIOR (ListAlgoAssignation,
- anIOR->Value().c_str(),
- aName->Value().c_str());
- myMapOldAlgos[ anIOR->Value() ] = ListAlgoAssignation->index(anItem);
- }
- }
- }
- }
- }
-}
-
-//=================================================================================
-// function : InitGeom()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitGeom()
-{
- LineEditC1A2->setText("");
-
- if (myGeomShape->_is_nil() && !myMesh->_is_nil()) {
- _PTR(SObject) aMesh = SMESH::FindSObject(myMesh);
- if (aMesh)
- myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMesh);
- }
- if (myGeomShape->_is_nil() && !mySubMesh->_is_nil()) {
- _PTR(SObject) aSubMesh = SMESH::FindSObject(mySubMesh);
- if (aSubMesh)
- myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aSubMesh);
- }
-
- _PTR(GenericAttribute) anAttr;
- _PTR(AttributeName) aName;
- if (!myGeomShape->_is_nil() && (!myMesh->_is_nil() || !mySubMesh->_is_nil())) {
- _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
- //_PTR(SObject) aSO = aStudy->FindObjectIOR(aStudy->ConvertObjectToIOR(myGeomShape));
- _PTR(SObject) aSO = aStudy->FindObjectID(myGeomShape->GetStudyEntry());
- if (aSO) {
- if (aSO->FindAttribute(anAttr, "AttributeName")) {
- aName = anAttr;
- LineEditC1A2->setText(QString(aName->Value().c_str()));
- }
- }
- }
-}
-
-//=================================================================================
-// function : UpdateControlState()
-// purpose :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::UpdateControlState()
-{
- // asl the check of "count" is commented because of PAL9787
- bool isEnabled = (!myMesh->_is_nil() && !myGeomShape->_is_nil() /*&&
- ListHypAssignation->count() && ListAlgoAssignation->count()*/ )
- ||
- (!mySubMesh->_is_nil() && !myGeomShape->_is_nil() /*&&
- (ListHypAssignation->count() || ListAlgoAssignation->count())*/);
-
- buttonOk ->setEnabled(myNbModification && isEnabled && !myImportedMesh);
- buttonApply->setEnabled(myNbModification && isEnabled && !myImportedMesh);
-
- SelectButtonC1A2 ->setEnabled(ALLOW_CHANGE_SHAPE && !myImportedMesh);
- LineEditC1A2 ->setEnabled(ALLOW_CHANGE_SHAPE && !myImportedMesh);
- ListHypDefinition ->setEnabled(!myImportedMesh);
- ListHypAssignation ->setEnabled(!myImportedMesh);
- ListAlgoDefinition ->setEnabled(!myImportedMesh);
- ListAlgoAssignation->setEnabled(!myImportedMesh);
-}
-
-//=================================================================================
-// function : StoreMesh()
-// purpose :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::StoreMesh()
-{
- MapIOR anOldHypos, aNewHypos;
- if (myGeomShape->_is_nil())
- return false;
-
- // 1. Check whether the geometric shape has changed
- _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
- GEOM::GEOM_Object_var aIniGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMeshSO);
- bool bShapeChanged = aIniGeomShape->_is_nil() ||
- !aIniGeomShape->_is_equivalent(myGeomShape);
- if (bShapeChanged) {
- // VSR : TODO : Set new shape - not supported yet by SMESH engine
- // 1. remove all old hypotheses and algorithms and also submeshes
- // 2. set new shape
- }
-
- int nbFail = 0;
- MapIOR::iterator it;
-
- // 2. remove not used hypotheses from the mesh
- for (it = myMapOldHypos.begin(); it != myMapOldHypos.end(); ++it) {
- string ior = it->first;
- int index = findItem(ListHypAssignation, ior);
- if (index < 0) {
- SMESH::SMESH_Hypothesis_var aHyp =
- SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()) {
- if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aMeshSO, aHyp))
- nbFail++;
- }
- }
- }
-
- // 3. remove not used algorithms from the mesh
- for (it = myMapOldAlgos.begin(); it != myMapOldAlgos.end(); ++it) {
- string ior = it->first;
- int index = findItem(ListAlgoAssignation, ior);
- if (index < 0) {
- SMESH::SMESH_Hypothesis_var aHyp =
- SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()) {
- if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aMeshSO, aHyp))
- nbFail++;
- }
- }
- }
-
- // 4. Add new algorithms
- for (int i = 0; i < ListAlgoAssignation->count(); i++) {
- if (ListAlgoAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
- ListBoxIOR* anItem = (ListBoxIOR*)(ListAlgoAssignation->item(i));
- if (anItem) {
- string ior = anItem->GetIOR();
- if (myMapOldAlgos.find(ior) == myMapOldAlgos.end()) {
- SMESH::SMESH_Hypothesis_var aHyp =
- SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()) {
- if (!SMESH::AddHypothesisOnMesh(myMesh, aHyp))
- nbFail++;
- }
- }
- }
- }
- }
-
- // 5. Add new hypotheses
- for (int i = 0; i < ListHypAssignation->count(); i++) {
- if (ListHypAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
- ListBoxIOR* anItem = (ListBoxIOR*)(ListHypAssignation->item(i));
- if (anItem) {
- string ior = anItem->GetIOR();
- if (myMapOldHypos.find(ior) == myMapOldHypos.end()) {
- SMESH::SMESH_Hypothesis_var aHyp =
- SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()) {
- if (!SMESH::AddHypothesisOnMesh(myMesh, aHyp))
- nbFail++;
- }
- }
- }
- }
- }
- return (nbFail == 0);
-}
-
-//=================================================================================
-// function : StoreSubMesh()
-// purpose :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::StoreSubMesh()
-{
- MapIOR anOldHypos, aNewHypos;
- if (myGeomShape->_is_nil())
- return false;
-
- // 1. Check whether the geometric shape has changed
- _PTR(SObject) aSubMeshSO = SMESH::FindSObject(mySubMesh);
- GEOM::GEOM_Object_var aIniGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aSubMeshSO);
- bool bShapeChanged = aIniGeomShape->_is_nil() || !aIniGeomShape->_is_equivalent(myGeomShape);
- if (bShapeChanged) {
- // VSR : TODO : Set new shape - not supported yet by engine
- // 1. remove all old hypotheses and algorithms
- // 2. set new shape
- }
- int nbFail = 0;
- MapIOR::iterator it;
-
- // 2. remove not used hypotheses from the submesh
- for (it = myMapOldHypos.begin(); it != myMapOldHypos.end(); ++it) {
- string ior = it->first;
- int index = findItem(ListHypAssignation, ior);
- if (index < 0) {
- SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()) {
- if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aSubMeshSO, aHyp))
- nbFail++;
- }
- }
- }
-
- // 3. remove not used algorithms from the submesh
- for (it = myMapOldAlgos.begin(); it != myMapOldAlgos.end(); ++it) {
- string ior = it->first;
- int index = findItem(ListAlgoAssignation, ior);
- if (index < 0) {
- SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()){
- if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aSubMeshSO, aHyp))
- nbFail++;
- }
- }
- }
-
- // 4. Add new algorithms
- for (int i = 0; i < ListAlgoAssignation->count(); i++) {
- if (ListAlgoAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
- ListBoxIOR* anItem = (ListBoxIOR*)(ListAlgoAssignation->item(i));
- if (anItem) {
- string ior = anItem->GetIOR();
- if (myMapOldAlgos.find(ior) == myMapOldAlgos.end()) {
- SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()){
- if (!SMESH::AddHypothesisOnSubMesh(mySubMesh, aHyp))
- nbFail++;
- }
- }
- }
- }
- }
-
- // 5. Add new hypotheses
- for (int i = 0; i < ListHypAssignation->count(); i++) {
- if (ListHypAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
- ListBoxIOR* anItem = (ListBoxIOR*)(ListHypAssignation->item(i));
- if (anItem) {
- string ior = anItem->GetIOR();
- if (myMapOldHypos.find(ior) == myMapOldHypos.end()) {
- SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
- if (!aHyp->_is_nil()){
- if (!SMESH::AddHypothesisOnSubMesh(mySubMesh, aHyp))
- nbFail++;
- }
- }
- }
- }
- }
- return (nbFail == 0);
-}
+++ /dev/null
-// SMESH SMESHGUI : GUI for SMESH component
-//
-// 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 : SMESHGUI_EditHypothesesDlg.h
-// Author : Nicolas REJNERI
-// Module : SMESH
-// $Header$
-
-#ifndef DIALOGBOX_EDIT_HYPOTHESES_H
-#define DIALOGBOX_EDIT_HYPOTHESES_H
-
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-#include "LightApp_SelectionMgr.h"
-
-// QT Includes
-#include <qdialog.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <map>
-#include <string>
-
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QListBox;
-class QListBoxItem;
-class SMESHGUI;
-
-typedef map<std::string, int> MapIOR;
-
-//=================================================================================
-// class : SMESHGUI_EditHypothesesDlg
-// purpose :
-//=================================================================================
-class SMESHGUI_EditHypothesesDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- SMESHGUI_EditHypothesesDlg (SMESHGUI*,
- const char* name = 0,
- bool modal = FALSE,
- WFlags fl = 0);
- ~SMESHGUI_EditHypothesesDlg();
-
-protected:
- virtual void closeEvent (QCloseEvent*);
- virtual void enterEvent (QEvent*);
-
-private:
- void Init();
-
- void InitHypDefinition();
- void InitAlgoDefinition();
- void InitHypAssignation();
- void InitAlgoAssignation();
-
- void InitGeom();
-
- void UpdateControlState();
-
- bool StoreMesh();
- bool StoreSubMesh();
-
- bool IsOld(QListBoxItem* hypItem);
-
-private:
- SMESHGUI* mySMESHGUI;
- LightApp_SelectionMgr* mySelectionMgr;
-
- GEOM::GEOM_Object_var myGeomShape;
- QLineEdit* myEditCurrentArgument;
-
- SMESH::SMESH_Mesh_var myMesh;
- SMESH::SMESH_subMesh_var mySubMesh;
-
- //Handle(SALOME_TypeFilter) myGeomFilter;
- //Handle(SMESH_TypeFilter) myMeshOrSubMeshFilter;
- SUIT_SelectionFilter* myGeomFilter;
- SUIT_SelectionFilter* myMeshOrSubMeshFilter;
-
- MapIOR myMapOldHypos, myMapOldAlgos;
- int myNbModification;
-
- bool myImportedMesh;
-
- QGroupBox* GroupButtons;
- QPushButton* buttonOk;
- QPushButton* buttonApply;
- QPushButton* buttonCancel;
-
- QGroupBox* GroupC1;
- QLabel* TextLabelC1A1;
- QPushButton* SelectButtonC1A1;
- QLineEdit* LineEditC1A1;
- QLabel* TextLabelC1A2;
- QPushButton* SelectButtonC1A2;
- QLineEdit* LineEditC1A2;
-
- QGroupBox* GroupHypotheses;
- QLabel* TextHypDefinition;
- QListBox* ListHypDefinition;
- QLabel* TextHypAssignation;
- QListBox* ListHypAssignation;
-
- QGroupBox* GroupAlgorithms;
- QLabel* TextAlgoDefinition;
- QListBox* ListAlgoDefinition;
- QLabel* TextAlgoAssignation;
- QListBox* ListAlgoAssignation;
-
-private slots:
- void ClickOnOk();
- bool ClickOnApply();
- void ClickOnCancel();
- void SetEditCurrentArgument();
- void SelectionIntoArgument();
- void DeactivateActiveDialog();
- void ActivateThisDialog();
-
- void removeItem(QListBoxItem*);
- void addItem(QListBoxItem*);
-};
-
-#endif // DIALOGBOX_EDIT_HYPOTHESES_H
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SALOME_ListIO.hxx"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton (GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
GroupMeshLayout->addWidget(LineEditMesh, 0, 2);
DlgLayout->addWidget(GroupMesh, 1, 0);
+ myHelpFileName = "merge_elements.htm";
+
Init(); // Initialisations
}
connect(buttonOk , SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply , SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(SelectButton, SIGNAL(clicked()), this, SLOT(SelectionIntoArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_EditMeshDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : SelectionIntoArgument()
// purpose : Called when selection as changed or other case
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupMesh;
QLabel* TextLabelMesh;
QGridLayout* GroupButtonsLayout;
QGridLayout* GroupMeshLayout;
+ QString myHelpFileName;
+
private slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SelectionIntoArgument();
void DeactivateActiveDialog();
void ActivateThisDialog();
#include "SUIT_OverrideCursor.h"
#include "SUIT_Desktop.h"
#include "SUIT_MessageBox.h"
+#include "SUIT_Session.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
CloseButton = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons);
CloseButton->setAutoDefault(true);
+ HelpButton = new QPushButton(tr("SMESH_BUT_HELP"), GroupButtons);
+ HelpButton->setAutoDefault(true);
+
// layouting
GroupButtonsLayout->addWidget(OkButton, 0, 0);
GroupButtonsLayout->addWidget(ApplyButton, 0, 1);
GroupButtonsLayout->addWidget(CloseButton, 0, 3);
+ GroupButtonsLayout->addWidget(HelpButton, 0, 4);
GroupButtonsLayout->addColSpacing(2, 10);
GroupButtonsLayout->setColStretch(2, 10);
myElementsFilter = new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
myPathMeshFilter = new SMESH_TypeFilter (MESH);
+ myHelpFileName = "extrusion_along_a_path.htm";
+
Init();
/***************************************************************/
connect(OkButton, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(CloseButton, SIGNAL(clicked()), this, SLOT(reject()));
connect(ApplyButton, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(HelpButton, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(AddAngleButton, SIGNAL(clicked()), this, SLOT(OnAngleAdded()));
connect(RemoveAngleButton, SIGNAL(clicked()), this, SLOT(OnAngleRemoved()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_ExtrusionAlongPathDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : reject()
// purpose : Called when dialog box is closed
QPushButton* OkButton;
QPushButton* ApplyButton;
QPushButton* CloseButton;
+ QPushButton* HelpButton;
+
+ QString myHelpFileName;
protected slots:
void reject();
void ConstructorsClicked (int);
void ClickOnOk();
bool ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument();
void SelectionIntoArgument();
void DeactivateActiveDialog();
#include "SUIT_OverrideCursor.h"
#include "SUIT_Desktop.h"
#include "SUIT_MessageBox.h"
+#include "SUIT_Session.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
myMeshOrSubMeshOrGroupFilter =
new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
+ myHelpFileName = "extrusion.htm";
+
Init();
/***************************************************************/
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
- connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
+
+ // to update state of the Ok & Apply buttons
+ connect(SpinBox_Dx, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+ connect(SpinBox_Dy, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+ connect(SpinBox_Dz, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+ connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
myElementsId = "";
myNbOkElements = 0;
- buttonOk->setEnabled(false);
- buttonApply->setEnabled(false);
-
myActor = 0;
myMesh = SMESH::SMESH_Mesh::_nil();
CheckBoxMesh->setChecked(false);
onSelectMesh(false);
}
+
+ CheckIsEnable();
+}
+
+//=================================================================================
+// function : CheckIsEnable()
+// purpose : Check whether the Ok and Apply buttons should be enabled or not
+//=================================================================================
+void SMESHGUI_ExtrusionDlg::CheckIsEnable()
+{
+ double aX = SpinBox_Dx->GetValue();
+ double aY = SpinBox_Dy->GetValue();
+ double aZ = SpinBox_Dz->GetValue();
+ double aModule = sqrt(aX*aX + aY*aY + aZ*aZ);
+
+ bool anIsEnable = myNbOkElements > 0 && aModule > 1.0E-38;
+
+ buttonOk->setEnabled(anIsEnable);
+ buttonApply->setEnabled(anIsEnable);
}
//=================================================================================
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_ExtrusionDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : onTextChange()
// purpose :
if (send == LineEditElements)
myNbOkElements = 0;
- buttonOk->setEnabled(false);
- buttonApply->setEnabled(false);
-
// hilight entered elements/nodes
SMDS_Mesh* aMesh = 0;
if (myActor)
}
}
- if (myNbOkElements) {
- buttonOk->setEnabled(true);
- buttonApply->setEnabled(true);
- }
+ CheckIsEnable();
myBusy = false;
}
myEditCurrentArgument->setText(aString);
myNbOkElements = 0;
- buttonOk->setEnabled(false);
- buttonApply->setEnabled(false);
myBusy = false;
// get selected mesh
myBusy = false;
// OK
- if (myNbOkElements) {
- buttonOk->setEnabled(true);
- buttonApply->setEnabled(true);
- }
+ CheckIsEnable();
}
//=================================================================================
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
+
+ QString myHelpFileName;
private slots:
void ConstructorsClicked (int);
+ void CheckIsEnable();
void ClickOnOk();
bool ClickOnApply();
void ClickOnCancel();
+ void ClickOnHelp();
void SetEditCurrentArgument();
void SelectionIntoArgument();
void DeactivateActiveDialog();
SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
- return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 4;
+ return anElem && anElem->GetType() == SMDSAbs_Face &&
+ ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 8 : 4 ));
}
//=======================================================================
SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
- return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 4;
+ return anElem && anElem->GetType() == SMDSAbs_Face &&
+ ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 8 : 4 ));
}
//=======================================================================
SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
- return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 3;
+ return anElem && anElem->GetType() == SMDSAbs_Face &&
+ ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 6 : 3 ));
}
//=======================================================================
SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
- return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 3;
+ return anElem && anElem->GetType() == SMDSAbs_Face &&
+ ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 6 : 3 ));
}
//=======================================================================
#include "SUIT_Desktop.h"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
-#include "SalomeApp_Application.h"
+#include "LightApp_Application.h"
#include "SalomeApp_Tools.h"
#include "SalomeApp_Study.h"
aDlgLay->setStretchFactor(myMainFrame, 1);
+ myHelpFileName = "selection_filter_library.htm";
+
Init(myTypes);
}
myButtons[ BTN_Cancel ] = new QPushButton(tr("SMESH_BUT_CANCEL"), aGrp);
myButtons[ BTN_Close ] = new QPushButton(tr("SMESH_BUT_CLOSE"), aGrp);
+ myButtons[ BTN_Help ] = new QPushButton(tr("SMESH_BUT_HELP"), aGrp);
connect(myButtons[ BTN_OK ], SIGNAL(clicked()), SLOT(onOk()));
connect(myButtons[ BTN_Cancel ], SIGNAL(clicked()), SLOT(onClose()));
connect(myButtons[ BTN_Close ], SIGNAL(clicked()), SLOT(onClose()));
connect(myButtons[ BTN_Apply ], SIGNAL(clicked()), SLOT(onApply()));
+ connect(myButtons[ BTN_Help ], SIGNAL(clicked()), SLOT(onHelp()));
updateMainButtons();
return;
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_FilterDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : SMESHGUI_FilterDlg::onDeactivate
// Purpose : SLOT called when dialog must be deativated
enum { Mesh, Selection, Dialog, None };
// Buttons
- enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close };
+ enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close, BTN_Help };
public:
SMESHGUI_FilterDlg( SMESHGUI*,
void onOk();
bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
void onSelectionDone();
void onCriterionChanged (const int, const int);
QMap< int, SMESH::Filter_var > myFilter;
QMap< int, bool > myInsertState;
QMap< int, int > myApplyToState;
+
+ QString myHelpFileName;
};
#endif
#include "SUIT_Session.h"
#include "SUIT_Desktop.h"
#include "SUIT_FileDlg.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
// QT Includes
#include <qapplication.h>
const QValueList<int>& theTypes,
const int theMode,
const char* theName)
- : QDialog( parent, theName, true, WStyle_Customize |
+ : QDialog( parent, theName, false, WStyle_Customize |
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
mySMESHGUI( theModule )
{
aDlgLay->setStretchFactor(myMainFrame, 1);
+ myHelpFileName = "selection_filter_library.htm";
+
Init(myTypes, myMode);
}
myButtons[ BTN_Cancel ] = new QPushButton(tr("SMESH_BUT_CANCEL"), aGrp);
myButtons[ BTN_Close ] = new QPushButton(tr("SMESH_BUT_CLOSE"), aGrp);
+ myButtons[ BTN_Help ] = new QPushButton(tr("SMESH_BUT_HELP"), aGrp);
connect(myButtons[ BTN_OK ], SIGNAL(clicked()), SLOT(onOk()));
connect(myButtons[ BTN_Cancel ], SIGNAL(clicked()), SLOT(onClose()));
connect(myButtons[ BTN_Close ], SIGNAL(clicked()), SLOT(onClose()));
connect(myButtons[ BTN_Apply ], SIGNAL(clicked()), SLOT(onApply()));
+ connect(myButtons[ BTN_Help ], SIGNAL(clicked()), SLOT(onHelp()));
QMap<int, QPushButton*>::iterator anIter;
for (anIter = myButtons.begin(); anIter != myButtons.end(); ++anIter)
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_FilterLibraryDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : SMESHGUI_FilterLibraryDlg::onDeactivate
// Purpose : SLOT called when dialog must be deativated
Q_OBJECT
// Buttons
- enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close };
+ enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close, BTN_Help };
class Dialog;
void onOk();
bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
QString myCurrFilterName;
int myCurrFilter;
+ QString myHelpFileName;
};
#endif
#include "SUIT_Desktop.h"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "SalomeApp_Tools.h"
+#include "LightApp_Application.h"
#include "SALOMEDSClient_Study.hxx"
#include "SALOME_ListIO.hxx"
#include "SALOME_ListIteratorOfListIO.hxx"
#include <qmemarray.h>
#include <qwidgetstack.h>
+#include <QtxIntSpinBox.h>
+
// STL includes
#include <vector>
#include <algorithm>
QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
- if (create)
+ if (create) {
setCaption(tr("SMESH_CREATE_GROUP_TITLE"));
- else
+ myHelpFileName = "/files/creating_groups.htm";
+ }
+ else {
setCaption(tr("SMESH_EDIT_GROUP_TITLE"));
+ myHelpFileName = "/files/editing_groups.htm";
+ }
setSizeGripEnabled(TRUE);
myWGStack->addWidget( wg2, myGrpTypeGroup->id(rb2) );
/***************************************************************/
- QGroupBox* aColorBox = new QGroupBox(this, "color box");
+ QGroupBox* aColorBox = new QGroupBox(2, Qt::Horizontal, this, "color box");
aColorBox->setTitle(tr("SMESH_SET_COLOR"));
mySelectColorGroup = new QCheckBox(aColorBox, "color checkbox");
mySelectColorGroup->setText(tr("SMESH_CHECK_COLOR"));
- mySelectColorGroup->setMinimumSize(50, 0);
-
- myColorGroupLine = new QLineEdit(aColorBox, "color line");
- myColorGroupLine->setReadOnly(false);
- onSelectColorGroup(false);
- /***************************************************************/
- QHBoxLayout* aColorLayout = new QHBoxLayout(aColorBox, 15, 20);
- aColorLayout->setAutoAdd(false);
+ myColorSpinBox = new QtxIntSpinBox( aColorBox );
+ myColorSpinBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+ myColorSpinBox->setMinValue( 0 );
+ myColorSpinBox->setMaxValue( 9999 );
- aColorLayout->addWidget(mySelectColorGroup);
- aColorLayout->addWidget(myColorGroupLine);
+ onSelectColorGroup(false);
/***************************************************************/
QPushButton* aCloseBtn = new QPushButton(aButtons, "close");
aCloseBtn->setText(tr("SMESH_BUT_CLOSE"));
aCloseBtn->setAutoDefault(true);
+ QPushButton* aHelpBtn = new QPushButton(aButtons, "help");
+ aHelpBtn->setText(tr("SMESH_BUT_HELP"));
+ aHelpBtn->setAutoDefault(true);
aBtnLayout->addWidget(aOKBtn);
aBtnLayout->addWidget(aApplyBtn);
aBtnLayout->addStretch();
aBtnLayout->addWidget(aCloseBtn);
+ aBtnLayout->addWidget(aHelpBtn);
/***************************************************************/
aMainLayout->addWidget(meshGroupLab, 0, 0);
connect(myGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
connect(myGeomGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
connect(mySelectColorGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectColorGroup(bool)));
- connect(myColorGroupLine, SIGNAL(textChanged(const QString&)), this, SLOT(onNbColorsChanged(const QString&)));
+ connect(myColorSpinBox, SIGNAL(valueChanged(const QString&)), this, SLOT(onNbColorsChanged(const QString&)));
connect(aOKBtn, SIGNAL(clicked()), this, SLOT(onOK()));
connect(aApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(onClose()));
+ connect(aHelpBtn, SIGNAL(clicked()), this, SLOT(onHelp()));
/* Init selection */
mySMESHGUI->SetActiveDialogBox(this);
void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
{
myMesh = theGroup->GetMesh();
-
+
myName->setText(theGroup->GetName());
myName->home(false);
- myColorGroupLine->setText(QString::number(theGroup->GetColorNumber()));
- myColorGroupLine->home(false);
-
+ myColorSpinBox->setValue( theGroup->GetColorNumber() );
+
myMeshGroupLine->setText(theGroup->GetName());
int aType = 0;
myGroup = SMESH::AddGroup(myMesh, aType, myName->text());
myGroup->Add(anIdList.inout());
- int aColorNumber = myColorGroupLine->text().toInt();
+ int aColorNumber = myColorSpinBox->value();
myGroup->SetColorNumber(aColorNumber);
_PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroup);
- SMESH::setFileName (aMeshGroupSO, myColorGroupLine->text());
+ SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
- SMESH::setFileType (aMeshGroupSO,"COULEURGROUP");
+ SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
/* init for next operation */
myName->setText("");
- myColorGroupLine->setText("");
+ myColorSpinBox->setValue(0);
myElements->clear();
myGroup = SMESH::SMESH_Group::_nil();
} else {
myGroup->SetName(myName->text());
- int aColorNumber = myColorGroupLine->text().toInt();
+ int aColorNumber = myColorSpinBox->value();
myGroup->SetColorNumber(aColorNumber);
QValueList<int> aAddList;
myGroupOnGeom = myMesh->CreateGroupFromGEOM(aType, myName->text(),myGeomGroup);
- int aColorNumber = myColorGroupLine->text().toInt();
+ int aColorNumber = myColorSpinBox->value();
myGroupOnGeom->SetColorNumber(aColorNumber);
_PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroupOnGeom);
- SMESH::setFileName (aMeshGroupSO, myColorGroupLine->text());
+ SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
- SMESH::setFileType (aMeshGroupSO,"COULEURGROUP");
+ SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
/* init for next operation */
myName->setText("");
- myColorGroupLine->setText("");
+ myColorSpinBox->setValue(0);
myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
}
else
{
myGroupOnGeom->SetName(myName->text());
- int aColorNumber = myColorGroupLine->text().toInt();
+ int aColorNumber = myColorSpinBox->value();
myGroupOnGeom->SetColorNumber(aColorNumber);
}
if (aNbSel != 1 ) {
myGroup = SMESH::SMESH_Group::_nil();
+ myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
myMesh = SMESH::SMESH_Mesh::_nil();
myIsBusy = false;
return;
}
myIsBusy = false;
myCurrentLineEdit = 0;
+
+ myGroup = SMESH::SMESH_Group::_nil();
+ myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
+
init(aGroup);
myIsBusy = true;
mySelectSubMesh->setEnabled(true);
mySelectGroup->setEnabled(true);
- myGeomGroupBtn->setEnabled(true);
- myGeomGroupLine->setEnabled(true);
}
myCurrentLineEdit = 0;
myIsBusy = false;
//=================================================================================
void SMESHGUI_GroupDlg::onSelectColorGroup(bool on)
{
- if (on) {
- setSelectionMode(7);
- }
- else {
- myColorGroupLine->setText("");
- myCurrentLineEdit = 0;
- if (myTypeId != -1)
- setSelectionMode(myTypeId);
- }
- myColorGroupLine->setEnabled(on);
+ if (!on)
+ myColorSpinBox->setValue(0);
+
+ myColorSpinBox->setEnabled(on);
}
//=================================================================================
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_GroupDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : SMESHGUI_GroupDlg::onDeactivate
// purpose : SLOT called when dialog must be deativated
class QPushButton;
class QCheckBox;
class QWidgetStack;
+class QtxIntSpinBox;
class SMESHGUI;
class SMESH_Actor;
class SMESHGUI_FilterDlg;
void onOK();
void onClose();
bool onApply();
+ void onHelp();
void onDeactivate();
void onListSelectionChanged();
QLineEdit* myGroupLine;
QCheckBox* mySelectColorGroup;
- QLineEdit* myColorGroupLine;
+ QtxIntSpinBox* myColorSpinBox;
QCheckBox* mySelectGeomGroup;
QPushButton* myGeomGroupBtn;
SMESHGUI_FilterDlg* myFilterDlg;
bool myCreate, myIsBusy;
+
+ QString myHelpFileName;
};
#endif // DIALOGBOX_GROUP_H
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "SVTK_Selection.h"
{
myMode = theMode;
- if (myMode == UNION) setCaption(tr("UNION_OF_TWO_GROUPS"));
- else if (myMode == INTERSECT) setCaption(tr("INTERSECTION_OF_TWO_GROUPS"));
- else setCaption(tr("CUT_OF_TWO_GROUPS"));
+ if (myMode == UNION) {
+ setCaption(tr("UNION_OF_TWO_GROUPS"));
+ myHelpFileName = "/files/using_operations_on_groups.htm#Union";
+ }
+ else if (myMode == INTERSECT) {
+ setCaption(tr("INTERSECTION_OF_TWO_GROUPS"));
+ myHelpFileName = "/files/using_operations_on_groups.htm#Intersection";
+ }
+ else {
+ setCaption(tr("CUT_OF_TWO_GROUPS"));
+ myHelpFileName = "/files/using_operations_on_groups.htm#Cut";
+ }
mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);
myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
aLay->addWidget(myApplyBtn);
aLay->addItem(aSpacer);
aLay->addWidget(myCloseBtn);
+ aLay->addWidget(myHelpBtn);
// connect signals and slots
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
return aFrame;
}
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_GroupOpDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : SMESHGUI_GroupOpDlg::onSelectionDone
// Purpose : SLOT called when selection changed
void onOk();
bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
void onSelectionDone();
QPushButton* myOkBtn;
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
QLineEdit* myNameEdit;
QLineEdit* myEdit1;
SMESH::SMESH_GroupBase_var myGroup1;
SMESH::SMESH_GroupBase_var myGroup2;
+ QString myHelpFileName;
+
};
#endif
+// Copyright (C) 2005 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.salome-platform.org/
+//
#include "SMESHGUI_Hypotheses.h"
#include "SMESHGUI.h"
#include <SALOMEDSClient_Study.hxx>
#include <utilities.h>
+#include <SMESHGUI.h>
+
#include <QtxIntSpinBox.h>
+#include <SUIT_Session.h>
+#include <SUIT_MessageBox.h>
+
+#include <LightApp_Application.h>
+
#include <qframe.h>
#include <qlayout.h>
#include <qlineedit.h>
SMESHGUI_HypothesisDlg::SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator* creator, QWidget* parent )
-: QtxDialog( parent, "", true, true, QtxDialog::OKCancel ),
+: QtxDialog( parent, "", true, true ),
myCreator( creator )
{
setMinimumSize( 300, height() );
titLay->addStretch( 1 );
myLayout->addWidget( titFrame, 0 );
+
+ QString aHypType = creator->hypType();
+ if ( aHypType == "LocalLength" )
+ myHelpFileName = "/files/arithmetic_1d.htm#Average_length";
+ else if ( aHypType == "Arithmetic1D")
+ myHelpFileName = "/files/arithmetic_1d.htm#arithmetic_1D";
+ else if ( aHypType == "MaxElementArea")
+ myHelpFileName = "/files/max._element_area_hypothesis.htm";
+ else if ( aHypType == "MaxElementVolume")
+ myHelpFileName = "/files/max._element_volume_hypothsis.htm";
+ else if ( aHypType == "StartEndLength")
+ myHelpFileName = "/files/arithmetic_1d.htm#start_and_end_length";
+ else if ( aHypType == "Deflection1D")
+ myHelpFileName = "/files/arithmetic_1d.htm#deflection_1D";
+ else if ( aHypType == "AutomaticLength")
+ myHelpFileName = "/files/arithmetic_1d.htm#automatic_length";
+ else if ( aHypType == "NumberOfSegments")
+ myHelpFileName = "/files/arithmetic_1d.htm#Number_of_elements";
+ else
+ myHelpFileName = "";
+
+ connect( this, SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
+
}
SMESHGUI_HypothesisDlg::~SMESHGUI_HypothesisDlg()
QtxDialog::accept();
}
+void SMESHGUI_HypothesisDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app) {
+ SMESHGUI* aSMESHGUI = dynamic_cast<SMESHGUI*>( app->activeModule() );
+ app->onHelpContextModule(aSMESHGUI ? app->moduleName(aSMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ }
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
void SMESHGUI_HypothesisDlg::setHIcon( const QPixmap& p )
{
myIconLabel->setPixmap( p );
protected slots:
virtual void accept();
+ void onHelp();
private:
SMESHGUI_GenericHypothesisCreator* myCreator;
QVBoxLayout* myLayout;
QLabel *myIconLabel, *myTypeLabel;
+ QString myHelpFileName;
};
/*!
class HypothesisData
{
public:
- HypothesisData( const QString& thePluginName,
+ HypothesisData( const QString& theTypeName,
+ const QString& thePluginName,
const QString& theServerLibName,
const QString& theClientLibName,
const QString& theLabel,
const QString& theIconId,
const QValueList<int>& theDim,
- const bool theIsAux )
-: PluginName( thePluginName ),
- ServerLibName( theServerLibName ),
- ClientLibName( theClientLibName ),
- Label( theLabel ),
- IconId( theIconId ),
- Dim( theDim ),
- IsAux( theIsAux )
- {};
-
+ const bool theIsAux,
+ const QStringList& theNeededHypos,
+ const QStringList& theOptionalHypos,
+ const QStringList& theInputTypes,
+ const QStringList& theOutputTypes)
+ : TypeName( theTypeName ),
+ PluginName( thePluginName ),
+ ServerLibName( theServerLibName ),
+ ClientLibName( theClientLibName ),
+ Label( theLabel ),
+ IconId( theIconId ),
+ Dim( theDim ),
+ IsAux( theIsAux ),
+ NeededHypos( theNeededHypos ), OptionalHypos( theOptionalHypos ),
+ InputTypes( theInputTypes ), OutputTypes( theOutputTypes )
+ {};
+
+ QString TypeName; //!< hypothesis type name
QString PluginName; //!< plugin name
QString ServerLibName; //!< server library name
QString ClientLibName; //!< client library name
QString IconId; //!< icon identifier
QValueList<int> Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration)
bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
+
+ // for algorithm only: dependencies algo <-> algo and algo -> hypos
+ QStringList NeededHypos; //!< list of obligatory hypotheses
+ QStringList OptionalHypos;//!< list of optional hypotheses
+ QStringList InputTypes; //!< list of element types required as a prerequisite
+ QStringList OutputTypes; //!< list of types of generated elements
};
/*!
// Init list of available hypotheses, if needed
InitAvailableHypotheses();
- if (myHypothesesMap.find(aHypType) == myHypothesesMap.end()) {
- if (myAlgorithmsMap.find(aHypType) != myAlgorithmsMap.end()) {
- aHypData = myAlgorithmsMap[aHypType];
- }
+ THypothesisDataMap::iterator type_data = myHypothesesMap.find(aHypType);
+ if (type_data != myHypothesesMap.end()) {
+ aHypData = type_data->second;
}
else {
- aHypData = myHypothesesMap[aHypType];
+ type_data = myAlgorithmsMap.find(aHypType);
+ if (type_data != myAlgorithmsMap.end())
+ aHypData = type_data->second;
}
return aHypData;
}
+ bool IsAvailableHypothesis(const HypothesisData* algoData,
+ const QString& hypType,
+ bool& isAuxiliary)
+ {
+ isAuxiliary = false;
+ if ( !algoData )
+ return false;
+ if ( algoData->NeededHypos.contains( hypType ))
+ return true;
+ if ( algoData->OptionalHypos.contains( hypType)) {
+ isAuxiliary = true;
+ return true;
+ }
+ return false;
+ }
+
+ bool IsCompatibleAlgorithm(const HypothesisData* algo1Data,
+ const HypothesisData* algo2Data)
+ {
+ if ( !algo1Data || !algo2Data )
+ return false;
+ const HypothesisData* algoIn = algo1Data, *algoMain = algo2Data;
+ if ( algoIn->Dim.first() > algoMain->Dim.first() ) {
+ algoIn = algo2Data; algoMain = algo1Data;
+ }
+ // look for any output type of algoIn between input types of algoMain
+ QStringList::const_iterator inElemType = algoIn->OutputTypes.begin();
+ for ( ; inElemType != algoIn->OutputTypes.end(); ++inElemType )
+ if ( algoMain->InputTypes.contains( *inElemType ))
+ return true;
+ return false;
+ }
SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType)
{
HypothesisData* GetHypothesisData(const char* aHypType);
+ bool IsAvailableHypothesis(const HypothesisData* algoData,
+ const QString& hypType,
+ bool& isOptional);
+
+ bool IsCompatibleAlgorithm(const HypothesisData* algo1Data,
+ const HypothesisData* algo2Data);
+
SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType);
SMESH::SMESH_Hypothesis_ptr CreateHypothesis(const char* aHypType,
#include "GEOMBase.h"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(SelectMeshButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
connect(DetectButton, SIGNAL (clicked()), this, SLOT(onDetect()));
// Init Mesh field from selection
SelectionIntoArgument();
+
+ myHelpFileName = "/files/merging_nodes.htm";
}
//=================================================================================
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_MergeNodesDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : onEditNodesGroup()
// purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupMesh;
QGroupBox* GroupCoincident;
QGroupBox* GroupEdit;
QListView* ListCoincident;
QListBox* ListEdit;
SMESHGUI_SpinBox* SpinBoxTolerance;
+
+ QString myHelpFileName;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
+ void ClickOnHelp();
void updateControls();
void onDetect();
void onSelectNodesGroup();
connect( myEditHyp[ i ], SIGNAL( clicked() ), SLOT( onEditHyp() ) );
connect( myHyp[ i ], SIGNAL( activated( int ) ), SLOT( onHyp( int ) ) );
}
+ connect( myHyp[ Algo ], SIGNAL( activated( int ) ), SLOT( onHyp( int ) ) );
// Initialize controls
void SMESHGUI_MeshTab::setAvailableHyps( const int theId, const QStringList& theHyps )
{
myAvailableHyps[ theId ] = theHyps;
+
+ bool enable = ! theHyps.isEmpty();
if ( theId == Algo )
{
myHyp[ Algo ]->clear();
myHyp[ Algo ]->insertStringList( theHyps );
myHyp[ Algo ]->setCurrentItem( 0 );
}
+ else {
+ myCreateHyp[ theId ]->setEnabled( enable );
+ myEditHyp[ theId ]->setEnabled( false );
+ }
+ myHyp[ theId ]->setEnabled( enable );
}
//================================================================================
myHyp[ theId ]->insertItem( tr( "NONE" ) );
myHyp[ theId ]->insertStringList( theHyps );
myHyp[ theId ]->setCurrentItem( 0 );
+ myHyp[ theId ]->setEnabled( !theHyps.isEmpty() );
myEditHyp[ theId ]->setEnabled( false );
}
}
myHyp[ theId ]->insertItem( theHyp );
myHyp[ theId ]->setCurrentItem( myHyp[ theId ]->count() - 1 );
myEditHyp[ theId ]->setEnabled( true );
+ myHyp[ theId ]->setEnabled( true );
}
//================================================================================
{
const QObject* aSender = sender();
int aHypType = aSender == myEditHyp[ MainHyp ] ? MainHyp : AddHyp;
- emit editHyp( aHypType, myHyp[ aHypType ]->currentItem() );
+ emit editHyp( aHypType, myHyp[ aHypType ]->currentItem() - 1 ); // - 1 because there is NONE on the top
}
//================================================================================
/*!
* \brief Updates "Edit hypothesis" button state
*
- * SLOT called when current hypothesis changed disables "Edit hypothesis" button
- * if current hypothesis is <None>, enables otherwise
+ * SLOT called when current hypothesis changed. Disables "Edit hypothesis" button
+ * if current hypothesis is <None>, enables otherwise.
+ * If an algorithm changed, emits selectAlgo( theIndex ) signal
*/
//================================================================================
void SMESHGUI_MeshTab::onHyp( int theIndex )
{
const QObject* aSender = sender();
- int anIndex = aSender == myHyp[ MainHyp ] ? MainHyp : AddHyp;
- myEditHyp[ anIndex ]->setEnabled( theIndex > 0 );
+ if ( aSender == myHyp[ Algo ] )
+ emit selectAlgo( theIndex - 1 ); // - 1 because there is NONE on the top
+ else {
+ int anIndex = aSender == myHyp[ MainHyp ] ? MainHyp : AddHyp;
+ myEditHyp[ anIndex ]->setEnabled( theIndex > 0 );
+ }
}
//================================================================================
myTabs[ Dim1D ] = new SMESHGUI_MeshTab( myTabWg );
myTabs[ Dim2D ] = new SMESHGUI_MeshTab( myTabWg );
myTabs[ Dim3D ] = new SMESHGUI_MeshTab( myTabWg );
- myTabWg->addTab( myTabs[ Dim1D ], tr( "DIM_1D" ) );
- myTabWg->addTab( myTabs[ Dim2D ], tr( "DIM_2D" ) );
myTabWg->addTab( myTabs[ Dim3D ], tr( "DIM_3D" ) );
+ myTabWg->addTab( myTabs[ Dim2D ], tr( "DIM_2D" ) );
+ myTabWg->addTab( myTabs[ Dim1D ], tr( "DIM_1D" ) );
// Hypotheses Sets
myHypoSetPopup = new QPopupMenu();
//================================================================================
void SMESHGUI_MeshDlg::setCurrentTab( const int theId )
{
- myTabWg->setCurrentPage( theId );
+ myTabWg->setCurrentPage( Dim3D - theId );
}
//================================================================================
void SMESHGUI_MeshDlg::setMaxHypoDim( const int maxDim )
{
- for ( int i = Dim1D; i <= Dim3D; ++i ) {
- int dim = i + 1;
- bool enable = ( dim <= maxDim );
+ const int DIM = maxDim - 1;
+ for ( int dim = Dim1D; dim <= Dim3D; ++dim ) {
+ bool enable = ( dim <= DIM );
if ( !enable )
- myTabs[ i ]->reset();
- myTabWg->setTabEnabled( myTabs[ i ], enable );
+ myTabs[ dim ]->reset();
+ myTabWg->setTabEnabled( myTabs[ dim ], enable );
}
+ // deselect desabled tab
+ if ( !myTabWg->isTabEnabled( myTabWg->currentPage() ))
+ setCurrentTab( DIM - 1 );
}
//================================================================================
//!< Emited when "Create hypothesis" button clicked
void editHyp( const int theHypType, const int theIndex );
//!< Emited when "Edit hypothesis" button clicked
+ void selectAlgo( const int theIndex );
+ //!< Emited when an algorithm is selected
private slots:
};
#endif
-
-
-
-
#include "SUIT_Desktop.h"
#include "SUIT_ResourceMgr.h"
#include "SUIT_OverrideCursor.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
#include "SALOMEDSClient_Study.hxx"
#include "SALOME_ListIO.hxx"
myMeshNbNodes = new QLabel(myMeshWidget, "myMeshNbNodes");
myMeshNbNodes->setMinimumWidth(100);
+ // --> header with orders
+ QLabel* myMeshOrder0Lab = new QLabel(tr("SMESH_MESHINFO_ORDER0"), myMeshWidget, "myMeshOrder0Lab");
+ QLabel* myMeshOrder1Lab = new QLabel(tr("SMESH_MESHINFO_ORDER1"), myMeshWidget, "myMeshOrder1Lab");
+ QLabel* myMeshOrder2Lab = new QLabel(tr("SMESH_MESHINFO_ORDER2"), myMeshWidget, "myMeshOrder2Lab");
+ QFont fnti = myMeshOrder0Lab->font(); fnti.setItalic(true);
+ myMeshOrder0Lab->setFont(fnti);
+ myMeshOrder1Lab->setFont(fnti);
+ myMeshOrder2Lab->setFont(fnti);
+
// --> edges
QLabel* myMeshNbEdgesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), myMeshWidget, "myMeshNbEdgesLab");
myMeshNbEdges = new QLabel(myMeshWidget, "myMeshNbEdges");
myMeshNbEdges->setMinimumWidth(100);
+ myMeshNbEdges1 = new QLabel(myMeshWidget, "myMeshNbEdges1");
+ myMeshNbEdges1->setMinimumWidth(100);
+ myMeshNbEdges2 = new QLabel(myMeshWidget, "myMeshNbEdges2");
+ myMeshNbEdges2->setMinimumWidth(100);
// --> faces
myMeshFacesGroup = new QGroupBox(tr("SMESH_MESHINFO_FACES"), myMeshWidget, "myMeshFacesGroup");
myMeshNbFaces = new QLabel(myMeshFacesGroup, "myMeshNbFaces");
myMeshNbFaces->setMinimumWidth(100);
myMeshNbFaces->setFont(fnt);
+ myMeshNbFaces1 = new QLabel(myMeshFacesGroup, "myMeshNbFaces1");
+ myMeshNbFaces1->setMinimumWidth(100);
+ myMeshNbFaces1->setFont(fnt);
+ myMeshNbFaces2 = new QLabel(myMeshFacesGroup, "myMeshNbFaces2");
+ myMeshNbFaces2->setMinimumWidth(100);
+ myMeshNbFaces2->setFont(fnt);
// --> faces --> triangles
QLabel* myMeshNbTrianglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TRIANGLES")), myMeshFacesGroup, "myMeshNbTrianglesLab");
myMeshNbTriangles = new QLabel(myMeshFacesGroup, "myMeshNbTriangles");
myMeshNbTriangles->setMinimumWidth(100);
+ myMeshNbTriangles1 = new QLabel(myMeshFacesGroup, "myMeshNbTriangles1");
+ myMeshNbTriangles1->setMinimumWidth(100);
+ myMeshNbTriangles2 = new QLabel(myMeshFacesGroup, "myMeshNbTriangles2");
+ myMeshNbTriangles2->setMinimumWidth(100);
// --> faces --> quadrangles
QLabel* myMeshNbQuadranglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_QUADRANGLES")), myMeshFacesGroup, "myMeshNbQuadranglesLab");
myMeshNbQuadrangles = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles");
myMeshNbQuadrangles->setMinimumWidth(100);
+ myMeshNbQuadrangles1 = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles1");
+ myMeshNbQuadrangles1->setMinimumWidth(100);
+ myMeshNbQuadrangles2 = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles2");
+ myMeshNbQuadrangles2->setMinimumWidth(100);
// --> faces --> polygons
QLabel* myMeshNbPolygonesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYGONES" ) ), myMeshFacesGroup, "myMeshNbPolygonesLab" );
myMeshFacesGroupLayout->addWidget(myMeshNbFacesLab, 0, 0);
myMeshFacesGroupLayout->addWidget(myMeshNbFaces, 0, 1);
+ myMeshFacesGroupLayout->addWidget(myMeshNbFaces1, 0, 2);
+ myMeshFacesGroupLayout->addWidget(myMeshNbFaces2, 0, 3);
myMeshFacesGroupLayout->addWidget(myMeshNbTrianglesLab, 1, 0);
myMeshFacesGroupLayout->addWidget(myMeshNbTriangles, 1, 1);
+ myMeshFacesGroupLayout->addWidget(myMeshNbTriangles1, 1, 2);
+ myMeshFacesGroupLayout->addWidget(myMeshNbTriangles2, 1, 3);
myMeshFacesGroupLayout->addWidget(myMeshNbQuadranglesLab, 2, 0);
myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles, 2, 1);
+ myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles1, 2, 2);
+ myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles2, 2, 3);
myMeshFacesGroupLayout->addWidget( myMeshNbPolygonesLab, 3, 0 );
myMeshFacesGroupLayout->addWidget( myMeshNbPolygones, 3, 1 );
myMeshNbVolumes = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes");
myMeshNbVolumes->setMinimumWidth(100);
myMeshNbVolumes->setFont(fnt);
+ myMeshNbVolumes1 = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes1");
+ myMeshNbVolumes1->setMinimumWidth(100);
+ myMeshNbVolumes1->setFont(fnt);
+ myMeshNbVolumes2 = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes2");
+ myMeshNbVolumes2->setMinimumWidth(100);
+ myMeshNbVolumes2->setFont(fnt);
// --> volumes --> tetrahedrons
QLabel* myMeshNbTetraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TETRAS")), myMeshVolumesGroup, "myMeshNbTetraLab");
myMeshNbTetra = new QLabel(myMeshVolumesGroup, "myMeshNbTetra");
myMeshNbTetra->setMinimumWidth(100);
+ myMeshNbTetra1 = new QLabel(myMeshVolumesGroup, "myMeshNbTetra1");
+ myMeshNbTetra1->setMinimumWidth(100);
+ myMeshNbTetra2 = new QLabel(myMeshVolumesGroup, "myMeshNbTetra2");
+ myMeshNbTetra2->setMinimumWidth(100);
// --> volumes --> hexahedrons
QLabel* myMeshNbHexaLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAS")), myMeshVolumesGroup, "myMeshNbHexaLab");
myMeshNbHexa = new QLabel(myMeshVolumesGroup, "myMeshNbHexa");
- myMeshNbHexaLab->setMinimumWidth(100);
+ myMeshNbHexa->setMinimumWidth(100);
+ myMeshNbHexa1 = new QLabel(myMeshVolumesGroup, "myMeshNbHexa1");
+ myMeshNbHexa1->setMinimumWidth(100);
+ myMeshNbHexa2 = new QLabel(myMeshVolumesGroup, "myMeshNbHexa2");
+ myMeshNbHexa2->setMinimumWidth(100);
// --> volumes --> prisms
QLabel* myMeshNbPrismLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PRISMS")), myMeshVolumesGroup, "myMeshNbPrismLab");
myMeshNbPrism = new QLabel(myMeshVolumesGroup, "myMeshNbPrism");
myMeshNbPrism->setMinimumWidth(100);
+ myMeshNbPrism1 = new QLabel(myMeshVolumesGroup, "myMeshNbPrism1");
+ myMeshNbPrism1->setMinimumWidth(100);
+ myMeshNbPrism2 = new QLabel(myMeshVolumesGroup, "myMeshNbPrism2");
+ myMeshNbPrism2->setMinimumWidth(100);
// --> volumes --> pyramids
QLabel* myMeshNbPyraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PYRAS")), myMeshVolumesGroup, "myMeshNbPyraLab");
myMeshNbPyra = new QLabel(myMeshVolumesGroup, "myMeshNbPyra");
myMeshNbPyra->setMinimumWidth(100);
+ myMeshNbPyra1 = new QLabel(myMeshVolumesGroup, "myMeshNbPyra1");
+ myMeshNbPyra1->setMinimumWidth(100);
+ myMeshNbPyra2 = new QLabel(myMeshVolumesGroup, "myMeshNbPyra2");
+ myMeshNbPyra2->setMinimumWidth(100);
// --> volumes --> polyherones
QLabel* myMeshNbPolyhedronesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYEDRES" ) ), myMeshVolumesGroup, "myMeshNbPolyhedronLab" );
myMeshVolumesGroupLayout->addWidget(myMeshNbVolumesLab, 0, 0);
myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes, 0, 1);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes1, 0, 2);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes2, 0, 3);
myMeshVolumesGroupLayout->addWidget(myMeshNbTetraLab, 1, 0);
myMeshVolumesGroupLayout->addWidget(myMeshNbTetra, 1, 1);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbTetra1, 1, 2);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbTetra2, 1, 3);
myMeshVolumesGroupLayout->addWidget(myMeshNbHexaLab, 2, 0);
myMeshVolumesGroupLayout->addWidget(myMeshNbHexa, 2, 1);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbHexa1, 2, 2);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbHexa2, 2, 3);
myMeshVolumesGroupLayout->addWidget(myMeshNbPrismLab, 3, 0);
myMeshVolumesGroupLayout->addWidget(myMeshNbPrism, 3, 1);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbPrism1, 3, 2);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbPrism2, 3, 3);
myMeshVolumesGroupLayout->addWidget(myMeshNbPyraLab, 4, 0);
myMeshVolumesGroupLayout->addWidget(myMeshNbPyra, 4, 1);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbPyra1, 4, 2);
+ myMeshVolumesGroupLayout->addWidget(myMeshNbPyra2, 4, 3);
myMeshVolumesGroupLayout->addWidget( myMeshNbPolyhedronesLab, 5, 0 );
myMeshVolumesGroupLayout->addWidget( myMeshNbPolyhedrones, 5, 1 );
aMeshLayout->addMultiCellWidget(line1, 1, 1, 0, 1);
aMeshLayout->addWidget(myMeshNbNodesLab, 2, 0);
aMeshLayout->addWidget(myMeshNbNodes, 2, 1);
- aMeshLayout->addWidget(myMeshNbEdgesLab, 3, 0);
- aMeshLayout->addWidget(myMeshNbEdges, 3, 1);
- aMeshLayout->addMultiCellWidget(myMeshFacesGroup, 4, 4, 0, 1);
- aMeshLayout->addMultiCellWidget(myMeshVolumesGroup, 5, 5, 0, 1);
- aMeshLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding), 6, 0);
+ aMeshLayout->addWidget(myMeshOrder0Lab, 3, 1);
+ aMeshLayout->addWidget(myMeshOrder1Lab, 3, 2);
+ aMeshLayout->addWidget(myMeshOrder2Lab, 3, 3);
+ aMeshLayout->addWidget(myMeshNbEdgesLab, 4, 0);
+ aMeshLayout->addWidget(myMeshNbEdges, 4, 1);
+ aMeshLayout->addWidget(myMeshNbEdges1, 4, 2);
+ aMeshLayout->addWidget(myMeshNbEdges2, 4, 3);
+ aMeshLayout->addMultiCellWidget(myMeshFacesGroup, 5, 5, 0, 3);
+ aMeshLayout->addMultiCellWidget(myMeshVolumesGroup, 6, 6, 0, 3);
+ aMeshLayout->addItem(new QSpacerItem(6, 6, QSizePolicy::Minimum, QSizePolicy::Expanding), 7, 0);
// submesh
mySubMeshWidget = new QWidget(myWGStack);
myButtonsGroupLayout->setAlignment(Qt::AlignTop);
myButtonsGroupLayout->setSpacing(6); myButtonsGroupLayout->setMargin(11);
- // buttons --> OK button
+ // buttons --> OK and Help buttons
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup, "myOkBtn");
myOkBtn->setAutoDefault(TRUE); myOkBtn->setDefault(TRUE);
- myButtonsGroupLayout->addStretch();
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP" ), myButtonsGroup, "myHelpBtn");
+ myHelpBtn->setAutoDefault(TRUE);
+
myButtonsGroupLayout->addWidget(myOkBtn);
myButtonsGroupLayout->addStretch();
+ myButtonsGroupLayout->addWidget(myHelpBtn);
aTopLayout->addLayout(aSelectLayout);
aTopLayout->addWidget(myWGStack);
// connect signals
connect(myOkBtn, SIGNAL(clicked()), this, SLOT(close()));
+ connect( myHelpBtn, SIGNAL(clicked()), this, SLOT(onHelp()));
connect(mySelectBtn, SIGNAL(clicked()), this, SLOT(onStartSelection()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(close()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
// init dialog with current selection
onSelectionChanged();
+
+ myHelpFileName = "/files/viewing_mesh_info.htm#advanced_infos";
}
//=================================================================================
myMeshName->setText(aSO->GetName().c_str());
myMeshNbNodes->setNum((int)aMesh->NbNodes());
myMeshNbEdges->setNum((int)aMesh->NbEdges());
+ myMeshNbEdges1->setNum((int)aMesh->NbEdgesOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbEdges2->setNum((int)aMesh->NbEdgesOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbFaces->setNum((int)aMesh->NbFaces());
+ myMeshNbFaces1->setNum((int)aMesh->NbFacesOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbFaces2->setNum((int)aMesh->NbFacesOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbTriangles->setNum((int)aMesh->NbTriangles());
+ myMeshNbTriangles1->setNum((int)aMesh->NbTrianglesOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbTriangles2->setNum((int)aMesh->NbTrianglesOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbQuadrangles->setNum((int)aMesh->NbQuadrangles());
+ myMeshNbQuadrangles1->setNum((int)aMesh->NbQuadranglesOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbQuadrangles2->setNum((int)aMesh->NbQuadranglesOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbPolygones->setNum( (int)aMesh->NbPolygons() );
myMeshNbVolumes->setNum((int)aMesh->NbVolumes());
+ myMeshNbVolumes1->setNum((int)aMesh->NbVolumesOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbVolumes2->setNum((int)aMesh->NbVolumesOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbTetra->setNum((int)aMesh->NbTetras());
+ myMeshNbTetra1->setNum((int)aMesh->NbTetrasOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbTetra2->setNum((int)aMesh->NbTetrasOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbHexa->setNum((int)aMesh->NbHexas());
+ myMeshNbHexa1->setNum((int)aMesh->NbHexasOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbHexa2->setNum((int)aMesh->NbHexasOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbPrism->setNum((int)aMesh->NbPrisms());
+ myMeshNbPrism1->setNum((int)aMesh->NbPrismsOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbPrism2->setNum((int)aMesh->NbPrismsOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbPyra->setNum((int)aMesh->NbPyramids());
+ myMeshNbPyra1->setNum((int)aMesh->NbPyramidsOfOrder(SMESH::ORDER_LINEAR));
+ myMeshNbPyra2->setNum((int)aMesh->NbPyramidsOfOrder(SMESH::ORDER_QUADRATIC));
myMeshNbPolyhedrones->setNum( (int)aMesh->NbPolyhedrons() );
return;
}
myStartSelection = true;
mySelectLab->setText(tr("INF_SELECT_OBJECT"));
}
+
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_MeshInfosDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
void DeactivateActiveDialog() ;
void ActivateThisDialog();
void onStartSelection();
+ void onHelp();
private:
SMESHGUI* mySMESHGUI;
QLabel* myMeshName;
QLabel* myMeshNbNodes;
QLabel* myMeshNbEdges;
+ QLabel* myMeshNbEdges1;
+ QLabel* myMeshNbEdges2;
QGroupBox* myMeshFacesGroup;
QLabel* myMeshNbFaces;
+ QLabel* myMeshNbFaces1;
+ QLabel* myMeshNbFaces2;
QLabel* myMeshNbTriangles;
+ QLabel* myMeshNbTriangles1;
+ QLabel* myMeshNbTriangles2;
QLabel* myMeshNbQuadrangles;
+ QLabel* myMeshNbQuadrangles1;
+ QLabel* myMeshNbQuadrangles2;
QLabel* myMeshNbPolygones;
QGroupBox* myMeshVolumesGroup;
QLabel* myMeshNbVolumes;
+ QLabel* myMeshNbVolumes1;
+ QLabel* myMeshNbVolumes2;
QLabel* myMeshNbTetra;
+ QLabel* myMeshNbTetra1;
+ QLabel* myMeshNbTetra2;
QLabel* myMeshNbHexa;
+ QLabel* myMeshNbHexa1;
+ QLabel* myMeshNbHexa2;
QLabel* myMeshNbPyra;
+ QLabel* myMeshNbPyra1;
+ QLabel* myMeshNbPyra2;
QLabel* myMeshNbPrism;
+ QLabel* myMeshNbPrism1;
+ QLabel* myMeshNbPrism2;
QLabel* myMeshNbPolyhedrones;
QWidget* mySubMeshWidget;
QLabel* myGroupType;
QLabel* myGroupNb;
- QGroupBox* myButtonsGroup;
- QPushButton* myOkBtn;
+ QGroupBox* myButtonsGroup;
+ QPushButton* myOkBtn;
+ QPushButton* myHelpBtn;
+
+ QString myHelpFileName;
};
#endif // SMESHGUI_MESHINFOSDLG_H
myToCreate( theToCreate ),
myIsMesh( theIsMesh ),
myDlg( 0 ),
- myShapeByMeshDlg( 0 )
+ myShapeByMeshOp( 0 )
{
if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
GeometryGUI::InitGeomGen();
QString aMess;
if ( !isValid( aMess ) )
{
+ dlg()->show();
if ( aMess != "" )
SUIT_MessageBox::warn1( myDlg,
tr( "SMESH_WRN_WARNING" ), aMess, tr( "SMESH_BUT_OK" ) );
for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
{
connect( myDlg->tab( i ), SIGNAL( createHyp( const int, const int ) ),
- this, SLOT( onCreateHyp( const int, const int) ) );
+ this, SLOT( onCreateHyp( const int, const int ) ) );
connect( myDlg->tab( i ), SIGNAL( editHyp( const int, const int ) ),
- this, SLOT( onEditHyp( const int, const int) ) );
+ this, SLOT( onEditHyp( const int, const int ) ) );
+ connect( myDlg->tab( i ), SIGNAL( selectAlgo( const int ) ),
+ this, SLOT( onAlgoSelected( const int ) ) );
}
connect( myDlg, SIGNAL( hypoSet( const QString& )), SLOT( onHypoSet( const QString& )));
connect( myDlg, SIGNAL( geomSelectionByMesh( bool )), SLOT( onGeomSelectionByMesh( bool )));
+
+ if ( myToCreate )
+ if ( myIsMesh ) myHelpFileName = "/files/constructing_meshes.htm";
+ else myHelpFileName = "/files/constructing_submeshes.htm";
+ else myHelpFileName = "files/reassigning_hypotheses_and_algorithms.htm";
}
SMESHGUI_SelectionOp::startOperation();
- // iterate through dimensions and get available and existing algoritms and hypotheses,
+ // iterate through dimensions and get available algoritms,
// set them to the dialog
- int i, j;
_PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
- for ( i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
+ for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
{
SMESHGUI_MeshTab* aTab = myDlg->tab( i );
- QStringList anAvailable, anExisting;
- for ( j = Algo; j <= AddHyp; j++ )
- {
- availableHyps( i, j, anAvailable );
- existingHyps( i, j, aFather, anExisting, myExistingHyps[ i ][ j ] );
-
- aTab->setAvailableHyps( j, anAvailable );
- aTab->setExistingHyps( j, anExisting );
- }
+ QStringList hypList;
+ // clear available hypotheses
+ aTab->setAvailableHyps( MainHyp, hypList );
+ aTab->setAvailableHyps( AddHyp, hypList );
+ aTab->setExistingHyps( MainHyp, hypList );
+ aTab->setExistingHyps( AddHyp, hypList );
+ myExistingHyps[ i ][ MainHyp ].clear();
+ myExistingHyps[ i ][ AddHyp ].clear();
+ // set algos
+ availableHyps( i, Algo, hypList, myAvailableHypData[i][Algo] );
+ aTab->setAvailableHyps( Algo, hypList );
}
if ( myToCreate )
{
myDlg->setHypoSets( SMESH::GetHypothesesSets() );
+ myDlg->setCurrentTab( SMESH::DIM_3D );
+ myDlg->show();
+
selectionDone();
- myDlg->setCurrentTab( SMESH::DIM_1D );
- myDlg->show();
+ myIgnoreAlgoSelection = false;
}
//================================================================================
case GEOM::COMPOUND: tag = SUBMESH_ON_COMPOUND_TAG; break;
default:;
}
+ _PTR(GenericAttribute) anAttr;
_PTR(SObject) aSubmeshRoot;
_PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
if ( pMesh->FindSubObject( tag, aSubmeshRoot ) )
for (; smIter->More(); smIter->Next() )
{
_PTR(SObject) aSmObj = smIter->Value();
+ if ( ! aSmObj->FindAttribute( anAttr, "AttributeIOR" ))
+ continue;
_PTR(ChildIterator) anIter1 = aStudy->NewChildIterator(aSmObj);
for (; anIter1->More(); anIter1->Next()) {
_PTR(SObject) pGeom2 = anIter1->Value();
//================================================================================
void SMESHGUI_MeshOp::selectionDone()
{
- if ( myShapeByMeshDlg && myShapeByMeshDlg->isShown() )
+ if ( !dlg()->isShown() )
return;
SMESHGUI_SelectionOp::selectionDone();
}
myDlg->setMaxHypoDim( shapeDim );
+
if ( !myToCreate ) // edition: read hypotheses
{
QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
}
else
{
- selectObject( _PTR(SObject)() );
myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
+ selectObject( _PTR(SObject)() );
+ selectionDone();
}
}
SMESH::SMESH_Mesh_var mesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
if ( !mesh->_is_nil() )
enable = ( shapeDim > 1 ) && ( mesh->NbEdges() > 0 );
- }
+ }
myDlg->setGeomPopupEnabled( enable );
}
}
return true;
}
+//================================================================================
+/*!
+ * \brief check compatibility of the algorithm and another algorithm or hypothesis
+ * \param theAlgoData - algorithm data
+ * \param theHypData - hypothesis data
+ * \param theHypType - hypothesis type
+ * \param theHypTypeName - hypothesis type name, must be provided if 2-nd arg is not algo
+ * \retval bool - check result
+ */
+//================================================================================
+
+static bool isCompatible(const HypothesisData* theAlgoData,
+ const HypothesisData* theHypData,
+ const int theHypType)
+{
+ if ( !theAlgoData )
+ return true;
+
+ if ( theHypType == SMESHGUI_MeshOp::Algo )
+ return SMESH::IsCompatibleAlgorithm( theAlgoData, theHypData );
+
+ bool isOptional;
+ return ( SMESH::IsAvailableHypothesis( theAlgoData, theHypData->TypeName, isOptional ));
+}
+
//================================================================================
/*!
* \brief Gets available hypotheses or algorithms
* \param theHypType - specifies whether algorims or hypotheses or additional ones
* are retrieved (possible values are in HypType enumeration)
* \param theHyps - Output list of hypotheses' names
+ * \param theAlgoData - to select hypos able to be used by this algo (optional)
*
* Gets available hypotheses or algorithm in accordance with input parameters
*/
//================================================================================
-void SMESHGUI_MeshOp::availableHyps( const int theDim,
- const int theHypType,
- QStringList& theHyps ) const
+void SMESHGUI_MeshOp::availableHyps( const int theDim,
+ const int theHypType,
+ QStringList& theHyps,
+ THypDataList& theDataList,
+ HypothesisData* theAlgoData ) const
{
+ theDataList.clear();
theHyps.clear();
- QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses(
- theHypType == Algo , theDim, theHypType == AddHyp );
+ bool isAlgo = ( theHypType == Algo );
+ bool isAux = ( theHypType == AddHyp );
+ QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux );
+
QStringList::const_iterator anIter;
for ( anIter = aHypTypeNameList.begin(); anIter != aHypTypeNameList.end(); ++anIter )
{
HypothesisData* aData = SMESH::GetHypothesisData( *anIter );
- theHyps.append( aData->Label );
+ if ( isCompatible ( theAlgoData, aData, theHypType )) {
+ theDataList.append( aData );
+ theHyps.append( aData->Label );
+ }
}
}
* \param theHypType - specifies whether algorims or hypotheses or additional ones
* are retrieved (possible values are in HypType enumeration)
* \param theFather - start object for finding ( may be component, mesh, or sub-mesh )
+ * \param theDataList - output list of hypotheses data
* \param theHyps - output list of names.
* \param theHypVars - output list of variables.
+ * \param theAlgoData - to select hypos able to be used by this algo (optional)
*
* Gets existing (i.e. already created) hypotheses or algorithm in accordance with
* input parameters
const int theHypType,
_PTR(SObject) theFather,
QStringList& theHyps,
- QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars )
+ QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars,
+ HypothesisData* theAlgoData)
{
// Clear hypoheses list
theHyps.clear();
if ( !theFather )
return;
+ const bool isAux = ( theHypType == AddHyp );
+
_PTR(SObject) aHypRoot;
_PTR(GenericAttribute) anAttr;
_PTR(AttributeName) aName;
QString aHypType( aHypVar->GetName() );
HypothesisData* aData = SMESH::GetHypothesisData( aHypType );
if ( ( theDim == -1 || aData->Dim.contains( theDim ) ) &&
- ( theHypType == AddHyp ) == aData->IsAux )
+ ( isCompatible ( theAlgoData, aData, theHypType )) &&
+ ( isAux == aData->IsAux ))
{
+ //theDataList.append( aData );
theHyps.append( aName->Value().c_str() );
theHypVars.append( aHypVar );
}
//================================================================================
/*!
- * \brief Calls plugin methods for hypothesis creation
- * \param theHypType - specifies whether main hypotheses or additional ones
- * are created
+ * \Brief Returns tab dimention
+ * \param tab - the tab in the dlg
+ * \param dlg - my dialogue
+ * \retval int - dimention
+ */
+//================================================================================
+
+static int getTabDim (const QObject* tab, SMESHGUI_MeshDlg* dlg )
+{
+ int aDim = -1;
+ for (int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++)
+ if (tab == dlg->tab(i))
+ aDim = i;
+ return aDim;
+}
+
+//================================================================================
+/*!
+ * \brief Create hypothesis
+ * \param theHypType - hypothesis category (main or additional)
* \param theIndex - index of type of hypothesis to be cerated
*
- * Speicfies dimension of hypothesis to be created (using sender() method), specifies
- * its type and calls plugin methods for hypothesis creation
+ * Specifies dimension of hypothesis to be created (using sender() method),
+ * specifies its type and calls method for hypothesis creation
*/
//================================================================================
void SMESHGUI_MeshOp::onCreateHyp( const int theHypType, const int theIndex )
{
- // Speicfies dimension of hypothesis to be created
- const QObject* aSender = sender();
- int aDim = -1;
- for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
- if ( aSender == myDlg->tab( i ) )
- aDim = i;
- if ( aDim == -1 )
+ // Specifies dimension of hypothesis to be created
+ int aDim = getTabDim( sender(), myDlg );
+ if (aDim == -1)
return;
- // Speicfies type of hypothesis to be created
- QStringList aHypTypeNames = SMESH::GetAvailableHypotheses( false , aDim, theHypType == AddHyp );
- if ( theIndex < 0 || theIndex >= aHypTypeNames.count() )
+ // Specifies type of hypothesis to be created
+ THypDataList& dataList = myAvailableHypData[ aDim ][ theHypType ];
+ if (theIndex < 0 || theIndex >= dataList.count())
return;
+ QString aHypTypeName = dataList[ theIndex ]->TypeName;
- QString aHypTypeName = aHypTypeNames[ theIndex ];
- HypothesisData* aData = SMESH::GetHypothesisData( aHypTypeName.latin1() );
- if ( aData == 0 )
+ // Create hypothesis
+ createHypothesis(aDim, theHypType, aHypTypeName);
+}
+
+//================================================================================
+/*!
+ * Create hypothesis and update dialog.
+ * \param theDim - dimension of hypothesis to be created
+ * \param theType - hypothesis category (algorithm, hypothesis, additional hypothesis)
+ * \param theTypeName - specifies hypothesis to be created
+ */
+//================================================================================
+void SMESHGUI_MeshOp::createHypothesis (const int theDim,
+ const int theType,
+ const QString& theTypeName)
+{
+ HypothesisData* aData = SMESH::GetHypothesisData(theTypeName.latin1());
+ if (!aData)
return;
- QString aClientLibName = aData->ClientLibName;
- QStringList anOldHyps;
- _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
- existingHyps( aDim, theHypType, aFather, anOldHyps, myExistingHyps[ aDim ][ theHypType ] );
+ // existing hypos
+ int nbHyp = myExistingHyps[theDim][theType].count();
- if ( aClientLibName == "" )
- {
+ QString aClientLibName = aData->ClientLibName;
+ if (aClientLibName == "") {
// Call hypothesis creation server method (without GUI)
- QString aHypName = aData->Label;
- SMESH::CreateHypothesis( aHypTypeName, aHypName, false );
- }
- else
- {
+ SMESH::CreateHypothesis(theTypeName, aData->Label, false);
+ } else {
// Get hypotheses creator client (GUI)
- SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator( aHypTypeName );
+ SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(theTypeName);
// Create hypothesis
- if ( aCreator )
- {
+ if (aCreator) {
// When create or edit a submesh, try to initialize a new hypothesis
// with values used to mesh a subshape
SMESH::SMESH_Hypothesis_var initParamHyp =
- getInitParamsHypothesis( aHypTypeName, aData->ServerLibName );
-
- if ( initParamHyp->_is_nil() )
- aCreator->create( false, myDlg );
- else
- aCreator->create( initParamHyp, myDlg );
- }
- else
- {
- SMESH::CreateHypothesis( aHypTypeName, aData->Label, false );
+ getInitParamsHypothesis(theTypeName, aData->ServerLibName);
+ aCreator->create(initParamHyp, myDlg);
+ } else {
+ SMESH::CreateHypothesis(theTypeName, aData->Label, false);
}
}
+ _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
+
+ HypothesisData* algoData = hypData( theDim, Algo, currentHyp( theDim, Algo ));
QStringList aNewHyps;
- aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
- existingHyps( aDim, theHypType, aFather, aNewHyps, myExistingHyps[ aDim ][ theHypType ] );
- if ( aNewHyps.count() > anOldHyps.count() )
- {
- for ( int i = anOldHyps.count(); i < aNewHyps.count(); i++ )
- myDlg->tab( aDim )->addHyp( theHypType, aNewHyps[ i ] );
+ existingHyps(theDim, theType, aFather, aNewHyps, myExistingHyps[theDim][theType], algoData);
+ if (aNewHyps.count() > nbHyp) {
+ for (int i = nbHyp; i < aNewHyps.count(); i++)
+ myDlg->tab(theDim)->addHyp(theType, aNewHyps[i]);
}
}
void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
{
// Speicfies dimension of hypothesis to be created
- const QObject* aSender = sender();
- int aDim = -1;
- for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
- if ( aSender == myDlg->tab( i ) )
- aDim = i;
- if ( aDim == -1 )
+ int aDim = getTabDim( sender(), myDlg );
+ if (aDim == -1)
return;
QValueList<SMESH::SMESH_Hypothesis_var> aList = myExistingHyps[ aDim ][ theHypType ];
- SMESH::SMESH_Hypothesis_var aHyp = aList[ theIndex - 1 ];
+ if ( theIndex < 0 || theIndex >= aList.count() )
+ return;
+ SMESH::SMESH_Hypothesis_var aHyp = aList[ theIndex ];
if ( aHyp->_is_nil() )
return;
//================================================================================
/*!
- * \brief Creates and selects hypothesis of hypotheses set
- * \param theSetName - The name of hypotheses set
+ * \brief access to hypothesis data
+ * \param theDim - hyp dimension
+ * \param theHypType - hyp type (Algo,MainHyp or AddHyp)
+ * \param theIndex - index in the list
+ * \retval HypothesisData* - result data, may be 0
*/
//================================================================================
-void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
+HypothesisData* SMESHGUI_MeshOp::hypData( const int theDim,
+ const int theHypType,
+ const int theIndex)
{
- HypothesesSet* aHypoSet = SMESH::GetHypothesesSet( theSetName );
- if ( !aHypoSet ) return;
+ if ( theDim > -1 && theDim < 3 &&
+ theHypType > -1 && theHypType < NbHypTypes &&
+ theIndex > -1 && theIndex < myAvailableHypData[ theDim ][ theHypType ].count() )
+ return myAvailableHypData[ theDim ][ theHypType ][ theIndex ];
+ return 0;
+}
+
+//================================================================================
+/*!
+ * \brief Set available algos and hypos according to the selected algorithm
+ * \param theIndex - algorithm index
+ */
+//================================================================================
+
+void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
+ const int theDim )
+{
+ if ( myIgnoreAlgoSelection )
+ return;
- for ( int aHypType = Algo; aHypType < AddHyp; aHypType++ )
+ int aDim = theDim < 0 ? getTabDim( sender(), myDlg ): theDim;
+ if (aDim == -1)
+ return;
+
+ // find highest available dimension, all algos of this dimension are available for choice
+ int aTopDim = -1;
+ for (int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++)
+ if (isAccessibleDim( i ))
+ aTopDim = i;
+ if (aTopDim == -1)
+ return;
+
+ const bool isSubmesh = ( myToCreate ? !myIsMesh : myDlg->isObjectShown( SMESHGUI_MeshDlg::Mesh ));
+
+ HypothesisData* algoData = hypData( aDim, Algo, theIndex );
+ HypothesisData* algoByDim[3];
+ algoByDim[ aDim ] = algoData;
+
+ QStringList anAvailable;
+ if ( !algoData ) { // all algos becomes available
+ availableHyps( aDim, Algo, anAvailable, myAvailableHypData[ aDim ][ Algo ]);
+ myDlg->tab( aDim )->setAvailableHyps( Algo, anAvailable );
+ }
+
+ // check that algorithms of other dimentions are compatible with
+ // the selected one
+
+ // 2 loops: backward and forward from algo dimension
+ for ( int forward = false; forward <= true; ++forward )
{
- bool isAlgo = (aHypType == Algo);
+ int dim = aDim + 1, lastDim = SMESH::DIM_3D, dir = 1;
+ if ( !forward ) {
+ dim = aDim - 1; lastDim = SMESH::DIM_1D; dir = -1;
+ }
+ HypothesisData* prevAlgo = algoData;
+ bool noCompatible = false;
+ for ( ; dim * dir <= lastDim * dir ; dim += dir )
+ {
+ if ( !isAccessibleDim( dim ))
+ continue;
+ if ( noCompatible ) { // the selected algo has no compatible ones
+ anAvailable.clear();
+ myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
+ myAvailableHypData[dim][Algo].clear();
+ algoByDim[ dim ] = 0;
+ continue;
+ }
+ // get currently selected algo
+ int algoIndex = currentHyp( dim, Algo );
+ HypothesisData* curAlgo = hypData( dim, Algo, algoIndex );
+ if ( curAlgo ) { // some algo selected
+ if ( !isCompatible( prevAlgo, curAlgo, Algo ))
+ curAlgo = 0;
+ }
+ // set new available algoritms
+ availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], prevAlgo );
+ HypothesisData* soleCompatible = 0;
+ if ( anAvailable.count() == 1 )
+ soleCompatible = myAvailableHypData[dim][Algo][0];
+ if ( dim == aTopDim && prevAlgo ) // all available algoritms should be selectable any way
+ availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], 0 );
+ myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
+ noCompatible = anAvailable.isEmpty();
+
+ // restore previously selected algo
+ algoIndex = myAvailableHypData[dim][Algo].findIndex( curAlgo );
+ if ( !isSubmesh && algoIndex < 0 && soleCompatible )
+ // select the sole compatible algo
+ algoIndex = myAvailableHypData[dim][Algo].findIndex( soleCompatible );
+ setCurrentHyp( dim, Algo, algoIndex );
+
+ // remember current algo
+ prevAlgo = algoByDim[ dim ] = hypData( dim, Algo, algoIndex );
+ }
+ }
- // clear all hyps
- for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
- setCurrentHyp( dim, aHypType, -1 );
+ // set hypotheses corresponding to the found algoritms
- // set hyps from the set
-
- QStringList* aHypoList = isAlgo ? & aHypoSet->AlgoList : & aHypoSet->HypoList;
- for ( int i = 0, n = aHypoList->count(); i < n; i++ )
+ _PTR(SObject) pObj = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
+
+ for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
+ {
+ if ( !isAccessibleDim( dim ))
+ continue;
+ for ( int type = MainHyp; type < NbHypTypes; type++ )
{
+ myAvailableHypData[ dim ][ type ].clear();
+ QStringList anAvailable, anExisting;
+
+ HypothesisData* curAlgo = algoByDim[ dim ];
+ int hypIndex = currentHyp( dim, type );
+
+ SMESH::SMESH_Hypothesis_var curHyp;
+ if ( hypIndex >= 0 && hypIndex < myExistingHyps[ dim ][ type ].count() )
+ curHyp = myExistingHyps[ dim ][ type ][ hypIndex ];
+
+ if ( !myToCreate && !curAlgo && !curHyp->_is_nil() ) { // edition, algo not selected
+ // try to find algo by selected hypothesis in order to keep it selected
+ bool algoDeselectedByUser = ( theDim < 0 && aDim == dim );
+ QString curHypType = curHyp->GetName();
+ if ( !algoDeselectedByUser &&
+ myObjHyps[ dim ][ type ].count() > 0 &&
+ curHypType == myObjHyps[ dim ][ type ][ 0 ]->GetName())
+ {
+ HypothesisData* hypData = SMESH::GetHypothesisData( curHyp->GetName() );
+ for ( int i = 0 ; i < myAvailableHypData[ dim ][ Algo ].count(); ++i ) {
+ curAlgo = myAvailableHypData[ dim ][ Algo ][ i ];
+ if ( curAlgo && hypData && isCompatible( curAlgo, hypData, type ))
+ break;
+ else
+ curAlgo = 0;
+ }
+ }
+ }
+ // get hyps compatible with curAlgo
+ if ( curAlgo )
+ {
+ // check if a selected hyp is compatible with the curAlgo
+ if ( !curHyp->_is_nil() ) {
+ HypothesisData* hypData = SMESH::GetHypothesisData( curHyp->GetName() );
+ if ( !isCompatible( curAlgo, hypData, type ))
+ curHyp = SMESH::SMESH_Hypothesis::_nil();
+ }
+ existingHyps( dim, type, pObj, anExisting, myExistingHyps[ dim ][ type ], curAlgo);
+ availableHyps( dim, type, anAvailable, myAvailableHypData[ dim ][ type ], curAlgo);
+ }
+ // set list of hypotheses
+ myDlg->tab( dim )->setAvailableHyps( type, anAvailable );
+ myDlg->tab( dim )->setExistingHyps( type, anExisting );
+
+ // set current existing hypothesis
+ if ( !curHyp->_is_nil() && !anExisting.isEmpty() )
+ hypIndex = this->find( curHyp, myExistingHyps[ dim ][ type ]);
+ else
+ hypIndex = -1;
+ if ( !isSubmesh && hypIndex < 0 && anExisting.count() == 1 ) {
+ // none is yet selected => select the sole existing if it is not optional
+ QString hypTypeName = myExistingHyps[ dim ][ type ][ 0 ]->GetName();
+ bool isOptional = true;
+ if ( algoByDim[ dim ] &&
+ SMESH::IsAvailableHypothesis( algoByDim[ dim ], hypTypeName, isOptional ) &&
+ !isOptional )
+ hypIndex = 0;
+ }
+ setCurrentHyp( dim, type, hypIndex );
+ }
+ }
+}
+
+//================================================================================
+/*!
+ * \brief Creates and selects hypothesis of hypotheses set
+ * \param theSetName - The name of hypotheses set
+ */
+//================================================================================
+void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
+{
+ HypothesesSet* aHypoSet = SMESH::GetHypothesesSet(theSetName);
+ if (!aHypoSet) return;
+
+ // clear all hyps
+ for (int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++) {
+ setCurrentHyp(dim, Algo, -1);
+ setCurrentHyp(dim, AddHyp, -1);
+ setCurrentHyp(dim, MainHyp, -1);
+ }
+
+ for (int aHypType = Algo; aHypType < AddHyp; aHypType++) {
+ bool isAlgo = (aHypType == Algo);
+
+ // set hyps from the set
+ QStringList* aHypoList = isAlgo ? &aHypoSet->AlgoList : &aHypoSet->HypoList;
+ for (int i = 0, n = aHypoList->count(); i < n; i++) {
const QString& aHypoTypeName = (*aHypoList)[ i ];
- HypothesisData* aHypData = SMESH::GetHypothesisData( aHypoTypeName );
- if ( !aHypData )
+ HypothesisData* aHypData = SMESH::GetHypothesisData(aHypoTypeName);
+ if (!aHypData)
continue;
int aDim = aHypData->Dim[0];
// create or/and set
- int index = -1;
- if ( isAlgo )
- {
- QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, aDim );
- index = aHypTypeNameList.findIndex( aHypoTypeName );
- if ( index < 0 ) continue;
- setCurrentHyp ( aDim, aHypType, index );
- }
- else
- {
- // try to find an existing hypo
- QValueList<SMESH::SMESH_Hypothesis_var> & aList = myExistingHyps[ aDim ][ aHypType ];
- int /*iHyp = 0,*/ nbHyp = aList.count();
-// for ( ; iHyp < nbHyp; ++iHyp )
-// {
-// SMESH::SMESH_Hypothesis_var aHyp = aList[ iHyp ];
-// if ( !aHyp->_is_nil() && aHypoTypeName == aHyp->GetName() ) {
-// index = iHyp;
-// break;
-// }
-// }
- if ( index >= 0 ) // found
- {
- // select the found hypothesis
- setCurrentHyp ( aDim, aHypType, index );
+ if (isAlgo) {
+ int index = myAvailableHypData[aDim][Algo].findIndex( aHypData );
+ if ( index < 0 ) {
+ QStringList anAvailable;
+ availableHyps( aDim, Algo, anAvailable, myAvailableHypData[aDim][Algo] );
+ myDlg->tab( aDim )->setAvailableHyps( Algo, anAvailable );
+ index = myAvailableHypData[aDim][Algo].findIndex( aHypData );
}
- else
- {
- // create a hypothesis
- QString aClientLibName = aHypData->ClientLibName;
- if ( aClientLibName == "" ) {
- // Call hypothesis creation server method (without GUI)
- SMESH::CreateHypothesis( aHypoTypeName, aHypData->Label, isAlgo );
- }
- else {
- // Get hypotheses creator client (GUI)
- SMESHGUI_GenericHypothesisCreator* aCreator =
- SMESH::GetHypothesisCreator( aHypoTypeName );
- if ( aCreator )
- {
- // When create or edit a submesh, try to initialize a new hypothesis
- // with values used to mesh a subshape
- SMESH::SMESH_Hypothesis_var initParamHyp =
- getInitParamsHypothesis( aHypoTypeName, aHypData->ServerLibName );
- aCreator->create( initParamHyp, myDlg );
- }
- else
- {
- SMESH::CreateHypothesis( aHypoTypeName, aHypData->Label, isAlgo );
- }
- }
- QStringList aNewHyps;
- _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
- existingHyps( aDim, aHypType, aFather, aNewHyps, aList );
- if ( aList.count() > nbHyp )
- {
- for ( int i = nbHyp; i < aNewHyps.count(); i++ )
- myDlg->tab( aDim )->addHyp( aHypType, aNewHyps[ i ] );
- }
+ setCurrentHyp( aDim, Algo, index );
+ onAlgoSelected( index, aDim );
+ }
+ else {
+ bool mainHyp = true;
+ int index = myAvailableHypData[aDim][MainHyp].findIndex( aHypData );
+ if ( index < 0 ) {
+ mainHyp = false;
+ index = myAvailableHypData[aDim][AddHyp].findIndex( aHypData );
}
+ if (index >= 0)
+ createHypothesis(aDim, mainHyp ? MainHyp : AddHyp, aHypoTypeName);
}
} // loop on hypos in the set
} // loop on algo/hypo
}
}
}
+
+ // deselect geometry: next submesh sould be created on other subshape
+ myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
+ selectObject( _PTR(SObject)() );
+ selectionDone();
+
return true;
}
* \retval bool - result
*/
//================================================================================
-bool SMESHGUI_MeshOp::isAccessibleDim( const int theDim) const
+bool SMESHGUI_MeshOp::isAccessibleDim( const int theDim ) const
{
return myDlg->tab( theDim )->isEnabled();
}
const int theHypType,
const int theIndex )
{
+ myIgnoreAlgoSelection = true;
myDlg->tab( theDim )->setCurrentHyp( theHypType, theIndex + 1 );
+ myIgnoreAlgoSelection = false;
}
//================================================================================
SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
{
SMESH::SMESH_Hypothesis_var anAlgoVar;
+
+ // get type of the selected algo
int aHypIndex = currentHyp( theDim, Algo );
- QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( true, theDim, false );
- if ( aHypIndex < 0 || aHypIndex >= aHypTypeNameList.count() )
+ THypDataList& dataList = myAvailableHypData[ theDim ][ Algo ];
+ if ( aHypIndex < 0 || aHypIndex >= dataList.count())
return anAlgoVar;
- QString aHypName = aHypTypeNameList[ aHypIndex ];
+ QString aHypName = dataList[ aHypIndex ]->TypeName;
+
+ // get existing algoritms
+ _PTR(SObject) pObj = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
+ QStringList tmp;
+ existingHyps( theDim, Algo, pObj, tmp, myExistingHyps[ theDim ][ Algo ]);
+
+ // look for anexisting algo of such a type
QValueList<SMESH::SMESH_Hypothesis_var>& aHypVarList = myExistingHyps[ theDim ][ Algo ];
QValueList<SMESH::SMESH_Hypothesis_var>::iterator anIter;
for ( anIter = aHypVarList.begin(); anIter != aHypVarList.end(); anIter++ )
break;
}
}
- if ( anAlgoVar->_is_nil() )
- {
+
+ if (anAlgoVar->_is_nil()) {
HypothesisData* aHypData = SMESH::GetHypothesisData( aHypName );
- if ( aHypData )
- {
+ if (aHypData) {
QString aClientLibName = aHypData->ClientLibName;
- if ( aClientLibName == "" )
- SMESH::CreateHypothesis( aHypName, aHypData->Label, true );
- else
- {
- SMESHGUI_GenericHypothesisCreator* aCreator =
- SMESH::GetHypothesisCreator( aHypName );
- if ( aCreator )
- aCreator->create( true, myDlg );
+ if (aClientLibName == "") {
+ // Call hypothesis creation server method (without GUI)
+ SMESH::CreateHypothesis(aHypName, aHypData->Label, true);
+ } else {
+ // Get hypotheses creator client (GUI)
+ SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypName);
+
+ // Create algorithm
+ if (aCreator)
+ aCreator->create(true, myDlg);
+ else
+ SMESH::CreateHypothesis(aHypName, aHypData->Label, true);
}
QStringList tmpList;
_PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
}
// Get hypotheses and algorithms assigned to the mesh/sub-mesh
+ QStringList anExisting;
for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
{
// get algorithm
- QStringList anExisting;
- int aHypIndex = -1;
existingHyps( dim, Algo, pObj, anExisting, myObjHyps[ dim ][ Algo ] );
+ // find algo index among available ones
+ int aHypIndex = -1;
if ( myObjHyps[ dim ][ Algo ].count() > 0 )
{
SMESH::SMESH_Hypothesis_var aVar = myObjHyps[ dim ][ Algo ].first();
QString aHypTypeName = aVar->GetName();
-
- QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( true , dim, false );
- for ( int i = 0, n = aHypTypeNameList.count(); i < n; i++ )
- if ( aHypTypeName == aHypTypeNameList[ i ] )
- {
- aHypIndex = i;
- break;
- }
+ HypothesisData* algoData = SMESH::GetHypothesisData( aHypTypeName );
+ aHypIndex = myAvailableHypData[ dim ][ Algo ].findIndex ( algoData );
+// if ( aHypIndex < 0 && algoData ) {
+// // assigned algo is incompatible with other algorithms
+// myAvailableHypData[ dim ][ Algo ].push_back( algoData );
+// aHypIndex = myAvailableHypData[ dim ][ hypType ].count() - 1;
+// }
}
setCurrentHyp( dim, Algo, aHypIndex );
+ // set existing and available hypothesis according to the selected algo
+ onAlgoSelected( aHypIndex, dim );
+ }
- // get hypotheses
+ // get hypotheses
+ bool hypWithoutAlgo = false;
+ for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
+ {
for ( int hypType = MainHyp; hypType <= AddHyp; hypType++ )
{
// get hypotheses
existingHyps( dim, hypType, pObj, anExisting, myObjHyps[ dim ][ hypType ] );
- // find index of requered hypothesis among existing ones for this dimension
- // and hyp types
+ // find index of requered hypothesis among existing ones for this dimension and type
int aHypIndex = -1;
- if ( myObjHyps[ dim ][ hypType ].count() > 0 )
+ if ( myObjHyps[ dim ][ hypType ].count() > 0 ) {
aHypIndex = find( myObjHyps[ dim ][ hypType ].first(),
myExistingHyps[ dim ][ hypType ] );
+ if ( aHypIndex < 0 ) {
+ // assigned hypothesis is incompatible with the algorithm
+ if ( currentHyp( dim, Algo ) < 0 )
+ { // none algo selected; it is edition for sure, of submesh maybe
+ hypWithoutAlgo = true;
+ myExistingHyps[ dim ][ hypType ].push_back( myObjHyps[ dim ][ hypType ].first() );
+ aHypIndex = myExistingHyps[ dim ][ hypType ].count() - 1;
+ myDlg->tab( dim )->setExistingHyps( hypType, anExisting );
+ }
+ }
+ }
setCurrentHyp( dim, hypType, aHypIndex );
}
}
+ // make available other hyps of same type as one without algo
+ if ( hypWithoutAlgo )
+ onAlgoSelected( currentHyp( 0, Algo ), 0 );
}
//================================================================================
}
}
// remove old algorithm
- if ( toDelete )
- SMESH::RemoveHypothesisOrAlgorithmOnMesh
- ( pObj, myObjHyps[ dim ][ Algo ].first() );
+ if ( toDelete ) {
+ SMESH::RemoveHypothesisOrAlgorithmOnMesh ( pObj, myObjHyps[ dim ][ Algo ].first() );
+ myObjHyps[ dim ][ Algo ].clear();
+ }
// assign new algorithm
if ( toAdd ) {
if ( !aVar->_is_nil() )
SMESH::AddHypothesisOnSubMesh( aVar, anAlgoVar );
}
+ myObjHyps[ dim ][ Algo ].append( anAlgoVar );
}
// assign hypotheses
if ( aNewHypIndex != anOldHypIndex )
{
// remove old hypotheses
- if ( anOldHypIndex >= 0 )
+ if ( anOldHypIndex >= 0 ) {
SMESH::RemoveHypothesisOrAlgorithmOnMesh(
pObj, myExistingHyps[ dim ][ hypType ][ anOldHypIndex ] );
+ myObjHyps[ dim ][ hypType ].clear();
+ }
// assign new hypotheses
if ( aNewHypIndex != -1 )
void SMESHGUI_MeshOp::onGeomSelectionByMesh( bool theByMesh )
{
if ( theByMesh ) {
- if ( !myShapeByMeshDlg ) {
- myShapeByMeshDlg = new SMESHGUI_ShapeByMeshDlg( SMESHGUI::GetSMESHGUI(), "ShapeByMeshDlg");
- connect(myShapeByMeshDlg, SIGNAL(PublishShape()), SLOT(onPublishShapeByMeshDlg()));
- connect(myShapeByMeshDlg, SIGNAL(Close()), SLOT(onCloseShapeByMeshDlg()));
+ if ( !myShapeByMeshOp ) {
+ myShapeByMeshOp = new SMESHGUI_ShapeByMeshOp();
+ connect(myShapeByMeshOp, SIGNAL(committed(SUIT_Operation*)),
+ SLOT(onPublishShapeByMeshDlg(SUIT_Operation*)));
+ connect(myShapeByMeshOp, SIGNAL(aborted(SUIT_Operation*)),
+ SLOT(onCloseShapeByMeshDlg(SUIT_Operation*)));
}
- // set mesh object to dlg
+ // set mesh object to SMESHGUI_ShapeByMeshOp and start it
QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
if ( _PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry.latin1() )) {
SMESH::SMESH_Mesh_var aMeshVar =
SMESH::SMESH_Mesh::_narrow( _CAST( SObject,pMesh )->GetObject() );
if ( !aMeshVar->_is_nil() ) {
- myDlg->hide();
- myDlg->activateObject( SMESHGUI_MeshDlg::Mesh );
- myShapeByMeshDlg->Init();
- myShapeByMeshDlg->SetMesh( aMeshVar );
- myShapeByMeshDlg->show();
+ myDlg->hide(); // stop processing selection
+ myShapeByMeshOp->setModule( getSMESHGUI() );
+ myShapeByMeshOp->setStudy( 0 ); // it's really necessary
+ myShapeByMeshOp->SetMesh( aMeshVar );
+ myShapeByMeshOp->start();
}
}
}
*/
//================================================================================
-void SMESHGUI_MeshOp::onPublishShapeByMeshDlg()
+void SMESHGUI_MeshOp::onPublishShapeByMeshDlg(SUIT_Operation* op)
{
- if ( myShapeByMeshDlg ) {
+ if ( myShapeByMeshOp == op ) {
+ myDlg->show();
// Select a found geometry object
- GEOM::GEOM_Object_var aGeomVar = myShapeByMeshDlg->GetShape();
+ GEOM::GEOM_Object_var aGeomVar = myShapeByMeshOp->GetShape();
if ( !aGeomVar->_is_nil() )
{
QString ID = aGeomVar->GetStudyEntry();
- if ( _PTR(SObject) aGeomSO = studyDS()->FindObjectID( ID )) {
- SMESH::SMESH_Mesh_ptr aMeshPtr = myShapeByMeshDlg->GetMesh();
- if ( !CORBA::is_nil( aMeshPtr )) {
- if (_PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshPtr )) {
- myDlg->activateObject( SMESHGUI_MeshDlg::Mesh );
- myDlg->selectObject( aMeshSO->GetName(), SMESHGUI_MeshDlg::Mesh, aMeshSO->GetID() );
- }
- }
- myDlg->activateObject( SMESHGUI_MeshDlg::Geom );
+ if ( _PTR(SObject) aGeomSO = studyDS()->FindObjectID( ID.latin1() )) {
selectObject( aGeomSO );
- //selectionDone();
+ selectionDone();
}
}
- else {
- onCloseShapeByMeshDlg();
- }
}
- myDlg->show();
}
//================================================================================
*/
//================================================================================
-void SMESHGUI_MeshOp::onCloseShapeByMeshDlg()
+void SMESHGUI_MeshOp::onCloseShapeByMeshDlg(SUIT_Operation* op)
{
- if ( myDlg ) {
+ if ( myShapeByMeshOp == op && myDlg ) {
myDlg->show();
- myDlg->activateObject( SMESHGUI_MeshDlg::Geom );
- myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
}
}
#include CORBA_SERVER_HEADER(SMESH_Mesh)
class SMESHGUI_MeshDlg;
-class SMESHGUI_ShapeByMeshDlg;
+class SMESHGUI_ShapeByMeshOp;
+class HypothesisData;
/*!
* \brief Operation for mech creation or editing
{
Q_OBJECT
- enum HypType{ Algo = 0, MainHyp, AddHyp };
-
public:
+
+ enum HypType{ Algo = 0, MainHyp, AddHyp, NbHypTypes };
+
SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh = true );
virtual ~SMESHGUI_MeshOp();
void onEditHyp( const int theHypType, const int theIndex );
void onHypoSet( const QString& theSetName );
void onGeomSelectionByMesh( bool );
- void onPublishShapeByMeshDlg();
- void onCloseShapeByMeshDlg();
+ void onPublishShapeByMeshDlg(SUIT_Operation*);
+ void onCloseShapeByMeshDlg(SUIT_Operation*);
+ void onAlgoSelected( const int theIndex,
+ const int theDim = -1);
private:
+
+ typedef QValueList<HypothesisData*> THypDataList; // typedef: list of hypothesis data
+
bool isValid( QString& ) const;
- void availableHyps( const int theDim,
- const int theHypType,
- QStringList& theHyps ) const;
- void existingHyps( const int theDim,
- const int theHypType,
+ void availableHyps( const int theDim,
+ const int theHypType,
+ QStringList& theHyps,
+ THypDataList& theDataList,
+ HypothesisData* theAlgoData = 0 ) const;
+ void existingHyps( const int theDim,
+ const int theHypType,
_PTR(SObject) theFather,
- QStringList& theHyps,
- QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars );
-
+ QStringList& theHyps,
+ QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars,
+ HypothesisData* theAlgoData = 0);
+ HypothesisData* hypData( const int theDim,
+ const int theHypType,
+ const int theIndex); // access to myAvailableHypData
+
+ void createHypothesis(const int theDim, const int theType,
+ const QString& theTypeName);
+
bool createMesh( QString& );
bool createSubMesh( QString& );
bool editMeshOrSubMesh( QString& );
-
+
int currentHyp( const int, const int ) const;
bool isAccessibleDim( const int ) const;
void setCurrentHyp( const int, const int, const int );
private:
typedef QMap< int, QValueList<SMESH::SMESH_Hypothesis_var> > IdToHypListMap;
typedef QMap< int, IdToHypListMap > DimToHypMap;
-
+
SMESHGUI_MeshDlg* myDlg;
- SMESHGUI_ShapeByMeshDlg* myShapeByMeshDlg;
+ SMESHGUI_ShapeByMeshOp* myShapeByMeshOp;
bool myToCreate;
bool myIsMesh;
-
+
DimToHypMap myExistingHyps; //!< all hypothesis of SMESH module
DimToHypMap myObjHyps; //!< hypothesis assigned to the current
// edited mesh/sub-mesh
+
+ // hypdata corresponding to hypotheses present in myDlg
+ THypDataList myAvailableHypData[3][NbHypTypes];
+
+ bool myIgnoreAlgoSelection;
};
#endif
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
#include "SUIT_FileDlg.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "LightApp_SelectionMgr.h"
#include "SalomeApp_Tools.h"
#include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
#include "SALOMEDS_SObject.hxx"
#include "SVTK_ViewModel.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
// OCCT Includes
#include <TColStd_MapOfInteger.hxx>
// VTK Includes
#include <vtkCell.h>
#include <vtkIdList.h>
-#include <vtkIntArray.h>
#include <vtkCellArray.h>
#include <vtkUnsignedCharArray.h>
#include <vtkUnstructuredGrid.h>
mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
+ myHelpFileName = "pattern_mapping.htm";
+
Init();
}
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);
myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
aLay->addWidget(myApplyBtn);
aLay->addItem(aSpacer);
aLay->addWidget(myCloseBtn);
+ aLay->addWidget(myHelpBtn);
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
return aFrame;
}
}
}
}
+ mySelectionMgr->clearSelected();
SMESH::UpdateView();
mySMESHGUI->updateObjBrowser(true);
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_MeshPatternDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : SMESHGUI_MeshPatternDlg::onSelectionDone
// Purpose : SLOT called when selection changed
else aCellTypesArray->InsertNextValue(VTK_EMPTY_CELL);
}
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents(1);
aCellLocationsArray->SetNumberOfTuples(aNbCells);
void onOk();
bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
QPushButton* myOkBtn;
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
QButtonGroup* myTypeGrp;
QRadioButton* mySwitch2d;
SMESHGUI_CreatePatternDlg* myCreationDlg;
SMESH::SMESH_Pattern_var myPattern;
SALOME_Actor* myPreviewActor;
+
+ QString myHelpFileName;
};
#endif
#include "SMDS_MeshNode.hxx"
#include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewModel.h"
#include "SALOME_ListIO.hxx"
#include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
#include "utilities.h"
// VTK includes
#include <vtkCell.h>
#include <vtkIdList.h>
-#include <vtkIntArray.h>
#include <vtkCellArray.h>
#include <vtkUnsignedCharArray.h>
#include <vtkUnstructuredGrid.h>
mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
+ myHelpFileName = "/files/displacing_nodes.htm";
+
Init();
}
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);
myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
aLay->addWidget(myApplyBtn);
aLay->addItem(aSpacer);
aLay->addWidget(myCloseBtn);
+ aLay->addWidget(myHelpBtn);
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
return aFrame;
}
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_MoveNodesDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : SMESHGUI_MoveNodesDlg::onTextChange
// Purpose :
aCellTypesArray->InsertNextValue(VTK_VERTEX);
anIdList->Delete();
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents(1);
aCellLocationsArray->SetNumberOfTuples(1);
void onOk();
bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
QPushButton* myOkBtn;
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
QLineEdit* myId;
SMESHGUI_SpinBox* myX;
SALOME_Actor* myPreviewActor;
SMESH_Actor* myMeshActor;
bool myBusy;
+
+ QString myHelpFileName;
};
#endif // DIALOGBOX_MOVE_NODES_H
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
#include "SALOME_ListIO.hxx"
#include "SALOME_ListIteratorOfListIO.hxx"
#include "SVTK_Selector.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
// OCCT Includes
#include <Precision.hxx>
#include <vtkPolygon.h>
#include <vtkConvexPointSet.h>
#include <vtkIdList.h>
-#include <vtkIntArray.h>
#include <vtkCellArray.h>
#include <vtkUnsignedCharArray.h>
#include <vtkUnstructuredGrid.h>
myOkBtn = new QPushButton (tr("SMESH_BUT_OK" ), aFrame);
myApplyBtn = new QPushButton (tr("SMESH_BUT_APPLY"), aFrame);
myCloseBtn = new QPushButton (tr("SMESH_BUT_CLOSE"), aFrame);
+ myHelpBtn = new QPushButton (tr("SMESH_BUT_HELP"), aFrame);
QSpacerItem* aSpacer = new QSpacerItem (0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
aLay->addWidget(myApplyBtn);
aLay->addItem(aSpacer);
aLay->addWidget(myCloseBtn);
+ aLay->addWidget(myHelpBtn);
return aFrame;
}
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
// selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_MultiEditDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : SMESHGUI_MultiEditDlg::onSelectionDone
// Purpose : SLOT called when selection changed
SMESHGUI_MultiEditDlg(theModule, SMESHGUI_FaceFilter, true, theName)
{
setCaption(tr("CAPTION"));
+ myHelpFileName = "/files/changing_orientation_of_elements.htm";
}
SMESHGUI_ChangeOrientationDlg::~SMESHGUI_ChangeOrientationDlg()
myMaxAngleSpin->SetValue(30.0);
myCriterionGrp->show();
+
+ myHelpFileName = "/files/uniting_a_set_of_triangles.htm";
}
SMESHGUI_UnionOfTrianglesDlg::~SMESHGUI_UnionOfTrianglesDlg()
connect(myGroupChoice , SIGNAL(clicked(int)) , this, SLOT(onCriterionRB()));
connect(myComboBoxFunctor, SIGNAL(activated(int)) , this, SLOT(onPreviewChk()));
connect(this , SIGNAL(ListContensChanged()), this, SLOT(onPreviewChk()));
+
+ myHelpFileName = "/files/cutting_quadrangles.htm";
}
SMESHGUI_CuttingOfQuadsDlg::~SMESHGUI_CuttingOfQuadsDlg()
}
}
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents(1);
aCellLocationsArray->SetNumberOfTuples(aNbCells);
void onOk();
virtual bool onApply();
virtual void onClose();
+ void onHelp();
void onDeactivate();
void onSelectionDone();
QPushButton* myOkBtn;
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
SMESH_Actor* myActor;
SMESH::SMESH_Mesh_var myMesh;
int myFilterType;
bool myBusy;
int myEntityType;
+
+ QString myHelpFileName;
};
/*!
#include "SUIT_Desktop.h"
#include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
#include "SALOME_Actor.h"
#include "SALOME_ListIO.hxx"
// VTK Includes
#include <vtkCell.h>
#include <vtkIdList.h>
-#include <vtkIntArray.h>
#include <vtkCellArray.h>
#include <vtkUnsignedCharArray.h>
#include <vtkUnstructuredGrid.h>
aCells->InsertNextCell(anIdList);
aCellTypesArray->InsertNextValue(VTK_VERTEX);
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+ VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
aCellLocationsArray->SetNumberOfComponents(1);
aCellLocationsArray->SetNumberOfTuples(1);
vtkProperty* aProp = vtkProperty::New();
aProp->SetRepresentationToPoints();
- float anRGB[3];
+ vtkFloatingPointType anRGB[3];
GetColor( "SMESH", "node_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 255, 0 ) );
aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
- float aPointSize = GetFloat( "SMESH:node_size", 3 );
+ vtkFloatingPointType aPointSize = GetFloat( "SMESH:node_size", 3 );
aProp->SetPointSize( aPointSize );
myPreviewActor->SetProperty( aProp );
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
SMESHGUI_NodesDlgLayout->addWidget(GroupCoordinates, 1, 0);
+ myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_nodes";
+
/* Initialisation and display */
Init();
}
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(SpinBox_X, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
connect(SpinBox_Y, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_NodesDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : SelectionIntoArgument()
// purpose : Called when selection as changed or other case
QPushButton* buttonApply;
QPushButton* buttonOk;
QPushButton* buttonCancel;
+ QPushButton* buttonHelp;
+
+ QString myHelpFileName;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
+ void ClickOnHelp();
void DeactivateActiveDialog() ;
void ActivateThisDialog() ;
void SelectionIntoArgument() ;
#include <SMESHGUI_Dialog.h>
#include <SalomeApp_Study.h>
+#include <LightApp_Application.h>
+#include <SUIT_Session.h>
#include <SUIT_MessageBox.h>
#include <SUIT_Desktop.h>
SMESHGUI_Operation::SMESHGUI_Operation()
: LightApp_Operation()
{
+ myHelpFileName = "";
}
//=======================================================================
disconnect( dlg(), SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
disconnect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
disconnect( dlg(), SIGNAL( dlgClose() ), this, SLOT( onCancel() ) );
+ disconnect( dlg(), SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
if( dlg()->testButtonFlags( QtxDialog::OK ) )
connect( dlg(), SIGNAL( dlgOk() ), this, SLOT( onOk() ) );
if( dlg()->testButtonFlags( QtxDialog::Cancel ) )
connect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
+
+ if( dlg()->testButtonFlags( QtxDialog::Help ) )
+ connect( dlg(), SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
//if( dlg()->testButtonFlags( QtxDialog::Close ) )
//if dialog hasn't close, cancel, no and etc buttons, dlgClose will be emitted when dialog is closed not by OK
{
if( onApply() )
commit();
- else
- abort();
+ //else
+ // abort();
}
//=======================================================================
abort();
}
+//=======================================================================
+// name : onHelp
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(getSMESHGUI() ? app->moduleName(getSMESHGUI()->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// name : initDialog
// Purpose :
virtual bool isValid( SUIT_Operation* ) const;
+ QString myHelpFileName;
+
protected slots:
virtual void onOk();
virtual bool onApply();
virtual void onCancel();
+ void onHelp();
};
#endif
+++ /dev/null
-// SMESH SMESHGUI : GUI for SMESH component
-//
-// 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 : SMESHGUI_PrecisionDlg.cxx
-// Author : Sergey LITONIN
-// Module : SMESH
-
-#include "SMESHGUI_PrecisionDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include <qgroupbox.h>
-#include <qpushbutton.h>
-#include <qcheckbox.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qlabel.h>
-
-#define SPACING 5
-#define MARGIN 10
-#define DEFAULT_VAL 10
-#define RANGE 128
-
-/*!
- * Class : SMESHGUI_PrecisionDlg
- * Description : Dialog to specify precision of mesh quality controls
- */
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::SMESHGUI_PrecisionDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_PrecisionDlg::SMESHGUI_PrecisionDlg ( SMESHGUI* theModule )
- : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_PrecisionDlg", true,
- WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
- mySMESHGUI( theModule )
-{
- setCaption(tr("CAPTION"));
-
- QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
-
- QFrame* aMainFrame = createMainFrame (this);
- QFrame* aBtnFrame = createButtonFrame(this);
-
- aDlgLay->addWidget(aMainFrame);
- aDlgLay->addWidget(aBtnFrame);
-
- aDlgLay->setStretchFactor(aMainFrame, 1);
-
- setMinimumWidth((int)(QFontMetrics(font()).width(tr("CAPTION")) * 1.5));
-
- Init();
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::~SMESHGUI_PrecisionDlg
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_PrecisionDlg::~SMESHGUI_PrecisionDlg()
-{
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_PrecisionDlg::createButtonFrame (QWidget* theParent)
-{
- QGroupBox* aGrp = new QGroupBox (1, Qt::Vertical, theParent);
- aGrp->setFrameStyle(QFrame::NoFrame);
- aGrp->setInsideMargin(0);
-
- myOKBtn = new QPushButton (tr("SMESH_BUT_OK"), aGrp);
-
- QLabel* aLbl = new QLabel (aGrp);
- aLbl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-
- myCancelBtn = new QPushButton (tr("SMESH_BUT_CANCEL"), aGrp);
-
- connect(myOKBtn, SIGNAL(clicked()), SLOT(onOk()));
- connect(myCancelBtn, SIGNAL(clicked()), SLOT(onClose()));
-
- return aGrp;
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg:: createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_PrecisionDlg::createMainFrame (QWidget* theParent)
-{
- QGroupBox* aGrp = new QGroupBox(2, Qt::Horizontal, theParent);
- new QLabel (tr("PRECISION"), aGrp);
- mySpinBox = new QSpinBox (0, RANGE, 1, aGrp);
- myNotUseChk = new QCheckBox (tr("NOT_USE"), aGrp);
-
- connect(myNotUseChk, SIGNAL(toggled(bool)), SLOT(onNotUse()));
-
- return aGrp;
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::Init
-// Purpose : Initialize dialog fields
-//=======================================================================
-void SMESHGUI_PrecisionDlg::Init()
-{
- bool isOk = false;
- int aVal = DEFAULT_VAL;
- SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
- if (mgr && mgr->hasValue("SMESH", "controls_precision")) {
- QString aStr = mgr->stringValue("SMESH", "controls_precision");
- aVal = aStr.toInt(&isOk);
- }
-
- mySpinBox->setValue(isOk ? aVal : DEFAULT_VAL);
- myNotUseChk->setChecked(!isOk);
-
- onNotUse();
-
- mySMESHGUI->SetActiveDialogBox((QDialog*)this);
- connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::onOk
-// Purpose : SLOT. Called when OK button pressed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onOk()
-{
- SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
- if (myNotUseChk->isChecked()) {
- if (mgr) {
- mgr->remove("SMESH", "controls_precision");
- }
- SMESH::SetControlsPrecision(-1);
- } else {
- mySpinBox->clearFocus();
- int aVal = mySpinBox->value();
- if (mgr) {
- mgr->setValue("SMESH", "controls_precision", QString("%1").arg(aVal));
- }
- SMESH::SetControlsPrecision(aVal);
- }
-
- disconnect(mySMESHGUI, 0, this, 0);
- mySMESHGUI->ResetState() ;
- accept();
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::onClose
-// Purpose : SLOT. Called when "Cancel" button pressed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onClose()
-{
- disconnect( mySMESHGUI, 0, this, 0);
- reject();
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::closeEvent
-// Purpose :
-//=======================================================================
-void SMESHGUI_PrecisionDlg::closeEvent (QCloseEvent*)
-{
- onClose();
-}
-
-//=======================================================================
-// name : SMESHGUI_PrecisionDlg::onNotUse
-// Purpose : SLOT. Called when state of "Do not use" check box changed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onNotUse()
-{
- mySpinBox->setEnabled(!myNotUseChk->isChecked());
-}
+++ /dev/null
-// SMESH SMESHGUI : GUI for SMESH component
-//
-// 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 : SMESHGUI_PrecisionDlg.h
-// Author : Sergey LITONIN
-// Module : SMESH
-
-
-#ifndef SMESHGUI_PrecisionDlg_H
-#define SMESHGUI_PrecisionDlg_H
-
-#include <qdialog.h>
-
-class QSpinBox;
-class QPushButton;
-class QCheckBox;
-class QFrame;
-class SMESHGUI;
-
-/*
- Class : SMESHGUI_PrecisionDlg
- Description : Dialog to specify precision of mesh quality controls
-*/
-
-class SMESHGUI_PrecisionDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- SMESHGUI_PrecisionDlg( SMESHGUI* );
-
- virtual ~SMESHGUI_PrecisionDlg();
-
- void Init();
-
-private slots:
-
- void onOk();
- void onClose();
- void onNotUse();
-
-private:
-
- QFrame* createButtonFrame( QWidget* );
- QFrame* createMainFrame( QWidget* );
- void closeEvent( QCloseEvent* );
-
-private:
- SMESHGUI* mySMESHGUI;
- QSpinBox* mySpinBox;
- QPushButton* myOKBtn;
- QPushButton* myCancelBtn;
- QCheckBox* myNotUseChk;
-
-};
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#include <vtkTextProperty.h>
#include <vtkScalarBarActor.h>
-#include <vtkScalarsToColors.h>
+#include <vtkLookupTable.h>
#define MINIMUM_WIDTH 70
#define MARGIN_SIZE 11
double aMin = myMinEdit->text().toDouble();
double aMax = myMaxEdit->text().toDouble();
- myScalarBarActor->GetLookupTable()->SetRange( aMin, aMax );
+ vtkLookupTable* myLookupTable =
+ static_cast<vtkLookupTable*>(myScalarBarActor->GetLookupTable());
+ myLookupTable->SetRange( aMin, aMax );
+ myLookupTable->SetNumberOfTableValues(myColorsSpin->value());
+ myLookupTable->Build();
SMESH::RepaintCurrentView();
} else {
// Scalar Bar preferences
vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
if ( myScalarBarActor->GetLookupTable() ) {
- float *range = myScalarBarActor->GetLookupTable()->GetRange();
- myMinEdit->setText( QString::number( range[0] ) );
- myMaxEdit->setText( QString::number( range[1] ) );
+ vtkFloatingPointType *range = myScalarBarActor->GetLookupTable()->GetRange();
+ myMinEdit->setText( QString::number( range[0],'g',12 ) );
+ myMaxEdit->setText( QString::number( range[1],'g',12 ) );
}
vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
- float aTColor[3];
+ vtkFloatingPointType aTColor[3];
aTitleTextPrp->GetColor( aTColor );
myTitleColorBtn->setPaletteBackgroundColor( QColor( (int)( aTColor[0]*255 ), (int)( aTColor[1]*255 ), (int)( aTColor[2]*255 ) ) );
myTitleFontCombo->setCurrentItem( aTitleTextPrp->GetFontFamily() );
myTitleShadowCheck->setChecked( aTitleTextPrp->GetShadow() );
vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
- float aLColor[3];
+ vtkFloatingPointType aLColor[3];
aLabelsTextPrp->GetColor( aLColor );
myLabelsColorBtn->setPaletteBackgroundColor( QColor( (int)( aLColor[0]*255 ), (int)( aLColor[1]*255 ), (int)( aLColor[2]*255 ) ) );
myLabelsFontCombo->setCurrentItem( aLabelsTextPrp->GetFontFamily() );
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewModel.h"
#include "SALOME_ListIO.hxx"
#include "SalomeApp_Tools.h"
+#include "LightApp_Application.h"
#include "utilities.h"
// OCCT Includes
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
SMESHGUI_RemoveElementsDlgLayout->addWidget(GroupC1, 1, 0);
+ myHelpFileName = "/files/removing_nodes_and_elements.htm#remove_an_element";
+
Init(); /* Initialisations */
}
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectButtonC1A1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
return;
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_RemoveElementsDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
//function : onTextChange
//purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupC1;
QLabel* TextLabelC1A1;
QPushButton* SelectButtonC1A1;
QLineEdit* LineEditC1A1;
+ QString myHelpFileName;
+
private slots:
void ConstructorsClicked(int constructorId);
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewModel.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
SMESHGUI_RemoveNodesDlgLayout->addWidget(GroupC1, 1, 0);
+ myHelpFileName = "/files/removing_nodes_and_elements.htm#remove_a_node";
+
Init(); /* Initialisations */
}
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectButtonC1A1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_RemoveNodesDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
//function : onTextChange
//purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupC1;
QLabel* TextLabelC1A1;
QPushButton* SelectButtonC1A1;
QLineEdit* LineEditC1A1;
+ QString myHelpFileName;
+
private slots:
void ConstructorsClicked(int constructorId);
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SALOME_ListIO.hxx"
/***************************************************************/
GroupConstructors = new QButtonGroup(this, "GroupConstructors");
- if (unit == 0)
+ if (unit == 0) {
GroupConstructors->setTitle(tr("SMESH_NODES" ));
- else if (unit == 1)
+ myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_nodes";
+ }
+ else if (unit == 1) {
GroupConstructors->setTitle(tr("SMESH_ELEMENTS" ));
+ myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_elements";
+ }
GroupConstructors->setExclusive(TRUE);
GroupConstructors->setColumnLayout(0, Qt::Vertical);
GroupConstructors->layout()->setSpacing(0);
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_RenumberingDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : SelectionIntoArgument()
// purpose : Called when selection as changed or other case
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupMesh;
QLabel* TextLabelMesh;
QPushButton* SelectButton;
QLineEdit* LineEditMesh;
+
+ QString myHelpFileName;
private slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SMDS_Mesh.hxx"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
myMeshOrSubMeshOrGroupFilter =
new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
+ myHelpFileName = "revolution.htm";
+
Init();
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_RevolutionDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// function : onTextChange()
// purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupArguments;
QGroupBox* GroupAxis;
QLabel* TextLabelElements;
QLabel* TextLabelTolerance;
SMESHGUI_SpinBox* SpinBox_Tolerance;
+ QString myHelpFileName;
+
private slots:
void ConstructorsClicked (int constructorId);
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument();
void SelectionIntoArgument();
void DeactivateActiveDialog();
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE"));
buttonCancel->setAutoDefault(TRUE);
myMeshOrSubMeshOrGroupFilter =
new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
+ myHelpFileName = "/files/rotation.htm";
+
Init();
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_RotationDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// function : onTextChange()
// purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupArguments;
QGroupBox* GroupAxis;
QLabel* TextLabelElements;
SMESHGUI_SpinBox* SpinBox_Angle;
QCheckBox* CheckBoxCopy;
+ QString myHelpFileName;
+
private slots:
void ConstructorsClicked (int constructorId);
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument();
void SelectionIntoArgument();
void DeactivateActiveDialog();
if ( !io.IsNull() ) {
SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(io) ; // m,sm,gr->m
if ( !mesh->_is_nil() ) {*/
- _PTR(SObject) so = SMESH::GetActiveStudyDocument()->FindObjectID( entry( ind ) );
+ _PTR(SObject) so = SMESH::GetActiveStudyDocument()->FindObjectID( entry( ind ).latin1() );
//FindSObject( mesh );
if ( so ) {
GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
//=================================================================================
SMESHGUI_SelectionOp::~SMESHGUI_SelectionOp()
{
- Filters::const_iterator anIt = myFilters.begin(),
- aLast = myFilters.end();
- for( ; anIt!=aLast; anIt++ )
- if( anIt.data() )
- delete anIt.data();
+ removeCustomFilters();
}
//=================================================================================
//=================================================================================
void SMESHGUI_SelectionOp::startOperation()
{
+ myOldSelectionMode = selectionMode();
+ setSelectionMode( myDefSelectionMode );
+
SMESHGUI_Operation::startOperation();
if( dlg() )
{
connect( dlg(), SIGNAL( objectDeactivated( int ) ), this, SLOT( onDeactivateObject( int ) ) );
connect( dlg(), SIGNAL( selectionChanged( int ) ), this, SLOT( onSelectionChanged( int ) ) );
}
-
- myOldSelectionMode = selectionMode();
- setSelectionMode( myDefSelectionMode );
}
//=================================================================================
// name : removeCustomFilters
// purpose :
//=================================================================================
-void SMESHGUI_SelectionOp::removeCustomFilters() const
+void SMESHGUI_SelectionOp::removeCustomFilters()
{
- LightApp_SelectionMgr* mgr = selectionMgr();
- if( !mgr )
- return;
-
- Filters::const_iterator anIt = myFilters.begin(),
- aLast = myFilters.end();
- for( ; anIt!=aLast; anIt++ )
- if( anIt.data() )
- mgr->removeFilter( anIt.data() );
+ if (myFilters.count() > 0) {
+ LightApp_SelectionMgr* mgr = selectionMgr();
+ Filters::const_iterator anIt = myFilters.begin(),
+ aLast = myFilters.end();
+ for (; anIt != aLast; anIt++) {
+ if (anIt.data()) {
+ if (mgr) mgr->removeFilter(anIt.data());
+ delete anIt.data();
+ }
+ }
+
+ myFilters.clear();
+ }
}
//=================================================================================
//=================================================================================
void SMESHGUI_SelectionOp::commitOperation()
{
+ SMESHGUI_Operation::commitOperation();
removeCustomFilters();
setSelectionMode( myOldSelectionMode );
- SMESHGUI_Operation::commitOperation();
}
//=================================================================================
//=================================================================================
void SMESHGUI_SelectionOp::abortOperation()
{
+ SMESHGUI_Operation::abortOperation();
removeCustomFilters();
setSelectionMode( myOldSelectionMode );
- SMESHGUI_Operation::abortOperation();
}
//=================================================================================
//=================================================================================
void SMESHGUI_SelectionOp::onDeactivateObject( int id )
{
- LightApp_SelectionMgr* mgr = selectionMgr();
- if( mgr && myFilters.contains( id ) && myFilters[ id ] )
- mgr->removeFilter( myFilters[ id ] );
+ removeCustomFilters();
}
//=================================================================================
virtual SUIT_SelectionFilter* createFilter( const int ) const;
//! Remove only filters set by this operation (they are in map myFilters )
- void removeCustomFilters() const;
+ void removeCustomFilters();
//! Return what selection mode is set in VTK viewer
Selection_Mode selectionMode() const;
#include "SMESH_Actor.h"
#include "SMDS_Mesh.hxx"
+#include "SUIT_Session.h"
#include "SUIT_ResourceMgr.h"
#include "SUIT_Desktop.h"
#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
+
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
#include "SVTK_Selector.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE"));
buttonCancel->setAutoDefault(TRUE);
mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+ myHelpFileName = "/files/sewing_meshes.htm";
+
Init();
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectButton1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_SewingDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
//function : onTextChange
//purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupArguments;
QGroupBox* SubGroup1;
QGroupBox* SubGroup2;
QCheckBox* CheckBoxPolygons;
QCheckBox* CheckBoxPolyedrs;
+ QString myHelpFileName;
+
private slots:
void ConstructorsClicked(int constructorId);
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument(bool isSelectionChanged = true) ;
void DeactivateActiveDialog() ;
* \brief Dialog to publish a sub-shape of the mesh main shape
* by selecting mesh elements
*/
-SMESHGUI_ShapeByMeshDlg::SMESHGUI_ShapeByMeshDlg( SMESHGUI* theModule,
- const char* theName)
- : QDialog( SMESH::GetDesktop( theModule ), theName, false,
- WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
- mySMESHGUI( theModule ),
- mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
+SMESHGUI_ShapeByMeshDlg::SMESHGUI_ShapeByMeshDlg()
+ : SMESHGUI_Dialog( 0, false, true, OK | Close )
{
setCaption(tr("CAPTION"));
- QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
+ QVBoxLayout* aDlgLay = new QVBoxLayout (mainFrame(), MARGIN, SPACING);
- QFrame* aMainFrame = createMainFrame (this);
- QFrame* aBtnFrame = createButtonFrame(this);
+ QFrame* aMainFrame = createMainFrame (mainFrame());
aDlgLay->addWidget(aMainFrame);
- aDlgLay->addWidget(aBtnFrame);
aDlgLay->setStretchFactor(aMainFrame, 1);
-
- myViewWindow = SMESH::GetViewWindow( mySMESHGUI );
-
- Init();
}
//=======================================================================
aLayout->addWidget(aNameLabel, 2, 0);
aLayout->addWidget(myGeomName, 2, 1);
- connect(myElemTypeGroup, SIGNAL(clicked(int)), SLOT(onTypeChanged(int)));
- connect(myElementId, SIGNAL(textChanged(const QString&)), SLOT(onElemIdChanged(const QString&)));
-
return aMainGrp;
}
-//=======================================================================
-// function : createButtonFrame()
-// purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_ShapeByMeshDlg::createButtonFrame (QWidget* theParent)
-{
- QFrame* aFrame = new QFrame(theParent);
- aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
- myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);
- myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
- QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
- QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
- aLay->addWidget(myOkBtn);
- aLay->addItem(aSpacer);
- aLay->addWidget(myCloseBtn);
-
- connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
- connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-
- return aFrame;
-}
-
//=======================================================================
// function : ~SMESHGUI_ShapeByMeshDlg()
// purpose : Destructor
// no need to delete child widgets, Qt does it all for us
}
+//================================================================================
+/*!
+ * \brief Constructor
+ * \param theToCreate - if this parameter is true then operation is used for creation,
+ * for editing otherwise
+ *
+ * Initialize operation
+*/
+//================================================================================
+SMESHGUI_ShapeByMeshOp::SMESHGUI_ShapeByMeshOp()
+{
+ if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
+ GeometryGUI::InitGeomGen();
+
+ myDlg = new SMESHGUI_ShapeByMeshDlg;
+
+ connect(myDlg->myElemTypeGroup, SIGNAL(clicked(int)), SLOT(onTypeChanged(int)));
+ connect(myDlg->myElementId, SIGNAL(textChanged(const QString&)), SLOT(onElemIdChanged(const QString&)));
+}
+
+
//=======================================================================
-// function : Init()
+// function : startOperation()
// purpose : Init dialog fields, connect signals and slots, show dialog
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::Init()
+void SMESHGUI_ShapeByMeshOp::startOperation()
{
- SetMesh( SMESH::SMESH_Mesh::_nil() );
+ //SetMesh( SMESH::SMESH_Mesh::_nil() );
myIsManualIdEnter = false;
- //erasePreview();
+ SMESHGUI_SelectionOp::startOperation();
- mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+ //activateSelection(); // set filters
+ onSelectionDone(); // desable/enable [ OK ]
- // selection and SMESHGUI
- connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
- connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
+ myDlg->show();
+}
- setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
- qApp->processEvents();
- updateGeometry();
- adjustSize();
- resize(minimumSize());
+//================================================================================
+/*!
+ * \brief Destructor
+*/
+//================================================================================
+SMESHGUI_ShapeByMeshOp::~SMESHGUI_ShapeByMeshOp()
+{
+ if ( myDlg )
+ delete myDlg;
+}
- activateSelection();
- onSelectionDone();
-
- this->show();
+//================================================================================
+/*!
+ * \brief Gets dialog of this operation
+ * \retval LightApp_Dialog* - pointer to dialog of this operation
+*/
+//================================================================================
+LightApp_Dialog* SMESHGUI_ShapeByMeshOp::dlg() const
+{
+ return myDlg;
+}
+
+//=======================================================================
+// function : GetShape()
+// purpose : Get published sub-shape
+//=======================================================================
+GEOM::GEOM_Object_ptr SMESHGUI_ShapeByMeshOp::GetShape()
+{
+ return myGeomObj.in();
}
//=======================================================================
// purpose : Set mesh to dialog
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)
+void SMESHGUI_ShapeByMeshOp::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)
{
myMesh = SMESH::SMESH_Mesh::_duplicate(thePtr);
myGeomObj = GEOM::GEOM_Object::_nil();
myHasSolids = false;
- vector< bool > hasElement (myElemTypeGroup->count(), false);
- if (!myMesh->_is_nil() && myViewWindow )
+ vector< bool > hasElement (myDlg->myElemTypeGroup->count(), false);
+ if (!myMesh->_is_nil() )
{
- _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());
- SUIT_DataOwnerPtr anIObj (new LightApp_DataOwner(aSobj->GetID().c_str()));
+// _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());
+// SUIT_DataOwnerPtr anIObj (new LightApp_DataOwner(aSobj->GetID().c_str()));
vector< int > nbShapes( TopAbs_SHAPE, 0 );
int shapeDim = 0; // max dim with several shapes
- if ( mySelectionMgr->isOk(anIObj) ) // check that the mesh has a valid shape
+ //if ( /*mySelectionMgr*/ selectionMgr()->isOk(anIObj) ) // check that the mesh has a valid shape
{
_PTR(SObject) aSO = SMESH::FindSObject(myMesh.in());
GEOM::GEOM_Object_var mainShape = SMESH::GetGeom(aSO);
if ( !mainShape->_is_nil() )
{
- if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
- GeometryGUI::InitGeomGen();
TopoDS_Shape aShape;
if ( GEOMBase::GetShape(mainShape, aShape))
{
hasElement[ EDGE ] = shapeDim > 0 && myMesh->NbEdges() ;
hasElement[ FACE ] = shapeDim > 1 && myMesh->NbFaces() ;
hasElement[ VOLUME ] = shapeDim > 2 && myMesh->NbVolumes();
-
- if ( hasElement[ EDGE ] && myViewWindow->GetSelector() )
- {
- connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
- }
}
myHasSolids = nbShapes[ TopAbs_SOLID ];
}
// disable inexistant elem types
- for ( int i = 0; i < myElemTypeGroup->count(); ++i ) {
- if ( QButton* button = myElemTypeGroup->find( i ) )
+ for ( int i = 0; i < myDlg->myElemTypeGroup->count(); ++i ) {
+ if ( QButton* button = myDlg->myElemTypeGroup->find( i ) )
button->setEnabled( hasElement[ i ] );
}
- myElementId->setEnabled( hasElement[ EDGE ] );
- myGeomName-> setEnabled( hasElement[ EDGE ] );
+ myDlg->myElementId->setEnabled( hasElement[ EDGE ] );
+ myDlg->myGeomName-> setEnabled( hasElement[ EDGE ] );
setElementID("");
}
//=======================================================================
-// function : GetShape()
-// purpose : Get published sub-shape
+// function : commitOperation()
+// purpose : called when "Ok" button pressed.
//=======================================================================
-GEOM::GEOM_Object_ptr SMESHGUI_ShapeByMeshDlg::GetShape()
-{
- return myGeomObj.in();
-}
-//=======================================================================
-// function : onOk()
-// purpose : SLOT called when "Ok" button pressed.
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onOk()
+void SMESHGUI_ShapeByMeshOp::commitOperation()
{
+ SMESHGUI_SelectionOp::commitOperation();
try {
- int elemID = myElementId->text().toInt();
+ int elemID = myDlg->myElementId->text().toInt();
myGeomObj = SMESHGUI::GetSMESHGen()->GetGeometryByMeshElement
- ( myMesh.in(), elemID, myGeomName->text().latin1());
-
- accept();
- emit PublishShape();
+ ( myMesh.in(), elemID, myDlg->myGeomName->text().latin1());
}
catch (const SALOME::SALOME_Exception& S_ex) {
SalomeApp_Tools::QtCatchCorbaException(S_ex);
}
catch (...) {
}
- myViewWindow->SetSelectionMode( ActorSelection );
- disconnect(mySelectionMgr, 0, this, 0);
- disconnect(mySMESHGUI, 0, this, 0);
- mySMESHGUI->ResetState();
-}
-//=======================================================================
-// function : onClose()
-// purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onClose()
-{
- myViewWindow->SetSelectionMode( ActorSelection );
- disconnect(mySelectionMgr, 0, this, 0);
- disconnect(mySMESHGUI, 0, this, 0);
- mySMESHGUI->ResetState();
- reject();
- emit Close();
}
//=======================================================================
// function : onSelectionDone()
-// purpose : SLOT called when selection changed
+// purpose : SLOT called when selection changed. Enable/desable [ OK ]
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onSelectionDone()
+void SMESHGUI_ShapeByMeshOp::onSelectionDone()
{
- myOkBtn->setEnabled( false );
+ myDlg->setButtonEnabled( false, QtxDialog::OK );
setElementID("");
try {
SALOME_ListIO aList;
- mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());
+ selectionMgr()->selectedObjects(aList, SVTK_Viewer::Type());
if (aList.Extent() != 1)
return;
return;
QString aString;
- int nbElems = SMESH::GetNameOfSelectedElements(myViewWindow->GetSelector(),
+ int nbElems = SMESH::GetNameOfSelectedElements(selector(),//myViewWindow->GetSelector(),
aList.First(), aString);
if ( nbElems == 1 ) {
setElementID( aString );
- myOkBtn->setEnabled( true );
+ myDlg->setButtonEnabled( true, QtxDialog::OK );
}
} catch (...) {
}
}
-//=======================================================================
-// function : onDeactivate()
-// purpose : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onDeactivate()
-{
- if ( isEnabled() ) {
- //disconnect(mySelectionMgr, 0, this, 0);
- myViewWindow->SetSelectionMode( ActorSelection );
- setEnabled(false);
- }
-}
-
-//=======================================================================
-// function : enterEvent()
-// purpose : Event filter
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::enterEvent (QEvent*)
-{
- // there is a stange problem that enterEvent() comes after onSave()
- if ( isVisible () && !isEnabled() ) {
- mySMESHGUI->EmitSignalDeactivateDialog();
- setEnabled(true);
- activateSelection();
- //connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
- }
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose : Close dialog box
-//=================================================================================
-void SMESHGUI_ShapeByMeshDlg::closeEvent (QCloseEvent*)
-{
- onClose();
-}
-
//=======================================================================
// function : activateSelection()
// purpose : Activate selection in accordance with current pattern type
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::activateSelection()
+void SMESHGUI_ShapeByMeshOp::activateSelection()
{
- mySelectionMgr->clearFilters();
- SMESH::SetPointRepresentation(false);
-
- myGeomName->setText("");
-
- if ( myViewWindow )
- {
- QString geomName;
- Selection_Mode mode = EdgeSelection;
- switch ( myElemTypeGroup->id( myElemTypeGroup->selected() )) {
- case EDGE :
- mode = EdgeSelection; geomName = tr("GEOM_EDGE"); break;
- case FACE :
- mode = FaceSelection; geomName = tr("GEOM_FACE"); break;
- case VOLUME:
- mode = VolumeSelection; geomName = tr(myHasSolids ? "GEOM_SOLID" : "GEOM_SHELL"); break;
- default: return;
- }
- if ( myViewWindow->SelectionMode() != mode )
- myViewWindow->SetSelectionMode( mode );
-
- myGeomName->setText( GEOMBase::GetDefaultName( geomName ));
+ selectionMgr()->clearFilters();
+ //SMESH::SetPointRepresentation(false);
+
+ myDlg->myGeomName->setText("");
+
+ QString geomName;
+ Selection_Mode mode = EdgeSelection;
+ switch ( myDlg->myElemTypeGroup->id( myDlg->myElemTypeGroup->selected() )) {
+ case EDGE :
+ mode = EdgeSelection; geomName = tr("GEOM_EDGE"); break;
+ case FACE :
+ mode = FaceSelection; geomName = tr("GEOM_FACE"); break;
+ case VOLUME:
+ mode = VolumeSelection; geomName = tr(myHasSolids ? "GEOM_SOLID" : "GEOM_SHELL"); break;
+ default: return;
}
+ if ( selectionMode() != mode )
+ setSelectionMode( mode );
+
+ myDlg->myGeomName->setText( GEOMBase::GetDefaultName( geomName ));
}
//=======================================================================
//purpose : SLOT. Called when element type changed.
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onTypeChanged (int theType)
+void SMESHGUI_ShapeByMeshOp::onTypeChanged (int theType)
{
setElementID("");
activateSelection();
// Highlight the element whose Ids the user entered manually
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onElemIdChanged(const QString& theNewText)
+void SMESHGUI_ShapeByMeshOp::onElemIdChanged(const QString& theNewText)
{
- myOkBtn->setEnabled( false );
+ myDlg->setButtonEnabled( false, QtxDialog::OK );
- if ( myIsManualIdEnter && !myMesh->_is_nil() && myViewWindow )
+ if ( myIsManualIdEnter && !myMesh->_is_nil() )
if ( SMESH_Actor* actor = SMESH::FindActorByObject(myMesh) )
if ( SMDS_Mesh* aMesh = actor->GetObject()->GetMesh() )
{
SMDSAbs_ElementType type = SMDSAbs_Edge;
- switch ( myElemTypeGroup->id( myElemTypeGroup->selected() )) {
+ switch ( myDlg->myElemTypeGroup->id( myDlg->myElemTypeGroup->selected() )) {
case EDGE : type = SMDSAbs_Edge; break;
case FACE : type = SMDSAbs_Face; break;
case VOLUME: type = SMDSAbs_Volume; break;
}
if ( !newIndices.IsEmpty() && newIndices.Extent() == 1 )
- if ( SVTK_Selector* s = myViewWindow->GetSelector() ) {
+ if ( SVTK_Selector* s = selector() ) {
s->AddOrRemoveIndex( actor->getIO(), newIndices, false );
- myViewWindow->highlight( actor->getIO(), true, true );
- myOkBtn->setEnabled( true );
+ viewWindow()->highlight( actor->getIO(), true, true );
+ myDlg->setButtonEnabled( true, QtxDialog::OK );
}
}
}
//purpose : programmatically set element id
//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::setElementID(const QString& theText)
+void SMESHGUI_ShapeByMeshOp::setElementID(const QString& theText)
{
myIsManualIdEnter = false;
- myElementId->setText(theText);
+ myDlg->myElementId->setText(theText);
myIsManualIdEnter = true;
}
#ifndef SMESHGUI_ShapeByMeshDlg_H
#define SMESHGUI_ShapeByMeshDlg_H
-#include <qdialog.h>
+#include "SMESHGUI_Dialog.h"
+#include "SMESHGUI_SelectionOp.h"
// IDL Headers
#include <SALOMEconfig.h>
* by selecting mesh elements
*/
-class SMESHGUI_ShapeByMeshDlg : public QDialog
+class SMESHGUI_ShapeByMeshDlg : public SMESHGUI_Dialog
{
Q_OBJECT
public:
- SMESHGUI_ShapeByMeshDlg( SMESHGUI* theModule,
- const char* theName = 0);
+ SMESHGUI_ShapeByMeshDlg();
virtual ~SMESHGUI_ShapeByMeshDlg();
+private:
+
+// void closeEvent (QCloseEvent* e);
+// void enterEvent (QEvent*);
+
+private:
+
+ //QFrame* createButtonFrame (QWidget*);
+ QFrame* createMainFrame (QWidget*);
+ //void displayPreview();
+ //void erasePreview();
+private:
+
+ QButtonGroup* myElemTypeGroup;
+ QLineEdit* myElementId;
+ QLineEdit* myGeomName;
+
+// QPushButton* myOkBtn;
+// QPushButton* myCloseBtn;
+
+// SMESHGUI* mySMESHGUI;
+// LightApp_SelectionMgr* mySelectionMgr;
+// SVTK_ViewWindow* myViewWindow;
+
+ friend class SMESHGUI_ShapeByMeshOp;
+};
+
+class SMESHGUI_ShapeByMeshOp: public SMESHGUI_SelectionOp
+{
+ Q_OBJECT
+
+public:
+ SMESHGUI_ShapeByMeshOp();
+ virtual ~SMESHGUI_ShapeByMeshOp();
+
+ virtual LightApp_Dialog* dlg() const;
+
void Init();
void SetMesh (SMESH::SMESH_Mesh_ptr);
SMESH::SMESH_Mesh_ptr GetMesh () { return myMesh; }
GEOM::GEOM_Object_ptr GetShape();
-signals:
+protected:
- void PublishShape();
- void Close();
+ virtual void commitOperation();
+ virtual void startOperation();
+ //virtual void selectionDone();
+ //virtual SUIT_SelectionFilter* createFilter( const int ) const;
+ //virtual bool isValid( SUIT_Operation* ) const;
-private:
+ void activateSelection();
+ void setElementID(const QString&);
+
+/* signals: */
- void closeEvent (QCloseEvent* e);
- void enterEvent (QEvent*);
+/* void PublishShape(); */
+/* void Close(); */
+
+protected slots:
+
+ virtual bool onApply() { return true; }
+/* void onCreateHyp( const int theHypType, const int theIndex ); */
+/* void onEditHyp( const int theHypType, const int theIndex ); */
+/* void onHypoSet( const QString& theSetName ); */
+/* void onGeomSelectionByMesh( bool ); */
+/* void onPublishShapeByMeshDlg(); */
+/* void onCloseShapeByMeshDlg(); */
private slots:
- void onOk();
- void onClose();
+// void onOk();
+// void onClose();
- void onDeactivate();
+// void onDeactivate();
void onSelectionDone();
void onTypeChanged (int);
private:
- QFrame* createButtonFrame (QWidget*);
- QFrame* createMainFrame (QWidget*);
- //void displayPreview();
- //void erasePreview();
- void activateSelection();
- void setElementID(const QString&);
-
-private:
-
- QButtonGroup* myElemTypeGroup;
- QLineEdit* myElementId;
- QLineEdit* myGeomName;
-
- QPushButton* myOkBtn;
- QPushButton* myCloseBtn;
-
- SMESHGUI* mySMESHGUI;
- LightApp_SelectionMgr* mySelectionMgr;
- SVTK_ViewWindow* myViewWindow;
-
+ SMESHGUI_ShapeByMeshDlg* myDlg;
SMESH::SMESH_Mesh_var myMesh;
GEOM::GEOM_Object_var myGeomObj;
#include "SMDS_Mesh.hxx"
#include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
#include "SUIT_ResourceMgr.h"
#include "SUIT_MessageBox.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewWindow.h"
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame);
myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+ myHelpBtn = new QPushButton (tr("SMESH_BUT_HELP"), aFrame);
QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
aLay->addWidget(myApplyBtn);
aLay->addItem(aSpacer);
aLay->addWidget(myCloseBtn);
+ aLay->addWidget(myHelpBtn);
return aFrame;
}
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+ connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
// selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
reject();
}
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_SingleEditDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
//function : findTriangles()
//purpose : find triangles sharing theNode1-theNode2 link
: SMESHGUI_SingleEditDlg(theModule,theName)
{
setCaption(tr("CAPTION"));
+ myHelpFileName = "/files/diagonal_iversion_of_elements.htm";
}
SMESHGUI_TrianglesInversionDlg::~SMESHGUI_TrianglesInversionDlg()
: SMESHGUI_SingleEditDlg(theModule,theName)
{
setCaption(tr("CAPTION"));
+ myHelpFileName = "/files/uniting_two_triangles.htm";
}
SMESHGUI_UnionOfTwoTrianglesDlg::~SMESHGUI_UnionOfTwoTrianglesDlg()
void onOk();
virtual bool onApply();
void onClose();
+ void onHelp();
void onDeactivate();
QPushButton* myOkBtn;
QPushButton* myApplyBtn;
QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
QLineEdit* myEdge;
SMESH_Actor* myActor;
LightApp_SelectionMgr* mySelectionMgr;
SVTK_Selector* mySelector;
SMESHGUI* mySMESHGUI;
+
+ QString myHelpFileName;
};
/*!
#include "SUIT_ResourceMgr.h"
#include "SUIT_OverrideCursor.h"
#include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
+
#include "SVTK_ViewModel.h"
#include "SVTK_Selector.h"
#include "SVTK_ViewWindow.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
myMeshOrSubMeshOrGroupFilter =
new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
+ myHelpFileName = "/files/smoothing.htm";
+
Init();
/***************************************************************/
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_SmoothingDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// function : onTextChange()
// purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupArguments;
QLabel* TextLabelElements;
QPushButton* SelectElementsButton;
QLabel* TextLabelAspectRatio;
SMESHGUI_SpinBox* SpinBox_AspectRatio;
QCheckBox * CheckBoxParametric;
+
+ QString myHelpFileName;
private slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SUIT_Desktop.h"
#include "SUIT_Session.h"
#include "SUIT_OverrideCursor.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "SALOME_ListIO.hxx"
myButtonsGroupLayout->setAlignment(Qt::AlignTop);
myButtonsGroupLayout->setSpacing(6); myButtonsGroupLayout->setMargin(11);
- // buttons --> OK button
+ // buttons --> OK and Help buttons
myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup, "myOkBtn");
myOkBtn->setAutoDefault(TRUE); myOkBtn->setDefault(TRUE);
- myButtonsGroupLayout->addStretch();
+ myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP" ), myButtonsGroup, "myHelpBtn");
+ myHelpBtn->setAutoDefault(TRUE);
+
myButtonsGroupLayout->addWidget(myOkBtn);
myButtonsGroupLayout->addStretch();
+ myButtonsGroupLayout->addWidget(myHelpBtn);
aDlgLayout->addWidget(myButtonsGroup, 2, 0);
// connect signals
connect( myOkBtn, SIGNAL(clicked()), this, SLOT(close()));
+ connect( myHelpBtn, SIGNAL(clicked()), this, SLOT(onHelp()));
connect( mySelectBtn, SIGNAL(clicked()), this, SLOT(onStartSelection()));
connect( mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(close()));
connect( mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
myMeshFilter = new SMESH_TypeFilter (MESH);
mySelectionMgr->installFilter(myMeshFilter);
onSelectionChanged();
+
+ myHelpFileName = "/files/viewing_mesh_info.htm#standard_infos";
}
//=================================================================================
onSelectionChanged();
myStartSelection = true;
}
+
+//=================================================================================
+// function : onHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_StandardMeshInfosDlg::onHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
void DeactivateActiveDialog() ;
void ActivateThisDialog();
void onStartSelection();
+ void onHelp();
private:
SMESHGUI* mySMESHGUI;
QGroupBox* myButtonsGroup;
QPushButton* myOkBtn;
+ QPushButton* myHelpBtn;
+
+ QString myHelpFileName;
};
#endif // SMESHGUI_STANDARDMESHINFOSDLG_H
// Module : SMESH
// $Header$
-using namespace std;
#include "SMESHGUI_Swig.hxx"
#include "Utils_ORB_INIT.hxx"
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
-#include "SALOMEDS_SObject.hxx"
-
+#include "SALOME_Event.hxx"
+#include "SALOME_NamingService.hxx"
#include "SalomeApp_Application.h"
+#include "SALOMEDSClient_ClientFactory.hxx"
#include "utilities.h"
#include CORBA_SERVER_HEADER(SMESH_Mesh)
#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
-static CORBA::ORB_var _orb;
+using namespace std;
-static CORBA::Object_ptr StringToObject (const char* ior)
-{
- return _orb->string_to_object(ior);
-}
+static CORBA::ORB_var anORB;
-SMESH_Swig::SMESH_Swig()
-{
- MESSAGE("Constructeur");
- setOrb();
-}
+// Tags definition
+static long Tag_HypothesisRoot = 1;
+static long Tag_AlgorithmsRoot = 2;
+
+static long Tag_RefOnShape = 1;
+static long Tag_RefOnAppliedHypothesis = 2;
+static long Tag_RefOnAppliedAlgorithms = 3;
+
+static long Tag_SubMeshOnVertex = 4;
+static long Tag_SubMeshOnEdge = 5;
+static long Tag_SubMeshOnFace = 6;
+static long Tag_SubMeshOnSolid = 7;
+static long Tag_SubMeshOnCompound = 8;
-void SMESH_Swig::Init(int studyID)
+namespace
{
- MESSAGE("Init");
- SMESH::SMESH_Gen_var CompMesh = SMESHGUI::GetSMESHGen();
- GEOM::GEOM_Gen_var CompGeom = SMESH::GetGEOMGen();
-
- SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
- if ( resMgr ) {
- resMgr->loadLanguage( QString::null, "en" );
- /*QString msg;
- if (!resMgr->loadResources( "SMESH", msg ))
- MESSAGE ( msg )*/
+ //---------------------------------------------------------------
+ inline
+ CORBA::Object_var
+ StringToObject(const std::string& theIOR)
+ {
+ return anORB->string_to_object(theIOR.c_str());
}
- SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
- if( !app )
- return;
- CORBA::Object_var obj = app->namingService()->Resolve("/myStudyManager");
- SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj);
- myStudy = myStudyMgr->GetStudyByID(studyID);
+ //---------------------------------------------------------------
+ inline
+ SALOMEDS::SObject_var
+ GetDomainRoot(const SALOMEDS::SComponent_var& theSComponentMesh,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder,
+ CORBA::Long theDomainRootTag,
+ const QString& theName,
+ const QString& thePixmap)
+ {
+ SALOMEDS::SObject_var aDomainRoot;
+ if (!theSComponentMesh->FindSubObject(theDomainRootTag,aDomainRoot)) {
+ aDomainRoot = theStudyBuilder->NewObjectToTag(theSComponentMesh,theDomainRootTag);
+ SALOMEDS::GenericAttribute_var anAttr = theStudyBuilder->FindOrCreateAttribute(aDomainRoot,"AttributeName");
+ SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ aName->SetValue(theName.latin1());
+ anAttr = theStudyBuilder->FindOrCreateAttribute(aDomainRoot,"AttributePixMap");
+ SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ aPixmap->SetPixMap(thePixmap.latin1());
+ anAttr = theStudyBuilder->FindOrCreateAttribute(aDomainRoot,"AttributeSelectable");
+ SALOMEDS::AttributeSelectable_var aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+ aSelAttr->SetSelectable(false);
+ }
- CompMesh->SetCurrentStudy( myStudy.in() );
+ return aDomainRoot;
+ }
- myStudyBuilder = myStudy->NewBuilder();
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributePixMap_var aPixmap;
- // See return value of SMESH::SMESH_Gen::ComponentDataType()
- SALOMEDS::SComponent_var father = myStudy->FindComponent("SMESH");
+ //---------------------------------------------------------------
+ inline
+ SALOMEDS::SObject_var
+ GetHypothesisRoot(const SALOMEDS::SComponent_var& theSComponentMesh,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+ {
+ return GetDomainRoot(theSComponentMesh,
+ theStudyBuilder,
+ Tag_HypothesisRoot,
+ QObject::tr("SMESH_MEN_HYPOTHESIS"),
+ "ICON_SMESH_TREE_HYPO");
+ }
+
- if (father->_is_nil()) {
- bool aLocked = myStudy->GetProperties()->IsLocked();
- if (aLocked) myStudy->GetProperties()->SetLocked(false);
- father = myStudyBuilder->NewComponent("SMESH");
- anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- //NRI aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT"));
- SMESHGUI* gui = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
- if(!gui) {
- SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
- if(app) {
- CAM_Module* module = app->module( "Mesh" );
- if(!module) module = app->loadModule("Mesh");
- gui = dynamic_cast<SMESHGUI*>( module );
- }
- else {
- MESSAGE("Can't find the application");
+ //---------------------------------------------------------------
+ inline
+ SALOMEDS::SObject_var
+ GetAlgorithmsRoot(const SALOMEDS::SComponent_var& theSComponentMesh,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+ {
+ return GetDomainRoot(theSComponentMesh,
+ theStudyBuilder,
+ Tag_AlgorithmsRoot,
+ QObject::tr("SMESH_MEN_ALGORITHMS"),
+ "ICON_SMESH_TREE_ALGO");
+ }
+
+
+ //---------------------------------------------------------------
+ inline
+ SALOMEDS::SObject_var
+ AddToDomain(const std::string& theIOR,
+ const SALOMEDS::SComponent_var& theSComponentMesh,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder,
+ CORBA::Long theDomainRootTag,
+ const QString& theDomainName,
+ const QString& theDomainPixmap)
+ {
+ SALOMEDS::SObject_var aDomain = GetDomainRoot(theSComponentMesh,
+ theStudyBuilder,
+ Tag_AlgorithmsRoot,
+ theDomainName,
+ theDomainPixmap);
+ // Add New Hypothesis
+ SALOMEDS::SObject_var aSObject = theStudyBuilder->NewObject(aDomain);
+ SALOMEDS::GenericAttribute_var anAttr = theStudyBuilder->FindOrCreateAttribute(aSObject,"AttributePixMap");
+ SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ CORBA::Object_var anObject = StringToObject(theIOR);
+ SMESH::SMESH_Hypothesis_var aDomainItem = SMESH::SMESH_Hypothesis::_narrow(anObject.in());
+ CORBA::String_var aType = aDomainItem->GetName();
+ QString aPixmapName = theDomainPixmap + "_" + aType.in();
+ aPixmap->SetPixMap(aPixmapName.latin1());
+ anAttr = theStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeIOR");
+ SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ anIOR->SetValue(theIOR.c_str());
+
+ return aSObject;
+ }
+
+
+ //---------------------------------------------------------------
+ SALOMEDS::SObject_var
+ AddHypothesis(const std::string& theIOR,
+ const SALOMEDS::SComponent_var& theSComponentMesh,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+ {
+ return AddToDomain(theIOR,
+ theSComponentMesh,
+ theStudyBuilder,
+ Tag_HypothesisRoot,
+ QObject::tr("SMESH_MEN_HYPOTHESIS"),
+ "ICON_SMESH_TREE_HYPO");
+ }
+
+
+ //---------------------------------------------------------------
+ SALOMEDS::SObject_var
+ AddAlgorithms(const std::string& theIOR,
+ const SALOMEDS::SComponent_var& theSComponentMesh,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+ {
+ return AddToDomain(theIOR,
+ theSComponentMesh,
+ theStudyBuilder,
+ Tag_AlgorithmsRoot,
+ QObject::tr("SMESH_MEN_ALGORITHMS"),
+ "ICON_SMESH_TREE_ALGO");
+ }
+
+
+ //---------------------------------------------------------------
+ void
+ SetDomain(const char* theMeshOrSubMeshEntry,
+ const char* theDomainEntry,
+ const SALOMEDS::Study_var& theStudy,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder,
+ long theRefOnAppliedDomainTag,
+ const QString& theAppliedDomainMEN,
+ const QString& theAppliedDomainICON)
+ {
+ SALOMEDS::SObject_var aMeshOrSubMeshSO = theStudy->FindObjectID(theMeshOrSubMeshEntry);
+ SALOMEDS::SObject_var aHypothesisSO = theStudy->FindObjectID(theDomainEntry);
+
+ if(!aMeshOrSubMeshSO->_is_nil() && !aHypothesisSO->_is_nil()){
+ //Find or Create Applied Hypothesis root
+ SALOMEDS::SObject_var anAppliedDomainSO;
+ if(!aMeshOrSubMeshSO->FindSubObject(theRefOnAppliedDomainTag,anAppliedDomainSO)){
+ anAppliedDomainSO = theStudyBuilder->NewObjectToTag(aMeshOrSubMeshSO,theRefOnAppliedDomainTag);
+ SALOMEDS::GenericAttribute_var anAttr =
+ theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributeName");
+ SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ aName->SetValue(theAppliedDomainMEN.latin1());
+ anAttr = theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributeSelectable");
+ SALOMEDS::AttributeSelectable_var aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+ aSelAttr->SetSelectable(false);
+ anAttr = theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributePixMap");
+ SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ aPixmap->SetPixMap(theAppliedDomainICON.latin1());
}
- } //SRN: BugID IPAL9186: end of a fix
- aName->SetValue( gui->moduleName() );
- anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
- myStudyBuilder->DefineComponentInstance(father, CompMesh );
- if (aLocked) myStudy->GetProperties()->SetLocked(true);
+ SALOMEDS::SObject_var aSObject = theStudyBuilder->NewObject(anAppliedDomainSO);
+ theStudyBuilder->Addreference(aSObject,aHypothesisSO);
+ }
}
- mySComponentMesh = SALOMEDS::SComponent::_narrow( father );
- // Tags definition
- Tag_HypothesisRoot = 1;
- Tag_AlgorithmsRoot = 2;
-
- Tag_RefOnShape = 1;
- Tag_RefOnAppliedHypothesis = 2;
- Tag_RefOnAppliedAlgorithms = 3;
-
- Tag_SubMeshOnVertex = 4;
- Tag_SubMeshOnEdge = 5;
- Tag_SubMeshOnFace = 6;
- Tag_SubMeshOnSolid = 7;
- Tag_SubMeshOnCompound = 8;
+
+ //---------------------------------------------------------------
+ void
+ SetHypothesis(const char* theMeshOrSubMeshEntry,
+ const char* theDomainEntry,
+ const SALOMEDS::Study_var& theStudy,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+ {
+ SetDomain(theMeshOrSubMeshEntry,
+ theDomainEntry,
+ theStudy,
+ theStudyBuilder,
+ Tag_RefOnAppliedHypothesis,
+ QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"),
+ "ICON_SMESH_TREE_HYPO");
+ }
+
+
+ //---------------------------------------------------------------
+ void
+ SetAlgorithms(const char* theMeshOrSubMeshEntry,
+ const char* theDomainEntry,
+ const SALOMEDS::Study_var& theStudy,
+ const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+ {
+ SetDomain(theMeshOrSubMeshEntry,
+ theDomainEntry,
+ theStudy,
+ theStudyBuilder,
+ Tag_RefOnAppliedAlgorithms,
+ QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"),
+ "ICON_SMESH_TREE_ALGO");
+ }
}
+
+//===============================================================
+SMESH_Swig::SMESH_Swig()
+{
+ class TEvent: public SALOME_Event
+ {
+ CORBA::ORB_var& myORB;
+ public:
+
+ TEvent(CORBA::ORB_var& theORB):
+ myORB(theORB)
+ {}
+
+ virtual
+ void
+ Execute()
+ {
+ try {
+ ORB_INIT &anORBInit = *SINGLETON_<ORB_INIT>::Instance();
+ ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
+ myORB = anORBInit( 0 , 0 );
+ } catch (...) {
+ INFOS("internal error : orb not found");
+ }
+ }
+ };
+
+ MESSAGE("Constructeur");
+
+ if(CORBA::is_nil(anORB))
+ ProcessVoidEvent(new TEvent(anORB));
+
+ ASSERT(!CORBA::is_nil(anORB));
+}
+
+
+//===============================================================
+void
+SMESH_Swig::Init(int theStudyID)
+{
+ class TEvent: public SALOME_Event
+ {
+ int myStudyID;
+ SALOMEDS::Study_var& myStudy;
+ SALOMEDS::StudyBuilder_var& myStudyBuilder;
+ SALOMEDS::SComponent_var& mySComponentMesh;
+ public:
+ TEvent(int theStudyID,
+ SALOMEDS::Study_var& theStudy,
+ SALOMEDS::StudyBuilder_var& theStudyBuilder,
+ SALOMEDS::SComponent_var& theSComponentMesh):
+ myStudyID(theStudyID),
+ myStudy(theStudy),
+ myStudyBuilder(theStudyBuilder),
+ mySComponentMesh(theSComponentMesh)
+ {}
+
+ virtual
+ void
+ Execute()
+ {
+ SUIT_Session* aSession = SUIT_Session::session();
+ SUIT_Application* anApplication = aSession->activeApplication();
+ SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(anApplication);
+
+ SALOME_NamingService* aNamingService = anApp->namingService();
+ CORBA::Object_var anObject = aNamingService->Resolve("/myStudyManager");
+ SALOMEDS::StudyManager_var aStudyMgr = SALOMEDS::StudyManager::_narrow(anObject);
+ myStudy = aStudyMgr->GetStudyByID(myStudyID);
+
+ SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
+ aSMESHGen->SetCurrentStudy( myStudy.in() );
+
+ myStudyBuilder = myStudy->NewBuilder();
+
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeName_var aName;
+ SALOMEDS::AttributePixMap_var aPixmap;
+
+ SALOMEDS::SComponent_var aSComponent = myStudy->FindComponent("SMESH");
+ if(aSComponent->_is_nil()){
+ bool aLocked = myStudy->GetProperties()->IsLocked();
+ if (aLocked)
+ myStudy->GetProperties()->SetLocked(false);
+
+ aSComponent = myStudyBuilder->NewComponent("SMESH");
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSComponent,"AttributeName");
+ aName = SALOMEDS::AttributeName::_narrow(anAttr);
+
+ SMESHGUI* aSMESHGUI = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
+ if(!aSMESHGUI){
+ CAM_Module* aModule = anApp->module("Mesh");
+ if(!aModule)
+ aModule = anApp->loadModule("Mesh");
+ aSMESHGUI = dynamic_cast<SMESHGUI*>(aModule);
+ } //SRN: BugID IPAL9186: end of a fix
+ aName->SetValue(aSMESHGUI->moduleName());
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSComponent,"AttributePixMap");
+ aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
+ myStudyBuilder->DefineComponentInstance(aSComponent,aSMESHGen);
+ if(aLocked)
+ myStudy->GetProperties()->SetLocked(true);
+ }
+
+ mySComponentMesh = SALOMEDS::SComponent::_narrow(aSComponent);
+ }
+ };
+
+ MESSAGE("Init");
+
+ ProcessVoidEvent(new TEvent(theStudyID,
+ myStudy,
+ myStudyBuilder,
+ mySComponentMesh));
+}
+
+
+//===============================================================
SMESH_Swig::~SMESH_Swig()
{
MESSAGE("Destructeur");
}
-const char* SMESH_Swig::AddNewMesh(const char* IOR)
+
+//===============================================================
+const char*
+SMESH_Swig::AddNewMesh(const char* theIOR)
{
MESSAGE("AddNewMesh");
// VSR: added temporarily - to be removed - objects are published automatically by engine
- SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
- if ( !SO->_is_nil() )
- return SO->GetID();
-
- //Find or Create Hypothesis root
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
-
- SALOMEDS::SObject_var HypothesisRoot;
- if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
- HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
- anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
- anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
- aSelAttr->SetSelectable(false);
+ SALOMEDS::SObject_var aSObject = myStudy->FindObjectIOR(theIOR);
+ if(aSObject->_is_nil()){
+ //Find or Create Hypothesis root
+ GetHypothesisRoot(mySComponentMesh,myStudyBuilder);
+ GetAlgorithmsRoot(mySComponentMesh,myStudyBuilder);
+
+ // Add New Mesh
+ aSObject = myStudyBuilder->NewObject(mySComponentMesh);
+ SALOMEDS::GenericAttribute_var anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributePixMap");
+ SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject, "AttributeIOR");
+ SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ anIOR->SetValue(theIOR);
}
- SALOMEDS::SObject_var AlgorithmsRoot;
- if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
- AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
- anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
- anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
- aSelAttr->SetSelectable(false);
- }
+ CORBA::String_var anEntry = aSObject->GetID();
- // Add New Mesh
- SALOMEDS::SObject_var newMesh = myStudyBuilder->NewObject(mySComponentMesh);
- anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
- anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributeIOR");
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR->SetValue(IOR);
- return SALOMEDS::SObject::_narrow( newMesh )->GetID();
+ return anEntry._retn();
}
-const char* SMESH_Swig::AddNewHypothesis(const char* IOR)
+
+//===============================================================
+const char*
+SMESH_Swig::AddNewHypothesis(const char* theIOR)
{
- MESSAGE("AddNewHypothesis");
- // VSR: added temporarily - to be removed - objects are published automatically by engine
- SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
- if ( !SO->_is_nil() )
- return SO->GetID();
-
- //Find or Create Hypothesis root
- SALOMEDS::SObject_var HypothesisRoot;
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
-
- if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
- HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
- anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
- aSelAttr->SetSelectable(false);
- anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
- }
- // Add New Hypothesis
- SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(HypothesisRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
- QString aType = H->GetName();
- aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_" + aType );
-// if ( aType.compare("LocalLength") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_LENGTH" );
-// else if ( aType.compare("NumberOfSegments") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_SEGMENT" );
-// else if ( aType.compare("MaxElementArea") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_AREA" );
-// else if ( aType.compare("MaxElementVolume") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_VOLUME" );
- anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR->SetValue(IOR);
- return SALOMEDS::SObject::_narrow(newHypo)->GetID();
+ MESSAGE("AddNewHypothesis");
+
+ SALOMEDS::SObject_var aSObject = ::AddHypothesis(theIOR,
+ mySComponentMesh,
+ myStudyBuilder);
+ CORBA::String_var anEntry = aSObject->GetID();
+ return anEntry._retn();
}
-const char* SMESH_Swig::AddNewAlgorithms(const char* IOR)
+
+//===============================================================
+const char*
+SMESH_Swig::AddNewAlgorithms(const char* theIOR)
{
MESSAGE("AddNewAlgorithms");
-
- // VSR: added temporarily - to be removed - objects are published automatically by engine
- SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
- if ( !SO->_is_nil() )
- return SO->GetID();
-
- //Find or Create Algorithms root
- SALOMEDS::SObject_var AlgorithmsRoot;
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
-
- if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
- AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
- anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
- aSelAttr->SetSelectable(false);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
- }
- // Add New Algorithms
- SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(AlgorithmsRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
- QString aType = H->GetName();
- aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_" + aType );
-// if ( aType.compare("Regular_1D") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_REGULAR" );
-// else if ( aType.compare("MEFISTO_2D") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_MEFISTO" );
-// else if ( aType.compare("Quadrangle_2D") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_QUAD" );
-// else if ( aType.compare("Hexa_3D") == 0 )
-// aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_HEXA" );
- anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR->SetValue(IOR);
- return SALOMEDS::SObject::_narrow(newHypo)->GetID();
+
+ SALOMEDS::SObject_var aSObject = ::AddAlgorithms(theIOR,
+ mySComponentMesh,
+ myStudyBuilder);
+ CORBA::String_var anEntry = aSObject->GetID();
+ return anEntry._retn();
}
-void SMESH_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
-{
- SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( MeshEntry );
- SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( ShapeEntry );
- if ( !SO_MorSM->_is_nil() && !SO_GeomShape->_is_nil() ) {
- SALOMEDS::SObject_var SO = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnShape);
- myStudyBuilder->Addreference (SO,SO_GeomShape);
+//===============================================================
+void
+SMESH_Swig::SetShape(const char* theShapeEntry,
+ const char* theMeshEntry)
+{
+ SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID( theMeshEntry );
+ SALOMEDS::SObject_var aGeomShapeSO = myStudy->FindObjectID( theShapeEntry );
+
+ if(!aMeshSO->_is_nil() && !aGeomShapeSO->_is_nil()){
+ SALOMEDS::SObject_var aSObject = myStudyBuilder->NewObjectToTag(aMeshSO,Tag_RefOnShape);
+ myStudyBuilder->Addreference(aSObject,aGeomShapeSO);
}
}
-void SMESH_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry)
+
+//===============================================================
+void
+SMESH_Swig::SetHypothesis(const char* theMeshOrSubMeshEntry,
+ const char* theDomainEntry)
{
- SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
- SALOMEDS::SObject_var SO_Hypothesis = myStudy->FindObjectID( Hypothesis_Entry );
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
-
- if ( !SO_MorSM->_is_nil() && !SO_Hypothesis->_is_nil() ) {
-
- //Find or Create Applied Hypothesis root
- SALOMEDS::SObject_var AHR;
- if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedHypothesis, AHR)) {
- AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedHypothesis);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"));
- anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
- aSelAttr->SetSelectable(false);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
- }
- SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
- myStudyBuilder->Addreference (SO,SO_Hypothesis);
- }
+ ::SetHypothesis(theMeshOrSubMeshEntry,
+ theDomainEntry,
+ myStudy,
+ myStudyBuilder);
}
-void SMESH_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry)
+
+//===============================================================
+void
+SMESH_Swig::SetAlgorithms(const char* theMeshOrSubMeshEntry,
+ const char* theDomainEntry)
{
- SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
- SALOMEDS::SObject_var SO_Algorithms = myStudy->FindObjectID( Algorithms_Entry );
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- SALOMEDS::AttributePixMap_var aPixmap;
-
- if ( !SO_MorSM->_is_nil() && !SO_Algorithms->_is_nil() ) {
- //Find or Create Applied Algorithms root
- SALOMEDS::SObject_var AHR;
- if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedAlgorithms, AHR)) {
- AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedAlgorithms);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"));
- anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
- aSelAttr->SetSelectable(false);
- anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
- aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
- aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
- }
- SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
- myStudyBuilder->Addreference (SO,SO_Algorithms);
- }
+ ::SetAlgorithms(theMeshOrSubMeshEntry,
+ theDomainEntry,
+ myStudy,
+ myStudyBuilder);
}
-void SMESH_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
+
+//===============================================================
+void
+SMESH_Swig::UnSetHypothesis(const char* theDomainEntry)
{
- SALOMEDS::SObject_var SO_Applied_Hypothesis = myStudy->FindObjectID( Applied_Hypothesis_Entry );
- if ( !SO_Applied_Hypothesis->_is_nil() )
- myStudyBuilder->RemoveObject(SO_Applied_Hypothesis);
+ SALOMEDS::SObject_var aDomainSO = myStudy->FindObjectID(theDomainEntry);
+ if(!aDomainSO->_is_nil())
+ myStudyBuilder->RemoveObject(aDomainSO);
}
-const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST)
+const char*
+SMESH_Swig::AddSubMesh(const char* theMeshEntry,
+ const char* theSubMeshIOR,
+ int theShapeType)
{
- SALOMEDS::SObject_var SO_Mesh = myStudy->FindObjectID( SO_Mesh_Entry );
- if ( !SO_Mesh->_is_nil() ) {
-
- long Tag_Shape ;
- Standard_CString Name;
-
- if (ST == TopAbs_SOLID) {Tag_Shape = Tag_SubMeshOnSolid; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnSolid"));}
- else if (ST == TopAbs_FACE) {Tag_Shape = Tag_SubMeshOnFace; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnFace"));}
- else if (ST == TopAbs_EDGE) {Tag_Shape = Tag_SubMeshOnEdge; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnEdge"));}
- else if (ST == TopAbs_VERTEX){Tag_Shape = Tag_SubMeshOnVertex; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnVertex"));}
- else {
- Tag_Shape = Tag_SubMeshOnCompound; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnCompound"));
+ SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(theMeshEntry);
+ if(!aMeshSO->_is_nil()){
+ long aShapeTag;
+ QString aSubMeshName;
+ switch(theShapeType){
+ case TopAbs_SOLID:
+ aShapeTag = Tag_SubMeshOnSolid;
+ aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnSolid");
+ break;
+ case TopAbs_FACE:
+ aShapeTag = Tag_SubMeshOnFace;
+ aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnFace");
+ break;
+ case TopAbs_EDGE:
+ aShapeTag = Tag_SubMeshOnEdge;
+ aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnEdge");
+ break;
+ case TopAbs_VERTEX:
+ aShapeTag = Tag_SubMeshOnVertex;
+ aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnVertex");
+ break;
+ default:
+ aShapeTag = Tag_SubMeshOnCompound;
+ aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnCompound");
}
- SALOMEDS::SObject_var SubmeshesRoot;
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- SALOMEDS::AttributeIOR_var anIOR;
- SALOMEDS::AttributeSelectable_var aSelAttr;
- if (!SO_Mesh->FindSubObject (Tag_Shape,SubmeshesRoot )) {
- SubmeshesRoot = myStudyBuilder->NewObjectToTag (SO_Mesh, Tag_Shape);
- anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeName");
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(Name);
- anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeSelectable");
- aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+
+ SALOMEDS::SObject_var aSubMeshesRoot;
+ SALOMEDS::GenericAttribute_var anAttr;
+ if(!aMeshSO->FindSubObject(aShapeTag,aSubMeshesRoot)){
+ aSubMeshesRoot = myStudyBuilder->NewObjectToTag(aMeshSO,aShapeTag);
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSubMeshesRoot,"AttributeName");
+ SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ aName->SetValue(aSubMeshName.latin1());
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSubMeshesRoot,"AttributeSelectable");
+ SALOMEDS::AttributeSelectable_var aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
aSelAttr->SetSelectable(false);
}
- free(Name);
+ SALOMEDS::SObject_var aSObject = myStudyBuilder->NewObject(aSubMeshesRoot);
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeIOR");
+ SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ anIOR->SetValue(theSubMeshIOR);
- SALOMEDS::SObject_var SO = myStudyBuilder->NewObject (SubmeshesRoot);
- anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeIOR");
- anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- anIOR->SetValue(SM_IOR);
- return SALOMEDS::SObject::_narrow( SO )->GetID();
+ CORBA::String_var aString = aSObject->GetID();
+ return aString._retn();
}
+
return "";
}
-const char* SMESH_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry,
- const char* SM_IOR, int ST)
+const char*
+SMESH_Swig::AddSubMeshOnShape(const char* theMeshEntry,
+ const char* theGeomShapeEntry,
+ const char* theSubMeshIOR,
+ int ShapeType)
{
- SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( GeomShape_Entry );
- if ( !SO_GeomShape->_is_nil() ) {
- const char * SM_Entry = AddSubMesh (Mesh_Entry,SM_IOR,ST);
- SALOMEDS::SObject_var SO_SM = myStudy->FindObjectID( SM_Entry );
- if ( !SO_SM->_is_nil() ) {
- SetShape (GeomShape_Entry, SM_Entry);
- return SALOMEDS::SObject::_narrow( SO_SM )->GetID();
+ SALOMEDS::SObject_var aGeomShapeSO = myStudy->FindObjectID(theGeomShapeEntry);
+ if(!aGeomShapeSO->_is_nil()){
+ const char * aSubMeshEntry = AddSubMesh(theMeshEntry,theSubMeshIOR,ShapeType);
+ SALOMEDS::SObject_var aSubMeshSO = myStudy->FindObjectID(aSubMeshEntry);
+ if(!aSubMeshSO->_is_nil()){
+ SetShape(theGeomShapeEntry,aSubMeshEntry);
+ CORBA::String_var aString = aSubMeshSO->GetID();
+ return aString._retn();
}
}
+
return "";
}
// SMESH_Actor* Mesh = smeshGUI->ReadScript(aM);
}
-void SMESH_Swig::SetName(const char* Entry, const char* Name)
+void
+SMESH_Swig::SetName(const char* theEntry,
+ const char* theName)
{
- SALOMEDS::SObject_var SO = myStudy->FindObjectID( Entry );
+ SALOMEDS::SObject_var aSObject = myStudy->FindObjectID(theEntry);
SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- if ( !SO->_is_nil() ) {
- anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeName");
+ SALOMEDS::AttributeName_var aName;
+ if(!aSObject->_is_nil()){
+ anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeName");
aName = SALOMEDS::AttributeName::_narrow(anAttr);
- aName->SetValue(Name);
+ aName->SetValue(theName);
}
}
-void SMESH_Swig::setOrb()
-{
- try {
- ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
- ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
- _orb = init( 0 , 0 );
- } catch (...) {
- INFOS("internal error : orb not found");
- _orb = 0;
- }
- ASSERT(! CORBA::is_nil(_orb));
-}
-
//================================================================================
/*!
* \brief Set mesh icon according to compute status
*/
//================================================================================
-void SMESH_Swig::SetMeshIcon(const char* Mesh_Entry, const bool isComputed)
+void SMESH_Swig::SetMeshIcon(const char* theMeshEntry,
+ const bool theIsComputed)
{
- SALOMEDS::SObject_var mesh_var = myStudy->FindObjectID( Mesh_Entry );
- if ( !mesh_var->_is_nil() ) {
- _PTR(SObject) mesh = _PTR(SObject)(new SALOMEDS_SObject( mesh_var ));
- if ( mesh )
- SMESH::ModifiedMesh( mesh, isComputed );
- }
+ class TEvent: public SALOME_Event
+ {
+ SALOMEDS::Study_var myStudy;
+ std::string myMeshEntry;
+ bool myIsComputed;
+ public:
+ TEvent(const SALOMEDS::Study_var& theStudy,
+ const std::string& theMeshEntry,
+ const bool theIsComputed):
+ myStudy(theStudy),
+ myMeshEntry(theMeshEntry),
+ myIsComputed(theIsComputed)
+ {}
+
+ virtual
+ void
+ Execute()
+ {
+ SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(myMeshEntry.c_str());
+ if(!aMeshSO->_is_nil())
+ if(_PTR(SObject) aMesh = ClientFactory::SObject(aMeshSO))
+ SMESH::ModifiedMesh(aMesh,myIsComputed);
+ }
+ };
+
+ ProcessVoidEvent(new TEvent(myStudy,
+ theMeshEntry,
+ theIsComputed));
}
SMESH_Swig();
~SMESH_Swig();
- static void setOrb();
-
void Init(int studyID);
const char* AddNewMesh(const char* IOR);
SALOMEDS::Study_var myStudy;
SALOMEDS::StudyBuilder_var myStudyBuilder;
SALOMEDS::SComponent_var mySComponentMesh;
-
- // Tags definition
- long Tag_HypothesisRoot;
- long Tag_AlgorithmsRoot;
-
- long Tag_RefOnShape;
- long Tag_RefOnAppliedHypothesis;
- long Tag_RefOnAppliedAlgorithms;
-
- long Tag_SubMeshOnVertex;
- long Tag_SubMeshOnEdge;
- long Tag_SubMeshOnFace;
- long Tag_SubMeshOnSolid;
- long Tag_SubMeshOnCompound;
};
#include "SUIT_Desktop.h"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
myMeshOrSubMeshOrGroupFilter =
new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
+ myHelpFileName = "/files/symmetry.htm";
+
Init();
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_SymmetryDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// function : onTextChange()
// purpose :
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupArguments;
QGroupBox* GroupMirror;
QLabel* TextLabelElements;
SMESHGUI_SpinBox* SpinBox_DZ;
QCheckBox* CheckBoxCopy;
+
+ QString myHelpFileName;
private slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SUIT_Desktop.h"
#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_Selection.h"
GroupButtonsLayout->setAlignment(Qt::AlignTop);
GroupButtonsLayout->setSpacing(6);
GroupButtonsLayout->setMargin(11);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+ buttonHelp->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
buttonCancel->setAutoDefault(TRUE);
myMeshOrSubMeshOrGroupFilter =
new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR);
+ myHelpFileName = "/files/translation.htm";
+
Init();
/* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_TranslationDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=======================================================================
// function : onTextChange()
// purpose :
if (myEditCurrentArgument == (QWidget*)SpinBox1_1) {
SpinBox1_1->SetValue(x);
SpinBox1_2->SetValue(y);
- SpinBox2_3->SetValue(z);
+ SpinBox1_3->SetValue(z);
} else if (myEditCurrentArgument == (QWidget*)SpinBox2_1) {
SpinBox2_1->SetValue(x);
SpinBox2_2->SetValue(y);
QPushButton* buttonOk;
QPushButton* buttonCancel;
QPushButton* buttonApply;
+ QPushButton* buttonHelp;
QGroupBox* GroupArguments;
QLabel* TextLabelElements;
QPushButton* SelectElementsButton;
QLabel* TextLabel2_3;
SMESHGUI_SpinBox* SpinBox2_3;
QCheckBox* CheckBoxCopy;
+
+ QString myHelpFileName;
private slots:
void ClickOnOk();
void ClickOnCancel();
void ClickOnApply();
+ void ClickOnHelp();
void SetEditCurrentArgument() ;
void SelectionIntoArgument() ;
void DeactivateActiveDialog() ;
#include "SUIT_Desktop.h"
#include "SUIT_OverrideCursor.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
#include "SALOME_ListIO.hxx"
#include "SALOME_ListIteratorOfListIO.hxx"
#include "SALOME_InteractiveObject.hxx"
#include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include "SVTK_ViewWindow.h"
buttonOk->setText(tr("SMESH_BUT_CLOSE"));
buttonOk->setAutoDefault(TRUE);
buttonOk->setDefault(TRUE);
- GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 0);
- GroupButtonsLayout->addWidget(buttonOk, 0, 1);
- GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
+ buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+ buttonHelp->setText(tr("SMESH_BUT_HELP"));
+ buttonHelp->setAutoDefault(TRUE);
+
+ //GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 0);
+ GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+ GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
+ GroupButtonsLayout->addWidget(buttonHelp, 0, 2);
+ //GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
SMESHGUI_TransparencyDlgLayout->addWidget(GroupC1, 0, 0);
SMESHGUI_TransparencyDlgLayout->addWidget(GroupButtons, 1, 0);
// signals and slots connections : after ValueHasChanged()
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
+ connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(Slider1, SIGNAL(valueChanged(int)), this, SLOT(SetTransparency()));
connect(Slider1, SIGNAL(sliderMoved(int)), this, SLOT(ValueHasChanged()));
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
+ myHelpFileName = "transparency.htm";
+
this->show();
}
close();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_TransparencyDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : SetTransparency()
// purpose : Called when value of slider change
SVTK_ViewWindow* myViewWindow;
QPushButton* buttonOk;
+ QPushButton* buttonHelp;
QLabel* TextLabelOpaque;
QLabel* ValueLab;
QLabel* TextLabelTransparent;
QSlider* Slider1;
+ QString myHelpFileName;
+
public slots:
void ClickOnOk();
+ void ClickOnHelp();
void ValueHasChanged();
void SetTransparency();
void onSelectionChanged();
if ( isOk )
aDim.append( aVal - 1 );
}
+
+ // for algo
+ enum { HYPOS = 0, OPT_HYPOS, INPUT, OUTPUT, NB_ATTRIBUTES };
+ const char* name [NB_ATTRIBUTES] = { "hypos", "opt-hypos", "input", "output" };
+ QStringList attr [NB_ATTRIBUTES];
+ for ( int i = 0; i < NB_ATTRIBUTES; ++i ) {
+ QString aStr = atts.value( name[i] );
+ if ( !aStr.isEmpty() ) {
+ aStr.remove( ' ' );
+ attr[ i ] = QStringList::split( ',', aStr );
+ }
+ }
HypothesisData* aHypLibNames =
- new HypothesisData (myPluginName, myServerLib, myClientLib,
- aLabel, anIcon, aDim, isAux );
+ new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib,
+ aLabel, anIcon, aDim, isAux,
+ attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ]);
if (qName == "algorithm")
{
#include <qxml.h>
#include <map>
+#include <list>
class SMESHGUI_XmlHandler : public QXmlDefaultHandler
{
+# Copyright (C) 2005 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.salome-platform.org/
+#
# This is a Qt message file in .po format. Each msgid starts with
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
# would be translated to "Pub", not "Foo::Pub".
+# Copyright (C) 2005 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.salome-platform.org/
+#
# This is a Qt message file in .po format. Each msgid starts with
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
# would be translated to "Pub", not "Foo::Pub".
msgid "ICON_FILE_OPEN"
msgstr "open.png"
+
+msgid "ICON_CONV_TO_QUAD"
+msgstr "mesh_conv_to_quad.png"
\ No newline at end of file
msgid "SMESH_BUT_CANCEL"
msgstr "&Cancel"
+#Help
+msgid "SMESH_BUT_HELP"
+msgstr "&Help"
+
#Add
msgid "SMESH_BUT_ADD"
msgstr "A&dd"
msgid "SMESH_MESHINFO_NAME"
msgstr "Name"
-#Faces :
+#Order :
+msgid "SMESH_MESHINFO_ORDER0"
+msgstr "Total"
+
+msgid "SMESH_MESHINFO_ORDER1"
+msgstr "Linear"
+
+msgid "SMESH_MESHINFO_ORDER2"
+msgstr "Quadratic"
+
+#Elements :
msgid "SMESH_MESHINFO_ELEMENTS"
msgstr "Elements"
msgstr "Add Quadratic Tetrahedron"
msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_PYRAMID"
-msgstr "Add Quadratic PYRAMID"
+msgstr "Add Quadratic Pyramid"
msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_PENTAHEDRON"
msgstr "Add Quadratic Pentahedron"
msgid "SMESHGUI_CreatePatternDlg::ERR_LOADF_CLOSED_FACE"
msgstr "It is impossible to create pattern from face having seam edge"
+msgid "SMESHGUI_CreatePatternDlg::ERR_LOADF_CANT_PROJECT"
+msgstr "Impossible to perform projection of nodes to the face"
+
msgid "SMESHGUI_CreatePatternDlg::ERR_LOADV_BAD_SHAPE"
msgstr "Pattern can be created from closed shell or solid with 6 faces only"
msgid "MEN_MAP"
msgstr "Pattern mapping"
+msgid "MEN_CONV_TO_QUAD"
+msgstr "Convert to/from quadratic"
+
msgid "MEN_EXTRUSION_ALONG"
msgstr "Extrusion along a path"
msgid "TOP_MAP"
msgstr "Pattern mapping"
+msgid "TOP_CONV_TO_QUAD"
+msgstr "Convert to/from quadratic"
+
msgid "TOP_EXTRUSION_ALONG"
msgstr "Extrusion along a path"
msgid "STB_MAP"
msgstr "Pattern mapping"
+msgid "STB_CONV_TO_QUAD"
+msgstr "Convert to/from quadratic"
+
msgid "STB_EXTRUSION_ALONG"
msgstr "Extrusion along a path"
msgid "SMESHGUI_MeshOp::MESH_IS_NOT_DEFINED"
msgstr "Mesh is not defined\nPlease specify it and try again"
+
+
+#-----------------------------------------------------------
+
+msgid "SMESHGUI_ConvToQuadDlg::CAPTION"
+msgstr "Convert to/from quadratic"
+
+msgid "SMESHGUI_ConvToQuadDlg::MESH"
+msgstr "Mesh"
+
+msgid "SMESHGUI_ConvToQuadDlg::MEDIUMNDS"
+msgstr "Medium nodes on geometry"
+
+msgid "SMESHGUI_ConvToQuadDlg::RADIOBTN_1"
+msgstr "Convert to quadratic"
+
+msgid "SMESHGUI_ConvToQuadDlg::RADIOBTN_2"
+msgstr "Convert from quadratic"
+
+msgid "SMESHGUI_ConvToQuadOp::MESH_IS_NOT_SELECTED"
+msgstr "Mesh is not selected\nPlease specify it and try again"
+
+msgid "SMESHGUI_ConvToQuadOp::REF_IS_NULL"
+msgstr "No valid mesh object selected"
\ No newline at end of file
myID2AccessorMethod( theEntry2AccessorMethod )
{
myNbCommands = 0;
+ myHasPattern = false;
// make that GetID() to return TPythonDump::SMESHGenName()
GetCreationCmd()->GetString() += "=";
}
/*!
* \brief Convert a command using a specific converter
* \param theCommand - the command to convert
- * \retval bool - convertion result
*/
//================================================================================
id_mesh->second->Process( aCommand );
return;
}
- // SMESH_Hypothesis method
+ // SMESH_Hypothesis method?
list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
for ( ; hyp != myHypos.end(); ++hyp )
- if ( !(*hyp)->IsAlgo() && objID == (*hyp)->GetID() )
+ if ( !(*hyp)->IsAlgo() && objID == (*hyp)->GetID() ) {
(*hyp)->Process( aCommand );
+ return;
+ }
+
+ // Add access to a wrapped mesh
+ for ( id_mesh = myMeshes.begin(); id_mesh != myMeshes.end(); ++id_mesh ) {
+ if ( aCommand->AddAccessorMethod( id_mesh->first, id_mesh->second->AccessorMethod() ))
+ break;
+ }
- // Mesh provides SMESH_IDSource interface used in SMESH_MeshEditor.
- // Add access to wrapped mesh
- if ( objID == TPythonDump::MeshEditorName() ) {
- // in all SMESH_MeshEditor's commands, a SMESH_IDSource is the first arg
- id_mesh = myMeshes.find( aCommand->GetArg( 1 ));
- if ( id_mesh != myMeshes.end() )
- aCommand->SetArg( 1 , aCommand->GetArg( 1 ) + ".GetMesh()" );
+ // Add access to a wrapped algorithm
+ for ( hyp = myHypos.begin(); hyp != myHypos.end(); ++hyp ) {
+ if ( (*hyp)->IsAlgo() &&
+ aCommand->AddAccessorMethod( (*hyp)->GetID(), (*hyp)->AccessorMethod() ))
+ break;
+ }
+
+ // PAL12227. PythonDump was not updated at proper time; result is
+ // aCriteria.append(SMESH.Filter.Criterion(17,26,0,'L1',26,25,1e-07,SMESH.EDGE,-1))
+ // TypeError: __init__() takes exactly 11 arguments (10 given)
+ char wrongCommand[] = "SMESH.Filter.Criterion(";
+ if ( int beg = theCommand.Location( wrongCommand, 1, theCommand.Length() ))
+ {
+ _pyCommand tmpCmd( theCommand.SubString( beg, theCommand.Length() ), -1);
+ // there must be 10 arguments, 5-th arg ThresholdID is missing,
+ const int wrongNbArgs = 9, missingArg = 5;
+ if ( tmpCmd.GetNbArgs() == wrongNbArgs )
+ {
+ for ( int i = wrongNbArgs; i > missingArg; --i )
+ tmpCmd.SetArg( i + 1, tmpCmd.GetArg( i ));
+ tmpCmd.SetArg( missingArg, "''");
+ aCommand->GetString().Trunc( beg - 1 );
+ aCommand->GetString() += tmpCmd.GetString();
+ }
}
}
}
}
+ // leave only one smeshgen.GetPattern() in the script
+ if ( theCommand->GetMethod() == "GetPattern" ) {
+ if ( myHasPattern ) {
+ theCommand->Clear();
+ return;
+ }
+ myHasPattern = true;
+ }
+
// smeshgen.Method() --> smesh.smesh.Method()
theCommand->SetObject( SMESH_2smeshpy::GenName() );
}
*/
//================================================================================
-_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd): _pyObject(theCreationCmd)
+_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd):
+ _pyObject(theCreationCmd), myHasEditor(false)
{
// convert my creation command
Handle(_pyCommand) creationCmd = GetCreationCmd();
// set mesh to hypo
const _pyID& hypID = theCommand->GetArg( 2 );
Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
- if ( !hyp.IsNull() && hyp->GetMesh().IsEmpty() )
- hyp->SetMesh( this->GetID() );
+ if ( !hyp.IsNull() ) {
+ myHypos.push_back( hyp );
+ if ( hyp->GetMesh().IsEmpty() )
+ hyp->SetMesh( this->GetID() );
+ }
}
else if ( method == "CreateGroupFromGEOM" ) {// (type, name, grp)
_pyID grp = theCommand->GetArg( 3 );
while ( cmd != myAddHypCmds.end() )
{
// AddHypothesis(geom, hyp)
- if ( hypID == (*cmd)->GetArg( 2 )) { // erase both commands
+ if ( hypID == (*cmd)->GetArg( 2 )) { // erase both (add and remove) commands
theCommand->Clear();
(*cmd)->Clear();
cmd = myAddHypCmds.erase( cmd );
++cmd;
}
}
- if ( ! hasAddCmd ) {
+ Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
+ if ( ! hasAddCmd ) { // hypo addition already wrapped
// access to wrapped mesh
AddMeshAccess( theCommand );
// access to wrapped algo
- Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
if ( !hyp.IsNull() && hyp->IsAlgo() && hyp->IsWrapped() )
theCommand->SetArg( 2, theCommand->GetArg( 2 ) + ".GetAlgorithm()" );
}
+ // remove hyp from myHypos
+ myHypos.remove( hyp );
+ }
+
+ // leave only one " mesh_editor_<nb> = mesh.GetMeshEditor()"
+ else if ( theCommand->GetMethod() == "GetMeshEditor")
+ {
+ if ( myHasEditor )
+ theCommand->Clear();
+ else
+ AddMeshAccess( theCommand );
+ myHasEditor = true;
}
- else { // apply theCommand to the mesh wrapped by smeshpy mesh
+
+ // apply theCommand to the mesh wrapped by smeshpy mesh
+ else
+ {
AddMeshAccess( theCommand );
}
}
}
myAddHypCmds.clear();
mySubmeshes.clear();
+
+ // flush hypotheses
+ list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
+ for ( ; hyp != myHypos.end(); ++hyp )
+ (*hyp)->Flush();
}
//================================================================================
for ( ; cmd != myUnknownCommands.end(); ++cmd ) {
afterCmd->AddDependantCmd( *cmd );
}
- myArgCommands.clear();
- myUnknownCommands.clear();
return myIsWrapped;
}
void _pyHypothesis::Flush()
{
-// if ( IsWrapped() )
-// GetCreationCmd()->Clear();
+ if ( IsWrapped() ) {
+ // forget previous hypothesis modifications
+ myArgCommands.clear();
+ myUnknownCommands.clear();
+ }
}
//================================================================================
bool _pyNumberOfSegmentsHyp::Addition2Creation( const Handle(_pyCommand)& theCmd,
const _pyID& theMesh)
{
- if ( IsWrappable( theMesh ) && myArgs.Length() > 0 ) {
- list<Handle(_pyCommand)>::iterator cmd = myUnknownCommands.begin();
- for ( ; cmd != myUnknownCommands.end(); ++cmd ) {
- // clear SetDistrType()
- if ( (*cmd)->GetString().Location( "SetDistrType", 1, (*cmd)->Length() ))
- (*cmd)->Clear();
+ if ( IsWrappable( theMesh ) && myArgs.Length() > 1 ) {
+ // scale factor (2-nd arg) is provided: clear SetDistrType(1) command
+ bool scaleDistrType = false;
+ list<Handle(_pyCommand)>::reverse_iterator cmd = myUnknownCommands.rbegin();
+ for ( ; cmd != myUnknownCommands.rend(); ++cmd ) {
+ if ( (*cmd)->GetMethod() == "SetDistrType" ) {
+ if ( (*cmd)->GetArg( 1 ) == "1" ) {
+ scaleDistrType = true;
+ (*cmd)->Clear();
+ }
+ else if ( !scaleDistrType ) {
+ // distribution type changed: remove scale factor from args
+ myArgs.Remove( 2, myArgs.Length() );
+ break;
+ }
+ }
}
}
return _pyHypothesis::Addition2Creation( theCmd, theMesh );
}
+//================================================================================
+/*!
+ * \brief remove repeated commands defining distribution
+ */
+//================================================================================
+
+void _pyNumberOfSegmentsHyp::Flush()
+{
+ const int nbCmdLists = 2;
+ list<Handle(_pyCommand)> * cmds[nbCmdLists] = { &myArgCommands, &myUnknownCommands };
+ for ( int i = 0; i < nbCmdLists; ++i ) {
+ set<TCollection_AsciiString> uniqueMethods;
+ list<Handle(_pyCommand)> & cmdList = *cmds[i];
+ list<Handle(_pyCommand)>::reverse_iterator cmd = cmdList.rbegin();
+ for ( ; cmd != cmdList.rend(); ++cmd ) {
+ bool isNewInSet = uniqueMethods.insert( (*cmd)->GetMethod() ).second;
+ if ( ! isNewInSet )
+ (*cmd)->Clear();
+ }
+ cmdList.clear();
+ }
+}
+
//================================================================================
/*!
* \brief _pyAlgorithm constructor
- * \param theCreationCmd - The command like "algo = smeshgen.CreateHypothesis(type,lib)"
+ * \param theCreationCmd - The command like "algo = smeshgen.CreateHypothesis(type,lib)"
*/
//================================================================================
if ( pos < 1 ) // no index-th arg exist, append inexistent args
{
// find a closing parenthesis
- pos = Length();
- while ( pos > 0 && myString.Value( pos ) != ')' )
- --pos;
- if ( pos == 0 ) { // no parentheses at all
+ if ( int lastArgInd = GetNbArgs() ) {
+ pos = GetBegPos( ARG1_IND + lastArgInd - 1 ) + GetArg( lastArgInd ).Length();
+ while ( pos > 0 && pos <= Length() && myString.Value( pos ) != ')' )
+ ++pos;
+ }
+ else {
+ pos = Length();
+ while ( pos > 0 && myString.Value( pos ) != ')' )
+ --pos;
+ }
+ if ( pos < 1 || myString.Value( pos ) != ')' ) { // no parentheses at all
myString += "()";
pos = Length();
}
bool _pyCommand::SetDependentCmdsAfter() const
{
bool orderChanged = false;
- list< Handle(_pyCommand)>::const_iterator cmd = myDependentCmds.begin();
- for ( ; cmd != myDependentCmds.end(); ++cmd ) {
+ list< Handle(_pyCommand)>::const_reverse_iterator cmd = myDependentCmds.rbegin();
+ for ( ; cmd != myDependentCmds.rend(); ++cmd ) {
if ( (*cmd)->GetOrderNb() < GetOrderNb() ) {
orderChanged = true;
theGen->SetCommandAfter( *cmd, this );
}
return orderChanged;
}
+//================================================================================
+/*!
+ * \brief Insert accessor method after theObjectID
+ * \param theObjectID - id of the accessed object
+ * \param theAcsMethod - name of the method giving access to the object
+ * \retval bool - false if theObjectID is not found in the command string
+ */
+//================================================================================
+
+bool _pyCommand::AddAccessorMethod( _pyID theObjectID, const char* theAcsMethod )
+{
+ if ( !theAcsMethod )
+ return false;
+ // start object search from the object, i.e. ignore result
+ GetObject();
+ int beg = GetBegPos( OBJECT_IND );
+ if ( beg < 1 || beg > Length() )
+ return false;
+ while (( beg = myString.Location( theObjectID, beg, Length() )))
+ {
+ // check that theObjectID is not just a part of a longer ID
+ int afterEnd = beg + theObjectID.Length();
+ Standard_Character c = myString.Value( afterEnd );
+ if ( !isalnum( c ) && c != ':' ) {
+ // insertion
+ int oldLen = Length();
+ myString.Insert( afterEnd, (char*) theAcsMethod );
+ myString.Insert( afterEnd, "." );
+ // update starting positions of the parts following the modified one
+ int posDelta = Length() - oldLen;
+ for ( int i = 1; i <= myBegPos.Length(); ++i ) {
+ if ( myBegPos( i ) > afterEnd )
+ myBegPos( i ) += posDelta;
+ }
+ return true;
+ }
+ beg = afterEnd; // is a part - next search
+ }
+ return false;
+}
+
+//================================================================================
+/*!
+ * \brief Return method name giving access to an interaface object wrapped by python class
+ * \retval const char* - method name
+ */
+//================================================================================
+
+const char* _pyObject::AccessorMethod() const
+{
+ return 0;
+}
+// Copyright (C) 2005 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.salome-platform.org/
+//
// File : SMESH_smesh.hxx
// Created : Fri Nov 18 12:05:18 2005
// Author : Edward AGAPOV (eap)
DEFINE_STANDARD_HANDLE (_pyHypothesis,_pyObject);
DEFINE_STANDARD_HANDLE (_pyAlgorithm ,_pyHypothesis);
+typedef TCollection_AsciiString _pyID;
+
+// ===========================================================
/*!
* \brief Class operating on a command string looking like
* ResultValue = Object.Method( Arg1, Arg2,...)
*/
+// ===========================================================
+
class _pyCommand: public Standard_Transient
{
- int myOrderNb; // position within the script
- TCollection_AsciiString myString;
- TCollection_AsciiString myRes, myObj, myMeth;
- TColStd_SequenceOfAsciiString myArgs;
- TColStd_SequenceOfInteger myBegPos; //!< where myRes, myObj, ... begin
- std::list< Handle(_pyCommand) > myDependentCmds;
+ int myOrderNb; //!< position within the script
+ TCollection_AsciiString myString; //!< command text
+ TCollection_AsciiString myRes, myObj, myMeth; //!< found parts of command
+ TColStd_SequenceOfAsciiString myArgs; //!< found arguments
+ TColStd_SequenceOfInteger myBegPos; //!< where myRes, myObj, ... begin
+ std::list< Handle(_pyCommand) > myDependentCmds; //!< commands that sould follow me in the script
+
enum { UNKNOWN=-1, EMPTY=0, RESULT_IND, OBJECT_IND, METHOD_IND, ARG1_IND };
int GetBegPos( int thePartIndex );
void SetBegPos( int thePartIndex, int thePosition );
void SetPart( int thePartIndex, const TCollection_AsciiString& theNewPart,
TCollection_AsciiString& theOldPart);
void FindAllArgs() { GetArg(1); }
+
public:
_pyCommand() {};
_pyCommand( const TCollection_AsciiString& theString, int theNb )
{ return myDependentCmds.push_back( cmd ); }
bool SetDependentCmdsAfter() const;
+ bool AddAccessorMethod( _pyID theObjectID, const char* theAcsMethod );
+
DEFINE_STANDARD_RTTI (_pyCommand)
};
/*!
* \brief Root of all objects
*/
-typedef TCollection_AsciiString _pyID;
class _pyObject: public Standard_Transient
{
int GetCommandNb() { return myCreationCmd->GetOrderNb(); }
virtual void Process(const Handle(_pyCommand) & theCommand) = 0;
virtual void Flush() = 0;
+ virtual const char* AccessorMethod() const;
DEFINE_STANDARD_RTTI (_pyObject)
};
void SetCommandAfter( Handle(_pyCommand) theCmd, Handle(_pyCommand) theAfterCmd );
std::list< Handle(_pyCommand) >& GetCommands() { return myCommands; }
void SetAccessorMethod(const _pyID& theID, const char* theMethod );
+ const char* AccessorMethod() const { return SMESH_2smeshpy::GenName(); }
private:
std::map< _pyID, Handle(_pyMesh) > myMeshes;
std::list< Handle(_pyHypothesis) > myHypos;
std::list< Handle(_pyCommand) > myCommands;
int myNbCommands;
+ bool myHasPattern;
Resource_DataMapOfAsciiStringAsciiString& myID2AccessorMethod;
DEFINE_STANDARD_RTTI (_pyGen)
/*!
* \brief Contains commands concerning mesh substructures
*/
+#define _pyMesh_ACCESS_METHOD "GetMesh()"
class _pyMesh: public _pyObject
{
+ std::list< Handle(_pyHypothesis) > myHypos;
std::list< Handle(_pyCommand) > myAddHypCmds;
- std::list< Handle(_pyCommand) > mySubmeshes;
+ std::list< Handle(_pyCommand) > mySubmeshes;
+ bool myHasEditor;
public:
_pyMesh(const Handle(_pyCommand) theCreationCmd);
const _pyID& GetGeom() { return GetCreationCmd()->GetArg(1); }
void Process( const Handle(_pyCommand)& theCommand);
void Flush();
+ const char* AccessorMethod() const { return _pyMesh_ACCESS_METHOD; }
private:
static void AddMeshAccess( const Handle(_pyCommand)& theCommand )
- { theCommand->SetObject( theCommand->GetObject() + ".GetMesh()" ); }
+ { theCommand->SetObject( theCommand->GetObject() + "." _pyMesh_ACCESS_METHOD ); }
DEFINE_STANDARD_RTTI (_pyMesh)
};
+#undef _pyMesh_ACCESS_METHOD
/*!
* \brief Root class for hypothesis
_pyNumberOfSegmentsHyp(const Handle(_pyCommand)& theCrCmd): _pyHypothesis(theCrCmd) {}
virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
const _pyID& theMesh);
+ void Flush();
DEFINE_STANDARD_RTTI (_pyNumberOfSegmentsHyp)
};
_pyAlgorithm(const Handle(_pyCommand)& theCreationCmd);
virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
const _pyID& theMesh);
+ const char* AccessorMethod() const { return "GetAlgorithm()"; }
DEFINE_STANDARD_RTTI (_pyAlgorithm)
};
#include "SMESH_PythonDump.hxx"
#include "SMESH_Gen_i.hxx"
#include "SMESH_Filter_i.hxx"
+#include "SMESH_MeshEditor_i.hxx"
#include "SMESH_2smeshpy.hxx"
#include <TColStd_HSequenceOfInteger.hxx>
myStream << aSObject->GetID();
} else if ( !CORBA::is_nil(theArg)) {
if ( aSMESHGen->CanPublishInStudy( theArg )) // not published SMESH object
- myStream << "smeshObj_" << (int) theArg;
+ myStream << "smeshObj_" << size_t(theArg);
else
myStream << NotPublishedObjectName();
}
TPythonDump& TPythonDump::operator<<(SMESH_MeshEditor_i* theArg)
{
- myStream << MeshEditorName(); return *this;
+ myStream << MeshEditorName() << "_" << ( theArg ? theArg->GetMeshId() : -1 ); return *this;
}
TPythonDump& TPythonDump::operator<<(const TCollection_AsciiString & theStr)
<< P.z << " ))";
return *this;
}
+
+ TCollection_AsciiString myLongStringStart( "TPythonDump::LongStringStart" );
+ TCollection_AsciiString myLongStringEnd ( "TPythonDump::LongStringEnd" );
+
+ //================================================================================
+ /*!
+ * \brief Return marker of long string literal beginning
+ * \param type - a name of functionality producing the string literal
+ * \retval TCollection_AsciiString - the marker string to be written into
+ * a raw python script
+ */
+ //================================================================================
+
+ TCollection_AsciiString TPythonDump::LongStringStart(const char* type)
+ {
+ return
+ myLongStringStart +
+ (Standard_Integer) strlen(type) +
+ " " +
+ (char*) type;
+ }
+
+ //================================================================================
+ /*!
+ * \brief Return marker of long string literal end
+ * \retval TCollection_AsciiString - the marker string to be written into
+ * a raw python script
+ */
+ //================================================================================
+
+ TCollection_AsciiString TPythonDump::LongStringEnd()
+ {
+ return myLongStringEnd;
+ }
+
+ //================================================================================
+ /*!
+ * \brief Cut out a long string literal from a string
+ * \param theText - text possibly containing string literals
+ * \param theFrom - position in the text to search from
+ * \param theLongString - the retrieved literal
+ * \param theStringType - a name of functionality produced the literal
+ * \retval bool - true if a string literal found
+ *
+ * The literal is removed from theText; theFrom points position right after
+ * the removed literal
+ */
+ //================================================================================
+
+ bool TPythonDump::CutoutLongString( TCollection_AsciiString & theText,
+ int & theFrom,
+ TCollection_AsciiString & theLongString,
+ TCollection_AsciiString & theStringType)
+ {
+ if ( theFrom < 1 || theFrom > theText.Length() )
+ return false;
+
+ // ...script \ beg marker \ \ type \ literal \ end marker \ script...
+ // "theText myLongStringStart7 Pattern!!! SALOME Mesh Pattern file myLongStringEndtextEnd"
+ // 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
+ // 0 1 2 3 4 5 6 7 8
+
+ theFrom = theText.Location( myLongStringStart, theFrom, theText.Length() ); // = 09
+ if ( !theFrom )
+ return false;
+
+ // find where literal begins
+ int literalBeg = theFrom + myLongStringStart.Length(); // = 26
+ char* typeLenStr = theText.ToCString() + literalBeg - 1; // = "7 Pattern!!! SALO...."
+ int typeLen = atoi ( typeLenStr ); // = 7
+ while ( *typeLenStr != ' ' ) { // look for ' ' after typeLen
+ literalBeg++; // 26 -> 27
+ typeLenStr++;
+ }
+ literalBeg += typeLen + 1; // = 35
+ if ( literalBeg > theText.Length() )
+ return false;
+
+ // where literal ends (i.e. end marker begins)
+ int literalEnd = theText.Location( myLongStringEnd, literalBeg, theText.Length() ); // = 64
+ if ( !literalEnd )
+ literalEnd = theText.Length();
+
+ // literal
+ theLongString = theText.SubString( literalBeg, literalEnd - 1); // "!!! SALOME Mesh Pattern file "
+ // type
+ theStringType = theText.SubString( literalBeg - typeLen, literalBeg - 1 ); // "Pattern"
+ // cut off literal
+ literalEnd += myLongStringEnd.Length(); // = 79
+ TCollection_AsciiString textEnd = theText.SubString( literalEnd, theText.Length() ); // "textE..."
+ theText = theText.SubString( 1, theFrom - 1 ) + textEnd;
+
+ return true;
+ }
}
//=======================================================================
return aSeq;
}
+namespace {
+
+ //================================================================================
+ /*!
+ * \brief Make a string be a valid python name
+ * \param aName - a string to fix
+ * \retval bool - true if aName was not modified
+ */
+ //================================================================================
+
+ bool fixPythonName(TCollection_AsciiString & aName )
+ {
+ const TCollection_AsciiString allowedChars =
+ "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_";
+ bool isValidName = true;
+ int p=1; // replace not allowed chars with underscore
+ while (p <= aName.Length() &&
+ (p = aName.FirstLocationNotInSet(allowedChars, p, aName.Length())))
+ {
+ if ( p == 1 || p == aName.Length() || aName.Value(p-1) == '_')
+ aName.Remove( p, 1 ); // remove double _ and from the start and the end
+ else
+ aName.SetValue(p, '_');
+ isValidName = false;
+ }
+ if ( aName.IsIntegerValue() ) { // aName must not start with a digit
+ aName.Insert( 1, 'a' );
+ isValidName = false;
+ }
+ return isValidName;
+ }
+}
+
//=============================================================================
/*!
* DumpPython
else
aScript += aSMESHGen + ".SetCurrentStudy(None)";
+ // import python files corresponding to plugins
+ set<string> moduleNameSet;
+ map<string, GenericHypothesisCreator_i*>::iterator hyp_creator = myHypCreatorMap.begin();
+ for ( ; hyp_creator != myHypCreatorMap.end(); ++hyp_creator ) {
+ string moduleName = hyp_creator->second->GetModuleName();
+ bool newModule = moduleNameSet.insert( moduleName ).second;
+ if ( newModule )
+ aScript += helper + "\n\t" + "import " + (char*) moduleName.c_str();
+ }
+
// Dump trace of restored study
if (theSavedTrace.Length() > 0) {
// For the convertion of IDL API calls -> smesh.py API, "smesh" standing for SMESH_Gen
int beg, end = aSavedTrace.Length(), from = 1;
while ( from < end && ( beg = aSavedTrace.Location( aSmeshCall, from, end ))) {
char charBefore = ( beg == 1 ) ? ' ' : aSavedTrace.Value( beg - 1 );
- if ( isspace( charBefore ) || charBefore == '=' ) {
- aSavedTrace.Insert( beg + aSmeshCall.Length() - 1, gen );
+ if ( isspace( charBefore ) || charBefore == '=' ) { // "smesh." is not a part of a long word
+ aSavedTrace.Insert( beg + aSmeshCall.Length() - 1, gen );// "smesh" -> "smeshgen"
end += gen.Length();
}
from = beg + aSmeshCall.Length();
TColStd_SequenceOfAsciiString seqRemoved;
Resource_DataMapOfAsciiStringAsciiString mapRemoved;
Standard_Integer objectCounter = 0, aStart = 1, aScriptLength = aScript.Length();
- TCollection_AsciiString anUpdatedScript, anEntry, aName, aBaseName("smeshObj_"),
- allowedChars ("qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_");
+ TCollection_AsciiString anUpdatedScript, anEntry, aName, aBaseName("smeshObj_");
// Collect names of GEOM objects to exclude same names for SMESH objects
GEOM::string_array_var aGeomNames = geom->GetAllDumpNames();
// The Object is in Study
aName = theObjectNames.Find(anEntry);
// check validity of aName
- bool isValidName = true;
- int p=1; // replace not allowed chars with underscore
- while (p <= aName.Length() &&
- (p = aName.FirstLocationNotInSet(allowedChars, p, aName.Length())))
- {
- if ( p == 1 || p == aName.Length() || aName.Value(p-1) == '_')
- aName.Remove( p, 1 ); // remove double _ and from the start and the end
- else
- aName.SetValue(p, '_');
- isValidName = false;
- }
- if ( aName.IsIntegerValue() ) { // aName must not start with a digit
- aName.Insert( 1, 'a' );
- isValidName = false;
- }
+ bool isValidName = fixPythonName( aName );
if (theObjectNames.IsBound(aName) && anEntry != theObjectNames(aName)) {
// diff objects have same name - make a new name by appending a digit
TCollection_AsciiString aName2;
for (int ir = 1; ir <= seqRemoved.Length(); ir++) {
anUpdatedScript += "\n\tSO = theStudy.FindObjectIOR(theStudy.ConvertObjectToIOR(";
anUpdatedScript += seqRemoved.Value(ir);
+ // for object wrapped by class of smesh.py
+ anEntry = theObjectNames( seqRemoved.Value(ir) );
+ if ( anEntry2AccessorMethod.IsBound( anEntry ) )
+ anUpdatedScript += helper + "." + anEntry2AccessorMethod( anEntry );
anUpdatedScript += "))\n\tif SO is not None: aStudyBuilder.RemoveObjectWithChildren(SO)";
}
anUpdatedScript += "\n\n\tpass\n";
+ // -----------------------------------------------------------------
+ // put string literals describing patterns into separate functions
+ // -----------------------------------------------------------------
+
+ TCollection_AsciiString aLongString, aFunctionType;
+ int where = 1;
+ set< string > functionNameSet;
+ while ( SMESH::TPythonDump::CutoutLongString( anUpdatedScript, where, aLongString, aFunctionType ))
+ {
+ // make a python string literal
+ aLongString.Prepend(":\n\treturn '''\n");
+ aLongString += "\n\t'''\n\tpass\n";
+
+ TCollection_AsciiString functionName;
+
+ // check if the function returning this literal is already defined
+ int posAlready = anUpdatedScript.Location( aLongString, where, anUpdatedScript.Length() );
+ if ( posAlready ) // already defined
+ {
+ // find the function name
+ int functBeg = posAlready;
+ char* script = anUpdatedScript.ToCString() + posAlready - 1; // look at ":" after "def fuction()"
+ while ( *script != ' ' ) {
+ script--;
+ functBeg--;
+ }
+ functBeg++; // do not take ' '
+ posAlready--; // do not take ':'
+ functionName = anUpdatedScript.SubString( functBeg, posAlready );
+ }
+ else // not defined yet
+ {
+ // find a unique function name
+ fixPythonName( aFunctionType );
+ Standard_Integer nb = 0;
+ do functionName = aFunctionType + "_" + ( nb++ ) + "()";
+ while ( !functionNameSet.insert( functionName.ToCString() ).second );
+
+ anUpdatedScript += helper + "\n\ndef " + functionName + aLongString; // define function
+ }
+ anUpdatedScript.InsertBefore( where, functionName ); // call function
+ }
+
aValidScript = true;
return anUpdatedScript;
long i = 0, iEnd = aBorders.size();
- SMESH::FreeEdges::Borders_var aResult = new SMESH::FreeEdges::Borders(iEnd);
+ SMESH::FreeEdges::Borders_var aResult = new SMESH::FreeEdges::Borders;
+ aResult->length(iEnd);
SMESH::Controls::FreeEdges::TBorders::const_iterator anIter;
for ( anIter = aBorders.begin() ; anIter != aBorders.end(); anIter++, i++ )
int aCriterion = theCriteria[ i ].Type;
int aCompare = theCriteria[ i ].Compare;
double aThreshold = theCriteria[ i ].Threshold;
+ const char* aThresholdStr = theCriteria[ i ].ThresholdStr;
+ const char* aThresholdID = theCriteria[ i ].ThresholdID;
int aUnary = theCriteria[ i ].UnaryOp;
int aBinary = theCriteria[ i ].BinaryOp;
double aTolerance = theCriteria[ i ].Tolerance;
- const char* aThresholdStr = theCriteria[ i ].ThresholdStr;
- const char* aThresholdID = theCriteria[ i ].ThresholdID;
ElementType aTypeOfElem = theCriteria[ i ].TypeOfElement;
long aPrecision = theCriteria[ i ].Precision;
TPythonDump()<<"aCriteria.append(SMESH.Filter.Criterion("<<
- aCriterion<<","<<aCompare<<","<<aThreshold<<",'"<<aThresholdStr<<"',"<<
+ aCriterion<<","<<aCompare<<","<<aThreshold<<",'"<<aThresholdStr<<"','"<<aThresholdID<<"',"<<
aUnary<<","<<aBinary<<","<<aTolerance<<","<<aTypeOfElem<<","<<aPrecision<<"))";
SMESH::Predicate_ptr aPredicate = SMESH::Predicate::_nil();
// name : toString
// Purpose : Convert bool to LDOMString
//=======================================================================
-static inline LDOMString toString( const bool val )
+static inline LDOMString toString( CORBA::Boolean val )
{
return val ? "logical not" : "";
}
// name : toString
// Purpose : Convert double to LDOMString
//=======================================================================
-static inline LDOMString toString( const double val )
+static inline LDOMString toString( CORBA::Double val )
{
char a[ 255 ];
sprintf( a, "%e", val );
// name : toString
// Purpose : Convert functor type to LDOMString
//=======================================================================
-static inline LDOMString toString( const long theType )
+static inline LDOMString toString( CORBA::Long theType )
{
switch ( theType )
{
for ( CORBA::ULong i = 0, n = aCriteria->length(); i < n; i++ )
{
LDOM_Element aCriterionItem = theDoc.createElement( "criterion" );
-
- aCriterionItem.setAttribute( ATTR_TYPE , toString( aCriteria[ i ].Type ) );
- aCriterionItem.setAttribute( ATTR_COMPARE , toString( aCriteria[ i ].Compare ) );
- aCriterionItem.setAttribute( ATTR_THRESHOLD , toString( aCriteria[ i ].Threshold ) );
- aCriterionItem.setAttribute( ATTR_UNARY , toString( aCriteria[ i ].UnaryOp ) );
- aCriterionItem.setAttribute( ATTR_BINARY , toString( aCriteria[ i ].BinaryOp ) );
+
+ aCriterionItem.setAttribute( ATTR_TYPE , toString( aCriteria[ i ].Type) );
+ aCriterionItem.setAttribute( ATTR_COMPARE , toString( aCriteria[ i ].Compare ) );
+ aCriterionItem.setAttribute( ATTR_THRESHOLD , toString( aCriteria[ i ].Threshold ) );
+ aCriterionItem.setAttribute( ATTR_UNARY , toString( aCriteria[ i ].UnaryOp ) );
+ aCriterionItem.setAttribute( ATTR_BINARY , toString( aCriteria[ i ].BinaryOp ) );
aCriterionItem.setAttribute( ATTR_THRESHOLD_STR, (const char*)aCriteria[ i ].ThresholdStr );
aCriterionItem.setAttribute( ATTR_TOLERANCE , toString( aCriteria[ i ].Tolerance ) );
return mesh._retn();
}
+//=============================================================================
+/*!
+ * SMESH_Gen_i::CreateEmptyMesh
+ *
+ * Create empty mesh
+ */
+//=============================================================================
+
+SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateEmptyMesh()
+ throw ( SALOME::SALOME_Exception )
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
+ // create mesh
+ SMESH::SMESH_Mesh_var mesh = this->createMesh();
+
+ // publish mesh in the study
+ if ( CanPublishInStudy( mesh ) ) {
+ SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
+ aStudyBuilder->NewCommand(); // There is a transaction
+ SALOMEDS::SObject_var aSO = PublishMesh( myCurrentStudy, mesh.in() );
+ aStudyBuilder->CommitCommand();
+ if ( !aSO->_is_nil() ) {
+ // Update Python script
+ TPythonDump() << aSO << " = " << this << ".CreateEmptyMesh()";
+ }
+ }
+
+ return mesh._retn();
+}
+
//=============================================================================
/*!
* SMESH_Gen_i::CreateMeshFromUNV
SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
ASSERT( aServant );
aServant->ImportUNVFile( theFileName );
+
+ // Dump creation of groups
+ aServant->GetGroups();
+
return aMesh._retn();
}
Unexpect aCatch(SALOME_SalomeException);
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
- // Python Dump
- TPythonDump aPythonDump;
- aPythonDump << "([";
- //TCollection_AsciiString aStr ("([");
-
// Retrieve mesh names from the file
DriverMED_R_SMESHDS_Mesh myReader;
myReader.SetFile( theFileName );
list<string> aNames = myReader.GetMeshNames(aStatus);
SMESH::mesh_array_var aResult = new SMESH::mesh_array();
theStatus = (SMESH::DriverMED_ReadStatus)aStatus;
+
+ { // open a new scope to make aPythonDump die before PythonDump in SMESH_Mesh::GetGroups()
+
+ // Python Dump
+ TPythonDump aPythonDump;
+ aPythonDump << "([";
+ //TCollection_AsciiString aStr ("([");
+
if (theStatus == SMESH::DRS_OK) {
SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
aStudyBuilder->NewCommand(); // There is a transaction
// Update Python script
aPythonDump << "], status) = " << this << ".CreateMeshesFromMED('" << theFileName << "')";
+ }
+ // Dump creation of groups
+ for ( int i = 0; i < aResult->length(); ++i )
+ aResult[ i ]->GetGroups();
return aResult._retn();
}
SMESH::SMESH_Mesh_ptr CreateMesh( GEOM::GEOM_Object_ptr theShapeObject )
throw ( SALOME::SALOME_Exception );
+ // Create empty mesh
+ SMESH::SMESH_Mesh_ptr CreateEmptyMesh()
+ throw ( SALOME::SALOME_Exception );
+
// Create mesh(es) and import data from UNV file
SMESH::SMESH_Mesh_ptr CreateMeshesFromUNV( const char* theFileName )
throw ( SALOME::SALOME_Exception );
SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
SALOMEDS::SObject_var aReferenceSO;
if ( !theTag ) {
+ // check if the reference to theToObject already exists
+ // and find a free label for the reference object
bool isReferred = false;
+ int tag = 1;
SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator( theSObject );
- for ( ; !isReferred && anIter->More(); anIter->Next() ) {
- if ( anIter->Value()->ReferencedObject( aReferenceSO ) &&
- strcmp( aReferenceSO->GetID(), aToObjSO->GetID() ) == 0 )
- isReferred = true;
+ for ( ; !isReferred && anIter->More(); anIter->Next(), ++tag ) {
+ if ( anIter->Value()->ReferencedObject( aReferenceSO )) {
+ if ( strcmp( aReferenceSO->GetID(), aToObjSO->GetID() ) == 0 )
+ isReferred = true;
+ }
+ else if ( !theTag ) {
+ SALOMEDS::GenericAttribute_var anAttr;
+ if ( !anIter->Value()->FindAttribute( anAttr, "AttributeIOR" ))
+ theTag = tag;
+ }
}
- if ( !isReferred ) {
- aReferenceSO = aStudyBuilder->NewObject( theSObject );
- aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
- }
- }
- else {
- if ( !theSObject->FindSubObject( theTag, aReferenceSO ))
- aReferenceSO = aStudyBuilder->NewObjectToTag( theSObject, theTag );
- aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
+ if ( isReferred )
+ return;
+ if ( !theTag )
+ theTag = tag;
}
+ if ( !theSObject->FindSubObject( theTag, aReferenceSO ))
+ aReferenceSO = aStudyBuilder->NewObjectToTag( theSObject, theTag );
+ aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
}
}
virtual SMESH_Hypothesis_i* Create(PortableServer::POA_ptr thePOA,
int theStudyId,
::SMESH_Gen* theGenImpl) = 0;
+ // return the name of IDL module
+ virtual std::string GetModuleName() = 0;
};
//=============================================================================
public:
virtual SMESH_Hypothesis_i* Create (PortableServer::POA_ptr thePOA,
int theStudyId,
- ::SMESH_Gen* theGenImpl)
+ ::SMESH_Gen* theGenImpl)
{
return new T (thePOA, theStudyId, theGenImpl);
};
// IDL Methods
void setProtocol(SALOME::TypeOfCommunication typ) {}
void release() {}
- SALOME::SenderInt_ptr getSenderForNumber(long int) {return SALOME::SenderInt::_nil();}
+ SALOME::SenderInt_ptr getSenderForNumber(SALOME_MED::medGeometryElement) {return SALOME::SenderInt::_nil();}
SALOME::SenderInt_ptr getSenderForNumberIndex() {return SALOME::SenderInt::_nil();}
CORBA::Long getIdentifier()
int nb_of_nodes = elem->NbNodes();
medElement = SALOME_MED::MED_HEXA8;
- ASSERT(nb_of_nodes = 8);
+ ASSERT(nb_of_nodes == 8);
if (trouveHexa8 == 0)
{
class SMESH_Mesh_i;
class SMESH_MEDMesh_i:
- public virtual POA_SALOME_MED::MESH, public virtual SALOME::GenericObj_i
+ public virtual POA_SALOME_MED::MESH,
+ public virtual SALOME::GenericObj_i
{
- public: private: protected:
- // C++ object containing values
- ::SMESH_Mesh_i * _mesh_i;
- SMESHDS_Mesh *_meshDS;
-
- string _meshId;
- bool _compte;
- bool _creeFamily;
- int _indexElts;
- int _indexEnts;
- int _famIdent;
-
- map < SALOME_MED::medGeometryElement, int >_mapIndToSeqElts;
- SALOME_MED::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
-
- map < SALOME_MED::medEntityMesh, int >_mapNbTypes;
- map < SALOME_MED::medEntityMesh, int >_mapIndToVectTypes;
- vector < SALOME_MED::medGeometryElement >
- _TypesId[MED_NBR_GEOMETRIE_MAILLE];
-
- vector < SALOME_MED::FAMILY_ptr > _families;
- public:
-
- // Constructors and associated internal methods
- SMESH_MEDMesh_i();
- SMESH_MEDMesh_i(SMESH_Mesh_i * m);
- ~SMESH_MEDMesh_i();
-
- // IDL Methods
- void setProtocol(SALOME::TypeOfCommunication typ) {}
- void release() {}
- SALOME::SenderDouble_ptr getSenderForCoordinates(long int) {return SALOME::SenderDouble::_nil();}
- SALOME::SenderInt_ptr getSenderForConnectivity(long int, long int, long int, long int) {return SALOME::SenderInt::_nil();}
- SALOME::SenderInt_ptr getSenderForPolygonsConnectivity(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
- SALOME::SenderInt_ptr getSenderForPolygonsConnectivityIndex(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
- SALOME::SenderInt_ptr getSenderForPolyhedronConnectivity(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
- SALOME::SenderInt_ptr getSenderForPolyhedronIndex(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
- SALOME::SenderInt_ptr getSenderForPolyhedronFacesIndex() {return SALOME::SenderInt::_nil();}
-
- char *getName() throw(SALOME::SALOME_Exception);
- CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
-
- CORBA::Long getMeshDimension() throw(SALOME::SALOME_Exception);
-
- CORBA::Boolean getIsAGrid() throw (SALOME::SALOME_Exception);
-
- CORBA::Boolean
- existConnectivity(SALOME_MED::medConnectivity connectivityType,
- SALOME_MED::medEntityMesh entity)
- throw (SALOME::SALOME_Exception);
-
- char *getCoordinatesSystem() throw(SALOME::SALOME_Exception);
-
- CORBA::Double getCoordinate(CORBA::Long Number, CORBA::Long Axis)
- throw (SALOME::SALOME_Exception);
-
- SALOME_MED::double_array * getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::string_array * getCoordinatesNames()
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::string_array * getCoordinatesUnits()
- throw(SALOME::SALOME_Exception);
-
- CORBA::Long getNumberOfNodes() throw(SALOME::SALOME_Exception);
-
- CORBA::Long getNumberOfTypes(SALOME_MED::medEntityMesh entity)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::medGeometryElement_array *
- getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
- SALOME_Exception);
-
- SALOME_MED::medGeometryElement
- getElementType(SALOME_MED::medEntityMesh entity,
- CORBA::Long number)
- throw (SALOME::SALOME_Exception);
-
- CORBA::Long getNumberOfElements(SALOME_MED::medEntityMesh entity,
- SALOME_MED::medGeometryElement geomElement)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::long_array *
- getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
- SALOME_MED::medConnectivity mode,
- SALOME_MED::medEntityMesh entity,
- SALOME_MED::medGeometryElement geomElement)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::long_array *
- getConnectivityIndex(SALOME_MED::medConnectivity mode,
- SALOME_MED::medEntityMesh entity)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::long_array*
- getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
- throw (SALOME::SALOME_Exception);
-
- CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode,
- SALOME_MED::medEntityMesh entity,
- SALOME_MED::medGeometryElement type,
- const SALOME_MED::long_array & connectivity)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::long_array *
- getReverseConnectivity(SALOME_MED::medConnectivity mode)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::long_array *
- getReverseConnectivityIndex(SALOME_MED::
- medConnectivity mode) throw(SALOME::SALOME_Exception);
-
- // Family and Group
- CORBA::Long getNumberOfFamilies(SALOME_MED::medEntityMesh entity)
- throw(SALOME::SALOME_Exception);
-
- CORBA::Long getNumberOfGroups(SALOME_MED::medEntityMesh entity)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::Family_array *
- getFamilies(SALOME_MED::medEntityMesh entity)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::FAMILY_ptr getFamily(SALOME_MED::medEntityMesh entity,
- CORBA::Long i) throw(SALOME::SALOME_Exception);
-
- SALOME_MED::Group_array * getGroups(SALOME_MED::medEntityMesh entity)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::GROUP_ptr getGroup(SALOME_MED::medEntityMesh entity,
- CORBA::Long i) throw(SALOME::SALOME_Exception);
-
- SALOME_MED::SUPPORT_ptr
- getBoundaryElements(SALOME_MED::medEntityMesh entity)
- throw (SALOME::SALOME_Exception);
-
- SALOME_MED::SUPPORT_ptr getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
- throw (SALOME::SALOME_Exception);
-
- SALOME_MED::FIELD_ptr getVolume(SALOME_MED::SUPPORT_ptr mySupport)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::FIELD_ptr getArea(SALOME_MED::SUPPORT_ptr mySupport)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::FIELD_ptr getLength(SALOME_MED::SUPPORT_ptr mySupport)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::FIELD_ptr getNormal(SALOME_MED::SUPPORT_ptr mySupport)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::FIELD_ptr getBarycenter(SALOME_MED::SUPPORT_ptr mySupport)
- throw(SALOME::SALOME_Exception);
-
- SALOME_MED::FIELD_ptr getNeighbourhood(SALOME_MED::SUPPORT_ptr mySupport)
- throw(SALOME::SALOME_Exception);
-
- // Others
- void addInStudy(SALOMEDS::Study_ptr myStudy,
- SALOME_MED::MESH_ptr myIor) throw(SALOME::SALOME_Exception);
- CORBA::Long addDriver(SALOME_MED::medDriverTypes driverType,
- const char *fileName, const char *meshName)
- throw(SALOME::SALOME_Exception);
- void rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception);
- void read(CORBA::Long i) throw(SALOME::SALOME_Exception);
- void write(CORBA::Long i, const char *driverMeshName)
- throw(SALOME::SALOME_Exception);
-
- // Cuisine interne
- CORBA::Long getCorbaIndex() throw(SALOME::SALOME_Exception);
-
- SALOME_MED::MESH::meshInfos * getMeshGlobal()
- throw (SALOME::SALOME_Exception);
-
- bool areEquals(SALOME_MED::MESH_ptr other) { return false;};
-
- SALOME_MED::MESH::coordinateInfos * getCoordGlobal()
- throw (SALOME::SALOME_Exception);
-
- SALOME_MED::MESH::connectivityInfos *
- getConnectGlobal(SALOME_MED::medEntityMesh entity)
- throw (SALOME::SALOME_Exception);
-
- //
- void calculeNbElts() throw(SALOME::SALOME_Exception);
- void createFamilies() throw(SALOME::SALOME_Exception);
+protected:
+ // C++ object containing values
+ ::SMESH_Mesh_i * _mesh_i;
+ SMESHDS_Mesh *_meshDS;
+
+ string _meshId;
+ bool _compte;
+ bool _creeFamily;
+ int _indexElts;
+ int _indexEnts;
+ int _famIdent;
+
+ map < SALOME_MED::medGeometryElement, int >_mapIndToSeqElts;
+ SALOME_MED::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
+
+ map < SALOME_MED::medEntityMesh, int >_mapNbTypes;
+ map < SALOME_MED::medEntityMesh, int >_mapIndToVectTypes;
+ vector < SALOME_MED::medGeometryElement >
+ _TypesId[MED_NBR_GEOMETRIE_MAILLE];
+
+ vector < SALOME_MED::FAMILY_ptr > _families;
+public:
+
+ // Constructors and associated internal methods
+ SMESH_MEDMesh_i();
+ SMESH_MEDMesh_i(SMESH_Mesh_i * m);
+ ~SMESH_MEDMesh_i();
+
+ // IDL Methods
+ void setProtocol(SALOME::TypeOfCommunication typ) {}
+ void release() {}
+ SALOME::SenderDouble_ptr getSenderForCoordinates(SALOME_MED::medModeSwitch) {return SALOME::SenderDouble::_nil();}
+ SALOME::SenderInt_ptr getSenderForConnectivity(SALOME_MED::medModeSwitch,
+ SALOME_MED::medConnectivity,
+ SALOME_MED::medEntityMesh,
+ SALOME_MED::medGeometryElement)
+ {
+ return SALOME::SenderInt::_nil();
+ }
+ SALOME::SenderInt_ptr getSenderForPolygonsConnectivity(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
+ SALOME::SenderInt_ptr getSenderForPolygonsConnectivityIndex(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
+ SALOME::SenderInt_ptr getSenderForPolyhedronConnectivity(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
+ SALOME::SenderInt_ptr getSenderForPolyhedronIndex(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
+ SALOME::SenderInt_ptr getSenderForPolyhedronFacesIndex() {return SALOME::SenderInt::_nil();}
+
+ char *getName() throw(SALOME::SALOME_Exception);
+ CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
+
+ CORBA::Long getMeshDimension() throw(SALOME::SALOME_Exception);
+
+ CORBA::Boolean getIsAGrid() throw (SALOME::SALOME_Exception);
+
+ CORBA::Boolean
+ existConnectivity(SALOME_MED::medConnectivity connectivityType,
+ SALOME_MED::medEntityMesh entity)
+ throw (SALOME::SALOME_Exception);
+
+ char *getCoordinatesSystem() throw(SALOME::SALOME_Exception);
+
+ CORBA::Double getCoordinate(CORBA::Long Number, CORBA::Long Axis)
+ throw (SALOME::SALOME_Exception);
+
+ SALOME_MED::double_array * getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::string_array * getCoordinatesNames()
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::string_array * getCoordinatesUnits()
+ throw(SALOME::SALOME_Exception);
+
+ CORBA::Long getNumberOfNodes() throw(SALOME::SALOME_Exception);
+
+ CORBA::Long getNumberOfTypes(SALOME_MED::medEntityMesh entity)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::medGeometryElement_array *
+ getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
+ SALOME_Exception);
+
+ SALOME_MED::medGeometryElement
+ getElementType(SALOME_MED::medEntityMesh entity,
+ CORBA::Long number)
+ throw (SALOME::SALOME_Exception);
+
+ CORBA::Long getNumberOfElements(SALOME_MED::medEntityMesh entity,
+ SALOME_MED::medGeometryElement geomElement)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::long_array *
+ getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
+ SALOME_MED::medConnectivity mode,
+ SALOME_MED::medEntityMesh entity,
+ SALOME_MED::medGeometryElement geomElement)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::long_array *
+ getConnectivityIndex(SALOME_MED::medConnectivity mode,
+ SALOME_MED::medEntityMesh entity)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::long_array*
+ getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
+ throw (SALOME::SALOME_Exception);
+
+ CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode,
+ SALOME_MED::medEntityMesh entity,
+ SALOME_MED::medGeometryElement type,
+ const SALOME_MED::long_array & connectivity)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::long_array *
+ getReverseConnectivity(SALOME_MED::medConnectivity mode)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::long_array *
+ getReverseConnectivityIndex(SALOME_MED::medConnectivity mode)
+ throw(SALOME::SALOME_Exception);
+
+ // Family and Group
+ CORBA::Long getNumberOfFamilies(SALOME_MED::medEntityMesh entity)
+ throw(SALOME::SALOME_Exception);
+
+ CORBA::Long getNumberOfGroups(SALOME_MED::medEntityMesh entity)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::Family_array *
+ getFamilies(SALOME_MED::medEntityMesh entity)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::FAMILY_ptr getFamily(SALOME_MED::medEntityMesh entity,
+ CORBA::Long i)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::Group_array * getGroups(SALOME_MED::medEntityMesh entity)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::GROUP_ptr getGroup(SALOME_MED::medEntityMesh entity,
+ CORBA::Long i)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::SUPPORT_ptr
+ getBoundaryElements(SALOME_MED::medEntityMesh entity)
+ throw (SALOME::SALOME_Exception);
+
+ SALOME_MED::SUPPORT_ptr getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
+ throw (SALOME::SALOME_Exception);
+
+ SALOME_MED::FIELD_ptr getVolume(SALOME_MED::SUPPORT_ptr mySupport)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::FIELD_ptr getArea(SALOME_MED::SUPPORT_ptr mySupport)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::FIELD_ptr getLength(SALOME_MED::SUPPORT_ptr mySupport)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::FIELD_ptr getNormal(SALOME_MED::SUPPORT_ptr mySupport)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::FIELD_ptr getBarycenter(SALOME_MED::SUPPORT_ptr mySupport)
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::FIELD_ptr getNeighbourhood(SALOME_MED::SUPPORT_ptr mySupport)
+ throw(SALOME::SALOME_Exception);
+
+ // Others
+ void addInStudy(SALOMEDS::Study_ptr myStudy,
+ SALOME_MED::MESH_ptr myIor)
+ throw(SALOME::SALOME_Exception);
+ CORBA::Long addDriver(SALOME_MED::medDriverTypes driverType,
+ const char *fileName, const char *meshName)
+ throw(SALOME::SALOME_Exception);
+ void rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception);
+ void read(CORBA::Long i) throw(SALOME::SALOME_Exception);
+ void write(CORBA::Long i, const char *driverMeshName)
+ throw(SALOME::SALOME_Exception);
+
+ // Cuisine interne
+ CORBA::Long getCorbaIndex()
+ throw(SALOME::SALOME_Exception);
+
+ SALOME_MED::MESH::meshInfos * getMeshGlobal()
+ throw (SALOME::SALOME_Exception);
+
+ bool areEquals(SALOME_MED::MESH_ptr other) { return false;};
+
+ SALOME_MED::MESH::coordinateInfos * getCoordGlobal()
+ throw (SALOME::SALOME_Exception);
+
+ SALOME_MED::MESH::connectivityInfos *
+ getConnectGlobal(SALOME_MED::medEntityMesh entity)
+ throw (SALOME::SALOME_Exception);
+
+ //
+ void calculeNbElts() throw(SALOME::SALOME_Exception);
+ void createFamilies() throw(SALOME::SALOME_Exception);
};
#endif /* _MED_MESH_I_HXX_ */
#include "SMESH_Gen_i.hxx"
#include "SMESH_Filter_i.hxx"
#include "SMESH_PythonDump.hxx"
+#include "CASCatch.hxx"
#include "utilities.h"
SMESH_MeshEditor_i::SMESH_MeshEditor_i(SMESH_Mesh* theMesh)
{
_myMesh = theMesh;
-};
+}
//=============================================================================
/*!
CORBA::Boolean
SMESH_MeshEditor_i::RemoveElements(const SMESH::long_array & IDsOfElements)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
::SMESH_MeshEditor anEditor( _myMesh );
list< int > IdList;
#endif
// Remove Elements
return anEditor.Remove( IdList, false );
-};
+}
//=============================================================================
/*!
CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::long_array & IDsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
::SMESH_MeshEditor anEditor( _myMesh );
list< int > IdList;
for (int i = 0; i < IDsOfNodes.length(); i++)
#endif
return anEditor.Remove( IdList, true );
-};
+}
//=============================================================================
/*!
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes)
+CORBA::Long SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
int NbNodes = IDsOfNodes.length();
+ SMDS_MeshElement* elem = 0;
if (NbNodes == 2)
{
CORBA::Long index1 = IDsOfNodes[0];
CORBA::Long index2 = IDsOfNodes[1];
- GetMeshDS()->AddEdge(GetMeshDS()->FindNode(index1), GetMeshDS()->FindNode(index2));
+ elem = GetMeshDS()->AddEdge(GetMeshDS()->FindNode(index1), GetMeshDS()->FindNode(index2));
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddEdge([ "
+ TPythonDump() << "edge = " << this << ".AddEdge([ "
<< index1 << ", " << index2 <<" ])";
}
if (NbNodes == 3) {
CORBA::Long n1 = IDsOfNodes[0];
CORBA::Long n2 = IDsOfNodes[1];
CORBA::Long n12 = IDsOfNodes[2];
- GetMeshDS()->AddEdge(GetMeshDS()->FindNode(n1),
- GetMeshDS()->FindNode(n2),
- GetMeshDS()->FindNode(n12));
+ elem = GetMeshDS()->AddEdge(GetMeshDS()->FindNode(n1),
+ GetMeshDS()->FindNode(n2),
+ GetMeshDS()->FindNode(n12));
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddEdge([ "
+ TPythonDump() << "edgeID = " << this << ".AddEdge([ "
<<n1<<", "<<n2<<", "<<n12<<" ])";
}
- return true;
+
+ if(elem)
+ return elem->GetID();
+
+ return 0;
}
//=============================================================================
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddNode(CORBA::Double x,
- CORBA::Double y, CORBA::Double z)
+CORBA::Long SMESH_MeshEditor_i::AddNode(CORBA::Double x,
+ CORBA::Double y, CORBA::Double z)
{
- GetMeshDS()->AddNode(x, y, z);
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
+ const SMDS_MeshNode* N = GetMeshDS()->AddNode(x, y, z);
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddNode( "
+ TPythonDump() << "nodeID = " << this << ".AddNode( "
<< x << ", " << y << ", " << z << " )";
- return true;
+ return N->GetID();
}
//=============================================================================
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
+CORBA::Long SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
int NbNodes = IDsOfNodes.length();
if (NbNodes < 3)
{
for (int i = 0; i < NbNodes; i++)
nodes[i] = GetMeshDS()->FindNode(IDsOfNodes[i]);
- if (NbNodes == 3)
- {
- GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2]);
+ SMDS_MeshElement* elem = 0;
+ if (NbNodes == 3) {
+ elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2]);
}
- else if (NbNodes == 4)
- {
- GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3]);
+ else if (NbNodes == 4) {
+ elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3]);
}
- else if (NbNodes == 6)
- {
- GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
- nodes[4], nodes[5]);
+ else if (NbNodes == 6) {
+ elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+ nodes[4], nodes[5]);
}
- else if (NbNodes == 8)
- {
- GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
- nodes[4], nodes[5], nodes[6], nodes[7]);
+ else if (NbNodes == 8) {
+ elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+ nodes[4], nodes[5], nodes[6], nodes[7]);
}
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddFace( " << IDsOfNodes << " )";
-#ifdef _DEBUG_
- TPythonDump() << "print 'AddFace: ', isDone";
-#endif
+ TPythonDump() << "faceID = " << this << ".AddFace( " << IDsOfNodes << " )";
- return true;
-};
+ if(elem)
+ return elem->GetID();
+
+ return 0;
+}
//=============================================================================
/*!
* AddPolygonalFace
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolygonalFace
+CORBA::Long SMESH_MeshEditor_i::AddPolygonalFace
(const SMESH::long_array & IDsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
int NbNodes = IDsOfNodes.length();
std::vector<const SMDS_MeshNode*> nodes (NbNodes);
for (int i = 0; i < NbNodes; i++)
nodes[i] = GetMeshDS()->FindNode(IDsOfNodes[i]);
- GetMeshDS()->AddPolygonalFace(nodes);
+ const SMDS_MeshElement* elem = GetMeshDS()->AddPolygonalFace(nodes);
// Update Python script
- TPythonDump() <<"isDone = "<<this<<".AddPolygonalFace( "<<IDsOfNodes<<" )";
+ TPythonDump() <<"faceID = "<<this<<".AddPolygonalFace( "<<IDsOfNodes<<" )";
#ifdef _DEBUG_
- TPythonDump() << "print 'AddPolygonalFace: ', isDone";
+ TPythonDump() << "print 'AddPolygonalFace: ', faceID";
#endif
- return true;
-};
+ if(elem)
+ return elem->GetID();
+
+ return 0;
+}
//=============================================================================
/*!
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNodes)
+CORBA::Long SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
int NbNodes = IDsOfNodes.length();
vector< const SMDS_MeshNode*> n(NbNodes);
for(int i=0;i<NbNodes;i++)
n[15],n[16],n[17],n[18],n[19]);
break;
}
+
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddVolume( " << IDsOfNodes << " )";
+ TPythonDump() << "volID = " << this << ".AddVolume( " << IDsOfNodes << " )";
#ifdef _DEBUG_
- TPythonDump() << "print 'AddVolume: ', isDone";
+ TPythonDump() << "print 'AddVolume: ', volID";
#endif
- return elem;
-};
+ if(elem)
+ return elem->GetID();
+
+ return 0;
+}
//=============================================================================
/*!
* AddPolyhedralVolume
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolume
+CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolume
(const SMESH::long_array & IDsOfNodes,
const SMESH::long_array & Quantities)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
int NbNodes = IDsOfNodes.length();
std::vector<const SMDS_MeshNode*> n (NbNodes);
for (int i = 0; i < NbNodes; i++)
for (int j = 0; j < NbFaces; j++)
q[j] = Quantities[j];
- GetMeshDS()->AddPolyhedralVolume(n, q);
+ const SMDS_MeshElement* elem = GetMeshDS()->AddPolyhedralVolume(n, q);
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddPolyhedralVolume( "
+ TPythonDump() << "volID = " << this << ".AddPolyhedralVolume( "
<< IDsOfNodes << ", " << Quantities << " )";
#ifdef _DEBUG_
- TPythonDump() << "print 'AddPolyhedralVolume: ', isDone";
+ TPythonDump() << "print 'AddPolyhedralVolume: ', volID";
#endif
- return true;
-};
+ if(elem)
+ return elem->GetID();
+
+ return 0;
+}
//=============================================================================
/*!
* AddPolyhedralVolumeByFaces
*/
//=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
+CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
(const SMESH::long_array & IdsOfFaces)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
int NbFaces = IdsOfFaces.length();
std::vector<const SMDS_MeshNode*> poly_nodes;
std::vector<int> quantities (NbFaces);
}
}
- GetMeshDS()->AddPolyhedralVolume(poly_nodes, quantities);
+ const SMDS_MeshElement* elem = GetMeshDS()->AddPolyhedralVolume(poly_nodes, quantities);
// Update Python script
- TPythonDump() << "isDone = " << this << ".AddPolyhedralVolumeByFaces( "
+ TPythonDump() << "volID = " << this << ".AddPolyhedralVolumeByFaces( "
<< IdsOfFaces << " )";
#ifdef _DEBUG_
- TPythonDump() << "print 'AddPolyhedralVolume: ', isDone";
+ TPythonDump() << "print 'AddPolyhedralVolume: ', volID";
#endif
- return true;
-};
+ if(elem)
+ return elem->GetID();
+
+ return 0;
+}
//=============================================================================
/*!
CORBA::Double y,
CORBA::Double z)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
const SMDS_MeshNode * node = GetMeshDS()->FindNode( NodeID );
if ( !node )
return false;
CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(CORBA::Long NodeID1,
CORBA::Long NodeID2)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
const SMDS_MeshNode * n1 = GetMeshDS()->FindNode( NodeID1 );
const SMDS_MeshNode * n2 = GetMeshDS()->FindNode( NodeID2 );
if ( !n1 || !n2 )
CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1,
CORBA::Long NodeID2)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
const SMDS_MeshNode * n1 = GetMeshDS()->FindNode( NodeID1 );
const SMDS_MeshNode * n2 = GetMeshDS()->FindNode( NodeID2 );
if ( !n1 || !n2 )
<< NodeID1 << ", " << NodeID2 << " )";
::SMESH_MeshEditor aMeshEditor( _myMesh );
- return aMeshEditor.DeleteDiag ( n1, n2 );
+
+ bool stat = aMeshEditor.DeleteDiag ( n1, n2 );
+
+ UpdateLastResult(aMeshEditor);
+
+ return stat;
}
//=============================================================================
CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfElements)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
::SMESH_MeshEditor anEditor( _myMesh );
for (int i = 0; i < IDsOfElements.length(); i++)
{
CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theObject)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
CORBA::Boolean isDone = Reorient(anElementsId);
return isDone;
}
+
+//=======================================================================
+//function : ToMap
+//purpose : auxilary function for conversion long_array to std::map<>
+// which is used in some methods
+//=======================================================================
+static void ToMap(const SMESH::long_array & IDs,
+ const SMESHDS_Mesh* aMesh,
+ std::map<int,const SMDS_MeshElement*>& aMap)
+{
+ for (int i=0; i<IDs.length(); i++) {
+ CORBA::Long ind = IDs[i];
+ std::map<int,const SMDS_MeshElement*>::iterator It = aMap.find(ind);
+ if(It==aMap.end()) {
+ const SMDS_MeshElement * elem = aMesh->FindElement(ind);
+ aMap.insert( make_pair(ind,elem) );
+ }
+ }
+}
+
+
//=============================================================================
/*!
*
SMESH::NumericalFunctor_ptr Criterion,
CORBA::Double MaxAngle)
{
- set<const SMDS_MeshElement*> faces;
- for (int i = 0; i < IDsOfElements.length(); i++)
- {
- CORBA::Long index = IDsOfElements[i];
- const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
- if ( elem && elem->GetType() == SMDSAbs_Face)
- faces.insert( elem );
- }
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
+ SMESHDS_Mesh* aMesh = GetMeshDS();
+ map<int,const SMDS_MeshElement*> faces;
+ ToMap(IDsOfElements, aMesh, faces);
+
SMESH::NumericalFunctor_i* aNumericalFunctor =
dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
SMESH::Controls::NumericalFunctorPtr aCrit;
#endif
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.TriToQuad( faces, aCrit, MaxAngle );
+
+ bool stat = anEditor.TriToQuad( faces, aCrit, MaxAngle );
+
+ UpdateLastResult(anEditor);
+
+ return stat;
}
+
//=============================================================================
/*!
*
SMESH::NumericalFunctor_ptr Criterion,
CORBA::Double MaxAngle)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
CORBA::Boolean isDone = TriToQuad(anElementsId, Criterion, MaxAngle);
return isDone;
}
+
//=============================================================================
/*!
*
CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array & IDsOfElements,
SMESH::NumericalFunctor_ptr Criterion)
{
- set<const SMDS_MeshElement*> faces;
- for (int i = 0; i < IDsOfElements.length(); i++)
- {
- CORBA::Long index = IDsOfElements[i];
- const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
- if ( elem && elem->GetType() == SMDSAbs_Face)
- faces.insert( elem );
- }
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
+ SMESHDS_Mesh* aMesh = GetMeshDS();
+ map<int,const SMDS_MeshElement*> faces;
+ ToMap(IDsOfElements, aMesh, faces);
+
SMESH::NumericalFunctor_i* aNumericalFunctor =
dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
SMESH::Controls::NumericalFunctorPtr aCrit;
#endif
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.QuadToTri( faces, aCrit );
+ CORBA::Boolean stat = anEditor.QuadToTri( faces, aCrit );
+
+ UpdateLastResult(anEditor);
+
+ return stat;
}
+
//=============================================================================
/*!
*
CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr theObject,
SMESH::NumericalFunctor_ptr Criterion)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
CORBA::Boolean isDone = QuadToTri(anElementsId, Criterion);
return isDone;
}
+
//=============================================================================
/*!
*
CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfElements,
CORBA::Boolean Diag13)
{
- set<const SMDS_MeshElement*> faces;
- for (int i = 0; i < IDsOfElements.length(); i++)
- {
- CORBA::Long index = IDsOfElements[i];
- const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
- if ( elem && elem->GetType() == SMDSAbs_Face)
- faces.insert( elem );
- }
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
+ SMESHDS_Mesh* aMesh = GetMeshDS();
+ map<int,const SMDS_MeshElement*> faces;
+ ToMap(IDsOfElements, aMesh, faces);
// Update Python script
TPythonDump() << "isDone = " << this << ".SplitQuad( "
#endif
::SMESH_MeshEditor anEditor( _myMesh );
- return anEditor.QuadToTri( faces, Diag13 );
+ CORBA::Boolean stat = anEditor.QuadToTri( faces, Diag13 );
+
+ UpdateLastResult(anEditor);
+
+ return stat;
}
+
//=============================================================================
/*!
*
CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr theObject,
CORBA::Boolean Diag13)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
CORBA::Boolean isDone = SplitQuad(anElementsId, Diag13);
return isDone;
}
+
//=============================================================================
/*!
* BestSplit
return -1;
}
+
//=======================================================================
//function : Smooth
//purpose :
MaxAspectRatio, Method, false );
}
+
//=======================================================================
//function : SmoothParametric
//purpose :
MaxAspectRatio, Method, true );
}
+
//=======================================================================
//function : SmoothObject
//purpose :
MaxAspectRatio, Method, false);
}
+
//=======================================================================
//function : SmoothParametricObject
//purpose :
MaxAspectRatio, Method, true);
}
+
//=============================================================================
/*!
*
SMESH::SMESH_MeshEditor::Smooth_Method Method,
bool IsParametric)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < IDsOfElements.length(); i++)
- {
- CORBA::Long index = IDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem && elem->GetType() == SMDSAbs_Face)
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(IDsOfElements, aMesh, elements);
set<const SMDS_MeshNode*> fixedNodes;
- for (int i = 0; i < IDsOfFixedNodes.length(); i++)
- {
+ for (int i = 0; i < IDsOfFixedNodes.length(); i++) {
CORBA::Long index = IDsOfFixedNodes[i];
const SMDS_MeshNode * node = aMesh->FindNode(index);
if ( node )
anEditor.Smooth(elements, fixedNodes, method,
MaxNbOfIterations, MaxAspectRatio, IsParametric );
+ UpdateLastResult(anEditor);
+
// Update Python script
TPythonDump() << "isDone = " << this << "."
<< (IsParametric ? "SmoothParametric( " : "Smooth( ")
return true;
}
+
//=============================================================================
/*!
*
SMESH::SMESH_MeshEditor::Smooth_Method Method,
bool IsParametric)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
CORBA::Boolean isDone = smooth (anElementsId, IDsOfFixedNodes, MaxNbOfIterations,
MaxAspectRatio, Method, IsParametric);
return isDone;
}
+
//=============================================================================
/*!
*
GetMeshDS()->Renumber( true );
}
+
//=============================================================================
/*!
*
GetMeshDS()->Renumber( false );
}
+
//=======================================================================
//function : RotationSweep
//purpose :
CORBA::Long theNbOfSteps,
CORBA::Double theTolerance)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
+
gp_Ax1 Ax1 (gp_Pnt( theAxis.x, theAxis.y, theAxis.z ),
gp_Vec( theAxis.vx, theAxis.vy, theAxis.vz ));
anEditor.RotationSweep (elements, Ax1, theAngleInRadians,
theNbOfSteps, theTolerance);
+ UpdateLastResult(anEditor);
+
// Update Python script
TPythonDump() << "axis = " << theAxis;
TPythonDump() << this << ".RotationSweep( "
CORBA::Long theNbOfSteps,
CORBA::Double theTolerance)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
RotationSweep(anElementsId, theAxis, theAngleInRadians, theNbOfSteps, theTolerance);
const SMESH::DirStruct & theStepVector,
CORBA::Long theNbOfSteps)
{
- SMESHDS_Mesh* aMesh = GetMeshDS();
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
- const SMESH::PointStruct * P = &theStepVector.PS;
- gp_Vec stepVec( P->x, P->y, P->z );
+ CASCatch_TRY {
+ SMESHDS_Mesh* aMesh = GetMeshDS();
+
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
- ::SMESH_MeshEditor anEditor( _myMesh );
- //anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
- TElemOfElemListMap aHystory;
- anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+ const SMESH::PointStruct * P = &theStepVector.PS;
+ gp_Vec stepVec( P->x, P->y, P->z );
+
+ TElemOfElemListMap aHystory;
+ ::SMESH_MeshEditor anEditor( _myMesh );
+ anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
- // Update Python script
- TPythonDump() << "stepVector = " << theStepVector;
- TPythonDump() << this << ".ExtrusionSweep( "
- << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+ UpdateLastResult(anEditor);
+
+ // Update Python script
+ TPythonDump() << "stepVector = " << theStepVector;
+ TPythonDump() << this << ".ExtrusionSweep( "
+ << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+
+ }
+ CASCatch_CATCH(Standard_Failure) {
+ Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+ INFOS( "SMESH_MeshEditor_i::ExtrusionSweep fails - "<< aFail->GetMessageString() );
+ }
}
const SMESH::DirStruct & theStepVector,
CORBA::Long theNbOfSteps)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
ExtrusionSweep(anElementsId, theStepVector, theNbOfSteps);
const SMESH::DirStruct & theStepVector,
CORBA::Long theNbOfSteps)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
SMESH::long_array_var allElementsId = theObject->GetIDs();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < allElementsId->length(); i++)
- {
- CORBA::Long index = allElementsId[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem && elem->GetType() == SMDSAbs_Edge )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(allElementsId, aMesh, elements);
+
const SMESH::PointStruct * P = &theStepVector.PS;
gp_Vec stepVec( P->x, P->y, P->z );
TElemOfElemListMap aHystory;
anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+ UpdateLastResult(anEditor);
+
// Update Python script
TPythonDump() << "stepVector = " << theStepVector;
TPythonDump() << this << ".ExtrusionSweepObject1D( "
const SMESH::DirStruct & theStepVector,
CORBA::Long theNbOfSteps)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
SMESH::long_array_var allElementsId = theObject->GetIDs();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < allElementsId->length(); i++)
- {
- CORBA::Long index = allElementsId[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem && elem->GetType() == SMDSAbs_Face )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(allElementsId, aMesh, elements);
+
const SMESH::PointStruct * P = &theStepVector.PS;
gp_Vec stepVec( P->x, P->y, P->z );
TElemOfElemListMap aHystory;
anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+ UpdateLastResult(anEditor);
+
// Update Python script
TPythonDump() << "stepVector = " << theStepVector;
TPythonDump() << this << ".ExtrusionSweepObject2D( "
CORBA::Long theExtrFlags,
CORBA::Double theSewTolerance)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
+
const SMESH::PointStruct * P = &theStepVector.PS;
gp_Vec stepVec( P->x, P->y, P->z );
anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory,
theExtrFlags, theSewTolerance);
+ UpdateLastResult(anEditor);
+
// Update Python script
TPythonDump() << "stepVector = " << theStepVector;
TPythonDump() << this << ".AdvancedExtrusion("
CORBA::Boolean theHasRefPoint,
const SMESH::PointStruct & theRefPoint)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
if ( thePathMesh->_is_nil() || thePathShape->_is_nil() )
TopoDS_Shape aShape = SMESH_Gen_i::GetSMESHGen()->GeomObjectToShape( thePathShape );
SMESH_subMesh* aSubMesh = aMeshImp->GetImpl().GetSubMesh( aShape );
- if ( !aSubMesh )
+ if ( !aSubMesh || !aSubMesh->GetSubMeshDS())
return SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
SMDS_MeshNode* nodeStart = (SMDS_MeshNode*)aMeshImp->GetImpl().GetMeshDS()->FindNode(theNodeStart);
if ( !nodeStart )
return SMESH::SMESH_MeshEditor::EXTR_BAD_STARTING_NODE;
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
list<double> angles;
- for (int i = 0; i < theAngles.length(); i++)
- {
+ for (int i = 0; i < theAngles.length(); i++) {
angles.push_back( theAngles[i] );
}
<< theHasRefPoint << ", refPoint )";
::SMESH_MeshEditor anEditor( _myMesh );
- return convExtrError( anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart,
- theHasAngles, angles,
- theHasRefPoint, refPnt ) );
+ SMESH::SMESH_MeshEditor::Extrusion_Error error =
+ convExtrError( anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart,
+ theHasAngles, angles,
+ theHasRefPoint, refPnt ) );
+
+ UpdateLastResult(anEditor);
+
+ return error;
}
//=======================================================================
CORBA::Boolean theHasRefPoint,
const SMESH::PointStruct & theRefPoint)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
SMESH::SMESH_MeshEditor::Extrusion_Error error = ExtrusionAlongPath
(anElementsId, thePathMesh, thePathShape, theNodeStart,
SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
CORBA::Boolean theCopy)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
+
gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
::SMESH_MeshEditor anEditor( _myMesh );
anEditor.Transform (elements, aTrsf, theCopy);
+
+ if(theCopy) {
+ UpdateLastResult(anEditor);
+ }
}
+
//=======================================================================
//function : MirrorObject
//purpose :
SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
CORBA::Boolean theCopy)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
Mirror(anElementsId, theAxis, theMirrorType, theCopy);
const SMESH::DirStruct & theVector,
CORBA::Boolean theCopy)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
+
gp_Trsf aTrsf;
const SMESH::PointStruct * P = &theVector.PS;
aTrsf.SetTranslation( gp_Vec( P->x, P->y, P->z ));
::SMESH_MeshEditor anEditor( _myMesh );
anEditor.Transform (elements, aTrsf, theCopy);
+ if(theCopy) {
+ UpdateLastResult(anEditor);
+ }
+
// Update Python script
TPythonDump() << "vector = " << theVector;
TPythonDump() << this << ".Translate( "
const SMESH::DirStruct & theVector,
CORBA::Boolean theCopy)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
Translate(anElementsId, theVector, theCopy);
CORBA::Double theAngle,
CORBA::Boolean theCopy)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
- set<const SMDS_MeshElement*> elements;
- for (int i = 0; i < theIDsOfElements.length(); i++)
- {
- CORBA::Long index = theIDsOfElements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- elements.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> elements;
+ ToMap(theIDsOfElements, aMesh, elements);
+
gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
::SMESH_MeshEditor anEditor( _myMesh );
anEditor.Transform (elements, aTrsf, theCopy);
+ if(theCopy) {
+ UpdateLastResult(anEditor);
+ }
+
// Update Python script
TPythonDump() << "axis = " << theAxis;
TPythonDump() << this << ".Rotate( "
CORBA::Double theAngle,
CORBA::Boolean theCopy)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESH::long_array_var anElementsId = theObject->GetIDs();
Rotate(anElementsId, theAxis, theAngle, theCopy);
void SMESH_MeshEditor_i::FindCoincidentNodes (CORBA::Double Tolerance,
SMESH::array_of_long_array_out GroupsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
::SMESH_MeshEditor::TListOfListOfNodes aListOfListOfNodes;
::SMESH_MeshEditor anEditor( _myMesh );
set<const SMDS_MeshNode*> nodes; // no input nodes
GroupsOfNodes = new SMESH::array_of_long_array;
GroupsOfNodes->length( aListOfListOfNodes.size() );
::SMESH_MeshEditor::TListOfListOfNodes::iterator llIt = aListOfListOfNodes.begin();
- for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ )
- {
+ for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ ) {
list< const SMDS_MeshNode* >& aListOfNodes = *llIt;
list< const SMDS_MeshNode* >::iterator lIt = aListOfNodes.begin();;
SMESH::long_array& aGroup = GroupsOfNodes[ i ];
void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
TPythonDump aTPythonDump;
void SMESH_MeshEditor_i::MergeEqualElements()
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
::SMESH_MeshEditor anEditor( _myMesh );
anEditor.MergeEqualElements();
CORBA::Boolean CreatePolygons,
CORBA::Boolean CreatePolyedrs)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
const SMDS_MeshNode* aBorderFirstNode = aMesh->FindNode( FirstNodeID1 );
<< CreatePolyedrs<< " )";
::SMESH_MeshEditor anEditor( _myMesh );
- return convError( anEditor.SewFreeBorder (aBorderFirstNode,
- aBorderSecondNode,
- aBorderLastNode,
- aSide2FirstNode,
- aSide2SecondNode,
- aSide2ThirdNode,
- true,
- CreatePolygons,
- CreatePolyedrs) );
+ SMESH::SMESH_MeshEditor::Sew_Error error =
+ convError( anEditor.SewFreeBorder (aBorderFirstNode,
+ aBorderSecondNode,
+ aBorderLastNode,
+ aSide2FirstNode,
+ aSide2SecondNode,
+ aSide2ThirdNode,
+ true,
+ CreatePolygons,
+ CreatePolyedrs) );
+
+ UpdateLastResult(anEditor);
+
+ return error;
}
+
//=======================================================================
//function : SewConformFreeBorders
//purpose :
CORBA::Long FirstNodeID2,
CORBA::Long SecondNodeID2)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
const SMDS_MeshNode* aBorderFirstNode = aMesh->FindNode( FirstNodeID1 );
<< SecondNodeID2 << " )";
::SMESH_MeshEditor anEditor( _myMesh );
- return convError( anEditor.SewFreeBorder (aBorderFirstNode,
- aBorderSecondNode,
- aBorderLastNode,
- aSide2FirstNode,
- aSide2SecondNode,
- aSide2ThirdNode,
- true,
- false, false) );
+ SMESH::SMESH_MeshEditor::Sew_Error error =
+ convError( anEditor.SewFreeBorder (aBorderFirstNode,
+ aBorderSecondNode,
+ aBorderLastNode,
+ aSide2FirstNode,
+ aSide2SecondNode,
+ aSide2ThirdNode,
+ true,
+ false, false) );
+
+ UpdateLastResult(anEditor);
+
+ return error;
}
+
//=======================================================================
//function : SewBorderToSide
//purpose :
CORBA::Boolean CreatePolygons,
CORBA::Boolean CreatePolyedrs)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
const SMDS_MeshNode* aBorderFirstNode = aMesh->FindNode( FirstNodeIDOnFreeBorder );
<< CreatePolyedrs << ") ";
::SMESH_MeshEditor anEditor( _myMesh );
- return convError( anEditor.SewFreeBorder (aBorderFirstNode,
- aBorderSecondNode,
- aBorderLastNode,
- aSide2FirstNode,
- aSide2SecondNode,
- aSide2ThirdNode,
- false,
- CreatePolygons,
- CreatePolyedrs) );
+ SMESH::SMESH_MeshEditor::Sew_Error error =
+ convError( anEditor.SewFreeBorder (aBorderFirstNode,
+ aBorderSecondNode,
+ aBorderLastNode,
+ aSide2FirstNode,
+ aSide2SecondNode,
+ aSide2ThirdNode,
+ false,
+ CreatePolygons,
+ CreatePolyedrs) );
+
+ UpdateLastResult(anEditor);
+
+ return error;
}
+
//=======================================================================
//function : SewSideElements
//purpose :
CORBA::Long NodeID2OfSide1ToMerge,
CORBA::Long NodeID2OfSide2ToMerge)
{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
SMESHDS_Mesh* aMesh = GetMeshDS();
const SMDS_MeshNode* aFirstNode1ToMerge = aMesh->FindNode( NodeID1OfSide1ToMerge );
!aSecondNode2ToMerge)
return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE2_NODES;
- set<const SMDS_MeshElement*> aSide1Elems, aSide2Elems;
- for (int i = 0; i < IDsOfSide1Elements.length(); i++)
- {
- CORBA::Long index = IDsOfSide1Elements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- aSide1Elems.insert( elem );
- }
- for (int i = 0; i < IDsOfSide2Elements.length(); i++)
- {
- CORBA::Long index = IDsOfSide2Elements[i];
- const SMDS_MeshElement * elem = aMesh->FindElement(index);
- if ( elem )
- aSide2Elems.insert( elem );
- }
+ map<int,const SMDS_MeshElement*> aSide1Elems, aSide2Elems;
+ ToMap(IDsOfSide1Elements, aMesh, aSide1Elems);
+ ToMap(IDsOfSide2Elements, aMesh, aSide2Elems);
+
// Update Python script
TPythonDump() << "error = " << this << ".SewSideElements( "
<< IDsOfSide1Elements << ", "
<< NodeID2OfSide2ToMerge << ")";
::SMESH_MeshEditor anEditor( _myMesh );
- return convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
- aFirstNode1ToMerge,
- aFirstNode2ToMerge,
- aSecondNode1ToMerge,
- aSecondNode2ToMerge));
+ SMESH::SMESH_MeshEditor::Sew_Error error =
+ convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
+ aFirstNode1ToMerge,
+ aFirstNode2ToMerge,
+ aSecondNode1ToMerge,
+ aSecondNode2ToMerge));
+
+ UpdateLastResult(anEditor);
+
+ return error;
+}
+
+//================================================================================
+/*!
+ * \brief Set new nodes for given element
+ * \param ide - element id
+ * \param newIDs - new node ids
+ * \retval CORBA::Boolean - true if result is OK
+ */
+//================================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide,
+ const SMESH::long_array& newIDs)
+{
+ myLastCreatedElems = new SMESH::long_array();
+ myLastCreatedNodes = new SMESH::long_array();
+
+ const SMDS_MeshElement* elem = GetMeshDS()->FindElement(ide);
+ if(!elem) return false;
+
+ int nbn = newIDs.length();
+ int i=0;
+ const SMDS_MeshNode* aNodes [nbn];
+ int nbn1=-1;
+ for(; i<nbn; i++) {
+ const SMDS_MeshNode* aNode = GetMeshDS()->FindNode(newIDs[i]);
+ if(aNode) {
+ nbn1++;
+ aNodes[nbn1] = aNode;
+ }
+ }
+ // Update Python script
+ TPythonDump() << "isDone = " << this << ".ChangeElemNodes( "
+ << ide << ", " << newIDs << " )";
+#ifdef _DEBUG_
+ TPythonDump() << "print 'ChangeElemNodes: ', isDone";
+#endif
+
+ return GetMeshDS()->ChangeElementNodes( elem, aNodes, nbn1+1 );
+}
+
+//================================================================================
+/*!
+ * \brief Update myLastCreatedNodes and myLastCreatedElems
+ * \param anEditor - it contains last modification results
+ */
+//================================================================================
+
+void SMESH_MeshEditor_i::UpdateLastResult(::SMESH_MeshEditor& anEditor)
+{
+ // add new elements into myLastCreatedNodes
+ SMESH_SequenceOfElemPtr aSeq = anEditor.GetLastCreatedNodes();
+ SMESH::long_array_var aResult = new SMESH::long_array;
+ aResult->length(aSeq.Length());
+ int i=0;
+ for(; i<aSeq.Length(); i++) {
+ aResult[i] = aSeq.Value(i+1)->GetID();
+ }
+ myLastCreatedNodes = aResult._retn();
+ // add new elements into myLastCreatedElems
+ aSeq = anEditor.GetLastCreatedElems();
+ aResult = new SMESH::long_array;
+ aResult->length(aSeq.Length());
+ i=0;
+ for(; i<aSeq.Length(); i++) {
+ aResult[i] = aSeq.Value(i+1)->GetID();
+ }
+ myLastCreatedElems = aResult._retn();
+}
+
+//================================================================================
+/*!
+ * \brief Returns list of it's IDs of created nodes
+ * \retval SMESH::long_array* - list of node ID
+ */
+//================================================================================
+
+SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedNodes()
+{
+ return myLastCreatedNodes;
+}
+
+//================================================================================
+/*!
+ * \brief Returns list of it's IDs of created elements
+ * \retval SMESH::long_array* - list of elements' ID
+ */
+//================================================================================
+
+SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedElems()
+{
+ return myLastCreatedElems;
+}
+
+
+//=======================================================================
+//function : ConvertToQuadratic
+//purpose :
+//=======================================================================
+
+void SMESH_MeshEditor_i::ConvertToQuadratic(CORBA::Boolean theForce3d)
+{
+ ::SMESH_MeshEditor anEditor( _myMesh );
+ anEditor.ConvertToQuadratic(theForce3d);
+ // Update Python script
+ TPythonDump() << this << ".ConvertToQuadratic( "
+ << theForce3d << " )";
+}
+
+//=======================================================================
+//function : ConvertFromQuadratic
+//purpose :
+//=======================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ConvertFromQuadratic()
+{
+ ::SMESH_MeshEditor anEditor( _myMesh );
+ CORBA::Boolean isDone = anEditor.ConvertFromQuadratic();
+ // Update Python script
+ TPythonDump() << this << ".ConvertFromQuadratic()";
+ return isDone;
}
#include "SMESH_Mesh.hxx"
+class SMESH_MeshEditor;
+
class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
{
public:
CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements);
CORBA::Boolean RemoveNodes(const SMESH::long_array & IDsOfNodes);
- CORBA::Boolean AddNode(CORBA::Double x, CORBA::Double y, CORBA::Double z);
- CORBA::Boolean AddEdge(const SMESH::long_array & IDsOfNodes);
- CORBA::Boolean AddFace(const SMESH::long_array & IDsOfNodes);
- CORBA::Boolean AddPolygonalFace(const SMESH::long_array & IDsOfNodes);
- CORBA::Boolean AddVolume(const SMESH::long_array & IDsOfNodes);
-
- CORBA::Boolean AddPolyhedralVolume(const SMESH::long_array & IDsOfNodes,
- const SMESH::long_array & Quantities);
- CORBA::Boolean AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
+ /*!
+ * Methods for creation new elements.
+ * Returns ID of created element or 0 if element not created
+ */
+ CORBA::Long AddNode(CORBA::Double x, CORBA::Double y, CORBA::Double z);
+ CORBA::Long AddEdge(const SMESH::long_array & IDsOfNodes);
+ CORBA::Long AddFace(const SMESH::long_array & IDsOfNodes);
+ CORBA::Long AddPolygonalFace(const SMESH::long_array & IDsOfNodes);
+ CORBA::Long AddVolume(const SMESH::long_array & IDsOfNodes);
+ CORBA::Long AddPolyhedralVolume(const SMESH::long_array & IDsOfNodes,
+ const SMESH::long_array & Quantities);
+ CORBA::Long AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
CORBA::Boolean MoveNode(CORBA::Long NodeID,
CORBA::Double x, CORBA::Double y, CORBA::Double z);
SMESH::SMESH_MeshEditor::Smooth_Method Method,
bool IsParametric);
+
+ void ConvertToQuadratic(CORBA::Boolean Force3d);
+ CORBA::Boolean ConvertFromQuadratic();
+
void RenumberNodes();
void RenumberElements();
void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
void MergeEqualElements();
+
SMESH::SMESH_MeshEditor::Sew_Error
SewFreeBorders(CORBA::Long FirstNodeID1,
CORBA::Long SecondNodeID1,
CORBA::Long NodeID2OfSide1ToMerge,
CORBA::Long NodeID2OfSide2ToMerge);
+ /*!
+ * Set new nodes for given element.
+ * If number of nodes is not corresponded to type of
+ * element - returns false
+ */
+ CORBA::Boolean ChangeElemNodes(CORBA::Long ide, const SMESH::long_array& newIDs);
+
+ /*!
+ * If during last operation of MeshEditor some nodes were
+ * created this method returns list of it's IDs, if new nodes
+ * not creared - returns empty list
+ */
+ SMESH::long_array* GetLastCreatedNodes();
+
+ /*!
+ * If during last operation of MeshEditor some elements were
+ * created this method returns list of it's IDs, if new elements
+ * not creared - returns empty list
+ */
+ SMESH::long_array* GetLastCreatedElems();
+
+ //
+ // Internal methods
+ //
+
+ /*!
+ * \brief Update myLastCreatedNodes and myLastCreatedElems
+ * \param anEditor - it contains edition results
+ */
+ void UpdateLastResult(::SMESH_MeshEditor& anEditor);
+
+ /*!
+ * \brief Return edited mesh ID
+ * \retval int - mesh ID
+ */
+ int GetMeshId() const { return _myMesh->GetId(); }
+
private:
SMESHDS_Mesh * GetMeshDS() { return _myMesh->GetMeshDS(); }
SMESH_Mesh *_myMesh;
+ SMESH::long_array* myLastCreatedElems;
+ SMESH::long_array* myLastCreatedNodes;
};
#endif
#include "SMESH_MeshEditor_i.hxx"
#include "SMESH_Gen_i.hxx"
#include "DriverMED_R_SMESHDS_Mesh.h"
+//#include "SMDS_ElemIterator.hxx"
+#include "SMDS_VolumeTool.hxx"
+#include "SMESH_MesherHelper.hxx"
// OCCT Includes
#include <OSD_Path.hxx>
int SMESH_Mesh_i::myIdGenerator = 0;
+
+
//=============================================================================
/*!
* Constructor
// Read mesh with name = <theMeshName> into SMESH_Mesh
_impl->UNVToMesh( theFileName );
+ CreateGroupServants();
+
+ SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
+ if ( !aStudy->_is_nil() ) {
+ // publishing of the groups in the study (sub-meshes are out of scope of UNV import)
+ map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
+ for (; it != _mapGroups.end(); it++ ) {
+ SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_duplicate( it->second );
+ _gen_i->PublishGroup( aStudy, _this(), aGroup,
+ GEOM::GEOM_Object::_nil(), aGroup->GetName());
+ }
+ }
return 1;
}
{
// Read mesh with name = <theMeshName> and all its groups into SMESH_Mesh
int status = _impl->MEDToMesh( theFileName, theMeshName );
-
- // Create group servants, if any groups were imported
- list<int> aGroupIds = _impl->GetGroupIds();
- for ( list<int>::iterator it = aGroupIds.begin(); it != aGroupIds.end(); it++ ) {
- SMESH_Group_i* aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, *it );
-
- // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
- SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
- aGroupImpl->Register();
- // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
- _mapGroups[*it] = SMESH::SMESH_Group::_duplicate( aGroup );
-
- // register CORBA object for persistence
- int nextId = _gen_i->RegisterObject( aGroup );
- if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
- }
+ CreateGroupServants();
return status;
}
_gen_i->RemoveLastFromPythonScript(_gen_i->GetCurrentStudy()->StudyId());
}
+
+//================================================================================
+/*!
+ * \brief Get the list of groups existing in the mesh
+ * \retval SMESH::ListOfGroups * - list of groups
+ */
+//================================================================================
+
+SMESH::ListOfGroups * SMESH_Mesh_i::GetGroups() throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ if (MYDEBUG) MESSAGE("GetGroups");
+
+ SMESH::ListOfGroups_var aList = new SMESH::ListOfGroups();
+ // Python Dump
+ TPythonDump aPythonDump;
+ aPythonDump << "[ ";
+
+ try {
+ aList->length( _mapGroups.size() );
+ int i = 0;
+ map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
+ for ( ; it != _mapGroups.end(); it++ ) {
+ if ( CORBA::is_nil( it->second )) continue;
+ aList[i++] = SMESH::SMESH_GroupBase::_duplicate( it->second );
+ // Python Dump
+ if (i > 1) aPythonDump << ", ";
+ aPythonDump << it->second;
+ }
+ aList->length( i );
+ }
+ catch(SALOME_Exception & S_ex) {
+ THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+ }
+
+ // Update Python script
+ aPythonDump << " ] = " << _this() << ".GetGroups()";
+
+ return aList._retn();
+}
+
//=============================================================================
/*! UnionGroups
* New group is created. All mesh elements that are
return _impl->NbEdges();
}
+CORBA::Long SMESH_Mesh_i::NbEdgesOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbEdges( (::SMESH_Mesh::ElementOrder) order);
+}
+
//=============================================================================
/*!
*
return _impl->NbPolygons();
}
+CORBA::Long SMESH_Mesh_i::NbFacesOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbFaces( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbTrianglesOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbTriangles( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbQuadranglesOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbQuadrangles( (::SMESH_Mesh::ElementOrder) order);
+}
+
//=============================================================================
/*!
*
return _impl->NbPolyhedrons();
}
+CORBA::Long SMESH_Mesh_i::NbVolumesOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbVolumes( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbTetrasOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbTetras( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbHexasOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbHexas( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbPyramidsOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbPyramids( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbPrismsOfOrder(SMESH::ElementOrder order)
+ throw(SALOME::SALOME_Exception)
+{
+ Unexpect aCatch(SALOME_SalomeException);
+ return _impl->NbPrisms( (::SMESH_Mesh::ElementOrder) order);
+}
+
//=============================================================================
/*!
*
return ( SMESH::ElementType )_impl->GetElementType( id, iselem );
}
+
+//=============================================================================
+/*!
+ * Returns ID of elements for given submesh
+ */
+//=============================================================================
+SMESH::long_array* SMESH_Mesh_i::GetSubMeshElementsId(const CORBA::Long ShapeID)
+ throw (SALOME::SALOME_Exception)
+{
+ SMESH::long_array_var aResult = new SMESH::long_array();
+
+ SMESH_subMesh* SM = _impl->GetSubMeshContaining(ShapeID);
+ if(!SM) return aResult._retn();
+
+ SMESHDS_SubMesh* SDSM = SM->GetSubMeshDS();
+ if(!SDSM) return aResult._retn();
+
+ aResult->length(SDSM->NbElements());
+
+ SMDS_ElemIteratorPtr eIt = SDSM->GetElements();
+ int i = 0;
+ while ( eIt->more() ) {
+ aResult[i++] = eIt->next()->GetID();
+ }
+
+ return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * Returns ID of nodes for given submesh
+ * If param all==true - returns all nodes, else -
+ * returns only nodes on shapes.
+ */
+//=============================================================================
+SMESH::long_array* SMESH_Mesh_i::GetSubMeshNodesId(const CORBA::Long ShapeID, CORBA::Boolean all)
+ throw (SALOME::SALOME_Exception)
+{
+ SMESH::long_array_var aResult = new SMESH::long_array();
+
+ SMESH_subMesh* SM = _impl->GetSubMeshContaining(ShapeID);
+ if(!SM) return aResult._retn();
+
+ SMESHDS_SubMesh* SDSM = SM->GetSubMeshDS();
+ if(!SDSM) return aResult._retn();
+
+ map<int,const SMDS_MeshElement*> theElems;
+ if( !all || (SDSM->NbElements()==0 && SDSM->NbNodes()==1) ) {
+ SMDS_NodeIteratorPtr nIt = SDSM->GetNodes();
+ while ( nIt->more() ) {
+ const SMDS_MeshNode* elem = nIt->next();
+ theElems.insert( make_pair(elem->GetID(),elem) );
+ }
+ }
+ else { // all nodes of submesh elements
+ SMDS_ElemIteratorPtr eIt = SDSM->GetElements();
+ while ( eIt->more() ) {
+ const SMDS_MeshElement* anElem = eIt->next();
+ SMDS_ElemIteratorPtr nIt = anElem->nodesIterator();
+ while ( nIt->more() ) {
+ const SMDS_MeshElement* elem = nIt->next();
+ theElems.insert( make_pair(elem->GetID(),elem) );
+ }
+ }
+ }
+
+ aResult->length(theElems.size());
+ map<int, const SMDS_MeshElement * >::iterator itElem;
+ int i = 0;
+ for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
+ aResult[i++] = (*itElem).first;
+
+ return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * Returns type of elements for given submesh
+ */
+//=============================================================================
+SMESH::ElementType SMESH_Mesh_i::GetSubMeshElementType(const CORBA::Long ShapeID)
+ throw (SALOME::SALOME_Exception)
+{
+ SMESH_subMesh* SM = _impl->GetSubMeshContaining(ShapeID);
+ if(!SM) return SMESH::ALL;
+
+ SMESHDS_SubMesh* SDSM = SM->GetSubMeshDS();
+ if(!SDSM) return SMESH::ALL;
+
+ if(SDSM->NbElements()==0)
+ return (SM->GetSubShape().ShapeType() == TopAbs_VERTEX) ? SMESH::NODE : SMESH::ALL;
+
+ SMDS_ElemIteratorPtr eIt = SDSM->GetElements();
+ const SMDS_MeshElement* anElem = eIt->next();
+ return ( SMESH::ElementType ) anElem->GetType();
+}
+
+
//=============================================================================
/*!
*
CORBA::Long SMESH_Mesh_i::GetMeshPtr()
{
- return (CORBA::Long)_impl;
+ return CORBA::Long(size_t(_impl));
+}
+
+
+//=============================================================================
+/*!
+ * Get XYZ coordinates of node as list of double
+ * If there is not node for given ID - returns empty list
+ */
+//=============================================================================
+
+SMESH::double_array* SMESH_Mesh_i::GetNodeXYZ(const CORBA::Long id)
+{
+ SMESH::double_array_var aResult = new SMESH::double_array();
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL )
+ return aResult._retn();
+
+ // find node
+ const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(id);
+ if(!aNode)
+ return aResult._retn();
+
+ // add coordinates
+ aResult->length(3);
+ aResult[0] = aNode->X();
+ aResult[1] = aNode->Y();
+ aResult[2] = aNode->Z();
+ return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * For given node returns list of IDs of inverse elements
+ * If there is not node for given ID - returns empty list
+ */
+//=============================================================================
+
+SMESH::long_array* SMESH_Mesh_i::GetNodeInverseElements(const CORBA::Long id)
+{
+ SMESH::long_array_var aResult = new SMESH::long_array();
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL )
+ return aResult._retn();
+
+ // find node
+ const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(id);
+ if(!aNode)
+ return aResult._retn();
+
+ // find inverse elements
+ SMDS_ElemIteratorPtr eIt = aNode->GetInverseElementIterator();
+ TColStd_SequenceOfInteger IDs;
+ while(eIt->more()) {
+ const SMDS_MeshElement* elem = eIt->next();
+ IDs.Append(elem->GetID());
+ }
+ if(IDs.Length()>0) {
+ aResult->length(IDs.Length());
+ int i = 1;
+ for(; i<=IDs.Length(); i++) {
+ aResult[i-1] = IDs.Value(i);
+ }
+ }
+ return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * If given element is node returns IDs of shape from position
+ * else - return ID of result shape after ::FindShape()
+ * from SMESH_MeshEditor
+ * If there is not element for given ID - returns -1
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetShapeID(const CORBA::Long id)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL )
+ return -1;
+
+ // try to find node
+ const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(id);
+ if(aNode) {
+ SMDS_PositionPtr pos = aNode->GetPosition();
+ if(!pos)
+ return -1;
+ else
+ return pos->GetShapeId();
+ }
+
+ // try to find element
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem)
+ return -1;
+
+ // need implementation???????????????????????????????????????????????
+ return -1;
+}
+
+
+//=============================================================================
+/*!
+ * Returns number of nodes for given element
+ * If there is not element for given ID - returns -1
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetElemNbNodes(const CORBA::Long id)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return -1;
+ // try to find element
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem) return -1;
+ return elem->NbNodes();
+}
+
+
+//=============================================================================
+/*!
+ * Returns ID of node by given index for given element
+ * If there is not element for given ID - returns -1
+ * If there is not node for given index - returns -2
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetElemNode(const CORBA::Long id, const CORBA::Long index)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return -1;
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem) return -1;
+ if( index>=elem->NbNodes() || index<0 ) return -1;
+ return elem->GetNode(index)->GetID();
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given node is medium node
+ * in given quadratic element
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsMediumNode(const CORBA::Long ide, const CORBA::Long idn)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return false;
+ // try to find node
+ const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(idn);
+ if(!aNode) return false;
+ // try to find element
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(ide);
+ if(!elem) return false;
+
+ return elem->IsMediumNode(aNode);
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given node is medium node
+ * in one of quadratic elements
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsMediumNodeOfAnyElem(const CORBA::Long idn,
+ SMESH::ElementType theElemType)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return false;
+
+ // try to find node
+ const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(idn);
+ if(!aNode) return false;
+
+ SMESH_MesherHelper aHelper( *(_impl) );
+
+ SMDSAbs_ElementType aType;
+ if(theElemType==SMESH::EDGE) aType = SMDSAbs_Edge;
+ else if(theElemType==SMESH::FACE) aType = SMDSAbs_Face;
+ else if(theElemType==SMESH::VOLUME) aType = SMDSAbs_Volume;
+ else aType = SMDSAbs_All;
+
+ return aHelper.IsMedium(aNode,aType);
}
+
+
+//=============================================================================
+/*!
+ * Returns number of edges for given element
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::ElemNbEdges(const CORBA::Long id)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return -1;
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem) return -1;
+ return elem->NbEdges();
+}
+
+
+//=============================================================================
+/*!
+ * Returns number of faces for given element
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::ElemNbFaces(const CORBA::Long id)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return -1;
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem) return -1;
+ return elem->NbFaces();
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given element is polygon
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsPoly(const CORBA::Long id)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return false;
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem) return false;
+ return elem->IsPoly();
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given element is quadratic
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsQuadratic(const CORBA::Long id)
+{
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL ) return false;
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem) return false;
+ return elem->IsQuadratic();
+}
+
+
+//=============================================================================
+/*!
+ * Returns bary center for given element
+ */
+//=============================================================================
+
+SMESH::double_array* SMESH_Mesh_i::BaryCenter(const CORBA::Long id)
+{
+ SMESH::double_array_var aResult = new SMESH::double_array();
+ SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+ if ( aSMESHDS_Mesh == NULL )
+ return aResult._retn();
+
+ const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+ if(!elem)
+ return aResult._retn();
+
+ if(elem->GetType()==SMDSAbs_Volume) {
+ // use SMDS_VolumeTool
+ SMDS_VolumeTool aTool;
+ if(aTool.Set(elem)) {
+ double x=0., y=0., z=0.;
+ if(aTool.GetBaryCenter(x,y,z)) {
+ // add coordinates
+ aResult->length(3);
+ aResult[0] = x;
+ aResult[1] = y;
+ aResult[2] = z;
+ }
+ }
+ }
+ else {
+ SMDS_ElemIteratorPtr anIt = elem->nodesIterator();
+ int nbn = 0;
+ double x=0., y=0., z=0.;
+ for(; anIt->more(); ) {
+ nbn++;
+ const SMDS_MeshNode* aNode = static_cast<const SMDS_MeshNode*>(anIt->next());
+ x += aNode->X();
+ y += aNode->Y();
+ z += aNode->Z();
+ }
+ if(nbn>0) {
+ // add coordinates
+ aResult->length(3);
+ aResult[0] = x/nbn;
+ aResult[1] = y/nbn;
+ aResult[2] = z/nbn;
+ }
+ }
+
+ return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_Mesh_i::CreateGroupServants()
+{
+ // Create group servants, if any groups were imported
+ list<int> aGroupIds = _impl->GetGroupIds();
+ for ( list<int>::iterator it = aGroupIds.begin(); it != aGroupIds.end(); it++ ) {
+ SMESH_Group_i* aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, *it );
+
+ // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
+ SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
+ aGroupImpl->Register();
+ // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
+
+ SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
+ _mapGroups[*it] = SMESH::SMESH_Group::_duplicate( aGroup );
+
+ // register CORBA object for persistence
+ int nextId = _gen_i->RegisterObject( aGroup );
+ if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
+ }
+}
+
void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
throw (SALOME::SALOME_Exception);
+ SMESH::ListOfGroups* GetGroups()
+ throw (SALOME::SALOME_Exception);
+
SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
SMESH::SMESH_GroupBase_ptr theGroup2,
const char* theName )
CORBA::Long NbEdges()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbEdgesOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbFaces()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbFacesOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbTriangles()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbTrianglesOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbQuadrangles()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbQuadranglesOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbPolygons()
throw (SALOME::SALOME_Exception);
CORBA::Long NbVolumes()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbVolumesOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbTetras()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbTetrasOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbHexas()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbHexasOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbPyramids()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbPyramidsOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbPrisms()
throw (SALOME::SALOME_Exception);
+ CORBA::Long NbPrismsOfOrder(SMESH::ElementOrder order)
+ throw (SALOME::SALOME_Exception);
+
CORBA::Long NbPolyhedrons()
throw (SALOME::SALOME_Exception);
SMESH::ElementType GetElementType( const CORBA::Long id, const bool iselem )
throw (SALOME::SALOME_Exception);
+ /*!
+ * Returns ID of elements for given submesh
+ */
+ SMESH::long_array* GetSubMeshElementsId(const CORBA::Long ShapeID)
+ throw (SALOME::SALOME_Exception);
+
+ /*!
+ * Returns ID of nodes for given submesh
+ * If param all==true - returns all nodes, else -
+ * returns only nodes on shapes.
+ */
+ SMESH::long_array* GetSubMeshNodesId(const CORBA::Long ShapeID, CORBA::Boolean all)
+ throw (SALOME::SALOME_Exception);
+
+ /*!
+ * Returns type of elements for given submesh
+ */
+ SMESH::ElementType GetSubMeshElementType(const CORBA::Long ShapeID)
+ throw (SALOME::SALOME_Exception);
+
char* Dump();
// Internal methods not available through CORBA
CORBA::Long GetMeshPtr();
+
+ /*!
+ * Get XYZ coordinates of node as list of double
+ * If there is not node for given ID - returns empty list
+ */
+ SMESH::double_array* GetNodeXYZ(const CORBA::Long id);
+
+ /*!
+ * For given node returns list of IDs of inverse elements
+ * If there is not node for given ID - returns empty list
+ */
+ SMESH::long_array* GetNodeInverseElements(const CORBA::Long id);
+
+ /*!
+ * If given element is node returns IDs of shape from position
+ * else - return ID of result shape after ::FindShape()
+ * from SMESH_MeshEditor
+ * If there is not element for given ID - returns -1
+ */
+ CORBA::Long GetShapeID(const CORBA::Long id);
+
+ /*!
+ * Returns number of nodes for given element
+ * If there is not element for given ID - returns -1
+ */
+ CORBA::Long GetElemNbNodes(const CORBA::Long id);
+
+ /*!
+ * Returns ID of node by given index for given element
+ * If there is not element for given ID - returns -1
+ * If there is not node for given index - returns -2
+ */
+ CORBA::Long GetElemNode(const CORBA::Long id, const CORBA::Long index);
+
+ /*!
+ * Returns true if given node is medium node
+ * in given quadratic element
+ */
+ CORBA::Boolean IsMediumNode(const CORBA::Long ide, const CORBA::Long idn);
+
+ /*!
+ * Returns true if given node is medium node
+ * in one of quadratic elements
+ */
+ CORBA::Boolean IsMediumNodeOfAnyElem(const CORBA::Long idn,
+ SMESH::ElementType theElemType);
+
+ /*!
+ * Returns number of edges for given element
+ */
+ CORBA::Long ElemNbEdges(const CORBA::Long id);
+
+ /*!
+ * Returns number of faces for given element
+ */
+ CORBA::Long ElemNbFaces(const CORBA::Long id);
+
+ /*!
+ * Returns true if given element is polygon
+ */
+ CORBA::Boolean IsPoly(const CORBA::Long id);
+
+ /*!
+ * Returns true if given element is quadratic
+ */
+ CORBA::Boolean IsQuadratic(const CORBA::Long id);
+
+ /*!
+ * Returns bary center for given element
+ */
+ SMESH::double_array* BaryCenter(const CORBA::Long id);
+
+
map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
map<int, ::SMESH_subMesh*> _mapSubMesh; //NRI
private:
+ void CreateGroupServants();
+
static int myIdGenerator;
::SMESH_Mesh* _impl; // :: force no namespace here
SMESH_Gen_i* _gen_i;
CORBA::Boolean SMESH_Pattern_i::LoadFromFile(const char* theFileContents)
{
+ // remove some gabage from the end
+ TCollection_AsciiString patternDescription = (char*) theFileContents;
+ int pos = patternDescription.Length();
+ while (! isdigit( patternDescription.Value( pos )))
+ pos--;
+ if ( pos != patternDescription.Length() ) {
+ patternDescription.Trunc( pos );
+ }
+
// Update Python script
- TPythonDump() << "isDone = pattern.LoadFromFile(" << theFileContents << ")";
+ TPythonDump() << "isDone = pattern.LoadFromFile("
+ << TPythonDump::LongStringStart("Pattern")
+ << patternDescription
+ << TPythonDump::LongStringEnd()
+ << ")";
addErrorCode( "LoadFromFile" );
return myPattern.Load( theFileContents );
RETCASE( ERR_LOAD_EMPTY_SUBMESH );
RETCASE( ERR_LOADF_NARROW_FACE );
RETCASE( ERR_LOADF_CLOSED_FACE );
+ RETCASE( ERR_LOADF_CANT_PROJECT );
RETCASE( ERR_LOADV_BAD_SHAPE );
RETCASE( ERR_LOADV_COMPUTE_PARAMS );
RETCASE( ERR_APPL_NOT_LOADED );
static char* SMESHGenName() { return "smeshgen"; }
static char* MeshEditorName() { return "mesh_editor"; }
+
+ /*!
+ * \brief Return marker of long string literal beginning
+ * \param type - a name of functionality producing the string literal
+ * \retval TCollection_AsciiString - the marker string to be written into
+ * a raw python script
+ */
+ static TCollection_AsciiString LongStringStart(const char* type);
+ /*!
+ * \brief Return marker of long string literal end
+ * \retval TCollection_AsciiString - the marker string to be written into
+ * a raw python script
+ */
+ static TCollection_AsciiString LongStringEnd();
+ /*!
+ * \brief Cut out a long string literal from a string
+ * \param theText - text possibly containing string literals
+ * \param theFrom - position in the text to search from
+ * \param theLongString - the retrieved literal
+ * \param theStringType - a name of functionality produced the literal
+ * \retval bool - true if a string literal found
+ *
+ * The literal is removed from theText; theFrom points position right after
+ * the removed literal
+ */
+ static bool CutoutLongString( TCollection_AsciiString & theText,
+ int & theFrom,
+ TCollection_AsciiString & theLongString,
+ TCollection_AsciiString & theStringType);
};
}
SMESH_mechanic.py \
SMESH_mechanic_tetra.py \
SMESH_mechanic_editor.py \
+ SMESH_mechanic_netgen.py \
SMESH_fixation.py \
SMESH_fixation_hexa.py \
SMESH_fixation_tetra.py \
+ SMESH_fixation_netgen.py \
SMESH_box_tetra.py \
SMESH_box2_tetra.py \
SMESH_box3_tetra.py \
+# Copyright (C) 2005 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.salome-platform.org/
+#
import geompy
import salome
+# Copyright (C) 2005 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.salome-platform.org/
+#
import SMESH
from SMESH_test1 import *
+# Copyright (C) 2005 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.salome-platform.org/
+#
#==============================================================================
# Info.
# Bug (from script, bug) : SMESH_GroupFromGeom.py, PAL6945
+# Copyright (C) 2005 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.salome-platform.org/
+#
from smesh import *
def BuildGroupLyingOn(theMesh, theElemType, theName, theShape):
+# Copyright (C) 2005 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.salome-platform.org/
+#
#####################################################################
#Created :17/02/2005
#Auhtor :MASLOV Eugeny, KOVALTCHUK Alexey
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Tetrahedrization of the geometry generated by the Python script GEOM_Partition1.py
# Hypothesis and algorithms for the mesh generation are global
+# Copyright (C) 2005 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.salome-platform.org/
+#
#==============================================================================
# Info.
# Bug (from script, bug) : box.py, PAL5223
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Tetrahedrization of the geometry union of 2 boxes having a face in common
# Hypothesis and algorithms for the mesh generation are global
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Tetrahedrization of the geometry union of 3 boxes aligned where the middle
# one has a race in common with the two others.
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Tetrahedrization of a simple box. Hypothesis and algorithms for
# the mesh generation are global
+# Copyright (C) 2005 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.salome-platform.org/
+#
#==============================================================================
# Info.
# Bug (from script, bug) : SMESH_demo_hexa2_upd.py, PAL6781
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Hexahedrization of the geometry generated by the Python script
# SMESH_fixation.py
--- /dev/null
+# Copyright (C) 2005 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.salome-platform.org/
+#
+#
+# Tetrahedrization of the geometry generated by the Python script
+# SMESH_fixation.py
+# The new Netgen algorithm is used that discretizes baoundaries itself
+#
+
+import StdMeshers
+import NETGENPlugin
+import SMESH_fixation
+import smesh
+
+compshell = SMESH_fixation.compshell
+idcomp = SMESH_fixation.idcomp
+geompy = SMESH_fixation.geompy
+salome = SMESH_fixation.salome
+
+print "Analysis of the geometry to be meshed :"
+subShellList = geompy.SubShapeAll(compshell, geompy.ShapeType["SHELL"])
+subFaceList = geompy.SubShapeAll(compshell, geompy.ShapeType["FACE"])
+subEdgeList = geompy.SubShapeAll(compshell, geompy.ShapeType["EDGE"])
+
+print "number of Shells in compshell : ", len(subShellList)
+print "number of Faces in compshell : ", len(subFaceList)
+print "number of Edges in compshell : ", len(subEdgeList)
+
+status = geompy.CheckShape(compshell)
+print " check status ", status
+
+### ---------------------------- SMESH --------------------------------------
+
+print "-------------------------- create Mesh, algorithm, hypothesis"
+
+mesh = smesh.Mesh(compshell, "MeshcompShel");
+netgen = mesh.Netgen(1)
+hyp = netgen.Parameters()
+hyp.SetMaxSize( 50 )
+#hyp.SetSecondOrder( 0 )
+hyp.SetFineness( 3 )
+#hyp.SetOptimize( 1 )
+
+salome.sg.updateObjBrowser(1)
+
+print "-------------------------- compute mesh"
+ret = mesh.Compute()
+print ret
+if ret != 0:
+ print "Information about the MeshcompShel:"
+ print "Number of nodes : ", mesh.GetMesh().NbNodes()
+ print "Number of edges : ", mesh.GetMesh().NbEdges()
+ print "Number of faces : ", mesh.GetMesh().NbFaces()
+ print "Number of triangles : ", mesh.GetMesh().NbTriangles()
+ print "Number of volumes : ", mesh.GetMesh().NbVolumes()
+ print "Number of tetrahedrons : ", mesh.GetMesh().NbTetras()
+
+else:
+ print "problem when computing the mesh"
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Tetrahedrization of the geometry generated by the Python script
# SMESH_fixation.py
+# Copyright (C) 2005 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.salome-platform.org/
+#
#
# Triangulation of the skin of the geometry from a Brep representing a plane
# This geometry is from EADS
+# Copyright (C) 2005 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.salome-platform.org/
+#
import salome\r
import geompy\r
import SMESH\r
+# Copyright (C) 2005 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.salome-platform.org/
+#
#==============================================================================
# Info.
# Bug (from script, bug) : hexaedre_modified.py, PAL6194, PAL7153
--- /dev/null
+# Copyright (C) 2005 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.salome-platform.org/
+#
+#
+# Quadrangulation of the geometry generated by the Python script
+# SMESH_mechanic.py
+# The new Netgen algorithm is used that discretizes baoundaries itself
+#
+
+import salome
+import geompy
+
+geom = geompy.geom
+
+import StdMeshers
+import NETGENPlugin
+import smesh
+
+# ---------------------------- GEOM --------------------------------------
+
+# ---- define contigous arcs and segment to define a closed wire
+p1 = geompy.MakeVertex( 100.0, 0.0, 0.0 )
+p2 = geompy.MakeVertex( 50.0, 50.0, 0.0 )
+p3 = geompy.MakeVertex( 100.0, 100.0, 0.0 )
+arc1 = geompy.MakeArc( p1, p2, p3 )
+
+p4 = geompy.MakeVertex( 170.0, 100.0, 0.0 )
+seg1 = geompy.MakeVector( p3, p4 )
+
+p5 = geompy.MakeVertex( 200.0, 70.0, 0.0 )
+p6 = geompy.MakeVertex( 170.0, 40.0, 0.0 )
+arc2 = geompy.MakeArc( p4, p5, p6 )
+
+p7 = geompy.MakeVertex( 120.0, 30.0, 0.0 )
+arc3 = geompy.MakeArc( p6, p7, p1 )
+
+# ---- define a closed wire with arcs and segment
+List1 = []
+List1.append( arc1 )
+List1.append( seg1 )
+List1.append( arc2 )
+List1.append( arc3 )
+
+wire1 = geompy.MakeWire( List1 )
+Id_wire1 = geompy.addToStudy( wire1, "wire1" )
+
+# ---- define a planar face with wire
+WantPlanarFace = 1 #True
+face1 = geompy.MakeFace( wire1, WantPlanarFace )
+Id_face1 = geompy.addToStudy( face1, "face1" )
+
+# ---- create a shape by extrusion
+pO = geompy.MakeVertex( 0.0, 0.0, 0.0 )
+pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
+vz = geompy.MakeVector( pO, pz )
+
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
+Id_prism1 = geompy.addToStudy( prism1, "prism1")
+
+# ---- create two cylinders
+
+pc1 = geompy.MakeVertex( 90.0, 50.0, -40.0 )
+pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
+radius = 20.0
+height = 180.0
+cyl1 = geompy.MakeCylinder( pc1, vz, radius, height )
+cyl2 = geompy.MakeCylinder( pc2, vz, radius, height )
+
+Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
+Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
+
+# ---- cut with cyl1
+shape = geompy.MakeBoolean( prism1, cyl1, 2 )
+
+# ---- fuse with cyl2 to obtain the final mechanic piece :)
+mechanic = geompy.MakeBoolean( shape, cyl2, 3 )
+Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
+
+# ---- Analysis of the geometry
+
+print "Analysis of the geometry mechanic :"
+
+subShellList = geompy.SubShapeAll(mechanic,geompy.ShapeType["SHELL"])
+subFaceList = geompy.SubShapeAll(mechanic,geompy.ShapeType["FACE"])
+subEdgeList = geompy.SubShapeAll(mechanic,geompy.ShapeType["EDGE"])
+
+print "number of Shells in mechanic : ",len(subShellList)
+print "number of Faces in mechanic : ",len(subFaceList)
+print "number of Edges in mechanic : ",len(subEdgeList)
+
+### ---------------------------- SMESH --------------------------------------
+
+print "-------------------------- create Mesh, algorithm, hypothesis"
+
+mesh = smesh.Mesh(mechanic, "Mesh_mechanic");
+netgen = mesh.Netgen(0)
+hyp = netgen.Parameters()
+hyp.SetMaxSize( 50 )
+#hyp.SetSecondOrder( 0 )
+hyp.SetFineness( 3 )
+hyp.SetQuadAllowed( 1 )
+#hyp.SetOptimize( 1 )
+
+salome.sg.updateObjBrowser(1)
+
+print "-------------------------- compute mesh"
+ret = mesh.Compute()
+print ret
+if ret != 0:
+ print "Information about the MeshcompShel:"
+ print "Number of nodes : ", mesh.GetMesh().NbNodes()
+ print "Number of edges : ", mesh.GetMesh().NbEdges()
+ print "Number of faces : ", mesh.GetMesh().NbFaces()
+ print "Number of triangles : ", mesh.GetMesh().NbTriangles()
+ print "Number of quadrangles : ", mesh.GetMesh().NbQuadrangles()
+ print "Number of volumes : ", mesh.GetMesh().NbVolumes()
+ print "Number of tetrahedrons : ", mesh.GetMesh().NbTetras()
+
+else:
+ print "problem when computing the mesh"
+# Copyright (C) 2005 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.salome-platform.org/
+#
"""
"""
import salome
import geompy
from geompy import geom
-from geompy import gg
import SMESH
+# Copyright (C) 2005 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.salome-platform.org/
+#
import salome
import geompy
import SMESH
+# Copyright (C) 2005 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.salome-platform.org/
+#
import os
import re
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2005, Francis KLOSS (OCC)
# ==================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2005, Francis KLOSS (OCC)
# ==================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2004-2005, Francis KLOSS (OCC)
# =======================================
+# Copyright (C) 2005 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.salome-platform.org/
+#
# CEA/LGLS 2005, Francis KLOSS (OCC)
# ==================================
"""
Private method
"""
+ if geom is None:
+ raise RuntimeError, "Attemp to create " + hypo + " algoritm on None shape"
self.mesh = mesh
piece = mesh.geom
if geom==0:
"""
self.Create(mesh, geom, "Hexa_3D")
+# Public class: Mesh_Netgen
+# ------------------------------
+
+class Mesh_Netgen(Mesh_Algorithm):
+ """
+ Class to define a NETGEN-based 2D or 3D algorithm
+ that need no discrete boundary (i.e. independent)
+ """
+
+ is3D = 0
+
+ def __init__(self, mesh, is3D, geom=0):
+ """
+ Private constructor
+ """
+ self.is3D = is3D
+ if is3D:
+ self.Create(mesh, geom, "NETGEN_2D3D", "libNETGENEngine.so")
+ else:
+ self.Create(mesh, geom, "NETGEN_2D", "libNETGENEngine.so")
+
+ def Parameters(self):
+ """
+ Define hypothesis containing parameters of the algorithm
+ """
+ if self.is3D:
+ hyp = self.Hypothesis("NETGEN_Parameters", [], "libNETGENEngine.so")
+ else:
+ hyp = self.Hypothesis("NETGEN_Parameters_2D", [], "libNETGENEngine.so")
+ return hyp
+
# Public class: Mesh
# ==================
"""
return Mesh_Hexahedron(self, geom)
+ def Netgen(self, is3D, geom=0):
+ """
+ Creates a NETGEN-based 2D or 3D independent algorithm (i.e. needs no
+ discrete boundary).
+ If the optional \a geom parameter is not sets, this algorithm is global.
+ Otherwise, this algorithm defines a submesh based on \a geom subshape.
+ \param is3D If 0 then algorithm is 2D, otherwise 3D
+ \param geom If defined, subshape to be meshed
+ """
+ return Mesh_Netgen(self, is3D, geom)
+
def Compute(self):
"""
Compute the mesh and return the status of the computation
elif tgeo == "SHELL":
type = SMESH.VOLUME
elif tgeo == "COMPOUND":
+ if len( geompy.GetObjectIDs( grp )) == 0:
+ print "Mesh.Group: empty geometric group", GetName( grp )
+ return 0
tgeo = geompy.GetType(grp)
if tgeo == geompy.ShapeType["VERTEX"]:
type = SMESH.NODE
StdMeshers_AutomaticLength.hxx \
StdMeshers_Distribution.hxx \
StdMeshers_QuadranglePreference.hxx \
- StdMeshers_Helper.hxx \
StdMeshers_QuadraticMesh.hxx
EXPORT_PYSCRIPTS =
StdMeshers_AutomaticLength.cxx \
StdMeshers_Distribution.cxx \
StdMeshers_QuadranglePreference.cxx \
- StdMeshers_Helper.cxx \
StdMeshers_QuadraticMesh.cxx
LIB_SERVER_IDL =
SMESHDS_SubMesh * eSubMesh = aMeshDS->MeshElements( edge );
if ( !eSubMesh )
return false;
- double segLen = L / eSubMesh->NbElements();
+ int nbSeg = eSubMesh->NbElements();
+ if ( nbSeg < 1 )
+ continue;
+ double segLen = L / nbSeg;
// get segment length from _TShapeToLength
map<const TopoDS_TShape*, double>::iterator tshape_length =
+++ /dev/null
-// File: StdMeshers_Helper.cxx
-// Created: 15.02.06 15:22:41
-// Author: Sergey KUUL
-// Copyright: Open CASCADE 2006
-
-
-#include "StdMeshers_Helper.hxx"
-
-#include "SMDS_FacePosition.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMESH_subMesh.hxx"
-#include "SMESH_MeshEditor.hxx"
-
-#include <BRepAdaptor_Surface.hxx>
-#include <BRepTools.hxx>
-#include <BRep_Tool.hxx>
-#include <Geom2d_Curve.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopTools_MapOfShape.hxx>
-#include <gp_Pnt2d.hxx>
-
-
-//=======================================================================
-//function : CheckShape
-//purpose :
-//=======================================================================
-
-bool StdMeshers_Helper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
-{
- SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
- myShapeID = meshDS->ShapeToIndex(aSh);
- // we can create quadratic elements only if all elements
- // created on subshapes of given shape are quadratic
- // also we have to fill myNLinkNodeMap
- myCreateQuadratic = true;
- mySeamShapeIds.clear();
- TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
- SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
-
- TopExp_Explorer exp( aSh, subType );
- for (; exp.More() && myCreateQuadratic; exp.Next()) {
- if ( SMESHDS_SubMesh * subMesh = meshDS->MeshElements( exp.Current() )) {
- if ( SMDS_ElemIteratorPtr it = subMesh->GetElements() ) {
- while(it->more()) {
- const SMDS_MeshElement* e = it->next();
- if ( e->GetType() != elemType || !e->IsQuadratic() ) {
- myCreateQuadratic = false;
- break;
- }
- else {
- // fill NLinkNodeMap
- switch ( e->NbNodes() ) {
- case 3:
- AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(2)); break;
- case 6:
- AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(3));
- AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(4));
- AddNLinkNode(e->GetNode(2),e->GetNode(0),e->GetNode(5)); break;
- case 8:
- AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(4));
- AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(5));
- AddNLinkNode(e->GetNode(2),e->GetNode(3),e->GetNode(6));
- AddNLinkNode(e->GetNode(3),e->GetNode(0),e->GetNode(7));
- break;
- default:
- myCreateQuadratic = false;
- break;
- }
- }
- }
- }
- }
- }
-
- if(!myCreateQuadratic) {
- myNLinkNodeMap.clear();
- }
- else {
- // treatment of periodic faces
- if ( aSh.ShapeType() == TopAbs_FACE ) {
- const TopoDS_Face& face = TopoDS::Face( aSh );
- BRepAdaptor_Surface surface( face );
- if ( surface.IsUPeriodic() || surface.IsVPeriodic() ) {
- // look for a seam edge
- for ( exp.Init( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
- const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
- if ( BRep_Tool::IsClosed( edge, face )) {
- // initialize myPar1, myPar2 and myParIndex
- if ( mySeamShapeIds.empty() ) {
- gp_Pnt2d uv1, uv2;
- BRep_Tool::UVPoints( edge, face, uv1, uv2 );
- if ( Abs( uv1.Coord(1) - uv2.Coord(1) ) < Abs( uv1.Coord(2) - uv2.Coord(2) ))
- {
- myParIndex = 1; // U periodic
- myPar1 = surface.FirstUParameter();
- myPar2 = surface.LastUParameter();
- }
- else {
- myParIndex = 2; // V periodic
- myPar1 = surface.FirstVParameter();
- myPar2 = surface.LastVParameter();
- }
- }
- // store shapes indices
- mySeamShapeIds.insert( meshDS->ShapeToIndex( exp.Current() ));
- for ( TopExp_Explorer v( exp.Current(), TopAbs_VERTEX ); v.More(); v.Next() )
- mySeamShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
- }
- }
- }
- }
- }
- return myCreateQuadratic;
-}
-
-
-//=======================================================================
-//function : IsMedium
-//purpose :
-//=======================================================================
-
-bool StdMeshers_Helper::IsMedium(const SMDS_MeshNode* node,
- const SMDSAbs_ElementType typeToCheck)
-{
- return SMESH_MeshEditor::IsMedium( node, typeToCheck );
-}
-
-//=======================================================================
-//function : AddNLinkNode
-//purpose :
-//=======================================================================
-/*!
- * Auxilary function for filling myNLinkNodeMap
- */
-void StdMeshers_Helper::AddNLinkNode(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n12)
-{
- NLink link( n1, n2 );
- if ( n1 > n2 ) link = NLink( n2, n1 );
- // add new record to map
- myNLinkNodeMap.insert( make_pair(link,n12));
-}
-
-//=======================================================================
-/*!
- * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
- * \param uv1 - UV on the seam
- * \param uv2 - UV within a face
- * \retval gp_Pnt2d - selected UV
- */
-//=======================================================================
-
-gp_Pnt2d StdMeshers_Helper::GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const
-{
- double p1 = uv1.Coord( myParIndex );
- double p2 = uv2.Coord( myParIndex );
- double p3 = ( Abs( p1 - myPar1 ) < Abs( p1 - myPar2 )) ? myPar2 : myPar1;
- if ( Abs( p2 - p1 ) > Abs( p2 - p3 ))
- p1 = p3;
- gp_Pnt2d result = uv1;
- result.SetCoord( myParIndex, p1 );
- return result;
-}
-
-//=======================================================================
-/*!
- * \brief Return node UV on face
- * \param F - the face
- * \param n - the node
- * \param n2 - a medium node will be placed between n and n2
- * \retval gp_XY - resulting UV
- *
- * Auxilary function called form GetMediumNode()
- */
-//=======================================================================
-
-gp_XY StdMeshers_Helper::GetNodeUV(const TopoDS_Face& F,
- const SMDS_MeshNode* n,
- const SMDS_MeshNode* n2)
-{
- gp_Pnt2d uv;
- const SMDS_PositionPtr Pos = n->GetPosition();
- if(Pos->GetTypeOfPosition()==SMDS_TOP_FACE) {
- // node has position on face
- const SMDS_FacePosition* fpos =
- static_cast<const SMDS_FacePosition*>(n->GetPosition().get());
- uv = gp_Pnt2d(fpos->GetUParameter(),fpos->GetVParameter());
- }
- else if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
- // node has position on edge => it is needed to find
- // corresponding edge from face, get pcurve for this
- // edge and recieve value from this pcurve
- const SMDS_EdgePosition* epos =
- static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
- SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
- int edgeID = Pos->GetShapeId();
- TopoDS_Edge E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
- double f, l;
- TopLoc_Location loc;
- Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
- uv = C2d->Value( epos->GetUParameter() );
- // for a node on a seam edge select one of UVs on 2 pcurves
- if ( n2 && mySeamShapeIds.find( edgeID ) != mySeamShapeIds.end() )
- uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
- }
- else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
- SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
- int vertexID = n->GetPosition()->GetShapeId();
- const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
- uv = BRep_Tool::Parameters( V, F );
- if ( n2 && mySeamShapeIds.find( vertexID ) != mySeamShapeIds.end() )
- uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
- }
- return uv.XY();
-}
-
-
-//=======================================================================
-//function : GetMediumNode
-//purpose :
-//=======================================================================
-/*!
- * Special function for search or creation medium node
- */
-const SMDS_MeshNode* StdMeshers_Helper::GetMediumNode(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const bool force3d)
-{
-//cout<<"n1: "<<n1;
-//cout<<"n2: "<<n2;
- NLink link(( n1 < n2 ? n1 : n2 ), ( n1 < n2 ? n2 : n1 ));
- ItNLinkNode itLN = myNLinkNodeMap.find( link );
- if ( itLN != myNLinkNodeMap.end() ) {
- return (*itLN).second;
- }
- else {
- // create medium node
- SMDS_MeshNode* n12;
- SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
- if(!force3d) {
- // we try to create medium node using UV parameters of
- // nodes, else - medium between corresponding 3d points
- const SMDS_PositionPtr Pos1 = n1->GetPosition();
- const SMDS_PositionPtr Pos2 = n2->GetPosition();
- int faceID = -1;
- if( Pos1->GetTypeOfPosition()==SMDS_TOP_FACE ) {
- faceID = Pos1->GetShapeId();
- }
- else if( Pos2->GetTypeOfPosition()==SMDS_TOP_FACE ) {
- faceID = Pos2->GetShapeId();
- }
- if(faceID>-1) {
- TopoDS_Face F = TopoDS::Face(meshDS->IndexToShape(faceID));
- gp_XY p1 = GetNodeUV(F,n1,n2);
- gp_XY p2 = GetNodeUV(F,n2,n1);
- double u = (p1.X()+p2.X())/2.;
- double v = (p1.Y()+p2.Y())/2.;
- Handle(Geom_Surface) S = BRep_Tool::Surface(F);
- gp_Pnt P = S->Value(u, v);
- n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
- meshDS->SetNodeOnFace(n12, faceID, u, v);
- myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
- return n12;
- }
- }
- // 3d variant
- double x = ( n1->X() + n2->X() )/2.;
- double y = ( n1->Y() + n2->Y() )/2.;
- double z = ( n1->Z() + n2->Z() )/2.;
- n12 = meshDS->AddNode(x,y,z);
- meshDS->SetNodeInVolume(n12, myShapeID);
- myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
- return n12;
- }
-}
-
-
-//=======================================================================
-//function : AddFace
-//purpose :
-//=======================================================================
-/*!
- * Special function for creation quadratic triangle
- */
-SMDS_MeshFace* StdMeshers_Helper::AddFace(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3)
-{
- SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
- if(!myCreateQuadratic) {
- return meshDS->AddFace(n1, n2, n3);
- }
-
- const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,false);
- const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,false);
- const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,false);
-
- return meshDS->AddFace(n1, n2, n3, n12, n23, n31);
-}
-
-
-//=======================================================================
-//function : AddFace
-//purpose :
-//=======================================================================
-/*!
- * Special function for creation quadratic quadrangle
- */
-SMDS_MeshFace* StdMeshers_Helper::AddFace(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4)
-{
- SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
- if(!myCreateQuadratic) {
- return meshDS->AddFace(n1, n2, n3, n4);
- }
-
- const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,false);
- const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,false);
- const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,false);
- const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,false);
-
- return meshDS->AddFace(n1, n2, n3, n4, n12, n23, n34, n41);
-}
-
-
-//=======================================================================
-//function : AddVolume
-//purpose :
-//=======================================================================
-/*!
- * Special function for creation quadratic volume
- */
-SMDS_MeshVolume* StdMeshers_Helper::AddVolume(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4,
- const SMDS_MeshNode* n5,
- const SMDS_MeshNode* n6)
-{
- SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
- if(!myCreateQuadratic) {
- return meshDS->AddVolume(n1, n2, n3, n4, n5, n6);
- }
-
- const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,true);
- const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,true);
- const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,true);
-
- const SMDS_MeshNode* n45 = GetMediumNode(n4,n5,true);
- const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,true);
- const SMDS_MeshNode* n64 = GetMediumNode(n6,n4,true);
-
- const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,true);
- const SMDS_MeshNode* n25 = GetMediumNode(n2,n5,true);
- const SMDS_MeshNode* n36 = GetMediumNode(n3,n6,true);
-
- return meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
- n12, n23, n31, n45, n56, n64, n14, n25, n36);
-}
-
-
-//=======================================================================
-//function : AddVolume
-//purpose :
-//=======================================================================
-/*!
- * Special function for creation quadratic volume
- */
-SMDS_MeshVolume* StdMeshers_Helper::AddVolume(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4)
-{
- SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
- if(!myCreateQuadratic) {
- return meshDS->AddVolume(n1, n2, n3, n4);
- }
-
- const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,true);
- const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,true);
- const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,true);
-
- const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,true);
- const SMDS_MeshNode* n24 = GetMediumNode(n2,n4,true);
- const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,true);
-
- return meshDS->AddVolume(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34);
-}
-
-
-//=======================================================================
-//function : AddVolume
-//purpose :
-//=======================================================================
-/*!
- * Special function for creation quadratic volume
- */
-SMDS_MeshVolume* StdMeshers_Helper::AddVolume(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4,
- const SMDS_MeshNode* n5,
- const SMDS_MeshNode* n6,
- const SMDS_MeshNode* n7,
- const SMDS_MeshNode* n8)
-{
- SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
- if(!myCreateQuadratic) {
- return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
- }
-
- const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,true);
- const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,true);
- const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,true);
- const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,true);
-
- const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,true);
- const SMDS_MeshNode* n67 = GetMediumNode(n6,n7,true);
- const SMDS_MeshNode* n78 = GetMediumNode(n7,n8,true);
- const SMDS_MeshNode* n85 = GetMediumNode(n8,n5,true);
-
- const SMDS_MeshNode* n15 = GetMediumNode(n1,n5,true);
- const SMDS_MeshNode* n26 = GetMediumNode(n2,n6,true);
- const SMDS_MeshNode* n37 = GetMediumNode(n3,n7,true);
- const SMDS_MeshNode* n48 = GetMediumNode(n4,n8,true);
-
- return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8,
- n12, n23, n34, n41, n56, n67,
- n78, n85, n15, n26, n37, n48);
-}
-
-
+++ /dev/null
-// File: StdMeshers_Helper.hxx
-// Created: 15.02.06 14:48:09
-// Author: Sergey KUUL
-// Copyright: Open CASCADE 2006
-
-
-#ifndef StdMeshers_Helper_HeaderFile
-#define StdMeshers_Helper_HeaderFile
-
-#include <SMESH_Mesh.hxx>
-#include <TopoDS_Shape.hxx>
-#include <SMDS_MeshNode.hxx>
-#include <TopoDS_Face.hxx>
-#include <gp_Pnt2d.hxx>
-
-#include <map>
-
-typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> NLink;
-typedef map<NLink, const SMDS_MeshNode*> NLinkNodeMap;
-typedef map<NLink, const SMDS_MeshNode*>::iterator ItNLinkNode;
-
-/*!
- * \brief It helps meshers to add elements
- *
- * It allow meshers not to care about creation of medium nodes
- * when filling a quadratic mesh. Helper does it itself.
- * It defines degree of elements to create when IsQuadraticSubMesh()
- * is called.
- */
-
-class StdMeshers_Helper
-{
- public:
- // ---------- PUBLIC METHODS ----------
-
- /// Empty constructor
- StdMeshers_Helper(SMESH_Mesh& theMesh)
- { myMesh=(void *)&theMesh; myCreateQuadratic = false; }
-
- SMESH_Mesh* GetMesh() const
- { return (SMESH_Mesh*)myMesh; }
-
- /// Copy constructor
- //Standard_EXPORT StdMeshers_Helper (const StdMeshers_Helper& theOther);
-
- /// Destructor
- //Standard_EXPORT virtual ~StdMeshers_Helper ();
-
- /**
- * Check submesh for given shape
- * Check if all elements on this shape
- * are quadratic, if yes => set true to myCreateQuadratic
- * (default value is false). Also fill myNLinkNodeMap
- * Returns myCreateQuadratic
- */
- bool IsQuadraticSubMesh(const TopoDS_Shape& theShape);
-
- /*!
- * \brief Returns true if given node is medium
- * \param n - node to check
- * \param typeToCheck - type of elements containing the node to ask about node status
- * \retval bool - check result
- */
- static bool IsMedium(const SMDS_MeshNode* node,
- const SMDSAbs_ElementType typeToCheck = SMDSAbs_All);
-
- /**
- * Auxilary function for filling myNLinkNodeMap
- */
- void AddNLinkNode(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n12);
-
- /**
- * Auxilary function for filling myNLinkNodeMap
- */
- void AddNLinkNodeMap(const NLinkNodeMap& aMap)
- { myNLinkNodeMap.insert(aMap.begin(), aMap.end()); }
-
- /**
- * Returns myNLinkNodeMap
- */
- const NLinkNodeMap& GetNLinkNodeMap() { return myNLinkNodeMap; }
-
- /*!
- * \brief Return node UV on face
- * \param F - the face
- * \param n - the node
- * \param n2 - a medium node will be placed between n and n2
- * \retval gp_XY - resulting UV
- *
- * Auxilary function called form GetMediumNode()
- */
- gp_XY GetNodeUV(const TopoDS_Face& F,
- const SMDS_MeshNode* n,
- const SMDS_MeshNode* n2=0);
-
- /**
- * Special function for search or creation medium node
- */
- const SMDS_MeshNode* GetMediumNode(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const bool force3d);
- /**
- * Special function for creation quadratic triangle
- */
- SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3);
-
- /**
- * Special function for creation quadratic quadrangle
- */
- SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4);
-
- /**
- * Special function for creation quadratic tetraahedron
- */
- SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4);
-
- /**
- * Special function for creation quadratic pentahedron
- */
- SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4,
- const SMDS_MeshNode* n5,
- const SMDS_MeshNode* n6);
-
- /**
- * Special function for creation quadratic hexahedron
- */
- SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
- const SMDS_MeshNode* n2,
- const SMDS_MeshNode* n3,
- const SMDS_MeshNode* n4,
- const SMDS_MeshNode* n5,
- const SMDS_MeshNode* n6,
- const SMDS_MeshNode* n7,
- const SMDS_MeshNode* n8);
-
-
- protected:
-
- /*!
- * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
- * \param uv1 - UV on the seam
- * \param uv2 - UV within a face
- * \retval gp_Pnt2d - selected UV
- */
- gp_Pnt2d GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
-
- private:
-
- void* myMesh;
-
- int myShapeID;
-
- // Key for creation quadratic faces
- bool myCreateQuadratic;
-
- // special map for using during creation quadratic faces
- NLinkNodeMap myNLinkNodeMap;
-
- std::set< int > mySeamShapeIds;
- double myPar1, myPar2; // bounds of a closed periodic surface
- int myParIndex; // bounds' index (1-U, 2-V)
-
-};
-
-
-#endif
//MESSAGE("---");
// tool for working with quadratic elements
- StdMeshers_Helper aTool (aMesh);
+ SMESH_MesherHelper aTool (aMesh);
_quadraticMesh = aTool.IsQuadraticSubMesh(aShape);
// cube structure
#include "StdMeshers_Quadrangle_2D.hxx"
#include "Utils_SALOME_Exception.hxx"
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
typedef struct point3Dstruct
{
int iw = 1;
int nbpnt = 0;
- myTool = new StdMeshers_Helper(aMesh);
+ myTool = new SMESH_MesherHelper(aMesh);
_quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
+ if ( _quadraticMesh && _hypLengthFromEdges )
+ aretmx *= 2.;
+
myOuterWire = BRepTools::OuterWire(F);
nbpnt += NumberOfPoints(aMesh, myOuterWire);
if ( nbpnt < 3 ) { // ex: a circle with 2 segments
while ( nIt->more() ) {
const SMDS_MeshNode* node = nIt->next();
// check if node is medium
- if ( CreateQuadratic && StdMeshers_Helper::IsMedium( node, SMDSAbs_Edge ))
+ if ( CreateQuadratic && SMESH_MesherHelper::IsMedium( node, SMDSAbs_Edge ))
continue;
const SMDS_EdgePosition* epos =
static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
while ( nodeIt->more() )
{
node = nodeIt->next();
- if ( _quadraticMesh && StdMeshers_Helper::IsMedium( node, SMDSAbs_Edge ))
+ if ( _quadraticMesh && SMESH_MesherHelper::IsMedium( node, SMDSAbs_Edge ))
continue;
const SMDS_EdgePosition* epos =
static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
#include "SMESH_2D_Algo.hxx"
#include <TopoDS_Wire.hxx>
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
class SMDS_MeshNode;
class TopTools_IndexedDataMapOfShapeListOfShape;
TopoDS_Wire myOuterWire;
std::list<const SMDS_MeshNode*> myNodesOnCommonV;
- StdMeshers_Helper* myTool; // toll for working with quadratic elements
+ SMESH_MesherHelper* myTool; // toll for working with quadratic elements
};
#endif
return bOK;
}
- myTool = new StdMeshers_Helper(aMesh);
+ myTool = new SMESH_MesherHelper(aMesh);
myCreateQuadratic = myTool->IsQuadraticSubMesh(aShape);
//
// try to load the rest nodes
// get all faces from theFace
- set<const SMDS_MeshElement*> allFaces, foundFaces;
+ map<int,const SMDS_MeshElement*> allFaces, foundFaces;
SMDS_ElemIteratorPtr eIt = smFace->GetElements();
while ( eIt->more() ) {
const SMDS_MeshElement* e = eIt->next();
if ( e->GetType() == SMDSAbs_Face )
- allFaces.insert( e );
+ allFaces.insert( make_pair(e->GetID(),e) );
}
// Starting from 2 neighbour nodes on theBaseEdge, look for a face
// the nodes belong to, and between the nodes of the found face,
return false;
}
par_nVec_2->second[ row ] = node;
- foundFaces.insert( face );
+ foundFaces.insert( make_pair(face->GetID(),face) );
n2 = node;
if ( nbFaceNodes==4 || (myCreateQuadratic && nbFaceNodes==8) ) {
n1 = par_nVec_1->second[ row ];
#include "SMESH_Block.hxx"
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
typedef std::map< double, std::vector<const SMDS_MeshNode*> > StdMeshers_IJNodeMap;
vector<gp_XYZ> myShapeXYZ; // point on each sub-shape
bool myCreateQuadratic;
- StdMeshers_Helper* myTool; // toll for working with quadratic elements
+ SMESH_MesherHelper* myTool; // toll for working with quadratic elements
};
#endif
aMesh.GetSubMesh(aShape);
if ( !myTool )
- myTool = new StdMeshers_Helper(aMesh);
+ myTool = new SMESH_MesherHelper(aMesh);
_quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
//FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
#include "gp_XY.hxx"
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
//class SMDS_MeshNode;
// is not the same in the case where the global number of nodes on edges is even
bool myQuadranglePreference;
- StdMeshers_Helper* myTool; // toll for working with quadratic elements
+ SMESH_MesherHelper* myTool; // toll for working with quadratic elements
};
#endif
double f, l;
Handle(Geom_Curve) Curve = BRep_Tool::Curve(theEdge, f, l);
- GeomAdaptor_Curve C3d(Curve);
+ GeomAdaptor_Curve C3d (Curve, f, l);
double length = EdgeLength(theEdge);
else
{
// Number Of Segments hypothesis
+ int NbSegm = _ivalue[ NB_SEGMENTS_IND ];
+ if ( NbSegm < 1 ) return false;
+ if ( NbSegm == 1 ) return true;
+
switch (_ivalue[ DISTR_TYPE_IND ])
{
case StdMeshers_NumberOfSegments::DT_Scale:
{
- int NbSegm = _ivalue[ NB_SEGMENTS_IND ];
double scale = _value[ SCALE_FACTOR_IND ];
if (fabs(scale - 1.0) < Precision::Confusion()) {
if(_quadraticMesh) {
// create medium node
double prm = param - du/2.;
- gp_Pnt PM = Curve->Value(prm);
- SMDS_MeshNode * NM = meshDS->AddNode(PM.X(), PM.Y(), PM.Z());
+ SMDS_MeshNode * NM = meshDS->AddNode(P.X(), P.Y(), P.Z());
meshDS->SetNodeOnEdge(NM, shapeID, prm);
SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node, NM);
meshDS->SetMeshElementOnShape(edge, shapeID);
if(_quadraticMesh) {
// create medium node
double prm = l - du/2.;
- gp_Pnt PM = Curve->Value(prm);
- SMDS_MeshNode * NM = meshDS->AddNode(PM.X(), PM.Y(), PM.Z());
+ SMDS_MeshNode * NM = meshDS->AddNode(P.X(), P.Y(), P.Z());
meshDS->SetNodeOnEdge(NM, shapeID, prm);
SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast, NM);
meshDS->SetMeshElementOnShape(edge, shapeID);
{
// Propagation of 1D hypothesis from <aMainEdge> on this edge;
// get non-auxiliary assigned to _mainEdge
- nbHyp = aMesh.GetHypotheses( _mainEdge, compatibleFilter, _usedHypList, false );
+ nbHyp = aMesh.GetHypotheses( _mainEdge, compatibleFilter, _usedHypList, true );
}
}
StdMeshersGUI_DistrTable.h \
StdMeshersGUI_NbSegmentsCreator.h
-EXPORT_HEADERS =
+EXPORT_HEADERS = StdMeshersGUI_StdHypothesisCreator.h
LIB_CLIENT_IDL = \
SALOME_Exception.idl \
SALOME_GenericObj.idl \
SALOME_ContainerManager.idl \
SALOME_Component.idl \
- GEOM_Gen.idl
+ GEOM_Gen.idl \
+ SALOME_Comm.idl \
+ MED.idl
LIB_SERVER_IDL =
+// Copyright (C) 2005 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.salome-platform.org/
+//
#include "StdMeshersGUI_DistrPreview.h"
#include "CASCatch.hxx"
+// Copyright (C) 2005 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.salome-platform.org/
+//
#ifndef STD_MESHERS_GUI_DISTR_PREVIEW_HEADER
#define STD_MESHERS_GUI_DISTR_PREVIEW_HEADER
+// Copyright (C) 2005 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.salome-platform.org/
+//
#include "StdMeshersGUI_NbSegmentsCreator.h"
#include "StdMeshersGUI_DistrTable.h"
myDistr->setCurrentItem( data.myDistrType );
myScale->setValue( data.myScale );
myConv->setButton( data.myConv );
+ myTable->table()->funcValidator()->setBottom(myConv->id( myConv->selected() )==0 ? -1E20 : 0);
myTable->table()->setData( data.myTable );
myExpr->setText( data.myExpr );
}
+// Copyright (C) 2005 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.salome-platform.org/
+//
#ifndef NB_SEGMENTS_CREATOR_HEADER
#define NB_SEGMENTS_CREATOR_HEADER
{
sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, 6 );
}
+ else if ( sb ) // default validator for possible ancestors
+ {
+ sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, 6 );
+ }
}
QString StdMeshersGUI_StdHypothesisCreator::caption() const
virtual QWidget* getCustomWidget( const StdParam&, QWidget* ) const;
virtual bool getParamFromCustomWidget( StdParam& , QWidget* ) const;
-private:
- QString hypTypeName( const QString& ) const;
+ virtual QString hypTypeName( const QString& ) const;
};
#endif
+# Copyright (C) 2005 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.salome-platform.org/
+#
# This is a Qt message file in .po format. Each msgid starts with
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
# would be translated to "Pub", not "Foo::Pub".
+# Copyright (C) 2005 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.salome-platform.org/
+#
# This is a Qt message file in .po format. Each msgid starts with
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
# would be translated to "Pub", not "Foo::Pub".
* Builds point distribution according to passed function
*/
//=============================================================================
-SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionExpr( const char* func, long nbSeg, long conv )
-throw ( SALOME::SALOME_Exception )
+SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionExpr( const char* func,
+ CORBA::Long nbSeg,
+ CORBA::Long conv )
+ throw ( SALOME::SALOME_Exception )
{
MESSAGE( "StdMeshers_NumberOfSegments_i::BuildDistribution" );
ASSERT( myBaseImpl );
}
SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionTab( const SMESH::double_array& func,
- long nbSeg, long conv )
-throw ( SALOME::SALOME_Exception )
+ CORBA::Long nbSeg,
+ CORBA::Long conv )
+ throw ( SALOME::SALOME_Exception )
{
MESSAGE( "StdMeshers_NumberOfSegments_i::BuildDistribution" );
ASSERT( myBaseImpl );
#include "StdMeshers_Quadrangle_2D_i.hxx"
#include "StdMeshers_Hexa_3D_i.hxx"
+template <class T> class StdHypothesisCreator_i:public HypothesisCreator_i<T>
+{
+ // as we have 'module StdMeshers' in SMESH_BasicHypothesis.idl
+ virtual std::string GetModuleName() { return "StdMeshers"; }
+};
+
//=============================================================================
/*!
*
// Hypotheses
if (strcmp(aHypName, "LocalLength") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_LocalLength_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_LocalLength_i>;
else if (strcmp(aHypName, "NumberOfSegments") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_NumberOfSegments_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_NumberOfSegments_i>;
else if (strcmp(aHypName, "LengthFromEdges") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_LengthFromEdges_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_LengthFromEdges_i>;
else if (strcmp(aHypName, "NotConformAllowed") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_NotConformAllowed_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_NotConformAllowed_i>;
else if (strcmp(aHypName, "Propagation") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_Propagation_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_Propagation_i>;
else if (strcmp(aHypName, "MaxElementArea") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_MaxElementArea_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_MaxElementArea_i>;
else if (strcmp(aHypName, "MaxElementVolume") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_MaxElementVolume_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_MaxElementVolume_i>;
else if (strcmp(aHypName, "StartEndLength") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_StartEndLength_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_StartEndLength_i>;
else if (strcmp(aHypName, "Deflection1D") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_Deflection1D_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_Deflection1D_i>;
else if (strcmp(aHypName, "Arithmetic1D") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_Arithmetic1D_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_Arithmetic1D_i>;
else if (strcmp(aHypName, "AutomaticLength") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_AutomaticLength_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_AutomaticLength_i>;
else if (strcmp(aHypName, "QuadranglePreference") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_QuadranglePreference_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_QuadranglePreference_i>;
else if (strcmp(aHypName, "QuadraticMesh") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_QuadraticMesh_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_QuadraticMesh_i>;
// Algorithms
else if (strcmp(aHypName, "Regular_1D") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_Regular_1D_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_Regular_1D_i>;
else if (strcmp(aHypName, "MEFISTO_2D") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_MEFISTO_2D_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_MEFISTO_2D_i>;
else if (strcmp(aHypName, "Quadrangle_2D") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_Quadrangle_2D_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_Quadrangle_2D_i>;
else if (strcmp(aHypName, "Hexa_3D") == 0)
- aCreator = new HypothesisCreator_i<StdMeshers_Hexa_3D_i>;
+ aCreator = new StdHypothesisCreator_i<StdMeshers_Hexa_3D_i>;
else ;
return aCreator;