+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>About viewing meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:25px; height:24px; border-style:none; }
-p.whs2 { font-weight:normal; }
-p.whs3 { margin-left:40px; }
-img_whs4 { border:none; width:404px; height:413px; border-style:none; }
-ul.whs5 { list-style:disc; }
-p.whs6 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nViewing meshes\nViewing meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Viewing meshes</h1>
-
-<p>After definition of algorithms and hypotheses a new mesh is listed in
- the Object Browser. Right-click on it and select <img src="image28.gif" width="25px" height="24px" border="0" class="img_whs1"> <span
- style="font-weight: bold;"><B>Compute</B></span> - the mesh will be automatically
- displayed in the <span style="font-weight: bold;"><B>VTK 3D Viewer.</B></span>
- Alternatively click<span style="font-weight: bold;"><B> Display only</B></span>
- to hide all other objects at the same time. </p>
-
-<p> </p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>VTK 3D
- Viewer</B></span> is detailly described in the documentation on <span style="font-weight: bold;"><B>GUI
- module</B></span>.</p>
-
-<p>After the mesh has appeared in the Viewer, you can select it with left
- mouse click and get
- information about it, change its presentation parameters and access to
- other useful options by right-clicking on the selected mesh<span style="font-weight: bold;"><B>.</B></span></p>
-
-<p> </p>
-
-<p class="whs3"><img src="image15.jpg" width="404px" height="413px" border="0" class="img_whs4"></p>
-
-<p> </p>
-
-<ul type="disc" class="whs5">
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase all</B></span>
- - allows
- to hide all objects in the viewer</p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Update</B></span>
- - refreshes the presentation of your mesh in the Object Browser, applying
- all recent changes.</p></li>
-
- <li class=kadov-p><p><a href="files/viewing_mesh_info.htm#advanced infos" style="font-weight: bold;">Advanced Mesh Infos</a>
- - provides
- more detailed information about the mesh. </p></li>
-
- <li class=kadov-p><p class="whs6"><a href="files/viewing_mesh_info.htm#standard_infos">Standard
- Mesh Infos</a> - <span style="font-weight: normal;">provides basic information
- about the mesh.</span></p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span>
- - allows
- to display the ID numbers of all meshing elements or nodes composing your
- mesh in the viewer.</p></li>
-
- <li class=kadov-p><p class="whs6"><a href="presentation.htm" style="font-weight: bold;">Display
- Mode</a> - <span style="font-weight: normal;">allows to select between
- Wireframe, Shading and Nodes presentation.</span></p></li>
-
- <li class=kadov-p><p><a href="display_entity.htm" style="font-weight: bold;">Display Entity</a>
- - allows to display Faces, Edges or both. </p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Colors / Size</B></span>
- - allows to select color and size of meshes.</p></li>
-
- <li class=kadov-p><p><a href="transparency.htm" style="font-weight: bold;">Transparency</a>
- - allows to change the transparency of mesh elements.</p></li>
-
- <li class=kadov-p><p><a href="clipping.htm" style="font-weight: bold;">Clipping</a> - allows
- to create cross-sections of the selected objects.</p></li>
-
- <li class=kadov-p><p><a href="files/about_quality_controls.htm" style="font-weight: bold;">Quality Controls</a>
- - graphically presents various information about meshes.</p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase</B></span>
- - allows to hide the selected mesh from the viewer. </p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Display Only</B></span>
- -allows to display only the selected mesh, hiding all other from the viewer.</p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span>
- - exports an object from the viewer in bmp, png, jpg or jpeg image format.
- </p></li>
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span>
- - allows to redefine the background color. By default it is black. </p></li>
-</ul>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Adding Quadratic Nodes and Elements</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:148px; height:168px; border-style:none; }
-img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nModifying meshes\nAdding quadratic elements");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Adding Quadratic Elements</h1>
-
-<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic
- Elements</B></span>.</p>
-
-<p>Quadratic Edge in not a straight but a broken line and can be defined
- by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic
- Elements</B></span> differ from ordinary ones in that they consist of Quadratic
- Edges.</p>
-
-<p class=TODO
- style="font-family: 'Arial Black', sans-serif; font-style: italic;">To
- add a quadratic element to your mesh:</p>
-
-<p class="whs1">1. Select your mesh in the Object Browser
- or in the 3D viewer.</p>
-
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification
- </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item
- and select one of the following: </p>
-
-<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>
-
-<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic
- Element </B></span>specify the nodes which will form your triangle by selecting
- them in the 3D viewer with pressed Shift button. Their numbers will appear
- in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span>
- (alternatively you can just input numbers in this field without selection).The
- edges formed by the corner nodes will appear in the table. To define the
- middle nodes for each edge double-click on the respective field and input
- the number of the node. All edges and the object formed by them will be
- displayed in the Object browser. When all edges are defined you will be
- able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span>
- button to add the element to the mesh. </p>
-
-<p class="whs1"> <img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>
-
-<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span>
- button for Quadratic Edges switches the first and the last nodes. <span
- style="margin-left: 40px;">For all other elements it reverses the element.
- </span></p>
-
-<p class="whs1"> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Aspect ratio 3D</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:416px; height:385px; border-style:none; }
-img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
-ul.whs3 { list-style:disc; }
-img_whs4 { border:none; width:258px; height:246px; border-style:none; float:left; }
-img_whs5 { border:none; width:133px; height:56px; border-style:none; }
-img_whs6 { border:none; width:425px; height:192px; border-style:none; }
-img_whs7 { border:none; width:89px; height:32px; border-style:none; }
-img_whs8 { border:none; width:569px; height:386px; float:none; border-style:none; }
-p.whs9 { margin-left:40px; }
-img_whs10 { border:none; width:24px; height:26px; border-style:none; }
-p.whs11 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs11 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nAspect ratio 3D");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Aspect ratio 3D</h1>
-
-<p><img src="image86.jpg" width="416px" height="385px" border="0" class="img_whs1"></p>
-
-<p> </p>
-
-<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
- the same parameter as the <a href="files/aspect_ratio.htm">Aspect ratio</a>
- criterion, but it is applied to 3D mesh elements: tetrahedrons, pentahedrons,
- hexahedrons, etc. </p>
-
-<p> </p>
-
-<ul type="disc" class="whs3">
-
- <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
- Ratio</B></span> of a <span style="font-weight: bold;"><B>tetrahedron</B></span>
- 3D element is calculated by the formula:</p></li>
-</ul>
-
-<p> </p>
-
-<p> </p>
-
-<p><img src="image19.gif" width="133px" height="56px" border="0" class="img_whs5">,</p>
-
-<p> </p>
-
-<p>where <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span
- style="font-weight: bold;
- font-style: italic;
- vertical-align: Sub;"><I><B>K</B></I></span> is the sum of surfaces of the faces
- of К and <span style="font-weight: bold; font-style: italic;"><I><B>V</B></I></span><span
- style="vertical-align: Sub;
- font-weight: bold;
- font-style: italic;"><I><B>K</B></I></span> is the volume of К :</p>
-
-<p> </p>
-
-<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs6">T</p>
-
-<p> </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p>Other element types like quadrangle, pentahedron
- and hexahedron use the following formula:</p></li>
-</ul>
-
-<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
- style="vertical-align: Sub;
- font-weight: bold;
- 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
- style="vertical-align: Sub;
- font-weight: bold;
- font-style: italic;"><I><B>k</B></I></span> for all possible simplexes (of the
- same dimension as the element) that compose the element.</p>
-
-<p>For example, a hexahedron is split in 6 tetrahedrons, the <span style="font-weight: bold;"><B>Aspect
- ratio 3D</B></span> is calculated for each of them, then the greatest <span
- style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span style="vertical-align: Sub;
- font-weight: bold;
- font-style: italic;"><I><B>k</B></I></span> is considered to be the <span
- style="font-weight: bold;"><B>Aspect ratio 3D</B></span>
- criterion for the whole hexahedron.</p>
-
-<p><img src="pics/image139.gif" x-maintain-ratio="TRUE" width="569px" height="386px" border="0" class="img_whs8"></p>
-
-<p> </p>
-
-<p class=TODO>To apply the Aspect Ratio 3D quality criterion to your mesh:</p>
-
-<p class=TODO> </p>
-
-<p class="whs9">1. Display your mesh in the viewer.</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">2. Choose <span style="font-weight: bold;"><B>Controls
- > Aspect Ratio 3D </B></span>or click <img src="image144.gif" width="24px" height="26px" border="0" class="img_whs10"> button of the toolbar.
- Your mesh will be displayed in the viewer with its elements colored according
- to the applied mesh quality control criterion:</p>
-
-<p> </p>
-
-<p class="whs11"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of an <span style="font-weight: bold;"><B><a href="quality_controls.htm#bookmark11">Aspect
- Ratio 3D</B></span> quality control</a> operation. </p>
-
-<p> </p>
-
-<p> </p>
-
-<p> </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Borders at multi-connection</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:223px; height:213px; border-style:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs4 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nBorders at multi-connection");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Borders at multi-connection</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces
- consisting of edges belonging to several faces. The amount of faces is
- specified by user.</p>
-
-<p> </p>
-
-<p class="whs2"><img src="image151.gif" width="223px" height="213px" border="0" class="img_whs3"></p>
-
-<p> </p>
-
-<p>In this picture the borders at multi-connection are displayed in blue.</p>
-
-<p> </p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Borders
- at Multi-Connection quality control</a> operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Borders at multiconnection 2D</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-img_whs2 { border:none; width:420px; height:312px; border-style:none; }
-p.whs3 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs3 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nBorders at multi-connection 2D");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Borders at multi-connection 2D</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of elements
- of mesh, consisting of edges belonging to several elements of mesh. </p>
-
-<p> </p>
-
-<p> <img src="image127.gif" width="420px" height="312px" border="0" class="img_whs2"></p>
-
-<p> </p>
-
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of a <a href="quality_controls.htm#bookmark5">Borders
- at Multi-Connection quality control</a> operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Building Compounds</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 { font-family:'Arial Black' , sans-serif; font-style:italic; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:25px; height:24px; border-style:none; }\r
-p.whs4 { margin-left:80px; }\r
-img_whs5 { border:none; width:420px; height:367px; float:none; border-style:none; }\r
-ul.whs6 { list-style:disc; }\r
-p.whs7 { margin-left:80px; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs8 { margin-top:0pt; margin-bottom:0pt; margin-left:120px; }\r
-p.whs9 { margin-left:80px; margin-top:0pt; margin-bottom:0pt; font-weight:bold; }\r
-p.whs10 { margin-top:0pt; margin-bottom:0pt; font-style:italic; margin-left:24px; }\r
-img_whs11 { border:none; width:245px; height:257px; 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.whs7 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs9 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs10 {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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nCreating meshes\nBuilding Compounds");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Building Compounds</h1>\r
-\r
-<p>Compound Mesh is a combination of several meshes.</p>\r
-\r
-<p class="whs1"> To \r
- Build a compound:</p>\r
-\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Mesh</B></span> \r
- menu select <span style="font-weight: bold;"><B>Build Compound</B></span> or \r
- click <img src="image161.gif" width="25px" height="24px" border="0" class="img_whs3"> button in the toolbar. The following dialog box will \r
- appear: </p>\r
-\r
-<p class="whs4"><img src="pics/buildcompound.png" x-maintain-ratio="TRUE" width="420px" height="367px" border="0" class="img_whs5"></p>\r
-\r
-<ul type="disc" class="whs6">\r
- \r
- <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name</B></span> \r
- - allows selecting the name of the resulting <span style="font-weight: bold;"><B>Compound</B></span></p></li>\r
- \r
- <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Meshes \r
- </B></span>- allows selecting the meshes which will be concatenated. They \r
- can be chosen in the Object Browser while holding <span style="font-weight: bold;"><B>Ctrl</B></span> \r
- button.</p></li>\r
- \r
- <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Processing \r
- identical groups</B></span> - allows selecting the method of processing the \r
- namesake existing on the united meshes. They can be either </p></li>\r
- \r
- <li class=kadov-p><p class="whs8"><span style="font-weight: bold;"><B>United</B></span> \r
- - all elements of Group1 \r
- on Mesh_1 and \r
- Group1 on Mesh_2 \r
- become the elements of Group1 \r
- on the Compound_Mesh, \r
- or</p></li>\r
- \r
- <li class=kadov-p><p class="whs8"><span style="font-weight: bold;"><B>Renamed</B></span> \r
- - Group1 on \r
- Mesh_1 becomes \r
- Group1_1 and \r
- Group1 on Mesh_2 \r
- becomes Group1_2. \r
- See <span style="font-weight: bold;"><B><a href="grouping_elements.htm">Creating \r
- Groups</a></B></span> for more information about groups. </p></li>\r
- \r
- <li class=kadov-p><p class="whs9"><span style="font-weight: normal;">You \r
- can simply unite meshes or choose to</span> Merge coincident nodes and \r
- elements, <span style="font-weight: normal;">in which case it is possible \r
- to define the</span> Tolerance <span style="font-weight: normal;">for \r
- this operation.</span> </p></li>\r
-</ul>\r
-\r
-<p class="whs10">Example:</p>\r
-\r
-<p class="whs4"><img src="image160.gif" width="245px" height="257px" border="0" class="img_whs11"></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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Clipping</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:332px; height:327px; float:none; border-style:none; }
-p.whs3 { font-weight:bold; margin-left:40px; }
-img_whs4 { border:none; width:326px; height:199px; border-style:none; }
-p.whs5 { font-weight:bold; }
-img_whs6 { border:none; width:329px; height:210px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nViewing meshes\nClipping");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Clipping</h1>
-
-<p>Using this menu you can create cross-section views (clipping planes)
- of your mesh.</p>
-
-<p> </p>
-
-<p>To start, click on the New button. </p>
-
-<p> </p>
-
-<p class="whs1"><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs2"></p>
-
-<p> </p>
-
-<p>Now you can define the parameters of your cross-section: <span style="font-weight: bold;"><B>Orientation</B></span>
- (X-Y, X-Z
- or Y-Z); <span style="font-weight: bold;"><B>Distance </B></span>between the
- opposite extremities of the object,<span style="font-weight: bold;"> <B></B></span>if
- it is set to 0.5 the object is split in two halves; and <span style="font-weight: bold;"><B>Rotation</B></span>
- (in angle degrees) <span style="font-weight: bold;"><B>around X (Y to Z)
- </B></span>and<span style="font-weight: bold;"><B> around Y (X to Z)</B></span>.
- If the <span style="font-weight: bold;"><B>Show preview</B></span> button is
- on, you can see the clipping plane in the <span style="font-weight: bold;"><B>Object
- window. </B></span></p>
-
-<p> </p>
-
-<p class="whs3"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs4"></p>
-
-<p class="whs5"> </p>
-
-<p class="whs5"><span style="font-weight: normal;">If the</span>
- Auto Apply<span style="font-weight: normal;"> button is on, you can preview
- the cross-section in the</span> Object window</p>
-
-<p class="whs5"> </p>
-
-<p class="whs3"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs6"></p>
-
-<p class="whs5"> </p>
-
-<p class="whs5"><span style="font-weight: normal;">To get
- a new object from </span>Clipping, <span style="font-weight: normal;">click</span>
- Ok. </p>
-
-<p class="whs5"> </p>
-
-<p class="whs5"> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Constructing Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs4 { font-family:'Lucida Console' , monospace; margin-top:0px; margin-bottom:0px; }
-p.whs5 { margin-top:0px; margin-bottom:0px; font-family:'Times New Roman' , serif; }
-p.whs6 { margin-top:0px; margin-bottom:0px; }
-p.whs7 { margin-top:0px; margin-bottom:0px; font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nCreating Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Creating Meshes</h1>
-
-<p class="whs1">First of all see <a href="smesh.py_introduction.htm">Example
- of 3d mesh generation</a>, which is an example of good python script style
- for Mesh module. </p>
-
-<p class="whs1">Other examples of python
- scripts will be also updated soon to use smesh package instead of direct
- usage of idl interface. </p>
-
-<h3><a name=bookmark>Construction of a Mesh</a></h3>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = geompy.MakeBox(0.,
- 0., 0., 100., 200., 300.)</p>
-
-<p class="whs2">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs2">tetra = smesh.Mesh(box,
- "MeshBox")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">algo1D = tetra.Segment()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(7)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">algo2D = tetra.Triangle()</p>
-
-<p class="whs2">algo2D.MaxElementArea(800.)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs2">algo3D.MaxElementVolume(900.)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">ret = tetra.Compute()</p>
-
-<p class="whs2">if ret == 0:</p>
-
-<p class="whs2"> print
- "problem when computing the mesh"</p>
-
-<p class="whs2">else:</p>
-
-<p class="whs2"> print
- "mesh computed"</p>
-
-<p class="whs2"> pass
- </p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"> </p>
-
-<h3><a name=bookmark1>Construction of a Submesh</a></h3>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">from
- geompy import *</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a box</p>
-
-<p class="whs4">box = MakeBoxDXDYDZ(10., 10., 10.)</p>
-
-<p class="whs4">addToStudy(box, "Box")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># select one edge of
- the box for definition of a local hypothesis</p>
-
-<p class="whs4">p5 = MakeVertex(5., 0., 0.)</p>
-
-<p class="whs4">EdgeX = GetEdgeNearPoint(box, p5)</p>
-
-<p class="whs4">addToStudyInFather(box, EdgeX, "Edge
- [0,0,0 - 10,0,0]")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a hexahedral
- mesh on the box</p>
-
-<p class="whs4">quadra = smesh.Mesh(box, "Box : quadrangle
- 2D mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a regular
- 1D algorithm for the faces</p>
-
-<p class="whs4">algo1D = quadra.Segment()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># define "NumberOfSegments"
- hypothesis to cut</p>
-
-<p class="whs5"># all the edges in
- a fixed number of segments</p>
-
-<p class="whs4">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a quadrangle
- 2D algorithm for the faces</p>
-
-<p class="whs4">quadra.Quadrangle()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># construct a submesh
- on the edge with a local hypothesis</p>
-
-<p class="whs4">algo_local = quadra.Segment(EdgeX)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># define "Arithmetic1D"
- hypothesis to cut the edge<span style="margin-top: 0px;
- margin-bottom: 0px;
- font-family: 'Times New Roman', serif;">
- in several segments with increasing arithmetic length</span></p>
-
-<p class="whs4">algo_local.Arithmetic1D(1, 4)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># define "Propagation"
- hypothesis that propagates all other hypotheses</p>
-
-<p class="whs5"># on all edges of the
- opposite side in case of quadrangular faces</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">quadra.Compute() </p>
-
-<p class="whs4"> </p>
-
-<h3><a name=bookmark2>Editing of a mesh</a></h3>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">def PrintMeshInfo(theMesh):</p>
-
-<p class="whs4"> aMesh
- = theMesh.GetMesh()</p>
-
-<p class="whs4"> print
- "Information about mesh:"</p>
-
-<p class="whs4"> print
- "Number of nodes :
- ", aMesh.NbNodes()</p>
-
-<p class="whs4"> print
- "Number of edges :
- ", aMesh.NbEdges()</p>
-
-<p class="whs4"> print
- "Number of faces :
- ", aMesh.NbFaces()</p>
-
-<p class="whs4"> print
- "Number of volumes :
- ", aMesh.NbVolumes()</p>
-
-<p class="whs4"> pass</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a box</p>
-
-<p class="whs4">box = geompy.MakeBox(0., 0., 0., 20.,
- 20., 20.)</p>
-
-<p class="whs4">geompy.addToStudy(box, "box")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># select one edge of
- the box for definition of a local hypothesis</p>
-
-<p class="whs4">subShapeList = geompy.SubShapeAll(box,
- geompy.ShapeType["EDGE"])</p>
-
-<p class="whs4">edge = subShapeList[0]</p>
-
-<p class="whs4">name = geompy.SubShapeName(edge, box)</p>
-
-<p class="whs4">geompy.addToStudyInFather(box, edge, name)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh</p>
-
-<p class="whs4">tria = smesh.Mesh(box, "Mesh 2D")</p>
-
-<p class="whs4">algo1D = tria.Segment()</p>
-
-<p class="whs4">hyp1 = algo1D.NumberOfSegments(3)</p>
-
-<p class="whs4">algo2D = tria.Triangle()</p>
-
-<p class="whs4">hyp2 = algo2D.MaxElementArea(10.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a sub-mesh</p>
-
-<p class="whs4">algo_local = tria.Segment(edge)</p>
-
-<p class="whs4">hyp3 = algo_local.Arithmetic1D(1, 6)</p>
-
-<p class="whs4">hyp4 = algo_local.Propagation()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria.Compute()</p>
-
-<p class="whs4">PrintMeshInfo(tria)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># remove a local hypothesis</p>
-
-<p class="whs4">mesh = tria.GetMesh()</p>
-
-<p class="whs4">mesh.RemoveHypothesis(edge, hyp4)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria.Compute()</p>
-
-<p class="whs4">PrintMeshInfo(tria)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># change the value
- of the 2D hypothesis</p>
-
-<p class="whs4">hyp2.SetMaxElementArea(2.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria.Compute()</p>
-
-<p class="whs4">PrintMeshInfo(tria) </p>
-
-<p class="whs6"> </p>
-
-<h3><a name=bookmark3>Export of a Mesh</a></h3>
-
-<p class="whs7">import geompy</p>
-
-<p class="whs7">import smesh</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a box</p>
-
-<p class="whs7">box = geompy.MakeBox(0.,
- 0., 0., 100., 200., 300.)</p>
-
-<p class="whs7">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a mesh</p>
-
-<p class="whs7">tetra = smesh.Mesh(box,
- "MeshBox")</p>
-
-<p class="whs6"> </p>
-
-<p class="whs7">algo1D = tetra.Segment()</p>
-
-<p class="whs7">algo1D.NumberOfSegments(7)</p>
-
-<p class="whs7"> </p>
-
-<p class="whs7">algo2D = tetra.Triangle()</p>
-
-<p class="whs7">algo2D.MaxElementArea(800.)</p>
-
-<p class="whs7"> </p>
-
-<p class="whs7">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs7">algo3D.MaxElementVolume(900.)</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs7">tetra.Compute()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># export the mesh in a
- MED file</p>
-
-<p class="whs7">tetra.ExportMED("/tmp/meshMED.med",
- 0) </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="JavaScript">
-<!--
-
-var gArrayCsh = new Array();
-
-var gstrWindowOption = "";
-var gstrURL = "";
-var gbWithNavPane = false;
-
-function CshEntityItem(strAliasId, nTopicNum, strUrl)
-{
- this.strAliasId = strAliasId;
- this.nTopicNum = nTopicNum;
- this.strUrl = strUrl;
-}
-
-
-//Try to get to topic number from hash string
-function GetTopicNumberAuto(strMayBeNumber)
-{
- var nNum = -1;
- if (strMayBeNumber.length >= 1)
- {
- var strTmp = strMayBeNumber;
- var iEnd = strTmp.length;
- for (var i=0; i<iEnd; i++)
- {
- var ch = strTmp.charAt(i);
- if (!((ch == "0") || (ch == "1") ||
- (ch == "2") || (ch == "3") ||
- (ch == "4") || (ch == "5") ||
- (ch == "6") || (ch == "7") ||
- (ch == "8") || (ch == "9")))
- return GetTopicNumberById(strTmp);
- }
- nNum = parseInt(strTmp);
- }
- return nNum;
-}
-
-function GetTopicNumber(strHashString)
-{
- var nTopicEndPos = strHashString.indexOf(',')
- if (nTopicEndPos == -1) { // no window option.
- return GetTopicNumberOnly(strHashString);
- }
- else {
- var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
- var strWithNavPane = 'withnavpane=true';
- if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
- {
- if (strWindowOption.length > strWithNavPane.length)
- gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
- else
- gstrWindowOption = "";
- gbWithNavPane = true;
- }
- else
- gstrWindowOption = strWindowOption;
- return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));
- }
-}
-
-function GetTopicNumberOnly(strTopicString)
-{
- var nEqualPos = strTopicString.indexOf('=');
- if (nEqualPos == -1) {
- return GetTopicNumberAuto(strTopicString);
- }
- else {
- var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
- if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
- return parseInt(strValue);
- } else if (strTopicString.toLowerCase().indexOf("context") == 0) {
- return GetTopicNumberById(strValue);
- } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
- gstrURL = strValue;
- return -1;
- }
-
- }
-}
-
-//Find HomePage of the WebHelp system
-// we try to get the topic from remote project if it exists.
-function RedirectToHomePage()
-{
- if (parent && parent != this && parent.goNext)
- {
- var sHome = parent.goNext();
- if (sHome != "")
- RedirectTo(sHome);
- }
-}
-
-function getHomePage()
-{
- if (parent && parent != this && parent.getRelHomePage)
- {
- return parent.getRelHomePage(document.location.href);
- }
- return "";
-}
-
-function addRemoteProject(strPath)
-{
- if (parent && parent != this && parent.addProject)
- {
- parent.addProject(strPath);
- }
-}
-
-//Redirect page to...
-function RedirectTo(strUrl)
-{
- if (gstrWindowOption.length != 0) {
- var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
- // close current window and rename the stub window to current window.
- if (wnd)
- wnd.focus();
- if (parent)
- parent.close();
- }
- else {
- parent.document.location.href = strUrl;
- window.focus();
- }
-}
-
-//Prompt the user that we can not find...
-function FailToFind(strMsg)
-{
- RedirectToHomePage();
-}
-
-//Find topic by topic number (defined in h file)
-function FindTopicByTopicNum(nTopicNum)
-{
- var i = 0;
- var iEnd = gArrayCsh.length;
- for (i=0; i<iEnd; i++)
- {
- if (gArrayCsh[i].nTopicNum == nTopicNum)
- {
- var strURL = gArrayCsh[i].strUrl;
- if (gbWithNavPane)
- {
- var strHomePage = getHomePage();
- if (strHomePage.length != 0)
- strURL = strHomePage + strURL;
- }
- RedirectTo(strURL);
- return true;
- }
- }
- FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
- return false;
-}
-
-var oldPrefix = "HelpIdFromHTMLHelp_"
-//Find topic by topic id (alias id defined in ali file)
-function GetTopicNumberById(strTopicId)
-{
- if (strTopicId.indexOf(oldPrefix) == 0)
- {
- strTopicId = strTopicId.substring(oldPrefix.length);
- }
-
- var i = 0;
- var iEnd = gArrayCsh.length;
- for (i=0; i<iEnd; i++)
- {
- if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())
- {
- return gArrayCsh[i].nTopicNum;
- }
- }
- gstrURL = "";
- return -1;
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n, strAliasId, nTopicNum, strUrl)
-{
- gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-
-function getHash()
-{
- if (parent && parent != this)
- return parent.location.hash;
- else
- return "";
-}
-//-->
-</script>
-<script language="javascript">
-<!--
-
-
-//-->
-</script>
-<script language="javascript">
-<!--
-//Find CSH according to hash string after this page
-if (getHash().length > 0)
-{
- // VH 05/16/00 now support
- // TopicID=
- // TopicNumber=
- // RemoteURL=
- // and WindowsOptions
- // with the format #a=xxx,b=xxx,c=xxx...
- var strHashString = getHash().toString();
- // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it.
- // so here need to change it back.
- strHashString = strHashString.substring(1,strHashString.length);
- strHashString = strHashString.replace("%072%057%057", "://");
- var nTopicNum = GetTopicNumber(strHashString);
-
- if (nTopicNum != -1)
- {
- FindTopicByTopicNum(nTopicNum);
- }
- else
- {
- if (gstrURL.length > 0)
- RedirectTo(gstrURL);
- else
- RedirectToHomePage();
- }
-}
-else
-{
- RedirectToHomePage();
-}
-//-->
-</script>
-<noscript>
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
-</noscript>
-</body>
-</html>
-
-
-
-
-
-
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="JavaScript">
-<!--
-
-var gArrayCsh = new Array();
-
-var gstrWindowOption = "";
-var gstrURL = "";
-var gbWithNavPane = false;
-
-function CshEntityItem(strAliasId, nTopicNum, strUrl)
-{
- this.strAliasId = strAliasId;
- this.nTopicNum = nTopicNum;
- this.strUrl = strUrl;
-}
-
-
-//Try to get to topic number from hash string
-function GetTopicNumberAuto(strMayBeNumber)
-{
- var nNum = -1;
- if (strMayBeNumber.length >= 1)
- {
- var strTmp = strMayBeNumber;
- var iEnd = strTmp.length;
- for (var i=0; i<iEnd; i++)
- {
- var ch = strTmp.charAt(i);
- if (!((ch == "0") || (ch == "1") ||
- (ch == "2") || (ch == "3") ||
- (ch == "4") || (ch == "5") ||
- (ch == "6") || (ch == "7") ||
- (ch == "8") || (ch == "9")))
- return GetTopicNumberById(strTmp);
- }
- nNum = parseInt(strTmp);
- }
- return nNum;
-}
-
-function GetTopicNumber(strHashString)
-{
- var nTopicEndPos = strHashString.indexOf(',')
- if (nTopicEndPos == -1) { // no window option.
- return GetTopicNumberOnly(strHashString);
- }
- else {
- var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
- var strWithNavPane = 'withnavpane=true';
- if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
- {
- if (strWindowOption.length > strWithNavPane.length)
- gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
- else
- gstrWindowOption = "";
- gbWithNavPane = true;
- }
- else
- gstrWindowOption = strWindowOption;
- return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));
- }
-}
-
-function GetTopicNumberOnly(strTopicString)
-{
- var nEqualPos = strTopicString.indexOf('=');
- if (nEqualPos == -1) {
- return GetTopicNumberAuto(strTopicString);
- }
- else {
- var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
- if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
- return parseInt(strValue);
- } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {
- return GetTopicNumberById(strValue);
- } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
- gstrURL = strValue;
- return -1;
- }
-
- }
-}
-
-//Find HomePage of the WebHelp system
-// we try to get the topic from remote project if it exists.
-function RedirectToHomePage()
-{
- if (parent && parent != this && parent.goNext)
- {
- var sHome = parent.goNext();
- if (sHome != "")
- RedirectTo(sHome);
- }
-}
-
-function getHomePage()
-{
- if (parent && parent != this && parent.getRelHomePage)
- {
- return parent.getRelHomePage(document.location.href);
- }
- return "";
-}
-
-function addRemoteProject(strPath)
-{
- if (parent && parent != this && parent.addProject)
- {
- parent.addProject(strPath);
- }
-}
-
-//Redirect page to...
-function RedirectTo(strUrl)
-{
- if (gstrWindowOption.length != 0) {
- var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
- // close current window and rename the stub window to current window.
- wnd.focus();
- if (parent)
- parent.close();
- }
- else {
- parent.document.location.href = strUrl;
- window.focus();
- }
-}
-
-//Prompt the user that we can not find...
-function FailToFind(strMsg)
-{
- RedirectToHomePage();
-}
-
-//Find topic by topic number (defined in h file)
-function FindTopicByTopicNum(nTopicNum)
-{
- var i = 0;
- var iEnd = gArrayCsh.length;
- for (i=0; i<iEnd; i++)
- {
- if (gArrayCsh[i].nTopicNum == nTopicNum)
- {
- var strURL = gArrayCsh[i].strUrl;
- if (gbWithNavPane)
- {
- var strHomePage = getHomePage();
- if (strHomePage.length != 0)
- strURL = strHomePage + strURL;
- }
- RedirectTo(strURL);
- return true;
- }
- }
- FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
- return false;
-}
-
-//Find topic by topic id (alias id defined in ali file)
-function GetTopicNumberById(strTopicId)
-{
- var i = 0;
- var iEnd = gArrayCsh.length;
- for (i=0; i<iEnd; i++)
- {
- if (gArrayCsh[i].strAliasId == strTopicId)
- {
- return gArrayCsh[i].nTopicNum;
- }
- }
- gstrURL = "";
- return -1;
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n, strAliasId, nTopicNum, strUrl)
-{
- gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-
-function getHash()
-{
- if (parent && parent != this)
- return parent.location.hash;
- else
- return "";
-}
-//-->
-</script>
-<script language="javascript">
-<!--
-
-
-//-->
-</script>
-<script language="javascript">
-<!--
-//Find CSH according to hash string after this page
-if (getHash().length > 0)
-{
- // VH 05/16/00 now support
- // TopicID=
- // TopicNumber=
- // RemoteURL=
- // and WindowsOptions
- // with the format #a=xxx,b=xxx,c=xxx...
- var strHashString = getHash().toString();
- // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it.
- // so here need to change it back.
- strHashString = strHashString.substring(1,strHashString.length);
- strHashString = strHashString.replace("%072%057%057", "://");
- var nTopicNum = GetTopicNumber(strHashString);
-
- if (nTopicNum != -1)
- {
- FindTopicByTopicNum(nTopicNum);
- }
- else
- {
- if (gstrURL.length > 0)
- RedirectTo(gstrURL);
- else
- RedirectToHomePage();
- }
-}
-else
-{
- RedirectToHomePage();
-}
-//-->
-</script>
-<noscript>
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
-</noscript>
-</body>
-</html>
-
-
-
-
-
-
+++ /dev/null
-BODY {
- background-color:#ffffff;
- font-family:"Times New Roman" , serif; }
-H1 {
- font-weight:bold;
- font-size:24.0pt; }
-LI.kadov-H1 {
- font-weight:bold;
- font-size:24.0pt; }
-H2 {
- font-weight:bold;
- font-size:18.0pt; }
-LI.kadov-H2 {
- font-weight:bold;
- font-size:18.0pt; }
-H3 {
- font-weight:bold;
- font-size:14.0pt; }
-LI.kadov-H3 {
- font-weight:bold;
- font-size:14.0pt; }
-H4 {
- font-weight:bold;
- font-size:12.0pt; }
-LI.kadov-H4 {
- font-weight:bold;
- font-size:12.0pt; }
-H5 {
- font-weight:bold;
- font-size:10.0pt; }
-LI.kadov-H5 {
- font-weight:bold;
- font-size:10.0pt; }
-H6 {
- font-weight:bold;
- font-size:8.0pt; }
-LI.kadov-H6 {
- font-weight:bold;
- font-size:8.0pt; }
-P {
- font-size:12.0pt;
- margin-top:0pt;
- margin-bottom:0pt; }
-LI.kadov-P {
- font-size:12.0pt; }
-A.expandspot {
- color:#008000;
- cursor:hand;
- font-style:italic;
- x-text-underline:off;
- x-text-overline:off;
- x-text-line-through:off;
- text-decoration:none none none; }
-SPAN.expandtext {
- font-style:italic;
- font-weight:normal;
- color:#ff0000; }
-A.dropspot {
- cursor:hand;
- color:#008000;
- font-style:italic;
- x-text-underline:off;
- x-text-overline:off;
- x-text-line-through:off;
- text-decoration:none none none; }
-A.glossterm {
- color:#800000;
- cursor:hand;
- font-style:italic;
- x-text-underline:off;
- x-text-overline:off;
- x-text-line-through:off;
- text-decoration:none none none; }
-SPAN.glosstext {
- font-style:italic;
- font-weight:normal;
- color:#0000ff; }
-OL {
- margin-top:0px;
- margin-bottom:0px; }
-UL {
- margin-top:0px;
- margin-bottom:0px; }
-A:active { }
-A:hover {
- x-text-underline:Off;
- text-decoration:none; }
-A:link {
- x-text-underline:Off;
- text-decoration:none; }
-A:visited {
- x-text-underline:Off;
- text-decoration:none; }
-P.TODO {
- font-weight:normal;
- font-style:italic;
- font-family:"Arial Black" , sans-serif; }
-LI.kadov-P-CTODO {
- font-weight:normal;
- font-style:italic;
- font-family:"Arial Black" , sans-serif; }
+++ /dev/null
-BODY {
- background-color:#ffffff;
- font-family:"Times New Roman" , serif; }
-H1 {
- font-weight:bold;
- font-size:24.0pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-H1 {
- font-weight:bold;
- font-size:24.0pt; }
-H2 {
- font-weight:bold;
- font-size:18.0pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-H2 {
- font-weight:bold;
- font-size:18.0pt; }
-H3 {
- font-weight:bold;
- font-size:14.0pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-H3 {
- font-weight:bold;
- font-size:14.0pt; }
-H4 {
- font-weight:bold;
- font-size:12.0pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-H4 {
- font-weight:bold;
- font-size:12.0pt; }
-H5 {
- font-weight:bold;
- font-size:10.0pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-H5 {
- font-weight:bold;
- font-size:10.0pt; }
-H6 {
- font-weight:bold;
- font-size:8.0pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-H6 {
- font-weight:bold;
- font-size:8.0pt; }
-P {
- font-size:12.0pt;
- margin-top:1pt;
- margin-bottom:1pt;
- font-family:"Times New Roman" , serif; }
-LI.kadov-P {
- font-size:12.0pt; }
-A.expandspot {
- color:#008000;
- cursor:hand;
- font-style:italic;
- x-text-underline:off;
- x-text-overline:off;
- x-text-line-through:off;
- text-decoration:none none none; }
-SPAN.expandtext {
- font-style:italic;
- font-weight:normal;
- color:#ff0000; }
-A.dropspot {
- cursor:hand;
- color:#008000;
- font-style:italic;
- x-text-underline:off;
- x-text-overline:off;
- x-text-line-through:off;
- text-decoration:none none none; }
-A.glossterm {
- color:#800000;
- cursor:hand;
- font-style:italic;
- x-text-underline:off;
- x-text-overline:off;
- x-text-line-through:off;
- text-decoration:none none none; }
-SPAN.glosstext {
- font-style:italic;
- font-weight:normal;
- color:#0000ff; }
-OL {
- margin-top:0px;
- margin-bottom:0px;
- font-family:"Times New Roman" , serif; }
-UL {
- margin-top:0px;
- margin-bottom:0px;
- font-family:"Times New Roman" , serif; }
-A:active { }
-A:hover {
- x-text-underline:Off;
- text-decoration:none; }
-A:link {
- x-text-underline:Off;
- text-decoration:none; }
-A:visited {
- x-text-underline:Off;
- text-decoration:none; }
-P.TODO {
- font-weight:normal;
- font-style:italic;
- font-family:"Arial Black" , sans-serif; }
-LI.kadov-P-CTODO {
- font-weight:normal;
- font-style:italic;
- font-family:"Arial Black" , sans-serif; }
-ol ol {
- margin-top:1px; }
-ol ul {
- margin-top:1px; }
-ul ul {
- margin-top:1px; }
-ul ol {
- margin-top:1px; }
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Defining hypotheses TUI</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
-<!--
-P { margin-top:0pt; margin-bottom:0pt; }
-LI.kadov-P { }
--->
-</style><style type="text/css">
-<!--
-p.whs1 { font-weight:bold; }
-p.whs2 { font-family:'Lucida Console' , monospace; }
-p.whs3 { font-family:'Times New Roman' , serif; }
-p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs6 { margin-top:0pt; margin-bottom:0pt; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nDefining Hypotheses");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Defining Hypotheses and Algorithms</h1>
-
-<h3>Defining 1D Hypotheses</h3>
-
-<p class="whs1"><a name=bookmark>1D Arithmetic</a></p>
-
-<p> </p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = geompy.MakeBoxDXDYDZ(10.,
- 10., 10.)</p>
-
-<p class="whs2">geompy.addToStudy(box,
- "Box")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a hexahedral
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box,
- "Box : hexahedrical mesh")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a Regular 1D
- algorithm for edges</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "Arithmetic1D"
- hypothesis to cut all edges in several segments with increasing arithmetic
- length </p>
-
-<p class="whs2">algo1D.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a quadrangle
- 2D algorithm for faces</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a hexahedron
- 3D algorithm for solids</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<p class="whs2"> </p>
-
-<h4><a name=bookmark9>Deflection 1D and Number of Segments</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a face from
- arc and straight segment</p>
-
-<p class="whs2">px = geompy.MakeVertex(100.,
- 0. , 0.
- )</p>
-
-<p class="whs2">py = geompy.MakeVertex(0.
- , 100.,
- 0. )</p>
-
-<p class="whs2">pz = geompy.MakeVertex(0.
- , 0. ,
- 100.)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">exy = geompy.MakeEdge(px,
- py)</p>
-
-<p class="whs2">arc = geompy.MakeArc(py,
- pz, px)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">wire = geompy.MakeWire([exy,
- arc])</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">isPlanarFace = 1</p>
-
-<p class="whs2">face1 = geompy.MakeFace(wire,
- isPlanarFace)</p>
-
-<p class="whs2">geompy.addToStudy(face1,"Face1")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># get edges from the
- face</p>
-
-<p class="whs2">e_straight,e_arc =
- geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"])</p>
-
-<p class="whs2">geompy.addToStudyInFather(face1,
- e_arc, "Arc Edge")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create hexahedral mesh</p>
-
-<p class="whs2">hexa = smesh.Mesh(face1,
- "Face : triangle mesh")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "NumberOfSegments"
- hypothesis to cut a straight edge in a fixed number of segments</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(6)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "MaxElementArea"
- hypothesis</p>
-
-<p class="whs2">algo2D = hexa.Triangle()</p>
-
-<p class="whs2">algo2D.MaxElementArea(70.0)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define a local "Deflection1D"
- hypothesis on the arc</p>
-
-<p class="whs2">algo_local = hexa.Segment(e_arc)</p>
-
-<p class="whs2">algo_local.Deflection1D(1.0)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<h4><a name=bookmark2>Start and End Length</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from
- geompy import *</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = MakeBoxDXDYDZ(10.,
- 10., 10.)</p>
-
-<p class="whs2">addToStudy(box, "Box")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># get one edge of the
- box to put local hypothesis on</p>
-
-<p class="whs2">p5 = MakeVertex(5.,
- 0., 0.)</p>
-
-<p class="whs2">EdgeX = GetEdgeNearPoint(box,
- p5)</p>
-
-<p class="whs2">addToStudyInFather(box,
- EdgeX, "Edge [0,0,0 - 10,0,0]")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a hexahedral
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box,
- "Box : hexahedrical mesh")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># set algorithms</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "NumberOfSegments"
- hypothesis to cut an edge in a fixed number of segments</p>
-
-<p class="whs2">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a local hypothesis</p>
-
-<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "StartEndLength"
- hypothesis to cut an edge in several segments with increasing geometric
- length</p>
-
-<p class="whs2">algo_local.StartEndLength(1,
- 6)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "Propagation"
- hypothesis that propagates all other hypothesis</p>
-
-<p class="whs3"># on all edges on the
- opposite side in case of quadrangular faces</p>
-
-<p class="whs2">algo_local.Propagation()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<h4><a name=bookmark3>Average Length</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from
- geompy import *</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = MakeBoxDXDYDZ(10.,
- 10., 10.)</p>
-
-<p class="whs2">addToStudy(box, "Box")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># get one edge of the
- box to put local hypothesis on</p>
-
-<p class="whs2">p5 = MakeVertex(5.,
- 0., 0.)</p>
-
-<p class="whs2">EdgeX = GetEdgeNearPoint(box,
- p5)</p>
-
-<p class="whs2">addToStudyInFather(box,
- EdgeX, "Edge [0,0,0 - 10,0,0]")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a hexahedral
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box,
- "Box : hexahedrical mesh")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># set algorithms</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "NumberOfSegments"
- hypothesis to cut all edges in a fixed number of segments</p>
-
-<p class="whs2">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a sub-mesh</p>
-
-<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "LocalLength"
- hypothesis to cut an edge in several segments with the same length</p>
-
-<p class="whs2">algo_local.LocalLength(2.)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "Propagation"
- hypothesis that propagates all other hypothesis</p>
-
-<p class="whs3"># on all edges on the
- opposite side in case of quadrangular faces</p>
-
-<p class="whs2">algo_local.Propagation()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<h3>Defining 2D and 3D hypotheses</h3>
-
-<h4><a name=bookmark4>Maximum Element Area</a></h4>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">import salome </p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a face</p>
-
-<p class="whs4">px =
- geompy.MakeVertex(100., 0. ,
- 0. )</p>
-
-<p class="whs4">py =
- geompy.MakeVertex(0. ,
- 100., 0. )</p>
-
-<p class="whs4">pz =
- geompy.MakeVertex(0. ,
- 0. , 100.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">vxy = geompy.MakeVector(px,
- py)</p>
-
-<p class="whs4">arc = geompy.MakeArc(py,
- pz, px)</p>
-
-<p class="whs4">wire = geompy.MakeWire([vxy,
- arc])</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">isPlanarFace = 1</p>
-
-<p class="whs4">face = geompy.MakeFace(wire,
- isPlanarFace)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># add the face in the
- study</p>
-
-<p class="whs4">id_face = geompy.addToStudy(face,
- "Face to be meshed")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh</p>
-
-<p class="whs4">tria_mesh = smesh.Mesh(face,
- "Face : triangulation")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># define 1D meshing:</p>
-
-<p class="whs4">algo = tria_mesh.Segment()</p>
-
-<p class="whs4">algo.NumberOfSegments(20)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># define 2D meshing:</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5"># assign triangulation
- algorithm</p>
-
-<p class="whs4">algo = tria_mesh.Triangle()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># apply "Max Element
- Area" hypothesis to each triangle</p>
-
-<p class="whs4">algo.MaxElementArea(100)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria_mesh.Compute()
- </p>
-
-<p class="whs4"> </p>
-
-<h4><a name=bookmark5>Maximum Element Volume</a></h4>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a cylinder</p>
-
-<p class="whs4">cyl = geompy.MakeCylinderRH(30.,
- 50.)</p>
-
-<p class="whs4">geompy.addToStudy(cyl,
- "cyl")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh on
- the cylinder</p>
-
-<p class="whs4">tetra = smesh.Mesh(cyl,
- "Cylinder : tetrahedrical mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># assign algorithms</p>
-
-<p class="whs4">algo1D = tetra.Segment()</p>
-
-<p class="whs4">algo2D = tetra.Triangle()</p>
-
-<p class="whs4">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># assign 1D and 2D
- hypotheses</p>
-
-<p class="whs4">algo1D.NumberOfSegments(7)</p>
-
-<p class="whs4">algo2D.MaxElementArea(150.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># assign Max Element
- Volume hypothesis</p>
-
-<p class="whs4">algo3D.MaxElementVolume(200.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">ret = tetra.Compute()</p>
-
-<p class="whs4">if ret == 0:</p>
-
-<p class="whs4"> print
- "probleme when computing the mesh"</p>
-
-<p class="whs4">else:</p>
-
-<p class="whs4"> print
- "Computation succeded" </p>
-
-<h4><a name=bookmark6>Length from Edges</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create sketchers</p>
-
-<p class="whs2">sketcher1 = geompy.MakeSketcher("Sketcher:F
- 0 0:TT 70 0:TT 70 70:TT 0 70:WW")</p>
-
-<p class="whs2">sketcher2 = geompy.MakeSketcher("Sketcher:F
- 20 20:TT 50 20:TT 50 50:TT 20 50:WW")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a face from
- two wires</p>
-
-<p class="whs2">isPlanarFace = 1</p>
-
-<p class="whs2">face1 = geompy.MakeFaces([sketcher1,
- sketcher2], isPlanarFace)</p>
-
-<p class="whs2">geompy.addToStudy(face1,
- "Face1")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs2">tria = smesh.Mesh(face1,
- "Face : triangle 2D mesh")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># Define 1D meshing</p>
-
-<p class="whs2">algo1D = tria.Segment()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(2)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create and assign the
- algorithm for 2D meshing with triangles</p>
-
-<p class="whs2">algo2D = tria.Triangle()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create and assign "LengthFromEdges"
- hypothesis to build triangles<span style="font-family: 'Times New Roman', serif;">
- based on the length of the edges taken from the wire</span></p>
-
-<p class="whs2">algo2D.LengthFromEdges()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">tria.Compute() </p>
-
-<p class="whs2"> </p>
-
-<h3>Defining Additional Hypotheses</h3>
-
-<h4><a name=bookmark7>Propagation</a></h4>
-
-<p class="whs2">from geompy import
- *</p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = MakeBoxDXDYDZ(10.,
- 10., 10.)</p>
-
-<p class="whs2">addToStudy(box, "Box")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># get one edge of the
- box to put local hypothesis on</p>
-
-<p class="whs2">p5 = MakeVertex(5.,
- 0., 0.)</p>
-
-<p class="whs2">EdgeX = GetEdgeNearPoint(box,
- p5)</p>
-
-<p class="whs2">addToStudyInFather(box,
- EdgeX, "Edge [0,0,0 - 10,0,0]")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a hexahedral
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box,
- "Box : hexahedrical mesh")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># set global algorithms
- and hypotheses</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># create a sub-mesh with
- local 1D hypothesis and propagation</p>
-
-<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "Arithmetic1D"
- hypothesis to cut an edge in several segments with increasing length</p>
-
-<p class="whs2">algo_local.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># define "Propagation"
- hypothesis that propagates all other 1D hypotheses</p>
-
-<p class="whs3"># from all edges on the
- opposite side of a face in case of quadrangular faces</p>
-
-<p class="whs2">algo_local.Propagation()</p>
-
-<p class="whs2"> </p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">hexa.Compute()</span>
- </p>
-
-<h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a box</p>
-
-<p class="whs4">box = geompy.MakeBoxDXDYDZ(10.,
- 10., 10.)</p>
-
-<p class="whs4">geompy.addToStudy(box,
- "Box")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs6"># 1. Create a hexahedral
- mesh on the box</p>
-
-<p class="whs4">hexa = smesh.Mesh(box,
- "Box : hexahedrical mesh")</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a Regular 1D algorithm
- for edges</p>
-
-<p class="whs4">algo1D = hexa.Segment()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a quadrangle 2D
- algorithm for faces</p>
-
-<p class="whs4">algo2D = hexa.Quadrangle()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a hexahedron 3D
- algorithm for solids</p>
-
-<p class="whs4">algo3D = hexa.Hexahedron()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># define hypotheses</p>
-
-<p class="whs4">algo1D.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs4">hexa.Compute()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># 2. Create a tetrahedral
- mesh on the box</p>
-
-<p class="whs4">tetra = smesh.Mesh(box,
- "Box : tetrahedrical mesh")</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a Regular 1D algorithm
- for edges</p>
-
-<p class="whs4">algo1D = tetra.Segment()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a Mefisto 2D algorithm
- for faces</p>
-
-<p class="whs4">algo2D = tetra.Triangle()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a Netgen 3D algorithm
- for solids</p>
-
-<p class="whs4">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># define hypotheses</p>
-
-<p class="whs4">algo1D.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs4">algo2D.LengthFromEdges()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs4">tetra.Compute()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># 3. Create a tetrahedral
- mesh on the box with NETGEN_2D3D algorithm</p>
-
-<p class="whs4">tetraN = smesh.Mesh(box,
- "Box : tetrahedrical mesh by NETGEN_2D3D")</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># create a Netgen_2D3D
- algorithm for solids</p>
-
-<p class="whs4">algo3D = tetraN.Tetrahedron(smesh.FULL_NETGEN)
- </p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># define hypotheses</p>
-
-<p class="whs4">n23_params = algo3D.Parameters()</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs4">tetraN.Compute()
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Deleting Groups</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; }
-img_whs2 { border:none; width:306px; height:234px; float:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nGrouping elements\nDeleting Groups");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Deleting Groups</h1>
-
-<p class="whs1">To delete a group in the
- <span style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>Mesh
- </B></span><span style="font-family: Arial, sans-serif;">-></span><span
- style="font-weight: bold;"><B> Delete Groups</B></span> and select one or several
- groups you wish to delete in the 3D viewer or in the Object Browser.</p>
-
-<p class="whs1">The selected groups will
- be listed in <span style="font-weight: bold;"><B>Delete groups with contents</B></span>
- menu. Then click Ok button to remove the selected groups and close the
- menu or Apply button to remove them and proceed with the selection. </p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><img src="pics/deletegroups.png" x-maintain-ratio="TRUE" width="306px" height="234px" border="0" class="img_whs2"></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">Please, note that this
- operation <span style="font-weight: bold;"><B>removes groups with their elements</B></span>.
- To delete a group and leave its elements intact, right-click on the group
- in the Object Browser and select <span style="font-weight: bold;"><B>Delete</B></span>
- in the pop-up menu or select the group and choose <span style="font-weight: bold;"><B>Edit
- -> Delete</B></span> in the <span style="font-weight: bold;"><B>Main Menu.</B></span>
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Display Entity</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; font-weight:bold; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; height:285px; width:260px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nViewing meshes\nDisplay Entity");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Display Entity</h1>
-
-<p>In this submenu you can choose to display only volumes, faces or edges
- or combine them. </p>
-
-<p> </p>
-
-<p class="whs1">Only Faces Only
- Edges</p>
-
-<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>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
--- /dev/null
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = "Mesh Module Reference Manual v.@VERSION@"
+OUTPUT_DIRECTORY = ./
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+TAB_SIZE = 5
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT = @srcdir@/input
+FILE_PATTERNS = *.doc
+IMAGE_PATH = @srcdir@/images
+
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = ./
+HTML_HEADER = @srcdir@/static/header.html
+HTML_FOOTER = @srcdir@/static/footer.html
+#HTML_STYLESHEET = @srcdir@/static/doxygen.css
+TOC_EXPAND = YES
+DISABLE_INDEX = NO
+GENERATE_TREEVIEW = YES
+TREEVIEW_WIDTH = 300
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+TAGFILES = smeshpy_doc.tag=./smeshpy_doc
--- /dev/null
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = "Mesh Module Reference Manual v.@VERSION@"
+OUTPUT_DIRECTORY = ./
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = NO
+ALWAYS_DETAILED_SEC = YES
+INLINE_INHERITED_MEMB = YES
+FULL_PATH_NAMES = NO
+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
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = YES
+BUILTIN_STL_SUPPORT = NO
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = NO
+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
+INTERNAL_DOCS = YES
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = NO
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+MAX_INITIALIZER_LINES = 25
+SHOW_USED_FILES = NO
+SHOW_DIRECTORIES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# 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
+EXCLUDE_SYMLINKS = NO
+EXAMPLE_RECURSIVE = NO
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT = @top_srcdir@/src/SMESH_SWIG
+FILE_PATTERNS = smeshDC.py
+IMAGE_PATH = @srcdir@/images
+RECURSIVE = NO
+
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = ./smeshpy_doc
+HTML_HEADER = @srcdir@/static/header.html
+HTML_FOOTER = @srcdir@/static/footer.html
+#HTML_STYLESHEET = @srcdir@/static/doxygen.css
+TOC_EXPAND = YES
+DISABLE_INDEX = YES
+GENERATE_TREEVIEW = NO
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+HIDE_UNDOC_RELATIONS = NO
+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
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+GENERATE_TAGFILE = smeshpy_doc.tag
+++ /dev/null
-<?xml version="1.0"?>
-<!DOCTYPE SYSTEM "ehelpopt.dtd">
-<FILE-OPTIONS FILE-VERSION="2" FILE-KEY="f974c843_2d19_491f_a339_b0affd721669">
-</FILE-OPTIONS>
-<EHELP-OPTIONS FORMAT-VERSION="1.0">
- <OPTIONS ENABLED="NO" EMBEDDED="YES" MAIN-WINDOW-ONLY="NO" COMMUNITY-NOTIFY="NO" FIRST-PAGE="NOT-SET">
- </OPTIONS>
- <BUTTON-LABEL>WebSearch
- </BUTTON-LABEL>
-</EHELP-OPTIONS>
\ No newline at end of file
+++ /dev/null
-// eHelp® Corporation Dynamic HTML JavaScript
-// Copyright© 1998-2003 eHelp® Corporation.All rights reserved.
-// Version=4.82
-
-// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.
-
-//// Segment Begin -- (JavaScript 1.0)
-
-/// Section Begin - General and relative topics(JavaScript 1.0)
-
-//{{HH_SYMBOL_SECTION
-var HH_ChmFilename = "";
-var HH_WindowName = "";
-var HH_GlossaryFont = "";
-var HH_Glossary = "";
-var HH_Avenue = "";
-var HH_ActiveX = false;
-//}}HH_SYMBOL_SECTION
-
-//Begin to support previous generic parameters
-//Get the information about the browser.
-var gstrBsAgent = navigator.userAgent.toLowerCase();
-var gnBsVer = parseInt(navigator.appVersion);
-
-var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1);
-var gbBsKonqueror = (gstrBsAgent.indexOf('konqueror') != -1);
-var gbBsSafari = (gstrBsAgent.indexOf('safari') != -1);
-var gbBsIE = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
-var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
-
-var gbBsMac = (gstrBsAgent.indexOf('mac') != -1);
-var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));
-var gbBsSunOS = (gstrBsAgent.indexOf("sunos") != -1);
-
-var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2));
-var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3));
-
-var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2));
-var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3));
-var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));
-var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));
-
-var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4));
-var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5));
-var gbBsNS7 = false;
-
-var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4));
-var gbBsIE5 = false;
-var gbBsIE55 = false;
-
-var gbBsOpera6 = false;
-var gbBsOpera7 = false;
-
-var gbBsKonqueror3 = false;
-
-
-
-gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;;
-if (gbBsIE)
-{
- if (parseInt(navigator.appVersion) >= 4) {
- gbBsIE4 = true;
- if (gbBsIE4) {
- var nPos = gstrBsAgent.indexOf("msie");
- var strIEversion = gstrBsAgent.substring(nPos + 5);
- var nVersion = parseFloat(strIEversion);
- if (nVersion >= 5)
- gbBsIE5 = true;
- if (nVersion >= 5.5)
- gbBsIE55 = true;
- }
- }
-}
-if (gbBsNS6)
-{
- var nPos=gstrBsAgent.indexOf("gecko");
- if(nPos!=-1)
- {
- var nPos2=gstrBsAgent.indexOf("/", nPos);
- if(nPos2!=-1)
- {
- var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1));
- if (nVersion>=20020823)
- gbBsNS7=true;
- }
- }
-}
-if (gbBsOpera)
-{
- var nPos = gstrBsAgent.indexOf("opera");
- if(nPos!=-1)
- {
- var nVersion = parseFloat(gstrBsAgent.substring(nPos+6));
- if (nVersion >= 6)
- {
- gbBsOpera6=true;
- if (nVersion >=7)
- gbBsOpera7=true;
- }
- }
-}
-if (gbBsKonqueror)
-{
- var nPos = gstrBsAgent.indexOf("konqueror");
- if(nPos!=-1)
- {
- var nVersion = parseFloat(gstrBsAgent.substring(nPos+10));
- if (nVersion >= 3)
- {
- gbBsKonqueror3=true;
- }
- }
-}
-
-function insertAdjacentHTML(obj, where, htmlStr)
-{
- if (gbBsIE || gbBsOpera7)
- {
- obj.insertAdjacentHTML(where, htmlStr);
- }
- else if (gbBsNS6 || gbBsSafari)
- {
- var r = obj.ownerDocument.createRange();
- r.setStartBefore(obj);
- var parsedHTML = r.createContextualFragment(htmlStr);
-
- switch (where){
- case 'beforeBegin':
- obj.parentNode.insertBefore(parsedHTML,obj);
- break;
- case 'afterBegin':
- obj.insertBefore(parsedHTML,obj.firstChild);
- break;
- case 'beforeEnd':
- obj.appendChild(parsedHTML);
- break;
- case 'afterEnd':
- if (obj.nextSibling){
- obj.parentNode.insertBefore(parsedHTML,obj.nextSibling);
- } else {
- obj.parentNode.appendChild(parsedHTML);
- }
- break;
- }
- }
-}
-
-// Utilities functions.
-function BsscHasExtJs()
-{
- if( gbBsIE3Before || gbBsNS3Before)
- return false;
- return true;
-}
-
-// Register event handler
-var gBsOnLoads = new Array(); // An array holds all the onload event handler.
-var gBsOnClicks = new Array(); // An array holds all the onClick event handler.
-var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler.
-var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler.
-var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler.
-
-var gbOrignalOnMouseDown = null;
-
-function BsscRegisterOnLoad(funcHandler)
-{
- var nLength = gBsOnLoads.length;
- gBsOnLoads[nLength] = funcHandler;
-}
-
-function BsscRegisterOnClick(funcHandler)
-{
- var nLength = gBsOnClicks.length;
- gBsOnClicks[nLength] = funcHandler;
-}
-
-function BsscRegisterOnUnLoad(funcHandler)
-{
- var nLength = gBsOnUnLoads.length;
- gBsOnUnLoads[nLength] = funcHandler;
-}
-
-function BsscRegisterOnMouseOver(funcHandler)
-{
- var nLength = gBsOnMouseOvers.length;
- gBsOnMouseOvers[nLength] = funcHandler;
-}
-
-function BsscRegisterOnMouseOut(funcHandler)
-{
- var nLength = gBsOnMouseOuts.length;
- gBsOnMouseOuts[nLength] = funcHandler;
-}
-
-function BsGeneralOnLoad()
-{
- if (!gbBsIE4 && !gbBsNS4)
- return;
-
- // Make everything visible in navigator
- if (gbBsNS4 && !gbBsNS6) {
- // Make some special effects items visible
- for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {
- document.layers[iLayer].visibility = "show";
- document.layers[iLayer].left = 0;
- }
- }
-}
-
-// If resize the netscape browser, need to reload it.
-function BsReDo()
-{
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-// End of the local functions.
-
-// The following functions are used by the html files.
-function BSSCOnLoad()
-{
- if( !BsscHasExtJs() )
- return;
- for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)
- gBsOnLoads[nElement]();
-}
-
-function BSSCOnClick()
-{
- if (!BsscHasExtJs()) return;
-
- for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)
- gBsOnClicks[nElement]();
-}
-
-function BSSCOnUnload()
-{
- if (!BsscHasExtJs()) return;
- for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)
- gBsOnUnLoads[nElement]();
-}
-
-function BSSCOnMouseOver()
-{
- if (!BsscHasExtJs()) return;
- for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)
- gBsOnMouseOvers[nElement]();
-}
-
-function BSSCOnMouseOut()
-{
- if (!BsscHasExtJs()) return;
- for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)
- {
- gBsOnMouseOuts[nElement]();
- }
-}
-// End of invocation of the event handle functions.
-
-// Add the GereralOnLoad to the onload array.
-if (typeof(BsscRegisterOnLoad) != "undefined")
-{
- BsscRegisterOnLoad(BsGeneralOnLoad);
-}
-if (gbBsNS4&&!gbBsNS6) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = BsReDo;
-}
-//End to support previous generic parameters
-
-//Begin to support previous HHActiveX invoking
-function BsHHActivateComponents()
-{
- if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))
- {
- var objBody = getElementsByTag(document,"BODY")[0];
- if( typeof(objBody) == "object" )
- {
- insertAdjacentHTML(objBody, "beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');
- if (HHComponentActivator.object)
- HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);
- }
- }
-}
-
-function BsHHActivXOnLoad()
-{
- if( gbBsIE4 )
- BsHHActivateComponents();
-}
-
-if( typeof(BsscRegisterOnLoad) != "undefined" )
-{
- BsscRegisterOnLoad(BsHHActivXOnLoad);
-}
-//End to support previous HHActiveX invoking
-
-//Begin to support previous relative topics
-//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here
-var gbPopupMenuTimeoutExpired = false;
-var gbInPopupMenu = false;
-var gbPopupMenuTopicList = null;
-var gOlddocumentClick = null;
-
-//////////////////////////////////////////////////////////////////////////////////////////
-//
-// Popup Menu code
-//
-//////////////////////////////////////////////////////////////////////////////////////////
-
-var g_bIsPopupMenuInit = false;
-function _WritePopupMenuLayer()
-{
- if (!g_bIsPopupMenuInit)
- {
- if (gbBsNS4&&!gbBsNS6) {
-//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page...
- document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");
- } else{
- document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
- if (!(gbBsNS4&&!gbBsNS6)) {
- document.write("<STYLE TYPE='text/css'>");
- if (gbBsMac&&gbBsIE4) {
- document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
- document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
- } else {
- document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
- document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
- }
- document.write("</STYLE>");
- }
- }
- g_bIsPopupMenuInit = true;
- }
-}
-
-//Seek for the bsscright frame
-function _SeekFrameByName( cRoot, strName )
-{
- if( cRoot == null ) return null;
- if( cRoot.frames == null ) return null;
- if( cRoot.frames[strName] != null ) return cRoot.frames[strName];
- for (var i=0; i<cRoot.frames.length; i++)
- {
- var cObj = null;
- if (!gbBsNS6)
- cObj = _SeekFrameByName( cRoot.frames(i).document, strName );
- else
- cObj = _SeekFrameByName( cRoot.frames[i], strName );
- if( cObj != null ) return cObj;
- };
- return null;
-}
-function _GetFrameByName( cRoot, strName )
-{
- if( cRoot == null ) return null;
- var cRet = _SeekFrameByName(cRoot, strName);
- if( cRet != null ) return cRet;
- if (cRoot.parent != cRoot)
- return _GetFrameByName( cRoot.parent, strName );
- else
- return null;
-}
-
-var gfn_arguments = null;
-function _PopupMenu_Invoke(fn_arguments)
-{
- gfn_arguments = fn_arguments;
- if (gbBsOpera6&&gbBsMac)
- {
- var wndOldPopupLinks= window.open(document.location.href, "popuplinks");
- wndOldPopupLinks.close();
- setTimeout("_PopupMenu_Invoke_2();",100);
- }
- else
- {
- _PopupMenu_Invoke_2();
- }
-}
-
-function _PopupMenu_Invoke_2()
-{
- var fn_arguments = gfn_arguments;
- gfn_arguments = null;
-
- // Make sure we have reasonable arguments
- var argLen = fn_arguments.length;
- if (argLen < 3) {
- return false;
- }
-
- // Check to see if we only have one target
- var strTarget = "";
- var targetDoc = null;
- if (fn_arguments[1] == '') {
- if (BSSCPopup_IsPopup()) {
- targetDoc = parent;
- strTarget = "TARGET= _parent";
- }
- else
- targetDoc = window.document;
- } else {
- targetDoc = _GetFrameByName( parent, fn_arguments[1] );
-
- strTarget = "TARGET='" + fn_arguments[1] + "'";
- }
-
- if ((!gbBsIE4 && !gbBsNS4 && !gbBsOpera7 && !gbBsKonqueror3 &&!gbBsSafari) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {
-
- var argLen = fn_arguments.length;
-
- // Create the window that the hyperlinks will go into
- var nHeight = argLen * 15;
- var nWidth = 400;
- var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
- strParam += ",height=" + nHeight + ",width=200";
- strParam += ",resizable";
-
- var wndTemp=null;
- // Create a temporary window first to ensure the real popup comes up on top
- if (!gbBsOpera)
- wndTemp = window.open("", "temp", strParam);
-
- // Create the real popup window
- var wndPopupLinks=null;
- if (gbBsOpera&&gbBsMac)
- {
- wndTemp = window.open(document.location.href, "temp", strParam);
- wndPopupLinks= window.open(document.location.href, "popuplinks", strParam);
- }
- else
- wndPopupLinks= window.open("", "popuplinks", strParam);
- wndPopupLinks.document.open("text/html");
-
- // Close the temporary
- if (wndTemp)
- wndTemp.close();
-
- var sHTML="<html><head></head>";
- sHTML+="<body onBlur=\'self.focus();\'>";
- var strParaLine = "";
- for (var i = 0; i < (argLen - 2) / 2; i++) {
- strParaLine = "";
- strParaLine += "<a href=\"javascript:";
- if (gbBsIE) {
- strParaLine += "onBlur=null; ";
- }
- strParaLine += "opener.location=\'";
- strParaLine += fn_arguments[2 * i + 3];
- strParaLine += "\';close();\"";
- strParaLine += strTarget;
-
- strParaLine += ">";
- strParaLine += fn_arguments[2 * i + 2];
- strParaLine += "</a>";
- strParaLine += "<br>";
- sHTML+=strParaLine;
- }
- sHTML+="</body></html>";
- wndPopupLinks.document.write(sHTML);
- wndPopupLinks.document.close();
- window.gbInPopupMenu = true;
- if (!gbBsIE) {
- wndPopupLinks.focus();
- }
- return false;
- }
-
- if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||
- ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {
- // Get the place that we will be putting the topic into
- var strURL = "";
- if (isNaN(fn_arguments[2]) || (gbPopupMenuTopicList == null)) {
- strURL = fn_arguments[3];
- }
- else {
- strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;
- }
-
- if (targetDoc != null) {
- targetDoc.location.href = strURL;
- }
- else {
- if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
- window.open(strURL, fn_arguments[1]);
- else
- window.open(strURL);
- }
- window.gbInPopupMenu = true;
- return false;
- }
-
- var strMenu = "";
- if (gbBsNS4&&!gbBsNS6) {
- strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';
- } else {
- strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
- if (gbBsMac) {
- strMenu += ' CELLPADDING=4';
- } else {
- strMenu += ' CELLPADDING=2';
- }
- strMenu += ' BGCOLOR=#c0c0c0>';
- }
- // Add each of the items
- var i = 2;
- while (i <= argLen - 1) {
- strMenu += '<TR><TD><NOBR>'
- // If the destination is a number then look it up in the topic list
- if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
- strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;
- } else {
- strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;
- }
- strMenu += ' onclick="PopupMenu_HandleClick(event);"';
- strMenu += ' onmouseover="PopupMenu_Over(event);"';
- strMenu += ' onmouseout="PopupMenu_Out(event);"';
- strMenu += '>';
- if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
- strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
- } else {
- strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';
- }
- strMenu += '</A></DIV></NOBR></TD></TR>';
-
- if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
- i += 2;
- } else {
- i += 1;
- }
- }
- strMenu += "</TABLE>";
-
- if (gbBsMac) {
- // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.
- strMenu +="<TABLE></TABLE>";
- }
-
- var layerPopup = null;
- var stylePopup = null;
- var nEventX = 0;
- var nEventY = 0;
- var nWindowWidth = 0;
- if (gbBsIE4 || gbBsOpera7) {
-
- layerPopup = getElement("PopupMenu");
- layerPopup.innerHTML = strMenu;
- stylePopup = layerPopup.style;
-
- _BSPSGetClientSize();
-
- // Get the position of the item causing the event (relative to its parent)
- nEventX = window.event.clientX;
- nEventY = window.event.clientY;
-
- if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
- nEventY += document.body.scrollTop + 10;
- } else {
- nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
- }
- stylePopup.top = nEventY;
-
- var nPopupWidth = layerPopup.scrollWidth;
- if (gbBsMac) {
- nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.
- }
- if (nEventX + nPopupWidth + 20 > gBsClientWidth) {
- if (gBsClientWidth - nPopupWidth < 5) {
- stylePopup.left = 5;
- } else {
- stylePopup.left = gBsClientWidth - nPopupWidth - 5;
- }
- } else {
- stylePopup.left = nEventX + document.body.scrollLeft + 20;
- }
-
- stylePopup.visibility = "visible";
- if (!gOlddocumentClick && document.onclick)
- gOlddocumentClick = document.onclick;
- document.onclick = PopupMenu_HandleClick;
-
- } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) {
- layerPopup = getElement("PopupMenu");
- layerPopup.style.visibility = "hidden";
-
- if (gbBsNS6)
- {
- var e = fn_arguments[0];
- nEventX = e.pageX;
- nEventY = e.pageY;
- }
- else
- {
- nEventX = window.event.clientX;
- nEventY = window.event.clientY;
- }
- _BSPSGetClientSize();
- layerPopup.innerHTML = strMenu;
-
- if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) {
- nEventY += 20;
- } else {
- nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
- }
-
- if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
- if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
- nEventX = 5;
- } else {
- nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
- }
- } else {
- nEventX += 20;
- }
- layerPopup.style.top = nEventY;
- layerPopup.style.left = nEventX;
- // set again to avoid the stupid frash in netscape 6.
- layerPopup.innerHTML = strMenu;
- layerPopup.style.visibility = "visible";
- //window.captureEvents(Event.MOUSEDOWN);
- if (!gOlddocumentClick && document.onclick)
- gOlddocumentClick = document.onclick;
- window.onclick = PopupMenu_HandleClick;
- }
- else if (gbBsNS4) {
- layerPopup = document.layers.PopupMenu;
- layerPopup.visibility = "hide";
- stylePopup = layerPopup.document;
- stylePopup.write(strMenu);
- stylePopup.close();
- var e = fn_arguments[0];
- nEventX = e.pageX;
- nEventY = e.pageY;
- _BSPSGetClientSize();
- if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {
- nEventY += 20;
- } else {
- nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;
- }
- layerPopup.top = nEventY;
-
- if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {
- if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {
- nEventX = 5;
- } else {
- nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;
- }
- } else {
- nEventX += 20;
- }
-
- layerPopup.left = nEventX;
-
- layerPopup.visibility = "show";
-
- window.captureEvents(Event.MOUSEDOWN);
- if (!gOlddocumentClick && document.onmousedown)
- gOlddocumentClick = document.onmousedown;
- window.onmousedown = PopupMenu_HandleClick;
- }
-
- window.gbInPopupMenu = true;
- window.gbPopupMenuTimeoutExpired = false;
- setTimeout("PopupMenu_Timeout();", 100);
- return false;
-}
-
-function PopupMenu_Timeout()
-{
- window.gbPopupMenuTimeoutExpired = true;
-}
-
-function PopupMenu_Over(e)
-{
- if (gbBsIE4||gbBsOpera7)
- e.srcElement.className = "PopupOver";
- else if (gbBsNS6)
- e.target.parentNode.className = "PopupOver";
- return;
-}
-
-function PopupMenu_Out(e)
-{
- if (gbBsIE4||gbBsOpera7)
- e.srcElement.className = "PopupNotOver";
- else if (gbBsNS6)
- e.target.parentNode.className = "PopupNotOver";
- return;
-}
-
-function PopupMenu_HandleClick(e)
-{
- if (window.gbPopupMenuTimeoutExpired) {
- window.gbInPopupMenu = false;
- if (gbBsNS4 && !gbBsNS6) {
- window.releaseEvents(Event.MOUSEDOWN);
- }
-
- var layerPopup = null;
- if (gbBsNS4&&!gbBsNS6) {
- layerPopup = document.layers.PopupMenu;
- layerPopup.visibility = "hide";
- } else {
- layerPopup = getElement("PopupMenu");
- layerPopup.style.visibility = "hidden";
- }
-
- if (gOlddocumentClick)
- {
- if (gbBsNS4 && !gbBsNS6)
- document.onmousedown = gOlddocumentClick;
- else
- document.onclick = gOlddocumentClick;
- }
- }
- return;
-}
-
-function BSSCPopup_ClickMac()
-{
- if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7))
- {
- var bClickOnAnchor = false;
- var el;
- if ((window.event != null) &&
- (window.event.srcElement != null))
- {
- el = window.event.srcElement;
- while (el != null)
- {
- if ((el.tagName == "A") || (el.tagName == "AREA")) {
- bClickOnAnchor = true;
- break;
- }
- if (el.tagName == "BODY") {
- break;
- }
- el = getParentNode(el);
- }
- }
- if (BSSCPopup_IsPopup())
- {
- if (!bClickOnAnchor) {
- parent.window.gPopupWindow = null;
- self.close();
- }
- }
- else
- {
- bClosePopupWindow = true;
- if ((bClickOnAnchor) &&
- (el.href) &&
- ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))
- {
- bClosePopupWindow = false;
- }
- if (bClosePopupWindow)
- {
- if (window.gPopupWindow != null && !window.gPopupWindow.closed )
- {
- window.gPopupWindow.close();
- }
- }
- }
- }
-}
-
-function BsPopupOnClick()
-{
- if (!gbBsIE4 && !gbBsOpera7)
- return;
-
- BSSCPopup_ClickMac();
-}
-
-function _BSSCOnError(message)
-{
- if(-1 != message.indexOf("denied")
- || -1 != message.indexOf("Object required"))
- return true;
-}
-
-//End to support previous relative topics
-
-/// Section End - General and relative topics (JavaScript 1.0)
-
-/// Section Begin - Popup (JavaScript 1.0)
-//Begin to support previous popup functions
-
-//variables used to isolate the browser type
-var gBsStyVisShow = null;
-var gBsStyVisHide = null;
-var gBsClientWidth = 640;
-var gBsClientHeight = 480;
-
-// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.
-var gBRateH_W = 0.618; // 1.618 Golden cut.
-var gBMaxXOfParent = 0.8;
-var gBMaxYOfParent = 0.8;
-var gBscrollHeight = 16;
-var gBscrollWidth = 16;
-var gBpermitXDelta = 3;
-var gBpermitYDelta = 3;
-
-
-var arrayPopupURL = new Array();
-var arrayAbsPopupURL = new Array();
-
-var arrayDirty = new Array();
-
-function setAbsPopupURL(nIndex, strURL)
-{
- arrayAbsPopupURL[nIndex] = strURL;
-}
-
-function getAbsPopupURL(nIndex)
-{
- if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;
- else
- return arrayAbsPopupURL[nIndex];
-}
-
-function getPopupURL(nIndex)
-{
- if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;
- else
- return arrayPopupURL[nIndex];
-}
-
-function getPopupID(nIndex)
-{
- return gstrPopupID + nIndex;
-}
-
-function getPopupShadowID(nIndex)
-{
- return gstrPopupShadowID + nIndex;
-}
-
-function getPopupTopicID(nIndex)
-{
- return gstrPopupTopicID + nIndex;
-}
-
-function getPopupIFrameID(nIndex)
-{
- return gstrPopupIFrameID + nIndex;
-}
-
-function getPopupIFrameName(nIndex)
-{
- return gstrPopupIFrameName + nIndex;
-}
-
-
-function getPopupTopicStyle(nIndex)
-{
- return getElement(getPopupTopicID(nIndex)).style;
-}
-
-function getPopupShadowStyle(nIndex)
-{
- return getElement(getPopupShadowID(nIndex)).style;
-}
-
-function getPopupIFrame(nIndex)
-{
- if (gbBsNS6)
- return eval("window.frames['" + getPopupIFrameName(nIndex) + "']");
- else
- return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");
-}
-
-function getPopupDivStyle(nIndex)
-{
- return getElement(getPopupID(nIndex)).style;
-}
-
-function getPopupIFrameStyle(nIndex)
-{
- return getElement(getPopupIFrameID(nIndex)).style;
-}
-
-
-function findDiv(strURL)
-{
- for (var i = 0; i < arrayPopupURL.length; i ++ ) {
- if (arrayPopupURL[i] == strURL) {
- return i;
- }
- }
- return -1;
-}
-
-var gnToken = -1;
-function takeToken()
-{
- gnToken ++;
- if (gnToken > 10000) gnToken = 0;
- return gnToken;
-}
-
-function IsValidToken(nToken)
-{
- return (gnToken == nToken);
-}
-
-function addDiv(strURL)
-{
- for (var i = 0; i < arrayPopupURL.length; i ++) {
- if (arrayPopupURL[i] == null) {
- arrayPopupURL[i] = strURL;
- return i;
- }
- }
- arrayPopupURL[i] = strURL;
- arrayDirty[i] = true;
- return i;
-}
-
-function setDirty()
-{
- for (var i = 0; i < arrayPopupURL.length; i ++ )
- arrayDirty[i] = true;
-}
-
-function IsDirty(nIndex)
-{
- if (nIndex == -1)
- return true;
- else
- if (arrayDirty.length > nIndex)
- return arrayDirty[nIndex];
- else
- return true;
-}
-
-function hideAll()
-{
- for (var i = 0; i < arrayPopupURL.length; i ++ )
- {
- getPopupDivStyle(i).visibility = gBsStyVisHide;
- getPopupIFrameStyle(i).visibility = gBsStyVisHide;
- }
-}
-
-function getCurrentPopupIFrame()
-{
- for (var i = 0; i < arrayPopupURL.length; i ++)
- if (getPopupDivStyle(i).visibility == gBsStyVisShow)
- return getPopupIFrame(i);
- return null;
-}
-
-function setClear(nIndex)
-{
- if (nIndex != -1)
- arrayDirty[nIndex] = false;
-}
-
-function _BSSCCreatePopupDiv(strURL)
-{
- var nIndex = findDiv(strURL);
- if (nIndex == -1 ) {
- nIndex = addDiv(strURL);
- BsPopup_CreateDiv(nIndex);
- }
- else {
- if (IsDirty(nIndex)) {
- if("object" == typeof(getPopupIFrame(nIndex).document))
- getPopupIFrame(nIndex).document.location.href = strURL;
- }
- }
- return nIndex;
-}
-
-//Here is the browser type
-function _BSPSGetBrowserInfo()
-{
- if (gbBsNS4&&!gbBsNS6)
- {
- gBsStyVisShow = "show";
- gBsStyVisHide = "hide";
- }
- else
- {
- gBsStyVisShow = "visible";
- gBsStyVisHide = "hidden";
- }
-}
-
-_BSPSGetBrowserInfo();
-
-//Get client size info
-function _BSPSGetClientSize()
-{
- if (gbBsNS4||gbBsKonqueror3||gbBsSafari)
- {
- gBsClientWidth = innerWidth;
- gBsClientHeight = innerHeight;
- }
- else if (gbBsIE4 || gbBsOpera7)
- {
- gBsClientWidth = document.body.clientWidth;
- gBsClientHeight = document.body.clientHeight;
- }
-}
-
-var gstrPopupID = 'BSSCPopup';
-var gstrPopupShadowID = 'BSSCPopupShadow';
-var gstrPopupTopicID = 'BSSCPopupTopic';
-var gstrPopupIFrameID = 'BSSCPopupIFrame';
-var gstrPopupIFrameName = 'BSSCPopupIFrameName';
-
-var gstrPopupSecondWindowName = 'BSSCPopup';
-
-var gPopupWindow = null;
-var gnPopupClickX = 0;
-var gnPopupClickY = 0;
-
-var gnPopupScreenClickX = 0;
-var gnPopupScreenClickY = 0;
-
-var gbPopupTimeoutExpired = false;
-
-function DHTMLPopupSupport()
-{
- if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) {
- return true;
- }
- return false;
-}
-
-function BSSCPopup_IsPopup()
-{
- if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {
- return true;
- } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) {
- return true;
- } else {
- return false;
- }
-}
-
-// If there is a hyperlink in a popup window, display the hyperlink in
-// the original window. (bsscright)
-if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) {
- document.write("<base target=\"bsscright\">");
-}
-
-// Local functions.
-function BsPopup_CreateDiv(nIndex)
-{
- if(!DHTMLPopupSupport())
- return;
- // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.
- var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";
- strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0; background-color:#C0C0C0;\"></DIV>";
- strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0; background-color:#FFFFFF;border:1px #000000 outset;\">";
- strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";
- strPopupDiv += "</DIV></DIV>";
-
- var objBody = getElementsByTag(document, "BODY")[0];
- if( typeof(objBody) != "object" )
- return;
-
- insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv);
-}
-
-function handleLoadNS()
-{
- if (this.id)
- {
- var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length));
- BSSCPopup_PostWork(nIndex);
- }
-}
-
-function BSSCPopup_PostWork(nIndex)
-{
- getPopupDivStyle(nIndex).visibility = gBsStyVisShow;
- getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow;
-
- setClear(nIndex);
- window.gbPopupTimeoutExpired = true;
-
- BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);
- if (gbBsNS6)
- getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false);
- else
- getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;
-
- if (!gbOrignalOnMouseDown && document.onmousedown)
- gbOrignalOnMouseDown = document.onmousedown;
-
- if (gbBsNS6)
- document.addEventListener("mousedown", BSSCPopupParentClicked,false);
- else
- document.onmousedown = BSSCPopupParentClicked;
-}
-
-function BSSCPopup_Timeout(nIndex, nToken)
-{
- if (!IsValidToken(nToken)) return;
-
- if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") &&
- (getPopupIFrame(nIndex).document.body != null))) {
- BSSCPopup_PostWork(nIndex);
- } else {
- setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);
- }
-}
-
-// VH 08/10/00
-// do not change target to parent if the href is using javascript
-function BSSCPopup_ChangeTargettoParent(tagsObject)
-{
- var collA = getElementsByTag(tagsObject, "A");
- BSSCPopup_ChangeTargettoParent2(collA);
-
- var collIMG = getElementsByTag(tagsObject,"IMG");
- BSSCPopup_ChangeTargettoParent2(collIMG);
-}
-
-function BSSCPopup_ChangeTargettoParent2(colls)
-{
- if (colls != null) {
- for (var j = 0; j < colls.length; j ++ )
- {
- var strtemp = colls[j].href;
- if (strtemp)
- {
- strtemp = strtemp.toLowerCase();
- if (strtemp.indexOf("javascript:") == -1)
- if (colls[j].target == "")
- colls[j].target = "_parent";
- }
- }
- }
-}
-
-function BSPSPopupTopicWinHelp(strURL)
-{
- _BSSCPopup(strURL);
- return;
-}
-
-function _BSSCPopup(strURL, width, height)
-{
- var cuswidth = 0;
- var cusheight = 0;
- if ("undefined" != typeof(width) && "undefined" != typeof(height)) {
- cuswidth = width;
- cusheight= height;
- }
-
- if (DHTMLPopupSupport()) {
- var nToken = takeToken(); // take token first.
- var nIndex = _BSSCCreatePopupDiv(strURL);
- window.gbPopupTimeoutExpired = false;
- var ntWidth = gBsClientWidth;
- var ntHeight = gBsClientHeight;
- _BSPSGetClientSize();
- if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {
- setDirty();
- }
-
- if (IsDirty(nIndex)) {
- if (gbBsMac) {
- setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400);
- } else {
- setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);
- }
- }
- else {
- MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);
- }
- } else {
- _BSSCPopup2(strURL, cuswidth, cusheight);
- }
- return;
-}
-
-if (gbBsIE55)
-{
- var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;
- var gnBsUnload=0;
- window.onbeforeunload = window_BUnload;
-}
-
-function window_BUnload()
-{
- gnBsUnload++;
- if (gnBsUnload>1)
- return;
- for (var i = 0; i < arrayPopupURL.length; i ++)
- removeThis(document.all(getPopupID(i)));
- arrayPopupURL.length = 0;
- if (ehlpdhtm_fOldBefureUnload)
- ehlpdhtm_fOldBefureUnload();
-}
-
-function _BSSCPopup2(strURL, width, height)
-{
- if (gbBsOpera6&&gbBsMac)
- {
- var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName);
- wmTemp.close();
- setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100);
- }
- else
- _BSSCPopup3(strURL, width, height);
-}
-
-function _BSSCPopup3(strURL, width, height)
-{
- if (window.name == gstrPopupSecondWindowName) {
- window.location = strURL;
- } else {
- if (!gbBsMac || !gbBsNS4) {
- BSSCHidePopupWindow();
- }
- var nX = 0;
- var nY = 0;
- var nHeight = 300;
- var nWidth = 400;
- if (width > 0 && height > 0) {
- nHeight = height;
- nWidth = width;
- }
- _BSPSGetClientSize();
-
- nX = window.gnPopupScreenClickX;
- nY = window.gnPopupScreenClickY;
-
- if (nY + nHeight + 40 > screen.availHeight) {
- nY = screen.availHeight - nHeight - 40;
- }
- if (nX + nWidth + 40 > screen.availWidth) {
- nX = screen.availWidth - nWidth - 40;
- }
-
- // Launch a separate window
- var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";
- if (gbBsNS) {
- if (gbBsNS6) {
- strParam += ",Height=" + nHeight + ",Width=" + nWidth;
- strParam += ",screenX=" + nX + ",screenY=" + nY;
- strParam += ",dependent=yes";
- }
- else {
- strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;
- strParam += ",screenX=" + nX + ",screenY=" + nY;
- strParam += ",dependent=yes";
- }
- }
- else {
- strParam += ",height=" + nHeight + ",width=" + nWidth;
- strParam += ",left=" + nX + ",top=" + nY;
- }
- if (gbBsSafari)
- {
- if (window.gPopupWindow)
- window.gPopupWindow.close();
- window.gPopupWindow = window.open(strURL, "", strParam);
- window.gPopupWindow.name = gstrPopupSecondWindowName;
- window.gPopupWindow.moveTo(nX, nY);
- widnow.gPopupWindow.document.location.reload();
- }
- else
- {
- var wmTemp=null;
- if (gbBsKonqueror3)
- {
- if (window.gPopupWindow)
- window.gPopupWindow.close();
- }
- if (gbBsOpera&&gbBsMac)
- {
- wmTemp= window.open(document.location.href, "Temp", strParam);
- }
- window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);
- if (!gbBsIE)
- window.gPopupWindow.focus();
-
- if (wmTemp)
- wmTemp.close();
- }
-
- if (gbBsNS4)
- setEventHandle();
- else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3)
- setTimeout("setPopupFocus();", 100);
- }
- return;
-}
-
-function setEventHandle()
-{
- window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR);
- window.gPopupWindow.onclick = NonIEPopup_HandleClick;
- window.gPopupWindow.onblur = NonIEPopup_HandleBlur;
-}
-
-function setPopupFocus()
-{
- window.gPopupWindow.focus();
-}
-
-function NonIEPopup_HandleBlur(e)
-{
- window.gPopupWindow.focus();
-}
-
-function NonIEPopup_HandleClick(e)
-{
- // Because navigator will give the event to the handler before the hyperlink, let's
- // first route the event to see if we are clicking on a Popup menu in a popup.
- document.routeEvent(e);
-
- // If a popup menu is active then don't do anything with the click
- if (window.gPopupWindow.gbInPopupMenu) {
- window.gPopupWindow.captureEvents(Event.CLICK);
- window.gPopupWindow.onclick = NonIEPopup_HandleClick;
- return false;
- }
-
- // Close the popup window
- if(e.target.href)
- {
- if(e.target.href.indexOf("javascript:")==-1)
- {
- if (e.target.target=="")
- window.location.href = e.target.href;
- else
- window.open(e.target.href, e.target.target);
- this.close();
- }
- }
- else
- this.close();
- return false;
-}
-
-function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)
-{
- if (!window.getPopupIFrame(nIndex).document) {
- _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);
- return;
- }
-
- if (!IsValidToken(nToken)) return;
-
- if (gbBsNS6)
- {
- setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
- BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
- return;
- }
-
- if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&
- (window.getPopupIFrame(nIndex).document.body != null)) {
- if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.
- window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
- setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
- }
- else
- {
- setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
- BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
- }
- } else {
- setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
- }
-}
-
-function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)
-{
- if (window.gbPopupTimeoutExpired) return;
-
- if (!IsValidToken(nToken)) return;
-
- getPopupDivStyle(nIndex).visibility = gBsStyVisHide;
- getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide;
-
- // Determine the width and height for the window
- _BSPSGetClientSize();
-
- var size = new BSSCSize(0, 0);
-
- if (cuswidth <= 0 || cusheight <= 0)
- BSSCGetContentSize(window.getPopupIFrame(nIndex), size);
- else {
- size.x = cuswidth;
- size.y = cusheight;
- }
-
- // Determine the width and height for the window
- var nWidth = size.x;
- var nHeight = size.y;
-
- // for small popup size, we should allow any size.
- // The popup size should be ok if bigger than 0
- if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong.
-
- getPopupDivStyle(nIndex).width = nWidth;
- getPopupDivStyle(nIndex).height = nHeight;
-
- getPopupShadowStyle(nIndex).width = nWidth;
- getPopupShadowStyle(nIndex).height = nHeight;
- getPopupTopicStyle(nIndex).width = nWidth;
- getPopupTopicStyle(nIndex).height = nHeight;
- if (gbBsIE55)
- {
- getPopupShadowStyle(nIndex).width = nWidth + 2;
- getPopupShadowStyle(nIndex).height = nHeight + 2;
- getPopupTopicStyle(nIndex).width = nWidth + 2;
- getPopupTopicStyle(nIndex).height = nHeight + 2;
- }
-
- getPopupIFrameStyle(nIndex).width = nWidth;
- getPopupIFrameStyle(nIndex).height = nHeight;
- if (gbBsIE55 || gbBsNS6)
- {
- getPopupIFrameStyle(nIndex).top = 0;
- getPopupIFrameStyle(nIndex).left = 0;
- }
-
- var strURL = getPopupURL(nIndex);
- if (strURL.indexOf("#") != -1&&gbBsNS6)
- getPopupIFrame(nIndex).location.reload();
- else if (strURL.indexOf("#") != -1||gbBsNS6)
- getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5.
-
- MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);
-}
-
-function getScrollLeft()
-{
- if (document.body.scrollLeft)
- return document.body.scrollLeft;
- else if (window.pageXOffset)
- return window.pageXOffset;
- else
- return 0;
-}
-
-function getScrollTop()
-{
- if (document.body.scrollTop)
- return document.body.scrollTop;
- else if (window.pageYOffset)
- return window.pageYOffset;
- else
- return 0;
-}
-
-
-function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)
-{
- if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.
- window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
- setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
- return;
- }
-
- // Determine the position of the window
- var nClickX = window.gnPopupClickX;
- var nClickY = window.gnPopupClickY;
- var nTop = 0;
- var nLeft = 0;
-
- var nWidth = parseInt(getPopupDivStyle(nIndex).width);
- var nHeight = parseInt(getPopupDivStyle(nIndex).height);
-
- if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) {
- nTop = nClickY + 10;
- } else {
- nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20;
- }
- if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) {
- nLeft = nClickX;
- } else {
- nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8;
- }
-
- if (nTop < getScrollTop()) nTop = getScrollTop() + 1;
- if (nLeft< getScrollLeft()) nLeft = getScrollLeft() + 1;
-
- getPopupDivStyle(nIndex).left = nLeft;
- getPopupDivStyle(nIndex).top = nTop;
-
- // Set the location of the background blocks
- getPopupShadowStyle(nIndex).left = 6;
- getPopupShadowStyle(nIndex).top = 6;
- if (gbBsIE55)
- {
- getPopupShadowStyle(nIndex).left = 4;
- getPopupShadowStyle(nIndex).top = 4;
- }
-
- if (gbBsMac&&gbBsIE4) {
- // Total hack on the iMac to get the IFrame to position properly
- getPopupIFrameStyle(nIndex).pixelLeft = 100;
- getPopupIFrameStyle(nIndex).pixelLeft = 0;
- // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it
- getPopupIFrame(nIndex).window.BSSCOnLoad();
- }
-
- if (gbBsNS6&&IsDirty(nIndex))
- getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false);
- else
- BSSCPopup_Timeout(nIndex , nToken );
- return;
-}
-
-function BSSCSize(x, y)
-{
- this.x = x;
- this.y = y;
-}
-
-function BSSCGetContentSize(thisWindow, size)
-{
- if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4)
- return;
-
- if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) {
- size.x = 320;
- size.y = 180;
- return;
- }
-
- // Resize the width until it is wide enough to handle the content
- // The trick is to start wide and determine when the scrollHeight changes
- // because then we know a scrollbar is necessary. We can then go back
- // to the next widest size (for no scrollbar)
-
- var ClientRate = gBsClientHeight / gBsClientWidth;
-
-
- var GoldenSize = new BSSCSize(0,0);
- GoldenSize.x = gBsClientWidth * gBMaxXOfParent;
- GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;
-
- if (ClientRate > gBRateH_W) {
- GoldenSize.y = GoldenSize.x * gBRateH_W;
- }
- else {
- GoldenSize.x = GoldenSize.y / gBRateH_W;
- }
-
- // Try to using parent specified max x.
- var x = 0;
- var maxgoldx = GoldenSize.x;
- var maxx = gBsClientWidth * gBMaxXOfParent;
-
- // This double resize causes the document to re-render (and we need it to)
- if (!gbBsIE5)
- thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.
-
- thisWindow.resizeTo(1, 1);
- thisWindow.resizeTo(1, 1);
- thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
- thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
-
- var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
-
- if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can
- {
- thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
- thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
-
- miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
- maxy = gBsClientHeight * gBMaxYOfParent;
-
- if (miny > maxy) { // the popup must have a scroll, OK let it be.
- miny = maxy;
- size.x = maxx;
- size.y = maxy;
- thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.
- }
- else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.
- size.y = miny;
-
- // downsize from maxx , now I try to using binary divide.
- x = maxx;
- deltax = -maxx/2;
- //j = 0;
- while (true) {
- x = x + deltax;
- thisWindow.resizeTo(x, miny);
- thisWindow.resizeTo(x, miny);
- diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;
- if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
- deltax = Math.abs(deltax) /2;
- else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
- deltax = -Math.abs(deltax) /2;
- else
- // the y is close enough to wanted.
- break;
- if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
- break;
- }
- size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
- size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;
- thisWindow.document.body.scroll = 'no';
- }
- }
- else {
- if (thisWindow.document.body.scrollWidth > maxgoldx) {
- size.x = maxx;
- size.y = miny;
- thisWindow.document.body.scroll = 'yes';
- }
- else {
- // downsize from maxgoldx , now I try to using binary divide.
- x = maxgoldx;
- deltax = -maxgoldx/2;
- while (true) {
- x = x + deltax;
- thisWindow.resizeTo(x, miny);
- thisWindow.resizeTo(x, miny);
- diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;
- if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
- deltax = Math.abs(deltax) /2;
- else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
- deltax = -Math.abs(deltax) /2;
- else
- // the y is close enough to wanted.
- break;
- if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
- break;
- }
- size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
- size.y = thisWindow.document.body.scrollHeight ;
- thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.
- thisWindow.resizeTo(size.x, size.y);
- if (thisWindow.document.body.scrollWidth > size.x)
- {
- size.x = thisWindow.document.body.scrollWidth;
- }
- if (thisWindow.document.body.scrollHeight > size.y)
- {
- size.y = thisWindow.document.body.scrollHeight;
- }
- }
- }
- thisWindow.resizeTo(size.x, size.y);
- thisWindow.resizeTo(size.x, size.y);
- return;
-}
-
-function BSSCPopupParentClicked()
-{
- if (!window.gbPopupTimeoutExpired) {
- return false;
- }
-
- document.onmousedown = gbOrignalOnMouseDown;
-
- // Simply hide the popup
- hideAll();
-
- window.gbPopupTimeoutExpired = false;
-
- return true;
-}
-
-function isInsideHyperLink(obj)
-{
- if (obj&&obj!=getParentNode(obj))
- {
- if (obj.tagName=="A"||obj.tagName=="IMG")
- return true;
- else
- return isInsideHyperLink(getParentNode(obj));
- }
- else
- return false;
-}
-
-function BSSCPopupClicked(e)
-{
- if (!window.gbPopupTimeoutExpired) {
- return false;
- }
-
- var popupIFrame = getCurrentPopupIFrame();
- if (popupIFrame == null) {
- return true;
- }
-
- if (gbBsIE4 && (!((popupIFrame.window.event != null) &&
- (popupIFrame.window.event.srcElement != null) &&
- isInsideHyperLink(popupIFrame.window.event.srcElement)))) {
- document.onmousedown = gbOrignalOnMouseDown;
-
- // Simply hide the popup
- hideAll();
- window.gbPopupTimeoutExpired = false;
- return true;
- }
- else if (gbBsNS6 && (!((e != null) &&
- (e.target!= null) && isInsideHyperLink(e.target))))
- {
- document.addEventListener("mousedown", gbOrignalOnMouseDown,false);
- // Simply hide the popup
- hideAll();
- window.gbPopupTimeoutExpired = false;
- return true;
- }
-}
-
-//trace the mouse over's position for hotspot
-function BSPSPopupOnMouseOver(event)
-{
- if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) {
- window.gnPopupClickX = event.clientX + getScrollLeft();
- window.gnPopupClickY = event.clientY + getScrollTop();
- window.gnPopupScreenClickX = event.screenX;
- window.gnPopupScreenClickY = event.screenY;
- } else if (gbBsSafari) {
- window.gnPopupClickX = event.clientX + getScrollLeft();
- window.gnPopupClickY = event.clientY + getScrollTop();
- window.gnPopupScreenClickX = event.screenX + window.screenX;
- window.gnPopupScreenClickY = event.screenY + window.screenY;
- } else if (gbBsNS4) {
- window.gnPopupClickX = event.pageX - window.pageXOffset;
- window.gnPopupClickY = event.pageY - window.pageYOffset;
- window.gnPopupScreenClickX = event.screenX - window.pageXOffset;
- window.gnPopupScreenClickY = event.screenY - window.pageYOffset;
- }
-}
-
-function BSSCHidePopupWindow()
-{
- if (window.gPopupWindow != null) {
- if (gbBsNS4) {
- if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {
- window.gPopupWindow.close();
- window.gPopupWindow = null;
- }
- }
- }
- return;
-}
-
-// Add the PopupOnClick to the onclick array.
-if (typeof(BsscRegisterOnClick) != "undefined")
-{
- BsscRegisterOnClick(BsPopupOnClick);
-}
-//End to support previous popup functions
-
-/// Section End - Popup (JavaScript 1.0)
-
-/// Section Begin - Embedded Stub (JavaScript 1.0)
-
-function BSSCCreatePopupDiv()
-{
- return;
-}
-
-function WritePopupMenuLayer()
-{
- if (BsscHasExtJs()) {_WritePopupMenuLayer();}
-}
-
-function BSSCPopup(strURL, width, height)
-{
- var re = new RegExp("'", 'g');
- strURL = strURL.replace(re, "%27");
-
- if (BsscHasExtJs()) {
- _BSSCPopup(strURL, width, height);
- }else{
- //Create a temporary window first to ensure the real popup comes up on top
- var wndTemp = null;
- if (!gbBsNS3) {
- wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
- }
- // Create the real popup window
- var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");
- // Close the temporary
- if (!gbBsNS3) {
- wndTemp.close();
- } else {
- wndPopup.focus();
- }
- }
-}
-
-var gbWndTemp = null, gbWndPopupLinks = null;
-var gbstrParaTotal = "";
-
-function PopupMenu_Invoke()
-{
- if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function')
- {
- if (Number(gsSkinVersion) > 2 && IsFlashSupported())
- {
- return wfRelatedTopic(PopupMenu_Invoke.arguments);
- }
- }
- if (BsscHasExtJs()) {
- return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);
- }
- if (gbBsNS3Before || gbBsIE3Before ) {
- var argLen = PopupMenu_Invoke.arguments.length;
- if (argLen < 5) {
- window.document.location.href = PopupMenu_Invoke.arguments[3];
- return false;
- }
- gbWndTemp = null;
- gbWndPopupLinks = null;
- gbstrParaTotal = "";
- for (var i = 0; i < (argLen - 2) / 2; i++) {
- var strParaLine = "";
- if (gbBsNS2){
- strParaLine += "<a href=\"";
- strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
- strParaLine += "\">"
- strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
- strParaLine += "</a>";
- } else {
- strParaLine += "<a href=\"javascript:";
- strParaLine += "gotoUrl(\'";
- strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
- strParaLine += "\');\"";
- if (PopupMenu_Invoke.arguments[1] != '') {
- strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";
- }
- strParaLine += ">";
- strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
- strParaLine += "</a>";
- }
- strParaLine += "<br>";
- gbstrParaTotal += strParaLine;
- }
- var nHeight = argLen * 15;
- var nWidth = 400;
- var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
- strParam += ",height=" + nHeight + ",width=200,resizable";
-
- //Create a temporary window first to ensure the real popup comes up on top
- //var wndTemp = null;
- if (!gbBsNS3) {
- gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
- }
- gbWndPopupLinks = window.open("", "popuplinks", strParam);
-
- setTimeout("Wait_PopupMenuReady()", 100);
- }
- return true;
-}
-
-function Wait_PopupMenuReady()
-{
- if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {
- PopupMenu_InvokeReady();
- }
- else
- setTimeout("Wait_PopupMenuReady()", 100);
-}
-
-function PopupMenu_InvokeReady()
-{
- if (gbWndPopupLinks != null) {
- gbWndPopupLinks.document.open("text/html");
- gbWndPopupLinks.document.write("<html><head>");
- if (gbBsNS2) {
- gbWndPopupLinks.document.write("<base href=\"" + location +"\">");
- } else {
- //YJ: IE301,302 and NS3.x works fine
- gbWndPopupLinks.document.write("<");
- gbWndPopupLinks.document.write("script>");
- gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");
- gbWndPopupLinks.document.write("<");
- gbWndPopupLinks.document.write("/script>");
- }
- gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");
- gbWndPopupLinks.document.write(gbstrParaTotal);
- gbWndPopupLinks.document.write("</body></html>");
- gbWndPopupLinks.document.close();
-
- // Close the temporary
- if (!gbBsNS3 && gbWndTemp != null) {
- gbWndTemp.close();
- }else {
- gbWndPopupLinks.focus();
- }
-
- return true;
- }
- return false;
-}
-
-/// Section End - Embedded Stub (JavaScript 1.0)
-
-//// Segment End -- (JavaScript 1.0)
-
-//// Segment Begin -- (JavaScript 1.2)
-/// Section Begin - kadov DHTM (JavaScript 1.2)
-
-//Begin to support extended and dropdown text effects.
-function kadovIsParagraph(el)
-{
- return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;
-}
-
-function kadovInitEachChild(el)
-{
- for(var i=0; i<getChildNodes(el).length; i++)
- {
- var child = getChildNodes(el)[i];
- if( child.tagName == "SCRIPT" || child.tagName == "!" )
- continue;
-
- if( child.id != "" )
- {
- // to wipe out the onload effects
- if (gbBsIE4&&!gbBsMac)
- {
- var onLoadEffect = child.style.getAttribute( "x-on-pageload" );
- if( (onLoadEffect != null) && (onLoadEffect > "") )
- child.style.setAttribute( "x-on-pageload", "" );
- }
-
- var href = child.getAttribute("href")
- if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )
- kadovFilePopupInit(child.id); // Init for Popup
- else if( child.className == "dropspot" || child.className == "expandspot" ||
- child.className == "glossterm" )
- kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text
- else if( child.className == "trigger")
- kadovInitTrigger(child.id);// Init for Trigger
- else
- {
- kadovInitEffects(child.id);// Init for DHTML effects
- CEngine.SetOneTargetInitialState( child.id );
- }
- }
-
- if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )
- child.start = "mouseover";// to start a AVI file. fileopen doesn't work
-
- kadovInitEachChild(child);
- }
-}
-
-function kadovRetrieveTextInner(el)
-{
- var x = "";
- if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))
- return x;
-
- if( kadovIsParagraph(el) )
- {
- var strNewID = " ";
- if( el.id != "" )
- strNewID += "id=" + el.id + "_NewSpan ";
- x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";
- }
- else
- {
- for(var i=0; i<getChildNodes(el).length; i++)
- x += kadovRetrieveTextInner( getChildNodes(el)[i] );
- }
- return x;
-}
-
-function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )
-{
- var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );
- if( nTagOpen < 0 )
- return strRawHTML;
-
- var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);
- if( nTagClose < nTagOpen )
- return strRawHTML;
-
- if( typeof(nDistance) == "number" && nDistance > 0 )
- if( (nTagClose - nTagOpen) != nDistance )
- return strRawHTML;
-
- var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;
- return kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );
-}
-
-function kadovAdjustObjectTag(strRawHTML, nStartPos)
-{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings
-
- //Is there any DTC?
- var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';
- var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';
- var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );
- if( nDTCTagOpen < 0 )
- return strRawHTML;
- var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );
- if( nDTCTagClose < nDTCTagOpen)
- return strRawHTML; // no Design Time Controls;
-
- //Is the DTC HTML Help Control?
- var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';
- var strRTObjTagClose = '</OBJECT>';
- var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );
- if( nRTObjTagOpen < nDTCTagOpen )
- return strRawHTML;
- var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );
- if( nRTObjTagClose < nRTObjTagOpen )
- return strRawHTML; // is not a HTML help control
-
- // Is it a related Topics html help control?
- var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';
- if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )
- return strRawHTML;
-
- // does the commented object tag contain a items parameters
- var strRTItemsOpen = '<param name="Items" value="';
- var strRTItemsClose = '$$**$$" >';
- var strRTItemsClose2 = '$$**$$">';
-
- var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);
- if( nRTItemsOpen < nDTCTagOpen )
- return strRawHTML;
- var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);
- if (nRTItemsClose == -1)
- nRTItemsClose = strRawHTML.indexOf(strRTItemsClose2, nRTItemsOpen);
- if( nRTItemsClose < nRTItemsOpen )
- return strRawHTML;
-
- // found a items string
- var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);
- if( strItems.length < 1 )
- return strRawHTML;
-
- // to reconstruct the item(s) param tag(s)
- var strItemsArray = strItems.split('$$**$$');
- if( strItemsArray.length < 1 )
- return strRawHTML;
- var strRunTimeItemParam = "";
- for( var i = 0; i < strItemsArray.length; i++ )
- {
- strRunTimeItemParam += '<PARAM NAME="Item' + (i+1);
- strRunTimeItemParam += '"' + ' VALUE="';
- strRunTimeItemParam += strItemsArray[i];
- strRunTimeItemParam += '">';
- }
-
- // to insert the reconstructed item params into runtime object tag
- var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);
- return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);
-}
-
-function kadovTextPopupOnLoad( el )
-{
- if( typeof(el) == "string" )
- el = getElement(el);
-
- var src = el.getAttribute( "x-use-popup" );
- var bNeedMove=true;
- if(!src&&el.id)
- {
- for (var i=0;i<gPopupData.length;i++)
- if (gPopupData[i].el==el.id)
- {
- src=gPopupData[i].popupId;
- bNeedMove=false;
- break;
- }
- }
- if(!src)
- src = el.style.getAttribute( "x-use-popup" );
- if (!src)
- return 0;
-
- var name = src;
- if( src.substr(0,1) == "#" )
- name = src.substr(1, src.length-1);
- var srcDiv = getElement(name);
- if( !srcDiv )
- return 1;
-
- if (bNeedMove)
- {
- var type = el.getAttribute( "x-popup-type" );
- if (!type)
- type = el.style.getAttribute("x-popup-type");
- if (!type)
- return 1;
- var setup = el.getAttribute( "x-tmp-setup" );
- var newId = name;
- if( newId.indexOf( "_tmp") <= 0 )
- newId += "_tmp";
-
- if( !setup)
- {
- el.setAttribute( "x-tmp-setup", 1 );
-
- if( type == "pulldown" )
- {
- var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);
- var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
- strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
-
- //work around the bug in HH.exe that highlight the phrases when use Search tab
- //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime
- strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);
-
- var strStyle = " style='display:none; position:relative;";
- var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";
-
- removeThis(srcDiv); // empty the original DIV tag
- var elParentPra = kadovFindParentParagraph(el);
- if( elParentPra )
- insertAdjacentHTML(elParentPra, "afterEnd", newDiv );
- }
- else if( type == "expanding" )
- {
- var inner = kadovRetrieveTextInner(srcDiv);
- if( inner == "" )
- inner = srcDiv.innerHTML;
- var strAdjust = kadovAdjustObjectTag(inner,0);
- var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
- strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
- var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";
- var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + "> " + strCleanHTML + "</span>";
- removeThis(srcDiv); // empty the original DIV tag
- insertAdjacentHTML(el, "afterEnd", newSpan );
- }
- }
- }
- else
- {
- srcDiv.style.display = "none";
- }
- return 0;
-}
-
-function getElementsByTag(obj,sTagName)
-{
- if(obj.getElementsByTagName)
- return obj.getElementsByTagName(sTagName);
- else if(obj.all)
- return obj.all.tags(sTagName);
- return null;
-}
-
-function getElement(sID)
-{
- if(document.getElementById)
- return document.getElementById(sID);
- else if(document.all)
- return document.all(sID);
- return null;
-}
-
-function getParentNode(obj)
-{
- if(obj.parentNode)
- return obj.parentNode;
- else if(obj.parentElement)
- return obj.parentElement;
- return null;
-}
-
-function getChildNodes(obj)
-{
- if(obj.childNodes)
- {
- var children = new Array();
- for (var i = 0; i < obj.childNodes.length; i++)
- {
- if (obj.childNodes[i].nodeType == 1)
- children[children.length] = obj.childNodes[i];
- }
- return children;
- }
- else if(obj.children)
- return obj.children;
- return null;
-}
-
-function removeThis(obj)
-{
- if(obj.parentNode)
- obj.parentNode.removeChild(obj);
- else
- obj.outerHTML="";
-}
-
-function kadovTextPopup( el )
-{
- if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 )
- return;
-
- var bNeedMove=true;
-
- if (window.event)
- window.event.cancelBubble = true;
-
- if( typeof(el) == "string" )
- el = getElement(el);
-
- if (!el||el==window)
- return;
-
- var src = el.getAttribute( "x-use-popup" );
- if(!src&&el.id)
- {
- for (var i=0;i<gPopupData.length;i++)
- if (gPopupData[i].el==el.id)
- {
- src=gPopupData[i].popupId;
- bNeedMove=false;
- break;
- }
- }
- if(!src)
- src = el.style.getAttribute( "x-use-popup" );
- if(!src)
- return;
-
- var name = src;
- if( src.substr(0,1) == "#" )
- if (bNeedMove)
- name = src.substr(1, src.length-1) + "_tmp";
- else
- name = src.substr(1, src.length-1);
-
- var srcDiv = getElement(name);
- if( !srcDiv )
- return;
-
- if( srcDiv )
- {
- if( srcDiv.style.display == "" )
- srcDiv.style.display = "none";
- else
- {
- srcDiv.style.display = "";
- if( typeof(srcDiv.bInitialized) == "undefined" )
- {
- srcDiv.bInitialized = true;
- kadovInitEffects(name);
- kadovInitEachChild(srcDiv);
- }
- }
- }
- if(gbBsIE4)
- event.returnValue=false;
- return;
-}
-
-function kadovFindParentParagraph( el )
-{
- if( typeof(el) == "string" )
- el = getElement(el);
- if( (!el) || el.tagName == "BODY" )
- return null;
- if( kadovIsParagraph(getParentNode(el)) )
- return getParentNode(el);
- else
- return kadovFindParentParagraph( getParentNode(el) );
-}
-
-//Begin HTML code invoked function
-function kadovRegisterEventHandler( obj, strEvent, strEventHandler )
-{
- if( !gbBsIE4 )
- return;
- CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );
-}
-
-function textPopupData(el, popupId)
-{
- this.el = el;
- this.popupId = "#"+popupId;
-}
-
-var gPopupData = new Array();
-
-function kadovTextPopupInit( el, popupId)
-{
- if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3)
- return;
-
- if( typeof(el) == "string" )
- {
- if (popupId)
- {
- gPopupData[gPopupData.length]=new textPopupData(el, popupId);
- }
- el = getElement(el);
- }
-
- if( el != null )
- {
- CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(\"" + el.id +"\");" );
- CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(\"" + el.id +"\");" );
- }
-}
-//End HTML code invoked function
-
-//End to support extended and dropdown text effects.
-
-//Begin to convert iWrite format to RoboEditor Format for DHTML effects
-function kadovInitTriggersInHead( )
-{
- if( Object.xDelayedInitElements )
- {
- var x = Object.xDelayedInitElements;
- for(i=0; i<x.length; i++)
- kadovInitTrigger( x[i] );
- }
-}
-
-//Begin HTML code invoked function
-function kadovFilePopupInit( el )
-{
- if( typeof(el) == "string" )
- el = getElement(el);
-
- if( el != null )
- CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );
-}
-
-function kadovInitTrigger( element )
-{
- if( !gbBsIE4 )
- return;
- var srcElement = element;
- if( typeof(srcElement) == "string" )
- {
- srcElement = getElement(element,0);
- if(srcElement == null)
- return;
- }
-
- if( !kadovIsParentVisible(srcElement) )
- return;
-
- var targets = srcElement.getAttribute( "x-targets" );
- if (!targets)
- targets = srcElement.style.getAttribute("x-targets");
- if (!targets)
- return;
- var arrOneTarget = targets.split( "," );
- for( var i = 0; i < arrOneTarget.length; i ++ )
- bsscFXInit( element, arrOneTarget[i], null, null, null, null );
-}
-
-function kadovIsParentVisible( el )
-{
- if( typeof(el) == "string" )
- el = getElement(el);
- if( (!el) || el.tagName == "BODY" )
- return true;
- if( el.style.display == 'none' ) //el.visibility == 'hidden' ||
- return false;
- else
- return kadovIsParentVisible( getParentNode(el) );
-}
-
-function kadovInitEffects( element )
-{
- if( !gbBsIE4 )
- return;
- var srcElement = element;
- if( typeof(srcElement) == "string" )
- {
- srcElement = getElement(element,0);
- if(srcElement == null)
- return;
- }
-
- if( !kadovIsParentVisible(srcElement) )
- return;
-
- kadovInitEffect( srcElement, "x-on-hover" );
- kadovInitEffect( srcElement, "x-on-pageclick" );
- kadovInitEffect( srcElement, "x-on-pageload" );
- kadovInitEffect( srcElement, "x-on-trigger-1" );
- kadovInitEffect( srcElement, "x-on-trigger-2" );
-}
-//End HTML code invoked function
-
-function kadovInitEffect( element, prop )
-{
- var values = null;
- if( element.getAttribute( "currentStyle" ) && element.currentStyle.getAttribute)
- values = element.currentStyle.getAttribute( prop );
- else if (element.style.getAttribute)
- values = element.style.getAttribute( prop );
- if( !values )
- return;
-
- var functions = new Array();
- var nIdx = 0, nStart = 0;
- var nNext = values.indexOf( "\)", 0);
- while( nNext >= 0 && nNext < values.length )
- {
- functions[nIdx] = values.substr( nStart, nNext-nStart+1);
- nStart = nNext + 1;
- nIdx++;
- nNext = values.indexOf( "\)", nStart);
- }
-
- for( var i=0; i<functions.length; i++)
- {
- var id = element.getAttribute( "id" );
- var translatedProp = kadovTranslateProp(prop);
-
- var lp = functions[i].indexOf( "(" );
- var fnname = functions[i].substring(0, lp);
- var srcargs = functions[i].substring(lp+1, functions[i].length-1);
-
- var nClickTimes = 1;
- var arrForClickCount = srcargs.split( "," );
- for( var j = 0; j < arrForClickCount.length; j++ )
- {// to locate and get the "clicks=99" settings
- var nPageClick = arrForClickCount[j].indexOf("clicks");
- if( nPageClick >= 0 )
- {
- nPageClick = arrForClickCount[j].indexOf("=");
- if( nPageClick > 0 )
- {
- nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;
- break;
- }
- }
- }
- var args = srcargs;
- if( j < arrForClickCount.length )
- {// to strip out the "clicks=99" from the arguments string
- args = "";
- for( var k = 0; k < arrForClickCount.length; k ++ )
- {
- if( k != j )
- {
- args += arrForClickCount[k];
- if( k < arrForClickCount.length - 1 )
- args += ",";
- }
- }
- }
- bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );
- }
-}
-
-function kadovTranslateProp( prop )
-{
- switch( prop )
- {
- case "x-on-hover" : return "bsschover";
- case "x-on-pageclick" : return "bsscpageclick";
- case "x-on-pageload" : return "bsscpageload";
- case "x-on-trigger-1" : return "bssctrigger1";
- case "x-on-trigger-2" : return "bssctrigger2";
- }
- return null;
-}
-//End to convert iWrite format to RoboEditor Format for DHTML effects
-
-//Begin the definition of one entry to DHTML effects
-function bsscFXInit( trigger_ID, target_ID, event_type,
- action_type, action_setting, event_addional )
-{
- if( (!gbBsWindows && !gbBsSunOS && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID
- return; // we don't support Navigator yet
-
- if( typeof(event_type) == "string" )
- event_type = event_type.toLowerCase();
- if( typeof(action_type) == "string" )
- action_type = action_type.toLowerCase();
- if( typeof(action_setting) == "string" )
- action_setting = action_setting.toLowerCase();
-
- // to get the target element then add it to the target list
- var eleTarget = CCSSP.GetObject( target_ID );
- if( (eleTarget != null) && (event_type != null) && (action_type != null) )
- {
- CEngine.AddOneTarget( target_ID, eleTarget );
- CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);
- }
-
- // to validate the trigger_ID parameter
- if( typeof(trigger_ID) == "string" && trigger_ID != "" )
- CEngine.BuildTriggerObject( trigger_ID, target_ID );
-}
-//End the definition of one entry to DHTML effects
-
-/// Section End - kadov DHTM (JavaScript 1.2)
-
-/// Section Begin - CCSSP DHTM (JavaScript 1.2)
-
-//Begin JavaScript libary for cross-platform positioning object.
-function CCSSP(){} // constructor of CCSSP class
-
-CCSSP.GetObject = function( obj )
-{//convert object name string or reference into a valid object reference
- if( typeof(obj) == "object" )
- return obj;
- else if( typeof(obj) == "string" && obj != "")
- {
- if( gbBsNS4 )
- return eval("document." + obj);
- else
- return eval("document.all(\"" + obj + "\")");
- }
- else
- return null;
-}
-
-CCSSP.MoveObjectTo = function(obj, x, y)
-{//positioning an object at a specific pixel coordinate
- if( gbBsNS4 )
- obj.moveTo(x,y);
- else
- {
- obj.style.pixelLeft = x;
- obj.style.pixelTop = y;
- }
-}
-
-CCSSP.MoveObjectBy = function(obj, dx, dy)
-{//moveing a object by x and/or y pixel
- if( gbBsNS4 )
- obj.moveBy(dx,dy);
- else
- {
- obj.style.pixelLeft += dx;
- obj.style.pixelTop += dy;
- }
-}
-
-CCSSP.SetObjectBGColor = function(obj, color)
-{//set the background color of an object
- if( gbBsNS4 )
- obj.bgColor = color;
- else
- obj.style.backgroundColor = color;
-}
-
-CCSSP.ShowObject = function(obj, bShow)
-{// set the object to be visible or invisible
- if( gbBsNS4 )
- obj.visibility = (bShow == true) ? 'show' : 'hide';
- else
- obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.
-}
-
-CCSSP.GetObjectLeft = function(obj)
-{// retrieve the x coordinate of a posionable object
- if( gbBsNS4 )
- return obj.left;
- else
- return obj.style.pixelLeft;
-}
-
-CCSSP.GetObjectTop = function(obj)
-{// retrieve the y coordinate of a posionable object
- if( gbBsNS4 )
- return obj.top;
- else
- return obj.style.pixelTop;
-}
-
-CCSSP.GetObjectContainLeft = function(obj)
-{// retrieve the x coordinate of a posionable object relative to it's parent element
- if( gbBsNS4 )
- return obj.pageX;
- else
- {
- if( obj == document.body )
- return obj.clientLeft;
- else
- return obj.offsetLeft;
- }
-}
-
-CCSSP.GetObjectWindowLeft = function(obj)
-{// retrieve the x coordinate of a posionable object relative to browser window
- if( gbBsNS4 )
- return obj.pageX;
- else
- {
- var nOffsetWindowLeft = 0;
- for(var element = obj; element; element = element.offsetParent)
- nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);
- return nOffsetWindowLeft;
- }
-}
-
-CCSSP.GetObjectContainTop = function(obj)
-{// retrieve the y coordinate of a posionable object relative to it's parent element
- if( gbBsNS4 )
- return obj.pageY;
- else
- {
- if( obj == document.body )
- return obj.clientTop;
- else
- return obj.offsetTop;
- }
-}
-
-CCSSP.GetObjectWindowTop = function(obj)
-{// retrieve the y coordinate of a posionable object relative to browser window
- if( gbBsNS4 )
- return obj.pageY;
- else
- {
- var nOffsetWindowTop = 0;
- for(var element = obj; element; element = element.offsetParent)
- nOffsetWindowTop += CCSSP.GetObjectContainTop(element);
- return nOffsetWindowTop;
- }
-}
-
-CCSSP.GetObjectHeight = function(obj)
-{// retrieve the height of a posionable object
- if( gbBsNS4 )
- return obj.clip.height;
- else
- return obj.offsetHeight;
-}
-
-CCSSP.GetObjectWidth = function(obj)
-{// retrieve the width of a posionable object
- if( gbBsNS4 )
- return obj.clip.width;
- else
- return obj.offsetWidth;
-}
-
-CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )
-{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined
- if (gbBsNS4 && !gbBsNS6)
- return ;
-
- var oldHandler = "";
-
- if (gbBsMac &&gbBsIE4&&!gbBsIE5)
- {
- if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")
- { //search for <SCRIPT> tag which define the event handler
- for( var i = 0; i < document.scripts.length; i++ )
- {
- var script = document.scripts[i];
- if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
- {
- oldHandler = script.innerHTML;
- break;
- }
- }
- }
- }
- else
- {
- var oldInlineHandler = srcObj[rawEventName.toLowerCase()];
- if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")
- {
- var functionDefinition = oldInlineHandler.toString();
- var bodyStart = functionDefinition.indexOf( "{" );
- var bodyEnd = functionDefinition.lastIndexOf( "}" );
- if( bodyStart > 0 || bodyEnd > bodyStart )
- oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );
- }
- else if( gbBsIE4 )
- { //search for <SCRIPT> tag which define the event handler
- for( var i = 0; i < document.scripts.length; i++ )
- {
- var script = document.scripts[i];
- if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
- {
- oldHandler = script.innerHTML;
- break;
- }
- }
- }
- }
- if( oldHandler.indexOf(funcHandler) >= 0 )
- return;// to prevent register the funtion twice.
-
- if( gbBsNS4 ) // only "onload, onresize, onfocus" apply to window
- {// other raw events will apply to layer
- var noOn = rawEventName.substring(2, rawEventName.length);
- if( typeof(noOn) == "string" && noOn.length > 3 ) {
- if (srcObj.captureEvents)
- srcObj.captureEvents( Event[noOn.toUpperCase()] );
- }
- }
-
- var newHandler = oldHandler;
- if( newHandler.length == 0 )
- newHandler = funcHandler;
- else
- newHandler += "; " + funcHandler;
-
- srcObj[rawEventName.toLowerCase()] = new Function( newHandler );
-}
-
-CCSSP.GetWindowHeight = function()
-{// retrieve the height of available content in browser window
- if( gbBsNS4 )
- return window.innerHeight;
- else
- return document.body.clientHeight;
-}
-
-CCSSP.GetWindowBottom = function()
-{// retrieve the bottom postion of browser window
- if( gbBsNS4 )
- return window.outerHeight + window.pageYOffset;
- else
- return document.body.clientHeight + document.body.scrollTop;
-}
-
-CCSSP.GetWindowWidth = function()
-{// retrieve the width of available content in browser window
- if( gbBsNS4 )
- return window.innerWidth;
- else
- return document.body.clientWidth;
-}
-
-CCSSP.GetWindowRight = function()
-{// retrieve the right postion of browser window
- if( gbBsNS4 )
- return window.outerWidth + window.pageXOffset;
- else
- return document.body.clientWidth + document.body.scrollLeft;
-}
-
-CCSSP.TrimString = function( objString, subtrim )
-{// to trim the "subtrim" in the beginning and ending of a string object
- if( typeof(subtrim) != "string" || subtrim == null )
- return objString;
- var strHead = objString.substring(0, 1);
- var strRear = objString.substring(objString.length-1, objString.length);
- if( strHead != subtrim && strRear != subtrim )
- return objString;
-
- var spacePos = objString.indexOf(subtrim);
- if( spacePos < 0 )
- return objString;
- else if( spacePos == objString.length - 1 )
- return objString.substring(0, spacePos);
- else
- {
- var newString = objString.substring( spacePos + 1, objString.length);
- return CCSSP.TrimString( newString, subtrim );
- }
-}
-
-CCSSP.TrimSpace = function( objString )
-{
- var Trim1 = CCSSP.TrimString( objString, " ");
- return CCSSP.TrimString( Trim1, "\'");
-}
-
-CCSSP.GetEventElement = function( navEventObject )
-{// to get the element who fired the current event
- if(gbBsNS4)
- if (gbBsNS6)
- return null;
- else
- navEventObject.target;
- else
- return event.srcElement;
-}
-
-CCSSP.PrepareFilter = function( Obj )
-{//to prepare for making the filter work
- Obj.style.filter = "";
- if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )
- return;
- Obj.style.height = CCSSP.GetObjectHeight(Obj);
-}
-
-CCSSP.IsDescendant = function( progenitor, progeny )
-{
- if( typeof(progeny) == "undefined" || progeny == null )
- return false;
- else if( progeny == progenitor )
- return true;
- else if( progeny.id == progenitor.id )
- return true;
- else if( getParentNode(progeny) == getParentNode(progenitor))
- return false;
- else
- return CCSSP.IsDescendant( progenitor, getParentNode(progeny));
-}
-
-CCSSP.IsTextTag = function( Obj )
-{
- if( typeof( Obj.tagName ) == "undefined" )
- return false;
- return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" ||
- Obj.tagName == "FONT" || Obj.tagName == "SPAN" );
-}
-
-//End JavaScript libary for cross-platform positioning object.
-
-/// Section End - CCSSP DHTM (JavaScript 1.2)
-
-/// Section Begin - CCSSP DHTM 1 (JavaScript 1.2)
-
-//Begin the definition of class CTrigger
-function CTrigger( TriggerElement )
-{
- // object : the trigger element. Never be null.
- this.eleTrigger = TriggerElement;
-
- // number : the click counter number: only 3 values: 0,1,2;
- this.nCounter = 0;
-
- //object as associative array of string:
- // the associate target ID strings; one element at least.
- this.objStrTarget = new Object();
- this.eleTrigger.style.cursor = "hand";
- if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )
- this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map
-}
-
-CTrigger.prototype.AddTargetID = function( strTargetID )
-{// add one target ID string to the objStrTarget
- if( typeof(strTargetID) != "string" )
- return ;
- if( typeof(this.objStrTarget[strTargetID]) != "string" )
- this.objStrTarget[strTargetID] = strTargetID;
-}
-
-CTrigger.prototype.OnTriggerClick = function()
-{// to activate all asociated target
- var strEventType = ( (this.nCounter++)% 2 == 0 ) ?
- "bssctrigger1" : "bssctrigger2";
-
- // to enumerate associative target element's ID string
- for( var strTargetID in this.objStrTarget )
- CEngine.SendEventToOneTarget( strTargetID, strEventType );
-}
-//End the definition of class CTrigger
-
-//Begin the definition of class CTarget
-function CTarget( TargetElement )
-{
- // object : the target element. Never be null.
- this.eleTarget = TargetElement;
- this.objManager = new Object(); // object: the event manager
-}
-
-CTarget.nPageClickCounter = 0;// static class property.
-
-CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )
-{// return the action agency ( effect )object's refernece
- switch( str_action_type )
- {
- case "show":return new CAgencyShow( this.eleTarget, true ) ;
- case "hide":return new CAgencyShow( this.eleTarget, false ) ;
-
- case "flyin" :
- return new CAgencyFly(this.eleTarget, action_setting, true);
- case "flyout" :
- return new CAgencyFly(this.eleTarget, action_setting, false);
- case "spiralin" :
- return new CAgencySpiral(this.eleTarget, action_setting, true);
- case "spiralout" :
- return new CAgencySpiral(this.eleTarget, action_setting, false);
- case "zoomin" :
- return new CAgencyZoom(this.eleTarget, action_setting, true);
- case "zoomout" :
- return new CAgencyZoom(this.eleTarget, action_setting, false);
- case "elastic" :
- return new CAgencyElastic(this.eleTarget, action_setting);
-
- case "fadein" :
- return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;
- case "fadeout" :
- return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;
- case "rockrollstatic" :
- case "rockroll" :
- return (gbBsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;
-
- case "glow":
- return (gbBsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;
- case "dropshadow":
- return (gbBsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;
- case "transition" :
- return (gbBsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;
- case "blur" :
- return (gbBsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;
-
- case "fliph" : // all these 4 do NOT need any parameters
- case "flipv" :
- case "invert":
- case "gray" :
- return (gbBsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;
-
- case "fontchange": // the effects below change the style on the fly, so won't work in Navigator
- return (gbBsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;
- case "boderchange":
- case "stylechange":
- return (gbBsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;
-
- default: return null;
- }
-}
-
-CTarget.prototype.SetEventManager = function(
- one_event_type,str_action_type,action_setting,event_additional)
-{// to set the event manager with specified action
- if( typeof( one_event_type ) != "string" ||
- typeof( str_action_type ) != "string"||
- typeof( action_setting ) != "string" )
- return false;
- if( typeof(this.objManager[one_event_type]) == "undefined" )
- {
- this.objManager[one_event_type] = new Object();
- this.objManager[one_event_type].length = 0;
- }
-
- var eventAgency = this.GetAgencyObject(str_action_type,action_setting);
- if( eventAgency != null )
- {
- var ct = this.objManager[one_event_type].length ++;
- this.objManager[one_event_type][ct] = eventAgency;
-
- if( one_event_type == "bsscpageclick" )
- {// to deal with the "number of pageclick" stuff
- if( typeof(event_additional) == "number" )
- this.objManager[one_event_type][ct].nPageClick = event_additional;
- else // set the default number
- this.objManager[one_event_type][ct].nPageClick = 1;
-
- if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||
- (this.objManager[one_event_type][ct].nPageClick <
- this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )
- this.objManager.nMinPageClickIndex = ct;
- }
-
- //hide the object blindly,SetState function will take care of the final correct state
- if( ((one_event_type == "bsscpageclick") &&
- (this.objManager[one_event_type][ct].nPageClick == 1)) ||
- one_event_type == "bsscpageload" ||
- one_event_type == "bssctrigger1" )
- CCSSP.ShowObject( this.eleTarget, false );
-
- if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )
- if( typeof( this.strTriggerEvent ) == "undefined" )
- this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";
-
- return true;
- }
- return false;
-}
-
-CTarget.prototype.OnEvent = function( strBsscEvent )
-{// response to the event ( bssc format )
- if( typeof(this.objManager[strBsscEvent]) == "object" )
- { // to get the event agency from the event manager
- var eventAgency = this.objManager[strBsscEvent];
- for( var i = 0; i < eventAgency.length; i++ )
- {
- if( strBsscEvent == "bsscpageclick" &&
- eventAgency[i].nPageClick != CTarget.nPageClickCounter )
- continue;
- else if( strBsscEvent == "bsschover" && event.type == "mouseout" )
- eventAgency[i].EndEffect();
- else // to invoke the unified function in effect object
- eventAgency[i].UpdateEffect();
- }
- }
-}
-
-CTarget.prototype.SetState = function( strBsscEvent )
-{
- if( typeof(this.objManager[strBsscEvent]) != "object" )
- return false;
-
- // to get the event agency from the event manager
- var eventAgency = this.objManager[strBsscEvent];
-
- if( strBsscEvent == "bsscpageclick" )
- {// we only set the initial state for the minium number of pageclick
- eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();
- return true;
- }
- else
- {
- for( var i = 0; i < eventAgency.length; i++ )
- eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object
- if( i > 0 )
- return true;
- else
- return false;
- }
-}
-//End the definition of class CTarget
-
-//Begin the definition of CEngine class
-function CEngine(){}// all properities are going be "class" properities
-
-// object : as associative array of trigger objects
-CEngine.objTrigger = new Object();
-// object : as associative array of target objects
-CEngine.objTarget = new Object();
-
-// Array : each element is a CAgencyXXX animation object
-CEngine.arrAnimation = new Array();
-CEngine.PerformAnimation = function( nIndex )
-{// animation : update effects function
- CEngine.arrAnimation[nIndex].UpdateEffect();
-}
-
-CEngine.AddOneTrigger = function(TriggerID,TriggerElement)
-{// add one Trigger object into the trigger array
- if( typeof(TriggerID) != "string" || TriggerElement == null ||
- typeof(TriggerElement) != "object" )
- return;
- if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )
- CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);
-}
-
-CEngine.AddOneTarget = function(TargetID, TargetElement)
-{// add one Target object into the target array
- if( typeof(TargetID) != "string" || TargetElement == null ||
- typeof(TargetElement) != "object" )
- return;
- if( typeof(CEngine.objTarget[TargetID]) != "object" )
- CEngine.objTarget[TargetID] = new CTarget( TargetElement );
-}
-
-CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )
-{// to activate one target object
- if( typeof(CEngine.objTarget[strTargetID]) == "object" )
- {
- if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )
- {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle
- if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )
- strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";
- CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;
- }
- CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );
- }
-}
-
-CEngine.SendEventToAllTarget = function( strBsscEvent )
-{ //to activate all target associative to the BSSC event
- for( var strTargetID in CEngine.objTarget ) //to enumerate all target
- CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );
-}
-
-CEngine.SetOneTargetInitialState = function( strTargetID )
-{// only invoked after ALL effects for the target have been set
- if( typeof(CEngine.objTarget[strTargetID]) == "object" )
- {// to get target object
- var objTarget = CEngine.objTarget[strTargetID];
- if( objTarget.SetState( "bsscpageload" ) == false )
- {
- objTarget.SetState( "bsscpageclick" );
- objTarget.SetState( "bssctrigger1" );
- }
- }
-}
-
-CEngine.AdjustPageClickCounter = function()
-{
- var nAdjustedClickCounter = CTarget.nPageClickCounter;
- var bAdjusted = false;
- for( var strTargetID in CEngine.objTarget ) //to enumerate all target
- {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter
- var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;
- if( objEventPageClick != null )
- {
- for( var i = 0; i < objEventPageClick.length; i++ )
- {
- var nOtherPageClick = objEventPageClick[i].nPageClick;
- if( nOtherPageClick == CTarget.nPageClickCounter )
- return;
- if( nOtherPageClick > CTarget.nPageClickCounter )
- {
- if( !bAdjusted )
- {
- nAdjustedClickCounter = nOtherPageClick;
- bAdjusted = true;
- }
- else if( nOtherPageClick < nAdjustedClickCounter )
- nAdjustedClickCounter = nOtherPageClick;
- }
- }
- }
- }
- CTarget.nPageClickCounter = nAdjustedClickCounter;
-}
-
-CEngine.OnPageLoad = function()
-{
- // first, to set all target's initial state
- for( var strTargetID in CEngine.objTarget )
- CEngine.SetOneTargetInitialState( strTargetID );
-
- // to invoke all target's onpageload handler
- CEngine.SendEventToAllTarget( "bsscpageload" );
-}
-
-CEngine.OnPageClick = function()
-{ // to invoke all target's onpageclick handler
- var src = CCSSP.GetEventElement( arguments[0] );
- if( src == null )
- return;
-
- var objClickedTrigger = null;
- for( var strTriggerID in CEngine.objTrigger )
- { // to detect which trigger is clicked
- if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )
- {
- objClickedTrigger = CEngine.objTrigger[strTriggerID];
- break;
- }
- }
-
- if( objClickedTrigger != null) // the clicked trigger found
- objClickedTrigger.OnTriggerClick();
- else // no trigger is clicked
- { // to send PageClick event to all target
- CTarget.nPageClickCounter++;
- CEngine.AdjustPageClickCounter();
- CEngine.SendEventToAllTarget( "bsscpageclick" );
- }
-}
-
-CEngine.OnMouseOver = function()
-{ // to invoke all target's onpageload handler
- var src = CCSSP.GetEventElement( arguments[0] );
- if( src == null )
- return;
-
- var strHoveredTargetID = null;
- for( var strTargetID in CEngine.objTarget )
- { // to detect which Target is hovering on
- if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )
- {
- strHoveredTargetID = strTargetID;
- break;
- }
- }
-
- if( strHoveredTargetID != null ) // the hovered target found
- CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );
-}
-
-CEngine.BuildTargetObject = function(target_ID,event_type,action_type,
- action_setting, event_additional)
-{// to build target object
- // to get the target object
- if( typeof( CEngine.objTarget[target_ID] ) != "object" )
- return false;// the engine's AddOneTarget function might have failed.
- var TargetObject = CEngine.objTarget[target_ID];
-
- // to prepare the parameters for the event manager
- var arrEvent = event_type.split("|"); // to split the combined event_type string
- var arrAction = action_type.split("|");//to split the combined action_type string
- for( var trim = 0; trim < arrEvent.length; trim++ )
- arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);
-
- for( trim = 0; trim < arrAction.length; trim++ )
- arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);
-
- var arrSetting = new Array();
- if( typeof(action_setting) == "string" )
- arrSetting = action_setting.split("|");// to split the combined action_setting string
- // to calibrate the arrays
- for( var i = arrSetting.length; i < arrAction.length; i++ )
- {
- if( typeof(arrSetting[i]) != "string" )
- arrSetting[i] = "";
- }
-
- // to prepare for dealing with the absolute posioning element
- TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );
- TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );
-
- if( arrEvent.length > 1 )
- {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"
- if( arrAction.length != 2 )
- return false; // if event is combined, there must be 2 actions
- for( i = 0 ; i < 2; i++ )
- {
- if( TargetObject.SetEventManager(arrEvent[i], arrAction[i],
- arrSetting[i], event_additional) == false )
- return false; // the event manager has not been set up
- }
- }
- else // the event_type string is not combined
- {
- for( i = 0 ; i < arrAction.length; i++ )
- {
- TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);
- // to validate the event manager
- if( typeof(TargetObject.objManager[event_type]) != "object" ||
- typeof(TargetObject.objManager[event_type][i]) != "object" )
- return false; // the event manager has not been set up
- }
- }
- return true;
-}
-
-CEngine.BuildTriggerObject = function(trigger_ID, target_ID)
-{// to build the trigger object
- var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string
- for( var i = 0; i < arrTrigger.length; i ++ )
- {// to get the trigger element then add it to the trigger list
- arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );
- var eleTrigger = CCSSP.GetObject( arrTrigger[i] );
- if( eleTrigger == null )
- continue; // the trigger_ID string in the HTML code maybe wrong
- CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );
-
- // to get the target object
- if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )
- continue;// the engine's AddOneTarget function might have failed.
- CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );
- }
-}
-//End the definition of CEngine class
-
-/// Section End - CCSSP DHTM 1 (JavaScript 1.2)
-
-/// Section Begin - CCSSP DHTM 2 (JavaScript 1.2)
-
-//Begin the definition of CAgencyXXXX classes
-
-//Begin of the CAgencyShow definition
-function CAgencyShow( element, bIsShow )
-{
- this.ele = element;
- this.bIsShow = bIsShow;
-}
-
-CAgencyShow.prototype.PrepareEffect = function()
-{
- CCSSP.ShowObject( this.ele, !this.bIsShow );
-}
-
-CAgencyShow.prototype.UpdateEffect = function()
-{
- CCSSP.ShowObject( this.ele, this.bIsShow );
-}
-
-CAgencyShow.prototype.EndEffect = function()
-{
- CCSSP.ShowObject( this.ele, !this.bIsShow );
-}
-// End of the CAgencyShow definition
-
-// Begin of CAgencyFly definition
-function CAgencyFly( element, settings, bIsIn )
-{
- this.ele = element;
- this.bIsIn = bIsIn;
- this.duration = 1000; // default
- this.direction = "right";
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "speed" : this.duration = 100000/arrOneSet[1]; break;
- case "direction" : this.direction = arrOneSet[1]; break;
- }
- }
-
- if( gbBsIE5 && this.ele.style.position != "absolute" )
- this.ele.style.position = "relative";
- this.timer = null;
- this.aniIndex = CEngine.arrAnimation.length;
- CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyFly.prototype.PrepareEffect = function()
-{
- CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencyFly.prototype.UpdateEffect = function()
-{
- if( this.timer == null )
- this.ResetParameters();
-
- var percent = ((new Date()).getTime() - this.startTime)/this.duration;
- if( percent >= 1.0 )
- this.EndEffect();
- else
- {
- var newX = this.startX*(1.0-percent) + this.finalX*percent;
- var newY = this.startY*(1.0-percent) + this.finalY*percent;
- CCSSP.MoveObjectTo(this.ele, newX, newY);
- if( this.timer == null )
- this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
- }
-}
-
-CAgencyFly.prototype.EndEffect = function()
-{
- clearInterval( this.timer );
- this.timer = null;
-
- if( this.bIsIn ) // FlyIn
- CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
- else // FlyOut
- CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
- CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencyFly.prototype.ResetParameters = function()
-{
- this.PrepareEffect();
- CCSSP.ShowObject(this.ele, true );
-
- this.startX = 0;
- this.startY = 0;
- this.finalX = 0;
- this.finalY = 0;
-
- var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;
- var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;
- var offsetRight = CCSSP.GetWindowRight();
- var offsetBottom = CCSSP.GetWindowBottom();
-
- if( this.bIsIn )
- { // FlyIn
- this.finalX = this.ele.ABSX;
- this.finalY = this.ele.ABSY;
-
- switch( this.direction )
- {
- case "right": this.startX = offsetRight; this.startY = this.finalY; break;
- case "left": this.startX = -offsetLeft; this.startY = this.finalY; break;
- case "down": this.startY = offsetBottom; this.startX = this.finalX; break;
- case "up": this.startY = -offsetTop; this.startX = this.finalX; break;
- case "downright":
- this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
- this.startY = this.startX; break;
- case "upright":
- this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;
- this.startY = -this.startX; break;
- case "upleft":
- this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
- this.startY = this.startX; break;
- case "downleft":
- this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
- this.startY = -this.startX; break;
- }
- }
- else
- { // FlyOut
- this.startX = this.ele.ABSX;
- this.startY = this.ele.ABSY;
-
- switch( this.direction )
- {
- case "right": this.finalX = offsetRight; this.finalY = this.startY; break;
- case "left": this.finalX = -offsetLeft; this.finalY = this.startY; break;
- case "down": this.finalY = offsetBottom; this.finalX = this.startX; break;
- case "up": this.finalY = -offsetTop; this.finalX = this.startX; break;
- case "downright":
- this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
- this.finalY = this.finalX; break;
- case "upright":
- this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;
- this.finalY = -this.finalX; break;
- case "upleft":
- this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
- this.finalY = this.finalX; break;
- case "downleft":
- this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
- this.finalY = -this.finalX; break;
- }
- }
- CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
- this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyFly definition
-
-// Begin of CAgencySpiral
-function CAgencySpiral( element, settings, bIsIn )
-{
- this.ele = element;
- this.bIsIn = bIsIn;
- this.duration = 1000; // default
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "speed" : this.duration = 100000/arrOneSet[1]; break;
- }
- }
-
- if( gbBsIE5 && this.ele.style.position != "absolute" )
- this.ele.style.position = "relative";
- this.timer = null;
- this.aniIndex = CEngine.arrAnimation.length;
- CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencySpiral.prototype.PrepareEffect = function()
-{
- CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencySpiral.prototype.UpdateEffect = function()
-{
- if( this.timer == null )
- this.ResetParameters();
-
- var percent = ((new Date()).getTime() - this.startTime)/this.duration;
- if( percent >= 1.0 )
- this.EndEffect();
- else
- {
- var rf = (this.bIsIn)? (1.0 - percent) : percent;
- var t = (1.0-rf) * 4.0 * Math.PI
- var rxP = (this.bIsIn)? this.startX : this.finalX;
- var ryP = (this.bIsIn)? this.startY : this.finalY;
- var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;
- var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;
-
- var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;
- var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;
- CCSSP.MoveObjectTo(this.ele, newX, newY);
- if( this.timer == null )
- this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
- }
-}
-
-CAgencySpiral.prototype.EndEffect = function()
-{
- clearInterval( this.timer );
- this.timer = null;
-
- if( this.bIsIn ) // In
- CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
- else // Out
- CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
- CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencySpiral.prototype.ResetParameters = function()
-{
- this.PrepareEffect();
- CCSSP.ShowObject(this.ele, true );
- this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;
- this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;
- this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();
- this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom();
-
- CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
- this.startTime = (new Date()).getTime();
-}
-// End of CAgencySpiral
-
-// Begin of CAgencyElastic
-function CAgencyElastic( element, settings)
-{
- this.ele = element;
- this.duration = 1000; // default
- this.direction = "right";
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "speed" : this.duration = 100000/arrOneSet[1]; break;
- case "direction" : this.direction = arrOneSet[1]; break;
- }
- }
-
- if( gbBsIE5 && this.ele.style.position != "absolute" )
- this.ele.style.position = "relative";
- this.timer = null;
- this.aniIndex = CEngine.arrAnimation.length;
- CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyElastic.prototype.PrepareEffect = function()
-{
- CCSSP.ShowObject(this.ele, false );
-}
-
-CAgencyElastic.prototype.UpdateEffect = function()
-{
- if( this.timer == null )
- this.ResetParameters();
-
- var percent = ((new Date()).getTime() - this.startTime)/this.duration;
- if( percent >= 1.0 )
- this.EndEffect();
- else
- {
- var newX = this.startX;
- var newY = this.startY;
- var rf = Math.exp(-percent*3);
- var t = percent * 1.5 * Math.PI
- var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;
- switch (this.direction )
- {
- case "left":
- case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;
- case "up":
- case "down" : newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;
- }
- CCSSP.MoveObjectTo(this.ele, newX, newY);
- if( this.timer == null )
- this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
- }
-}
-
-CAgencyElastic.prototype.EndEffect = function()
-{
- CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
- clearInterval( this.timer );
- this.timer = null;
-}
-
-CAgencyElastic.prototype.ResetParameters = function()
-{
- CCSSP.ShowObject(this.ele, true );
- this.startX = this.ele.ABSX;
- this.finalX = this.ele.ABSX;
- this.startY = this.ele.ABSY;
- this.finalY = this.ele.ABSY;
-
- switch (this.direction)
- {
- case "left": this.startX = -this.ele.offsetWidth; break;
- case "right": this.startX = this.ele.offsetWidth; break;
- case "up": this.startY = -this.ele.offsetHeight;break;
- case "down": this.startY = this.ele.offsetHeight; break;
- }
- CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
- this.startTime = (new Date()).getTime();
-}
-// End of CAgencyElastic
-
-// Begin of CAgencyZoom
-function CAgencyZoom( element, settings, bIsIn)
-{
- this.ele = element;
- this.duration = 1000; // default
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "speed" : this.duration = 100000/arrOneSet[1]; break;
- }
- }
-
- this.bIsIn = bIsIn;
- this.timer = null;
- this.aniIndex = CEngine.arrAnimation.length;
- CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyZoom.prototype.PrepareEffect = function()
-{
- CCSSP.ShowObject(this.ele, false);
-}
-
-CAgencyZoom.prototype.UpdateEffect = function()
-{
- if( this.timer == null )
- this.ResetParameters();
-
- var percent = ((new Date()).getTime() - this.startTime)/this.duration;
- if( percent >= 1.0 )
- this.EndEffect();
- else
- {
- var nFactorIn = Math.ceil(50+50*percent);
- var nFactorOut = Math.ceil(100+200*(1-percent));
- var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";
- var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;
-
- this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);
- for(var index = 0; index < this.ele.all.length; index++)
- this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);
-
- if( this.timer == null )
- this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
- }
-}
-
-CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)
-{
- if( CCSSP.IsTextTag(child) )
- child.style.fontSize = FontSize;
- else
- {
- if( typeof(child.orgWidth) == "number" )
- child.style.width = Factor * child.orgWidth;
- if( typeof(child.orgHeight) == "number" )
- child.style.height = Factor * child.orgHeight;
- }
-}
-
-CAgencyZoom.prototype.EndEffect = function()
-{
- this.EndEffectAllChildren(this.ele);
- for(var index = 0; index < this.ele.all.length; index++)
- this.EndEffectAllChildren(this.ele.all[index]);
-
- clearInterval( this.timer );
- this.timer = null;
-}
-
-CAgencyZoom.prototype.EndEffectAllChildren = function( child )
-{
- if( CCSSP.IsTextTag(child) )
- child.style.fontSize = child.orgFontSize;
- else
- {
- if( typeof(child.intactWidth) != "undefined" )
- {
- child.width = child.intactWidth;
- child.height = child.intactHeight;
- }
- else if( typeof(child.style.intactPixelWidth) != "undefined" )
- {
- child.style.pixelWidth = child.style.intactPixelWidth;
- child.style.pixelHeight = child.style.intactPixelHeight;
- }
- }
-}
-
-CAgencyZoom.prototype.ResetParameters = function()
-{
- this.PrepareEffect();
- this.ResetParametersAllChildren( this.ele );
- for(var index = 0; index < this.ele.all.length; index++)
- this.ResetParametersAllChildren(this.ele.all[index]);
-
- this.startTime = (new Date()).getTime();
-}
-
-CAgencyZoom.prototype.ResetParametersAllChildren = function( child )
-{
- CCSSP.ShowObject(child, true );
- if( (child.tagName == "DIV") && (getParentNode(child).tagName == "TD") )
- child.width = "100%";// if the div is inside a cell of table, we need the this hack
-
- if( CCSSP.IsTextTag(child) )
- child.orgFontSize = child.style.fontSize;
- else
- {
- if( child.width > "" || child.height > "" )
- {
- child.orgWidth = child.intactWidth = child.width;
- child.orgHeight = child.intactHeight = child.height;
- }
- else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )
- {
- child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;
- child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;
- }
- }
-}
-// End of CAgencyZoom
-
-//// the following effects will use IE's exclusive "filter" function ////
-// Begin of CAgencyAlpha definition
-function CAgencyAlpha( element, settings, bIsIn )
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
- this.bIsIn = bIsIn;
-
- // to set the default value
- this.startOpacity = (this.bIsIn) ? 0 : 100;
- this.endOpacity = (this.bIsIn) ? 100 : 0;
-
- this.duration = 1000; // default
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "speed" : this.duration = 100000/arrOneSet[1]; break;
- }
- }
-
- this.timer = null;
- this.aniIndex = CEngine.arrAnimation.length;
- CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyAlpha.prototype.PrepareEffect = function()
-{// to set the visual filter function
- // the visual filter ONLY work when set by "Width and Height" or
- // absolute position for DIV, SPAN and normal tag ( such as p )
- // but, "absolute" cause the following elements overlap, so:
- CCSSP.PrepareFilter( this.ele );
- CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencyAlpha.prototype.UpdateEffect = function()
-{// to set the visual filter function
- if( this.timer == null )
- this.ResetParameters();
- if( typeof(this.ele.filters.alpha) != "object" )
- {
- this.EndEffect();
- return;
- }
-
- var percent = ((new Date()).getTime() - this.startTime)/this.duration;
- if( percent >= 1.0 )
- this.EndEffect();
- else if( typeof(this.ele.filters.alpha) == "object" )
- {
- this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;
- if( this.timer == null )
- this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
- }
-}
-
-CAgencyAlpha.prototype.EndEffect = function()
-{// to remove the visual filter function
- clearInterval( this.timer );
- this.timer = null;
- this.ele.style.filter = "";
- CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencyAlpha.prototype.ResetParameters = function()
-{
- this.PrepareEffect();
- CCSSP.ShowObject(this.ele, true );
- this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";
- this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyAlpha definition
-
-// Begin of CAgencyWave definition
-function CAgencyWave( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
-
- this.duration = 0; // default
- this.strength = 10;
- this.freq = 1;
- this.lightstrength = 1;
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "duration" : this.duration = 100000/arrOneSet[1]; break;
- case "strength" : this.strength = arrOneSet[1]; break;
- case "freq" : this.freq = arrOneSet[1]; break;
- case "lightstrength" : this.lightstrength = arrOneSet[1]; break;
- }
- }
-
- this.timer = null;
- this.aniIndex = CEngine.arrAnimation.length;
- CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyWave.prototype.PrepareEffect = function()
-{// to set the visual filter function
- CCSSP.PrepareFilter(this.ele);
-
- CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyWave.prototype.UpdateEffect = function()
-{// to set the visual filter function
- if( this.timer == null )
- this.ResetParameters();
- if( typeof(this.ele.filters.wave) != "object" )
- {
- this.EndEffect();
- return;
- }
-
- if( this.duration > 0 )
- {
- var percent = ((new Date()).getTime() - this.startTime)/this.duration;
- if( percent >= 1.0 )
- {
- this.EndEffect();
- return;
- }
- }
-
- this.ele.filters.wave.phase += 5;
- this.ele.filters.wave.phase %= 100;
- if( this.timer == null )
- this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );
-}
-
-CAgencyWave.prototype.EndEffect = function()
-{// to remove the visual filter function
- this.ele.style.filter = "";
- clearInterval( this.timer );
- this.timer = null;
-}
-
-CAgencyWave.prototype.ResetParameters = function()
-{
- this.PrepareEffect();
- this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" +
- this.freq +", lightstrength=" + this.lightstrength +",phase=0);";
- this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyWave definition
-
-// Begin of CAgencyGlow definition
-function CAgencyGlow( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
-
- // to set the default value
- this.glowColor = "green";
- this.glowStrength = "3";
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "color" : this.glowColor = arrOneSet[1]; break;
- case "strength" : this.glowStrength = arrOneSet[1]; break;
- }
- }
-}
-
-CAgencyGlow.prototype.PrepareEffect = function()
-{
- CCSSP.PrepareFilter(this.ele);
- CCSSP.ShowObject(this.ele, true );
- if( this.ele.style.backgroundColor != "" )
- {//style.backgroundColor somehow stop the visual filter
- this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
- this.ele.style.backgroundColor = "";
- }
-}
-
-CAgencyGlow.prototype.UpdateEffect = function()
-{// to set the visual filter function
- this.PrepareEffect();
- this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" +
- this.glowStrength + ", enabled=true" +")";
-}
-
-CAgencyGlow.prototype.EndEffect = function()
-{// to remove the visual filter function
- this.ele.style.filter = "";
- if( typeof(this.ele.intactBackgroundColor) != "undefined" )
- this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
-}
-// End of the CAgencyGlow definition
-
-// Begin of CAgencyDropShadow definition
-function CAgencyDropShadow( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
-
- // to set the default value
- this.shadowColor = "black";
- this.shadowOffx = "1";
- this.shadowOffy = "1";
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "color" : this.shadowColor = arrOneSet[1]; break;
- case "offx" : this.shadowOffx = arrOneSet[1]; break;
- case "offy" : this.shadowOffy = arrOneSet[1]; break;
- }
- }
-}
-
-CAgencyDropShadow.prototype.PrepareEffect = function()
-{
- CCSSP.PrepareFilter(this.ele);
- CCSSP.ShowObject(this.ele, true );
-
- if( this.ele.style.backgroundColor != "" )
- {//style.backgroundColor somehow stop the visual filter
- this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
- this.ele.style.backgroundColor = "";
- }
-}
-
-CAgencyDropShadow.prototype.UpdateEffect = function()
-{// to set the visual filter function
- this.PrepareEffect();
- this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" +
- this.shadowOffx + ", offy=" + this.shadowOffy + ")";
-}
-
-CAgencyDropShadow.prototype.EndEffect = function()
-{// to remove the visual filter function
- this.ele.style.filter = "";
- if( typeof(this.ele.intactBackgroundColor) != "undefined" )
- this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
-}
-// End of the CAgencyDropShadow definition
-
-// Begin of CAgencyRevealTrans definition
-function CAgencyRevealTrans( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
-
- // to set the default value
- this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).
- this.transition = 0;
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "type" : this.transition = arrOneSet[1]; break;
- case "duration" : this.duration = 100/arrOneSet[1]; break;
- }
- }
-}
-
-CAgencyRevealTrans.prototype.PrepareEffect = function()
-{
- CCSSP.PrepareFilter(this.ele);
- CCSSP.ShowObject( this.ele, false);
-}
-
-CAgencyRevealTrans.prototype.UpdateEffect = function()
-{// to set the visual filter function
- if( typeof( this.ele.filters.RevealTrans ) == "object" )
- {
- if( this.ele.filters.RevealTrans.status == 2 )
- this.ele.filters.RevealTrans.stop();
- }
-
- this.PrepareEffect();
-
- this.ele.style.filter = "RevealTrans(duration=" + this.duration +
- ", transition=" + this.transition + ")";
-
- if( typeof( this.ele.filters.RevealTrans ) == "object" )
- {
- this.ele.filters.RevealTrans.apply();
- CCSSP.ShowObject( this.ele, true);
- this.ele.filters.RevealTrans.play();
- }
- else
- CCSSP.ShowObject( this.ele, true);
-}
-
-CAgencyRevealTrans.prototype.EndEffect = function()
-{
- if( typeof( this.ele.filters.RevealTrans ) == "object" )
- this.ele.filters.RevealTrans.stop();
- this.ele.style.filter = "";
-}
-// End of the CAgencyRevealTrans definition
-
-// Begin of CAgencyBlur definition
-function CAgencyBlur( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
-
- // to set the default value
- this.strength = "5";
- this.direction = "90";
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "strength" : this.strength = arrOneSet[1]; break;
- case "direction" : this.direction = arrOneSet[1]; break;
- }
- }
-}
-
-CAgencyBlur.prototype.PrepareEffect = function()
-{
- CCSSP.PrepareFilter(this.ele);
- CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyBlur.prototype.UpdateEffect = function()
-{// to set the visual filter function
- CCSSP.PrepareFilter(this.ele);
- this.ele.style.filter = "blur(strength=" + this.strength +
- ", direction=" + this.direction + ")";
-}
-
-CAgencyBlur.prototype.EndEffect = function()
-{// to remove the visual filter function
- this.ele.style.filter = "";
-}
-// End of the CAgencyBlur definition
-
-// Begin of CAgencyChangeFilter definition
-function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,
-{// because of "visual filter" style, this won't work in Navigator
- this.ele = element;
-
- // to set the default value
- this.filterFunction = settings;
-}
-
-CAgencyChangeFilter.prototype.PrepareEffect = function()
-{
- CCSSP.PrepareFilter(this.ele);
- CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyChangeFilter.prototype.UpdateEffect = function()
-{// to set the visual filter function
- CCSSP.PrepareFilter(this.ele);
- this.ele.style.filter = this.filterFunction;
-}
-
-CAgencyChangeFilter.prototype.EndEffect = function()
-{// to remove the visual filter function
- this.ele.style.filter = "";
-}
-// End of the CAgencyChangeFilter definition
-
-// The effects below change the style on the fly, so they won't work in Navigator
-
-// Begin of CAgencyFontChange definition,
-function CAgencyFontChange( element, settings )
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
- this.ele = element;
-
- // to retrieve the original font style
- this.RetrieveOldFont( this.ele );
-
- // to set the default font to change
- this.newfontFamily = this.ele.oldFontFamily;
- this.newfColor = this.ele.oldColor;
- this.newtextDecoration = this.ele.oldTextDecoration;
- this.newfontWeight = this.ele.oldFontWeight;
- this.newfontStyle = this.ele.oldFontStyle;
- this.newfontSize = this.ele.oldFontSize;
- this.newBackgroundColor = this.ele.oldBackgroundColor;
-
- var arrAllSet = settings.split(",");
- for( var i = 0; i < arrAllSet.length; i ++ )
- {// to retrieve the setting
- arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
- var arrOneSet = arrAllSet[i].split("=");
- for( var j = 0; j < arrOneSet.length; j++ )
- arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
- switch( arrOneSet[0] )
- {
- case "font-family" : this.newfontFamily = arrOneSet[1]; break;
- case "color" : this.newfColor = arrOneSet[1]; break;
- case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;
- case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;
- case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;
- case "size" : this.newfontSize = arrOneSet[1]; break;
- case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;
- }
- }
-}
-
-CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)
-{
- if( typeof(objChild.oldFontFamily) == "undefined" )
- objChild.oldFontFamily = objChild.style.fontFamily;
- if( typeof(objChild.oldColor) == "undefined" )
- objChild.oldColor = objChild.style.color;
- if( typeof(objChild.oldTextDecoration) == "undefined" )
- objChild.oldTextDecoration = objChild.style.textDecoration;
- if( typeof(objChild.oldFontWeight) == "undefined" )
- objChild.oldFontWeight = objChild.style.fontWeight;
- if( typeof(objChild.oldFontStyle) == "undefined" )
- objChild.oldFontStyle = objChild.style.fontStyle;
- if( typeof(objChild.oldFontSize) == "undefined" )
- objChild.oldFontSize = objChild.style.fontSize;
- if( typeof(objChild.oldBackgroundColor) == "undefined" )
- objChild.oldBackgroundColor = objChild.style.backgroundColor;
-}
-
-CAgencyFontChange.prototype.PrepareEffect = function()
-{
- // as for expanding text, the child is created after the constructor called
- for(var index = 0; index < this.ele.all.length; index++)
- this.RetrieveOldFont(this.ele.all[index]);
- CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyFontChange.prototype.UpdateEffect = function()
-{// to change the font
- this.PrepareEffect();
- this.UpdateEffectAllChildren( this.ele );
- for( var index = 0; index < this.ele.all.length; index++)
- this.UpdateEffectAllChildren(this.ele.all[index]);
-}
-
-CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)
-{
- objChild.style.fontFamily = this.newfontFamily;
- objChild.style.color = this.newfColor;
- objChild.style.textDecoration = this.newtextDecoration;
- objChild.style.fontWeight = this.newfontWeight;
- objChild.style.fontStyle = this.newfontStyle;
- objChild.style.fontSize = this.newfontSize;
- objChild.style.backgroundColor = this.newBackgroundColor;
-}
-
-CAgencyFontChange.prototype.EndEffect = function()
-{// to reinstate the original font style
- this.EndEffectAllChildren( this.ele );
- for( var index = 0; index < this.ele.all.length; index++)
- this.EndEffectAllChildren(this.ele.all[index]);
-}
-
-CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )
-{
- if( typeof(objChild.oldFontFamily) != "undefined" )
- objChild.style.fontFamily = objChild.oldFontFamily;
- if( typeof(objChild.oldColor) != "undefined" )
- objChild.style.color = objChild.oldColor;
- if( typeof(objChild.oldFontWeight) != "undefined" )
- objChild.style.fontWeight = objChild.oldFontWeight;
- if( typeof(objChild.oldFontStyle) != "undefined" )
- objChild.style.fontStyle = objChild.oldFontStyle;
- if( typeof(objChild.oldFontSize) != "undefined" )
- objChild.style.fontSize = objChild.oldFontSize;
- if( typeof(objChild.oldTextDecoration) != "undefined" )
- objChild.style.textDecoration = objChild.oldTextDecoration;
- if( typeof(objChild.oldBackgroundColor) != "undefined" )
- objChild.style.backgroundColor = objChild.oldBackgroundColor;
-}
-// End of the CAgencyFontChange definition
-
-// Begin of the CAgencyChangeStyle definition
-function CAgencyChangeStyle( element, settings )
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
- this.ele = element;
-
- // to retrieve the original style
- this.oldstyle = this.ele.style.cssText;
-
- // to set the default style
- this.newStyle = this.oldstyle;
-
- if( typeof(settings) == "string" && settings.length > 1 )
- this.newStyle = this.oldstyle + " " + settings;
-}
-
-CAgencyChangeStyle.prototype.PrepareEffect = function()
-{
- CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyChangeStyle.prototype.UpdateEffect = function()
-{// to change the style
- this.ele.style.cssText = this.newStyle;
-}
-
-CAgencyChangeStyle.prototype.EndEffect = function()
-{// to reinstate the original style
- this.ele.style.cssText = this.oldStyle;
-}
-// End of the CAgencyChangeStyle definition
-
-//End the definition of CAgencyXXXX classes
-
-//Begin to collaborate with other event handler settings
-CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");
-CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");
-CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );
-CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );
-CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");
-//End to collaborate with other event handler settings
-
-/// Section End - CCSSP DHTM 2 (JavaScript 1.2)
-
-//// Segment End -- (JavaScript 1.2)
\ No newline at end of file
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Extrusion</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:27px; height:24px; border-style:none; }
-img_whs3 { border:none; width:411px; height:309px; float:none; border-style:none; }
-ul.whs4 { list-style:disc; }
-table.whs5 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs6 { width:50%; }
-tr.whs7 { x-cell-content-align:top; }
-td.whs8 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs9 { border:none; width:350px; height:201px; border-style:none; }
-td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nModifying meshes\nExtrusion");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Extrusion</h1>
-
-<p>Extrusion is a type of surface meshing by generation from discretized
- lines. It is used to build mesh elements of plus one dimension than the
- swept ones. Each swept 1D element produces one or more quadrangles (or
- triangles if one node of a rotated element lays on the revolution axis).</p>
-
-<p> </p>
-
-<p class=TODO>To use extrusion:</p>
-
-<p class=TODO> </p>
-
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item
- or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box
- will appear:</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><img src="pics/extrusionalongaline1.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"> <img src="pics/extrusionalongaline2.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">2. In this dialog box you should select </p>
-
-<ul type="disc" class="whs4">
-
- <li class=kadov-p><p class="whs1">the type of elements
- which will be extruded (1D or 2D),</p></li>
-
- <li class=kadov-p><p class="whs1">specify the IDs of
- the elements which will be extruded by selecting them in the 3D viewer
- or select the whole mesh or submesh,</p></li>
-
- <li class=kadov-p><p class="whs1">specify the vector
- along which the elements will be extruded,</p></li>
-
- <li class=kadov-p><p class="whs1">number of steps</p></li>
-</ul>
-
-<p class="whs1"> </p>
-
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
-
-<p class=TODO
- style="margin-left: 40px;"> </p>
-
-<p> </p>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">
-<col class="whs6">
-<col class="whs6">
-
-<tr valign="top" class="whs7">
-<td width="50%" class="whs8">
-<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class=TODO> </p>
-
-<p> <span style="font-weight: bold;"><B>See
- Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark9">Extrusion</a>
- operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Extrusion along a path</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:27px; height:24px; border-style:none; }
-img_whs2 { border:none; width:387px; height:334px; float:none; border-style:none; }
-ul.whs3 { list-style:disc; }
-table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs5 { width:50%; }
-tr.whs6 { x-cell-content-align:top; }
-td.whs7 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-p.whs8 { margin-left:0px; margin-right:53px; }
-img_whs9 { border:none; width:389px; height:334px; float:none; border-style:none; }
-td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-p.whs11 { margin-left:0px; }
-p.whs12 { margin-left:40px; }
-col.whs13 { width:33.333%; }
-td.whs14 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
-td.whs15 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-top-style:none; }
-td.whs16 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
-td.whs17 { width:33.333%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
-td.whs18 { width:33.333%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
-td.whs19 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
-p.whs20 { font-weight:bold; margin-left:0px; }
-p.whs21 { font-weight:bold; }
-img_whs22 { border:none; width:441px; height:541px; float:none; border-style:none; }
-p.whs23 { margin-left:84px; }
-p.whs24 { margin-left:156px; }
-p.whs25 { margin-left:156px; font-weight:bold; }
-img_whs26 { border:none; width:26px; height:25px; border-style:none; }
-img_whs27 { border:none; width:29px; height:28px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs8 {margin-left:1pt; }";
- strNSS += "p.whs11 {margin-left:1pt; }";
- strNSS += "p.whs20 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nModifying meshes\nExtrusion along a path");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1><img src="image101.gif" width="27px" height="24px" border="0" class="img_whs1">Extrusion along a path</h1>
-
-<p>In principle, <span style="font-weight: bold;"><B>Extrusion along a path</B></span>
- works in the same way as <span style="font-weight: bold;"><B>Extrusion</B></span>,
- the main difference is that we define not a vector, but a path of extrusion
- which must be a meshed edge. To get an idea of how this algorithm works,
- examine several examples, starting from the most simple case of extrusion
- along a straight edge. In all examples the same mesh will be extruded
- along different paths and with different parameters. This sample 2D mesh
- has two quadrangle faces and seven edges. Look at the picture, where white
- digits are the node numbers and green are the element numbers:</p>
-
-<p><span style="margin-left: 40px;"><img src="pics/mesh_for_extr_along_path.png" x-maintain-ratio="TRUE" width="387px" height="334px" border="0" class="img_whs2"> .</span></p>
-
-<p> </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Extrusion along
- a straight edge</B></span> (not using base point or angles)</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs5">
-<col class="whs5">
-
-<tr valign="top" class="whs6">
-<td width="50%" class="whs7">
-<p class="whs8"><img src="pics/straight_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p class="whs11"><img src="pics/straight_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class="whs12"> </p>
-
-<p class="whs12">The left image shows a 1D path mesh, built
- on a linear edge, and the initial 2D mesh. The right image shows the result
- of extrusion of two edges (#1 and #2) of the initial mesh along the path.
- Node #1 of path mesh has been selected as <span style="font-weight: bold;"><B>Start
- node</B></span>.</p>
-
-<p class="whs12"> </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p><span style="font-weight: bold;"><B>Extrusion along
- a curvilinear edge</B></span> (with and without angles)</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs13">
-<col class="whs13">
-<col class="whs13">
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs14">
-<p><img src="pics/curvi_simple_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs15">
-<p><img src="pics/curvi_simple_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs16">
-<p><img src="pics/curvi_angles_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs17">
-<p>The left image shows a 1D path mesh, built on curvilinear edge, and
- the initial 2D
- mesh.</td>
-<td width="33.333%" class="whs18">
-<p>The central image shows the result of extrusion of one edge (#2) of
- the initial mesh along the path. Node
- #1 of path mesh has been selected as <span style="font-weight: bold;"><B>Start
- node</B></span>.</td>
-<td width="33.333%" class="whs19">
-<p>The same, but using angles {45, 45, 45, 0, -45, -45, -45}</td></tr>
-</table>
-
-<p class="whs11"> </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Extrusion
- along a sub-mesh.</B></span></p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs5">
-<col class="whs5">
-
-<tr valign="top" class="whs6">
-<td width="50%" class="whs7">
-<p><img src="pics/edge_wire_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p><img src="pics/edge_wire_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class="whs12"> </p>
-
-<p class="whs12">In this example the path mesh has been built
- on a wire (polyline with six edges). The first edge of the wire was used
- as <span style="font-weight: bold;"><B>Shape (edge)</B></span>, node #1 as <span
- style="font-weight: bold;"><B>Start node</B></span>. The angles have been defined
- as {10, 10, 10}. The middle edge (#4) of the initial mesh has been extruded.</p>
-
-<p class="whs12"> </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p class="whs20">Extrusion
- of 2d elements along a sub-mesh.</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs5">
-<col class="whs5">
-
-<tr valign="top" class="whs6">
-<td width="50%" class="whs7">
-<p><img src="pics/edge_wire_3d_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p><img src="pics/edge_wire_3d_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class="whs12"> </p>
-
-<p class="whs12">This extrusion bases on the same path mesh
- as in the previous example but the third edge of the wire was set as <span
- style="font-weight: bold;"><B>Shape (edge)</B></span> and node #4 as <span style="font-weight: bold;"><B>Start
- node</B></span>. Please note, that the extrusion has been done in direction
- from node #4 to node #3, i.e. against the wire direction. In this example
- both faces of the initial mesh have been extruded.</p>
-
-<p class="whs12"> </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p class="whs21">Extrusion of 2d elements
- along a closed path.</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs13">
-<col class="whs13">
-<col class="whs13">
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs14">
-<p><img src="pics/circle_simple_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs15">
-<p><img src="pics/circle_simple_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs16">
-<p><img src="pics/circle_angles_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs17">
-<p>The left image shows a path mesh built on a closed edge (circle).</td>
-<td width="33.333%" class="whs18">
-<p>The central image shows the result of extrusion of both faces of the
- initial mesh. Note, that no sewing has been done, so, there are six coincident
- nodes and two coincident faces in the resulting mesh.</td>
-<td width="33.333%" class="whs19">
-<p>The same, but using angles {45, -45, 45, -45, 45, -45, 45, -45}</td></tr>
-</table>
-
-<p class="whs12"> </p>
-
-<p> </p>
-
-<p class=TODO>To use Extrusion along a path:</p>
-
-<p class="whs12">1. From the <span style="font-weight: bold;"><B>Modification
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion along
- a path </B></span>item or click <img src="image101.gif" width="27px" height="24px" border="0" class="img_whs1"> button in the toolbar. The
- following dialog box will appear:</p>
-
-<p class="whs12"> </p>
-
-<p class=TODO
- style="margin-left: 80px;"><img src="pics/extrusion1.png" x-maintain-ratio="TRUE" width="441px" height="541px" border="0" class="img_whs22"></p>
-
-<p class="whs12"> </p>
-
-<p class="whs12">2. In the dialog box you should </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p class="whs23">select the type of
- elements which will be extruded (1D or 2D),</p></li>
-
- <li class=kadov-p><p class="whs23">specify the <span style="font-weight: bold;"><B>IDs
- of the elements</B></span> which will be extruded by selecting them in the
- 3D viewer or <span style="font-weight: bold;"><B>Select the whole mesh, submesh
- or group</B></span>,</p></li>
-
- <li class=kadov-p><p class="whs23">define the <span style="font-weight: bold;"><B>Path</B></span>
- along which the elements will be extruded, </p></li>
-</ul>
-
-<p class="whs24">Path definition consists of several elements
- </p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p class="whs25">Mesh
- - <span style="font-weight: normal;">containing a 1D sub-mesh on the edge,
- along which proceeds the extrusion.</span></p></li>
-
- <li class=kadov-p><p class="whs25">Shape
- (edge) - <span style="font-weight: normal;">as the mesh can be complex,
- the edge is used to define the sub-mesh for the path.</span></p></li>
-
- <li class=kadov-p><p class="whs25">Start
- node - <span style="font-weight: normal;"> the
- first or the last node on the edge. It is used to define the direction
- of extrusion.</span></p></li>
-</ul>
-
-<p class="whs12"> </p>
-
-<p class="whs12">3. There are two optional parameters, which
- can be very useful.</p>
-
-<ul type="disc" class="whs3">
-
- <li class=kadov-p><p class="whs23">If the path of extrusion
- is curvilinear, at each iteration the extruded shape is rotated to keep
- its initial angularity to the curve. By default, the <span style="font-weight: bold;"><B>Base
- Point</B></span> around which the shape is rotated is the mass center of the
- shape, however, you can specify any point as the <span style="font-weight: bold;"><B>Base
- Point</B></span> and the shape will be rotated with respect to this point.</p></li>
-
- <li class=kadov-p><p class="whs23">The shape can also
- be rotated around the path to get the resulting mesh in a helical fashion.
- You can set the values of angles at the right, add them to the list of
- angles at the left by pressing the <img src="image105.gif" width="26px" height="25px" border="0" class="img_whs26"> button and remove them
- from the list by pressing the <img src="image106.gif" width="29px" height="28px" border="0" class="img_whs27"> button. </p></li>
-</ul>
-
-<p class="whs12">4. Click the <span style="font-weight: bold;"><B>Apply
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button. Mesh edges
- will be extruded into faces, faces into volumes. The external surface
- of the resulting 3d mesh (if faces have been extruded) is covered with
- faces, and corners with edges. If the path is closed, the resulting mesh
- can contain duplicated nodes and faces, because no sewing is done.</p>
-
-<p class="whs12"> </p>
-
-<p> <span style="font-weight: bold;"><B>See
- Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark10">Extrusion
- along a Path</a> operation. </p>
-
-<p> </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Free borders</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:278px; height:231px; float:none; border-style:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs4 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nFree borders");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Free borders</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces
- consisting of edges belonging to one face only.</p>
-
-<p> </p>
-
-<p class="whs2"><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs3"> </p>
-
-<p> </p>
-
-<p>In this picture the free borders are displayed in white. </p>
-
-<p> </p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of a <a href="quality_controls.htm#bookmark">Free
- Borders quality control</a> operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Free_edges</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; border-style:none; width:395px; height:445px; float:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs4 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nFree edges");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Free edges</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This
- mesh quality control highlights borders of elements
- of mesh consisting of edges belonging to one element of mesh only.</p>
-
-<p> </p>
-
-<p class="whs2"><img src="pics/free_edges.png" x-maintain-ratio="TRUE" width="395px" height="445px" border="0" class="img_whs3"></p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">In this picture some elements of mesh have
- been deleted and the "holes" are outlined in red. </p>
-
-<p class="whs2"> </p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of a <a href="quality_controls.htm#bookmark3">Free
- Edges quality control</a> operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Grouping Elements</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; }
-img_whs4 { border:none; width:430px; height:391px; float:none; border-style:none; }
-img_whs5 { border:none; float:none; width:463px; height:417px; border-style:none; }
-img_whs6 { border:none; width:541px; height:417px; float:none; border-style:none; }
-img_whs7 { border:none; width:394px; height:425px; float:none; border-style:none; }
-img_whs8 { border:none; float:none; width:368px; height:379px; border-style:none; }
-img_whs9 { border:none; float:none; width:344px; height:381px; border-style:none; }
-img_whs10 { border:none; width:314px; height:351px; float:none; border-style:none; }
-img_whs11 { border:none; float:none; width:319px; height:351px; border-style:none; }
-img_whs12 { border:none; float:none; width:304px; height:352px; border-style:none; }
-img_whs13 { border:none; width:318px; height:355px; float:none; border-style:none; }
-img_whs14 { border:none; float:none; width:318px; height:355px; border-style:none; }
-img_whs15 { border:none; float:none; width:320px; height:354px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nGrouping Elements");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Grouping Elements</h1>
-
-<h3><a name=bookmark>Create a Standalone Group</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Get ids of all faces
- with area > 100 </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, 100.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group consisting
- of faces with area > 100</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aGroup = mesh.MakeGroupByIds("Area
- > 100", smesh.FACE, anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"><img src="pics/create_group.png" x-maintain-ratio="TRUE" width="430px" height="391px" border="0" class="img_whs4"></p>
-
-<h3><a name=bookmark5>Create a Group on Geometry</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBox(0.,
- 0., 0., 100., 100., 100.)</p>
-
-<p class="whs1">geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add the first face
- of the box to the study</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">subShapeList
- = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])</span></p>
-
-<p class="whs1">face = subShapeList[0]</p>
-
-<p class="whs1">geompy.addToStudyInFather(box,
- face, "face 1") </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create group of edges
- on the face</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGeomGroupE
- = geompy.CreateGroup(face, geompy.ShapeType["EDGE"])</span></p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE,
- 3)</p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE,
- 6)</p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE,
- 8)</p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE,
- 10)</p>
-
-<p class="whs1">geompy.addToStudyInFather(face,
- aGeomGroupE, "Group of Edges")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create quadrangle
- 2D mesh on the box</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">quadra
- = smesh.Mesh(box, "Box : quadrangle 2D mesh")</span></p>
-
-<p class="whs1">algo1D = quadra.Segment()</p>
-
-<p class="whs1">quadra.Quadrangle()</p>
-
-<p class="whs1">algo1D.NumberOfSegments(7)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># compute the mesh</p>
-
-<p class="whs1">quadra.Compute()</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create SMESH group
- on the face with name "SMESHGroup1"</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aSmeshGroup1
- = quadra.GroupOnGeom(face, "SMESHGroup1")</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create SMESH group
- on <aGeomGroupE> with default name</p>
-
-<p class="whs1">aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE)
- </p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark1>Edit a Group</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Get ids of all faces
- with area > 35</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, 35.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area > 35, Nb = ", len(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area > 35</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Area > 35")</span></p>
-
-<p class="whs1">aGroup.Add(anIds)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Get ids of all faces
- with area > 40</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, 40.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area > 40, Nb = ", len(anIds) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group of
- elements with area [35; 40] by removing elements with area > 40 from
- group aGroup</p>
-
-<p class="whs1">aGroup.Remove(anIds)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">aGroupElemIDs =
- aGroup.GetListOfID()</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- 35 < Area < 40, Nb = ", len(aGroupElemIDs)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(aGroupElemIDs)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- aGroupElemIDs[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"><img src="pics/editing_groups1.png" x-maintain-ratio="TRUE" width="463px" height="417px" border="0" class="img_whs5"> <img src="pics/editing_groups2.png" x-maintain-ratio="TRUE" width="541px" height="417px" border="0" class="img_whs6"></p>
-
-<h3><a name=bookmark2>Union of two groups</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- > 20</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area > 20, Nb = ", len( anIds ) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area > 20</p>
-
-<p class="whs1">aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE,
- "Area > 20")</p>
-
-<p class="whs1">aGroup1.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- = 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area = 20, Nb = ", len( anIds ) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area = 20</p>
-
-<p class="whs1">aGroup2 = mesh.CreateEmptyGroup(
- smesh.FACE, "Area = 20" )</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aGroup2.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create union group
- : area >= 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup3
- = mesh.UnionGroups(aGroup1, aGroup2, "Area >= 20")</span></p>
-
-<p class="whs1">print "Criterion:
- Area >= 20, Nb = ", len(aGroup3.GetListOfID())</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- < 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area < 20, Nb = ", len(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area < 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup4
- = mesh.CreateEmptyGroup(smesh.FACE, "Area < 20")</span></p>
-
-<p class="whs1">aGroup4.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create union group
- : area >= 20 and area < 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup5
- = mesh.UnionGroups(aGroup3, aGroup4, "Any Area")</span></p>
-
-<p class="whs1">print "Criterion:
- Any Area, Nb = ", len(aGroup5.GetListOfID())</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><img src="pics/union_groups1.png" x-maintain-ratio="TRUE" width="394px" height="425px" border="0" class="img_whs7"></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><img src="pics/union_groups2.png" x-maintain-ratio="TRUE" width="368px" height="379px" border="0" class="img_whs8"> <img src="pics/union_groups3.png" x-maintain-ratio="TRUE" width="344px" height="381px" border="0" class="img_whs9"></p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark3>Intersection of two groups</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- > 20</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area > 20, Nb = ", len(anIds) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area > 20</p>
-
-<p class="whs1">aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE,
- "Area > 20")</p>
-
-<p class="whs1">aGroup1.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- < 60</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_LessThan, 60.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area < 60, Nb = ", len(anIds) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area < 60</p>
-
-<p class="whs1">aGroup2 = mesh.CreateEmptyGroup(SMESH.FACE,
- "Area < 60")</p>
-
-<p class="whs1">aGroup2.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create an intersection
- of groups : 20 < area < 60</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup3
- = mesh.IntersectGroups(aGroup1, aGroup2, "20 < Area < 60")</span></p>
-
-<p class="whs1">print "Criterion:
- 20 < Area < 60, Nb = ", len(aGroup3.GetListOfID())</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"><img src="pics/intersect_groups1.png" x-maintain-ratio="TRUE" width="314px" height="351px" border="0" class="img_whs10"> <img src="pics/intersect_groups2.png" x-maintain-ratio="TRUE" width="319px" height="351px" border="0" class="img_whs11"> <img src="pics/intersect_groups3.png" x-maintain-ratio="TRUE" width="304px" height="352px" border="0" class="img_whs12"></p>
-
-<h3><a name=bookmark4>Cut of two groups</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- > 20</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area > 20, Nb = ", len(anIds) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area > 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupMain
- = mesh.MakeGroupByIds("Area > 20", smesh.FACE, anIds)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Criterion : AREA
- < 60</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_LessThan, 60.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">print "Criterion:
- Area < 60, Nb = ", len(anIds) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group by
- adding elements with area < 60</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupTool
- = mesh.MakeGroupByIds("Area < 60", smesh.FACE, anIds)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a cut of groups
- : area >= 60</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupRes
- = mesh.CutGroups(aGroupMain, aGroupTool, "Area >= 60")</span></p>
-
-<p class="whs1">print "Criterion:
- Area >= 60, Nb = ", len(aGroupRes.GetListOfID())</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"><img src="pics/cut_groups1.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs13"> <img src="pics/cut_groups2.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs14"> <img src="pics/cut_groups3.png" x-maintain-ratio="TRUE" width="320px" height="354px" border="0" class="img_whs15"></p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript">
-<!--
-var strDefaultTopic = "about:blank";
-var nWebhelpNavPaneMode = 1; //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
-var bNoApplet = false;
-var strPaneDHTML = "whd_nvp10.htm"; //whd_nvp10.htm if tab enabled, whnframe.htm if tab disabled.
-var strPaneApplet = "whd_nvp20.htm";
-var strPaneList = "whgdata/whnvp30.htm";
-
-var strHTML = "";
-var strPane = "";
-var nViewFrameType = -1;
-
-function CMRServer()
-{
- this.m_cAgents = new Array;
-}
-var cMRServer = new CMRServer;
-
-//figure out which mode is the best
-if (!window.gAgent)
-{
- // low end browser, we don't even try to determine it.
- document.location = "whnjs.htm";
-}
-else
-{
- if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
- document.location = "whnjs.htm";
- else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
- document.location = "whnjs.htm";
- else if (gbMac && gbIE4 && !gbIE5)
- document.location = "whnjs.htm";
- //figure out which mode is the best
- else
- {
- nViewFrameType=nWebhelpNavPaneMode;
- if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
- {
- var gbDHTML=(nWebhelpNavPaneMode==1);
- if (gbNav4) nViewFrameType = 2;
- if (gbNav4&&(gnVerMinor < 4.1)) nViewFrameType = 3;
- if (gbNav4&&(gnVerMinor == 4.6)) nViewFrameType = 3;
- if (gbIE4&&gbDHTML) nViewFrameType = 1;
- if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2) nViewFrameType = 3;
- if (gbNav6&&gbDHTML) nViewFrameType = 1;
- if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2) nViewFrameType = 3;
- if (gbMac) nViewFrameType = 3;
- if (gbOpera7&&nViewFrameType == 2) nViewFrameType = 3;
- if ((bNoApplet)&&(nViewFrameType == 2)) nViewFrameType = 3;
- }
- }
-}
-
-if (nViewFrameType!=-1)
-{
- var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
- //The colordepth of the 16 color on Windows is 1.
- if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
- {
- alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");
- nViewFrameType = 3;
- }
-
- //figure out which one is navpane
- if (nViewFrameType == 1)
- strPane = strPaneDHTML;
- else if (nViewFrameType == 2)
- strPane = strPaneApplet;
- else
- strPane = strPaneList;
-
- var oParam = new Object();
- oParam.sTopic = "";
- var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
- if (SendMessage(oMsg) && oParam.sTopic != "")
- strDefaultTopic = oParam.sTopic;
-
-
- if (nViewFrameType == 1)
- {
- //DHTML (iframe or xml based)
- strHTML += "<frameset id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
- strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
- strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
- }
- else if (nViewFrameType == 2)
- {
- //applet (xml based)
- strHTML += "<frameset id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
- strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
- strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
- }
- else if (nViewFrameType == 3)
- {
- //generic html (pure html based)
- strHTML += "<frameset id=\"whPfset\" cols=\"260,*\">";
- strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\" scrolling=\"no\"></frame>";
- strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
- strHTML += "</frameset>";
- }
- else if (nViewFrameType == 4)
- {
- //no navipane at all
- strHTML += "<frameset id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
- strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
- strHTML += "</frameset>";
- }
-
- document.write(strHTML);
-
- RegisterListener2(window, WH_MSG_SHOWPANE);
- RegisterListener2(window, WH_MSG_HIDEPANE);
- RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
- window.onunload = window_unload;
-}
-
-function window_unload()
-{
- UnRegisterListener2(window, WH_MSG_SHOWPANE);
- UnRegisterListener2(window, WH_MSG_HIDEPANE);
- UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-}
-
-
-function onSendMessage(oMsg)
-{
- var nMsgId = oMsg.nMessageId;
- if (nMsgId == WH_MSG_SHOWPANE)
- {
- getElement("whPfset").cols = "260,*";
- var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
- if (SendMessage(onMsg))
- {
- onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
- SendMessage(onMsg);
- }
- return false;
- }
- else if (nMsgId == WH_MSG_HIDEPANE)
- {
- getElement("whPfset").cols = "0,*";
- var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
- SendMessage(onMsg);
- return false;
- }
- else if (nMsgId == WH_MSG_ISPANEVISIBLE)
- {
- var n = parseInt(getElement("whPfset").cols);
- if (n > 0)
- {
- oMsg.oParam.bVisible = true;
- }
- return false;
- }
- return true;
-}
-//-->
-</script>
-<body>
-<noscript>
- <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>
-</noscript>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gCSHFileName = "whc_data.htm";
-var gCSHSuffixName1 = "_csh.html";
-var gCSHSuffixName2 = "_csh.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-gCSHFileName="cshdat_webhelp.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-var gasProj = new Array();
-gasProj[0] = _getPath(document.location.href);
-var gCurrent = 0;
-
-function addProject(strProj)
-{
- var len = gasProj.length;
- if (strProj)
- {
- strProj = _replaceSlash(strProj);
- if (strProj.lastIndexOf("/") != strProj.length - 1)
- strProj += "/";
- var strPPath = _getFullPath(_getPath(document.location.href), strProj);
- var bFound = false;
- for (var i = 0; i < len; i ++)
- {
- if (isSamePath(gasProj[i], strPPath))
- {
- bFound = true;
- break;
- }
- }
- if (!bFound)
- gasProj[len] = strPPath;
- }
-}
-
-function isSamePath(strPath1, strPath2)
-{
- return strPath1.toLowerCase() == strPath2.toLowerCase();
-}
-
-function goNext()
-{
- gCurrent ++;
- var len = gasProj.length;
- if (gCurrent >= len)
- return getHomePage()
- else
- frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
- return "";
-}
-
-function getRelHomePage(strLocation)
-{
- var strCurPPath = _getPath(strLocation);
- var strOriPPath = _getPath(getHomePage());
- var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
- var strURL = getHomePage() + "#" + strRelPath;
- return strURL;
-}
-
-function getHomePage()
-{
- var strHomePage;
- var strTmp = location.toString();
- var nPos = strTmp.indexOf("#");
- if (nPos != -1)
- {
- strHomePage = strTmp.substring(0, nPos);
- }
- else
- {
- strHomePage = strTmp;
- }
- var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
- var nPos = strHomePage.indexOf(gCSHSuffixName2);
- if (nPos != -1)
- {
- strHomePage = strHomePage.substring(0,nPos);
- if (nPos1 != -1)
- strHomePage += ".html";
- else
- strHomePage += ".htm";
- }
- return strHomePage;
-}
-//-->
-</script>
-</head>
-<frameset rows="1,*">
-<frame name="dumb" src="about:blank"></frame>
-<frame name="csh" src="cshdat_webhelp.htm"></frame>
-</frameset>
-</html>
\ No newline at end of file
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gCSHFileName = "whc_data.htm";
-var gCSHSuffixName1 = "_rhc.html";
-var gCSHSuffixName2 = "_rhc.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-gCSHFileName="cshdat_robohelp.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-var gasProj = new Array();
-gasProj[0] = _getPath(document.location.href);
-var gCurrent = 0;
-
-function addProject(strProj)
-{
- var len = gasProj.length;
- if (strProj)
- {
- strProj = _replaceSlash(strProj);
- if (strProj.lastIndexOf("/") != strProj.length - 1)
- strProj += "/";
- var strPPath = _getFullPath(_getPath(document.location.href), strProj);
- var bFound = false;
- for (var i = 0; i < len; i ++)
- {
- if (isSamePath(gasProj[i], strPPath))
- {
- bFound = true;
- break;
- }
- }
- if (!bFound)
- gasProj[len] = strPPath;
- }
-}
-
-function isSamePath(strPath1, strPath2)
-{
- return strPath1.toLowerCase() == strPath2.toLowerCase();
-}
-
-function goNext()
-{
- gCurrent ++;
- var len = gasProj.length;
- if (gCurrent >= len)
- return getHomePage()
- else
- frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
- return "";
-}
-
-function getRelHomePage(strLocation)
-{
- var strCurPPath = _getPath(strLocation);
- var strOriPPath = _getPath(getHomePage());
- var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
- var strURL = getHomePage() + "#" + strRelPath;
- return strURL;
-}
-
-function getHomePage()
-{
- var strHomePage;
- var strTmp = location.toString();
- var nPos = strTmp.indexOf("#");
- if (nPos != -1)
- {
- strHomePage = strTmp.substring(0, nPos);
- }
- else
- {
- strHomePage = strTmp;
- }
- var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
- var nPos = strHomePage.indexOf(gCSHSuffixName2);
- if (nPos != -1)
- {
- strHomePage = strHomePage.substring(0,nPos);
- if (nPos1 != -1)
- strHomePage += ".html";
- else
- strHomePage += ".htm";
- }
- return strHomePage;
-}
-//-->
-</script>
-</head>
-<frameset rows="1,*">
-<frame name="dumb" src="about:blank"></frame>
-<frame name="csh" src="cshdat_robohelp.htm"></frame>
-</frameset>
-</html>
\ No newline at end of file
--- /dev/null
+/*!
+
+\page a1d_meshing_hypo_page 1D Meshing Hypotheses
+
+<br>
+<ul>
+<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref average_length_anchor "Average Length"</li>
+<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref start_and_end_length_anchor "Start and end length"</li>
+<li>\ref automatic_length_anchor "Automatic Length"</li>
+</ul>
+
+<br>
+\anchor arithmetic_1d_anchor
+<h2>Arithmetic 1D hypothesis</h2>
+
+<b>Arithmetic 1D</b> hypothesis allows to split edges into segments with a
+length that changes in arithmetic progression (Lk = Lk-1 + d)
+beginning from a given starting length and up to a given end length.
+
+\image html a-arithmetic1d.png
+
+\image html b-ithmetic1d.png
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_1d_arithmetic "Defining Arithmetic 1D hypothesis" operation.
+
+<br>
+\anchor deflection_1d_anchor
+<h2>Deflection 1D hypothesis</h2>
+
+<b>Deflection 1D</b> hypothesis can be applied for meshing curvilinear edges
+composing your geometrical object. It uses only one parameter: the
+value of deflection.
+\n A geometrical edge is divided into equal segments. The maximum
+distance between a point on the edge within a segment and the line
+connecting the ends of the segment should not exceed the specified
+value of deflection . Then mesh nodes are constructed at end segment
+locations and 1D mesh elements are constructed on segments.
+
+\image html a-deflection1d.png
+
+\image html b-flection1d.png
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_deflection_1d "Defining Deflection 1D hypothesis" operation.
+
+<br>
+\anchor average_length_anchor
+<h2>Average Length hypothesis</h2>
+
+<b>Average Length</b> hypothesis can be applied for meshing of edges
+composing your geometrical object. Definition of this hypothesis
+consists of setting the \b length of segments, which will split these
+edges. The points on the edges generated by these segments will
+represent nodes of your mesh. Later these nodes will be used for
+meshing of the faces abutting to these edges.
+
+\image html image41.gif
+
+\image html a-averagelength.png
+
+\image html b-erage_length.png
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_average_length "Defining Average Length" hypothesis
+operation.
+
+<br>
+\anchor number_of_segments_anchor
+<h2>Number of segments hypothesis</h2>
+
+<b>Number of segments</b> hypothesis can be applied for meshing of edges
+composing your geometrical object. Definition of this hypothesis
+consists of setting the number of segments, which will split these
+edges. In other words your edges will be split into a definite number
+of segments with approximately the same length. The points on the
+edges generated by these segments will represent nodes of your
+mesh. Later these nodes will be used for meshing of the faces abutting
+to these edges.
+
+\image html image46.gif
+
+You can set the type of distribution for this hypothesis in the
+<b>Hypothesis Construction</b> dialog bog :
+
+\image html a-nbsegments1.png
+
+<br><b>Equidistant Distribution</b> - all segments will have the same
+length, you define only the <b>Number of Segments</b>.
+
+\image html b-mberofsegments.png
+
+<br><b>Scale Distribution</b> - each next segment differs from the
+previous according to the formula: <b>A</b>i+1 = <b>A</b>i * k, where \b k is a
+<b>Scale Factor</b>.
+
+\image html a-nbsegments2.png
+
+<br><b>Distribution with Table Density</b> - you input a number of
+pairs <b>t - F(t)</b>, where \b t ranges from 0 to 1, and the module computes the
+formula, which will rule the change of length of segments and shows
+the curve in the plot. You can select the <b>Conversion mode</b> from
+\b Exponent and <b>Cut negative</b>.
+
+\image html distributionwithtabledensity.png
+
+<br><b>Distribution with Analytic Density</b> - you input the formula,
+which will rule the change of length of segments and the module shows
+the curve in the plot.
+
+\image html distributionwithanalyticdensity.png
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_deflection_1d "Defining Number of Segments" hypothesis
+operation.
+
+<br>
+\anchor start_and_end_length_anchor
+<h2>Start and End Length hypothesis</h2>
+
+<b>Start and End Length</b> hypothesis allows to divide a geometrical edge
+into segments so that the first and the last segments have a specified
+length. The length of each but the first segment differs from length
+of the previous one by a constant factor. Then mesh nodes are
+constructed at segment ends location and 1D mesh elements are
+constructed on them.
+
+\image html a-startendlength.png
+
+\image html b-art_end_length.png
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_start_and_end_length "Defining Start and End Length"
+hypothesis operation.
+
+<br>
+\anchor automatic_length_anchor
+<h2>Automatic Length</h2>
+
+This hypothesis is automatically applied when you select <b>Assign a
+set of hypotheses</b> option in Create Mesh menu.
+
+\image html automaticlength.png
+
+The dialog box prompts you to define the quality of the future mesh by
+only one parameter, which is \b Fineness, ranging from 0 (coarse mesh,
+low number of elements) to 1 (extremely fine mesh, great number of
+elements). Compare one and the same object (sphere) meshed with
+minimum and maximum value of this parameter.
+
+\image html image147.gif
+
+\image html image148.gif
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page a2d_meshing_hypo_page 2D Meshing Hypotheses
+
+<br>
+<ul>
+<li>\ref max_element_area_anchor "Max Element Area"</li>
+<li>\ref length_from_edges_anchor "Length from Edges"</li>
+<li>\ref quadrangle_preference_anchor "Quadrangle Preference"</li>
+</ul>
+
+<br>
+\anchor max_element_area_anchor
+<h2>Max Element Area</h2>
+
+<b>Max Element Area</b> hypothesis is applied for meshing of 2D faces
+composing your geometrical object. Definition of this hypothesis
+consists of setting the <b>maximum area</b> of meshing elements (depending on
+the chosen meshing algorithm it can be <b>triangles</b> or <b>quadrangles</b>),
+which will compose the mesh of these 2D faces.
+
+\image html a-maxelarea.png
+
+\image html max_el_area.png
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_max_element_area "Maximum Element Area" hypothesis
+operation.
+
+<br>
+\anchor length_from_edges_anchor
+<h2>Length from Edges</h2>
+
+<b>Length from edges</b> hypothesis builds 2D mesh segments having a
+length calculated as an average edge length for a given wire.
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_length_from_edges "Length from Edges" hypothesis operation.
+
+<br>
+\anchor quadrangle_preference_anchor
+<h2>Quadrangle Preference</h2>
+
+This algorithm can be used only together with Quadrangle (Mapping)
+algorithm. It allows to build quadrangular meshes even if the number
+of nodes at the opposite edges of a meshed face is not equal,
+otherwise this mesh will contain some triangular elements.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page about_hypo_page About Hypotheses
+
+\n \b Hypotheses represent boundary conditions which will be taken into
+account at calculations of meshes or submeshes basing on geometrical
+objects. These hypotheses allow you to manage the level of detail of
+the resulting meshes or submeshes: when applying different hypotheses
+with different parameters you can preset the quantity of meshing
+elements which will compose your mesh. So, it will be possible to
+generate a rough or a more refined mesh or submesh.
+
+In \b MESH there are the following Basic Hypotheses (to introduce
+them, you operate numerical values):
+<ul>
+<li>\ref a1d_meshing_hypo_page "1D Hypotheses" (for meshing of
+<b>edges</b>):</li>
+<ul>
+<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref average_length_anchor "Average Length"</li>
+<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref start_and_end_length_anchor "Start and end length"</li>
+<li>\ref automatic_length_anchor "Automatic Length"</li>
+</ul>
+<li>\ref a2d_meshing_hypo_page "2D Hypotheses" (for meshing of <b>faces</b>):</li>
+<ul>
+<li>\ref max_element_area_anchor "Max Element Area"</li>
+<li>\ref length_from_edges_anchor "Length from Edges"</li>
+<li>\ref quadrangle_preference_anchor "Quadrangle Preference"</li>
+</ul>
+<li>3D Hypothesis (for meshing of <b>volumes</b>):</li>
+<ul>
+<li>\ref max_element_volume_hypo_page "Max Element Volume"</li>
+</ul>
+</ul>
+
+There also exist some
+\ref additional_hypo_page "Additional Hypotheses":
+<ul>
+<li>Propagation of 1D Hypothesis on opposite edges</li>
+<li>Non conform mesh allowed</li>
+<li>Quadratic mesh</li>
+</ul>
+
+The choice of a hypothesis depends on:
+<ul>
+<li>the geometrical object (shape) which will be meshed</li>
+<li>the algorithm, which will be selected for meshing of this geometrical object (shape)</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page about_meshes_page About meshes
+
+\n \b MESH represents a discretization of a geometrical CAD model into
+a set of entities with a simple topology. In MESH there are two
+options of creation of meshes, you can:
+
+<ul>
+<li>generate meshes on the basis of geometrical shapes produced in the GEOM module,</li>
+<li>create your own meshes using the MESH functions destined for modification of generated meshes.</li>
+</ul>
+
+The topology of a mesh is described by the relationships between its
+entities including:
+
+<ul>
+<li>\b Node — 0D element of a mesh presented by a point with coordinates (x, y, z).</li>
+<li>\b Edge — 1D element of a mesh defined by two nodes.</li>
+<li>\b Face — 2D element of a mesh defined by three or four edges (closed contour).</li>
+<li>\b Volume — 3D element of a mesh defined by several faces.</li>
+</ul>
+
+ These entities are
+considered as topological entities and they don't
+imply any geometric representation. Only \b Nodes reference geometric
+representations of points with definite coordinates. The node entity
+will contain additional information about its position in the space
+and its relations with the meshed CAD model. Its position could be
+described in the following way:
+
+<ul>
+<li><b>2D position</b>. It is a free position defined by only two coordinates x,y.</li>
+<li><b>3D position</b>. It is a free position defined by three coordinates x,y and z. </li>
+<li><b>Surface position</b>. It characterizes the position of a node on a
+geometric surface and is defined by the u,v position in the parametric
+space of the corresponding surface.</li>
+<li><b>Line position</b>. It characterizes the position of a node on a
+geometric curve and is defined by the u parameter and the
+corresponding curve.</li>
+<li><b>Vertex position</b>. It characterizes the position of a node on a
+geometric point of the meshed CAD model and is defined by the x,y,z
+coordinates of the corresponding vertex.</li>
+</ul>
+
+<br><h2>Connections</h2>
+
+Each mesh entity bounds 0 or more mesh entities of higher
+dimension. In the same way each mesh entity is bounded by 0 or more
+mesh entities of lower dimension:
+
+<ul>
+<li>A node bounds edges, faces and volumes</li>
+<li>An edge bounds faces, and volumes</li>
+<li>A face bounds volumes</li>
+<li>A volume is bounded by faces, edges and nodes</li>
+<li>A face is bounded by edges, and nodes</li>
+<li>An edge is bounded by nodes</li>
+</ul>
+
+You can notice that there are two types of connections: \b inverse and
+\b direct connections.
+
+<br><h2>Inverse connections</h2>
+
+This relationship has a particularity that the order of bounded
+entities has not a direct meaning. Also the number of bounded entities
+is not fixed.
+
+\b Example: The edges surrounding a node. The 3rd edge has no more
+sense that the 5th one.
+
+<br><h2>Direct connections</h2>
+
+This relationship has a particularity that the order of bounding
+entities is meaningful. The number of bounding entities is fixed and
+depends on the type of the entity (hexahedron, tetrahedron,?).
+
+\b Example: An edge is composed of two nodes. A face is composed of 3
+or 4 edges depending if we are dealing with triangles or quadrangles.
+
+The connections are not only restricted to entities of one dimension
+higher or lower. For example some algorithms may be interested to
+retrieve all the faces surrounding a node.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page about_quality_controls_page About quality controls
+
+\n <b>Mesh quality control</b> in MESH is destined for visual control of the generated mesh.
+
+Application of a definite quality control consists of usage of the
+corresponding algorithm, which calculates a value of a definite
+geometric characteristic (Area, Length of edges, etc) for all meshing
+elements, composing your mesh. Then all meshing elements are colored
+according the calculated values. The reference between the coloring of
+the meshing elements and these calculated values is shown with the
+help of a scalar bar, which is displayed near the presentation of your
+mesh.
+
+There are 1D, 2D and 3D quality controls.
+
+1D mesh quality controls:
+<ul>
+<li>\ref free_borders_page "Free borders"</li>
+<li>\ref borders_at_multi_connection_page "Borders at multi-connection"</li>
+<li>\ref length_page "Length"</li>
+</ul>
+
+2D mesh quality controls:
+<ul>
+<li>\ref free_edges_page "Free edges"</li>
+<li>\ref length_2d_page "Length 2D"</li>
+<li>\ref borders_at_multi_connection_2d_page "Borders at multi-connection 2D"</li>
+<li>\ref area_page "Area"</li>
+<li>\ref taper_page "Taper"</li>
+<li>\ref aspect_ratio_page "Aspect ratio"</li>
+<li>\ref minimum_angle_page "Minimum angle"</li>
+<li>\ref warping_page "Warping"</li>
+<li>\ref skew_page "Skew"</li>
+</ul>
+
+3D mesh quality controls:
+<ul>
+<li>\ref aspect_ratio_3d_page "Aspect ratio 3D"</li>
+<li>\ref volume_page "Volume"</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page adding_nodes_and_elements_page Adding nodes and elements
+
+\n In MESH you can add to your mesh different elements such as:
+
+<ul>
+<li>\ref adding_nodes_anchor "Nodes"</li>
+<li>\ref adding_edges_anchor "Edges"</li>
+<li>\ref adding_triangles_anchor "Triangles"</li>
+<li>\ref adding_quadrangles_anchor "Quadrangles"</li>
+<li>\ref adding_polygons_anchor "Polygons"</li>
+<li>\ref adding_tetrahedrons_anchor "Tetrahedrons"</li>
+<li>\ref adding_hexahedrons_anchor "Hexahedrons"</li>
+<li>\ref adding_polyhedrons_anchor "Polyhedrons"</li>
+</ul>
+
+<em>To add a node or an element to your mesh:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the \b Modification menu choose the \b Add item, the
+following associated submenu will appear:</li>
+
+\image html image146.gif
+
+From this submenu select the type of element which you would like to add to your mesh.
+</ol>
+
+<b>See Also</b> sample TUI Scripts of
+\ref tui_adding_nodes_and_elements "Adding Nodes and Elements"
+operations.
+
+<br>
+\anchor adding_nodes_anchor
+<h2>Adding nodes</h2>
+
+\image html addnode.png
+
+In this dialog box set coordinates for your node in the \b Coordinates
+set of fields and click the \b Apply or \b OK button. Your node will be
+created:
+
+\image html add_node.png
+
+<br>
+\anchor adding_edges_anchor
+<h2>Adding edges</h2>
+
+\image html addedge.png
+
+In this dialog box specify the nodes which will form your edge by
+selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your edge will be created:
+
+\image html add_edge.png
+
+<br>
+\anchor adding_triangles_anchor
+<h2>Adding triangles</h2>
+
+\image html addtriangle.png
+
+In this dialog box specify the nodes which will form your triangle by
+selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your triangle will be created:
+
+\image html add_triangle.png
+
+<br>
+\anchor adding_quadrangles_anchor
+<h2>Adding quadrangles</h2>
+
+\image html addquadrangle.png
+
+In this dialog box specify the nodes which will form your quadrangle
+by selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your quadrangle will be created:
+
+\image html add_quadrangle.png
+
+<br>
+\anchor adding_polygons_anchor
+<h2>Adding polygons</h2>
+
+\image html addpolygon.png
+
+In this dialog box specify the nodes which will form your polygon by
+selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button.
+
+\image html add_polygone.png
+
+<br>
+\anchor adding_tetrahedrons_anchor
+<h2>Adding tetrahedrons</h2>
+
+\image html addtetrahedron.png
+
+In this dialog box specify the nodes which will form your tetrahedron
+by selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your tetrahedron will be created:
+
+\image html image70.jpg
+
+<br>
+\anchor adding_hexahedrons_anchor
+<h2>Adding hexahedrons</h2>
+
+\image html addhexahedron.png
+
+In this dialog box specify the nodes which will form your hexahedron
+by selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your hexahedron will be created:
+
+\image html image71.jpg
+
+<br>
+\anchor adding_polyhedrons_anchor
+<h2>Adding polyhedrons</h2>
+
+\image html a-createpolyhedralvolume.png
+
+There are two different ways to add polyhedral volumes.
+\n If you select \b Node as <b>Elements Type</b> you will specify the
+nodes which will form the faces of your polyhedron by selecting the
+nodes in the 3D viewer with pressed Shift button and clicking the \b
+Add button to add the face in the list of Faces by Nodes, which will
+form your polyhedron. Note, that it could be very useful to toggle
+Polyhedron Preview checkbox to see the results of your selection.
+\n The second way is somewhat simpler, however, there are cases when
+it does not provide you with the necessary level of precision. If you
+select \b Face as <b>Elements Type</b>, you will be able to select the faces
+which will form your polyhedron in the 3D viewer with pressed Shift
+button. If you've managed to obtain the necessary result, click the
+\b Apply or \b OK button. Your polyhedron will be created:
+
+\image html add_polyhedron.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page adding_quadratic_elements_page Adding Quadratic Elements
+
+\n MESH modules allows you to work with <b>Quadratic Elements</b>.
+
+Quadratic Edge in not a straight but a broken line and can be defined
+by three points: first, middle and last. All more complex \b Quadratic
+\b Elements differ from ordinary ones in that they consist of Quadratic
+Edges.
+
+<em>To add a quadratic element to your mesh:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the \b Modification menu choose the \b Add item and select
+one of the following:
+
+\image html image152.gif
+
+To create any <b>Quadratic Element</b> specify the nodes which will form your
+triangle by selecting them in the 3D viewer with pressed Shift
+button. Their numbers will appear in the dialog box as <b>Corner Nodes</b>
+(alternatively you can just input numbers in this field without
+selection).The edges formed by the corner nodes will appear in the
+table. To define the middle nodes for each edge double-click on the
+respective field and input the number of the node. All edges and the
+object formed by them will be displayed in the Object browser. When
+all edges are defined you will be able to click \b OK or \b Apply button to
+add the element to the mesh.
+
+\image html aqt.png
+
+\b Reverse button for Quadratic Edges switches the first and the last
+nodes. For all other elements it reverses the element.
+</li>
+</ol>
+
+
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page additional_hypo_page Additional Hypotheses
+
+\n <b>Additional Hypotheses</b> can be applied as a supplement to the
+main hypotheses, introducing additional concepts to mesh creation.
+
+To define an <b>Additional Hypothesis</b> simply select it in
+<b>Create Mesh</b> menu. These hypotheses are actually changes in the
+rules of mesh creation and as such don't possess adjustable values.
+
+<h2>Non Conform mesh allowed hypothesis</h2>
+
+<b>Non Conform mesh allowed</b> hypothesis allows to generate non-conform
+meshes (that is, meshes having some edges ending on an edge or face of
+adjacent elements).
+
+<h2>Quadratic Mesh</h2>
+
+Quadratic Mesh hypothesis allows to build a quadratic mesh (whose
+edges are not straight but broken lines and can be defined by three
+points: first, middle and last) instead of an ordinary one.
+
+<h2>Propagation of 1D Hypothesis on opposite edges</h2>
+
+<b>Propagation of 1D Hypothesis on opposite edges</b> allows to propagate a
+hypothesis onto an opposite edge. If a local hypothesis and
+propagation are defined on an edge of a quadrangular face, the
+opposite edge will have the same hypothesis, unless another hypothesis
+has been locally defined on the opposite edge.
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_propagation "Propagation hypothesis" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page area_page Area
+
+\n \b Area mesh quality control is based on the algorithm of area
+calculation of meshing elements. It can be applied to meshes
+consisting of 2D meshing elements with 3 and 4 nodes (triangles and
+quadrangles).
+
+<em>To apply the Area quality control to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Area</b> or click <em>"Area"</em> button.
+
+\image html image35.gif
+<center><em>"Area" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image5.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an
+\ref tui_area "Area quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page aspect_ratio_page Aspect Ratio
+
+\n The <b>Aspect Ratio</b> quality criterion for mesh elements reveals
+the degree of conformity of a mesh element to the regular element of
+its type (with all edges having the same length). The criterion can
+be defined as:
+
+\image html formula3.png
+
+- The <b>Aspect Ratio</b> of a \b triangle 2D element consisting of 3
+nodes is calculated by the formula:
+
+\image html formula4.png
+
+- The <b>Aspect Ratio</b> of a \b quadrangle 2D element consisting of
+ 4 nodes is the worst (i.e. the greatest) value from all triangles
+ which can be built taking three nodes of the quadrangle. There are
+ four triangles to consider:
+
+\image html image138.gif
+
+<em>To apply the Aspect Ratio quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Aspect Ratio</b> or click <em>"Aspect
+Ratio"</em> button in the toolbar.
+
+\image html image37.gif
+<center><em>"Aspect Ratio" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image94.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an
+\ref tui_aspect_ratio "Aspect Ratio quality control" operation.
+
+*/
+
--- /dev/null
+/*!
+
+\page aspect_ratio_3d_page Aspect ratio 3D
+
+\n The <b>Aspect Ratio 3D</b> mesh quality criterion calculates the same
+parameter as the \ref aspect_ratio_page "Aspect ratio" criterion, but
+it is applied to 3D mesh elements: tetrahedrons, pentahedrons,
+hexahedrons, etc.
+
+- The <b>Aspect Ratio</b> of a \b tetrahedron 3D element is calculated
+by the formula:
+
+\image html formula1.png
+
+- Other element types like quadrangle, pentahedron and hexahedron use
+ the following formula:
+
+\image html formula2.png
+
+<em>To apply the Aspect Ratio 3D quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Aspect Ratio 3D</b> or click <em>"Aspect Ratio 3D"</em>
+button of the toolbar.
+
+\image html image144.gif
+<center><em>"Aspect Ratio 3D" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image86.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_aspect_ratio_3d "Aspect Ratio 3D quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page basic_meshing_algos_page Basic meshing algorithms
+
+\n The MESH module contains a set of meshing algorithms, which are
+used for meshing entities (1D, 2D, 3D) composing geometrical objects.
+
+<ul>
+<li>For meshing of 1D entities (<b>edges</b>):</li>
+
+<ul>
+<li>Wire Discretisation meshing algorithm - splits a wire into a
+number of mesh segments following any 1D hypothesis.</li>
+<li>Composite Side Discretisation algorithm - allows to apply any 1D
+hypothesis to a whole side of a geometrical face even if it is
+composed of several edges provided that they form C1 curve, have the
+same hypotheses assigned and form one side in all faces of the main
+shape of a mesh.</li>
+</ul>
+
+<li>For meshing of 2D entities (<b>faces</b>):</li>
+
+<ul>
+<li>Triangle meshing algorithms (Mefisto and Netgen 1D-2D ) - Faces
+are split into triangular elements.</li>
+<li>Quadrangle meshing algorithm (Mapping) - Faces are split into
+quadrangular elements.</li>
+</ul>
+
+\image html image123.gif
+
+\image html image124.gif
+
+<li>For meshing of 3D entities (<b>volume objects</b>):</li>
+
+<ul>
+<li>Hexahedron meshing algorithm (i,j,k) - Volumes are split into
+hexahedral (cubic) elements.</li>
+<li>Tetrahedron (Netgen) meshing algorithm - Volumes are split into
+tetrahedral (pyramidal) elements.</li>
+</ul>
+
+\image html image125.gif
+
+\image html image126.gif
+</ul>
+
+There also is a number of more specific algorithms:
+<ul>
+<li>\ref projection_algos_page "for meshing by projection of another mesh"</li>
+<li>\ref radial_prism_algo_page "for meshing geometrical objects with cavities"</li>
+<li>\ref prism_3d_algo_page "for meshing prismatic shapes"</li>
+</ul>
+
+\ref constructing_meshes_page "Constructing meshes" page describes in
+detail how to apply meshing algorithms.
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_defining_meshing_algos "Define Meshing Algorithm" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page borders_at_multi_connection_page Borders at multi-connection
+
+\n This mesh quality control highlights borders of faces consisting of
+edges belonging to several faces. The amount of faces is specified by
+user.
+
+\image html image151.gif
+
+In this picture the borders at multi-connection are displayed in blue.
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_borders_at_multiconnection "Borders at Multi-Connection quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page borders_at_multi_connection_2d_page Borders at multi-connection 2D
+
+\n This mesh quality control highlights borders of elements of mesh,
+consisting of edges belonging to several elements of mesh.
+
+\image html image127.gif
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_borders_at_multiconnection_2d "Borders at Multi-Connection quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page building_compounds_page Building Compounds
+
+\n Compound Mesh is a combination of several meshes.
+
+<em>To Build a compound:</em>
+
+\par
+From the \b Mesh menu select <b>Build Compound</b> or click <em>"Build
+Compound Mesh"</em> button in the toolbar.
+
+\image html image161.gif
+<center><em>"Build Compound Mesh" button</em></center>
+
+\par
+The following dialog box will appear:
+
+\image html buildcompound.png
+
+\par
+<ul>
+<li>\b Name - allows selecting the name of the resulting \b Compound.</li>
+<li>\b Meshes - allows selecting the meshes which will be
+concatenated. They can be chosen in the Object Browser while holding
+\b Ctrl button.</li>
+<li><b>Processing identical groups</b> - allows selecting the method
+of processing the namesake existing on the united meshes.
+\n They can be either</li>
+<ul>
+<li>\b United - all elements of Group1 on Mesh_1 and Group1 on Mesh_2
+become the elements of Group1 on the Compound_Mesh, or</li>
+<li>\b Renamed - Group1 on Mesh_1 becomes Group1_1 and Group1 on Mesh_2
+becomes Group1_2. See \ref grouping_elements_page "Creating Groups"
+for more information about groups.</li>
+</ul>
+<li>You can simply unite meshes or choose to <b>Merge coincident nodes
+and elements</b>, in which case it is possible to define the \b Tolerance
+for this operation.</li>
+</ul>
+
+\n <b>Example:</b>
+
+\image html image160.gif
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page changing_orientation_of_elements_page Changing orientation of elements
+
+\n Orientation of an element is changed by reverting the order of
+nodes of the selected elements.
+
+<em>To change orientation of elements:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the \b Orientation item or click
+<em>Orientation</em> button in the toolbar.
+
+\image html image79.gif
+<center><em>"Orientation" button</em></center>
+
+The following dialog box will appear:
+
+\image html orientaation1.png
+
+<ul>
+<li><b>The main list</b> shall contain the elements which will be
+reoriented. You can click on an element in the 3D viewer and it will
+be highlighted. After that click the \b Add button and the ID of this
+element will be added to the list. To remove a selected element or
+elements from the list click the \b Remove button. The \b Sort button
+allows to sort the list of elements IDs. The <b>Set filter</b> button
+allows to apply a definite filter to selection of elements of your
+group.</li>
+<li><b>Apply to all</b> radio button allows to modify the orientation
+of all elements of the currently displayed mesh or submesh.</li>
+<li><b>Select from</b> set of fields allows to choose a submesh or an
+existing group whose elements will be automatically added to the
+list.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_orientation "Change Orientation" operation.
+
+*/
--- /dev/null
+/*!
+
+\page clipping_page Clipping
+
+\n Using this menu you can create cross-section views (clipping planes)
+of your mesh.
+
+To start, click on the \em New button.
+
+\image html a-clipping2.png
+
+Now you can define the parameters of your cross-section: \b Orientation
+(X-Y, X-Z or Y-Z); \b Distance between the opposite extremities of the
+object, if it is set to 0.5 the object is split in two halves; and
+\b Rotation (in angle degrees) <b>around X</b> (Y to Z) and <b>around Y</b> (X to
+Z). If the <b>Show preview</b> button is on, you can see the clipping plane
+in the <b>Object window</b>.
+
+\image html image79.jpg
+
+If the <b>Auto Apply</b> button is on, you can preview the
+cross-section in the <b>Object window</b>.
+
+\image html image99.gif
+
+To get a new object from \b Clipping, click \b Ok.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page constructing_groups_of_specific_elements_page Constructing groups of specific elements
+
+\n In MESH you can easily construct groups of specific elements (nodes,
+edges, faces or volumes) which will be taken from a definite submesh.
+
+<em>To construct a group of specific elements:</em>
+
+\par
+Right-click on a submesh in the Object Browser and choose the
+<b>Construct Group</b> item or select your submesh in the Object Browser and
+in the \b Mesh menu choose the <b>Construct Group</b> item. MESH will construct
+several groups consisting of elements of the definite type: nodes,
+edges, faces or volumes.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page constructing_meshes_page Constructing meshes
+
+\n Construction of a mesh consists of:
+<ul>
+<li>Selecting a geometrical object for meshing</li>
+<li>Applying \ref basic_meshing_algos_page "meshing algorithms" and
+\ref about_hypo_page "hypotheses" which will be used at computation of
+this mesh.</li>
+</ul>
+
+<em>To construct a mesh:</em>
+<ol>
+<li>In the \b Mesh menu select <b>Create Mesh</b> or click <em>"Create
+Mesh"</em> button in the toolbar.
+
+\image html image32.gif
+<center><em>"Create Mesh" button</em></center>
+
+The following dialog box will appear:
+
+\image html createmesh-inv.png
+</li>
+<li>For example, you need to mesh a 3d object.
+\n First, type the name for your mesh in the "Name" box, by default,
+it is "Mesh_1". Then select the object you wish to mesh in the Object
+Browser and click the "Add" button.
+
+\image html image120.gif
+<center><em>"Add" button</em></center>
+
+Now you can define 1d Algorithm and 1d Hypotheses, which will be
+applied to the edges of your object. (Note that any object has edges,
+even if their existence is not apparent, for example, a sphere has 4
+edges). Click the <em>"Add Hypothesis"</em> button to add a hypothesis.
+
+\image html image121.gif
+<center><em>"Add Hypothesis" button</em></center>
+
+Click the <em>"Edit Hypothesis"</em> button to define values for the
+current hypothesis.
+
+\image html image122.gif
+<center><em>"Edit Hypothesis" button</em></center>
+
+The use of additional hypotheses is optional (i.e. you may leave
+"None" in this box).
+
+Proceed in the same way with 2d and 3d Algorithms and Hypotheses, note
+that the choice of hypotheses depends on the algorithm. There must be
+one Algorithm and one or several Hypotheses for each dimension of your
+object, otherwise you will not get any mesh at all. Of course, if you
+wish to mesh a face, which is a 2d object, you don't need to define 3d
+Algorithm and Hypotheses.
+\n In the <b>Object Browser</b> the structure of the new mesh will be
+displayed as follows:
+
+\image html image88.jpg
+
+It contains:
+<ul>
+<li>a reference to the geometrical object on the basis of which the mesh has been constructed;</li>
+<li><b>Applied hypotheses</b> folder containing the references to the
+hypotheses applied to the construction of the mesh;</li>
+<li><b>Applied algorithms</b> folder containing the references to the
+algorithms applied to the construction of the mesh.</li>
+</ul>
+
+There is an alternative way to create a mesh on an object simply by
+clicking <b>Assign a set of hypotheses</b> button and selecting between
+Automatic Tetrahedralization or Hexahedralization. The program will
+automatically generate a 3D mesh with the most appropriate
+settings. In the same way you can apply this functionality for meshing
+2D objects, in which case 3D algorithms are not applied.</li>
+<li>Now, when everything is ready, select your mesh in the <b>Object
+Browser</b>. From the \b Mesh menu select \b Compute or click "Compute" button of the
+toolbar.
+
+\image html image28.gif
+<center><em>"Compute" button</em></center>
+
+The Mesh Computation information box appears.
+
+\image html meshcomputationsucceed.png
+
+If the mesh computation failed, the information about the cause of the
+failure is provided.
+
+\image html meshcomputationfail.png
+
+After you select the error, <b>Show Subshape</b> button allows
+visualizing the mesh elements that cause it.
+
+\image html failed_computation.png
+
+<b>Publish Subshape</b> button allows importing it in a separate MED
+or UNV file.
+
+Consider trying a sample script for construction of a mesh from our
+\ref tui_creating_meshes_page "TUI Scripts" section.
+</li>
+</ol>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page constructing_submeshes_page Constructing submeshes
+
+\n Construction of a submesh consists of:
+<ul>
+<li>Selecting a mesh which will encapsulate your submesh</li>
+<li>Selecting a geometrical object for meshing</li>
+<li>Applying one or several previously
+\ref about_hypo_page "hypotheses" and
+\ref basic_meshing_algos_page "meshing algorithms" which will be used
+at computation of this submesh</li>
+</ul>
+
+<br><em>To construct a submesh:</em>
+\par
+From the \b Mesh menu select <b>Local Hyp.</b> or click <em>"Create
+Sum-mesh"</em> button in the toolbar.
+
+\image html image33.gif
+<center><em>"Create Sum-mesh" button</em></center>
+
+\par
+The following dialog box will appear:
+
+\image html createmesh-inv2.png
+
+\par
+It allows to define the \b Name, the parent \b Mesh and the \b
+Geometry (e.g. a face if the parent mesh has been built on box) of the
+submesh. You can define algorithms and hypotheses in the same way as
+in \ref constructing_meshes_page "Create mesh" menu.
+
+\par
+In the Object Browser the structure of the new submesh will be
+displayed as follows:
+
+\image html image10.jpg
+
+\par
+It contains:
+<ul>
+<li>a reference to the geometrical object on the basis of which the submesh has been constructed;</li>
+<li><b>Applied hypotheses</b> folder containing the references to the
+hypotheses applied to the construction of the submesh;</li>
+<li><b>Applied algorithms</b> folder containing the references to the
+algorithms applied to the construction of the submesh.</li>
+</ul>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_construction_submesh "Construct Submesh" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page convert_to_from_quadratic_mesh_page Convert to/from Quadratic Mesh
+
+\n This functionality allows you to transtorm standard meshes to
+quadratic and vice versa. See \ref adding_quadratic_elements_page "Adding quadratic elements"
+for more information about quadratic meshes.
+
+<em>To produce a conversion:</em>
+<ol>
+<li>From the Modification menu choose the Convert to/from Quadratic
+Mesh item, or click <em>"Convert to/from quadratic"</em> button in the
+toolbar.
+
+\image html image154.gif
+<center><em>"Convert to/from quadratic" button</em></center>
+
+The following dialog box will appear:
+
+\image html convert.png
+
+</li>
+<li>In this dialog box you should select:
+
+<ul>
+<li>if you wish to convert standard mesh to quadratic or quadratic to standard;</li>
+<li>if you wish to place medium nodes of the quadratic mesh on the geometry (meshed object).</li>
+</ul>
+
+\image html image156.gif
+<center>Standard mesh (coarse mesh on a torus)</center>
+
+\image html image155.gif
+<center>Quadratic mesh</center>
+
+</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page creating_groups_page Creating groups
+
+\n In MESH you can create groups of elements of different types. To
+create a group of elements in the \b Mesh menu select <b>Create
+Group</b>.
+\n To create any group you should define the following:
+<ul>
+<li><b>Mesh</b> - the name of the mesh whose elements will form your
+group. You can select your mesh in the Objet Browser or in the 3D
+viewer.</li>
+<li><b>Elements Type</b> - set of radio buttons allows to select the type of
+elements which will form your group:</li>
+<ul>
+<li><b>Nodes</b></li>
+<li><b>Edges</b></li>
+<li><b>Faces</b></li>
+<li><b>Volumes</b></li>
+</ul>
+<li><b>Name</b> field allows to enter the name of your new group.</li>
+</ul>
+SALOME Platform distinguishes between the two Group types:
+<b>Standalone Group</b> and <b>Group on Geometry</b>.
+
+<br><h2>Standalone Group</h2>
+
+<b>Standalone Group</b> consists of mesh elements, which you can define in
+two possible ways.
+<ul>
+<li>Choosing them manually with the mouse in the 3D Viewer. You can
+click on an element in the 3D viewer and it will be highlighted. After
+that click the \b Add button and the ID of this element will be added to
+the list.</li>
+<li>Applying Filters. The <b>Set filter</b> button allows to apply a
+definite filter to selection of the elements of your group. See more
+about filters on the
+\ref selection_filter_library_page "Selection filter library" page.</li>
+</ul>
+To remove a selected element or elements from the list click the
+\b Remove button. The <b>Sort List</b> button allows to sort the list of IDs of
+mesh elements.
+\n <b>Select from</b> set of fields allows to choose a submesh or an existing
+group whose elements of the previously defined type will be added to
+the list of elements which will form your group.
+\n <b>Color Number</b> (integer only, ranging from 0 to 9999) - allows to
+assign to the group a certain index, for example, defining boundary
+conditions. This feature introduces a useful element of preprocessing
+in Mesh module. Note that <b>Color number</b> attribute has nothing to do
+with the colors used for the display of the elements of the group.
+
+\image html creategroup.png
+
+\image html image130.gif
+<center>In this picture the brown cells belong to a group defined manually.</center>
+
+\image html image131.gif
+<center>In this picture the brown cells belong to the group defined by the criterion
+<b>Taper > 0</b>.</center>
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_create_standalone_group "Create a Standalone Group"
+operation.
+
+<br><h2>Group on Geometry</h2>
+
+To create a group on geometry check <b>Group on geometry</b> in the \b Group
+\b type field. <b>Group on geometry</b> contains the elements of a certain type
+belonging to the selected geometrical object. To define a group select
+in the Objet Browser or in the 3D viewer a geometrical object from
+which the elements will be taken. After confirmation of the operation
+a new group of mesh elements will be created.
+
+\image html a-creategroup.png
+
+\image html image132.gif
+<center>In this picture the cells which belong to a certain face are
+selected in green.</center>
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_create_group_on_geometry "Create a Group on Geometry"
+operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page creating_meshes_page Creating meshes
+
+<ul>
+<li>\subpage about_meshes_page</li>
+<li>\subpage importing_exporting_meshes_page</li>
+<li>\subpage constructing_meshes_page</li>
+<li>\subpage defining_algos_page</li>
+<ul>
+<li>\ref basic_meshing_algos_page</li>
+<li>\ref projection_algos_page</li>
+<li>\ref radial_prism_algo_page</li>
+<li>\ref segments_around_vertex_algo_page</li>
+<li>\ref prism_3d_algo_page</li>
+</ul>
+<li>\subpage defining_hypo_page</li>
+<ul>
+<li>\ref about_hypo_page</li>
+<li>\ref a1d_meshing_hypo_page</li>
+<li>\ref a2d_meshing_hypo_page</li>
+<li>\ref max_element_volume_hypo_page</li>
+<li>\ref netgen_2d_3d_hypo_page</li>
+<li>\ref additional_hypo_page</li>
+</ul>
+<li>\subpage constructing_submeshes_page</li>
+<li>\subpage building_compounds_page</li>
+<li>\subpage editing_meshes_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page cutting_quadrangles_page Cutting quadrangles
+
+\n This operation allows to cut one or several quadrangle elements by
+addition of a supplementary edge which will connect two opposite
+corners.
+
+<em>To cut quadrangles:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the <b>Cutting of quadrangles</b> item or
+click <em>"Cutting of quadrangles"</em> button in the toolbar.
+
+\image html image82.gif
+<center><em>"Cutting of quadrangles" button</em></center>
+
+The following dialog box will appear:
+
+\image html a-cuttingofquadrangles.png
+
+\par
+<ul>
+<li>The main list contains the list of quadrangles. You can click on
+an quadrangle in the 3D viewer and it will be highlighted (lock Shift
+keyboard button to select several quadrangles). Click \b Add button and
+the ID of this quadrangle will be added to the list. To remove a
+selected element or elements from the list click \b Remove button. <b>Sort
+list</b> button allows to sort the list of IDs. \b Filter button allows to
+apply a definite filter to the selection of quadrangles.</li>
+<li><b>Apply to all</b> radio button allows to modify the orientation of all
+quadrangles of the currently displayed mesh or submesh.</li>
+<li>\b Preview - provides a preview of cutting in the viewer.</li>
+</ul>
+
+<ul>
+<li>\b Criterion
+<ul>
+<li><b>Use diagonal 1-3</b> and <b>Use diagonal 2-4</b> allows to
+specify the opposite corners which will be connected by the cutting
+edge.</li>
+<li><b>Use numeric factor</b> - allows to apply the operation only to
+those objects which meet the chosen criterion (from the list of
+Quality Controls, i.e. Skew, Warping, Minimum Angle, etc.)</li>
+</ul>
+</li>
+<li><b>Select from</b> - allows to choose a submesh or an existing
+group whose quadrangle elements will be automatically added to the
+list.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+\image html image52.jpg
+
+\image html image51.jpg
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_cutting_quadrangles "Cutting Quadrangles" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page defining_algos_page Defining Algorithms
+
+<ul>
+<li>\subpage basic_meshing_algos_page</li>
+<li>\subpage projection_algos_page</li>
+<li>\subpage radial_prism_algo_page</li>
+<li>\subpage segments_around_vertex_algo_page</li>
+<li>\subpage prism_3d_algo_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page defining_hypo_page Defining hypotheses
+
+<ul>
+<li>\subpage about_hypo_page</li>
+<li>\subpage a1d_meshing_hypo_page</li>
+<li>\subpage a2d_meshing_hypo_page</li>
+<li>\subpage max_element_volume_hypo_page</li>
+<li>\subpage netgen_2d_3d_hypo_page</li>
+<li>\subpage additional_hypo_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page deleting_groups_page Deleting Groups
+
+\n To delete a group in the <b>Main Menu</b> select <b>Mesh -> Delete Groups</b> and
+select one or several groups you wish to delete in the 3D viewer or in
+the Object Browser.
+\n The selected groups will be listed in <b>Delete groups with contents</b>
+menu. Then click Ok button to remove the selected groups and close the
+menu or Apply button to remove them and proceed with the selection.
+
+\image html deletegroups.png
+
+\n Please, note that this operation <b>removes groups with their
+elements</b>. To delete a group and leave its elements intact, right-click
+on the group in the Object Browser and select \b Delete in the pop-up
+menu or select the group and choose <b>Edit -> Delete</b> in the <b>Main Menu</b>.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page diagonal_inversion_of_elements_page Diagonal inversion of elements
+
+\n In MESH you can inverse the diagonal (edge) of a pseudo-quadrangle
+formed by two neighboring triangles with one common edge.
+
+<em>To inverse the diagonal:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Diagonal inversion</b> item or
+click <em>"Diagonal Inversion"</em> button in the toolbar.
+
+\image html image70.gif
+<center><em>"Diagonal Inversion" button</em></center>
+
+The following dialog box shall appear:
+
+\image html diagonalinversion.png
+
+</li>
+<li>Enter the ID of the required edge in the \b Edge field or select
+this edge in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html image38.jpg
+
+\image html image36.jpg
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_diagonal_inversion "Diagonal Inversion of Elements" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page display_entity_page Display Entity
+
+\n In this submenu you can choose to display only volumes, faces or
+edges or combine them.
+
+\image html image56.jpg Only Faces
+
+\image html image58.gif Only Edges
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page display_mode_page Display Mode
+
+\n By default your objects are represented as set in \b Preferences.
+\n However, right-clicking on the mesh in the <b>Object Browser</b>,
+and selecting <b>Display Mode</b>, you can display your mesh as:
+
+\image html image53.gif Wireframe
+
+\image html image37.jpg Shading
+
+\image html image56.gif Nodes
+
+\b Wireframe can combine with \b Nodes and \b Shading.
+
+\b Shading and \b Wireframe modes can combine with \b Shrink, however
+\b Nodes can't.
+
+\image html image55.gif
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page editing_groups_page Editing groups
+
+\n <em>To edit an existing group of elements:</em>
+<ol>
+<li>Select your group in the Object Browser and in the \b Mesh menu click
+the <b>Edit Group</b> item or <em>"Edit Group"</em> button in the toolbar.</li>
+
+\image html image74.gif
+<center><em>"Edit Group" button</em></center>
+
+The following dialog box will appear:
+
+\image html editgroup.png
+
+In this dialog box you can modify the name of your group and add or
+remove the elements forming it. For more information see
+\ref creating_groups_page "Creating Groups" page.
+<li>Click the \b OK or \b Apply button to confirm modification of the
+group.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an
+\ref tui_edit_group "Edit Group" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page editing_meshes_page Editing Meshes
+
+\n After you have created a mesh or submesh with definite applied
+hypotheses and algorithms you can edit your mesh by \b assigning new
+hypotheses and algorithms or \b unassigning the applied hypotheses and
+algorithms. The editing proceeds in the same way as <b>Mesh
+Creation</b>.
+
+\image html createmesh-inv3.png
+
+You can also change values for the current hypothesis by clicking the
+<em>"Edit Hypothesis"</em> button.
+
+\image html image122.gif
+<center><em>"Edit Hypothesis" button</em></center>
+
+See how a mesh constructed on one and the same geometrical object
+changes if we apply different algorithms to it.
+
+\image html edit_mesh1.png
+
+\image html edit_mesh_remove_hyp.png
+
+\image html edit_mesh_change_value_hyp.png
+
+<br><b>See Also</b> a sample TUI Script of an
+\ref tui_editing_mesh "Edit Mesh" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page extrusion_page Extrusion
+
+\n Extrusion is a type of surface meshing by generation from
+discretized lines. It is used to build mesh elements of plus one
+dimension than the swept ones. Each swept 1D element produces one or
+more quadrangles (or triangles if one node of a rotated element lays
+on the revolution axis).
+
+<em>To use extrusion:</em>
+<ol>
+<li>From the \b Modification menu choose the \b Extrusion item or click
+<em>"Extrusion"</em> button in the toolbar.
+
+\image html image91.gif
+<center><em>"Extrusion" button</em></center>
+
+The following dialog box will appear:
+
+\image html extrusionalongaline1.png
+
+\image html extrusionalongaline2.png
+</li>
+
+<li>In this dialog box you should select:
+<ul>
+<li>the type of elements which will be extruded (1D or 2D),</li>
+<li>specify the IDs of the elements which will be extruded by
+selecting them in the 3D viewer or select the whole mesh or
+submesh,</li>
+<li>specify the vector along which the elements will be extruded,</li>
+<li>number of steps.</li>
+</ul>
+</li>
+
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html image77.jpg
+
+\image html image76.jpg
+
+<br><b>See Also</b> a sample TUI Script of an
+\ref tui_extrusion "Extrusion" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page extrusion_along_path_page Extrusion along a path
+
+\n In principle, <b>Extrusion along a path</b> works in the same way
+as \b Extrusion, the main difference is that we define not a vector,
+but a path of extrusion which must be a meshed edge. To get an idea of
+how this algorithm works, examine several examples, starting from the
+most simple case of extrusion along a straight edge. In all examples
+the same mesh will be extruded along different paths and with
+different parameters. This sample 2D mesh has two quadrangle faces and
+seven edges. Look at the picture, where white digits are the node
+numbers and green are the element numbers:
+
+\image html mesh_for_extr_along_path.png
+
+<br><center><h2>Extrusion along a straight edge</h2>(not using base point
+or angles)</center>
+
+\image html straight_before.png
+<center>The image shows a 1D path mesh, built on a linear edge, and the initial 2D mesh.</center>
+
+\image html straight_after.png
+<center> The image shows the result of extrusion of two edges
+(#1 and #2) of the initial mesh along the path. \n Node #1 of path mesh
+has been selected as Start node.</center>
+
+<br><center><h2>Extrusion along a curvilinear edge</h2>(with and
+without angles)</center>
+
+\image html curvi_simple_before.png
+<center>The image shows a 1D path mesh, built on curvilinear edge, and
+the initial 2D mesh.</center>
+
+\image html curvi_simple_after.png
+<center>The central image shows the result of extrusion of one edge
+(#2) of the initial mesh along the path. \n Node #1 of path mesh has
+been selected as <b>Start node</b>.</center>
+
+\image html curvi_angles_after.png
+<center>The same, but using angles {45, 45, 45, 0, -45, -45, -45}</center>
+
+<br><center><h2>Extrusion along a sub-mesh</h2></center>
+
+In this example the path mesh has been built on a wire (polyline with
+six edges). The first edge of the wire was used as <b>Shape (edge)</b>, node
+#1 as <b>Start node</b>. The angles have been defined as {10, 10, 10}. The
+middle edge (#4) of the initial mesh has been extruded.
+
+\image html edge_wire_before.png
+
+\image html edge_wire_after.png
+
+<br><center><h2>Extrusion of 2d elements along a sub-mesh</h2></center>
+
+This extrusion bases on the same path mesh as in the previous example
+but the third edge of the wire was set as <b>Shape (edge)</b> and node
+#4 as <b>Start node</b>. Please note, that the extrusion has been done
+in direction from node #4 to node #3, i.e. against the wire
+direction. In this example both faces of the initial mesh have been
+extruded.
+
+\image html edge_wire_3d_before.png
+
+\image html edge_wire_3d_after.png
+
+<br><center><h2>Extrusion of 2d elements along a closed path</h2></center>
+
+\image html circle_simple_before.png
+<center>The image shows a path mesh built on a closed edge
+(circle).</center>
+
+\image html circle_simple_after.png
+<center>The central image shows the result of extrusion of both faces
+of the initial mesh. \n Note, that no sewing has been done, so, there are
+six coincident nodes and two coincident faces in the resulting
+mesh.</center>
+
+\image html circle_angles_after.png
+<center>The same, but using angles {45, -45, 45, -45, 45, -45, 45,
+-45}</center>
+
+<br><em>To use Extrusion along a path:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Extrusion along a
+path</b> item or click <em>"Extrusion along a path"</em> button in the toolbar.
+
+\image html image101.gif
+<center><em>"Extrusion along a path" button</em></center>
+
+The following dialog box will appear:
+
+\image html extrusion1.png
+</li>
+
+<li>In the dialog box you should:
+<ul>
+<li>select the type of elements which will be extruded (1D or 2D),</li>
+<li>specify the <b>IDs of the elements</b> which will be extruded by
+selecting them in the 3D viewer or <b>Select the whole mesh, submesh
+or group</b>,
+</li>
+<li>define the Path along which the elements will be extruded,
+\n Path definition consists of several elements:
+<ul>
+<li>\b Mesh - containing a 1D sub-mesh on the edge, along which proceeds the extrusion</li>
+<li><b>Shape (edge)</b> - as the mesh can be complex, the edge is used to define the sub-mesh for the path</li>
+<li><b>Start node</b> - the first or the last node on the edge. It is used to define the direction of extrusion </li>
+</ul>
+</li>
+</ul>
+</li>
+
+<li>There are two optional parameters, which can be very useful:
+<ul>
+<li>If the path of extrusion is curvilinear, at each iteration the
+extruded shape is rotated to keep its initial angularity to the
+curve. By default, the <b>Base Point</b> around which the shape is rotated is
+the mass center of the shape, however, you can specify any point as
+the <b>Base Point</b> and the shape will be rotated with respect to this
+point.
+</li>
+<li>The shape can also be rotated around the path to get the resulting
+mesh in a helical fashion. You can set the values of angles at the
+right, add them to the list of angles at the left by pressing the <em>"Add"</em>
+button and remove them from the list by pressing the <em>"Remove"</em> button.
+
+\image html image105.gif
+<center><em>"Add" button</em></center>
+
+\image html image106.gif
+<center><em>"Remove" button</em></center>
+
+</li>
+</ul>
+</li>
+
+<li>Click the \b Apply or \b OK button. Mesh edges will be extruded into
+faces, faces into volumes. The external surface of the resulting 3d
+mesh (if faces have been extruded) is covered with faces, and corners
+with edges. If the path is closed, the resulting mesh can contain
+duplicated nodes and faces, because no sewing is done.
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an
+\ref tui_extrusion_along_path "Extrusion along a Path" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page free_borders_page Free borders
+
+\n This mesh quality control highlights borders of faces consisting of
+edges belonging to one face only.
+
+\image html free_borders1.png
+
+In this picture the free borders are displayed in white.
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_free_borders "Free Borders quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page free_edges_page Free edges
+
+\n This mesh quality control highlights borders of elements of mesh
+consisting of edges belonging to one element of mesh only.
+
+\image html free_edges.png
+<center>In this picture some elements of mesh have been deleted and
+the "holes" are outlined in red.</center>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_free_edges "Free Edges quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page grouping_elements_page Grouping elements
+
+<ul>
+<li>\subpage creating_groups_page</li>
+<li>\subpage editing_groups_page</li>
+<li>\subpage using_operations_on_groups_page</li>
+<li>\subpage constructing_groups_of_specific_elements_page</li>
+<li>\subpage deleting_groups_page</li>
+<li>\subpage selection_filter_library_page</li>
+</ul>
+
+*/
--- /dev/null
+/*!
+
+\page importing_exporting_meshes_page Importing and exporting meshes
+
+\n In MESH there is a functionality allowing importation/exportation
+of meshes from \b MED and \b UNV (I-DEAS 10) format files.
+
+<em>To import a mesh:</em>
+
+<ol>
+<li>From the \b File menu choose the \b Import item, from its sub-menu
+select the corresponding format (MED, UNV) of the file containing
+your mesh.</li>
+<li>In the standard <b>Search File</b> dialog box find the file for
+importation.</li>
+<li>Click the \b OK button.</li>
+</ol>
+
+\image html meshimportmesh.png
+
+<em>To export a mesh:</em>
+
+<ol>
+<li>Select the object you wish to export.</li>
+<li>From the \b File menu choose the \b Export item, from its sub-menu
+select the format (MED, UNV) of the file which will contain your
+exported mesh.</li>
+<li>In the standard <b>Search File</b> select a location for the
+exported file and enter its name.</li>
+<li>Click the \b OK button.</li>
+</ol>
+
+\image html meshexportmesh.png
+
+<br><b>See Also</b> a sample TUI Script of an \ref tui_export_mesh "Export Mesh" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\mainpage SMESH Module Reference Documentation
+
+<ul>
+<li>\subpage introduction_to_mesh_page</li>
+<li>\subpage running_mesh_module_page</li>
+<li>\subpage introduction_to_mesh_python_page</li>
+<li>\subpage creating_meshes_page</li>
+<ul>
+<li>\ref about_meshes_page</li>
+<li>\ref importing_exporting_meshes_page</li>
+<li>\ref constructing_meshes_page</li>
+<li>\ref defining_algos_page</li>
+<ul>
+<li>\ref basic_meshing_algos_page</li>
+<li>\ref projection_algos_page</li>
+<li>\ref radial_prism_algo_page</li>
+<li>\ref segments_around_vertex_algo_page</li>
+<li>\ref prism_3d_algo_page</li>
+</ul>
+<li>\ref defining_hypo_page</li>
+<ul>
+<li>\ref about_hypo_page</li>
+<li>\ref a1d_meshing_hypo_page</li>
+<li>\ref a2d_meshing_hypo_page</li>
+<li>\ref max_element_volume_hypo_page</li>
+<li>\ref netgen_2d_3d_hypo_page</li>
+<li>\ref additional_hypo_page</li>
+</ul>
+<li>\ref constructing_submeshes_page</li>
+<li>\ref building_compounds_page</li>
+<li>\ref editing_meshes_page</li>
+</ul>
+<li>\subpage viewing_meshes_page</li>
+<ul>
+<li>\ref viewing_meshes_overview_page</li>
+<li>\ref mesh_infos_page</li>
+<li>\ref numbering_page</li>
+<li>\ref display_mode_page</li>
+<li>\ref display_entity_page</li>
+<li>\ref transparency_page</li>
+<li>\ref clipping_page</li>
+</ul>
+<li>\subpage quality_controls_page</li>
+<ul>
+<li>\ref about_quality_controls_page</li>
+<li>\ref free_borders_page</li>
+<li>\ref borders_at_multi_connection_page</li>
+<li>\ref length_page</li>
+<li>\ref free_edges_page</li>
+<li>\ref length_2d_page</li>
+<li>\ref borders_at_multi_connection_2d_page</li>
+<li>\ref area_page</li>
+<li>\ref taper_page</li>
+<li>\ref aspect_ratio_page</li>
+<li>\ref minimum_angle_page</li>
+<li>\ref warping_page</li>
+<li>\ref skew_page</li>
+<li>\ref aspect_ratio_3d_page</li>
+<li>\ref volume_page</li>
+</ul>
+<li>\subpage grouping_elements_page</li>
+<ul>
+<li>\ref creating_groups_page</li>
+<li>\ref editing_groups_page</li>
+<li>\ref using_operations_on_groups_page</li>
+<li>\ref constructing_groups_of_specific_elements_page</li>
+<li>\ref deleting_groups_page</li>
+<li>\ref selection_filter_library_page</li>
+</ul>
+<li>\subpage modifying_meshes_page</li>
+<ul>
+<li>\ref adding_nodes_and_elements_page</li>
+<li>\ref adding_quadratic_elements_page</li>
+<li>\ref removing_nodes_and_elements_page</li>
+<li>\ref renumbering_nodes_and_elements_page</li>
+<li>\ref transforming_meshes_page</li>
+<ul>
+<li>\ref translation_page</li>
+<li>\ref rotation_page</li>
+<li>\ref symmetry_page</li>
+<li>\ref sewing_meshes_page</li>
+<li>\ref merging_nodes_page</li>
+<li>\ref merging_elements_page</li>
+</ul>
+<li>\ref moving_nodes_page</li>
+<li>\ref mesh_through_point_page</li>
+<li>\ref diagonal_inversion_of_elements_page</li>
+<li>\ref uniting_two_triangles_page</li>
+<li>\ref uniting_set_of_triangles_page</li>
+<li>\ref changing_orientation_of_elements_page</li>
+<li>\ref cutting_quadrangles_page</li>
+<li>\ref smoothing_page</li>
+<li>\ref extrusion_page</li>
+<li>\ref extrusion_along_path_page</li>
+<li>\ref revolution_page</li>
+<li>\ref pattern_mapping_page</li>
+<li>\ref convert_to_from_quadratic_mesh_page</li>
+</ul>
+<li>\subpage smeshpy_interface_page</li>
+<li>\subpage tui_scripts_page</li>
+<ul>
+<li>\ref tui_creating_meshes_page</li>
+<li>\ref tui_viewing_meshes_page</li>
+<li>\ref tui_defining_hypotheses_page</li>
+<li>\ref tui_quality_controls_page</li>
+<li>\ref tui_grouping_elements_page</li>
+<li>\ref tui_modifying_meshes_page</li>
+<li>\ref tui_transforming_meshes_page</li>
+</ul>
+</ul>
+
+*/
--- /dev/null
+/*!
+
+\page introduction_to_mesh_page Introduction to MESH
+
+\n \b MESH module of SALOME is destined for:
+<ul>
+<li>\ref importing_exporting_meshes_page "import and export of meshes in MED format",</li>
+<li>\ref constructing_meshes_page "meshing geometrical models"
+previously created or imported by the GEOM component. MESH module
+allows to apply 1D, 2D, 3D meshing algorithms and a set of hypotheses:
+<ul>
+<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref average_length_anchor "Average Length"</li>
+<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref start_and_end_length_anchor "Start and end length"</li>
+<li>\ref automatic_length_anchor "Automatic Length"</li>
+<li>\ref max_element_area_anchor "Max Element Area"</li>
+<li>\ref length_from_edges_anchor "Length from Edges"</li>
+<li>\ref quadrangle_preference_anchor "Quadrangle Preference"</li>
+<li>\ref max_element_volume_hypo_page "Max Element Volume"</li>
+</ul>
+</li>
+<li>modification of locally generated meshes by
+<ul>
+<li>\ref adding_nodes_and_elements_page "Addition" of nodes and elements</li>
+<li>\ref removing_nodes_and_elements_page "Removal" of nodes and elements </li>
+</ul>
+</li>
+<li>\ref creating_groups_page "grouping mesh elements" and
+\ref using_operations_on_groups_page "performing operations on these groups"</li>
+<li>\ref about_quality_controls_page "quality control" of meshes basing on a set of definite criteria -
+
+<b>for edges:</b>
+<ul>
+<li>\ref length_page "Length of edges"</li>
+<li>\ref borders_at_multi_connection_page "Borders at multi-connection"</li>
+<li>\ref free_borders_page "Free borders"</li>
+</ul>
+
+<b>for faces:</b>
+<ul>
+<li>\ref area_page "Area"</li>
+<li>\ref free_edges_page "Free edges"</li>
+<li>\ref borders_at_multi_connection_2d_page "Borders at multi-connection 2D"</li>
+<li>\ref length_2d_page "Length 2D"</li>
+<li>\ref minimum_angle_page "Minimum angle"</li>
+<li>\ref taper_page "Taper"</li>
+<li>\ref aspect_ratio_page "Aspect Ratio"</li>
+<li>\ref warping_page "Warping"</li>
+<li>\ref skew_page "Skew"</li>
+</ul>
+
+<b>for solids:</b>
+<ul>
+<li>\ref aspect_ratio_3d_page "Aspect ratio 3D"</li>
+<li>\ref volume_page "Volume"</li>
+</ul>
+</li>
+</ul>
+
+\image html image7.jpg
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page introduction_to_mesh_python_page Introduction to MESH module python interface
+
+\n Package smesh provides a standard API for creation and edition of meshes.
+\n Below you can see an example of usage of the package smesh for 3d mesh generation.
+
+<h2>Example of 3d mesh generation with NETGEN:</h2>
+
+\n from geompy import *
+\n import smesh
+
+<b># Geometry</b>
+\n <b># an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral</b>.
+
+<b># Define values</b>
+\n name = "ex21_lamp"
+\n cote = 60
+\n section = 20
+\n size = 200
+\n radius_1 = 80
+\n radius_2 = 40
+\n height = 100
+
+<b># Build a box</b>
+\n box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote)
+
+<b># Build a cylinder</b>
+\n pt1 = MakeVertex(0, 0, cote/3)
+\n di1 = MakeVectorDXDYDZ(0, 0, 1)
+\n cyl = MakeCylinder(pt1, di1, section, size)
+
+<b># Build a truncated cone</b>
+\n pt2 = MakeVertex(0, 0, size)
+\n cone = MakeCone(pt2, di1, radius_1, radius_2, height)
+
+<b># Fuse </b>
+\n box_cyl = MakeFuse(box, cyl)
+\n piece = MakeFuse(box_cyl, cone)
+
+<b># Add in study</b>
+\n addToStudy(piece, name)
+
+<b># Create a group of faces</b>
+\n group = CreateGroup(piece, ShapeType["FACE"])
+\n group_name = name + "_grp"
+\n addToStudy(group, group_name)
+\n group.SetName(group_name)
+
+<b># Add faces in the group</b>
+\n faces = SubShapeAllIDs(piece, ShapeType["FACE"])
+\n UnionIDs(group, faces)
+
+<b># Create a mesh</b>
+
+<b># Define a mesh on a geometry</b>
+\n tetra = smesh.Mesh(piece, name)
+
+<b># Define 1D hypothesis</b>
+\n algo1d = tetra.Segment()
+\n algo1d.LocalLength(10)
+
+<b># Define 2D hypothesis</b>
+\n algo2d = tetra.Triangle()
+\n algo2d.LengthFromEdges()
+
+<b># Define 3D hypothesis</b>
+\n algo3d = tetra.Tetrahedron(smesh.NETGEN)
+\n algo3d.MaxElementVolume(100)
+
+<b># Compute the mesh</b>
+\n tetra.Compute()
+
+<b># Create a groupe of faces</b>
+\n tetra.Group(group)
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page length_page Length
+
+\n Length quality control criterion returns a value of length of
+edge.
+
+\image html length-crit.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_length_1d "Length quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page length_2d_page Length 2D
+
+\n This quality control criterion consists of calculation of length of
+the edges combining the meshing elements (triangles and quadrangles)
+of your mesh.
+
+<em>To apply the Length 2D quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer. </li>
+
+<li>Choose <b>Controls > Length 2D</b> or click <em>"Length 2D"</em>
+button in the toolbar.
+
+\image html image34.gif
+<center><em>"Length 2D" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored according to the applied mesh quality control criterion:
+
+\image html length2d.png
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_length_2d "Length 2D quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page max_element_volume_hypo_page Max Element Volume hypothesis
+
+\n <b>Max Element Area</b> hypothesis is applied for meshing of 3D objects
+composing your geometrical object. Definition of this hypothesis
+consists of setting the <b>maximum volume</b> of 3D meshing elements
+(depending on the chosen meshing algorithm it can be \b hexahedrons or
+\b tetrahedrons), which will compose the mesh of these 3D objects.
+
+\image html a-maxelvolume.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_max_element_volume "Maximum Element Volume hypothesis" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page merging_elements_page Merging Elements
+
+\n This functionality allows to merge coincident elements of a mesh
+selectable in the dialog box.
+
+\image html mergeelems.png
+
+In this picture you see a triangle which coincides with one of the
+elements of the mesh. After we apply <b>Merge Elements</b> functionality, the
+triangle will be completely merged with the mesh.
+
+\image html meshtrianglemergeelem1.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_merging_elements "Merge Elements" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page merging_nodes_page Merging nodes
+
+\n This functionality allows user to detect groups of coincident nodes
+with desirable tolerance, edit these groups and merge.
+
+<em>To merge nodes of your mesh:</em>
+<ol>
+<li>From the \b Modification choose \b Transformation and from its
+sub-menu select the <b>Merge nodes</b> item. The following dialog box
+shall appear:
+
+\image html mergenodes.png
+
+<ul>
+<li>\b Name is the name of the mesh whose nodes will be merged.</li>
+<li>\b Tolerance is a maximum distance between nodes sufficient for
+merging.
+<ul>
+<li>\b Detect button generates the list of coincident nodes for the given
+\b Tolerance.</li>
+</ul>
+</li>
+<li><b>Coincident nodes</b> is a list of groupes of nodes for
+merging. All nodes of each group will form one after the
+operation.
+<ul>
+<li>\b Remove button deletes the selected group from the list.</li>
+<li>\b Add button adds to the list a group of nodes selected in the
+viewer with pressed "Shift" key.</li>
+<li><b>Select all</b> checkbox selects all groups.</li>
+</ul>
+</li>
+<li><b>Edit selected group</b> list allows editing the selected
+group:
+<br><br>
+\image html add.gif
+<center>adds to the group the node selected in the viewer.</center>
+<br>
+\image html remove.gif
+<center>removes from the group the selected node.</center>
+<br>
+\image html sort.gif
+<center>moves the selected node to the first position in the
+group. This means that all other nodes will be merged into this
+one.</center><br>
+</li>
+</ul>
+</li>
+<li>To confirm your choice click \b OK or \b Apply button.</li>
+</ol>
+
+\image html merging_nodes1.png
+
+\image html merging_nodes2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_merging_nodes "Merge Nodes" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page mesh_infos_page Mesh infos
+
+\n There are two types of information boxes: <b>Standard Mesh
+Infos</b> and <b>Advanced Mesh Infos</b>.
+<ul>
+<li>\ref standard_mesh_infos_anchor "Standard"</li>
+<li>\ref advanced_mesh_infos_anchor "Advanced"</li>
+</ul>
+
+<br>
+\anchor standard_mesh_infos_anchor
+<h2>Standard Mesh Infos</h2>
+
+The <b>Standard Mesh Infos</b> box gives only the information on the
+number of elements of maximum dimension and the number of nodes in the
+mesh. However, from this Info you can learn about groups selected on
+this mesh.
+\n To view the <b>Standard Mesh Infos</b>, select your mesh or submesh
+in the <b>Object Browser</b> and select <b>Standard Mesh Infos</b>
+from the \b Mesh menu or click <em>"Standard Mesh Infos"</em> button
+in the toolbar.
+
+\image html image49.gif
+<center><em>"Standard Mesh Infos" button</em></center>
+
+The following information will be displayed:
+
+\image html a-standmeshinfo.png
+
+<br>
+\anchor advanced_mesh_infos_anchor
+<h2>Advanced Mesh Infos</h2>
+
+The <b>Advanced Mesh Infos</b> gives more information about the mesh,
+including the total number of faces and volumes and their geometrical
+types.
+\n To view the <b>Advanced Mesh Infos</b>, select your mesh or submesh
+in the <b>Object Browser</b> and select <b>Advanced Mesh Infos</b>
+from the \b Mesh menu or click <em>"Advanced Mesh Infos"</em> button
+in the toolbar.
+
+\image html image50.gif
+<center><em>"Advanced Mesh Infos" button</em></center>
+
+The following information will be displayed:
+
+\image html advanced_mesh_infos.png
+
+In case you get Mesh Infos via a \ref tui_viewing_mesh_infos "TUI script",
+the information is displayed in Python Console.
+
+\image html b-mesh_infos.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page mesh_through_point_page Mesh through point
+
+\n In mesh you can define a node at a certain point either by creation
+of a new node, by movement of the node closest to the point or by
+movement of any node to the point.
+
+<em>To create a mesh passing through a point:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Mesh through point</b> item or
+click <em>"Mesh to pass through a point"</em> button in the toolbar.
+
+\image html mesh_node_to_point.png
+<center><em>"Mesh to pass through a point" button</em></center>
+
+The following dialog box shall appear:
+
+\image html meshtopass.png
+
+</li>
+<li>Enter the coordinates of the point.</li>
+<li>Choose one of several methods: you can either \b Create a new node at
+the indicated point or Move the existing node to the point. In the
+latter case you can check in <b>Automatic search</b> of the closest node or
+select the necessary node manually. \b Preview check-box allows to see
+the results of the operation.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_mesh_through_point "Mesh through point" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page minimum_angle_page Minimum angle
+
+\n <b>Minimum angle</b> mesh quality criterion consists of calculation of the
+minimum value of angle between two adjacent sides of a 2D meshing
+element (triangle or quadrangle).
+
+<em>To apply the Minimum angle quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Minimum angle</b> or click <em>"Minimum Angle"</em> button.
+
+\image html image38.gif
+<center><em>"Minimum Angle" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image92.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_minimum_angle "Minimum Angle quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page modifying_meshes_page Modifying meshes
+
+<ul>
+<li>\subpage adding_nodes_and_elements_page</li>
+<li>\subpage adding_quadratic_elements_page</li>
+<li>\subpage removing_nodes_and_elements_page</li>
+<li>\subpage renumbering_nodes_and_elements_page</li>
+<li>\subpage transforming_meshes_page</li>
+<ul>
+<li>\ref translation_page</li>
+<li>\ref rotation_page</li>
+<li>\ref symmetry_page</li>
+<li>\ref sewing_meshes_page</li>
+<li>\ref merging_nodes_page</li>
+<li>\ref merging_elements_page</li>
+</ul>
+<li>\subpage moving_nodes_page</li>
+<li>\subpage mesh_through_point_page</li>
+<li>\subpage diagonal_inversion_of_elements_page</li>
+<li>\subpage uniting_two_triangles_page</li>
+<li>\subpage uniting_set_of_triangles_page</li>
+<li>\subpage changing_orientation_of_elements_page</li>
+<li>\subpage cutting_quadrangles_page</li>
+<li>\subpage smoothing_page</li>
+<li>\subpage extrusion_page</li>
+<li>\subpage extrusion_along_path_page</li>
+<li>\subpage revolution_page</li>
+<li>\subpage pattern_mapping_page</li>
+<li>\subpage convert_to_from_quadratic_mesh_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page moving_nodes_page Moving nodes
+
+\n In MESH you can change the location of any node of your mesh. In
+this case all adjacent elements (edges) will be also transformed right
+after the displaced node.
+
+<em>To displace a node:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Move node</b> item or
+click <em>"Move Node"</em> button in the toolbar.
+
+\image html image67.gif
+<center><em>"Move Node" button</em></center>
+
+The following dialog box shall appear:
+
+\image html movenodes.png
+
+</li>
+<li>Enter the ID of the required node in the <b>Node ID</b> field or
+select this node in the 3D viewer. The coordinates of your node will
+be automatically displayed in the \b Coordinates set of fields.</li>
+<li>Set new coordinates for your node in the \b Coordinates set of fields.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html moving_nodes1.png
+
+\image html moving_nodes2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_moving_nodes "Moving Nodes" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page netgen_2d_3d_hypo_page Netgen 2D and 3D hypotheses
+
+\n <b>Netgen 2D</b> and <b>Netgen 3D</b> hypotheses work only with <b>Netgen 1D-2D</b> and
+<b>Netgen 1D-2D-3D</b> algorithms. These algorithms do not require
+definition of lower-level hypotheses and algorithms (2D and 1D for
+meshing 3D objects and 1D for meshing 2D objects). They prove to be
+useful if lower-level meshing is homogeneous for all wires and faces
+of the meshed object.
+
+\image html netgen2d.png
+
+<ul>
+<li><b>Name</b> - allows to define the name for the algorithm (Netgen
+2D (or 3D) Parameters by default).</li>
+<li><b>Max Size</b> - maximum linear dimensions for mesh cells.</li>
+<li><b>Second Order</b> - if this box is checked in, the algorithm will
+create second order nodes on the mesh, which actually will become
+\ref adding_quadratic_elements_page "Quadratic".</li>
+<li><b>Fineness</b> - ranging from Very Coarse to Very Fine allows to set the
+level of meshing detalization using the three parameters below. You
+can select Custom to define them manually.</li>
+<li><b>Growth rate</b> - allows to define how much the linear dimensions of
+two adjacent cells can differ (i.e. 0.3 means 30%).</li>
+<li><b>Nb. Segs per Edge</b> and <b>Nb Segs per Radius</b> - allows to define the
+minimum number of mesh segments in which edges and radiuses will be
+split.</li>
+<li><b>Allow Quadrangles</b> - allows to use quadrangle elements in a
+triangle 2D mesh. This checkbox is not present in Netgen 3D parameters
+because currently building a tetrahedral mesh with quadrangle faces is
+not possible.</li>
+<li><b>Optimize</b> - if this box is checked in, the algorithm will try to
+create regular (possessing even sides) elements.</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page numbering_page Numbering
+
+<br><h2>Displaying nodes numbers</h2>
+
+In MESH you can display the ID numbers of all nodes of your mesh in
+the viewer.
+
+<em>To display ID numbers of nodes:</em>
+<ol>
+<li>Display your mesh in the viewer</li>
+<li>Right-click on the mesh in the 3D viewer and from the associated
+pop-up menu choose <b>Numbering > Display Nodes #</b>.</li>
+</ol>
+
+It will look like as follows:
+
+\image html image96.jpg
+
+<br><h2>Displaying elements numbers</h2>
+
+In MESH you can display the ID numbers of all meshing elements
+composing your mesh in the viewer.
+
+<em>To display ID numbers of elements:</em>
+<ol>
+<li>Display your mesh in the viewer</li>
+<li>Right-click on the mesh in the 3D viewer and from the associated
+pop-up menu choose <b>Numbering > Display Elements #</b>.</li>
+</ol>
+
+It will look like as follows:
+
+\image html image95.jpg
+
+*/
+
--- /dev/null
+/*!
+
+\page pattern_mapping_page Pattern mapping
+
+<br><h2>About patterns</h2>
+
+The pattern describes a mesh to generate: positions of nodes within a
+geometrical domain and nodal connectivity of elements. As well, a
+pattern specifies the so-called key-points, i.e. nodes that will be
+located at geometrical vertices. Pattern description is stored in
+\<pattern_name\>.smp file.
+
+The smp file contains 4 sections:
+<ol>
+<li>The first line holds the number of nodes (N).</li>
+
+<li>The next N lines describe nodes coordinates. Each line holds 2
+coordinates of a node.</li>
+
+<li>A key-points line: indices of nodes to be mapped on geometrical
+vertices. An index n refers to a node described on an n-th line of
+section 2. The first node index is zero.</li>
+
+<li>The rest lines describe nodal connectivity of elements, one line
+for an element. A line holds indices of nodes forming an element. An
+index n refers to a node described on an n-th line of the section
+2. The first node index is zero. There must be 3 or 4 indices on a
+line: only 2d elements are allowed.</li>
+</ol>
+
+The 2D pattern must contain at least one element and at least one
+key-point. All key-points must lay on boundaries.
+
+An example of a simple smp file and a preview of a pattern described
+in this file:
+
+\image html image94.gif
+
+<br><h2>Application of pattern mapping</h2>
+
+<em>To apply pattern mapping to a geometrical object:</em>
+
+From the \b Modification menu choose the <b>Pattern Mapping</b> item or click
+<em>"Pattern mapping"</em> button in the toolbar.
+
+\image html image98.gif
+<center><em>"Pattern mapping" button</em></center>
+
+The following dialog box shall appear:
+
+\image html patternmapping1.png
+
+\image html patternmapping2.png
+
+To apply a pattern to a geometrical object, you should specify:
+<ul>
+<li>a face having the number of vertices equal to the number of
+key-points in the pattern; the number of key-points on internal
+boundaries of a pattern must also be equal to the number of vertices
+on internal boundaries of a face;</li>
+<li>a vertex to which the first key-point should be mapped;</li>
+<li>reverse or not the order of key-points. (The order of vertices of
+a face is counterclockwise looking from outside).</li>
+</ul>
+
+Then you either load a .smp pattern file previously created manually
+by clicking on the <em>"Load pattern"</em> button, or click on the \b
+New button for automatic generation.
+\n For an automatic generation you just specify a geometrical face
+having a mesh built on it. Mesh nodes lying on face vertices become
+key-points. Additionally, you may choose the way of getting nodes
+coordinates by <b>projecting nodes on the face</b> instead of using
+"positions on face" generated by mesher (if there is any). Faces
+having a seam edge can?t be used for automatic pattern creation.
+
+When creating a pattern from an existing mesh, there are two possible
+cases:
+<ol>
+<li>A sub-mesh on face is selected. A pattern is created from the 2d
+elements bound to a face by mesher. Node coordinates are either
+"positions on face" computed by mesher, or coordinates got by node
+projection on a geometrical surface, according to your choice.</li>
+<li>A mesh where the main shape is a face, is selected. A pattern is
+created from all the 2d elements in a mesh. If all mesh elements are
+build by mesher, the user can select the way of getting nodes
+coordinates, else all nodes are projected on a face surface.</li>
+</ol>
+
+\image html a-patterntype.png
+
+\image html a-patterntype1.png
+
+<br><h2>Mapping algorithm</h2>
+
+The mapping algorithm is as follows:
+<ol>
+<li>Key-points are set in the order that they are encountered when
+walking along a pattern boundary so that elements are on the left. The
+first key-point is preserved.
+</li>
+
+<li>Find geometrical vertices corresponding to key-points by vertices
+order in a face boundary; here, "Reverse order of key-points" flag is
+taken into account.
+
+\image html image95.gif
+</li>
+
+<li>Boundary nodes of a pattern are mapped onto edges of a face: a
+node located between certain key-points on a pattern boundary is
+mapped on a geometrical edge limited by corresponding geometrical
+vertices. Node position on an edge reflects its distance from two
+key-points.
+
+\image html image96.gif
+</li>
+
+<li>Coordinates of a non-boundary node in a parametric space of a face
+are defined as following. In a parametric space of a pattern, a node
+lays at the intersection of two iso-lines, each of which intersects a
+pattern boundary at least at two points. Knowing mapped positions of
+boundary nodes, we find where isoline-boundary intersection points are
+mapped to, and hence we can find mapped isolines direction and then,
+two node positions on two mapped isolines. The eventual mapped
+position of a node is found as an average of positions on mapped
+isolines.
+
+\image html image97.gif
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_pattern_mapping "Pattern Mapping" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page prism_3d_algo_page 3D extrusion meshing algorithm
+
+3D extrusion algorithm can be used for meshing prisms, i.e. <b>3D Shapes</b>
+defined by two opposing faces having the same number of vertices and
+edges and meshed using the \ref projection_algos_page "2D Projection"
+algorithm. These two faces should be connected by quadrangle "side"
+faces.
+
+The opposing faces can be meshed with either quadrangles or triangles,
+while the side faces should be meshed with quadrangles only.
+
+\image html image157.gif
+
+As you can see, the <b>3D extrusion</b> algorithm permits to build and to
+have in the same 3D mesh such elements as hexahedrons, prisms and
+polyhedrons.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page projection_algos_page Projection Algorithms
+
+\n Projection algorithms allow to define the mesh of a geometrical
+object by the projection of another already meshed geometrical object.
+
+<b>Projection 1D</b> algorithm permits to define the mesh of an edge
+by the projection of another already meshed edge.
+\n To apply this algorithm select the edge to be meshed (indicated in
+the field \b Geometry of <b>Create mesh</b> dialog box),
+<b>Projection1D</b> in the list of 1D algorithms and click the
+<em>"Add Hypothesis"</em> button.
+The following dialog box will appear:
+
+\image html projection_1d.png
+
+In this menu you can define the \b Name of the algorithm, the algeady
+meshed source \b Edge and the \b Mesh (optional, use it if there are several
+different meshes on the same edge). It could also be necessary to
+define the orientation of edges, which is done by indicating the
+<b>Source Vertex</b> being the first point of the Source Edge and the
+<b>Target Vertex</b> being the first point of the created \b Edge.
+
+\n <b>Projection 2D</b> algorithm permits to define the mesh of a face by the
+projection of another already meshed face. This algorithm works only
+if all edges of the target face have been meshed as 1D Projections of
+the edges of the source face.
+
+To apply this algorithm select the face to be meshed (indicated in the
+field \b Geometry of <b>Create mesh</b> dialog box), <b>Projection 2D</b> in the list
+of 2D algorithms and click the <em>"Add Hypothesis"</em> button. The
+following dialog box will appear:
+
+\image html projection_2d.png
+
+In this menu you can define the \b Name of the algorithm, the algeady
+meshed source \b Face and the \b Mesh (optional, use it if there are several
+different meshes on the same face). It could also be necessary to
+define the orientation of mesh on the face, which is done by
+indicating two <b>Source Vertices</b>, which belong to the same edge of the
+source face, and two <b>Target Vertices</b>, which belong to the same edge of
+the created \b Face.
+
+\n <b>Projection 3D</b> algorithm permits to define the mesh of a shape by
+the projection of another already meshed shape. This algorithm works
+only if all faces and edges of the target face have been meshed as 1D
+Projections of the faces and edges of the source face. Another
+limitation is that this algorithm currently works only on boxes.
+
+To apply this algorithm select the solid to be meshed (indicated in
+the field \b Geometry of <b>Create mesh</b> dialog box), <b>Projection
+3D</b> in the list of 3D algorithms and click the button. The
+following dialog box will appear:
+
+\image html projection_3d.png
+
+In this menu you can define the \b Name of the algorithm, the algeady
+meshed source <b>3D shape</b> and the \b Mesh (optional, use it if there are
+several different meshes on the same shape). It could also be
+necessary to define the orientation of mesh on the shape, which is
+done by indicating two <b>Source Vertices</b>, which belong to the same edge
+of the source <b>3D Shape</b>, and two <b>Target Vertices</b>, which belong to the
+same edge of the source <b>3D Shape</b>.
+
+*/
+
--- /dev/null
+/*!
+
+\page quality_controls_page Quality controls
+
+<ul>
+<li>\subpage about_quality_controls_page</li>
+<li>\subpage free_borders_page</li>
+<li>\subpage borders_at_multi_connection_page</li>
+<li>\subpage length_page</li>
+<li>\subpage free_edges_page</li>
+<li>\subpage length_2d_page</li>
+<li>\subpage borders_at_multi_connection_2d_page</li>
+<li>\subpage area_page</li>
+<li>\subpage taper_page</li>
+<li>\subpage aspect_ratio_page</li>
+<li>\subpage minimum_angle_page</li>
+<li>\subpage warping_page</li>
+<li>\subpage skew_page</li>
+<li>\subpage aspect_ratio_3d_page</li>
+<li>\subpage volume_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page radial_prism_algo_page Radial Prism
+
+\n This algorithm applies to the meshing of a hollow 3D shape,
+i.e. such shape should be composed of two meshed shells: an outer
+shell and an internal shell without intersection with the outer
+shell. One of the shells should be a 2D Projection of the other
+shell. The meshes of the shells can consist both of triangles and
+quadrangles.
+
+The Radial Prism algorithm would fill the space between the two shells
+with meshes.
+
+This algorithm also needs the information concerning the number and
+distribution of mesh layers between the inner and the outer shapes.
+
+\image html number_of_layers.png
+
+Distribution of layers can be set with any of 1D Hypotheses.
+
+\image html distribution_of_layers.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page removing_nodes_and_elements_page Removing nodes and elements
+
+\n In MESH you can remove nodes and all types of cells of your mesh.
+
+<ul>
+<li>\ref removing_nodes_anchor "Nodes"</li>
+<li>\ref removing_elements_anchor "Elements"</li>
+</ul>
+
+<br>
+\anchor removing_nodes_anchor
+<h2>Removing nodes</h2>
+
+<em>To remove a node:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the Modification menu choose Remove and from the associated
+submenu select the Remove nodes, or just click <em>"Remove nodes"</em>
+button in the toolbar.
+
+\image html image88.gif
+<center><em>"Remove nodes" button</em></center>
+
+The following dialog box will appear:
+
+\image html removenodes.png
+
+In this dialog box you can specify one or several nodes (with pressed
+Shift button) by choosing them in the 3D viewer.
+</li>
+</ol>
+
+\note Be careful while removing nodes because if you remove a definite
+node of your mesh all adjacent elements will be also deleted.
+
+\image html remove_nodes1.png
+
+\image html remove_nodes2.png
+
+<br>
+\anchor removing_elements_anchor
+<h2>Removing elements</h2>
+
+<em>To remove an element:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the \b Modification menu choose \b Remove and from the
+associated submenu select the Remove elements, or just click
+<em>"Remove elements"</em> button in the toolbar.
+
+\image html remove_elements_icon.png
+<center><em>"Remove elements" button</em></center>
+
+The following dialog box will appear:
+
+\image html removeelements.png
+
+In this dialog box you can specify one or several elements of your
+mesh (with pressed Shift button) by choosing them in the 3D viewer.
+</li>
+<li>Click OK or Apply to confirm deletion of the specified elements.</li>
+</ol>
+
+\image html remove_elements1.png
+
+\image html remove_elements2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_removing_nodes_and_elements "Removing Nodes and Elements" operation.
+
+*/
+
--- /dev/null
+/*!
+
+\page renumbering_nodes_and_elements_page Renumbering nodes and elements
+
+\n In MESH you can renumber the nodes and elements of your mesh.
+
+<ul>
+<li>\ref renumbering_nodes_anchor "Nodes"</li>
+<li>\ref renumbering_elements_anchor "Elements"</li>
+</ul>
+
+<br>
+\anchor renumbering_nodes_anchor
+<h2>Renumbering nodes</h2>
+
+<em>To renumber the nodes of your mesh:</em>
+<ol>
+<li>In the \b Modification menu select \b Renumbering submenu and
+choose the \b Nodes item or click <em>"Renumbering nodes"</em> button
+in the toolbar.
+
+\image html image63.gif
+<center><em>"Renumbering nodes" button</em></center>
+
+The following dialog box will appear:
+
+\image html renumbernodes.png
+</li>
+
+<li>Fill the \b Mesh field by selecting your mesh in the Object
+Browser or in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button to perform the operation.</li>
+</ol>
+
+<br>
+\anchor renumbering_elements_anchor
+<h2>Renumbering elements</h2>
+
+<em>To renumber the elements of your mesh:</em>
+<ol>
+<li>In the \b Modification menu select \b Renumbering submenu and
+choose the \b Elements item or click <em>"Renumbering elements"</em>
+button in the toolbar.
+
+\image html image64.gif
+<center><em>"Renumbering elements" button</em></center>
+
+The following dialog box will appear:
+
+\image html renumberelements.png
+</li>
+
+<li>Fill the \b Mesh field by selecting your mesh in the Object
+Browser or in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button to perform the operation.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_renumbering_nodes_and_elements "Renumbering Nodes and Elements" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page revolution_page Revolution
+
+\n Revolution is a type of surface meshing by generation from
+discretized lines. It is used to build mesh elements of plus one
+dimension than the swept ones. Each swept 1D element produces one or
+more quadrangles (or triangles if one node of a rotated element lays
+on the revolution axis).
+
+<em>To apply revolution:</em>
+<ol>
+<li>From the \b Modification menu choose the \b Revolution item or click
+<em>"Revolution"</em> button in the toolbar.
+
+\image html image92.gif
+<center><em>"Revolution" button</em></center>
+
+The following dialog box shall appear:
+
+\image html revolution1.png
+
+\image html revolution2.png
+</li>
+
+<li>
+In this dialog box you should specify:
+<ul>
+<li>the type of elements which will be extruded (1D or 2D),</li>
+<li>specify the IDs of the elements which will be revolved by
+selecting them in the 3D viewer or select the whole mesh or
+submesh,</li>
+<li>specify the axis (point and vector) around which the elements will
+be revolved,</li>
+<li>angle of rotation,</li>
+<li>number of steps,</li>
+<li>tolerance of rotation</li>
+</ul>
+</li>
+
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html image78.jpg
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_revolution "Revolution" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page rotation_page Rotation
+
+\n This geometrical operation allows to rotate in space your mesh or
+some of its elements.
+
+<em>To rotate your mesh:</em>
+\par
+From the \b Modification choose \b Transformation and from its sub-menu
+select the \b Rotation item. The following dialog box shall appear:
+
+\image html rotation.png
+\par
+In this dialog box you can specify the elements which should be
+rotated and the rotation parameters:
+<ul>
+<li>\b Axis: point and vector</li>
+<li>\b Angle of rotation</li>
+</ul>
+\par
+<b>Create a copy</b> radio button allows to copy the rotated object.
+
+\image html rotation1.png
+
+\image html rotation2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_rotation "Rotation" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page running_mesh_module_page Running MESH module
+
+\n To start MESH module in SALOME click "Mesh" icon in the "Modules" toolbar or
+select \b Mesh from the Choose box.
+
+\image html image25.jpg
+<center><em>"Mesh" icon</em></center>
+
+The desktop of the SALOME platform will be updated with additional
+toolbars and menus related to the \b MESH component .
+
+\image html a-viewgeneral.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page segments_around_vertex_algo_page Segments around Vertex
+
+\n <b>Segments around Vertex</b> algorithm is considered to be a 0D meshing
+algorithm, but, of course, it doesn't mesh nodes. It allows to define
+the local size of the elements in the neighborhood of a certain
+node. If we choose an object of higher dimension, it applies to all
+its tops, i.e. corners of a box. The 0D algorithm combines with the
+algorithms of higher dimensions, but it is not necessarily required
+for their successful implementation.
+
+This algorithm allows only one hypothesis.
+
+\image html lengthnearvertex.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page selection_filter_library_page Selection filter library
+
+\n Selection filter library is a powerful tool enabling to create
+filters to be used on meshes. You can access to it from the Main Menu
+via <b>Tools / Selection filter library</b>.
+
+\image html selectionfilterlibrary.png
+
+<b>Library file name</b> shows the path and the file name where your
+filters will be stored. By clicking the <em>Browse</em> button you can load an
+existing filter library.
+\n <b>Names of filters</b> lists the filters created or uploaded for
+the current study. You can \b Add or \b Delete filters.
+\n In <b>Filter name</b> box you can specify the name for your
+filter. By default it is prefixed with the corresponding entity type.
+\n Each filter can be applicable to \b Nodes, \b Edges, \b Faces or \b
+Volumes. You can combine many criteria in one filter, but they all
+must be of the same <b>Entity type</b>.
+\n The \b Add button creates a new criterion at the end of the list of
+criteria. The \b Insert button creates a new criterion before the
+selected criterion. The \b Remove button deletes the selected
+criterion. The \b Clear button deletes all criteria.
+\n Each <b>Entity type</b> has its specific list of criteria, however all
+filters have common syntax. For each criterion you should specify the
+<b>Threshold Value</b> and whether we search for the elements that should be
+\b More, \b Less or \b Equal to this \b Value. You should also specify if the
+criterion is \b Unary or \b Binary.
+\n Some criteria should have the additional parameter of \b Tolerance.
+
+When we create a <b>Standalone Group</b> using filters (for this click
+<b>Set Filters</b> button in the <b>Create Group</b> menu), the menu
+for setting filters looks a bit differently. Toggling <b>Insert filter
+in viewer</b> checkbox enables to preview the group selected with your
+current filter in the viewer.
+\n In the \b Source field you choose if the filter will be applied to
+the whole \b Mesh, the <b>Initial Selection</b> or the <b>Current Group</b>.
+\n <b>Copy from...</b> button gives you a possibility to load an
+existing filter from <b>Selection filter library</b> and <b>Add
+to...</b> button gives you a possibility to save your current filter
+in the Library.
+
+\image html a-filteronedges.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page sewing_meshes_page Sewing meshes
+
+\n In SMESH you can sew elements of different meshes. The current
+functionality allows you to sew:
+<ul>
+<li>\ref free_borders_anchor "Free borders"</li>
+<li>\ref conform_free_borders_anchor "Conform free borders"</li>
+<li>\ref border_to_side_anchor "Border to side"</li>
+<li>\ref side_elements_anchor "Side elements"</li>
+</ul>
+
+<em>To sew elements of different meshes:</em>
+<ol>
+<li>From the \b Modification menu choose the \b Transformation item
+and from its sub-menu select the \b Sewing item.</li>
+<li>Check in the dialog box one of the radio buttons corresponding to
+the type of sewing operation you would like to perform.</li>
+<li>Fill the other fields available in the dialog box.</li>
+<li>Click the \b OK or \b Apply button to perform the operation of sewing.</li>
+</ol>
+
+<br>
+\anchor free_borders_anchor
+<h2>Sew free borders</h2>
+
+This functionality allows you to unite two free borders of a 2D mesh.
+
+\image html sewing1.png
+
+For sewing free borders you should define three points on each border:
+first, second and the last node:
+<ul>
+<li>the first node specifies beginning of the border;</li>
+<li>the second node specifies the part of the border which should be
+considered (as far as the free border usually forms a closed
+contour);</li>
+<li>the last node specifies the end of the border.</li>
+</ul>
+
+You can select these nodes in the 3D viewer or define by its id.
+
+The first and the second nodes should belong to the same link of a
+face. The second and the last nodes of a border can be the same. The
+first and the last nodes of two borders can be the same. The
+corresponding end nodes of two borders will be merged. Intermediate
+nodes of two borders will be either merged or inserted into faces of
+the opposite border.
+
+The sewing algorithm is as follows:
+<ol>
+<li>The parameter (U) of each node within a border is computed. So
+that the first node has U=0.0, the last node has U=1.0, for the rest
+nodes 0.0 < U < 1.0;</li>
+<li>Compare node parameters of the two borders. If two nodes of the
+opposite borders have close parameters, they are merged, i.e. a node
+of the first border is replaced in all elements by a node of the
+second border. If a node has no node with a close parameter in the
+opposite border, it is inserted into an edge of element of the
+opposite border, an element is split. Two nodes are considered close
+enough to merge, if difference of their parameters is less than one
+fifth of minimum length of adjacent face edges on the borders.</li>
+</ol>
+
+\image html image22.jpg
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_sew_free_borders "Sew Free Borders" operation.
+
+<br>
+\anchor conform_free_borders_anchor
+<h2>Sew conform free borders</h2>
+
+This functionality can be used to unite two free borders of a 2D mesh.
+
+\image html sewing2.png
+
+The borders of meshes for sewing are defined as for "Sew free borders"
+except that the second free border is not limited and can be defined
+by the first and the second nodes only. The first nodes of two borders
+can be the same.
+
+The algorithm is following: counting nodes starting at the first ones,
+the n-th node of the first border is merged with the n-th node of the
+other border, until the end of either of borders. Nodes of the first
+border are replaced in all elements with corresponding nodes of the
+second border.
+\n For sewing conform free borders you should define three points on
+the first border and two points on the second one. User can select
+these nodes in 3D viewer or define node by its id.
+
+\image html image22.jpg
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_sew_conform_free_borders "Sew Conform Free Borders"
+operation.
+
+<br>
+\anchor border_to_side_anchor
+<h2>Sew border to side</h2>
+
+"Sew border to side" is intended to sew a free border to a mesh
+surface.
+\n The free border is defined as for "Sewing of free borders". The
+place where to sew the border is defined by two nodes, between which
+the border faces are placed, so that the first border node is merged
+with the first node on the side and the last node of the border is
+merged with the second specified node on the side.
+
+\image html sewing3.png
+
+The algorithm is following.
+<ol>
+<li>Find a sequence of linked nodes on the side such that the found
+links to be most co-directed with the links of the free border.</li>
+<li>Sew two sequences of nodes using algorithm of "Sewing of free berders".
+\n For sewing border to side you should define three points on the
+border and two points on the side. User can select these nodes in 3D
+viewer or define node by its id.</li>
+</ol>
+
+\image html image30.jpg
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_sew_meshes_border_to_side "Sew Border to Side" operation.
+
+<br>
+\anchor side_elements_anchor
+<h2>Sew side elements</h2>
+
+This operation is intended to unite two mesh surfaces.
+
+\image html sewing4.png
+
+Surfaces may be defined by either 2d or 3d elements. The number of
+given elements of the sides must be the same. The sets of given
+elements must be topologically equal, i.e. each node of one element
+set must have a corresponding node in the other element set and
+corresponding nodes must be equally linked. If there are 3d elements
+in a set, only their free faces must obey to that rule.
+\n Two corresponding nodes on each side must be specified. They must
+belong to one element and must be located on an element set boundary.
+
+Sewing algorithm finds and merges the corresponding nodes starting
+from the specified ones.
+
+\image html image31.jpg
+
+\image html image32.jpg
+
+For sewing side elements you should define elements for sewing and two
+nodes for merging on the each side. User can select these elements and
+nodes in 3D viewer or define them by its id.
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_sew_side_elements "Sew Side Elements" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page skew_page Skew
+
+\n \b Skew mesh quality criterion reflects the angle between the lines
+that join opposite sides of the element. SKEW is a maximum value of
+all skew angles. This mesh quality criterion can be applied to
+elements composed of 4 and 3 nodes (quadrangles and triangles).
+
+\image html image27.jpg
+
+<em>To apply the Skew quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Skew</b> or click <em>"Skew"</em> button of the toolbar.
+
+\image html image40.gif
+<center><em>"Skew" button </em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image93.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_skew "Skew quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page smeshpy_interface_page Python interface smesh.py
+
+\n Python package smesh defines several classes, destined for easy and
+clear mesh creation and edition (see the \ref introduction_to_mesh_python_page "example").
+
+\n Also, please see \ref smeshDC "documentation for smesh.py"
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page smoothing_page Smoothing
+
+\n Smoothing is used to adjust the locations of element corners
+(nodes) to reduce distortions in these elements.
+
+<em>To apply smoothing to the elements of your mesh:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the \b Smoothing item or click
+<em>"Smoothing"</em> button in the toolbar.
+
+\image html image84.gif
+<center><em>"Smoothing" button</em></center>
+
+The dialog box contains the following fields which should be
+specified:
+
+\image html smoothing.png
+
+<ul>
+<li><b>Id Elements</b> field allows to specify the elements which
+should be smoothed by selecting them in the 3D viewer (lock \b Shift
+button to select several elements).</li>
+<li><b>Select whole mesh, submesh or group</b> - smoothing is applied
+to the whole mesh or its part.</li>
+<li><b>Fixed nodes ids:</b> some nodes keep their location during
+smoothing. If a mesh is built on a geometry shape, the nodes built on
+geometrical edges are always fixed. If smoothing is applied to a part
+of a mesh then the boundary nodes of an elements set are also
+fixed. Any other nodes may be additionally fixed.</li>
+<li><b>Smoothing Method:</b>
+<ul>
+<li>\b Laplacian smoothing pulls a node toward the center of surrounding nodes directly connected to that node along an element edge. Centroidal smoothing pulls a node toward the element-area-weighted centroid of the surrounding elements. Typically, the Laplacian method will produce the mesh with the least element distortion. It is also the faster method.</li>
+<li>\b Centroidal smoothing usually produces a mesh that has more uniform element sizes. Both methods produce good results with "free" meshes.</li>
+</ul>
+
+\image html image83.gif
+
+</li>
+<li><b>Iteration limit:</b> both of the smoothing methods use an
+iterative procedure to converge toward a smoothed mesh. All nodes are
+smoothed according to one of the techniques shown above. Then the
+smoothing is reevaluated with the updated nodal locations. This
+process continues until the maximum number of iterations has been
+exceeded, or all elements has aspect ratio less or equal than the
+specified one.</li>
+<li><b>Max. aspect ratio</b>.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+\image html smoothing1.png
+
+\image html smoothing2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_smoothing "Smoothing" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page symmetry_page Symmetry
+
+\n This geometrical operation allows to perform a symmetrical copy of
+your mesh or some of its elements.
+
+<em>To apply symmetry to your mesh:</em>
+\par
+From the \b Modification choose \b Transformation and from its
+sub-menu select the \b Symmetry item. The following dialog box shall
+appear:
+
+\image html symmetry1.png
+
+\image html symmetry2.png
+
+\image html symmetry3.png
+
+\par
+This operation has three options, you can symmetrically copy your mesh
+or some of its elements specifying:
+<ul>
+<li>one point</li>
+<li>one axis (point and vector)</li>
+<li>one plane (point and normal)</li>
+</ul>
+\par
+<b>Create a copy</b> radio button allows to keep the initial elements or
+mesh.
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_symmetry "Symmetry" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page taper_page Taper
+
+\n \b Taper mesh quality criterion represents the ratio of the areas
+of two triangles separated by a diagonal. So it can be calculated only
+for elements consisting of 4 nodes.
+
+\image html image25.gif
+
+<br><em>To apply the Taper quality criterion to your mesh:</em>
+
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Taper</b> or click <em>"Taper"</em> button in
+the toolbar.
+
+\image html image36.gif
+<center><em>"Taper" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image90.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_taper "Taper quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page transforming_meshes_page Transforming meshes
+
+<ul>
+<li>\subpage translation_page</li>
+<li>\subpage rotation_page</li>
+<li>\subpage symmetry_page</li>
+<li>\subpage sewing_meshes_page</li>
+<li>\subpage merging_nodes_page</li>
+<li>\subpage merging_elements_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page translation_page Translation
+
+\n This geometrical operation allows to translate in space your mesh
+or some of its elements.
+
+<em>To translate your mesh:</em>
+\par
+From the \b Modification choose \b Transformation and from its
+sub-menu select the \b Translation item. The following dialog box
+shall appear:
+
+\image html translation1.png
+
+\image html translation2.png
+
+\par
+This operation has two options, you can translate in space your mesh
+or some of its elements specifying:
+<ul>
+<li>two points (starting and ending)</li>
+<li>one vector</li>
+</ul>
+Toggle the corresponding checkbox to <b>Select whole mesh, submesh or
+group</b>.
+<b>Create a copy</b> button allows to copy the translated object.
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_translation "Translation" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page transparency_page Transparency
+
+\image html a-transparency.png
+
+Using this slider you can set the transparency of shading. Absolutely
+transparent shading will be invisible. By default it is absolutely
+opaque.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_creating_meshes_page Creating Meshes
+
+\n First of all see \ref tui_creating_meshes_page "Example of 3d mesh generation",
+ which is an example of good python script style for Mesh module.
+\n Other examples of python scripts will be also updated soon to use
+ smesh package instead of direct usage of idl interface.
+
+<br>
+<h2>Construction of a Mesh</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+tetra = smesh.Mesh(box, "MeshBox")
+
+algo1D = tetra.Segment()
+algo1D.NumberOfSegments(7)
+
+algo2D = tetra.Triangle()
+algo2D.MaxElementArea(800.)
+
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+algo3D.MaxElementVolume(900.)
+
+# compute the mesh
+ret = tetra.Compute()
+if ret == 0:
+ print "problem when computing the mesh"
+else:
+ print "mesh computed"
+ pass
+\endcode
+
+<br>
+\anchor tui_construction_submesh
+<h2>Construction of a Submesh</h2>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# select one edge of the box for definition of a local hypothesis
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh")
+
+# create a regular 1D algorithm for the faces
+algo1D = quadra.Segment()
+
+# define "NumberOfSegments" hypothesis to cut
+# all the edges in a fixed number of segments
+algo1D.NumberOfSegments(4)
+
+# create a quadrangle 2D algorithm for the faces
+quadra.Quadrangle()
+
+# construct a submesh on the edge with a local hypothesis
+algo_local = quadra.Segment(EdgeX)
+
+# define "Arithmetic1D" hypothesis to cut the edge in several segments with increasing arithmetic length
+algo_local.Arithmetic1D(1, 4)
+
+# define "Propagation" hypothesis that propagates all other hypotheses
+# on all edges of the opposite side in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+quadra.Compute()
+
+\endcode
+
+<br>
+\anchor tui_editing_mesh
+<h2>Editing of a mesh</h2>
+
+\code
+import geompy
+import smesh
+
+def PrintMeshInfo(theMesh):
+ aMesh = theMesh.GetMesh()
+ print "Information about mesh:"
+ print "Number of nodes : ", aMesh.NbNodes()
+ print "Number of edges : ", aMesh.NbEdges()
+ print "Number of faces : ", aMesh.NbFaces()
+ print "Number of volumes : ", aMesh.NbVolumes()
+ pass
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 20., 20., 20.)
+geompy.addToStudy(box, "box")
+
+# select one edge of the box for definition of a local hypothesis
+subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["EDGE"])
+edge = subShapeList[0]
+name = geompy.SubShapeName(edge, box)
+geompy.addToStudyInFather(box, edge, name)
+
+# create a mesh
+tria = smesh.Mesh(box, "Mesh 2D")
+algo1D = tria.Segment()
+hyp1 = algo1D.NumberOfSegments(3)
+algo2D = tria.Triangle()
+hyp2 = algo2D.MaxElementArea(10.)
+
+# create a sub-mesh
+algo_local = tria.Segment(edge)
+hyp3 = algo_local.Arithmetic1D(1, 6)
+hyp4 = algo_local.Propagation()
+
+# compute the mesh
+tria.Compute()
+PrintMeshInfo(tria)
+
+# remove a local hypothesis
+mesh = tria.GetMesh()
+mesh.RemoveHypothesis(edge, hyp4)
+
+# compute the mesh
+tria.Compute()
+PrintMeshInfo(tria)
+
+# change the value of the 2D hypothesis
+hyp2.SetMaxElementArea(2.)
+
+# compute the mesh
+tria.Compute()
+PrintMeshInfo(tria)
+\endcode
+
+<br>
+\anchor tui_export_mesh
+<h2>Export of a Mesh</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+tetra = smesh.Mesh(box, "MeshBox")
+
+algo1D = tetra.Segment()
+algo1D.NumberOfSegments(7)
+
+algo2D = tetra.Triangle()
+algo2D.MaxElementArea(800.)
+
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+algo3D.MaxElementVolume(900.)
+
+# compute the mesh
+tetra.Compute()
+
+# export the mesh in a MED file
+tetra.ExportMED("/tmp/meshMED.med", 0)
+\endcode
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_defining_hypotheses_page Defining Hypotheses and Algorithms
+
+<h2>Defining 1D Hypotheses</h2>
+
+<br>
+\anchor tui_1d_arithmetic
+<h3>1D Arithmetic</h3>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
+geompy.addToStudy(box, "Box")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# create a Regular 1D algorithm for edges
+algo1D = hexa.Segment()
+
+# define "Arithmetic1D" hypothesis to cut all edges in several segments with increasing arithmetic length
+algo1D.Arithmetic1D(1, 4)
+
+# create a quadrangle 2D algorithm for faces
+hexa.Quadrangle()
+
+# create a hexahedron 3D algorithm for solids
+hexa.Hexahedron()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_deflection_1d
+<h3>Deflection 1D and Number of Segments</h3>
+
+\code
+import geompy
+import smesh
+
+# create a face from arc and straight segment
+px = geompy.MakeVertex(100., 0. , 0. )
+py = geompy.MakeVertex(0. , 100., 0. )
+pz = geompy.MakeVertex(0. , 0. , 100.)
+
+exy = geompy.MakeEdge(px, py)
+arc = geompy.MakeArc(py, pz, px)
+
+wire = geompy.MakeWire([exy, arc])
+
+isPlanarFace = 1
+face1 = geompy.MakeFace(wire, isPlanarFace)
+geompy.addToStudy(face1,"Face1")
+
+# get edges from the face
+e_straight,e_arc = geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"])
+geompy.addToStudyInFather(face1, e_arc, "Arc Edge")
+
+# create hexahedral mesh
+hexa = smesh.Mesh(face1, "Face : triangle mesh")
+
+# define "NumberOfSegments" hypothesis to cut a straight edge in a fixed number of segments
+algo1D = hexa.Segment()
+algo1D.NumberOfSegments(6)
+
+# define "MaxElementArea" hypothesis
+algo2D = hexa.Triangle()
+algo2D.MaxElementArea(70.0)
+
+# define a local "Deflection1D" hypothesis on the arc
+algo_local = hexa.Segment(e_arc)
+algo_local.Deflection1D(1.0)
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_start_and_end_length
+<h3>Start and End Length</h3>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# get one edge of the box to put local hypothesis on
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# set algorithms
+algo1D = hexa.Segment()
+hexa.Quadrangle()
+hexa.Hexahedron()
+
+# define "NumberOfSegments" hypothesis to cut an edge in a fixed number of segments
+algo1D.NumberOfSegments(4)
+
+# create a local hypothesis
+algo_local = hexa.Segment(EdgeX)
+
+# define "StartEndLength" hypothesis to cut an edge in several segments with increasing geometric length
+algo_local.StartEndLength(1, 6)
+
+# define "Propagation" hypothesis that propagates all other hypothesis
+# on all edges on the opposite side in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_average_length
+<h3>Average Length</h3>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# get one edge of the box to put local hypothesis on
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# set algorithms
+algo1D = hexa.Segment()
+hexa.Quadrangle()
+hexa.Hexahedron()
+
+# define "NumberOfSegments" hypothesis to cut all edges in a fixed number of segments
+algo1D.NumberOfSegments(4)
+
+# create a sub-mesh
+algo_local = hexa.Segment(EdgeX)
+
+# define "LocalLength" hypothesis to cut an edge in several segments with the same length
+algo_local.LocalLength(2.)
+
+# define "Propagation" hypothesis that propagates all other hypothesis
+# on all edges on the opposite side in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br><h2>Defining 2D and 3D hypotheses</h2>
+
+<br>
+\anchor tui_max_element_area
+<h3>Maximum Element Area</h3>
+
+\code
+import geompy
+import smesh
+import salome
+
+# create a face
+px = geompy.MakeVertex(100., 0. , 0. )
+py = geompy.MakeVertex(0. , 100., 0. )
+pz = geompy.MakeVertex(0. , 0. , 100.)
+
+vxy = geompy.MakeVector(px, py)
+arc = geompy.MakeArc(py, pz, px)
+wire = geompy.MakeWire([vxy, arc])
+
+isPlanarFace = 1
+face = geompy.MakeFace(wire, isPlanarFace)
+
+# add the face in the study
+id_face = geompy.addToStudy(face, "Face to be meshed")
+
+# create a mesh
+tria_mesh = smesh.Mesh(face, "Face : triangulation")
+
+# define 1D meshing:
+algo = tria_mesh.Segment()
+algo.NumberOfSegments(20)
+
+# define 2D meshing:
+
+# assign triangulation algorithm
+algo = tria_mesh.Triangle()
+
+# apply "Max Element Area" hypothesis to each triangle
+algo.MaxElementArea(100)
+
+# compute the mesh
+tria_mesh.Compute()
+\endcode
+
+<br>
+\anchor tui_max_element_volume
+<h3>Maximum Element Volume</h3>
+
+\code
+import geompy
+import smesh
+
+# create a cylinder
+cyl = geompy.MakeCylinderRH(30., 50.)
+geompy.addToStudy(cyl, "cyl")
+
+# create a mesh on the cylinder
+tetra = smesh.Mesh(cyl, "Cylinder : tetrahedrical mesh")
+
+# assign algorithms
+algo1D = tetra.Segment()
+algo2D = tetra.Triangle()
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+
+# assign 1D and 2D hypotheses
+algo1D.NumberOfSegments(7)
+algo2D.MaxElementArea(150.)
+
+# assign Max Element Volume hypothesis
+algo3D.MaxElementVolume(200.)
+
+# compute the mesh
+ret = tetra.Compute()
+if ret == 0:
+ print "probleme when computing the mesh"
+else:
+ print "Computation succeded"
+\endcode
+
+<br>
+\anchor tui_length_from_edges
+<h3>Length from Edges</h3>
+
+\code
+import geompy
+import smesh
+
+# create sketchers
+sketcher1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW")
+sketcher2 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW")
+
+# create a face from two wires
+isPlanarFace = 1
+face1 = geompy.MakeFaces([sketcher1, sketcher2], isPlanarFace)
+geompy.addToStudy(face1, "Face1")
+
+# create a mesh
+tria = smesh.Mesh(face1, "Face : triangle 2D mesh")
+
+# Define 1D meshing
+algo1D = tria.Segment()
+algo1D.NumberOfSegments(2)
+
+# create and assign the algorithm for 2D meshing with triangles
+algo2D = tria.Triangle()
+
+# create and assign "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
+algo2D.LengthFromEdges()
+
+# compute the mesh
+tria.Compute()
+\endcode
+
+<br><h2>Defining Additional Hypotheses</h2>
+
+<br>
+\anchor tui_propagation
+<h3>Propagation</h3>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# get one edge of the box to put local hypothesis on
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# set global algorithms and hypotheses
+algo1D = hexa.Segment()
+hexa.Quadrangle()
+hexa.Hexahedron()
+algo1D.NumberOfSegments(4)
+
+# create a sub-mesh with local 1D hypothesis and propagation
+algo_local = hexa.Segment(EdgeX)
+
+# define "Arithmetic1D" hypothesis to cut an edge in several segments with increasing length
+algo_local.Arithmetic1D(1, 4)
+
+# define "Propagation" hypothesis that propagates all other 1D hypotheses
+# from all edges on the opposite side of a face in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_defining_meshing_algos
+<h2>Defining Meshing Algorithms</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
+geompy.addToStudy(box, "Box")
+
+# 1. Create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# create a Regular 1D algorithm for edges
+algo1D = hexa.Segment()
+
+# create a quadrangle 2D algorithm for faces
+algo2D = hexa.Quadrangle()
+
+# create a hexahedron 3D algorithm for solids
+algo3D = hexa.Hexahedron()
+
+# define hypotheses
+algo1D.Arithmetic1D(1, 4)
+
+# compute the mesh
+hexa.Compute()
+
+# 2. Create a tetrahedral mesh on the box
+tetra = smesh.Mesh(box, "Box : tetrahedrical mesh")
+
+# create a Regular 1D algorithm for edges
+algo1D = tetra.Segment()
+
+# create a Mefisto 2D algorithm for faces
+algo2D = tetra.Triangle()
+
+# create a Netgen 3D algorithm for solids
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+
+# define hypotheses
+algo1D.Arithmetic1D(1, 4)
+algo2D.LengthFromEdges()
+
+# compute the mesh
+tetra.Compute()
+
+# 3. Create a tetrahedral mesh on the box with NETGEN_2D3D algorithm
+tetraN = smesh.Mesh(box, "Box : tetrahedrical mesh by NETGEN_2D3D")
+
+# create a Netgen_2D3D algorithm for solids
+algo3D = tetraN.Tetrahedron(smesh.FULL_NETGEN)
+
+# define hypotheses
+n23_params = algo3D.Parameters()
+
+# compute the mesh
+tetraN.Compute()
+\endcode
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_grouping_elements_page Grouping Elements
+
+<br>
+\anchor tui_create_standalone_group
+<h2>Create a Standalone Group</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Get ids of all faces with area > 100
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 100.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# create a group consisting of faces with area > 100
+aGroup = mesh.MakeGroupByIds("Area > 100", smesh.FACE, anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html create_group.png
+
+<br>
+\anchor tui_create_group_on_geometry
+<h2>Create a Group on Geometry</h2>
+
+\code
+import salome
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 100., 100., 100.)
+geompy.addToStudy(box, "box")
+
+# add the first face of the box to the study
+subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+face = subShapeList[0]
+geompy.addToStudyInFather(box, face, "face 1")
+
+# create group of edges on the face
+aGeomGroupE = geompy.CreateGroup(face, geompy.ShapeType["EDGE"])
+geompy.AddObject(aGeomGroupE, 3)
+geompy.AddObject(aGeomGroupE, 6)
+geompy.AddObject(aGeomGroupE, 8)
+geompy.AddObject(aGeomGroupE, 10)
+geompy.addToStudyInFather(face, aGeomGroupE, "Group of Edges")
+
+# create quadrangle 2D mesh on the box
+quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh")
+algo1D = quadra.Segment()
+quadra.Quadrangle()
+algo1D.NumberOfSegments(7)
+
+# compute the mesh
+quadra.Compute()
+
+# create SMESH group on the face with name "SMESHGroup1"
+aSmeshGroup1 = quadra.GroupOnGeom(face, "SMESHGroup1")
+
+# create SMESH group on <aGeomGroupE> with default name
+aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_edit_group
+<h2>Edit a Group</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Get ids of all faces with area > 35
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 35.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 35, Nb = ", len(anIds)
+
+# create a group by adding elements with area > 35
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Area > 35")
+aGroup.Add(anIds)
+
+# Get ids of all faces with area > 40
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 40.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 40, Nb = ", len(anIds)
+
+# create a group of elements with area [35; 40] by removing elements with area > 40 from group aGroup
+aGroup.Remove(anIds)
+
+# print the result
+aGroupElemIDs = aGroup.GetListOfID()
+
+print "Criterion: 35 < Area < 40, Nb = ", len(aGroupElemIDs)
+
+j = 1
+for i in range(len(aGroupElemIDs)):
+ if j > 20: j = 1; print ""
+ print aGroupElemIDs[i],
+ j = j + 1
+ pass
+print ""
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html editing_groups1.png
+
+\image html editing_groups2.png
+
+<br>
+\anchor tui_union_of_two_groups
+<h2>Union of two groups</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 20, Nb = ", len( anIds )
+
+# create a group by adding elements with area > 20
+aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, "Area > 20")
+aGroup1.Add(anIds)
+
+# Criterion : AREA = 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area = 20, Nb = ", len( anIds )
+
+# create a group by adding elements with area = 20
+aGroup2 = mesh.CreateEmptyGroup( smesh.FACE, "Area = 20" )
+
+aGroup2.Add(anIds)
+
+# create union group : area >= 20
+aGroup3 = mesh.UnionGroups(aGroup1, aGroup2, "Area >= 20")
+print "Criterion: Area >= 20, Nb = ", len(aGroup3.GetListOfID())
+
+# Criterion : AREA < 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area < 20, Nb = ", len(anIds)
+
+# create a group by adding elements with area < 20
+aGroup4 = mesh.CreateEmptyGroup(smesh.FACE, "Area < 20")
+aGroup4.Add(anIds)
+
+# create union group : area >= 20 and area < 20
+aGroup5 = mesh.UnionGroups(aGroup3, aGroup4, "Any Area")
+print "Criterion: Any Area, Nb = ", len(aGroup5.GetListOfID())
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html union_groups1.png
+
+\image html union_groups2.png
+
+\image html union_groups3.png
+
+<br>
+\anchor tui_intersection_of_two_groups
+<h2>Intersection of two groups</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 20, Nb = ", len(anIds)
+
+# create a group by adding elements with area > 20
+aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, "Area > 20")
+aGroup1.Add(anIds)
+
+# Criterion : AREA < 60
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 60.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area < 60, Nb = ", len(anIds)
+
+# create a group by adding elements with area < 60
+aGroup2 = mesh.CreateEmptyGroup(SMESH.FACE, "Area < 60")
+aGroup2.Add(anIds)
+
+# create an intersection of groups : 20 < area < 60
+aGroup3 = mesh.IntersectGroups(aGroup1, aGroup2, "20 < Area < 60")
+print "Criterion: 20 < Area < 60, Nb = ", len(aGroup3.GetListOfID())
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html intersect_groups1.png
+
+\image html intersect_groups2.png
+
+\image html intersect_groups3.png
+
+<br>
+\anchor tui_cut_of_two_groups
+<h2>Cut of two groups</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 20, Nb = ", len(anIds)
+
+# create a group by adding elements with area > 20
+aGroupMain = mesh.MakeGroupByIds("Area > 20", smesh.FACE, anIds)
+
+# Criterion : AREA < 60
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 60.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area < 60, Nb = ", len(anIds)
+
+# create a group by adding elements with area < 60
+aGroupTool = mesh.MakeGroupByIds("Area < 60", smesh.FACE, anIds)
+
+# create a cut of groups : area >= 60
+aGroupRes = mesh.CutGroups(aGroupMain, aGroupTool, "Area >= 60")
+print "Criterion: Area >= 60, Nb = ", len(aGroupRes.GetListOfID())
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html cut_groups1.png
+
+\image html cut_groups2.png
+
+\image html cut_groups3.png
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_modifying_meshes_page Modifying Meshes
+
+<br>
+\anchor tui_adding_nodes_and_elements
+<h2>Adding Nodes and Elements</h2>
+
+<br>
+\anchor tui_add_node
+<h3>Add Node</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# add node
+new_id = mesh.AddNode(50, 10, 0)
+print ""
+if new_id == 0: print "KO node addition."
+else: print "New Node has been added with ID ", new_id
+\endcode
+
+<br>
+\anchor tui_add_edge
+<h3>Add Edge</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+# add edge
+e1 = mesh.AddEdge([n1, 38])
+if e1 == 0: print "KO edge addition."
+else: print "New Edge has been added with ID ", e1
+\endcode
+
+<br>
+\anchor tui_add_triangle
+<h3>Add Triangle</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+# add triangle
+t1 = mesh.AddFace([n1, 38, 39])
+if t1 == 0: print "KO triangle addition."
+else: print "New Triangle has been added with ID ", t1
+\endcode
+
+<br>
+\anchor tui_add_quadrangle
+<h3>Add Quadrangle</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+n2 = mesh.AddNode(40, 20, 0)
+if n2 == 0: print "KO node addition."
+
+# add quadrangle
+q1 = mesh.AddFace([n2, n1, 38, 39])
+if q1 == 0: print "KO quadrangle addition."
+else: print "New Quadrangle has been added with ID ", q1
+\endcode
+
+<br>
+\anchor tui_add_tetrahedron
+<h3>Add Tetrahedron</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+# add tetrahedron
+t1 = mesh.AddVolume([n1, 38, 39, 246])
+if t1 == 0: print "KO tetrahedron addition."
+else: print "New Tetrahedron has been added with ID ", t1
+\endcode
+
+<br>
+\anchor tui_add_hexahedron
+<h3>Add Hexahedron</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add nodes
+nId1 = mesh.AddNode(50, 10, 0)
+nId2 = mesh.AddNode(47, 12, 0)
+nId3 = mesh.AddNode(50, 10, 10)
+nId4 = mesh.AddNode(47, 12, 10)
+
+if nId1 == 0 or nId2 == 0 or nId3 == 0 or nId4 == 0: print "KO node addition."
+
+# add hexahedron
+vId = mesh.AddVolume([nId2, nId1, 38, 39, nId4, nId3, 245, 246])
+if vId == 0: print "KO Hexahedron addition."
+else: print "New Hexahedron has been added with ID ", vId
+\endcode
+
+<br>
+\anchor tui_add_polygon
+<h3>Add Polygon</h3>
+
+\code
+import math
+import salome
+
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh()
+
+# a method to build a polygonal mesh element with <nb_vert> angles:
+def MakePolygon (a_mesh, x0, y0, z0, radius, nb_vert):
+ al = 2.0 * math.pi / nb_vert
+ node_ids = []
+
+ # Create nodes for a polygon
+ for ii in range(nb_vert):
+ nid = mesh.AddNode(x0 + radius * math.cos(ii*al),
+ y0 + radius * math.sin(ii*al),
+ z0)
+ node_ids.append(nid)
+ pass
+
+ # Create a polygon
+ return mesh.AddPolygonalFace(node_ids)
+
+# Create three polygons
+f1 = MakePolygon(mesh, 0, 0, 0, 30, 13)
+f2 = MakePolygon(mesh, 0, 0, 10, 21, 9)
+f3 = MakePolygon(mesh, 0, 0, 20, 13, 6)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_add_polyhedron
+<h3>Add Polyhedron</h3>
+
+\code
+import salome
+import math
+
+# create an empty mesh structure
+mesh = smesh.Mesh()
+
+# Create nodes for 12-hedron with pentagonal faces
+al = 2 * math.pi / 5.0
+cosal = math.cos(al)
+aa = 13
+rr = aa / (2.0 * math.sin(al/2.0))
+dr = 2.0 * rr * cosal
+r1 = rr + dr
+dh = rr * math.sqrt(2.0 * (1.0 - cosal * (1.0 + 2.0 * cosal)))
+hh = 2.0 * dh - dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh
+
+dd = [] # top
+cc = [] # below top
+bb = [] # above bottom
+aa = [] # bottom
+
+for i in range(5):
+ cos_bot = math.cos(i*al)
+ sin_bot = math.sin(i*al)
+
+ cos_top = math.cos(i*al + al/2.0)
+ sin_top = math.sin(i*al + al/2.0)
+
+ nd = mesh.AddNode(rr * cos_top, rr * sin_top, hh ) # top
+ nc = mesh.AddNode(r1 * cos_top, r1 * sin_top, hh - dh) # below top
+ nb = mesh.AddNode(r1 * cos_bot, r1 * sin_bot, dh) # above bottom
+ na = mesh.AddNode(rr * cos_bot, rr * sin_bot, 0) # bottom
+ dd.append(nd) # top
+ cc.append(nc) # below top
+ bb.append(nb) # above bottom
+ aa.append(na) # bottom
+ pass
+
+# Create a polyhedral volume (12-hedron with pentagonal faces)
+MeshEditor.AddPolyhedralVolume([dd[0], dd[1], dd[2], dd[3], dd[4], # top
+ dd[0], cc[0], bb[1], cc[1], dd[1], # -
+ dd[1], cc[1], bb[2], cc[2], dd[2], # -
+ dd[2], cc[2], bb[3], cc[3], dd[3], # - below top
+ dd[3], cc[3], bb[4], cc[4], dd[4], # -
+ dd[4], cc[4], bb[0], cc[0], dd[0], # -
+ aa[4], bb[4], cc[4], bb[0], aa[0], # .
+ aa[3], bb[3], cc[3], bb[4], aa[4], # .
+ aa[2], bb[2], cc[2], bb[3], aa[3], # . above bottom
+ aa[1], bb[1], cc[1], bb[2], aa[2], # .
+ aa[0], bb[0], cc[0], bb[1], aa[1], # .
+ aa[0], aa[1], aa[2], aa[3], aa[4]], # bottom
+ [5,5,5,5,5,5,5,5,5,5,5,5])
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_removing_nodes_and_elements
+<h2>Removing Nodes and Elements</h2>
+
+<br>
+\anchor tui_removing_nodes
+<h3>Removing Nodes</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# remove nodes #246 and #255
+res = mesh.RemoveNodes([246, 255])
+if res == 1: print "Nodes removing is OK!"
+else: print "KO nodes removing."
+\endcode
+
+<br>
+\anchor tui_removing_elements
+<h3>Removing Elements</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# remove three elements: #850, #859 and #814
+res = mesh.RemoveElements([850, 859, 814])
+if res == 1: print "Elements removing is OK!"
+else: print "KO Elements removing."
+\endcode
+
+<br>
+\anchor tui_renumbering_nodes_and_elements
+<h2>Renumbering Nodes and Elements</h2>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+mesh.RenumberNodes()
+
+mesh.RenumberElements()
+\endcode
+
+<br>
+\anchor tui_moving_nodes
+<h2>Moving Nodes</h2>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# move node #38
+mesh.MoveNode(38, 20., 10., 0.)
+\endcode
+
+<br>
+\anchor tui_mesh_through_point
+<h2>Mesh through point</h2>
+
+\code
+from geompy import *
+from smesh import *
+
+box = MakeBoxDXDYDZ(200, 200, 200)
+
+mesh = Mesh( box )
+mesh.Segment().AutomaticLength(0.1)
+mesh.Quadrangle()
+mesh.Compute()
+
+# find node at (0,0,0)
+node000 = None
+for vId in SubShapeAllIDs( box, ShapeType["VERTEX"]):
+ if node000: break
+ nodeIds = mesh.GetSubMeshNodesId( vId, True )
+ for node in nodeIds:
+ xyz = mesh.GetNodeXYZ( node )
+ if xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :
+ node000 = node
+ pass
+ pass
+ pass
+
+if not node000:
+ raise "node000 not found"
+
+# find node000 using the tested function
+n = mesh.FindNodeClosestTo( -1,-1,-1 )
+if not n == node000:
+ raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 )
+
+# check if any node will be found for a point inside a box
+n = mesh.FindNodeClosestTo( 100, 100, 100 )
+if not n > 0:
+ raise "FindNodeClosestTo( 100, 100, 100 ) fails"
+
+# move node000 to a new location
+x,y,z = -10, -10, -10
+n = mesh.MeshToPassThroughAPoint( x,y,z )
+if not n == node000:
+ raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 )
+
+# check the coordinates of the node000
+xyz = mesh.GetNodeXYZ( node000 )
+if not ( xyz[0] == x and xyz[1] == y and xyz[2] == z) :
+ raise "Wrong coordinates: " + str( xyz ) + " != " + str( [x,y,z] )
+\endcode
+
+<br>
+\anchor tui_diagonal_inversion
+<h2>Diagonal Inversion</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh()
+
+# create the following mesh:
+# .----.----.----.
+# | /| /| /|
+# | / | / | / |
+# | / | / | / |
+# |/ |/ |/ |
+# .----.----.----.
+
+bb = [0, 0, 0, 0]
+tt = [0, 0, 0, 0]
+ff = [0, 0, 0, 0, 0, 0]
+
+bb[0] = mesh.AddNode( 0., 0., 0.)
+bb[1] = mesh.AddNode(10., 0., 0.)
+bb[2] = mesh.AddNode(20., 0., 0.)
+bb[3] = mesh.AddNode(30., 0., 0.)
+
+tt[0] = mesh.AddNode( 0., 15., 0.)
+tt[1] = mesh.AddNode(10., 15., 0.)
+tt[2] = mesh.AddNode(20., 15., 0.)
+tt[3] = mesh.AddNode(30., 15., 0.)
+
+ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]])
+ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]])
+ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]])
+ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]])
+ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]])
+ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]])
+
+# inverse the diagonal bb[1] - tt[2]
+print "\nDiagonal inversion ... ",
+res = mesh.InverseDiag(bb[1], tt[2])
+if not res: print "failed!"
+else: print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_uniting_two_triangles
+<h2>Uniting two Triangles</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh()
+
+# create the following mesh:
+# .----.----.----.
+# | /| /| /|
+# | / | / | / |
+# | / | / | / |
+# |/ |/ |/ |
+# .----.----.----.
+
+bb = [0, 0, 0, 0]
+tt = [0, 0, 0, 0]
+ff = [0, 0, 0, 0, 0, 0]
+
+bb[0] = mesh.AddNode( 0., 0., 0.)
+bb[1] = mesh.AddNode(10., 0., 0.)
+bb[2] = mesh.AddNode(20., 0., 0.)
+bb[3] = mesh.AddNode(30., 0., 0.)
+
+tt[0] = mesh.AddNode( 0., 15., 0.)
+tt[1] = mesh.AddNode(10., 15., 0.)
+tt[2] = mesh.AddNode(20., 15., 0.)
+tt[3] = mesh.AddNode(30., 15., 0.)
+
+ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]])
+ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]])
+ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]])
+ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]])
+ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]])
+ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]])
+
+# delete the diagonal bb[1] - tt[2]
+print "\nUnite two triangles ... ",
+res = mesh.DeleteDiag(bb[1], tt[2])
+if not res: print "failed!"
+else: print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_uniting_set_of_triangles
+<h2>Uniting a Set of Triangles</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh()
+
+# create the following mesh:
+# .----.----.----.
+# | /| /| /|
+# | / | / | / |
+# | / | / | / |
+# |/ |/ |/ |
+# .----.----.----.
+
+bb = [0, 0, 0, 0]
+tt = [0, 0, 0, 0]
+ff = [0, 0, 0, 0, 0, 0]
+
+bb[0] = mesh.AddNode( 0., 0., 0.)
+bb[1] = mesh.AddNode(10., 0., 0.)
+bb[2] = mesh.AddNode(20., 0., 0.)
+bb[3] = mesh.AddNode(30., 0., 0.)
+
+tt[0] = mesh.AddNode( 0., 15., 0.)
+tt[1] = mesh.AddNode(10., 15., 0.)
+tt[2] = mesh.AddNode(20., 15., 0.)
+tt[3] = mesh.AddNode(30., 15., 0.)
+
+ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]])
+ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]])
+ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]])
+ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]])
+ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]])
+ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]])
+
+# unite a set of triangles
+print "\nUnite a set of triangles ... ",
+res = mesh.TriToQuad([ff[2], ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.)
+if not res: print "failed!"
+else: print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_orientation
+<h2>Orientation</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh()
+
+# build five quadrangles:
+dx = 10
+dy = 20
+
+n1 = mesh.AddNode(0.0 * dx, 0, 0)
+n2 = mesh.AddNode(1.0 * dx, 0, 0)
+n3 = mesh.AddNode(2.0 * dx, 0, 0)
+n4 = mesh.AddNode(3.0 * dx, 0, 0)
+n5 = mesh.AddNode(4.0 * dx, 0, 0)
+n6 = mesh.AddNode(5.0 * dx, 0, 0)
+n7 = mesh.AddNode(0.0 * dx, dy, 0)
+n8 = mesh.AddNode(1.0 * dx, dy, 0)
+n9 = mesh.AddNode(2.0 * dx, dy, 0)
+n10 = mesh.AddNode(3.0 * dx, dy, 0)
+n11 = mesh.AddNode(4.0 * dx, dy, 0)
+n12 = mesh.AddNode(5.0 * dx, dy, 0)
+
+f1 = mesh.AddFace([n1, n2, n8 , n7 ])
+f2 = mesh.AddFace([n2, n3, n9 , n8 ])
+f3 = mesh.AddFace([n3, n4, n10, n9 ])
+f4 = mesh.AddFace([n4, n5, n11, n10])
+f5 = mesh.AddFace([n5, n6, n12, n11])
+
+# Change the orientation of the second and the fourth faces.
+mesh.Reorient([2, 4])
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_cutting_quadrangles
+<h2>Cutting Quadrangles</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# cut two quadrangles: 405 and 406
+mesh.QuadToTri([405, 406], smesh.FT_MinimumAngle)
+\endcode
+
+<br>
+\anchor tui_smoothing
+<h2>Smoothing</h2>
+
+\code
+import salome
+import geompy
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# select the top face
+faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"])
+face = faces[3]
+geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, face, "face planar with hole")
+
+# create a group of faces to be smoothed
+GroupSmooth = mesh.GroupOnGeom(face, "Group of faces (smooth)", smesh.FACE)
+
+# perform smoothing
+
+# boolean SmoothObject(Object, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method)
+res = mesh.SmoothObject(GroupSmooth, [], 20, 2., smesh.CENTROIDAL_SMOOTH)
+print "\nSmoothing ... ",
+if not res: print "failed!"
+else: print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_extrusion
+<h2>Extrusion</h2>
+
+\code
+import salome
+import geompy
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# select the top face
+faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"])
+face = faces[7]
+geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, face, "face circular top")
+
+# create a vector for extrusion
+point = smesh.PointStruct(0., 0., 5.)
+vector = smesh.DirStruct(point)
+
+# create a group to be extruded
+GroupTri = mesh.GroupOnGeom(face, "Group of faces (extrusion)", smesh.FACE)
+
+# perform extrusion of the group
+mesh.ExtrusionSweepObject(GroupTri, vector, 5)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_extrusion_along_path
+<h2>Extrusion along a Path</h2>
+
+\code
+import math
+import salome
+
+# Geometry
+import geompy
+
+# 1. Create points
+points = [[0, 0], [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]
+
+iv = 1
+vertices = []
+for point in points:
+ vert = geompy.MakeVertex(point[0], point[1], 0)
+ geompy.addToStudy(vert, "Vertex_" + `iv`)
+ vertices.append(vert)
+ iv += 1
+ pass
+
+# 2. Create edges and wires
+Edge_straight = geompy.MakeEdge(vertices[0], vertices[4])
+Edge_bezierrr = geompy.MakeBezier(vertices)
+Wire_polyline = geompy.MakePolyline(vertices)
+Edge_Circle = geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])
+
+geompy.addToStudy(Edge_straight, "Edge_straight")
+geompy.addToStudy(Edge_bezierrr, "Edge_bezierrr")
+geompy.addToStudy(Wire_polyline, "Wire_polyline")
+geompy.addToStudy(Edge_Circle , "Edge_Circle")
+
+# 3. Explode wire on edges, as they will be used for mesh extrusion
+Wire_polyline_edges = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType["EDGE"])
+for ii in range(len(Wire_polyline_edges)):
+ geompy.addToStudyInFather(Wire_polyline, Wire_polyline_edges[ii], "Edge_" + `ii + 1`)
+ pass
+
+# Mesh
+import smesh
+
+# Mesh the given shape with the given 1d hypothesis
+def Mesh1D(shape1d, nbSeg, name):
+ mesh1d_tool = smesh.Mesh(shape1d, name)
+ algo = mesh1d_tool.Segment()
+ hyp = algo.NumberOfSegments(nbSeg)
+ isDone = mesh1d_tool.Compute()
+ if not isDone: print 'Mesh ', name, ': computation failed'
+ return mesh1d_tool
+
+# Create a mesh with six nodes, seven edges and two quadrangle faces
+def MakeQuadMesh2(mesh_name):
+ quad_1 = smesh.Mesh(name = mesh_name)
+
+ # six nodes
+ n1 = quad_1.AddNode(0, 20, 10)
+ n2 = quad_1.AddNode(0, 40, 10)
+ n3 = quad_1.AddNode(0, 40, 30)
+ n4 = quad_1.AddNode(0, 20, 30)
+ n5 = quad_1.AddNode(0, 0, 30)
+ n6 = quad_1.AddNode(0, 0, 10)
+
+ # seven edges
+ quad_1.AddEdge([n1, n2]) # 1
+ quad_1.AddEdge([n2, n3]) # 2
+ quad_1.AddEdge([n3, n4]) # 3
+ quad_1.AddEdge([n4, n1]) # 4
+ quad_1.AddEdge([n4, n5]) # 5
+ quad_1.AddEdge([n5, n6]) # 6
+ quad_1.AddEdge([n6, n1]) # 7
+
+ # two quadrangle faces
+ quad_1.AddFace([n1, n2, n3, n4]) # 8
+ quad_1.AddFace([n1, n4, n5, n6]) # 9
+ return [quad_1, [1,2,3,4,5,6,7], [8,9]]
+
+# Path meshes
+Edge_straight_mesh = Mesh1D(Edge_straight, 7, "Edge_straight")
+Edge_bezierrr_mesh = Mesh1D(Edge_bezierrr, 7, "Edge_bezierrr")
+Wire_polyline_mesh = Mesh1D(Wire_polyline, 3, "Wire_polyline")
+Edge_Circle_mesh = Mesh1D(Edge_Circle , 8, "Edge_Circle")
+
+# Initial meshes (to be extruded)
+[quad_1, ee_1, ff_1] = MakeQuadMesh2("quad_1")
+[quad_2, ee_2, ff_2] = MakeQuadMesh2("quad_2")
+[quad_3, ee_3, ff_3] = MakeQuadMesh2("quad_3")
+[quad_4, ee_4, ff_4] = MakeQuadMesh2("quad_4")
+[quad_5, ee_5, ff_5] = MakeQuadMesh2("quad_5")
+[quad_6, ee_6, ff_6] = MakeQuadMesh2("quad_6")
+[quad_7, ee_7, ff_7] = MakeQuadMesh2("quad_7")
+
+# ExtrusionAlongPath
+# IDsOfElements, PathMesh, PathShape, NodeStart,
+# HasAngles, Angles, HasRefPoint, RefPoint
+refPoint = smesh.PointStruct(0, 0, 0)
+a10 = 10.0*math.pi/180.0
+a45 = 45.0*math.pi/180.0
+
+# 1. Extrusion of two mesh edges along a straight path
+error = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight, 1,
+ 0, [], 0, refPoint)
+
+# 2. Extrusion of one mesh edge along a curved path
+error = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,
+ 0, [], 0, refPoint)
+
+# 3. Extrusion of one mesh edge along a curved path with usage of angles
+error = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,
+ 1, [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)
+
+# 4. Extrusion of one mesh edge along the path, which is a part of a meshed wire
+error = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0], 1,
+ 1, [a10, a10, a10], 0, refPoint)
+
+# 5. Extrusion of two mesh faces along the path, which is a part of a meshed wire
+error = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2], 4,
+ 0, [], 0, refPoint)
+
+# 6. Extrusion of two mesh faces along a closed path
+error = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1,
+ 0, [], 0, refPoint)
+
+# 7. Extrusion of two mesh faces along a closed path with usage of angles
+error = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1,
+ 1, [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_revolution
+<h2>Revolution</h2>
+
+\code
+import math
+
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+smesh = SMESH_mechanic.smesh
+
+# create a group of faces to be revolved
+FacesRotate = [492, 493, 502, 503]
+GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group of faces (rotate)")
+GroupRotate.Add(FacesRotate)
+
+# define revolution angle and axis
+angle45 = 45 * math.pi / 180
+axisXYZ = SMESH.AxisStruct(-38.3128, -73.3658, -23.321, -13.3402, -13.3265, 6.66632)
+
+# perform revolution of an object
+mesh.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5)
+\endcode
+
+<br>
+\anchor tui_pattern_mapping
+<h2>Pattern Mapping</h2>
+
+\code
+import geompy
+
+import smesh
+
+# define the geometry
+Box_1 = geompy.MakeBoxDXDYDZ(200., 200., 200.)
+geompy.addToStudy(Box_1, "Box_1")
+
+faces = geompy.SubShapeAll(Box_1, geompy.ShapeType["FACE"])
+Face_1 = faces[0]
+Face_2 = faces[1]
+
+geompy.addToStudyInFather(Box_1, Face_1, "Face_1")
+geompy.addToStudyInFather(Box_1, Face_2, "Face_2")
+
+# build a quadrangle mesh 3x3 on Face_1
+Mesh_1 = smesh.Mesh(Face_1)
+algo1D = Mesh_1.Segment()
+algo1D.NumberOfSegments(3)
+Mesh_1.Quadrangle()
+
+isDone = Mesh_1.Compute()
+if not isDone: print 'Mesh Mesh_1 : computation failed'
+
+# build a triangle mesh on Face_2
+Mesh_2 = smesh.Mesh(Face_2)
+
+algo1D = Mesh_2.Segment()
+algo1D.NumberOfSegments(1)
+algo2D = Mesh_2.Triangle()
+algo2D.MaxElementArea(240)
+
+isDone = Mesh_2.Compute()
+if not isDone: print 'Mesh Mesh_2 : computation failed'
+
+# create a pattern
+pattern = smesh.GetPattern()
+
+isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), Face_2, 0)
+if (isDone != 1): print 'LoadFromFace :', pattern.GetErrorCode()
+
+# apply the pattern to a face of the first mesh
+pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), [17], 0, 0)
+
+isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 0, 0)
+if (isDone != 1): print 'MakeMesh :', pattern.GetErrorCode()
+\endcode
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_quality_controls_page Quality Controls
+
+<br>
+\anchor tui_free_borders
+<h2>Free Borders</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_free_borders")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute()
+
+# criterion : free borders
+aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_FreeBorders)
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Free borders Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateGroup(SMESH.EDGE, "Free borders")
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_borders_at_multiconnection
+<h2>Borders at Multiconnection</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+import SMESH
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_borders_at_multi-connections")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute()
+
+# Criterion : Borders at multi-connection
+nb_conn = 2
+
+aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_MultiConnection, smesh.FT_EqualTo, nb_conn)
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Borders at multi-connections Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateGroup(SMESH.EDGE, "Borders at multi-connections")
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_length_1d
+<h2>Length 1D</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_Length_1D")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute()
+
+# Criterion : Length > 3.
+length_margin = 3.
+
+aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_Length, smesh.FT_MoreThan, length_margin)
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Edges length > ", length_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateGroup(SMESH.EDGE, "Edges with length > " + `length_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_free_edges
+<h2>Free Edges</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+aFilterMgr = smesh.CreateFilterManager()
+
+# Remove some elements to obtain free edges
+# Criterion : AREA > 95.
+area_margin = 95.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+mesh.RemoveElements(anIds)
+
+# Criterion : Free Edges
+aBorders = mesh.GetFreeBorders()
+
+# create groups
+aGroupF = mesh.CreateGroup(SMESH.FACE, "Faces with free edges")
+aGroupN = mesh.CreateGroup(SMESH.NODE, "Nodes on free edges")
+
+# fill groups with elements, corresponding to the criterion
+print ""
+print "Criterion: Free edges Nb = ", len(aBorders)
+for i in range(len(aBorders)):
+ aBorder = aBorders[i]
+ print "Face # ", aBorder.myElemId, " : Edge between nodes (",
+ print aBorder.myPnt1, ", ", aBorder.myPnt2, ")"
+
+ aGroupF.Add([aBorder.myElemId])
+ aGroupN.Add([aBorder.myPnt1, aBorder.myPnt2])
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_length_2d
+<h2>Length 2D</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_Length_2D")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute()
+
+# Criterion : Length 2D > 5.7
+length_margin = 5.7
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Length2D, smesh.FT_MoreThan, length_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Edges length 2D > ", length_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Faces with length 2D > " + `length_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_borders_at_multiconnection_2d
+<h2>Borders at Multiconnection 2D</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create a compound of two glued boxes
+box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+box2 = geompy.MakeTranslation(box1, 0., 20., 0)
+comp = geompy.MakeCompound([box1, box2])
+box = geompy.MakeGlueFaces(comp, 0.000001)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Box compound : 2D triangle mesh")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute()
+
+# Criterion : MULTI-CONNECTION 2D = 3
+nb_conn = 3
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_MultiConnection2D, smesh.FT_EqualTo, nb_conn)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Borders at multi-connection 2D = ", nb_conn, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Borders at multi-connection 2D = " + `nb_conn`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_area
+<h2>Area</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 100.
+area_margin = 100.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Area > ", area_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Area > " + `area_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_taper
+<h2>Taper</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : Taper > 3e-20
+taper_margin = 3e-20
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Taper, smesh.FT_MoreThan, taper_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Taper > ", taper_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Taper > " + `taper_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_aspect_ratio
+<h2>Aspect Ratio</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : ASPECT RATIO > 1.8
+ar_margin = 1.8
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan, ar_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Aspect Ratio > ", ar_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Aspect Ratio > " + `ar_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_minimum_angle
+<h2>Minimum Angle</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : MINIMUM ANGLE < 35.
+min_angle = 35.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_MinimumAngle, smesh.FT_LessThan, min_angle)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Minimum Angle < ", min_angle, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Minimum Angle < " + `min_angle`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_warping
+<h2>Warping</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : WARP ANGLE > 1e-15
+wa_margin = 1e-15
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Warping, smesh.FT_MoreThan, wa_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Warp > ", wa_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Warp > " + `wa_margin`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_skew
+<h2>Skew</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : Skew > 38.
+skew_margin = 38.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Skew, smesh.FT_MoreThan, skew_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Skew > ", skew_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Skew > " + `skew_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_aspect_ratio_3d
+<h2>Aspect Ratio 3D</h2>
+
+\code
+import SMESH_mechanic_tetra
+
+smesh = SMESH_mechanic_tetra.smesh
+mesh = SMESH_mechanic_tetra.mesh
+salome = SMESH_mechanic_tetra.salome
+
+# Criterion : ASPECT RATIO 3D > 4.5
+ar_margin = 4.5
+
+aFilter = smesh.GetFilter(smesh.VOLUME, smesh.FT_AspectRatio3D, smesh.FT_MoreThan, ar_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Aspect Ratio 3D > ", ar_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, "Aspect Ratio 3D > " + `ar_margin`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_volume
+<h2>Volume</h2>
+
+\code
+import SMESH_mechanic_tetra
+
+smesh = SMESH_mechanic_tetra.smesh
+mesh = SMESH_mechanic_tetra.mesh
+salome = SMESH_mechanic_tetra.salome
+
+# Criterion : VOLUME < 7.
+volume_margin = 7.
+
+aFilter = smesh.GetFilter(smesh.VOLUME, smesh.FT_Volume3D, smesh.FT_LessThan, volume_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print ""
+print "Criterion: Volume < ", volume_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+ if j > 20: j = 1; print ""
+ print anIds[i],
+ j = j + 1
+ pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, "Volume < " + `volume_margin`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_scripts_page TUI Scripts
+
+<ul>
+<li>\subpage tui_creating_meshes_page</li>
+<li>\subpage tui_viewing_meshes_page</li>
+<li>\subpage tui_defining_hypotheses_page</li>
+<li>\subpage tui_quality_controls_page</li>
+<li>\subpage tui_grouping_elements_page</li>
+<li>\subpage tui_modifying_meshes_page</li>
+<li>\subpage tui_transforming_meshes_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_transforming_meshes_page Transforming Meshes
+
+<br><h2>Transforming Meshes</h2>
+
+<br>
+\anchor tui_translation
+<h3>Translation</h3>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# define translation vector
+point = smesh.PointStruct(-150., -150., 0.)
+vector =smesh.DirStruct(point)
+
+# translate a mesh
+doCopy = 1
+
+mesh.Translate([], vector, doCopy)
+\endcode
+
+<br>
+\anchor tui_rotation
+<h3>Rotation</h3>
+
+\code
+import math
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# define rotation axis and angle
+axisXYZ = smesh.AxisStruct(0., 0., 0., 5., 5., 20.)
+angle270 = 1.5 * math.pi
+
+# rotate a mesh
+mesh.Rotate([], axisXYZ, angle270, 1)
+\endcode
+
+<br>
+\anchor tui_symmetry
+<h3>Symmetry</h3>
+
+\code
+import math
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# create a symmetrical copy of the mesh mirrored through a point
+axis = SMESH.AxisStruct(0, 0, 0, 0, 0, 0)
+
+mesh.Mirror([], axis, smesh.POINT, 1)
+\endcode
+
+<br>
+\anchor tui_merging_nodes
+<h3>Merging Nodes</h3>
+
+\code
+import SMESH_mechanic
+mesh = SMESH_mechanic.mesh
+
+# merge nodes
+Tolerance = 25.0
+
+GroupsOfNodes = mesh.FindCoincidentNodes(Tolerance)
+mesh.MergeNodes(GroupsOfNodes)
+\endcode
+
+<br>
+\anchor tui_merging_elements
+<h3>Merging Elements</h3>
+
+\code
+import salome
+import geompy
+import smesh
+
+# create a face to be meshed
+px = geompy.MakeVertex(100., 0. , 0. )
+py = geompy.MakeVertex(0. , 100., 0. )
+pz = geompy.MakeVertex(0. , 0. , 100.)
+
+vxy = geompy.MakeVector(px, py)
+arc = geompy.MakeArc(py, pz, px)
+
+wire = geompy.MakeWire([vxy, arc])
+isPlanarFace = 1
+
+face1 = geompy.MakeFace(wire, isPlanarFace)
+id_face1 = geompy.addToStudy(face1, "Face1")
+
+# create a circle to be an extrusion path
+px1 = geompy.MakeVertex( 100., 100., 0.)
+py1 = geompy.MakeVertex(-100., -100., 0.)
+pz1 = geompy.MakeVertex( 0., 0., 50.)
+
+circle = geompy.MakeCircleThreePnt(py1, pz1, px1)
+id_circle = geompy.addToStudy(circle, "Path")
+
+# create a 2D mesh on the face
+trias = smesh.Mesh(face1, "Face : 2D mesh")
+
+algo1D = trias.Segment()
+algo1D.NumberOfSegments(6)
+algo2D = trias.Triangle()
+algo2D.LengthFromEdges()
+
+trias.Compute()
+
+# create a path mesh
+circlemesh = smesh.Mesh(circle, "Path mesh")
+algo = circlemesh.Segment()
+algo.NumberOfSegments(10)
+circlemesh.Compute()
+
+# extrusion of the mesh
+trias.ExtrusionAlongPath([], circlemesh, circle,
+ 1, 0, [], 0, smesh.PointStruct(0, 0, 0))
+
+# merge nodes
+print "Number of nodes before MergeNodes:",
+trias.NbNodes()
+tolerance = 0.001
+array_of_nodes_groups = trias.FindCoincidentNodes(tolerance)
+
+trias.MergeNodes(array_of_nodes_groups)
+
+print "Number of nodes after MergeNodes:", trias.NbNodes()
+print ""
+print "Number of elements before MergeEqualElements:"
+print "Edges : ", trias.NbEdges()
+print "Triangles : ", trias.NbTriangles()
+print "Quadrangles: ", trias.NbQuadrangles()
+print "Volumes : ", trias.NbVolumes()
+
+# merge elements
+trias.MergeEqualElements()
+print "Number of elements after MergeEqualElements:"
+print "Edges : ", trias.NbEdges()
+print "Triangles : ", trias.NbTriangles()
+print "Quadrangles: ", trias.NbQuadrangles()
+print "Volumes : ", trias.NbVolumes()
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br><h2>Sewing Meshes</h2>
+
+<br>
+\anchor tui_sew_meshes_border_to_side
+<h3>Sew Meshes Border to Side</h3>
+
+\code
+import geompy
+import smesh
+
+# create two faces of a box
+box1 = geompy.MakeBox(0., 0., -10., 30., 20., 25.)
+facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
+face1 = facesList1[2]
+
+box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.)
+facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
+face2 = facesList2[1]
+
+edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"])
+edge1 = edgesList[2]
+
+aComp = geompy.MakeCompound([face1, face2])
+geompy.addToStudy(aComp, "Two faces")
+
+# create a mesh on two faces
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(9)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(edge1)
+algo_local.Arithmetic1D(1, 4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew border to side
+# FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
+# FirstNodeIDOnSide, LastNodeIDOnSide,
+# CreatePolygons, CreatePolyedrs
+mesh.SewBorderToSide(5, 45, 6, 113, 109, 0, 0)
+\endcode
+
+<br>
+\anchor tui_sew_conform_free_borders
+<h3>Sew Conform Free Borders</h3>
+
+\code
+import geompy
+import smesh
+
+# create two faces of the box
+box1 = geompy.MakeBox(0., 0., -10., 20., 20., 15.)
+facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
+face1 = facesList1[2]
+
+box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.)
+facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
+face2 = facesList2[1]
+
+edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"])
+edge1 = edgesList[2]
+
+aComp = geompy.MakeCompound([face1, face2])
+geompy.addToStudy(aComp, "Two faces")
+
+# create a mesh on two faces
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(9)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(edge1)
+algo_local.Arithmetic1D(1, 4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew conform free borders
+# FirstNodeID1, SecondNodeID1, LastNodeID1, FirstNodeID2, SecondNodeID2
+mesh.SewConformFreeBorders(5, 45, 6, 3, 24)
+\endcode
+
+<br>
+\anchor tui_sew_free_borders
+<h3>Sew Free Borders</h3>
+
+\code
+import geompy
+import smesh
+
+# create two faces of the box
+box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
+face1 = facesList1[2]
+
+box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.)
+facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
+face2 = facesList2[1]
+
+edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"])
+edge1 = edgesList[2]
+
+aComp = geompy.MakeCompound([face1, face2])
+geompy.addToStudy(aComp, "Two faces")
+
+# create a mesh on two faces
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(4)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(edge1)
+algo_local.Arithmetic1D(1, 4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew free borders
+# FirstNodeID1, SecondNodeID1, LastNodeID1,
+# FirstNodeID2, SecondNodeID2, LastNodeID2, CreatePolygons, CreatePolyedrs
+mesh.SewFreeBorders(6, 21, 5, 1, 12, 3, 0, 0)
+\endcode
+
+<br>
+\anchor tui_sew_side_elements
+<h3>Sew Side Elements</h3>
+
+\code
+import geompy
+import smesh
+
+# create two boxes
+box1 = geompy.MakeBox(0., 0., 0., 10., 10., 10.)
+box2 = geompy.MakeBox(0., 15., 0., 20., 25., 10.)
+
+EdgesList = geompy.SubShapeAll(box2, geompy.ShapeType["EDGE"])
+
+aComp = geompy.MakeCompound([box1, box2])
+geompy.addToStudy(aComp, "Two boxes")
+
+# create a mesh on two boxes
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(2)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(EdgesList[8])
+algo_local.NumberOfSegments(4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew side elements
+# IDsOfSide1Elements, IDsOfSide2Elements,
+# NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge
+mesh.SewSideElements([69, 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58)
+\endcode
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page tui_viewing_meshes_page Viewing Meshes
+
+<br>
+\anchor tui_viewing_mesh_infos
+<h2>Viewing Mesh Infos</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 20., 20., 20.)
+geompy.addToStudy(box, "box")
+
+# create a mesh
+tetra = smesh.Mesh(box, "MeshBox")
+
+algo1D = tetra.Segment()
+algo1D.NumberOfSegments(3)
+
+algo2D = tetra.Triangle()
+algo2D.MaxElementArea(10.)
+
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+algo3D.MaxElementVolume(900.)
+
+# compute the mesh
+tetra.Compute()
+
+# print information about the mesh
+print "Information about mesh:"
+print "Number of nodes : ", tetra.NbNodes()
+print "Number of edges : ", tetra.NbEdges()
+print "Number of faces : ", tetra.NbFaces()
+print " triangles : ", tetra.NbTriangles()
+print " quadrangles : ", tetra.NbQuadrangles()
+print " polygons : ", tetra.NbPolygons()
+print "Number of volumes : ", tetra.NbVolumes()
+print " tetrahedrons: ", tetra.NbTetras()
+print " hexahedrons : ", tetra.NbHexas()
+print " prisms : ", tetra.NbPrisms()
+print " pyramids : ", tetra.NbPyramids()
+print " polyhedrons : ", tetra.NbPolyhedrons()
+\endcode
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page uniting_set_of_triangles_page Uniting a set of triangles
+
+\n In contrast to the previous operation this one allows to unite at
+once many triangles if they have adjacent edges.
+
+<em>To union several triangles:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the <b>Union of triangles</b>
+item or click <em>"Union of triangles"</em> button in the toolbar.
+
+\image html image80.gif
+<center><em>"Union of triangles" button</em></center>
+
+The following dialog box will appear:
+
+\image html a-unionoftriangles.png
+
+<ul>
+<li><b>The main list</b> shall contain the triangles which will be
+united. You can click on an triangle in the 3D viewer and it will be
+highlighted. After that click the \b Add button and the ID of this
+triangle will be added to the list. To remove a selected element or
+elements from the list click the \b Remove button. The \b Sort button allows
+to sort the list of IDs. The <b>Set filter</b> button allows to apply a
+definite filter to selection of triangles.</li>
+<li><b>Apply to all</b> radio button allows to modify the orientation of all
+triangles of the currently displayed mesh or submesh.</li>
+<li>\b Criterion menu allows to apply the operation only to those
+object which meet the chosen criterion (from the list of Quality
+Controls, i.e. Skew, Warping, Minimum Angle, etc.)</li>
+<li><b>Select from</b> set of fields allows to choose a submesh or an
+existing group whose triangle elements will be automatically added to
+the list.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+If some selected triangle elements have no adjacent edges with one of
+the others, the operation on these elements shall take no effect.
+
+\image html uniting_a_set_of_triangles1.png
+
+\image html uniting_a_set_of_triangles2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_uniting_set_of_triangles "Uniting a Set of Triangles" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page uniting_two_triangles_page Uniting two triangles
+
+\n In MESH you can union two neighboring triangles (cells) by deletion
+of the common edge.
+
+<em>To unite two triangles:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Union of two
+triangles</b> item or click <em>"Union of two triangles"</em> button
+in the toolbar.
+
+\image html image71.gif
+<center><em>"Union of two triangles" button</em></center>
+
+The following dialog box shall appear:
+
+\image html unionoftwotriangles.png
+
+</li>
+<li>Enter the ID of the required edge in the \b Edge field or select
+this edge in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html uniting_two_triangles1.png
+
+\image html uniting_two_triangles2.png
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_uniting_two_triangles "Uniting Two Triangles" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page using_operations_on_groups_page Using operations on groups
+
+\n In MESH you can perform some Boolean operations on groups, which
+belong to one and the same mesh.
+<ul>
+<li>\ref union_anchor "Union"</li>
+<li>\ref intersection_anchor "Intersection"</li>
+<li>\ref cut_anchor "Cut"</li>
+</ul>
+
+
+<br>
+\anchor union_anchor
+<h2>Union of two groups</h2>
+
+This operation allows to create a new group in such a way that all
+mesh elements that are present in the initial groups will be added to
+the new one.
+
+<em>To union two groups:</em>
+<ol>
+<li>In the \b Mesh menu select the <b>Union Groups</b> item. The following
+dialog box will appear:
+
+\image html uniongroups.png
+
+In this dialog box you should specify the name of the resulting group
+and two groups which will be united.
+
+For example, we have two groups Group1 and Group2.
+\n The result of their \b Union will be Group12:
+
+\image html image133.gif
+<center>Group1</center>
+
+\image html image134.gif
+<center>Group2</center>
+
+\image html image135.gif
+<center>Group12</center>
+</li>
+<li>Click the \b Ok or \b Apply button to confirm creation of the group.</li>
+</ol>
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_union_of_two_groups "Union of two Groups" operation.
+
+<br>
+\anchor intersection_anchor
+<h2>Intersection of two groups</h2>
+
+This operation allows to create a new group in such a way that all
+mesh elements that are present in both initial groups are added to the
+new one.
+
+<em>To intersect two groups:</em>
+<ol>
+<li>In the \b Mesh menu select the <b>Intersect Groups</b> item. The
+following dialog box will appear:
+
+\image html intersectgroups.png
+
+In this dialog box you should specify the name of the resulting group
+and two groups which will be intersected.
+
+For example, we have two groups Group1 and Group2.
+\n The result of their \b Intersection will be Group12a:
+
+\image html image133.gif
+<center>Group1</center>
+
+\image html image134.gif
+<center>Group2</center>
+
+\image html image136.gif
+<center>Group12a</center>
+</li>
+<li>Click the \b Ok or \b Apply button to confirm creation of the group.</li>
+</ol>
+
+<b>See Also</b> a sample TUI Script of an
+\ref tui_intersection_of_two_groups "Intersection of two Groups" operation.
+
+<br>
+\anchor cut_anchor
+<h2>Cut of two groups</h2>
+
+This operation allows to create a new group in such a way that all
+mesh elements that are present in the main group but are absent in the
+tool group are added to the new one.
+
+<em>To cut two groups:</em>
+<ol>
+<li>In the \b Mesh menu select the <b>Cut Groups</b> item. The
+following dialog box will appear:
+
+\image html cutgroups.png
+
+In this dialog box you should specify the name of the resulting group
+and two groups which will be cut.
+
+For example, we have two groups Group1 and Group2.
+\n The result of their \b Cut will be Group12b:
+
+\image html image133.gif
+<center>Group1</center>
+
+\image html image134.gif
+<center>Group2</center>
+
+\image html image137.gif
+<center>Group12b</center>
+</li>
+<li>Click the \b Ok or \b Apply button to confirm creation of the
+group.</li>
+</ol>
+
+<b>See Also</b> a sample TUI Script of a
+\ref tui_cut_of_two_groups "Cut of two Groups" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page viewing_meshes_page Viewing meshes
+
+<ul>
+<li>\subpage viewing_meshes_overview_page</li>
+<li>\subpage mesh_infos_page</li>
+<li>\subpage numbering_page</li>
+<li>\subpage display_mode_page</li>
+<li>\subpage display_entity_page</li>
+<li>\subpage transparency_page</li>
+<li>\subpage clipping_page</li>
+</ul>
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page viewing_meshes_overview_page Overview
+
+\n After definition of algorithms and hypotheses a new mesh is listed
+in the Object Browser. Right-click on it and select \b Compute - the
+mesh will be automatically displayed in the <b>VTK 3D Viewer</b>.
+Alternatively click <b>Display only</b> to hide all other objects at
+the same time.
+
+<b>VTK 3D Viewer</b> is detailly described in the documentation on <b>GUI module</b>.
+\n After the mesh has appeared in the Viewer, you can select it with
+left mouse click and get information about it, change its
+presentation parameters and access to other useful options by
+right-clicking on the selected mesh.
+
+\image html image15.jpg
+
+<ul>
+<li><b>Erase all</b> - allows to hide all objects in the viewer.</li>
+<li><b>Update</b> - refreshes the presentation of your mesh in the
+Object Browser, applying all recent changes. </li>
+<li>\ref advanced_mesh_infos_anchor "Advanced Mesh Infos" - provides
+more detailed information about the mesh.</li>
+<li>\ref standard_mesh_infos_anchor "Standard Mesh Infos" - provides
+basic information about the mesh.</li>
+<li>\ref numbering_page "Numbering" - allows to display the ID
+numbers of all meshing elements or nodes composing your mesh in the
+viewer.</li>
+<li>\ref display_mode_page "Display Mode" - allows to select between
+Wireframe, Shading and Nodes presentation.</li>
+<li>\ref display_entity_page "Display Entity" - allows to display
+Faces, Edges or both.</li>
+<li><b>Colors / Size</b> - allows to select color and size of
+meshes.</li>
+<li>\ref transparency_page "Transparency" - allows to change the
+transparency of mesh elements.</li>
+<li>\ref clipping_page "Clipping" - allows to create cross-sections of the selected objects.</li>
+<li>\ref about_quality_controls_page "Quality Controls" - graphically
+presents various information about meshes.</li>
+<li><b>Erase</b> - allows to hide the selected mesh from the viewer.</li>
+<li><b>Display Only</b> -allows to display only the selected mesh, hiding all other from the viewer.</li>
+<li><b>Dump view</b> - exports an object from the viewer in bmp, png, jpg or jpeg image format.</li>
+<li><b>Change background</b> - allows to redefine the background color. By default it is black.</li>
+</ul>
+
+*/
+
--- /dev/null
+/*!
+
+\page volume_page Volume
+
+\n \b Volume mesh quality criterion reflects the volume of meshes of a
+3D object.
+
+<em>To apply the Volume quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Volume</b> or click <em>"Volume"</em> button
+in the toolbar.
+
+\image html image145.gif
+<center><em>"Volume" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image143.gif
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_volume "Volume quality control" operation.
+
+*/
\ No newline at end of file
--- /dev/null
+/*!
+
+\page warping_page Warping
+
+\n \b Warping indicates that a face is not planar and is applied only to
+2D elements with 4 nodes. This quality control criterion is based on a
+projection plane created by:
+<ol>
+<li>bisecting the four element edges,</li>
+<li>creating a point on the plane at the vector average of the
+corners, where the x-axis extends from the point to the bisector on
+edge 2.</li>
+</ol>
+The plane normal is in the direction of the cross product of the
+x-axis and the vector from the origin to the bisector of edge 3. Every
+corner of the quad will then be a distance ?h? from the plane. The
+length of each half edge is measured and the shortest length is
+assigned ?l?. The warp angle is the arcsine of the ratio of the
+projection height ?h? to the half edge length ?l?.
+
+\image html image24.gif
+
+<em>To apply the Warping quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Warp</b> or click <em>"Warping angle"</em>
+button of the toolbar.
+
+\image html image39.gif
+<center><em>"Warping angle" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image97.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a
+\ref tui_warping "Warping quality control" operation.
+
+*/
\ No newline at end of file
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Length</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:165px; height:239px; float:none; border-style:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs4 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nLength");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Length</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The Length quality control criterion returns a value
- of length of edge.</p>
-
-<p> </p>
-
-<p class="whs2"><img src="pics/length-crit.png" x-maintain-ratio="TRUE" width="165px" height="239px" border="0" class="img_whs3"></p>
-
-<p> </p>
-
-<p class="whs4"> </p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of a <a href="quality_controls.htm#bookmark2"> Length
- quality control</a> operation. </p>
-
-<p>.</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Merge Elements</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }
-img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging Elements");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Merging Elements</h1>
-
-<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
- of a mesh selectable in the dialog box. </p>
-
-<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>
-
-<p>In this picture you see a triangle which coincides with one of the elements
- of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span>
- functionality, the triangle will be completely merged with the mesh. </p>
-
-<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>
-
-<p> <span style="font-weight: bold;"><B>See
- Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge
- Elements</a> operation. </p>
-
-<p> </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>mesh</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-h1.whs1 { margin-top:0pt; margin-bottom:0pt; font-size:24pt; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }
-img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }
-ul.whs4 { list-style:disc; }
-ul.whs5 { list-style:circle; }
-p.whs6 { margin-left:40px; margin-top:0pt; margin-bottom:0pt; }
-img_whs7 { border:none; width:472px; height:355px; border-style:none; float:right; }
-p.whs8 { margin-left:40px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }
-ol.whs9 { list-style:disc; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "h1.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nIntroduction to Mesh");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1 class="whs1">Introduction to MESH</h1>
-
-<p class="whs2"> </p>
-
-<p class="whs2"><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>MESH</B></span>
- module of SALOME is destined for: </p>
-
-<ul type="disc" class="whs4">
-
- <li class=kadov-p><p class="whs2"><a href="files/importing_and_exporting_meshes.htm">import and export of meshes
- in MED format</a>,</p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/constructing_meshes.htm">meshing geometrical models</a> previously
- created or imported by the GEOM component. MESH module allows to apply
- 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>
-
- <ul type="circle" class="whs5">
-
- <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Average_length">Average Length</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#max_element_area">Max Element
- Area</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#length_from_edges">Length
- from Edges</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#quadrangle preference">Quadrangle
- Preference</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/max._element_volume_hypothsis.htm">Max Element Volume</a></p></li>
- </ul>
-
- <li class=kadov-p><p class="whs2">modification
- of locally generated meshes by</p></li>
-
- <ul type="circle" class="whs5">
-
- <li class=kadov-p><p class="whs2"><a href="files/adding_nodes_and_elements.htm">Addition</a> of nodes and elements</p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/removing_nodes_and_elements.htm">Removal</a> of nodes and
- elements</p></li>
- </ul>
-
- <li class=kadov-p><p class="whs2"><a href="files/creating_groups.htm">grouping mesh elements</a> and <a href="files/using_operations_on_groups.htm">performing
- operations on these groups</a> </p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/about_quality_controls.htm">quality control</a> of meshes
- basing on a set of definite criteria -</p></li>
-</ul>
-
-<p class="whs6"><img src="image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs7"></p>
-
-<p class="whs8">for edges:</p>
-
-<ol type="disc" class="whs9">
-
- <ul type="circle" class="whs5">
-
- <li class=kadov-p><p class="whs2"><a href="length.htm">Length of edges</a> </p></li>
-
- <li class=kadov-p><p class="whs2"><a href="borders_at_multi-connection.htm">Borders at multi-connection</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="free_borders.htm">Free borders</a></p></li>
- </ul>
-</ol>
-
-<p class="whs8">for faces:</p>
-
-<ol type="disc" class="whs9">
-
- <ul type="circle" class="whs5">
-
- <li class=kadov-p><p class="whs2"><a href="files/area_of_elements.htm">Area</a> </p></li>
-
- <li class=kadov-p><p class="whs2"><a href="free_edges.htm">Free edges</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="borders_at_multiconnection_2d.htm">Borders at multi-connection 2D</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/length_of_edges.htm">Length 2D</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/minimum_angle.htm">Minimum angle</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/taper.htm">Taper</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/aspect_ratio.htm">Aspect Ratio</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/warp.htm">Warping</a> </p></li>
-
- <li class=kadov-p><p class="whs2"><a href="files/skew.htm">Skew</a></p></li>
- </ul>
-</ol>
-
-<p class="whs8">for solids:</p>
-
-<ol type="disc" class="whs9">
-
- <ul type="circle" class="whs5">
-
- <li class=kadov-p><p class="whs2"><a href="aspect_ratio_3d.htm">Aspect ratio 3D</a></p></li>
-
- <li class=kadov-p><p class="whs2"><a href="volume.htm">Volume</a></p></li>
- </ul>
-</ol>
-
-<p class="whs2">.</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Mesh through point</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 { font-family:'Arial Black' , sans-serif; font-style:italic; margin-left:0px; }\r
-p.whs2 { margin-left:36px; }\r
-img_whs3 { border:none; width:27px; height:29px; border-style:none; }\r
-img_whs4 { border:none; width:355px; height:366px; float:none; border-style:none; }\r
-p.whs5 { margin-left:40px; font-family:'Times New Roman' , serif; font-style:normal; }\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-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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nModifying meshes\nMesh through point");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Mesh through point</h1>\r
-\r
-<p>In mesh you can define a node at a certain point either by creation \r
- of a new node, by movement of the node closest to the point or by movement \r
- of any node to the point.</p>\r
-\r
-<p class="whs1">To create a mesh passing through a point:</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Mesh through point \r
- </B></span>item or click <img src="image159.gif" width="27px" height="29px" border="0" class="img_whs3"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs2"><img src="pics/meshtopass.png" x-maintain-ratio="TRUE" width="355px" height="366px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">2. Enter the coordinates of the point</p>\r
-\r
-<p class="whs2">3. Choose one of several methods: you can \r
- either <span style="font-weight: bold;"><B>Create</B></span> a new node at the \r
- indicated point or Move the existing node to the point. In the latter \r
- case you can check in <span style="font-weight: bold;"><B>Automatic search</B></span> \r
- of the closest node or select the necessary node manually. <span style="font-weight: bold;"><B>Preview</B></span> \r
- check-box allows to see the results of the operation. </p>\r
-\r
-<p class="whs2">4. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</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#bookmark14">Mesh \r
- through point</a> operation. </p>\r
-\r
-<p> </p>\r
-\r
-<p class="whs2"> </p>\r
-\r
-<p> </p>\r
-\r
-<p class="whs5"> </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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Modifying Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
-<!--
-P { margin-top:0pt; margin-bottom:0pt; }
-LI.kadov-P { }
--->
-</style><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; }
-h4.whs4 { margin-top:0pt; margin-bottom:0pt; }
-p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }
-p.whs7 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; font-weight:bold; font-size:13.5pt; }
-p.whs8 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs9 { font-family:'Lucida Console' , monospace; }
-p.whs10 { font-family:'Times New Roman' , serif; }
-p.whs11 { margin-left:36px; font-family:'Lucida Console' , monospace; }
-p.whs12 { margin-left:36px; }
-p.whs13 { margin-left:0px; font-family:'Times New Roman' , serif; }
-p.whs14 { font-family:'Lucida Console' , monospace; margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs13 {margin-left:1pt; }";
- strNSS += "p.whs14 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Modifying Meshes</h1>
-
-<h3><a name=bookmark>Adding Nodes and Elements</a></h3>
-
-<h4>Add Node</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">new_id
- = mesh.AddNode(50, 10, 0)</span></p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1">if new_id == 0:
- print "KO node addition."</p>
-
-<p class="whs1">else: print
- "New Node has been added with ID ", new_id </p>
-
-<p class="whs1"> </p>
-
-<h4>Add Edge</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">n1
- = mesh.AddNode(50, 10, 0)</span></p>
-
-<p class="whs1">if n1 == 0: print
- "KO node addition." </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add edge</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">e1
- = mesh.AddEdge([n1, 38])</span></p>
-
-<p class="whs1">if e1 == 0: print
- "KO edge addition."</p>
-
-<p class="whs1">else: print
- "New Edge has been added with ID ", e1 </p>
-
-<h4>Add Triangle</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1">n1 = mesh.AddNode(50,
- 10, 0)</p>
-
-<p class="whs1">if n1 == 0: print
- "KO node addition."</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add triangle</p>
-
-<p class="whs1">t1 = mesh.AddFace([n1,
- 38, 39])</p>
-
-<p class="whs1">if t1 == 0: print
- "KO triangle addition."</p>
-
-<p class="whs1">else: print
- "New Triangle has been added with ID ", t1 </p>
-
-<h4>Add Quadrangle</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># add node</p>
-
-<p class="whs1">n1 = mesh.AddNode(50,
- 10, 0)</p>
-
-<p class="whs1">if n1 == 0: print
- "KO node addition."</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">n2 = mesh.AddNode(40,
- 20, 0)</p>
-
-<p class="whs1">if n2 == 0: print
- "KO node addition."</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># add quadrangle</p>
-
-<p class="whs1">q1 = mesh.AddFace([n2,
- n1, 38, 39])</p>
-
-<p class="whs1">if q1 == 0: print
- "KO quadrangle addition."</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">else:
- print
- "New Quadrangle has been added with ID ", q1</span> </p>
-
-<h4>Add Tetrahedron</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1">n1 = mesh.AddNode(50,
- 10, 0)</p>
-
-<p class="whs1">if n1 == 0: print
- "KO node addition."</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add tetrahedron</p>
-
-<p class="whs1">t1 = mesh.AddVolume([n1,
- 38, 39, 246])</p>
-
-<p class="whs1">if t1 == 0: print
- "KO tetrahedron addition."</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">else:
- print
- "New Tetrahedron has been added with ID ", t1</span> </p>
-
-<h4>Add Hexahedron</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add nodes</p>
-
-<p class="whs1">nId1 = mesh.AddNode(50,
- 10, 0)</p>
-
-<p class="whs1">nId2 = mesh.AddNode(47,
- 12, 0)</p>
-
-<p class="whs1">nId3 = mesh.AddNode(50,
- 10, 10)</p>
-
-<p class="whs1">nId4 = mesh.AddNode(47,
- 12, 10)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">if nId1 == 0 or
- nId2 == 0 or nId3 == 0 or nId4 == 0: print "KO node addition."</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># add hexahedron</p>
-
-<p class="whs1">vId = mesh.AddVolume([nId2,
- nId1, 38, 39, nId4, nId3, 245, 246])</p>
-
-<p class="whs1">if vId == 0: print
- "KO Hexahedron addition."</p>
-
-<p class="whs1">else: print
- "New Hexahedron has been added with ID ", vId </p>
-
-<p class="whs1"> </p>
-
-<h4>Add Polygon</h4>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
- math</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create an empty mesh
- structure</p>
-
-<p class="whs1">mesh = smesh.Mesh()
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># a method to build
- a polygonal mesh element with <nb_vert> angles:</p>
-
-<p class="whs1">def MakePolygon
- (a_mesh, x0, y0, z0, radius, nb_vert):</p>
-
-<p class="whs1"> al
- = 2.0 * math.pi / nb_vert</p>
-
-<p class="whs1"> node_ids
- = []</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"> #
- Create nodes for a polygon</p>
-
-<p class="whs1"> for
- ii in range(nb_vert):</p>
-
-<p class="whs1"> nid
- = mesh.AddNode(x0 + radius * math.cos(ii*al),</p>
-
-<p class="whs1"> y0
- + radius * math.sin(ii*al),</p>
-
-<p class="whs1"> z0)</p>
-
-<p class="whs1"> node_ids.append(nid)</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"> #
- Create a polygon</p>
-
-<p class="whs1"> return
- mesh.AddPolygonalFace(node_ids)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Create three polygons</p>
-
-<p class="whs1">f1 = MakePolygon(mesh,
- 0, 0, 0,
- 30, 13)</p>
-
-<p class="whs1">f2 = MakePolygon(mesh,
- 0, 0, 10, 21, 9)</p>
-
-<p class="whs1">f3 = MakePolygon(mesh,
- 0, 0, 20, 13, 6)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<h4>Add Polyhedron</h4>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
- salome</span></p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create an empty mesh
- structure</p>
-
-<p class="whs1">mesh = smesh.Mesh()
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Create nodes for
- 12-hedron with pentagonal faces</p>
-
-<p class="whs1">al = 2 * math.pi
- / 5.0</p>
-
-<p class="whs1">cosal = math.cos(al)</p>
-
-<p class="whs1">aa = 13</p>
-
-<p class="whs1">rr = aa / (2.0 *
- math.sin(al/2.0))</p>
-
-<p class="whs1">dr = 2.0 * rr *
- cosal</p>
-
-<p class="whs1">r1 = rr + dr</p>
-
-<p class="whs1">dh = rr * math.sqrt(2.0
- * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>
-
-<p class="whs1">hh = 2.0 * dh -
- dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">dd = [] <span style="font-family: 'Times New Roman', serif;">#
- top</span></p>
-
-<p class="whs1">cc = [] <span style="font-family: 'Times New Roman', serif;">#
- below top</span></p>
-
-<p class="whs1">bb = [] <span style="font-family: 'Times New Roman', serif;">#
- above bottom</span></p>
-
-<p class="whs1">aa = [] <span style="font-family: 'Times New Roman', serif;">#
- bottom</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">for i in range(5):</p>
-
-<p class="whs1"> cos_bot
- = math.cos(i*al)</p>
-
-<p class="whs1"> sin_bot
- = math.sin(i*al)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"> <span
- style="margin-top: 0pt;
- margin-bottom: 0pt;
- font-family: 'Lucida Console', monospace;">cos_top
- = math.cos(i*al + al/2.0)</span></p>
-
-<p class="whs1"> sin_top
- = math.sin(i*al + al/2.0)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"> nd
- = mesh.AddNode(rr * cos_top, rr * sin_top, hh )
- <span style="font-family: 'Times New Roman', serif;"># top</span></p>
-
-<p class="whs1"> nc
- = mesh.AddNode(r1 * cos_top, r1 * sin_top, hh - dh) <span style="font-family: 'Times New Roman', serif;">#
- below top</span></p>
-
-<p class="whs1"> nb
- = mesh.AddNode(r1 * cos_bot, r1 * sin_bot, dh)
- <span style="font-family: 'Times New Roman', serif;"># above bottom</span></p>
-
-<p class="whs1"> na
- = mesh.AddNode(rr * cos_bot, rr * sin_bot, 0)
- <span style="font-family: 'Times New Roman', serif;"># bottom</span></p>
-
-<p class="whs1"> dd.append(nd)
- <span style="font-family: 'Times New Roman', serif;"># top</span></p>
-
-<p class="whs1"> cc.append(nc)
- <span style="font-family: 'Times New Roman', serif;"># below top</span></p>
-
-<p class="whs1"> bb.append(nb)
- <span style="font-family: 'Times New Roman', serif;"># above bottom</span></p>
-
-<p class="whs1"> aa.append(na)
- <span style="font-family: 'Times New Roman', serif;"># bottom</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># Create a polyhedral
- volume (12-hedron with pentagonal faces)</p>
-
-<p class="whs1">MeshEditor.AddPolyhedralVolume([dd[0],
- dd[1], dd[2], dd[3], dd[4], <span style="font-family: 'Times New Roman', serif;">#
- top</span></p>
-
-<p class="whs1"> dd[0],
- cc[0], bb[1], cc[1], dd[1], #
- -</p>
-
-<p class="whs1"> dd[1],
- cc[1], bb[2], cc[2], dd[2], #
- -</p>
-
-<p class="whs1"> dd[2],
- cc[2], bb[3], cc[3], dd[3], <span style="font-family: 'Times New Roman', serif;">#
- - below top</span></p>
-
-<p class="whs1"> dd[3],
- cc[3], bb[4], cc[4], dd[4], #
- -</p>
-
-<p class="whs1"> dd[4],
- cc[4], bb[0], cc[0], dd[0], #
- -</p>
-
-<p class="whs1"> aa[4],
- bb[4], cc[4], bb[0], aa[0], #
- .</p>
-
-<p class="whs1"> aa[3],
- bb[3], cc[3], bb[4], aa[4], #
- .</p>
-
-<p class="whs1"> aa[2],
- bb[2], cc[2], bb[3], aa[3], <span style="font-family: 'Times New Roman', serif;">#
- . above bottom</span></p>
-
-<p class="whs1"> aa[1],
- bb[1], cc[1], bb[2], aa[2], #
- .</p>
-
-<p class="whs1"> aa[0],
- bb[0], cc[0], bb[1], aa[1], #
- .</p>
-
-<p class="whs1"> aa[0],
- aa[1], aa[2], aa[3], aa[4]], <span style="font-family: 'Times New Roman', serif;">#
- bottom</span></p>
-
-<p class="whs1"> [5,5,5,5,5,5,5,5,5,5,5,5])</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark1>Removing Nodes and Elements</a></h3>
-
-<h4 class="whs4">Removing Nodes</h4>
-
-<p class="whs3"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
- SMESH_mechanic</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># remove nodes #246
- and #255</p>
-
-<p class="whs1">res = mesh.RemoveNodes([246,
- 255])</p>
-
-<p class="whs1">if res == 1: print
- "Nodes removing is OK!"</p>
-
-<p class="whs1">else: print
- "KO nodes removing." </p>
-
-<p class="whs3"> </p>
-
-<h4>Removing Elements</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># remove three elements:
- #850, #859 and #814</p>
-
-<p class="whs1">res = mesh.RemoveElements([850,
- 859, 814])</p>
-
-<p class="whs1">if res == 1: print
- "Elements removing is OK!"</p>
-
-<p class="whs1">else: print
- "KO Elements removing." </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>
-
-<p class="whs5">import SMESH_mechanic</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">mesh.RenumberNodes()</span>
- </p>
-
-<h3><a name=bookmark3>Moving Nodes</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># move node #38</p>
-
-<p class="whs1">mesh.MoveNode(38,
- 20., 10., 0.) </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"> </p>
-
-<p class="whs7"><a name=bookmark14
- style="font-weight: bold; font-size: 13.5pt;">Mesh
- through point</a></p>
-
-<p class="whs3"> </p>
-
-<p class="whs1">from geompy import
- *</p>
-
-<p class="whs1">from smesh import
- *</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">box = MakeBoxDXDYDZ(200,
- 200, 200)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh = Mesh( box
- )</p>
-
-<p class="whs1">mesh.Segment().AutomaticLength(0.1)</p>
-
-<p class="whs1">mesh.Quadrangle()</p>
-
-<p class="whs1">mesh.Compute()</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># find node at (0,0,0)</p>
-
-<p class="whs1">node000 = None</p>
-
-<p class="whs1">for vId in SubShapeAllIDs(
- box, ShapeType["VERTEX"]):</p>
-
-<p class="whs1"> if
- node000: break</p>
-
-<p class="whs1"> nodeIds
- = mesh.GetSubMeshNodesId( vId, True )</p>
-
-<p class="whs1"> for
- node in nodeIds:</p>
-
-<p class="whs1"> xyz
- = mesh.GetNodeXYZ( node )</p>
-
-<p class="whs1"> if
- xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :</p>
-
-<p class="whs1"> node000
- = node</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">if not node000:</p>
-
-<p class="whs1"> raise
- "node000 not found"</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># find node000 using the
- tested function </p>
-
-<p class="whs1">n = mesh.FindNodeClosestTo(
- -1,-1,-1 )</p>
-
-<p class="whs1">if not n == node000:</p>
-
-<p class="whs1"> raise
- "FindNodeClosestTo() returns " + str( n ) + " != "
- + str( node000 )</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># check if any node will
- be found for a point inside a box</p>
-
-<p class="whs1">n = mesh.FindNodeClosestTo(
- 100, 100, 100 )</p>
-
-<p class="whs1">if not n > 0:</p>
-
-<p class="whs1"> raise
- "FindNodeClosestTo( 100, 100, 100 ) fails"</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># move node000 to a new
- location</p>
-
-<p class="whs1">x,y,z = -10, -10,
- -10</p>
-
-<p class="whs1">n = mesh.MeshToPassThroughAPoint(
- x,y,z )</p>
-
-<p class="whs1">if not n == node000:</p>
-
-<p class="whs1"> raise
- "FindNodeClosestTo() returns " + str( n ) + " != "
- + str( node000 )</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># check the coordinates
- of the node000</p>
-
-<p class="whs1">xyz = mesh.GetNodeXYZ(
- node000 )</p>
-
-<p class="whs1">if not ( xyz[0]
- == x and xyz[1] == y and xyz[2] == z) :</p>
-
-<p class="whs1"> raise
- "Wrong coordinates: " + str( xyz ) + " != " + str(
- [x,y,z] )</p>
-
-<h3><a name=bookmark4>Diagonal Inversion</a></h3>
-
-<p class="whs5">import salome</p>
-
-<p class="whs5">import smesh</p>
-
-<p class="whs5"> </p>
-
-<p class="whs8"># create an empty mesh
- structure</p>
-
-<p class="whs5">mesh = smesh.Mesh()
- </p>
-
-<p class="whs5"> </p>
-
-<p class="whs8"># create the following
- mesh:</p>
-
-<p class="whs5"># .----.----.----.</p>
-
-<p class="whs5"># | /|
- /|
- /|</p>
-
-<p class="whs5"># | /
- | / | /
- |</p>
-
-<p class="whs5"># | / |
- / | / |</p>
-
-<p class="whs5"># |/ |/
- |/
- |</p>
-
-<p class="whs5"># .----.----.----.</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">bb = [0, 0, 0, 0]</p>
-
-<p class="whs5">tt = [0, 0, 0, 0]</p>
-
-<p class="whs5">ff = [0, 0, 0, 0,
- 0, 0]</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">bb[0] = mesh.AddNode(
- 0., 0., 0.)</p>
-
-<p class="whs5">bb[1] = mesh.AddNode(10.,
- 0., 0.)</p>
-
-<p class="whs5">bb[2] = mesh.AddNode(20.,
- 0., 0.)</p>
-
-<p class="whs5">bb[3] = mesh.AddNode(30.,
- 0., 0.)</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">tt[0] = mesh.AddNode(
- 0., 15., 0.)</p>
-
-<p class="whs5">tt[1] = mesh.AddNode(10.,
- 15., 0.)</p>
-
-<p class="whs5">tt[2] = mesh.AddNode(20.,
- 15., 0.)</p>
-
-<p class="whs5">tt[3] = mesh.AddNode(30.,
- 15., 0.)</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">ff[0] = mesh.AddFace([bb[0],
- bb[1], tt[1]])</p>
-
-<p class="whs5">ff[1] = mesh.AddFace([bb[0],
- tt[1], tt[0]])</p>
-
-<p class="whs5">ff[2] = mesh.AddFace([bb[1],
- bb[2], tt[2]])</p>
-
-<p class="whs5">ff[3] = mesh.AddFace([bb[1],
- tt[2], tt[1]])</p>
-
-<p class="whs5">ff[4] = mesh.AddFace([bb[2],
- bb[3], tt[3]])</p>
-
-<p class="whs5">ff[5] = mesh.AddFace([bb[2],
- tt[3], tt[2]])</p>
-
-<p class="whs5"> </p>
-
-<p class="whs8"># inverse the diagonal
- bb[1] - tt[2]</p>
-
-<p class="whs5">print "\nDiagonal
- inversion ... ",</p>
-
-<p class="whs5">res = mesh.InverseDiag(bb[1],
- tt[2])</p>
-
-<p class="whs5">if not res: print
- "failed!"</p>
-
-<p class="whs5">else: print
- "done."</p>
-
-<p class="whs6"> </p>
-
-<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark5>Uniting two Triangles</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import smesh</p>
-
-<p> </p>
-
-<p># create an empty mesh structure</p>
-
-<p class="whs9">mesh = smesh.Mesh()
- </p>
-
-<p> </p>
-
-<p># create the following mesh:</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p class="whs9"># | /|
- /|
- /|</p>
-
-<p class="whs9"># | /
- | / | /
- |</p>
-
-<p class="whs9"># | / |
- / | / |</p>
-
-<p class="whs9"># |/ |/
- |/
- |</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p> </p>
-
-<p class="whs9">bb = [0, 0, 0, 0]</p>
-
-<p class="whs9">tt = [0, 0, 0, 0]</p>
-
-<p class="whs9">ff = [0, 0, 0, 0,
- 0, 0]</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">bb[0]
- = mesh.AddNode( 0., 0., 0.)</span></p>
-
-<p class="whs9">bb[1] = mesh.AddNode(10.,
- 0., 0.)</p>
-
-<p class="whs9">bb[2] = mesh.AddNode(20.,
- 0., 0.)</p>
-
-<p class="whs9">bb[3] = mesh.AddNode(30.,
- 0., 0.)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">tt[0] = mesh.AddNode(
- 0., 15., 0.)</p>
-
-<p class="whs9">tt[1] = mesh.AddNode(10.,
- 15., 0.)</p>
-
-<p class="whs9">tt[2] = mesh.AddNode(20.,
- 15., 0.)</p>
-
-<p class="whs9">tt[3] = mesh.AddNode(30.,
- 15., 0.)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">ff[0] = mesh.AddFace([bb[0],
- bb[1], tt[1]])</p>
-
-<p class="whs9">ff[1] = mesh.AddFace([bb[0],
- tt[1], tt[0]])</p>
-
-<p class="whs9">ff[2] = mesh.AddFace([bb[1],
- bb[2], tt[2]])</p>
-
-<p class="whs9">ff[3] = mesh.AddFace([bb[1],
- tt[2], tt[1]])</p>
-
-<p class="whs9">ff[4] = mesh.AddFace([bb[2],
- bb[3], tt[3]])</p>
-
-<p class="whs9">ff[5] = mesh.AddFace([bb[2],
- tt[3], tt[2]]) </p>
-
-<p> </p>
-
-<p># delete the diagonal bb[1] - tt[2]</p>
-
-<p class="whs9">print "\nUnite
- two triangles ... ",</p>
-
-<p class="whs9">res = mesh.DeleteDiag(bb[1],
- tt[2])</p>
-
-<p class="whs9">if not res: print
- "failed!"</p>
-
-<p class="whs9">else: print
- "done."</p>
-
-<p class="whs9"> </p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># create an empty mesh
- structure</p>
-
-<p class="whs9">mesh = smesh.Mesh()
- </p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># create the following
- mesh:</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p class="whs9"># | /|
- /|
- /|</p>
-
-<p class="whs9"># | /
- | / | /
- |</p>
-
-<p class="whs9"># | / |
- / | / |</p>
-
-<p class="whs9"># |/ |/
- |/
- |</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">bb = [0, 0, 0, 0]</p>
-
-<p class="whs9">tt = [0, 0, 0, 0]</p>
-
-<p class="whs9">ff = [0, 0, 0, 0,
- 0, 0]</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">bb[0]
- = mesh.AddNode( 0., 0., 0.)</span></p>
-
-<p class="whs9">bb[1] = mesh.AddNode(10.,
- 0., 0.)</p>
-
-<p class="whs9">bb[2] = mesh.AddNode(20.,
- 0., 0.)</p>
-
-<p class="whs9">bb[3] = mesh.AddNode(30.,
- 0., 0.)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">tt[0] = mesh.AddNode(
- 0., 15., 0.)</p>
-
-<p class="whs9">tt[1] = mesh.AddNode(10.,
- 15., 0.)</p>
-
-<p class="whs9">tt[2] = mesh.AddNode(20.,
- 15., 0.)</p>
-
-<p class="whs9">tt[3] = mesh.AddNode(30.,
- 15., 0.)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">ff[0] = mesh.AddFace([bb[0],
- bb[1], tt[1]])</p>
-
-<p class="whs9">ff[1] = mesh.AddFace([bb[0],
- tt[1], tt[0]])</p>
-
-<p class="whs9">ff[2] = mesh.AddFace([bb[1],
- bb[2], tt[2]])</p>
-
-<p class="whs9">ff[3] = mesh.AddFace([bb[1],
- tt[2], tt[1]])</p>
-
-<p class="whs9">ff[4] = mesh.AddFace([bb[2],
- bb[3], tt[3]])</p>
-
-<p class="whs9">ff[5] = mesh.AddFace([bb[2],
- tt[3], tt[2]])</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># unite a set of triangles</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">print
- "\nUnite a set of triangles ... ",</span></p>
-
-<p class="whs9">res = mesh.TriToQuad([ff[2],
- ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.)</p>
-
-<p class="whs9">if not res: print
- "failed!"</p>
-
-<p class="whs9">else: print
- "done."</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">salome.sg.updateObjBrowser(1)
- </p>
-
-<h3><a name=bookmark12>Orientation</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9"> </p>
-
-<p># create an empty mesh structure</p>
-
-<p class="whs9">mesh = smesh.Mesh()
- </p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># build five quadrangles:</p>
-
-<p class="whs9">dx = 10</p>
-
-<p class="whs9">dy = 20</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">n1
- = mesh.AddNode(0.0
- * dx, 0, 0)</span></p>
-
-<p class="whs9">n2 =
- mesh.AddNode(1.0 * dx, 0, 0)</p>
-
-<p class="whs9">n3 =
- mesh.AddNode(2.0 * dx, 0, 0)</p>
-
-<p class="whs9">n4 =
- mesh.AddNode(3.0 * dx, 0, 0)</p>
-
-<p class="whs9">n5 =
- mesh.AddNode(4.0 * dx, 0, 0)</p>
-
-<p class="whs9">n6 =
- mesh.AddNode(5.0 * dx, 0, 0)</p>
-
-<p class="whs9">n7 =
- mesh.AddNode(0.0 * dx, dy, 0)</p>
-
-<p class="whs9">n8 =
- mesh.AddNode(1.0 * dx, dy, 0)</p>
-
-<p class="whs9">n9 =
- mesh.AddNode(2.0 * dx, dy, 0)</p>
-
-<p class="whs9">n10 = mesh.AddNode(3.0
- * dx, dy, 0)</p>
-
-<p class="whs9">n11 = mesh.AddNode(4.0
- * dx, dy, 0)</p>
-
-<p class="whs9">n12 = mesh.AddNode(5.0
- * dx, dy, 0)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">f1 = mesh.AddFace([n1,
- n2, n8 , n7 ])</p>
-
-<p class="whs9">f2 = mesh.AddFace([n2,
- n3, n9 , n8 ])</p>
-
-<p class="whs9">f3 = mesh.AddFace([n3,
- n4, n10, n9 ])</p>
-
-<p class="whs9">f4 = mesh.AddFace([n4,
- n5, n11, n10])</p>
-
-<p class="whs9">f5 = mesh.AddFace([n5,
- n6, n12, n11]) </p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># Change the orientation
- of the second and the fourth faces.</p>
-
-<p class="whs9">mesh.Reorient([2,
- 4])</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs9"> </p>
-
-<h3><a name=bookmark7>Cutting Quadrangles</a></h3>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">smesh = SMESH_mechanic.smesh</p>
-
-<p class="whs9">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># cut two quadrangles:
- 405 and 406</p>
-
-<p class="whs9">mesh.QuadToTri([405,
- 406], smesh.FT_MinimumAngle) </p>
-
-<p class="whs10"> </p>
-
-<h3><a name=bookmark8>Smoothing</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">smesh
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs9">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># select the top face</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">faces
- = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"])</span></p>
-
-<p class="whs9">face = faces[3]</p>
-
-<p class="whs9">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh,
- face, "face planar with hole")</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># create a group of
- faces to be smoothed</p>
-
-<p class="whs9">GroupSmooth = mesh.GroupOnGeom(face,
- "Group of faces (smooth)", smesh.FACE)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># perform smoothing</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># boolean SmoothObject(Object,
- IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method)</p>
-
-<p class="whs9">res = mesh.SmoothObject(GroupSmooth,
- [], 20, 2., smesh.CENTROIDAL_SMOOTH)</p>
-
-<p class="whs9">print "\nSmoothing
- ... ",</p>
-
-<p class="whs9">if not res: print
- "failed!"</p>
-
-<p class="whs9">else: print
- "done."</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs9"> </p>
-
-<h3><a name=bookmark9>Extrusion</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">smesh
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs9">mesh = SMESH_mechanic.mesh
- </p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># select the top face</p>
-
-<p class="whs9">faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs9">face = faces[7]</p>
-
-<p class="whs9">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh,
- face, "face circular top")</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># create a vector
- for extrusion</p>
-
-<p class="whs9">point = smesh.PointStruct(0.,
- 0., 5.)</p>
-
-<p class="whs9">vector = smesh.DirStruct(point)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># create a group to
- be extruded</p>
-
-<p class="whs9">GroupTri = mesh.GroupOnGeom(face,
- "Group of faces (extrusion)", smesh.FACE)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># perform extrusion
- of the group</p>
-
-<p class="whs9">mesh.ExtrusionSweepObject(GroupTri,
- vector, 5)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark10>Extrusion along a Path</a></h3>
-
-<p class="whs9">import math</p>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># Geometry</p>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10"># 1. Create points</p>
-
-<p class="whs9">points = [[0, 0],
- [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">iv = 1</p>
-
-<p class="whs9">vertices = []</p>
-
-<p class="whs9">for point in points:</p>
-
-<p class="whs11">vert
- = geompy.MakeVertex(point[0], point[1], 0)</p>
-
-<p class="whs11">geompy.addToStudy(vert,
- "Vertex_" + `iv`)</p>
-
-<p class="whs11">vertices.append(vert)</p>
-
-<p class="whs11">iv
- += 1</p>
-
-<p class="whs11">pass</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10"># 2. Create edges and
- wires</p>
-
-<p class="whs9">Edge_straight = geompy.MakeEdge(vertices[0],
- vertices[4])</p>
-
-<p class="whs9">Edge_bezierrr = geompy.MakeBezier(vertices)</p>
-
-<p class="whs9">Wire_polyline = geompy.MakePolyline(vertices)</p>
-
-<p class="whs9">Edge_Circle =
- geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">geompy.addToStudy(Edge_straight,
- "Edge_straight")</p>
-
-<p class="whs9">geompy.addToStudy(Edge_bezierrr,
- "Edge_bezierrr")</p>
-
-<p class="whs9">geompy.addToStudy(Wire_polyline,
- "Wire_polyline")</p>
-
-<p class="whs9">geompy.addToStudy(Edge_Circle
- , "Edge_Circle")</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10"># 3. Explode wire on
- edges, as they will be used for mesh extrusion</p>
-
-<p class="whs9">Wire_polyline_edges
- = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType["EDGE"])</p>
-
-<p class="whs9">for ii in range(len(Wire_polyline_edges)):</p>
-
-<p class="whs11">geompy.addToStudyInFather(Wire_polyline,
- Wire_polyline_edges[ii], "Edge_" + `ii + 1`)</p>
-
-<p class="whs11">pass</p>
-
-<p class="whs12"> </p>
-
-<p class="whs10"># Mesh</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9"> </p>
-
-<p class="whs13"># Mesh
- the given shape with the given 1d hypothesis</p>
-
-<p class="whs14">def
- Mesh1D(shape1d, nbSeg, name):</p>
-
-<p class="whs14"> mesh1d_tool
- = smesh.Mesh(shape1d, name)</p>
-
-<p class="whs14"> algo
- = mesh1d_tool.Segment()</p>
-
-<p class="whs14"> hyp
- = algo.NumberOfSegments(nbSeg)</p>
-
-<p class="whs14"> isDone
- = mesh1d_tool.Compute()</p>
-
-<p class="whs14"> if
- not isDone: print 'Mesh ', name, ': computation failed'</p>
-
-<p class="whs14"> return
- mesh1d_tool</p>
-
-<p class="whs13"># Create
- a mesh with six nodes, seven edges and two quadrangle faces</p>
-
-<p class="whs14">def
- MakeQuadMesh2(mesh_name):</p>
-
-<p class="whs14"> quad_1
- = smesh.Mesh(name = mesh_name)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs14"> <span
- style="font-family: 'Times New Roman', serif;">#
- six nodes</span></p>
-
-<p class="whs14"> n1
- = quad_1.AddNode(0, 20, 10)</p>
-
-<p class="whs14"> n2
- = quad_1.AddNode(0, 40, 10)</p>
-
-<p class="whs14"> n3
- = quad_1.AddNode(0, 40, 30)</p>
-
-<p class="whs14"> n4
- = quad_1.AddNode(0, 20, 30)</p>
-
-<p class="whs14"> n5
- = quad_1.AddNode(0, 0,
- 30)</p>
-
-<p class="whs14"> n6
- = quad_1.AddNode(0, 0,
- 10)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs14"> <span
- style="font-family: 'Times New Roman', serif;">#
- seven edges</span></p>
-
-<p class="whs14"> quad_1.AddEdge([n1,
- n2]) # 1</p>
-
-<p class="whs14"> quad_1.AddEdge([n2,
- n3]) # 2</p>
-
-<p class="whs14"> quad_1.AddEdge([n3,
- n4]) # 3</p>
-
-<p class="whs14"> quad_1.AddEdge([n4,
- n1]) # 4</p>
-
-<p class="whs14"> quad_1.AddEdge([n4,
- n5]) # 5</p>
-
-<p class="whs14"> quad_1.AddEdge([n5,
- n6]) # 6</p>
-
-<p class="whs14"> quad_1.AddEdge([n6,
- n1]) # 7</p>
-
-<p class="whs14"> </p>
-
-<p class="whs14"> <span
- style="font-family: 'Times New Roman', serif;">#
- two quadrangle faces</span></p>
-
-<p class="whs14"> quad_1.AddFace([n1,
- n2, n3, n4]) # 8</p>
-
-<p class="whs14"> quad_1.AddFace([n1,
- n4, n5, n6]) # 9</p>
-
-<p class="whs14"> return
- [quad_1, [1,2,3,4,5,6,7], [8,9]]</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># Path
- meshes</p>
-
-<p class="whs14">Edge_straight_mesh
- = Mesh1D(Edge_straight, 7, "Edge_straight")</p>
-
-<p class="whs14">Edge_bezierrr_mesh
- = Mesh1D(Edge_bezierrr, 7, "Edge_bezierrr")</p>
-
-<p class="whs14">Wire_polyline_mesh
- = Mesh1D(Wire_polyline, 3, "Wire_polyline")</p>
-
-<p class="whs14">Edge_Circle_mesh
- =
- Mesh1D(Edge_Circle ,
- 8, "Edge_Circle")</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># Initial
- meshes (to be extruded)</p>
-
-<p class="whs14">[quad_1,
- ee_1, ff_1] = MakeQuadMesh2("quad_1")</p>
-
-<p class="whs14">[quad_2,
- ee_2, ff_2] = MakeQuadMesh2("quad_2")</p>
-
-<p class="whs14">[quad_3,
- ee_3, ff_3] = MakeQuadMesh2("quad_3")</p>
-
-<p class="whs14">[quad_4,
- ee_4, ff_4] = MakeQuadMesh2("quad_4")</p>
-
-<p class="whs14">[quad_5,
- ee_5, ff_5] = MakeQuadMesh2("quad_5")</p>
-
-<p class="whs14">[quad_6,
- ee_6, ff_6] = MakeQuadMesh2("quad_6")</p>
-
-<p class="whs14">[quad_7,
- ee_7, ff_7] = MakeQuadMesh2("quad_7")</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># ExtrusionAlongPath</p>
-
-<p class="whs13"># IDsOfElements,
- PathMesh, PathShape, NodeStart,</p>
-
-<p class="whs13"># HasAngles,
- Angles, HasRefPoint, RefPoint</p>
-
-<p class="whs14">refPoint
- = smesh.PointStruct(0, 0, 0)</p>
-
-<p class="whs14">a10
- = 10.0*math.pi/180.0</p>
-
-<p class="whs14">a45
- = 45.0*math.pi/180.0</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 1.
- Extrusion of two mesh edges along a straight path</p>
-
-<p class="whs14">error
- = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight,
- 1,</p>
-
-<p class="whs14"> 0,
- [], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 2.
- Extrusion of one mesh edge along a curved path</p>
-
-<p class="whs14">error
- = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
-
-<p class="whs14"> 0,
- [], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 3.
- Extrusion of one mesh edge along a curved path with usage of angles</p>
-
-<p class="whs14">error
- = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
-
-<p class="whs14"> 1,
- [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 4.
- Extrusion of one mesh edge along the path, which is a part of a meshed
- wire</p>
-
-<p class="whs14">error
- = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0],
- 1,</p>
-
-<p class="whs14"> 1,
- [a10, a10, a10], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 5.
- Extrusion of two mesh faces along the path, which is a part of a meshed
- wire</p>
-
-<p class="whs14">error
- = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2],
- 4,</p>
-
-<p class="whs14"> 0,
- [], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 6.
- Extrusion of two mesh faces along a closed path</p>
-
-<p class="whs14">error
- = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1,</p>
-
-<p class="whs14"> 0,
- [], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs13"># 7.
- Extrusion of two mesh faces along a closed path with usage of angles</p>
-
-<p class="whs14">error
- = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1,</p>
-
-<p class="whs14"> 1,
- [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)</p>
-
-<p class="whs14"> </p>
-
-<p class="whs14">salome.sg.updateObjBrowser(1)
- </p>
-
-<h3><a name=bookmark11>Revolution</a></h3>
-
-<p class="whs9">import math</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">mesh
- = SMESH_mechanic.mesh</span></p>
-
-<p class="whs9">smesh = SMESH_mechanic.smesh</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># create a group of faces
- to be revolved</p>
-
-<p class="whs9">FacesRotate = [492,
- 493, 502, 503]</p>
-
-<p class="whs9">GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group
- of faces (rotate)")</p>
-
-<p class="whs9">GroupRotate.Add(FacesRotate)</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10"># define revolution angle
- and axis</p>
-
-<p class="whs9">angle45 = 45 * math.pi
- / 180</p>
-
-<p class="whs9">axisXYZ = SMESH.AxisStruct(-38.3128,
- -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
-
-<p class="whs9"> </p>
-
-<p class="whs10"># perform revolution
- of an object</p>
-
-<p class="whs9">mesh.RotationSweepObject(GroupRotate,
- axisXYZ, angle45, 4, 1e-5) </p>
-
-<p class="whs10"> </p>
-
-<h3><a name=bookmark13>Pattern Mapping</a></h3>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9"> </p>
-
-<p class="whs9"># define the geometry</p>
-
-<p class="whs10">Box_1 = geompy.MakeBoxDXDYDZ(200.,
- 200., 200.)</p>
-
-<p class="whs10">geompy.addToStudy(Box_1,
- "Box_1")</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">faces = geompy.SubShapeAll(Box_1,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs10">Face_1 = faces[0]</p>
-
-<p class="whs10">Face_2 = faces[1]</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">geompy.addToStudyInFather(Box_1,
- Face_1, "Face_1")</p>
-
-<p class="whs10">geompy.addToStudyInFather(Box_1,
- Face_2, "Face_2")</p>
-
-<p class="whs10"> </p>
-
-<p class="whs9"># build a quadrangle
- mesh 3x3 on Face_1</p>
-
-<p class="whs10">Mesh_1 = smesh.Mesh(Face_1)</p>
-
-<p class="whs10">algo1D = Mesh_1.Segment()</p>
-
-<p class="whs10">algo1D.NumberOfSegments(3)</p>
-
-<p class="whs10">Mesh_1.Quadrangle()</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">isDone = Mesh_1.Compute()</p>
-
-<p class="whs10">if not isDone: print
- 'Mesh Mesh_1 : computation failed'</p>
-
-<p class="whs10"> </p>
-
-<p class="whs9"># build a triangle
- mesh on Face_2</p>
-
-<p class="whs10">Mesh_2 = smesh.Mesh(Face_2)</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">algo1D = Mesh_2.Segment()</p>
-
-<p class="whs10">algo1D.NumberOfSegments(1)</p>
-
-<p class="whs10">algo2D = Mesh_2.Triangle()</p>
-
-<p class="whs10">algo2D.MaxElementArea(240)</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">isDone = Mesh_2.Compute()</p>
-
-<p class="whs10">if not isDone: print
- 'Mesh Mesh_2 : computation failed'</p>
-
-<p class="whs10"> </p>
-
-<p class="whs9"># create a pattern</p>
-
-<p class="whs10">pattern = smesh.GetPattern()</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(),
- Face_2, 0)</p>
-
-<p class="whs10">if (isDone != 1): print
- 'LoadFromFace :', pattern.GetErrorCode()</p>
-
-<p class="whs10"> </p>
-
-<p class="whs9"># apply the pattern
- to a face of the first mesh</p>
-
-<p class="whs10">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(),
- [17], 0, 0)</p>
-
-<p class="whs10"> </p>
-
-<p class="whs10">isDone = pattern.MakeMesh(Mesh_1.GetMesh(),
- 0, 0)</p>
-
-<p class="whs10">if (isDone != 1): print
- 'MakeMesh :', pattern.GetErrorCode() </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Netgen 2D and 3D hypotheses</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:0px; }\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:365px; height:353px; float:none; border-style:none; }\r
-ul.whs5 { list-style:disc; }\r
-p.whs6 { margin-left:40px; margin-top:0px; margin-bottom: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.whs1 {margin-left:1pt; }";\r
- strNSS += "p.whs6 {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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nNetgen 2D and 3D hypotheses");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Netgen 2D and 3D hypotheses</h1>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> Netgen 2D</B></span> and <span style="font-weight: bold;"><B>Netgen</B></span> \r
- <span style="font-weight: bold;"><B>3D</B></span> hypotheses work only with <span \r
- style="font-weight: bold;"><B>Netgen 1D-2D</B></span> and <span style="font-weight: bold;"><B>Netgen</B></span> \r
- <span style="font-weight: bold;"><B>1D-2D-3D </B></span>algorithms. These algorithms \r
- do not require definition of lower-level hypotheses \r
- and algorithms (2D and 1D for meshing 3D objects and 1D for meshing 2D \r
- objects). They prove to be useful if lower-level meshing is homogeneous \r
- for all wires and faces of the meshed object.</p>\r
-\r
-<p class="whs3"><img src="pics/netgen2d.png" x-maintain-ratio="TRUE" width="365px" height="353px" border="0" class="img_whs4"></p>\r
-\r
-<ul type="disc" class="whs5">\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Name</B></span> \r
- - allows to define the name for the algorithm (Netgen 2D (or 3D) Parameters \r
- by default)</p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Max \r
- Size</B></span> - maximum linear dimensions for mesh cells.</p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Second \r
- Order</B></span> - if this box is checked in, the algorithm will create second \r
- order nodes on the mesh, which actually will become <a href="adding_quadratic_nodes_and_elements.htm">Quadratic</a>. \r
- </p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Fineness</B></span> \r
- - ranging from Very Coarse to Very Fine allows to set the level of meshing \r
- detalization using the three parameters below. You can select Custom to \r
- define them manually.</p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Growth \r
- rate</B></span> - allows to define how much the linear dimensions of two adjacent \r
- cells can differ (i.e. 0.3 means 30%).</p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Nb. \r
- Segs per Edge</B></span> and<span style="font-weight: bold;"><B> Nb Segs per \r
- Radius</B></span> - allows to define the minimum number of mesh segments in \r
- which edges and radiuses will be split. </p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Allow \r
- Quadrangles</B></span> - allows to use quadrangle elements in a triangle 2D \r
- mesh. This checkbox is not present in Netgen 3D parameters because currently \r
- building a tetrahedral mesh with quadrangle faces is not possible.</p></li>\r
- \r
- <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Optimize</B></span> \r
- - if this box is checked in, the algorithm will try to create regular \r
- (possessing even sides) elements.</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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Pattern mapping</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:626px; height:471px; border-style:none; }
-img_whs4 { border:none; width:22px; height:28px; border-style:none; }
-table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; }
-col.whs6 { width:56.089%; }
-col.whs7 { width:43.911%; }
-tr.whs8 { x-cell-content-align:top; }
-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; }
-p.whs10 { margin-right:0px; }
-img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; }
-td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; }
-img_whs14 { border:none; width:34px; height:34px; border-style:none; }
-table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; }
-col.whs16 { width:50.224%; }
-col.whs17 { width:49.776%; }
-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; }
-img_whs19 { border:none; width:306px; height:428px; float:none; border-style:none; }
-td.whs20 { width:49.776%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-img_whs21 { border:none; width:306px; height:248px; float:none; border-style:none; }
-p.whs22 { margin-left:0px; }
-img_whs23 { border:none; width:554px; height:279px; border-style:none; }
-img_whs24 { border:none; width:572px; height:233px; border-style:none; }
-img_whs25 { border:none; width:606px; height:249px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs10 {margin-right:1pt; }";
- strNSS += "p.whs22 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nModifying meshes\nPattern mapping");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Pattern mapping</h1>
-
-<h3>About patterns</h3>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The pattern describes a mesh to generate: positions of
- nodes within a geometrical domain and nodal connectivity of elements.
- As well, a pattern specifies the so-called key-points, i.e. nodes that
- will be located at geometrical vertices. Pattern description is stored
- in <pattern_name>.smp file.</p>
-
-<p> </p>
-
-<p>The smp file contains 4 sections:</p>
-
-<p> </p>
-
-<p class="whs2">1. The first line holds the number of nodes
- (N).</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">2. The next N lines describe nodes coordinates.
- Each line holds 2 coordinates of a node.</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">3. A key-points line: indices of nodes to
- be mapped on geometrical vertices. An index n refers to a node described
- on an n-th line of section 2. The first node index is zero.</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">4. The rest lines describe nodal connectivity
- of elements, one line for an element. A line holds indices of nodes forming
- an element. An index n refers to a node described on an n-th line of the
- section 2. The first node index is zero. There must be 3 or 4 indices
- on a line: only 2d elements are allowed.</p>
-
-<p class="whs2"> </p>
-
-<p>The 2D pattern must contain at least one element and at least one key-point.
- All key-points must lay on boundaries.</p>
-
-<p> </p>
-
-<p>An example of a simple smp file and a preview of a pattern described
- in this file:</p>
-
-<p> </p>
-
-<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>
-
-<p> </p>
-
-<p> </p>
-
-<h3>Application of pattern mapping</h3>
-
-<p class=TODO>To apply pattern mapping to a geometrical object:</p>
-
-<p class=TODO> </p>
-
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification
- </B></span>menu choose the <span style="font-weight: bold;"><B>Pattern Mapping
- </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following
- dialog box shall appear:</p>
-
-<p class="whs2"> </p>
-
-<table x-use-null-cells cellspacing="0" width="64.066%" class="whs5">
-<col class="whs6">
-<col class="whs7">
-
-<tr valign="top" class="whs8">
-<td width="56.089%" class="whs9">
-<p class="whs10"><img src="pics/patternmapping1.png" x-maintain-ratio="TRUE" width="306px" height="632px" border="0" class="img_whs11"></td>
-<td width="43.911%" class="whs12">
-<p><img src="pics/patternmapping2.png" x-maintain-ratio="TRUE" width="306px" height="670px" border="0" class="img_whs13"></td></tr>
-</table>
-
-<p class="whs2"> </p>
-
-<p>To apply a pattern to a geometrical object, you should specify:</p>
-
-<p class="whs2">- a face having the number of vertices equal
- to the number of key-points in the pattern; the number of key-points on
- internal boundaries of a pattern must also be equal to the number of vertices
- on internal boundaries of a face;</p>
-
-<p class="whs2">- a vertex to which the first key-point should
- be mapped,</p>
-
-<p class="whs2">- reverse or not the order of key-points.
- (The order of vertices of a face is counterclockwise looking from outside).</p>
-
-<p> </p>
-
-<p>Then you either load a .smp pattern file previously created manually
- by clicking on the <img src="image108.gif" width="34px" height="34px" border="0" class="img_whs14"> button, or click on the <span style="font-weight: bold;"><B>New</B></span>
- button for automatic generation.</p>
-
-<p>For an automatic generation you just specify a geometrical face having
- a mesh built on it. Mesh nodes lying on face vertices become key-points.
- Additionally, you may choose the way of getting nodes coordinates by <span
- style="font-weight: bold;"><B>projecting nodes on the face</B></span> instead
- of using "positions on face" generated by mesher (if there is
- any). Faces having a seam edge can\92t be used for automatic pattern creation.</p>
-
-<p> </p>
-
-<p>When creating a pattern from an existing mesh, there are two possible
- cases:</p>
-
-<p> </p>
-
-<p>1. A sub-mesh on face is selected. A pattern is created from the 2d
- elements bound to a face by mesher. Node coordinates are either "positions
- on face" computed by mesher, or coordinates got by node projection
- on a geometrical surface, according to your choice.</p>
-
-<p>2. A mesh where the main shape is a face, is selected. A pattern is
- created from all the 2d elements in a mesh. If all mesh elements are build
- by mesher, the user can select the way of getting nodes coordinates, else
- all nodes are projected on a face surface.</p>
-
-<table x-use-null-cells cellspacing="0" width="68.686%" class="whs15">
-<col class="whs16">
-<col class="whs17">
-
-<tr valign="top" class="whs8">
-<td width="50.224%" class="whs18">
-<p><img src="pics/a-patterntype.png" x-maintain-ratio="TRUE" width="306px" height="428px" border="0" class="img_whs19"></td>
-<td width="49.776%" class="whs20">
-<p><img src="pics/a-patterntype1.png" x-maintain-ratio="TRUE" width="306px" height="248px" border="0" class="img_whs21"></td></tr>
-</table>
-
-<p> </p>
-
-<h3>Mapping algorithm:</h3>
-
-<p class="whs22">The mapping algorithm is as follows:</p>
-
-<p class="whs22"> </p>
-
-<p class="whs2">1. Key-points are set in the order that they
- are encountered when walking along a pattern boundary so that elements
- are on the left. The first key-point is preserved.</p>
-
-<p class="whs2">2. Find geometrical vertices corresponding
- to key-points by vertices order in a face boundary; here, "Reverse
- order of key-points" flag is taken into account.</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs23"></p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">3. Boundary nodes of a pattern are mapped
- onto edges of a face: a node located between certain key-points on a pattern
- boundary is mapped on a geometrical edge limited by corresponding geometrical
- vertices. Node position on an edge reflects its distance from two key-points.</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs24"></p>
-
-<p class="whs2"> </p>
-
-<p class="whs2">4. Coordinates of a non-boundary node in
- a parametric space of a face are defined as following. In a parametric
- space of a pattern, a node lays at the intersection of two iso-lines,
- each of which intersects a pattern boundary at least at two points. Knowing
- mapped positions of boundary nodes, we find where isoline-boundary intersection
- points are mapped to, and hence we can find mapped isolines direction
- and then, two node positions on two mapped isolines. The eventual mapped
- position of a node is found as an average of positions on mapped isolines.</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></p>
-
-<p class="whs2"> </p>
-
-<p> <span style="font-weight: bold;"><B>See
- Also</B></span> a sample TUI Script of a <a href="modifying_meshes.htm#bookmark13">Pattern
- Mapping</a><a href="modifying_meshes.htm#bookmark11"> </a>operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Presentation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; height:274px; width:260px; border-style:none; }
-p.whs3 { font-weight:bold; margin-left:40px; }
-img_whs4 { border:none; height:285px; width:261px; border-style:none; }
-p.whs5 { font-weight:bold; }
-img_whs6 { border:none; width:263px; height:277px; border-style:none; }
-p.whs7 { font-weight:normal; }
-img_whs8 { border:none; height:287px; width:259px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nViewing meshes\nDisplay Mode");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Display Mode</h1>
-
-<p>By default your objects are represented as set in <span style="font-weight: bold;"><B>Preferences.</B></span></p>
-
-<p>However, right-clicking on the mesh in the <span style="font-weight: bold;"><B>Object
- Browser, </B></span>and selecting<span style="font-weight: bold;"><B> Display
- Mode, </B></span>you can display your mesh as<span style="font-weight: bold;"><B>:
- </B></span></p>
-
-<p> </p>
-
-<p class="whs1"><span style="font-weight: bold;"><B>Wireframe
- </B></span></p>
-
-<p class="whs1"><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs2"></p>
-
-<p> </p>
-
-<p class="whs1"><span style="font-weight: bold;"><B>Shading</B></span></p>
-
-<p class="whs3"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs4"></p>
-
-<p class="whs5"> </p>
-
-<p class="whs3"><span style="font-weight: normal;">or
- </span>Nodes.</p>
-
-<p class="whs3"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs6"></p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">Wireframe <span style="font-weight: normal;">can
- combine with</span> Nodes<span style="font-weight: normal;"> and</span>
- Shading.</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5">Shading<span style="font-weight: normal;">
- and</span> Wireframe<span style="font-weight: normal;"> modes can combine
- with</span> Shrink, <span style="font-weight: normal;">however</span>
- Nodes <span style="font-weight: normal;">can't.</span></p>
-
-<p class="whs7"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs8"></p>
-
-<p class="whs5"> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>3D extrusion meshing algorithm</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:24px; margin-top:0pt; margin-bottom:0pt; }\r
-img_whs2 { border:none; width:324px; height:337px; border-style:none; }\r
-p.whs3 { margin-top:0pt; margin-bottom:0pt; 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.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt;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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nCreating meshes\nDefining Algorithms\n3D extrusion meshing algorithm");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>3D extrusion meshing algorithm</h1>\r
-\r
-<p>3D extrusion algorithm can be used for meshing prisms, i.e.\r
-<span style="font-weight: bold;"><B>3D Shapes</B></span> defined by\r
- two opposing faces having the same number of vertices and edges and meshed using the \r
- <a href="projection_algorithms.htm">2D Projection</a> algorithm. These \r
- two faces should be connected by quadrangle "side" faces.</p>\r
-\r
-<p><span style="margin-left: 24px;\r
- margin-top: 0pt;\r
- margin-bottom: 0pt;">The opposing faces can be meshed with \r
- either quadrangles or triangles, while the side faces should be meshed \r
- with quadrangles only. </span></p>\r
-\r
-<p class="whs1"><img src="image157.gif" width="324px" height="337px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs3">As you can see, the <span style="font-weight: bold;"><B>3D extrusion</B></span> \r
- algorithm permits to build and to have in the same 3D mesh such elements \r
- as hexahedrons, prisms and polyhedrons.</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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Projection Algorithms</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
-img_whs2 { border:none; width:30px; height:29px; border-style:none; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:270px; height:285px; float:none; border-style:none; }\r
-img_whs5 { border:none; width:30px; height:29px; border-style:none; }\r
-img_whs6 { border:none; width:280px; height:351px; float:none; }\r
-p.whs7 { 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.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
- strNSS += "p.whs7 {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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nCreating meshes\nDefining Algorithms\nProjection Algorithms");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Projection Algorithms</h1>\r
-\r
-<p class="whs1">Projection algorithms allow \r
- to define the mesh of a geometrical object by the projection of another \r
- already meshed geometrical object. </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Projection \r
- 1D</B></span> algorithm permits to define the mesh of an edge by the projection \r
- of another already meshed edge.</p>\r
-\r
-<p class="whs1">To apply this algorithm \r
- select the edge to be meshed (indicated in the field <span style="font-weight: bold;"><B>Geometry</B></span> \r
- of<span style="font-weight: bold;"><B> Create mesh</B></span> dialog box), <span \r
- style="font-weight: bold;"><B>Projection 1D</B></span> in the list of 1D algorithms \r
- and click the <img src="image122.gif" width="30px" height="29px" border="0" class="img_whs2"> button. The following dialog box will appear: \r
- </p>\r
-\r
-<p class="whs3"><img src="pics/projection_1d.png" x-maintain-ratio="TRUE" width="270px" height="285px" border="0" class="img_whs4"></p>\r
-\r
-<p>In this menu you can define the <span style="font-weight: bold;"><B>Name</B></span> \r
- of the algorithm, the algeady meshed source <span style="font-weight: bold;"><B>Edge</B></span> \r
- and the <span style="font-weight: bold;"><B>Mesh</B></span> (optional, use it \r
- if there are several different meshes on the same edge). It could also \r
- be necessary to define the orientation of edges, which is done by indicating \r
- the <span style="font-weight: bold;"><B>Source Vertex</B></span> being the first \r
- point of the Source Edge and the <span style="font-weight: bold;"><B>Target \r
- Vertex </B></span>being the first point of the created <span style="font-weight: bold;"><B>Edge.</B></span></p>\r
-\r
-<p><span style="font-weight: bold;"><B>Projection 2D</B></span> algorithm<span \r
- style="font-weight: bold;"> <B></B></span>permits to define the mesh of a face \r
- by the projection of another already meshed face. This algorithm works \r
- only if all edges of the<span style="font-weight: bold;"> <B></B></span>target \r
- face have been meshed as 1D Projections of the edges of the source face.</p>\r
-\r
-<p>To apply this algorithm select the face to be meshed (indicated in the \r
- field <span style="font-weight: bold;"><B>Geometry</B></span> of<span style="font-weight: bold;"><B> \r
- Create mesh</B></span> dialog box), <span style="font-weight: bold;"><B>Projection \r
- 2D</B></span> in the list of 2D algorithms and click the <img src="image122.gif" width="30px" height="29px" border="0" class="img_whs5"> button. \r
- The following dialog box will appear: </p>\r
-\r
-<p class="whs3"><img src="pics/projection_2d.png" x-maintain-ratio="TRUE" width="280px" height="351px" border="0" class="img_whs6"></p>\r
-\r
-<p>In this menu you can define the <span style="font-weight: bold;"><B>Name</B></span> \r
- of the algorithm, the algeady meshed source <span style="font-weight: bold;"><B>Face</B></span> \r
- and the <span style="font-weight: bold;"><B>Mesh</B></span> (optional, use it \r
- if there are several different meshes on the same face). It could also \r
- be necessary to define the orientation of mesh on the face, which is done \r
- by indicating two <span style="font-weight: bold;"><B>Source Vertices, </B></span>which \r
- belong to the same edge of the<span style="font-weight: bold;"> <B></B></span>source \r
- face, and two<span style="font-weight: bold;"><B> Target Vertices,</B></span> \r
- which belong to the same edge of the created<span style="font-weight: bold;"><B> \r
- Face. </B></span></p>\r
-\r
-<p><span style="font-weight: bold;"><B>Projection 3D</B></span> algorithm permits \r
- to define the mesh of a shape by the projection of another already meshed \r
- shape. This \r
- algorithm works only if all faces and edges of the<span style="font-weight: bold;"> \r
- <B></B></span>target face have been meshed as 1D Projections of the faces and \r
- edges of the source face. Another limitation is that this algorithm currently \r
- works only on boxes. </p>\r
-\r
-<p>To apply this algorithm select the solid to be meshed (indicated in \r
- the field <span style="font-weight: bold;"><B>Geometry</B></span> of<span style="font-weight: bold;"><B> \r
- Create mesh</B></span> dialog box), <span style="font-weight: bold;"><B>Projection \r
- 3D</B></span> in the list of 3D algorithms and click the <img src="image122.gif" width="30px" height="29px" border="0" class="img_whs5"> button. \r
- The following dialog box will appear: </p>\r
-\r
-<p class="whs3"><img src="pics/projection_3d.png" x-maintain-ratio="TRUE" width="280px" height="351px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs7">In this menu you can define the <span style="font-weight: bold;"><B>Name</B></span> \r
- of the algorithm, the algeady meshed source <span style="font-weight: bold;"><B>3D \r
- shape</B></span> and the <span style="font-weight: bold;"><B>Mesh</B></span> (optional, \r
- use it if there are several different meshes on the same shape). It could \r
- also be necessary to define the orientation of mesh on the shape, which \r
- is done by indicating two <span style="font-weight: bold;"><B>Source Vertices,</B></span> \r
- which belong to the same edge of the<span style="font-weight: bold;"> \r
- <B></B></span>source <span style="font-weight: bold;"><B>3D Shape,</B></span> and two<span \r
- style="font-weight: bold;"><B> Target Vertices,</B></span> which belong to the \r
- same edge of the<span style="font-weight: bold;"> <B></B></span>source <span \r
- style="font-weight: bold;"><B>3D Shape. </B></span></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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Quality Controls</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nQuality Controls");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Quality Controls</h1>
-
-<h3><a name=bookmark>Free Borders</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># create open shell: a
- box without one plane</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">box
- = geompy.MakeBox(0., 0., 0., 20., 20., 15.)</span></p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh
- = smesh.Mesh(box, "Mesh_free_borders")</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># criterion : free borders</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.EDGE, smesh.FT_FreeBorders)</span><span style="margin-top: 0pt;
- margin-bottom: 0pt;
- font-family: 'Lucida Console', monospace;"> </span></p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Free borders Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateGroup(SMESH.EDGE,
- "Free borders")</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark1>Borders at Multiconnection</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1">import SMESH</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create open shell:
- a box without one plane</p>
-
-<p class="whs1">box = geompy.MakeBox(0.,
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh
- = smesh.Mesh(box, "Mesh_borders_at_multi-connections")</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : Borders
- at multi-connection</p>
-
-<p class="whs1">nb_conn = 2</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.EDGE, smesh.FT_MultiConnection, smesh.FT_EqualTo,
- nb_conn)</span></p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Borders at multi-connections Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateGroup(SMESH.EDGE,
- "Borders at multi-connections")</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<h3><a name=bookmark2>Length 1D</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># create open shell: a
- box without one plane</p>
-
-<p class="whs1">box = geompy.MakeBox(0.,
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh
- = smesh.Mesh(box, "Mesh_Length_1D")</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># Criterion : Length >
- 3.</p>
-
-<p class="whs1">length_margin =
- 3.</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.EDGE, smesh.FT_Length, smesh.FT_MoreThan, length_margin)</span></p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Edges length > ", length_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateGroup(SMESH.EDGE,
- "Edges with length > " + `length_margin`)</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark3>Free Edges</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Remove some elements
- to obtain free edges</p>
-
-<p class="whs3"># Criterion : AREA
- > 95.</p>
-
-<p class="whs1">area_margin = 95.</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">mesh.RemoveElements(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : Free
- Edges</p>
-
-<p class="whs1">aBorders = mesh.GetFreeBorders()
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create groups</p>
-
-<p class="whs1">aGroupF = mesh.CreateGroup(SMESH.FACE,
- "Faces with free edges")</p>
-
-<p class="whs1">aGroupN = mesh.CreateGroup(SMESH.NODE,
- "Nodes on free edges")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># fill groups with
- elements, corresponding to the criterion</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1">print "Criterion:
- Free edges Nb = ", len(aBorders)</p>
-
-<p class="whs1">for i in range(len(aBorders)):</p>
-
-<p class="whs1"> aBorder
- = aBorders[i]</p>
-
-<p class="whs1"> print
- "Face # ", aBorder.myElemId, " : Edge between nodes (",</p>
-
-<p class="whs1"> print
- aBorder.myPnt1, ", ", aBorder.myPnt2, ")"</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"> <span
- style="margin-top: 0pt;
- margin-bottom: 0pt;
- font-family: 'Lucida Console', monospace;">aGroupF.Add([aBorder.myElemId])</span></p>
-
-<p class="whs1"> aGroupN.Add([aBorder.myPnt1,
- aBorder.myPnt2])</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark4>Length 2D</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create open shell:
- a box without one plane</p>
-
-<p class="whs1">box = geompy.MakeBox(0.,
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh
- = smesh.Mesh(box, "Mesh_Length_2D")</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute()</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : Length
- 2D > 5.7</p>
-
-<p class="whs1">length_margin =
- 5.7</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.FACE, smesh.FT_Length2D, smesh.FT_MoreThan, length_margin)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Edges length 2D > ", length_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Faces with length 2D > "
- + `length_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs2"> </p>
-
-<h3><a name=bookmark5>Borders at Multiconnection 2D</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"># create a compound
- of two glued boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBox(0.,
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">box2 = geompy.MakeTranslation(box1,
- 0., 20., 0)</p>
-
-<p class="whs1">comp = geompy.MakeCompound([box1,
- box2])</p>
-
-<p class="whs1">box = geompy.MakeGlueFaces(comp,
- 0.000001)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box,
- "box")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh
- = smesh.Mesh(box, "Box compound : 2D triangle mesh")</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : MULTI-CONNECTION
- 2D = 3</p>
-
-<p class="whs1">nb_conn = 3</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.FACE, smesh.FT_MultiConnection2D, smesh.FT_EqualTo,
- nb_conn)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Borders at multi-connection 2D = ", nb_conn, " Nb = ",
- len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Borders at multi-connection
- 2D = " + `nb_conn`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark6>Area</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># Criterion : AREA >
- 100.</p>
-
-<p class="whs1">area_margin = 100.</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Area, smesh.FT_MoreThan, area_margin)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Area > ", area_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.FACE,
- "Area > " + `area_margin`)</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
- </p>
-
-<h3><a name=bookmark7>Taper</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : Taper
- > 3e-20</p>
-
-<p class="whs1">taper_margin = 3e-20</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Taper, smesh.FT_MoreThan, taper_margin)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Taper > ", taper_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Taper > " + `taper_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<h3><a name=bookmark8>Aspect Ratio</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : ASPECT
- RATIO > 1.8</p>
-
-<p class="whs1">ar_margin = 1.8</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter
- = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan,
- ar_margin)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Aspect Ratio > ", ar_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Aspect Ratio > " + `ar_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark9>Minimum Angle</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : MINIMUM
- ANGLE < 35.</p>
-
-<p class="whs1">min_angle = 35.</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_MinimumAngle, smesh.FT_LessThan, min_angle)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Minimum Angle < ", min_angle, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Minimum Angle < " +
- `min_angle`)</span></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark10>Warping</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : WARP
- ANGLE > 1e-15</p>
-
-<p class="whs1">wa_margin = 1e-15</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Warping, smesh.FT_MoreThan, wa_margin)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Warp > ", wa_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.FACE,
- "Warp > " + `wa_margin`)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark12>Skew</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : Skew
- > 38.</p>
-
-<p class="whs1">skew_margin = 38.</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE,
- smesh.FT_Skew, smesh.FT_MoreThan, skew_margin)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Skew > ", skew_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup
- = mesh.CreateEmptyGroup(smesh.FACE, "Skew > " + `skew_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs1"> </p>
-
-<h3><a name=bookmark11>Aspect Ratio 3D</a></h3>
-
-<p class="whs1">import SMESH_mechanic_tetra
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic_tetra.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic_tetra.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># Criterion : ASPECT
- RATIO 3D > 4.5</p>
-
-<p class="whs1">ar_margin = 4.5</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.VOLUME,
- smesh.FT_AspectRatio3D, smesh.FT_MoreThan, ar_margin)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print "Criterion:
- Aspect Ratio 3D > ", ar_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1"> </p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.VOLUME,
- "Aspect Ratio 3D > " + `ar_margin`)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1)
- </p>
-
-<h3><a name=Volume>Volume</a></h3>
-
-<p class="whs1">import SMESH_mechanic_tetra</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">smesh =
- SMESH_mechanic_tetra.smesh</p>
-
-<p class="whs1">mesh =
- SMESH_mechanic_tetra.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># Criterion : VOLUME <
- 7.</p>
-
-<p class="whs1">volume_margin =
- 7.</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.VOLUME,
- smesh.FT_Volume3D, smesh.FT_LessThan, volume_margin)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)
- </p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs1">print "Criterion:
- Volume < ", volume_margin, " Nb = ", len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1"> if
- j > 20: j = 1; print ""</p>
-
-<p class="whs1"> print
- anIds[i],</p>
-
-<p class="whs1"> j
- = j + 1</p>
-
-<p class="whs1"> pass</p>
-
-<p class="whs1">print ""</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.VOLUME,
- "Volume < " + `volume_margin`)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs2"> </p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)
- </span> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Radial Prism</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:0px; }\r
-p.whs2 { margin-left:48px; }\r
-img_whs3 { border:none; width:270px; height:179px; float:none; border-style:none; }\r
-img_whs4 { border:none; width:299px; height:182px; 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.whs1 {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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nCreating meshes\nDefining Algorithms\nRadial Prism Algorithm");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Radial Prism</h1>\r
-\r
-<p>This algorithm applies to the meshing of a hollow 3D shape, i.e. such \r
- shape should be composed of two meshed shells: an outer shell and an internal \r
- shell without intersection with the outer shell. One of the shells should \r
- be a 2D Projection of the other shell. The meshes of the shells can consist \r
- both of triangles and quadrangles.</p>\r
-\r
-<p class="whs1">The Radial Prism algorithm would fill the \r
- space between the two shells with meshes. </p>\r
-\r
-<p class="whs1">This algorithm also needs the information \r
- concerning the number and distribution of mesh layers between the inner \r
- and the outer shapes.</p>\r
-\r
-<p class="whs2"> <img src="pics/number_of_layers.png" x-maintain-ratio="TRUE" width="270px" height="179px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">Distribution of layers can be set with any \r
- of 1D Hypotheses. </p>\r
-\r
-<p class="whs2"><img src="pics/distribution_of_layers.png" x-maintain-ratio="TRUE" width="299px" height="182px" border="0" class="img_whs4"></p>\r
-\r
-<p> </p>\r
-\r
-<p class="whs2"> </p>\r
-\r
-<p> </p>\r
-\r
-<p class="whs2"> </p>\r
-\r
-<p class="whs2"> </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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Revolution</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:24px; height:25px; border-style:none; }
-img_whs3 { border:none; width:390px; height:437px; float:none; border-style:none; }
-ul.whs4 { list-style:disc; }
-img_whs5 { border:none; width:350px; height:201px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nModifying meshes\nRevolution");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Revolution</h1>
-
-<p>Revolution is a type of surface meshing by generation from discretized
- lines. It is used to build mesh elements of plus one dimension than the
- swept ones. Each swept 1D element produces one or more quadrangles (or
- triangles if one node of a rotated element lays on the revolution axis).</p>
-
-<p> </p>
-
-<p class=TODO>To apply revolution:</p>
-
-<p class=TODO> </p>
-
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification
- </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item
- or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box
- shall appear:</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">2. In this dialog box you should specify:</p>
-
-<ul type="disc" class="whs4">
-
- <li class=kadov-p><p class="whs1">the type of elements
- which will be extruded (1D or 2D),</p></li>
-
- <li class=kadov-p><p class="whs1">specify the IDs of
- the elements which will be revolved by selecting them in the 3D viewer
- or select the whole mesh or submesh,</p></li>
-
- <li class=kadov-p><p class="whs1">specify the axis (point
- and vector) around which the elements will be revolved,</p></li>
-
- <li class=kadov-p><p class="whs1">angle of rotation,</p></li>
-
- <li class=kadov-p><p class="whs1">number of steps,</p></li>
-
- <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>
-</ul>
-
-<p class="whs1"> </p>
-
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
-
-<p class="whs1"> </p>
-
-<p class=TODO
- style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>
-
-<p class=TODO> </p>
-
-<p> <span style="font-weight: bold;"><B>See
- Also</B></span> a sample TUI Script of a <a href="grouping_elements.htm#bookmark3"> </a><a href="modifying_meshes.htm#bookmark11">Revolution</a>
- operation. </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Segments around Vertex Algorithm</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:270px; height:179px; 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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nCreating meshes\nDefining Algorithms\nSegments around Vertex Algorithm");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Segments around Vertex</h1>\r
-\r
-<p><span style="font-weight: bold;"><B>Segments around Vertex</B></span> algorithm \r
- is considered to be a 0D \r
- meshing algorithm, but, of course, it doesn't mesh nodes. It allows to \r
- define the local size of the elements in the neighborhood of a certain \r
- node. If we choose an object of higher dimension, it applies to all its \r
- tops, i.e. corners of a box. The \r
- 0D algorithm combines with the algorithms of higher dimensions, but it \r
- is not necessarily required for their successful implementation. </p>\r
-\r
-<p>This algorithm allows only one hypothesis. </p>\r
-\r
-<p class="whs1"><img src="pics/lengthnearvertex.png" x-maintain-ratio="TRUE" width="270px" height="179px" border="0" class="img_whs2"></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
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Selection filter library</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-weight:bold; }
-img_whs2 { border:none; width:624px; height:776px; float:none; border-style:none; }
-img_whs3 { border:none; width:31px; height:30px; border-style:none; }
-img_whs4 { border:none; width:624px; height:525px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nGrouping elements\nSelection filter library");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Selection filter library</h1>
-
-<p>Selection filter library is a powerful tool enabling to create filters
- to be used on meshes. You can access to it from the Main Menu via <span
- style="font-weight: bold;"><B>Tools / Selection filter library.</B></span></p>
-
-<p> </p>
-
-<p class="whs1"><img src="pics/selectionfilterlibrary.png" x-maintain-ratio="TRUE" width="624px" height="776px" border="0" class="img_whs2"></p>
-
-<p> </p>
-
-<p class="whs1">Library file name s<span style="font-weight: normal;">hows
- the path and the file name where your filters will be stored. By clicking
- the</span> <img src="image103.gif" width="31px" height="30px" border="0" class="img_whs3"> <span style="font-weight: normal;">browse button
- you can load an existing filter library.</span></p>
-
-<p><span style="font-weight: bold;"><B>Names of filters</B></span> lists the filters
- created or uploaded for the current study. You can <span style="font-weight: bold;"><B>Add</B></span>
- or <span style="font-weight: bold;"><B>Delete</B></span> filters. </p>
-
-<p>In <span style="font-weight: bold;"><B>Filter name</B></span> box you can specify
- the name for your filter. By default it is prefixed with the corresponding
- entity type.</p>
-
-<p>Each filter can be applicable to <span style="font-weight: bold;"><B>Nodes,
- Edges, Faces</B></span> or <span style="font-weight: bold;"><B>Volumes</B></span>.
- You can combine many criteria in one filter, but they all must be of the
- same <span style="font-weight: bold;"><B>Entity type</B></span>. </p>
-
-<p>The <span style="font-weight: bold;"><B>Add</B></span> button creates a new
- criterion at the end of the list of criteria. The <span style="font-weight: bold;"><B>Insert</B></span>
- button creates a new criterion before the selected criterion. The <span
- style="font-weight: bold;"><B>Remove</B></span> button deletes the selected criterion.
- The <span style="font-weight: bold;"><B>Clear</B></span> button deletes all criteria.
- </p>
-
-<p>Each <span style="font-weight: bold;"><B>Entity type</B></span> has its specific
- list of criteria, however all filters have common syntax. For each criterion
- you should specify the <span style="font-weight: bold;"><B>Threshold Value</B></span>
- and whether we search for the elements that should be <span style="font-weight: bold;"><B>More,
- Less or Equal</B></span> to this <span style="font-weight: bold;"><B>Value</B></span>.
- You should also specify if the criterion is <span style="font-weight: bold;"><B>Unary</B></span>
- or <span style="font-weight: bold;"><B>Binary.</B></span> </p>
-
-<p>Some criteria should have the additional parameter of <span style="font-weight: bold;"><B>Tolerance</B></span>.</p>
-
-<p> </p>
-
-<p>When we create a <span style="font-weight: bold;"><B>Standalone Group</B></span>
- using filters (for this click <span style="font-weight: bold;"><B>Set Filters</B></span>
- button in the <span style="font-weight: bold;"><B>Create Group</B></span> menu),
- the menu for setting filters looks a bit differently. Toggling <span style="font-weight: bold;"><B>Insert
- filter in viewer</B></span> checkbox enables to preview the group selected
- with your current filter in the viewer. </p>
-
-<p>In the <span style="font-weight: bold;"><B>Source</B></span> field you choose
- if the filter will be applied to the whole <span style="font-weight: bold;"><B>Mesh</B></span>,
- the<span style="font-weight: bold;"><B> Initial Selection </B></span>or the<span
- style="font-weight: bold;"><B> Current Group. </B></span></p>
-
-<p><span style="font-weight: bold;"><B>Copy from...</B></span> button gives you
- a possibility to load an existing filter from <span style="font-weight: bold;"><B>Selection
- filter library</B></span> and <span style="font-weight: bold;"><B>Add to...</B></span>
- button gives you a possibility to save your current filter in the Library.
- </p>
-
-<p> </p>
-
-<p><img src="pics/a-filteronedges.png" x-maintain-ratio="TRUE" width="624px" height="525px" border="0" class="img_whs4"></p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-|SourceProjectName:SMESH.hpr
-|DestinationProjectName:index.htm
-whhost.js
-whmsg.js
-whmozemu.js
-whproxy.js
-whstub.js
-whutils.js
-whver.js
-whform.js
-whphost.js
-whstart.js
-whtopic.js
-whframes.js
-whlang.js
-whskin_info.htm
-whskin_blank.htm
-whskin_pickup.htm
-whskin_homepage.htm
-whskin_tw.htm
-whnjs.htm
-whthost.js
-whtdhtml.htm
-whihost.js
-whibody.htm
-whiform.htm
-whfhost.js
-whfbody.htm
-whfform.htm
-whghost.js
-whgbody.htm
-whgdhtml.htm
-whgdef.htm
-whproj.js
-whproj.xml
-whproj.htm
-whxdata\whtoc.xml
-whxdata\whidx.xml
-whxdata\whfts.xml
-whxdata\whglo.xml
-whdata\whtoc.js
-whdata\whtoc.htm
-whdata\whtdata.js
-whdata\whidx.js
-whdata\whidx.htm
-whdata\whidata.js
-whdata\whfts.js
-whdata\whfts.htm
-whdata\whglo.js
-whdata\whglo.htm
-whdata\whgdata.js
-whdata\whftdata.js
-whdata\whfwdata.js
-whres.xml
-webhelp.jar
-webhelp.cab
-whgdata\whnvp30.htm
-whgdata\whnvp31.htm
-whgdata\whnvp32.htm
-whgdata\whnvp33.htm
-whgdata\whnvt30.htm
-whgdata\whnvt31.htm
-whgdata\whnvt32.htm
-whgdata\whnvt33.htm
-whgdata\whnvf30.htm
-whgdata\whnvf31.htm
-whgdata\whnvf32.htm
-whgdata\whnvf33.htm
-whgdata\whnvl31.htm
-whgdata\whnvl32.htm
-whgdata\whnvl33.htm
-whgdata\whexpbar.gif
-cshdat_webhelp.htm
-whcsh_home.htm
-whcshdata.htm
-cshdat_robohelp.htm
-whd_topic.xml
-whd_nvp10.htm
-whd_nvp20.htm
-whd_tabs.htm
-whd_dpns.htm
-whd_tab0.gif
-whd_tab1.gif
-whd_tab2.gif
-whd_tab3.gif
-whd_tab4.gif
-whd_tab5.gif
-whd_tab6.gif
-whd_tab7.gif
-whd_tab8.gif
-whd_toc1.gif
-whd_toc2.gif
-whd_toc3.gif
-whd_toc4.gif
-whd_show0.gif
-whd_show1.gif
-whd_show2.gif
-whd_hide0.gif
-whd_hide1.gif
-whd_hide2.gif
-whd_sync0.gif
-whd_sync1.gif
-whd_sync2.gif
-whd_prev0.gif
-whd_prev1.gif
-whd_prev2.gif
-whd_next0.gif
-whd_next1.gif
-whd_next2.gif
-whd_wbsh0.gif
-whd_wbsh1.gif
-whd_wbsh2.gif
-whidhtml.htm
-whfdhtml.htm
-index_hha.hhk
-index.hhc
-index.hhk
-about_viewing_meshes.htm
-adding_quadratic_nodes_and_elements.htm
-aspect_ratio_3d.htm
-borders_at_multi-connection.htm
-borders_at_multiconnection_2d.htm
-building_compounds.htm
-clipping.htm
-constructing_meshes.htm
-convert_to_from_quadratic_mesh.htm
-defining_hypotheses_tui.htm
-deleting_groups.htm
-display_entity.htm
-extrusion.htm
-extrusion_along_a_path.htm
-files\about_hypotheses.htm
-files\about_meshes.htm
-files\about_meshing_algorithms.htm
-files\about_quality_controls.htm
-files\adding_nodes_and_elements.htm
-files\area_of_elements.htm
-files\arithmetic_1d.htm
-files\aspect_ratio.htm
-files\changing_orientation_of_elements.htm
-files\constructing_groups_of_specific_elements.htm
-files\constructing_meshes.htm
-files\constructing_submeshes.htm
-files\creating_groups.htm
-files\cutting_quadrangles.htm
-files\diagonal_iversion_of_elements.htm
-files\displacing_nodes.htm
-files\displaying_nodes_numbers.htm
-files\editing_groups.htm
-files\importing_and_exporting_meshes.htm
-files\length_of_edges.htm
-files\max._element_area_hypothesis.htm
-files\max._element_volume_hypothsis.htm
-files\merging_nodes.htm
-files\minimum_angle.htm
-files\non_conform_mesh_allowed_hypothesis.htm
-files\reassigning_hypotheses_and_algorithms.htm
-files\removing_nodes_and_elements.htm
-files\renumbering_nodes_and_elements.htm
-files\rotation.htm
-files\running_smesh_module.htm
-files\sewing_meshes.htm
-files\skew.htm
-files\smoothing.htm
-files\symmetry.htm
-files\taper.htm
-files\translation.htm
-files\uniting_a_set_of_triangles.htm
-files\uniting_two_triangles.htm
-files\using_operations_on_groups.htm
-files\viewing_mesh_info.htm
-files\vtk_3d_viewer.htm
-files\warp.htm
-free_borders.htm
-free_edges.htm
-grouping_elements.htm
-length.htm
-merge_elements.htm
-mesh.htm
-mesh_through_point.htm
-modifying_meshes.htm
-namespacesmesh.html
-netgen_2d_and_3d_hypotheses.htm
-pattern_mapping.htm
-presentation.htm
-prism_3d_algorithm.htm
-projection_algorithms.htm
-quality_controls.htm
-radial_prism.htm
-revolution.htm
-segments_around_vertex_algorithm.htm
-selection_filter_library.htm
-smesh.py_introduction.htm
-transforming_meshes.htm
-transparency.htm
-viewing_meshes.htm
-volume.htm
-ehelp.xml
-texture_horiz_ltbluebubbles.jpg
-index.glo
-default.css
-pics\curvi_simple_after.png
-pics\image89.gif
-pics\image100.gif
-pics\image78.gif
-pics\image23.gif
-pics\b-mesh_infos.png
-pics\remove_nodes2.png
-pics\moving_nodes1.png
-pics\smoothing2.png
-pics\a-maxelarea.png
-pics\patternmapping1.png
-image94.jpg
-image106.gif
-image91.gif
-image80.gif
-pics\distributionwithtabledensity.png
-pics\moving_nodes2.png
-image7.jpg
-pics\patternmapping2.png
-pics\extrusionalongaline1.png
-pics\addquadrangle.png
-image95.jpg
-pics\sewing1.png
-image92.gif
-image51.jpg
-image70.gif
-pics\meshtopass.png
-pics\image157.gif
-pics\extrusion1.png
-pics\curvi_angles_after.png
-pics\straight_before.png
-pics\image102.gif
-pics\length2d.png
-pics\free_borders1.png
-pics\a-creategroup.png
-pics\a-startendlength.png
-pics\a-patterntype.png
-pics\extrusionalongaline2.png
-pics\orientaation1.png
-pics\unionoftwotriangles.png
-image96.jpg
-pics\sewing2.png
-image119.gif
-image108.gif
-image52.jpg
-image82.gif
-image71.gif
-image30.jpg
-pics\lengthnearvertex.png
-pics\straight_after.png
-pics\cut_groups1.png
-pics\uniting_a_set_of_triangles1.png
-pics\b-erage_length.png
-pics\removeelements.png
-image97.jpg
-pics\sewing3.png
-image86.jpg
-image50.gif
-image94.gif
-image83.gif
-image31.jpg
-pics\aqt.png
-pics\distributionwithanalyticdensity.png
-pics\meshexportmesh.png
-pics\image27.gif
-pics\cut_groups2.png
-pics\edit_mesh_change_value_hyp.png
-pics\add_node.png
-pics\uniting_a_set_of_triangles2.png
-pics\max_el_area.png
-image10.jpg
-pics\a-filteronedges.png
-pics\revolution1.png
-pics\addhexahedron.png
-pics\addtriangle.png
-pics\editgroup.png
-pics\sewing4.png
-image95.gif
-image76.jpg
-image84.gif
-image32.jpg
-image40.gif
-i_blue.jpg
-image160.gif
-pics\number_of_layers.png
-pics\netgen2d.png
-pics\mesh_for_extr_along_path.png
-pics\meshtrianglemergeelem1.png
-pics\image138.gif
-pics\cut_groups3.png
-pics\revolution2.png
-pics\renumberelements.png
-pics\intersectgroups.png
-image88.jpg
-image30.gif
-image96.gif
-image77.jpg
-image74.gif
-image63.gif
-image22.jpg
-image41.gif
-image161.gif
-pics\createmesh-inv.png
-pics\image139.gif
-pics\b-art_end_length.png
-pics\b-mberofsegments.png
-pics\b-flection1d.png
-pics\a-unionoftriangles.png
-image56.jpg
-image53.gif
-image20.gif
-image97.gif
-image78.jpg
-image64.gif
-image23.jpg
-pics\buildcompound.png
-pics\projection_3d.png
-image151.gif
-pics\selectionfilterlibrary.png
-pics\intersect_groups1.png
-pics\create_group.png
-pics\add_triangle.png
-pics\add_edge.png
-pics\rotation1.png
-pics\merging_nodes1.png
-pics\translation1.png
-pics\cutgroups.png
-image79.jpg
-image98.gif
-image32.gif
-pics\projection_2d.png
-pics\advanced_mesh_infos.png
-pics\image108.gif
-pics\image91.gif
-image152.gif
-pics\automaticlength.png
-pics\intersect_groups2.png
-image130.gif
-pics\rotation2.png
-pics\merging_nodes2.png
-pics\a-cuttingofquadrangles.png
-pics\a-transparency.png
-pics\a-viewgeneral.png
-pics\smoothing.png
-pics\translation2.png
-image99.gif
-image55.gif
-image88.gif
-image36.jpg
-image33.gif
-image25.jpg
-pics\projection_1d.png
-pics\view_rotation_point.png
-image153.gif
-pics\image109.gif
-image15.jpg
-image142.gif
-pics\intersect_groups3.png
-image131.gif
-pics\edit_mesh1.png
-pics\b-ithmetic1d.png
-pics\mergenodes.png
-pics\rotation.png
-pics\addnode.png
-image120.gif
-image56.gif
-image37.jpg
-image67.gif
-image34.gif
-pics\convert.png
-image154.gif
-pics\edge_wire_3d_after.png
-pics\graduatedaxes1.png
-pics\length-crit.png
-image143.gif
-pics\editing_groups1.png
-image132.gif
-pics\a-maxelvolume.png
-pics\a-averagelength.png
-pics\movenodes.png
-pics\removenodes.png
-pics\addtetrahedron.png
-pics\uniongroups.png
-image121.gif
-image79.gif
-image38.jpg
-image46.gif
-image35.gif
-image27.jpg
-image24.gif
-note1.gif
-pics\distribution_of_layers.png
-image155.gif
-pics\edge_wire_after.png
-pics\edge_wire_before.png
-image144.gif
-pics\deletegroups.png
-pics\editing_groups2.png
-image133.gif
-pics\add_polyhedron.png
-pics\addedge.png
-pics\creategroup.png
-image122.gif
-image58.gif
-image36.gif
-image25.gif
-image156.gif
-pics\circle_simple_after.png
-image145.gif
-image134.gif
-pics\edit_mesh_remove_hyp.png
-pics\a-patterntype1.png
-image123.gif
-image101.gif
-image37.gif
-image157.gif
-pics\image96.gif
-image146.gif
-pics\meshimportmesh.png
-image135.gif
-pics\uniting_two_triangles1.png
-pics\a-nbsegments1.png
-pics\a-arithmetic1d.png
-pics\symmetry1.png
-image90.jpg
-image124.gif
-image49.gif
-pics\exemple.gif
-image38.gif
-pics\set_rotation_point_dialog1.png
-pics\image97.gif
-image147.gif
-pics\union_groups1.png
-image136.gif
-pics\free_edges.png
-pics\uniting_two_triangles2.png
-pics\a-nbsegments2.png
-pics\symmetry2.png
-image125.gif
-image103.gif
-image39.gif
-image28.gif
-image159.gif
-pics\set_rotation_point_dialog2.png
-pics\circle_angles_after.png
-pics\createmesh-inv2.png
-pics\image98.gif
-pics\mergeelems.png
-image148.gif
-pics\image21.gif
-pics\union_groups2.png
-image137.gif
-pics\add_quadrangle.png
-pics\remove_elements1.png
-pics\a-createpolyhedralvolume.png
-pics\a-clipping2.png
-pics\a-deflection1d.png
-pics\diagonalinversion.png
-pics\symmetry3.png
-pics\renumbernodes.png
-image92.jpg
-image126.gif
-image18.gif
-image70.jpg
-pics\circle_simple_before.png
-pics\edge_wire_3d_before.png
-pics\curvi_simple_before.png
-pics\createmesh-inv3.png
-pics\image99.gif
-pics\image77.gif
-pics\union_groups3.png
-pics\add_polygone.png
-pics\remove_elements2.png
-pics\remove_nodes1.png
-pics\smoothing1.png
-pics\a-standmeshinfo.png
-pics\addpolygon.png
-image5.jpg
-image127.gif
-image93.jpg
-image105.gif
-image19.gif
-image71.jpg
-index.ppf
-ehlpdhtm.js
-default_ns.css
-whxdata\whtdata0.xml
-whxdata\whftdata0.xml
-whxdata\whfwdata0.xml
-whxdata\whgdata0.xml
-whdata\whtdata0.htm
-whdata\whftdata0.htm
-whdata\whfwdata0.htm
-whdata\whgdata0.htm
-whgdata\whlstt0.htm
-whgdata\whlstt1.htm
-whgdata\whlstt2.htm
-whgdata\whlstt3.htm
-whgdata\whlstt4.htm
-whgdata\whlstt5.htm
-whgdata\whlstt6.htm
-whgdata\whlstt7.htm
-whgdata\whlstt8.htm
-whgdata\whlstt9.htm
-whgdata\whlstt10.htm
-whgdata\whlsti0.htm
-whgdata\whlstfl0.htm
-whgdata\whlstfl1.htm
-whgdata\whlstfl2.htm
-whgdata\whlstfl3.htm
-whgdata\whlstfl4.htm
-whgdata\whlstfl5.htm
-whgdata\whlstfl6.htm
-whgdata\whlstfl7.htm
-whgdata\whlstfl8.htm
-whgdata\whlstfl9.htm
-whgdata\whlstfl10.htm
-whgdata\whlstfl11.htm
-whgdata\whlstfl12.htm
-whgdata\whlstfl13.htm
-whgdata\whlstfl14.htm
-whgdata\whlstfl15.htm
-whgdata\whlstfl16.htm
-whgdata\whlstfl17.htm
-whgdata\whlstfl18.htm
-whgdata\whlstfl19.htm
-whgdata\whlstfl20.htm
-whgdata\whlstfl21.htm
-whgdata\whlstfl22.htm
-whgdata\whlstfl23.htm
-whgdata\whlstfl24.htm
-whgdata\whlstfl25.htm
-whgdata\whlstfl26.htm
-whgdata\whlstf0.htm
-whgdata\whlstf1.htm
-whgdata\whlstf2.htm
-whgdata\whlstf3.htm
-whgdata\whlstf4.htm
-whgdata\whlstf5.htm
-whgdata\whlstf6.htm
-whgdata\whlstf7.htm
-whgdata\whlstf8.htm
-whgdata\whlstf9.htm
-whgdata\whlstf10.htm
-whgdata\whlstf11.htm
-whgdata\whlstf12.htm
-whgdata\whlstf13.htm
-whgdata\whlstf14.htm
-whgdata\whlstg0.htm
-index.htm
-index_csh.htm
-index_rhc.htm
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>smesh.py_introduction</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; font-family:'Lucida Console' , monospace; }\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 +="</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
-p.WebHelpNavBar { text-align:right; }\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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
- if (window.setRelStartPage)\r
- {\r
- addTocInfo("MESH module\nIntroduction to MESH module python interface");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
- }\r
-\r
-\r
- if (window.setRelStartPage)\r
- {\r
- setRelStartPage("index.htm");\r
-\r
- autoSync(1);\r
- sendSyncInfo();\r
- sendAveInfoOut();\r
- }\r
-\r
-}\r
-else\r
- if (window.gbIE4)\r
- document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
- writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Introduction to MESH module python interface</h1>\r
-\r
-<p class="whs1">Package smesh provides \r
- a standard API for creation and edition of meshes . </p>\r
-\r
-<p class="whs1">Below you can see an example \r
- of usage of the package smesh for 3d mesh generation. </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1">Example of 3d mesh generation \r
- with NETGEN</p>\r
-\r
-<p class="whs1">from geompy import * </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
- smesh</span> </p>\r
-\r
-<p class="whs1"># Geometry </p>\r
-\r
-<p class="whs1"># an assembly of a box, \r
- a cylinder and a truncated cone meshed with tetrahedral. </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Define values </p>\r
-\r
-<p class="whs2">name = "ex21_lamp" \r
- </p>\r
-\r
-<p class="whs2">cote = 60 </p>\r
-\r
-<p class="whs2">section = 20 </p>\r
-\r
-<p class="whs2">size = 200 </p>\r
-\r
-<p class="whs2">radius_1 = 80 </p>\r
-\r
-<p class="whs2">radius_2 = 40 </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">height \r
- = 100</span> </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Build a box </p>\r
-\r
-<p class="whs2">box = MakeBox(-cote, \r
- -cote, -cote, +cote, +cote, +cote) </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Build a cylinder </p>\r
-\r
-<p class="whs2">pt1 = MakeVertex(0, \r
- 0, cote/3) </p>\r
-\r
-<p class="whs2">di1 = MakeVectorDXDYDZ(0, \r
- 0, 1) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cyl \r
- = MakeCylinder(pt1, di1, section, size)</span> </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Build a truncated cone \r
- </p>\r
-\r
-<p class="whs2">pt2 = MakeVertex(0, \r
- 0, size) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cone \r
- = MakeCone(pt2, di1, radius_1, radius_2, height)</span> </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Fuse </p>\r
-\r
-<p class="whs2">box_cyl = MakeFuse(box, \r
- cyl) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">piece \r
- = MakeFuse(box_cyl, cone)</span> </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Add in study </p>\r
-\r
-<p class="whs2">addToStudy(piece, \r
- name) </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Create a group of faces \r
- </p>\r
-\r
-<p class="whs2">group = CreateGroup(piece, \r
- ShapeType["FACE"]) </p>\r
-\r
-<p class="whs2">group_name = name \r
- + "_grp" </p>\r
-\r
-<p class="whs2">addToStudy(group, \r
- group_name) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">group.SetName(group_name)</span> \r
- </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Add faces in the group \r
- </p>\r
-\r
-<p class="whs2">faces = SubShapeAllIDs(piece, \r
- ShapeType["FACE"]) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">UnionIDs(group, \r
- faces)</span> </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Create a mesh </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Define a mesh on a geometry \r
- </p>\r
-\r
-<p class="whs2">tetra = smesh.Mesh(piece, \r
- name) </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Define 1D hypothesis \r
- </p>\r
-\r
-<p class="whs2">algo1d = tetra.Segment() \r
- </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo1d.LocalLength(10)</span> \r
- </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Define 2D hypothesis \r
- </p>\r
-\r
-<p class="whs2">algo2d = tetra.Triangle() \r
- </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo2d.LengthFromEdges()</span> \r
- </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Define 3D hypothesis \r
- </p>\r
-\r
-<p class="whs2">algo3d = tetra.Tetrahedron(smesh.NETGEN) \r
- </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo3d.MaxElementVolume(100)</span> \r
- </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Compute the mesh </p>\r
-\r
-<p class="whs2">tetra.Compute() \r
- </p>\r
-\r
-<p class="whs1"> </p>\r
-\r
-<p class="whs1"># Create a groupe of faces \r
- </p>\r
-\r
-<p class="whs2">tetra.Group(group) \r
- </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
--- /dev/null
+H1 {
+ text-align: center;
+}
+
+CAPTION {
+ font-weight: bold
+}
+
+/* Link in the top navbar */
+A.qindex {}
+
+A.qindexRef {}
+
+/* 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;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ 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;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px
+}
+
+span.keyword { color: #008000 }
+span.keywordtype { color: #604020 }
+span.keywordflow { color: #e08000 }
+span.comment { color: #800000 }
+span.preprocessor { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral { color: #008080 }
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+</head>
+<body>
+<hr style="width: 100%; height: 2px;">
+<div style="text-align: center;">Copyright © 2003-2007 CEA, EDF<br>
+</div>
+</body>
+</html>
--- /dev/null
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>$title</title>
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
+</head>
+<hr>
+<center>
+SALOME documentation central
+</center>
+<hr>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Transforming Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-h3.whs1 { margin-top:0pt; margin-bottom:0pt; }
-h4.whs2 { margin-top:0pt; margin-bottom:0pt; }
-p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }
-p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs6 { margin-top:0pt; margin-bottom:0pt; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "h3.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "h4.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nTransforming Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Transforming Meshes</h1>
-
-<h3 class="whs1">Transforming Meshes</h3>
-
-<h4 class="whs2"> </h4>
-
-<h4 class="whs2"><a name=bookmark>Translation</a></h4>
-
-<p class="whs3"> </p>
-
-<p class="whs4">import SMESH_mechanic</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">smesh
- = SMESH_mechanic.smesh </span></p>
-
-<p class="whs4">mesh = SMESH_mechanic.mesh
- </p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># define translation
- vector</p>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">point
- = smesh.PointStruct(-150., -150., 0.)</span></p>
-
-<p class="whs4">vector =smesh.DirStruct(point)
- </p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># translate a mesh</p>
-
-<p class="whs4">doCopy = 1</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">mesh.Translate([],
- vector, doCopy) </p>
-
-<p class="whs6"> </p>
-
-<h4 class="whs2"><a name=bookmark1>Rotation</a></h4>
-
-<p class="whs3"> </p>
-
-<p class="whs3">import math</p>
-
-<p class="whs3">import SMESH_mechanic</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">smesh
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs3">mesh = SMESH_mechanic.mesh </p>
-
-<p class="whs3"> </p>
-
-<p class="whs5"># define rotation axis
- and angle</p>
-
-<p class="whs3">axisXYZ = smesh.AxisStruct(0., 0., 0.,
- 5., 5., 20.)</p>
-
-<p class="whs3">angle270 = 1.5 * math.pi</p>
-
-<p class="whs3"> </p>
-
-<p class="whs5"># rotate a mesh</p>
-
-<p class="whs4">mesh.Rotate([],
- axisXYZ, angle270, 1) </p>
-
-<p class="whs6"> </p>
-
-<h4 class="whs2"><a name=bookmark2>Symmetry</a></h4>
-
-<p class="whs3"> </p>
-
-<p class="whs3">import math</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3">import SMESH_mechanic</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">smesh
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs3">mesh = SMESH_mechanic.mesh </p>
-
-<p class="whs3"> </p>
-
-<p class="whs5"># create a symmetrical
- copy of the mesh mirrored through a point</p>
-
-<p class="whs3">axis = SMESH.AxisStruct(0, 0, 0, 0, 0,
- 0)</p>
-
-<p class="whs3"> </p>
-
-<p class="whs3">mesh.Mirror([], axis, smesh.POINT, 1)
- </p>
-
-<p class="whs6"> </p>
-
-<h4 class="whs2"><a name=bookmark3>Merging
- Nodes</a></h4>
-
-<p class="whs3"> </p>
-
-<p class="whs4">import SMESH_mechanic</p>
-
-<p class="whs4">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># merge nodes</p>
-
-<p class="whs4">Tolerance = 25.0</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">GroupsOfNodes =
- mesh.FindCoincidentNodes(Tolerance)</p>
-
-<p class="whs4">mesh.MergeNodes(GroupsOfNodes)
- </p>
-
-<p class="whs6"> </p>
-
-<h4><a name=bookmark8>Merging Elements</a></h4>
-
-<p class="whs4">import salome</p>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a face to
- be meshed</p>
-
-<p class="whs4">px = geompy.MakeVertex(100.,
- 0. , 0.
- )</p>
-
-<p class="whs4">py = geompy.MakeVertex(0.
- , 100.,
- 0. )</p>
-
-<p class="whs4">pz = geompy.MakeVertex(0.
- , 0. ,
- 100.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">vxy = geompy.MakeVector(px,
- py)</p>
-
-<p class="whs4">arc = geompy.MakeArc(py,
- pz, px)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">wire = geompy.MakeWire([vxy,
- arc])</p>
-
-<p class="whs4">isPlanarFace = 1</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">face1 = geompy.MakeFace(wire,
- isPlanarFace)</p>
-
-<p class="whs4">id_face1 = geompy.addToStudy(face1,
- "Face1")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a circle to
- be an extrusion path</p>
-
-<p class="whs4">px1 = geompy.MakeVertex(
- 100., 100.,
- 0.)</p>
-
-<p class="whs4">py1 = geompy.MakeVertex(-100.,
- -100., 0.)</p>
-
-<p class="whs4">pz1 = geompy.MakeVertex(
- 0.,
- 0.,
- 50.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">circle = geompy.MakeCircleThreePnt(py1,
- pz1, px1)</p>
-
-<p class="whs4">id_circle = geompy.addToStudy(circle,
- "Path")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a 2D mesh
- on the face</p>
-
-<p class="whs4">trias = smesh.Mesh(face1,
- "Face : 2D mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo1D = trias.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(6)</p>
-
-<p class="whs4">algo2D = trias.Triangle()</p>
-
-<p class="whs4">algo2D.LengthFromEdges()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">trias.Compute()</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5"># create a path mesh</p>
-
-<p class="whs4">circlemesh = smesh.Mesh(circle,
- "Path mesh")</p>
-
-<p class="whs4">algo = circlemesh.Segment()</p>
-
-<p class="whs4">algo.NumberOfSegments(10)</p>
-
-<p class="whs4">circlemesh.Compute()</p>
-
-<p class="whs5"> </p>
-
-<p class="whs5"># extrusion of the
- mesh</p>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">trias.ExtrusionAlongPath([],
- circlemesh, circle,</span></p>
-
-<p class="whs4"> 1,
- 0, [], 0, smesh.PointStruct(0, 0, 0))</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># merge nodes</p>
-
-<p class="whs4">print "Number
- of nodes before MergeNodes:", </p>
-
-<p class="whs4">trias.NbNodes()</p>
-
-<p class="whs4">tolerance = 0.001</p>
-
-<p class="whs4">array_of_nodes_groups
- = trias.FindCoincidentNodes(tolerance)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">trias.MergeNodes(array_of_nodes_groups)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">print "Number
- of nodes after MergeNodes:", trias.NbNodes()</p>
-
-<p class="whs4">print ""</p>
-
-<p class="whs4">print "Number
- of elements before MergeEqualElements:"</p>
-
-<p class="whs4">print "Edges
- :
- ", trias.NbEdges()</p>
-
-<p class="whs4">print "Triangles
- : ",
- trias.NbTriangles()</p>
-
-<p class="whs4">print "Quadrangles:
- ", trias.NbQuadrangles()</p>
-
-<p class="whs4">print "Volumes
- :
- ", trias.NbVolumes()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># merge elements</p>
-
-<p class="whs4">trias.MergeEqualElements()</p>
-
-<p class="whs4">print "Number
- of elements after MergeEqualElements:"</p>
-
-<p class="whs4">print "Edges
- :
- ", trias.NbEdges()</p>
-
-<p class="whs4">print "Triangles
- : ",
- trias.NbTriangles()</p>
-
-<p class="whs4">print "Quadrangles:
- ", trias.NbQuadrangles()</p>
-
-<p class="whs4">print "Volumes
- :
- ", trias.NbVolumes()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">salome.sg.updateObjBrowser(1)
- </p>
-
-<p class="whs4"> </p>
-
-<h3>Sewing Meshes</h3>
-
-<h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create two faces
- of a box</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0.,
- 0., -10., 30., 20., 25.)</p>
-
-<p class="whs4">facesList1 = geompy.SubShapeAll(box1,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs4">face1 = facesList1[2]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">box2 = geompy.MakeBox(0.,
- 5., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList2 = geompy.SubShapeAll(box2,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs4">face2 = facesList2[1]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">edgesList = geompy.SubShapeAll(face2,
- geompy.ShapeType["EDGE"])</p>
-
-<p class="whs4">edge1 = edgesList[2]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">aComp = geompy.MakeCompound([face1,
- face2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp,
- "Two faces")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh on
- two faces</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp,
- "Two faces : quadrangle mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(9)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo_local = mesh.Segment(edge1)</p>
-
-<p class="whs4">algo_local.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># sew border to side</p>
-
-<p class="whs5"># FirstNodeIDOnFreeBorder,
- SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,</p>
-
-<p class="whs5"># FirstNodeIDOnSide,
- LastNodeIDOnSide,</p>
-
-<p class="whs5"># CreatePolygons, CreatePolyedrs</p>
-
-<p class="whs4">mesh.SewBorderToSide(5,
- 45, 6, 113, 109, 0, 0) </p>
-
-<h4><a name=bookmark5>Sew Conform Free Borders</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create two faces
- of the box</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0.,
- 0., -10., 20., 20., 15.)</p>
-
-<p class="whs4">facesList1 = geompy.SubShapeAll(box1,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs4">face1 = facesList1[2]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">box2 = geompy.MakeBox(0.,
- 5., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList2 = geompy.SubShapeAll(box2,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs4">face2 = facesList2[1]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">edgesList = geompy.SubShapeAll(face2,
- geompy.ShapeType["EDGE"])</p>
-
-<p class="whs4">edge1 = edgesList[2]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">aComp = geompy.MakeCompound([face1,
- face2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp,
- "Two faces")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh on
- two faces</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp,
- "Two faces : quadrangle mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(9)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo_local = mesh.Segment(edge1)</p>
-
-<p class="whs4">algo_local.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># sew conform free
- borders</p>
-
-<p class="whs5"># FirstNodeID1, SecondNodeID1,
- LastNodeID1, FirstNodeID2, SecondNodeID2</p>
-
-<p class="whs4">mesh.SewConformFreeBorders(5,
- 45, 6, 3, 24) </p>
-
-<h4><a name=bookmark6>Sew Free Borders</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create two faces
- of the box</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0.,
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList1 = geompy.SubShapeAll(box1,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs4">face1 = facesList1[2]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">box2 = geompy.MakeBox(0.,
- 5., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList2 = geompy.SubShapeAll(box2,
- geompy.ShapeType["FACE"])</p>
-
-<p class="whs4">face2 = facesList2[1]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">edgesList = geompy.SubShapeAll(face2,
- geompy.ShapeType["EDGE"])</p>
-
-<p class="whs4">edge1 = edgesList[2]</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">aComp = geompy.MakeCompound([face1,
- face2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp,
- "Two faces")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh on
- two faces</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp,
- "Two faces : quadrangle mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo_local = mesh.Segment(edge1)</p>
-
-<p class="whs4">algo_local.Arithmetic1D(1,
- 4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># sew free borders</p>
-
-<p class="whs5"># FirstNodeID1, SecondNodeID1,
- LastNodeID1,</p>
-
-<p class="whs5"># FirstNodeID2, SecondNodeID2,
- LastNodeID2, CreatePolygons, CreatePolyedrs</p>
-
-<p class="whs6">mesh.SewFreeBorders(6,
- 21, 5, 1, 12, 3, 0, 0) </p>
-
-<h4><a name=bookmark7>Sew Side Elements</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create two boxes</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0.,
- 0., 0.,
- 10., 10., 10.)</p>
-
-<p class="whs4">box2 = geompy.MakeBox(0.,
- 15., 0., 20., 25., 10.)</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">EdgesList = geompy.SubShapeAll(box2,
- geompy.ShapeType["EDGE"])</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">aComp = geompy.MakeCompound([box1,
- box2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp,
- "Two boxes")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># create a mesh on
- two boxes</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp,
- "Two faces : quadrangle mesh")</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(2)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">algo_local = mesh.Segment(EdgesList[8])</p>
-
-<p class="whs4">algo_local.NumberOfSegments(4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4"> </p>
-
-<p class="whs5"># sew side elements</p>
-
-<p class="whs5"># IDsOfSide1Elements,
- IDsOfSide2Elements,</p>
-
-<p class="whs5"># NodeID1OfSide1ToMerge,
- NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge</p>
-
-<p class="whs4">mesh.SewSideElements([69,
- 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58) </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Transparency</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{ document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; border-style:none; width:354px; height:173px; float:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nViewing meshes\nTransparency");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Transparency</h1>
-
-<p class="whs1"><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs2"></p>
-
-<p> </p>
-
-<p>Using this slider you can set the transparency of shading. Absolutely
- transparent shading will be invisible. By default it is absolutely opaque.
- </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Viewing Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nTUI Scripts\nViewing Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1>Viewing Meshes</h1>
-
-<h3>Viewing Mesh Infos</h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
- geompy</span></p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBox(0., 0., 0., 20.,
- 20., 20.)</p>
-
-<p class="whs1">geompy.addToStudy(box, "box")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># create a mesh</p>
-
-<p class="whs1">tetra = smesh.Mesh(box, "MeshBox")</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">algo1D = tetra.Segment()</p>
-
-<p class="whs1">algo1D.NumberOfSegments(3)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">algo2D = tetra.Triangle()</p>
-
-<p class="whs1">algo2D.MaxElementArea(10.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs1">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs1">algo3D.MaxElementVolume(900.)</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># compute the mesh</p>
-
-<p class="whs1">tetra.Compute()</p>
-
-<p class="whs1"> </p>
-
-<p class="whs2"># print information
- about the mesh</p>
-
-<p class="whs1">print "Information about mesh:"
- </p>
-
-<p class="whs1">print "Number of nodes :
- ", tetra.NbNodes()</p>
-
-<p class="whs1">print "Number of edges :
- ", tetra.NbEdges()</p>
-
-<p class="whs1">print "Number of faces :
- ", tetra.NbFaces()</p>
-
-<p class="whs1">print " triangles
- :
- ", tetra.NbTriangles()</p>
-
-<p class="whs1">print " quadrangles
- : ", tetra.NbQuadrangles()</p>
-
-<p class="whs1">print " polygons
- :
- ", tetra.NbPolygons()</p>
-
-<p class="whs1">print "Number of volumes :
- ", tetra.NbVolumes()</p>
-
-<p class="whs1">print " tetrahedrons:
- ", tetra.NbTetras()</p>
-
-<p class="whs1">print " hexahedrons
- : ", tetra.NbHexas()</p>
-
-<p class="whs1">print " prisms
- :
- ", tetra.NbPrisms()</p>
-
-<p class="whs1">print " pyramids
- :
- ", tetra.NbPyramids()</p>
-
-<p class="whs1">print " polyhedrons
- : ", tetra.NbPolyhedrons() </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Volume</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-h1.whs1 { font-size:24pt; }
-img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs3 { margin-left:40px; }
-img_whs4 { border:none; width:164px; height:199px; border-style:none; }
-img_whs5 { border:none; width:23px; height:25px; border-style:none; }
-p.whs6 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
- var strNSS = "<style type='text/css'>";
- strNSS += "p.whs6 {margin-left:1pt; }";
- strNSS +="</style>";
- document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
- if (innerWidth != origWidth || innerHeight != origHeight)
- location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
-}
-onerror = null;
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- addTocInfo("MESH module\nQuality controls\nVolume");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
- }
-
-
- if (window.setRelStartPage)
- {
- setRelStartPage("index.htm");
-
- autoSync(1);
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(4);
-//-->
-</script>
-<h1 class="whs1">Volume</h1>
-
-<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
- criterion reflects the volume of meshes of a 3D object. </p>
-
-<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>
-
-<p class=TODO
- style="font-family: 'Arial Black', sans-serif; font-style: italic;">To
- apply the Volume quality criterion to your mesh:</p>
-
-<p class="whs3">1. Display your mesh in the viewer.</p>
-
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls
- > Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your
- mesh will be displayed in the viewer with its elements colored according
- to the applied mesh quality control criterion:</p>
-
-<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span>
- a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span
- style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation.
- </p>
-
-<p> </p>
-
-<p> </p>
-
-<p> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<html>
-<script language="javascript1.2" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-if(gbIE4||gbNav61)
-{
- document.write("<body></body>");
-}
-else
-{
- document.write("<frameset rows=\"100%,*\"><frame name=\"data_frm\" src=\"about:blank\"><frame name=\"dumb_frm\" src=\"about:blank\"></frameset>");
-}
-var gCSHFileName="whcshdata.htm";
-
-var gHomePage="index.htm";
-var gaProj=new Array();
-gaProj[0]=new Object();
-gaProj[0].sProjPath=_replaceSlash(_getPath(document.location.href));
-gaProj[0].nLoadState=0;
-var gCurrent=0;
-
-var gsTopicURL="";
-var gnCurProj=0;
-var gnCommand=-1;
-var CMD_SHOWTOC=1;
-var CMD_SHOWINDEX=2;
-var CMD_SHOWSEARCH=3;
-var CMD_SHOWGLOSSARY=4;
-var CMD_SHOWNONE=0;
-
-var RHWO_LOCATION=0x01; /*need location bar?*/
-var RHWO_MENUBAR=0x02; /*need menubar?*/
-var RHWO_RESIZABLE=0x04; /*resizable window?*/
-var RHWO_TOOLBAR=0x08; /*need toolbar?*/
-var RHWO_STATUS=0x10; /*need statusbar?*/
-var RHWO_SCROLLBARS=0x20; /*need scrollbars?*/
-
-var gsStr="";
-var gnId=-1;
-var gsWindow="";
-var gsJava="false";
-var gbUseStr=false;
-var gbURLReady=false;
-var goWnd=new Object();
-goWnd.sName="whCshDefault";
-goWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
-goWnd.sBLeft="49%";
-goWnd.sBTop="0";
-goWnd.sBWidth="49%";
-goWnd.sBHeight="49%";
-goWnd.nPanes=1;
-var goFullWnd=new Object();
-goFullWnd.sName="whDefault";
-goFullWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
-goFullWnd.sBLeft="20%";
-goFullWnd.sBTop="0";
-goFullWnd.sBWidth="79%";
-goFullWnd.sBHeight="79%";
-goFullWnd.nPanes=2;
-
-var goNewWnd=null;
-var gbLoadWnd=false;
-var gsURL="";
-
-function showCSH(sParam)
-{
- //id=
- //str=
- //url=
- //cmd=
- //with the format #<a=xxx>>b=xxx>>c=xxx...
- parseParam(sParam);
- SwitchURL();
-}
-
-function IsWndReady()
-{
- if(gaProj[0].nLoadState==0)
- {
- var sCshFile=_getFullPath(gaProj[0].sProjPath,gCSHFileName);
- gaProj[0].nLoadState=1;
- setTimeout("loadFail("+0+");",3000);
- loadDataCsh(sCshFile);
- gbLoadWnd=true;
- return false;
- }
- else
- return true;
-}
-
-function SwitchURL()
-{
- if(gbURLReady)
- {
- var sURL="";
- var oWnd=null;
- if(gsTopicURL)
- {
- sURL=_getPath(document.location.href)+gHomePage+"#"+gsTopicURL;
- oWnd=goWnd;
- }
- else
- {
- if(gnCommand!=-1)
- sURL=_getPath(document.location.href)+gHomePage+"#>>cmd="+gnCommand;
- else
- sURL=_getPath(document.location.href)+gHomePage;
- oWnd=goFullWnd;
- }
- if(gsWindow)
- {
- if(!IsWndReady())
- return false;
- if(gaProj[gnCurProj].aWnd)
- {
- var aWnd=gaProj[gnCurProj].aWnd;
- var bFound=false;
- for(var i=0;i<aWnd.length;i++)
- {
- if(aWnd[i].sName.toLowerCase()==gsWindow.toLowerCase())
- {
- oWnd=aWnd[i];
- bFound=true;
- break;
- }
- }
- if(!bFound&&gnCurProj!=0)
- {
- var aWnd=gaProj[0].aWnd;
- for(var j=0;j<aWnd.length;j++)
- {
- if(aWnd[j].sName.toLowerCase()==gsWindow.toLowerCase())
- {
- oWnd=aWnd[j];
- break;
- }
- }
- }
- }
- }
-
- if(sURL&&oWnd)
- {
- strURLOpt="";
- if(oWnd.sCaption)
- strURLOpt+=">>cap="+oWnd.sCaption;
- if(oWnd.nPanes==1)
- strURLOpt+=">>pan="+oWnd.nPanes;
- else if(oWnd.nPanes==2)
- {
- strURLOpt+=">>pan="+oWnd.nPanes;
- if(oWnd.nPOptions)
- strURLOpt+=">>pot="+oWnd.nPOptions;
- if(oWnd.sPButtons)
- strURLOpt+=">>pbs="+oWnd.sPButtons;
- if(oWnd.sPDefBtn)
- strURLOpt+=">>pdb="+oWnd.sPDefBtn;
- }
- if(strURLOpt)
- {
- if(sURL.indexOf("#")==-1)
- sURL+="#";
- sURL+=strURLOpt;
- }
- if(gsJava=="false")
- {
- var strOpt=getBrowserOptionString(oWnd);
- var sNewName=convertWindowName(oWnd.sName);
- if(gbNav4)
- {
- if (gbNav6)
- {
- gsURL = sURL;
- goNewWnd=window.open("about:blank",sNewName,strOpt);
- setTimeout("postWindowNSOpen();",100);
- }
- else
- {
- window.open("about:blank",sNewName,strOpt);
- var oNewWnd=window.open(sURL,sNewName);
- window.close();
- oNewWnd.focus();
- }
- }
- else
- {
- if(gbIE5)
- {
- window.open("about:blank",sNewName,strOpt);
- goNewWnd=window.open(sURL,sNewName);
- }
- else
- {
- gsURL = sURL; // IE4 had hard time to handle bookmark.
- goNewWnd=window.open("about:blank",sNewName,strOpt);
- }
- setTimeout("postWindowOpen();",100);
- }
- }
- else
- document.location=sURL;
- }
- }
-}
-
-function convertWindowName(strName)
-{
- var strNewName = strName;
- var strResultName = "";
- var re=new RegExp("_","g");
- strNewName = strName.replace(re,"__");
- for (var i=0;i<strNewName.length;i++)
- if (!(strNewName[i] == '_' ||
- (strNewName[i] <= '9' && strNewName[i] >= '0') ||
- (strNewName[i] <= 'z' && strNewName[i] >= 'a') ||
- (strNewName[i] <= 'Z' && strNewName[i] >= 'A')))
- {
- strResultName += "_" + strNewName.charCodeAt(i);
- }
- else
- strResultName += strNewName[i];
- return strResultName;
-}
-
-function postWindowNSOpen()
-{
- if(goNewWnd)
- {
- if (gsURL)
- goNewWnd.document.location.href=gsURL;
- window.close();
- goNewWnd.focus();
- }
-}
-
-function postWindowOpen()
-{
- if(goNewWnd)
- {
- if (gsURL&&!gbIE5&&gbIE4)
- goNewWnd.document.location.href=gsURL;
- goNewWnd.focus();
- }
-}
-
-function parseParam(sParam)
-{
- if(sParam)
- {
- var nBPos=0;
- do
- {
- var nPos=sParam.indexOf(">>",nBPos);
- if(nPos!=-1)
- {
- if(nPos>0)
- {
- var sPart=sParam.substring(nBPos,nPos);
- parsePart(sPart);
- }
- nBPos=nPos+2;
- }
- else
- {
- var sPart=sParam.substring(nBPos);
- parsePart(sPart);
- break;
- }
- }while(nBPos<sParam.length);
- }
-}
-
-function parsePart(sPart)
-{
- if(sPart.toLowerCase().indexOf("id=")==0)
- {
- fetchURLById(sPart.substring(3));
- gbURLReady=false;
- }
- else if(sPart.toLowerCase().indexOf("str=")==0)
- {
- fetchURLByStr(sPart.substring(4));
- gbURLReady=false;
- }
- else if(sPart.toLowerCase().indexOf("url=")==0)
- {
- gsTopicURL=sPart.substring(4);
- gbURLReady=true;
- }
- else if(sPart.toLowerCase().indexOf("cmd=")==0)
- {
- var sCmd=sPart.substring(4);
- if(sCmd.toLowerCase()=="toc")
- {
- gnCommand=CMD_SHOWTOC;
- }
- else if(sCmd.toLowerCase()=="idx")
- {
- gnCommand=CMD_SHOWINDEX;
- }
- else if(sCmd.toLowerCase()=="fts")
- {
- gnCommand=CMD_SHOWSEARCH;
- }
- else if(sCmd.toLowerCase()=="glo")
- {
- gnCommand=CMD_SHOWGLOSSARY;
- }
- else if(sCmd.toLowerCase()=="none")
- {
- gnCommand=CMD_SHOWNONE;
- }
- gbURLReady=true;
- }
- else if(sPart.toLowerCase().indexOf("wnd=")==0)
- {
- gsWindow=_browserStringToText(sPart.substring(4));
- }
- else if(sPart.toLowerCase().indexOf("java=")==0)
- {
- gsJava=sPart.substring(5);
- }
-}
-
-function fetchURLById(sId)
-{
- var nId=parseInt(sId);
- gsTopicURL="";
- fetchURL("",nId,false);
-}
-
-function fetchURLByStr(sStr)
-{
- gsTopicURL="";
- fetchURL(sStr,0,true);
-}
-
-function fetchURL(sStr,nId,bUseStr)
-{
- var bNeedLoad=false;
- var bFound=false;
- for(var i=0;i<gaProj.length;i++)
- {
- if(gaProj[i].nLoadState==3)
- {
- if(gaProj[i].aCsh)
- {
- for(var j=0;j<gaProj[i].aCsh.length;j++)
- {
- var sTopicURL="";
- if(bUseStr)
- {
- if(gaProj[i].aCsh[j].strAliasId.toLowerCase()==sStr.toLowerCase())
- sTopicURL=gaProj[i].aCsh[j].strUrl;
- }
- else
- {
- if(gaProj[i].aCsh[j].nTopicNum==nId)
- sTopicURL=gaProj[i].aCsh[j].strUrl;
- }
- if(sTopicURL)
- {
- if(i!=0)
- {
- gnCurProj=i;
- if(gaProj[i].sProjPath.indexOf(gaProj[0].sProjPath)==0)
- {
- var sRelPath=gaProj[i].sProjPath.substring(gaProj[0].sProjPath.length);
- gsTopicURL=sRelPath+sTopicURL;
- }
- else
- gsTopicURL=gaProj[i].sProjPath+sTopicURL;
- }
- else
- gsTopicURL=sTopicURL;
- bFound=true;
- break;
- }
- }
- }
-
- }
- else if(gaProj[i].nLoadState==0)
- {
- gsStr=sStr;
- gnId=nId;
- gbUseStr=bUseStr;
- var sCshFile=_getFullPath(gaProj[i].sProjPath,gCSHFileName);
- gaProj[i].nLoadState=1;
- setTimeout("loadFail("+i+");",3000);
- loadDataCsh(sCshFile);
- bNeedLoad=true;
- }
- if(bFound||bNeedLoad)
- break;
- }
- if(!bNeedLoad)
- {
- gbURLReady=true;
- SwitchURL();
- }
-}
-
-function loadDataCsh(sFile)
-{
- if(gbIE4||gbNav61)
- loadData(sFile);
- else
- {
- window.frames[0].location=sFile;
- }
-}
-
-function loadFail(nProj)
-{
- if(gaProj[nProj].nLoadState==1)
- {
- gaProj[nProj].nLoadState=2;
- if(!gbLoadWnd)
- fetchURL(gsStr,gnId,gbUseStr);
- else
- SwitchURL();
- }
-}
-
-function putCshData(strProj,aCsh,aWnd,aRmtProj)
-{
- if(strProj)
- {
- strProj=_replaceSlash(strProj);
- if(strProj.lastIndexOf("/")!=strProj.length-1)
- strProj+="/";
- for(var i=0;i<gaProj.length;i++)
- {
- if(gaProj[i].sProjPath)
- {
- if(isSamePath(gaProj[i].sProjPath,strProj))
- {
- gaProj[i].nLoadState=3;
- gaProj[i].aCsh=aCsh;
- gaProj[i].aWnd=aWnd;
- break;
- }
- }
- }
- if(aRmtProj&&aRmtProj.length)
- {
- for(var j=0;j<aRmtProj.length;j++)
- {
- var strRPath=_getFullPath(strProj,aRmtProj[j]);
- var bFound=false;
- for (var k=0;k<gaProj.length;k++)
- {
- if(gaProj[k].sProjPath)
- {
- if(isSamePath(gaProj[k].sProjPath,strRPath))
- {
- bFound=true;
- break;
- }
- }
- }
- if(!bFound)
- {
- var len=gaProj.length;
- gaProj[len]=new Object();
- gaProj[len].sProjPath=strRPath;
- gaProj[len].nLoadState=0;
- }
- }
- }
- if(!gbLoadWnd)
- fetchURL(gsStr,gnId,gbUseStr);
- else
- SwitchURL();
-
- }
-}
-
-function isSamePath(strPath1,strPath2)
-{
- return strPath1.toLowerCase()==strPath2.toLowerCase();
-}
-
-function getRelHomePage(strLocation)
-{
- var strCurPPath=_getPath(strLocation);
- var strOriPPath=_getPath(getHomePage());
- var strRelPath=_getRelativeFileName(strOriPPath,strCurPPath);
- var strURL=getHomePage()+"#"+strRelPath;
- return strURL;
-}
-
-function getHomePage()
-{
- var strHomePage;
- var strTmp=location.toString();
- var nPos=strTmp.indexOf("#");
- if(nPos!=-1)
- {
- strHomePage=strTmp.substring(0,nPos);
- }
- else
- {
- strHomePage=strTmp;
- }
- return strHomePage;
-}
-
-function getBrowserOptionString(oWnd)
-{
- var strOpts="";
- if(oWnd.bUseDefault)
- return strOpts;
- if(oWnd.nBOptions&RHWO_LOCATION)
- strOpts+="location=yes";
- else
- strOpts+="location=no";
- if(oWnd.nBOptions&RHWO_TOOLBAR)
- strOpts+=",toolbar=yes";
- else
- strOpts+=",toolbar=no";
- if(oWnd.nBOptions&RHWO_MENUBAR)
- strOpts+=",menubar=yes";
- else
- strOpts+=",menubar=no";
- if(oWnd.nBOptions&RHWO_STATUS)
- strOpts+=",status=yes";
- else
- strOpts+=",status=no";
- if(oWnd.nBOptions&RHWO_SCROLLBARS)
- strOpts+=",scrollbars=yes";
- else
- strOpts+=",scrollbars=no";
- if(oWnd.nBOptions&RHWO_RESIZABLE)
- strOpts+=",resizable=yes";
- else
- strOpts+=",resizable=no";
- if(oWnd.sBTop)
- {
- var nTop=getSValue(oWnd.sBTop,screen.height);
- strOpts+=",top="+nTop;
- strOpts+=",screenY="+nTop;
- }
- if(oWnd.sBLeft)
- {
- var nLeft=getSValue(oWnd.sBLeft,screen.width);
- strOpts+=",left="+nLeft;
- strOpts+=",screenX="+nLeft;
- }
- if(oWnd.sBWidth)
- {
- var nWidth=getSValue(oWnd.sBWidth,screen.width);
- strOpts+=",width="+nWidth;
- strOpts+=",outerWidth="+nWidth;
- }
- if(oWnd.sBHeight)
- {
- var nHeight=getSValue(oWnd.sBHeight,screen.height);
- strOpts+=",height="+nHeight;
- strOpts+=",outerHeight="+nHeight;
- }
- return strOpts;
-}
-
-function getSValue(sValue,nLength)
-{
- var nValue=0;
- var nPos=sValue.indexOf("%");
- if(nPos!=-1)
- {
- if(nPos>0)
- {
- var nPart=parseInt(sValue.substring(0,nPos));
- nValue=nLength*nPart/100;
- }
- }
- else
- nValue=parseInt(sValue);
- return nValue;
-}
-
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
- if(document.location.hash.length>0)
- {
- showCSH(document.location.hash.substring(1));
- }
-
- if(gsJava=="false")
- window.moveTo(screen.width,screen.height);
-}
-//-->
-</script>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="javascript1.2" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="JavaScript">
-<!--
-var gaCsh=new Array();
-
-var gaWindow=new Array();
-
-var gaRmtProj=new Array();
-
-var gsProjPath=_getPath(document.location.href);
-
-function CshEntityItem(strAliasId,nTopicNum,strUrl)
-{
- this.strAliasId=strAliasId;
- this.nTopicNum=nTopicNum;
- this.strUrl=strUrl;
-}
-
-function CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
-{
- this.sName=sWName;
- this.bUseDefault=bBUseDefault;
- if(!this.bUseDefault)
- {
- this.nBOptions=nWBOptions;
- this.sBLeft=sWBLeft;
- this.sBTop=sWBTop;
- this.sBWidth=sWBWidth;
- this.sBHeight=sWBHeight;
- }
- this.sCaption=sWCaption;
- this.nPanes=nWPanes;
- if(this.nPanes==2)
- {
- this.nPOptions=nWPOptions;
- this.sPButtons=sWPButtons;
- this.sPDefBtn=sWPDefBtn;
- }
-}
-
-function addRemoteProject(sPath)
-{
- if(sPath.length!=0)
- {
- if(sPath.lastIndexOf("/")!=sPath.length-1)
- sPath+="/";
- gaRmtProj[gaRmtProj.length]=sPath;
- }
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n,strAliasId,nTopicNum,strUrl)
-{
- gaCsh[n]=new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-function addWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
-{
- gaWindow[gaWindow.length]=new CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn);
-}
-
-
-
-
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
- if(parent&&parent!=this&&parent.putCshData)
- {
- parent.putCshData(gsProjPath,gaCsh,gaWindow,gaRmtProj);
- }
-}
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Navigator Pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whphost.js"></script>
-<script language="javascript1.2">
-<!--
-var gsNavReDirect="whgdata/whnvp30.htm";
-var gbReDirectThis=false;
- var bPreferXML = false;
- var strProjectFileXML = "whproj.xml";
- var strProjectFileHTM = "whproj.htm";
-if(window.gbWhPHost)
-{
- addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);
- addPane("toc","whtdhtml.htm");
- addPane("fts","whfdhtml.htm");
- addPane("glo","whgdhtml.htm");
- setShowPane("toc");
-
-}
-else
- document.location.reload();
-
-if (window.gbNav6)
-{
- var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
- SendMessage(oMsg);
-}
-
-//-->
-</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-<html>
-<head>
-<title>Navigation Pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-</head>
-<frameset rows="30, *" border="0" frameborder="0">
- <frame name="navtabs" title="tab selection frame" src="whd_tabs.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
- <frame name="navpane" title="navigation frame" src="whd_dpns.htm" ></frame>
-</frameset>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>navigation pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsInitPane="toc";
-var gsCurrentPane="";
-var gbLoading = "unknown";
-var gbTryTime = 0;
-var gbMaxTryTime = 6;
-var gbPassPhase0 = 0;
-var gbretried = 0;
-var gbmaxretry = 3;
-var gbretrytime = new Array();
-
-var origWidth = 0;
-var origHeight = 0;
-
-gbretrytime[0]= 5000;
-gbretrytime[1]= 30000;
-gbretrytime[2]= 60000;
-
-function addPane(sName, sFile)
-{
-}
-
-function setShowPane(sName)
-{
- gsInitPane=sName;
-}
-
- addPane("toc","whtdhtml.htm");
- addPane("fts","whfdhtml.htm");
- addPane("glo","whgdhtml.htm");
- setShowPane("toc");
-
-
-function window_unload()
-{
- UnRegisterListener2(this, WH_MSG_SHOWTOC);
- UnRegisterListener2(this, WH_MSG_SHOWIDX);
- UnRegisterListener2(this, WH_MSG_SHOWFTS);
- UnRegisterListener2(this, WH_MSG_SHOWGLO);
- UnRegisterListener2(this, WH_MSG_SYNCTOC);
- UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
- UnRegisterListener2(this, WH_MSG_GETPANEINFO);
-}
-
-function window_OnLoad()
-{
- var bHidePane=false;
- var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
- if (SendMessage(oMsg))
- {
- if(oMsg.oParam>0)
- {
- if(oMsg.oParam==1)
- gsInitPane="toc";
- else if(oMsg.oParam==2)
- gsInitPane="idx";
- else if(oMsg.oParam==3)
- gsInitPane="fts";
- else if(oMsg.oParam==4)
- gsInitPane="glo";
- }
- else if(oMsg.oParam==0)
- {
- bHidePane=true;
- }
- }
- if (bHidePane)
- {
- oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)
- SendMessage(oMsg);
- }
- else if (gsInitPane == "toc")
- {
- oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
- SendMessage(oMsg);
- }
- else if (gsInitPane=="idx")
- {
- oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
- SendMessage(oMsg);
- }
- else if (gsInitPane=="fts")
- {
- oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
- SendMessage(oMsg);
- }
- else if (gsInitPane=="glo")
- {
- oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
- SendMessage(oMsg);
- }
-}
-
-function CheckLoadingPhase0()
-{
- if (!gbPassPhase0) {
- setTimeout("CheckLoadingPhase0()", 1000);
- document.applets[0];
- gbPassPhase0 = 1;
- }
- else {
- CheckLoadingPhase1();
- }
-}
-
-function CheckLoadingPhase1()
-{
- if (gbNav4) {
- if ("unknown" == gbLoading && document.readystate < 4) {
- setTimeout("CheckLoadingPhase1()", 1000);
- }
- else if ("unknown" == gbLoading) {
- CheckLoadingPhase2();
- }
- }
-}
-
-function CheckLoadingPhase2()
-{
- if (gbNav4) {
- gbTryTime ++;
- if ("unknown" == gbLoading) {
- if (gbTryTime <= gbMaxTryTime )
- setTimeout("CheckLoadingPhase2()", 1000);
- else {
- if (gnVerMinor != 4.60) {
- alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");
- }
- }
- }
- }
-}
-
-function CheckAppletLoaded()
-{
- if (typeof(document.webhelp) == "undefined")
- {
- document.location.reload();
- if (gbretried < gbmaxretry)
- {
- gbretried ++;
- setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
- }
- }
-}
-
-function reDo()
-{
- if (innerWidth != origWidth || innerHeight != origHeight)
- {
- //reloaded applet if nessary
- gbretried = 0;
-
- if (gnVerMinor == 4.60)
- {
- //reload the applet again.
- document.location.reload();
- gbretried ++;
- }
- setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
- }
-}
-
-function onSendMessage(oMsg)
-{
- if (oMsg)
- {
- var nMsgId = oMsg.nMessageId;
- var WebHelpApplet = null;
- if (gbNav4)
- {
- WebHelpApplet = document.applets["WebHelp"];
- if (!WebHelpApplet.Command)
- document.location="whgdata/whnvp30.htm";
- }
- else
- WebHelpApplet = WebHelp;
-
- if(nMsgId==WH_MSG_GETPANEINFO)
- {
- oMsg.oParam=gsCurrentPane;
- return false;
- }
- else if (gbLoading!="unknown"||gbNav6)
- {
- if (nMsgId == WH_MSG_SHOWTOC)
- {
- gsCurrentPane="toc";
- WebHelpApplet .Command("Contents", null);
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if (nMsgId == WH_MSG_SHOWIDX)
- {
- gsCurrentPane="idx";
- WebHelpApplet .Command("Index", null);
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if (nMsgId == WH_MSG_SHOWFTS)
- {
- gsCurrentPane="fts";
- WebHelpApplet .Command("Search", null);
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if (nMsgId == WH_MSG_SHOWGLO)
- {
- gsCurrentPane="glo";
- WebHelpApplet .Command("Glossary", null);
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if (nMsgId == WH_MSG_SYNCTOC)
- {
- gsCurrentPane="toc";
- var oTopicParam = oMsg.oParam;
- if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
- {
- var sPPath = _browserStringToText(oTopicParam.sPPath);
- var sParam = "";
- for (var i = 0; i < oTopicParam.aPaths.length; i ++)
- {
- sParam += oTopicParam.aPaths[i] + "\r\r";
- }
- WebHelpApplet.Command("SyncToc", sPPath, sParam);
- }
- }
- else if(nMsgId==WH_MSG_SEARCHTHIS)
- {
- gsCurrentPane="fts";
- WebHelpApplet .Command("Search", oMsg.oParam);
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- }
- }
- return true;
-}
-
-function getInitTocInfo()
-{
- // send message ask for the first time sync toc info.
- var oParam = new Object();
- oParam.oTocInfo = null;
- var oMsg = new whMessage(WH_MSG_GETTOCPATHS, this, 1, oParam);
- if (SendMessage(oMsg ))
- {
- var oTopicParam = oMsg.oParam.oTocInfo;
- if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
- {
- var sPPath = _browserStringToText(oTopicParam.sPPath);
- var sParam = "";
- for (var i = 0; i < oTopicParam.aPaths.length; i ++)
- {
- sParam += oTopicParam.aPaths[i] + "\r\r";
- }
- var WebHelpApplet;
- if (gbNav4)
- WebHelpApplet = document.applets["WebHelp"];
- else
- WebHelpApplet = WebHelp;
- WebHelpApplet.Command("SyncToc", sPPath, sParam);
- }
- }
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
- RegisterListener2(this, WH_MSG_SHOWTOC);
- RegisterListener2(this, WH_MSG_SHOWIDX);
- RegisterListener2(this, WH_MSG_SHOWFTS);
- RegisterListener2(this, WH_MSG_SHOWGLO);
- RegisterListener2(this, WH_MSG_SYNCTOC);
- RegisterListener2(this, WH_MSG_SEARCHTHIS);
- RegisterListener2(this, WH_MSG_GETPANEINFO);
-
- window.onunload = window_unload;
- window.onload=window_OnLoad;
- window.onerror = null;
- var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-
- if (gbNav4 && !gbNav6 && gbWindows) {
- setTimeout("CheckLoadingPhase0()", 1000);
- }
-
- if (gbNav4)
- {
- origWidth = innerWidth;
- origHeight = innerHeight;
- onresize = reDo;
- }
-}
-else
- document.location.reload();
-
-if (window.gbNav6)
-{
- var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
- SendMessage(oMsg);
-}
-
-//-->
-</script>
-</head>
-<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">
-<applet code=WebHelp.class name=WebHelp archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>
-<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>
-<PARAM name=Frame value=bsscright>
-<PARAM name=cabbase value=webhelp.cab>
-</applet>
-</body>
-</html>
+++ /dev/null
-<HTML>
-<HEAD>
-<TITLE>WebHelp Tabs Frame in Navigation Pane</TITLE>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<!-- WebHelp version 5.10 -->
-</HEAD>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgColor="#c0c0c0"
-var gsBgImage="";
-var gnCurPane=0;
-var gsFirstPane="";
-var goTocFont=null;
-var goIdxFont=null;
-var goFtsFont=null;
-var goGloFont=null;
-var gPane=new Array();
-var gShowFirst=0;
-var gnTabType=0;
-
-function window_unload()
-{
- UnRegisterListener2(this,WH_MSG_SHOWTOC);
- UnRegisterListener2(this,WH_MSG_SHOWIDX);
- UnRegisterListener2(this,WH_MSG_SHOWFTS);
- UnRegisterListener2(this,WH_MSG_SHOWGLO);
-}
-
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Toc") goTocFont=vFont;
- else if(sType=="Idx") goIdxFont=vFont;
- else if(sType=="Fts") goFtsFont=vFont;
- else if(sType=="Glo") goGloFont=vFont;
-}
-
-function TocWriteClassStyle()
-{
- var sStyle="<STYLE TYPE='text/css'>";
- sStyle+=".TextTabToc {"+getFontStyle(goTocFont)+"}";
- sStyle+=".TextTabIdx {"+getFontStyle(goIdxFont)+"}";
- sStyle+=".TextTabFts {"+getFontStyle(goFtsFont)+"}";
- sStyle+=".TextTabGlo {"+getFontStyle(goGloFont)+"}";
- sStyle+="A:hover {text-decoration:underline;}";
- sStyle+="</STYLE>";
- document.write(sStyle);
-}
-
-function setBackgroundcolor(sBgColor)
-{
- if(sBgColor!=null&&sBgColor.length>0)
- gsBgColor=sBgColor;
-}
-
-function setBackground(sBgImage)
-{
- if(sBgImage!=null&&sBgImage.length>0)
- gsBgImage=sBgImage;
-}
-
-function selectToc()
-{
- var oMessage=new whMessage(WH_MSG_SHOWTOC,this,1,null);
- SendMessage(oMessage);
-}
-
-function selectIdx()
-{
- var oMessage=new whMessage(WH_MSG_SHOWIDX,this,1,null);
- SendMessage(oMessage);
-}
-function selectFts()
-{
- var oMessage=new whMessage(WH_MSG_SHOWFTS,this,1,null);
- SendMessage(oMessage);
-}
-
-function selectGlo()
-{
- var oMessage=new whMessage(WH_MSG_SHOWGLO,this,1,null);
- SendMessage(oMessage);
-}
-
-
-function onSendMessage(oMsg)
-{
- if(oMsg)
- {
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_SHOWTOC)
- {
- setTimeout("showTabByName(\"toc\");",1);
- }
- else if(nMsgId==WH_MSG_SHOWIDX)
- {
- setTimeout("showTabByName(\"idx\");",1);
- }
- else if(nMsgId==WH_MSG_SHOWFTS)
- {
- setTimeout("showTabByName(\"fts\");",1);
- }
- else if(nMsgId==WH_MSG_SHOWGLO)
- {
- setTimeout("showTabByName(\"glo\");",1);
- }
- }
- return true;
-}
-
-function showTabByName(sTabName)
-{
- for(var i=0;i<gPane.length;i++)
- {
- if(gPane[i]==sTabName)
- {
- showTab(i);
- break;
- }
- }
-}
-
-function showTab(n)
-{
- gnCurPane=n;
- if(gnTabType==0)
- {
- if(n<gPane.length)
- {
- if(document.images["TocTab"]&&document.images["TocTab"]!=null){
- if(gPane[n]=="toc")
- document.images["TocTab"].src=getBtnImage("toc",1);
- else
- document.images["TocTab"].src=getBtnImage("toc",0);
- }
- if(document.images["IndexTab"]&&document.images["IndexTab"]!=null){
- if(gPane[n]=="idx")
- document.images["IndexTab"].src=getBtnImage("idx",1);
- else
- document.images["IndexTab"].src=getBtnImage("idx",0);
- }
- if(document.images["FtsTab"]&&document.images["FtsTab"]!=null){
- if(gPane[n]=="fts")
- document.images["FtsTab"].src=getBtnImage("fts",1);
- else
- document.images["FtsTab"].src=getBtnImage("fts",0);
- }
- if(document.images["GloTab"]&&document.images["GloTab"]!=null){
- if(gPane[n]=="glo")
- document.images["GloTab"].src=getBtnImage("glo",1);
- else
- document.images["GloTab"].src=getBtnImage("glo",0);
- }
- }
- }
- else if(gnTabType==1)
- {
- }
- else if(gnTabType==2)
- {
- if(n<gPane.length)
- {
- if(document.images["tabSelection"]!=null)
- document.images["tabSelection"].src=getMapImage(gPane[n]);
- }
- }
-}
-
-function addPane(sName)
-{
- gPane[gPane.length]=sName;
-}
-
-function setShowPane(sName)
-{
- if(gsFirstPane!="")
- sName=gsFirstPane;
- for(var i=0;i<gPane.length;i++)
- {
- if(gPane[i]==sName)
- gShowFirst=i;
- }
-}
-
-function selectDefaultTab()
-{
- showTab(gShowFirst);
- if(document.body)
- {
- if(gsBgImage&&gsBgImage.length>0)
- {
- document.body.background=gsBgImage;
- }
- if(gsBgColor&&gsBgColor.length>0)
- {
- document.body.bgColor=gsBgColor;
- }
- }
-}
-
-function getTabsHTML()
-{
- var sHTML="";
- for(var i=0;i<gPane.length;i++)
- {
- if(gnTabType==0)
- sHTML+=getTabHTML(gPane[i]);
- else if(gnTabType==1)
- {
- if(sHTML.length>0)
- {
- sHTML+=getSeparator();
- }
- sHTML+=getTabHTMLText(gPane[i]);
- }
-
- }
- return sHTML;
-}
-
-function getSeparator()
-{
- var sSep="";
-
- return sSep;
-}
-
-function getTabHTML(sTabName)
-{
- if (sTabName == "toc")
- return "<a title=\"Contents\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\" onmouseover=\"mouseOverToc();\" onmouseout=\"mouseOutToc();\"><img name=\"TocTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
- else if (sTabName =="idx")
- return "<a title=\"Index\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\" onmouseover=\"mouseOverIdx();\" onmouseout=\"mouseOutIdx();\"><img name=\"IndexTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
- else if (sTabName == "fts")
- return "<a title=\"Search\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\" onmouseover=\"mouseOverFts();\" onmouseout=\"mouseOutFts();\"><img name=\"FtsTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
- else if (sTabName == "glo")
- return "<a title=\"Glossary\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\"onmouseover=\"mouseOverGlo();\" onmouseout=\"mouseOutGlo();\"><img name=\"GloTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
- return "";
-}
-
-function mouseOverToc()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "toc")
- {
- sImg = getBtnImage("toc", 3);
- }
- else
- {
- sImg = getBtnImage("toc", 2);
- }
- if (sImg.length > 0)
- document.images["TocTab"].src = sImg;
-}
-
-function mouseOverIdx()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "idx")
- {
- sImg = getBtnImage("idx", 3);
- }
- else
- {
- sImg = getBtnImage("idx", 2);
- }
- if (sImg.length > 0)
- document.images["IndexTab"].src = sImg;
-}
-
-function mouseOverFts()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "fts")
- {
- sImg = getBtnImage("fts", 3);
- }
- else
- {
- sImg = getBtnImage("fts", 2);
- }
- if (sImg.length > 0)
- document.images["FtsTab"].src = sImg;
-}
-
-function mouseOverGlo()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "glo")
- {
- sImg = getBtnImage("glo", 3);
- }
- else
- {
- sImg = getBtnImage("glo", 2);
- }
- if (sImg.length > 0)
- document.images["GloTab"].src = sImg;
-}
-
-function mouseOutToc()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "toc")
- {
- sImg = getBtnImage("toc", 1);
- }
- else
- {
- sImg = getBtnImage("toc", 0);
- }
- if (sImg.length > 0)
- document.images["TocTab"].src = sImg;
-}
-
-function mouseOutIdx()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "idx")
- {
- sImg = getBtnImage("idx", 1);
- }
- else
- {
- sImg = getBtnImage("idx", 0);
- }
- if (sImg.length > 0)
- document.images["IndexTab"].src = sImg;
-}
-
-function mouseOutFts()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "fts")
- {
- sImg = getBtnImage("fts", 1);
- }
- else
- {
- sImg = getBtnImage("fts", 0);
- }
- if (sImg.length > 0)
- document.images["FtsTab"].src = sImg;
-}
-
-function mouseOutGlo()
-{
- var sImg = "";
- if (gPane[gnCurPane] == "glo")
- {
- sImg = getBtnImage("glo", 1);
- }
- else
- {
- sImg = getBtnImage("glo", 0);
- }
- if (sImg.length > 0)
- document.images["GloTab"].src = sImg;
-}
-
-function getTabHTMLText(sTabName)
-{
- if (sTabName == "toc")
- return "<a class=\"TextTabToc\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">Contents</a> ";
- else if (sTabName =="idx")
- return "<a class=\"TextTabIdx\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">Index</a> ";
- else if (sTabName == "fts")
- return "<a class=\"TextTabFts\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">Search</a> ";
- else if (sTabName == "glo")
- return "<a class=\"TextTabGlo\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">Glossary</a> ";
- return "";
-}
-
-function getImageMap()
-{
- var sHTML = "<map name=\"tabSelectionMap\">";
- for (var i = 0; i < gPane.length; i ++)
- {
- sHTML += getMapArea(gPane[i]);
- }
- sHTML += "</map>";
- return sHTML;
-}
-
-function getMapArea(sTabName)
-{
- if (sTabName == "toc")
- return "<area title=\"Contents\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">";
- else if (sTabName =="idx")
- return "<area title=\"Index\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">";
- else if (sTabName == "fts")
- return "<area title=\"Search\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">";
- else if (sTabName == "glo")
- return "<area title=\"Glossary\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">";
- return "";
-}
-
-function getBtnImage(sTabName, nStatus)
-{
- if (sTabName == "toc")
- {
- if (nStatus == 0)
- return "whd_tab2.gif";
- else if (nStatus == 1)
- return "whd_tab1.gif";
- else if (nStatus == 2)
- return "";
- else if (nStatus == 3)
- return "";
- }
- else if (sTabName =="idx")
- {
- if (nStatus == 0)
- return "whd_tab4.gif";
- else if (nStatus == 1)
- return "whd_tab3.gif";
- else if (nStatus == 2)
- return "";
- else if (nStatus == 3)
- return "";
- }
- else if (sTabName == "fts")
- {
- if (nStatus == 0)
- return "whd_tab6.gif";
- else if (nStatus == 1)
- return "whd_tab5.gif";
- else if (nStatus == 2)
- return "";
- else if (nStatus == 3)
- return "";
- }
- else if (sTabName == "glo")
- {
- if (nStatus == 0)
- return "whd_tab8.gif";
- else if (nStatus == 1)
- return "whd_tab7.gif";
- else if (nStatus == 2)
- return "";
- else if (nStatus == 3)
- return "";
- }
- return "";
-}
-
-function getMapImage(sTabName)
-{
- if (sTabName == "toc")
- return "";
- else if (sTabName =="idx")
- return "";
- else if (sTabName == "fts")
- return "";
- else if (sTabName == "glo")
- return "";
- return "";
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
- window.onload = selectDefaultTab;
- RegisterListener2(this, WH_MSG_SHOWTOC);
- RegisterListener2(this, WH_MSG_SHOWIDX);
- RegisterListener2(this, WH_MSG_SHOWFTS);
- RegisterListener2(this, WH_MSG_SHOWGLO);
- window.onunload = window_unload;
- goTocFont=new whFont("Arial","9pt","#000000","normal","normal","none");
- goIdxFont=new whFont("Arial","9pt","#000000","normal","normal","none");
- goFtsFont=new whFont("Arial","9pt","#000000","normal","normal","none");
- goGloFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-
- if (navigator.currentNavPen)
- gsFirstPane = navigator.currentNavPen;
-
- setBackgroundcolor("");
- setBackground("whd_tab0.gif");
-
-
-
-
- addPane("toc","whtdhtml.htm");
- addPane("fts","whfdhtml.htm");
- addPane("glo","whgdhtml.htm");
- setShowPane("toc");
-
-
- gnTabType = 0; // 0 button. // 1 text. // 2 image mapping.
- TocWriteClassStyle();
- var sHTML = "<body scroll=\"no\" bgcolor=\"#c0c0c0\" background=\"whd_tab0.gif\" style=\"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0\">";
- if (gPane.length > 0)
- {
- if (gnTabType == 0 || gnTabType == 1)
- {
- sHTML += "<table width=\"100%\">";
- sHTML += "<tr>";
- sHTML += "<td>";
- sHTML += "<nobr>";
- sHTML += getTabsHTML();
- sHTML += "</nobr></td></tr>";
- sHTML += " <tr><td height=\"2\"></td></tr>";
- sHTML += "</table>";
- }
- else if (gnTabType == 2)
- {
- sHTML += getImageMap();
- sHTML +="<img name=\"tabSelection\" src=\"" + getMapImage(gPane[0]) + "\" x-maintain-ratio=\"true\" usemap=\"#tabSelectionMap\"";
- if (gbIE)
- sHTML +=" style=\"border: none; width:px; height:px; float: none;\"";
- sHTML +=" width=\"\" height=\"\" border=\"0\">";
- }
- }
- sHTML += "</body>";
- document.write(sHTML);
-}
-else
- document.location.reload();
-
-if (window.gbNav6)
-{
- var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
- SendMessage(oMsg);
-}
-//-->
-</script>
-</HTML>
\ No newline at end of file
+++ /dev/null
-<?xml version='1.0' encoding='ISO-8859-1' ?>
-<topictemplate>
- <topic type="normal">
- <add tag="head" pos="endbefore" >
- <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.gbWhTopic)
-{
- if (window.setRelStartPage)
- {
- ";
- OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
- OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
- OutputInTopicNavBarDataButtons("addButton(\"%s\",%s, \"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",%d,%d);\r\n");
- "
- }
-
-
- if (window.setRelStartPage)
- {
- ";
- OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
- OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");
- "
- autoSync(";WH_USER_OPTIONS.autosync_toc;");
- sendSyncInfo();
- sendAveInfoOut();
- }
-
-}
-else
- if (window.gbIE4)
- document.location.reload();
-//-->
-</script>
-"]]>
- </add>
- <add tag="body" pos="beginafter">
- <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");
-//-->
-</script>"]]>
- </add>
- <add tag="body" pos="endbefore">
- <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.writeIntopicBar)
- writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");
-//-->
-</script>";
-OutputInTopicNavBarDataWebSearch.form();]]>
- </add>
- </topic>
- <topic type="frameset">
- <add tag="head" pos="endbefore" >
- <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.setRelStartPage)
-{
-";
- OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
- OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
- OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
-"
-if (window.autoSync)
- autoSync(1);
-}
-//-->
-</script>
-"]]>
- </add>
- </topic>
-</topictemplate>
+++ /dev/null
-<html>
-<head>
-<title>Search Result</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whfhost.js"></script>
-<script language="javascript1.2">
-<!--
-if(window.gbWhFHost)
-{
-
-
- setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
- setFont("Error", "Arial","9pt","#000000","normal","normal","none");
- setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
- setActiveBgColor("#cccccc");
- setMargin("0pt");
- setIndent("9pt");
- FtsWriteClassStyle();
-}
-else
- document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
-</body>
-</html>
-
+++ /dev/null
-<html>
-<head>
-<title>Search Frame</TITLE>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script LANGUAGE="javascript1.2">
-<!--
-var gbIndexLayerInit = false;
-var strWrite="";
-if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
-{
- if (gbMac)
- strWrite="<FRAMESET ROWS='45,100%' framespacing=0 frameborder=1>";
- else
- strWrite="<FRAMESET ROWS='60,100%' framespacing=0 frameborder=1>";
- strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";
- strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";
- strWrite +="</FRAMESET>";
- document.write(strWrite);
-}
-else
- document.location.reload();
-//-->
-</script>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Search Form</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<style>
-<!--
-body {margin:0;}
--->
-</style>
-<body bgcolor="#c0c0c0">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whform.js"></script>
-<script language="javascript1.2">
-<!--
-var gstrInput = "";
-function ftsLookup(bCR)
-{
- if (bCR)
- {
- var strInput = document.FtsInputForm.keywordField.value.toUpperCase();
- if (strInput != "") {
- var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);
- if (!SendMessage(oMsg))
- {
- gstrInput = strInput;
- }
- else
- gstrInput = "";
- }
-
- if (gbMac) {
- document.FtsInputForm.keywordField.focus();
- }
- }
- return;
-}
-
-function beforeInit()
-{
- var oParam = new Object();
- oParam.sValue = "";
- var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);
- if (SendMessage(oMsg))
- {
- if (oParam.sValue != "" && oParam.sValue != "- Search -")
- {
- document.FtsInputForm.keywordField.value = oParam.sValue;
- gfunLookUp(true);
- }
- }
- init();
-}
-
-function window_unload()
-{
- UnRegisterListener2(this, WH_MSG_SHOWTOC);
- UnRegisterListener2(this, WH_MSG_SHOWIDX);
- UnRegisterListener2(this, WH_MSG_SHOWFTS);
- UnRegisterListener2(this, WH_MSG_SHOWGLO);
- UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
- UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);
-}
-
-function onSendMessage(oMsg)
-{
- if (oMsg.nMessageId == WH_MSG_SHOWFTS)
- {
- document.FtsInputForm.keywordField.focus();
- }
- else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||
- oMsg.nMessageId == WH_MSG_SHOWTOC ||
- oMsg.nMessageId == WH_MSG_SHOWGLO)
- {
- document.FtsInputForm.keywordField.blur();
- }
- else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)
- {
- if (oMsg.oParam != "- Search -")
- {
- document.FtsInputForm.keywordField.value = oMsg.oParam;
- gfunLookUp(true);
- }
- }
- else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)
- {
- if (gstrInput)
- {
- oMsg.oParam = gstrInput;
- gstrInput = "";
- return false;
- }
- }
- return true;
-}
-
-if (window.gbWhForm)
-{
- RegisterListener2(this, WH_MSG_SHOWTOC);
- RegisterListener2(this, WH_MSG_SHOWIDX);
- RegisterListener2(this, WH_MSG_SHOWFTS);
- RegisterListener2(this, WH_MSG_SHOWGLO);
- RegisterListener2(this, WH_MSG_SEARCHTHIS);
- RegisterListener2(this, WH_MSG_BACKUPSEARCH);
- gfunLookUp = ftsLookup;
- gfunInit = null;
- gstrFormName = "FtsInputForm"
- gsTitle = "Type in the word(s) to search for:";
- gsTitle = "Type in the word(s) to search for:";
- setGoImage1("");
-
-
-
-
-
-
- setGoText("Go");
- setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-
-
- document.write(getFormHTML());
- writeFormStyle();
- window.onload = beforeInit;
- window.onunload=window_unload;
-}
-else
- document.location.reload();
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-// WebHelp 5.10.003
-var gsSK2=null;
-var gsSK=null;
-var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";
-var gnCLF=0;
-var gsHelpCannotSearch="Cannot search for that phrase.";
-var gsNoTopics="No Topics Found.";
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading data, please wait...";
-var gsSearchMsg="Searching...";
-var gsResultDivID="ResultDiv";
-var gaaFCD=new Array();
-var gaaFTCD=new Array();
-var goCF=null;
-var goCTF=null;
-var gaTI=null;
-var gnCurrentOp=0;
-var gbNot=false;
-var gbReady=false;
-var gnLoadFts=1;
-var gnCacheLimits=5;
-var gaCCD=new Array();
-var gbXML=false;
-var gaData=new Array();
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var gsMargin="0pt";
-var gsIndent="0pt";
-var gsCheckKey=null;
-var gnIndexNum=0;
-var gaFtsContentsCon=null;
-var gaTopicCheckInfo=null;
-var gnTopicCheck=0;
-var goFont=null;
-var goErrFont=null;
-var goHoverFont=null;
-var gsABgColor="#cccccc";
-var gbWhFHost=false;
-var gbFirst=false;
-
-function setBackground(sBgImage)
-{
- gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
- gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Normal")
- goFont=vFont;
- else if(sType=="Error")
- goErrFont=vFont;
- else if(sType=="Hover")
- goHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
- gsABgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
- gsMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
- gsIndent=sIndent;
-}
-
-function updateCache(oCF)
-{
- var len=gaCCD.length;
- if(len<gnCacheLimits*gnCLF)
- gaCCD[len]=oCF;
- else{
- gaCCD[0].aTopics=null;
- gaCCD[0].aFtsKeys=null;
- removeItemFromArray(gaCCD,0);
- gaCCD[len-1]=oCF;
- }
-}
-
-function addFtsInfo(sPPath,sDPath,sFtsFile)
-{
- gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);
-}
-
-function onLoadXMLError()
-{
- if(gnLoadFts==1)
- {
- var aFCD=new Array();
- var aFTCD=new Array();
- ftsReady(aFCD,aFTCD);
- }
- else if(gnLoadFts==3)
- {
- var aTopics=new Array();
- putFtsTData(aTopics);
- }
- else if(gnLoadFts==2)
- {
- putFtsWData(aFtsContents);
- var aFtsContents=new Array();
- }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
- if(gnLoadFts==1)
- {
- var node=xmlDoc.lastChild;
- if(node)
- {
- var oChild=node.firstChild;
- var aFCD=new Array();
- var aFTCD=new Array();
- while(oChild)
- {
- if(oChild.nodeName=="chunkinfo")
- {
- var sURL=oChild.getAttribute("url");
- var sFirst=oChild.getAttribute("first");
- var sLast=oChild.getAttribute("last");
- if(sURL&&sFirst&&sLast)
- {
- item=new Object();
- item.sStartKey=sFirst;
- item.sEndKey=sLast;
- item.sFileName=sURL;
- aFCD[aFCD.length]=item;
- }
- }
- else if(oChild.nodeName=="tchunkinfo")
- {
- var sURL=oChild.getAttribute("url");
- var nB=parseInt(oChild.getAttribute("first"));
- var nE=parseInt(oChild.getAttribute("last"));
- if(sURL&&sFirst&&sLast)
- {
- item=new Object();
- item.nBegin=nB;
- item.nEnd=nE;
- item.sFileName=sURL;
- aFTCD[aFTCD.length]=item;
- }
-
- }
- oChild=oChild.nextSibling;
- }
- ftsReady(aFCD,aFTCD);
- }
- }
- else if(gnLoadFts==3)
- {
- var node=xmlDoc.lastChild;
- if(node)
- {
- var oChild=node.firstChild;
- var aTopics=new Array();
- while(oChild)
- {
- if(oChild.nodeName=="topic")
- {
- var name=oChild.getAttribute("name");
- var sURL=oChild.getAttribute("url");
- if(name&&name.length>0&&sURL)
- {
- var topic=new Object();
- topic.sTopicTitle=name;
- topic.sTopicURL=sURL;
- aTopics[aTopics.length]=topic;
- }
- }
- oChild=oChild.nextSibling;
- }
- putFtsTData(aTopics);
- }
- }
- else if(gnLoadFts==2)
- {
- var node=xmlDoc.lastChild;
- if(node)
- {
- var oChild=node.firstChild;
- var aFtsContents=new Array();
- while(oChild)
- {
- if(oChild.nodeName=="key")
- {
- var name=oChild.getAttribute("name");
- if(name&&name.length>0)
- {
- var item=new Object();
- item.sItemName=name;
- aFtsContents[aFtsContents.length]=item;
- var oChildChild=oChild.firstChild;
- while(oChildChild)
- {
- if(oChildChild.nodeName=="#text")
- {
- var sIDs=oChildChild.nodeValue;
- if(sIDs)
- {
- var nBPos=0;
- do
- {
- var nPos=sIDs.indexOf(",",nBPos);
- var sID=null;
- if(nPos!=-1)
- sID=sIDs.substring(nBPos,nPos);
- else
- sID=sIDs.substring(nBPos);
-
- if(sID)
- {
- var id=parseInt(sID);
- if(!isNaN(id))
- {
- if(!item.aTopics)
- item.aTopics=new Array();
- item.aTopics[item.aTopics.length]=id;
- }
- }
- nBPos=nPos+1;
- }while(nBPos!=0&&nBPos<sIDs.length);
- }
- }
- oChildChild=oChildChild.nextSibling;
- }
- }
- }
- oChild=oChild.nextSibling;
- }
- putFtsWData(aFtsContents);
- }
- }
-}
-
-function ftsInfo(sPPath,sDPath,sFtsFile)
-{
- this.sPPath=sPPath;
- this.sDPath=sDPath;
- this.sFtsFile=sFtsFile;
-}
-
-function window_OnLoad()
-{
- if(gsBgImage&&gsBgImage.length>0)
- {
- document.body.background=gsBgImage;
- }
- if(gsBgColor&&gsBgColor.length>0)
- {
- document.body.bgColor=gsBgColor;
- }
- writeResultDiv();
- loadFts();
- var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
- SendMessage(oMsg);
-}
-
-function writeResultDiv()
-{
- var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";
- document.body.insertAdjacentHTML("beforeEnd",sHTML);
-}
-
-function loadFts()
-{
- if(!gbReady)
- {
- var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
- if(SendMessage(oResMsg)&&oResMsg.oParam)
- {
- gbReady=true;
- var oProj=oResMsg.oParam;
- var aProj=oProj.aProj;
- gbXML=oProj.bXML;
- if(aProj.length>0)
- {
- var sLangId=aProj[0].sLangId;
- for(var i=0;i<aProj.length;i++)
- {
- if(aProj[i].sFts&&aProj[i].sLangId==sLangId)
- {
- addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);
- }
- }
- }
- loadFD();
-
- }
- }
-}
-
-function loadFD()
-{
- if(gnCLF<gaData.length)
- {
- gnLoadFts=1;
- loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);
- }
- else
- {
- var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);
- if (SendMessage(oMsg))
- {
- if (oMsg.oParam)
- {
- gsSK=oMsg.oParam.toLowerCase();
- findFTSKey();
- }
- }
- RegisterListener2(this, WH_MSG_SEARCHFTSKEY);
- }
-}
-
-function loadData2(sFile)
-{
- if(gbXML)
- loadDataXML(sFile);
- else
- loadData(sFile);
-}
-
-function findFTSKey()
-{
- gaTI=new Array();
- gnCurrentOp=1;
- gbNot=false;
- displayMsg(gsSearchMsg);
- if(gsSK!="")
- {
- gbFirst=true;
- findOneKey();
- }
-}
-
-function findOneKey()
-{
- if(gsSK && gsSK!="")
- {
- var sInput=gsSK;
- var sCW="";
- var nS=-1;
- var nSep=-1;
- for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){
- var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));
- if((nFound!=-1)&&((nS==-1)||(nFound<nS))){
- nS=nFound;
- nSep=nChar;
- }
- }
- if(nS==-1){
- sCW=sInput;
- sInput="";
- }else{
- sCW=sInput.substring(0,nS);
- sInput=sInput.substring(nS+1);
- }
-
- gsSK=sInput;
-
- if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){
- gnCurrentOp=0;
- gbNot=false;
- }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){
- gnCurrentOp=1;
- gbNot=false;
- }else if((sCW=="not")||
- ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){
- gbNot=!gbNot;
- }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){
- var sCurrentStem=GetStem(sCW);
- gsCW=sCurrentStem;
- ftsFindKeyword();
- return;
- }
- findOneKey();
- }
- else{
- displayTopics();
- checkAgain();
- }
-}
-
-function checkAgain()
-{
- gsCheckKey = "";
- gnIndexNum = 0;
- gsSK=gsSK2;
- gsSK2=null;
- if(gsSK!=null)
- setTimeout("findFTSKey();",1);
-}
-
-function displayTopics()
-{
- var sHTML="";
- var sLine="";
- for(var i=0;i<gaTI.length;i++){
- sLine+="<dt><nobr><a href='"+gaTI[i].sTopicURL+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";
- if(i>>4<<4==i)
- {
- sHTML+=sLine;
- sLine="";
- }
- }
- if(sLine.length>0)
- sHTML+=sLine;
-
- if(sHTML.length==0)
- sHTML="<P>"+gsNoTopics+"</P>"
- else
- sHTML="<dl>"+sHTML+"</dl>";
-
- var resultDiv=getElement(gsResultDivID);
- if(resultDiv)
- resultDiv.innerHTML=sHTML;
-}
-
-function displayMsg(sErrorMsg)
-{
- var sHTML="<P>"+sErrorMsg+"</P>";
-
- var resultDiv=getElement(gsResultDivID);
- if(resultDiv)
- resultDiv.innerHTML=sHTML;
-}
-
-function ftsFindKeyword()
-{
- var sKey=gsCW;
- var bNeedLoad=false;
- var aFtsContentsCon=null;
- var s=0;
- if(sKey==null) return;
- if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)
- {
- aFtsContentsCon=new Array();
- gnCheck=0;
- gsCheckKey=sKey;
- gnTopicCheck=0;
- gaTopicCheckInfo=null;
- }
- else{
- s=gnIndexNum;
- aFtsContentsCon=gaFtsContentsCon;
- }
- for(var i=gnCheck;i<gaaFCD.length;i++)
- {
- var oCF=getChunkedFts(i,sKey);
- if(oCF)
- {
- if(!oCF.aFtsKeys&&oCF.sFileName!=null)
- {
- bNeedLoad=true;
- oCF.nProjId=i;
- goCF=oCF;
- gnIndexNum=s;
- gnCheck=i;
- gaFtsContentsCon=aFtsContentsCon;
- gnLoadFts=2;
- beginLoading();
- loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);
- break;
- }
- else{
- aFtsContentsCon[s++]=oCF;
- }
- }
- }
- if(!bNeedLoad)
- {
- var aTI=gaTopicCheckInfo;
- for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)
- {
- var aTIPart=getTopics(aFtsContentsCon[m],sKey);
- if(aTIPart==null)
- {
- gnCheck=gaaFCD.length;
- gnTopicCheck=m;
- gaTopicCheckInfo=aTI;
- gaFtsContentsCon=aFtsContentsCon;
- return;
- }
- if(m==0)
- aTI=aTIPart;
- else
- aTI=mergeTopics(aTI,aTIPart);
- }
- if(mergewithPreviousResult(aTI))
- {
- gbFirst=false;
- findOneKey();
- }
- else
- checkAgain();
- }
-}
-
-function mergewithPreviousResult(aTI)
-{
- if(aTI!=null&&aTI.length!=0)
- {
- var nNumTopics=aTI.length;
- if(gnCurrentOp==0||gbFirst){
- if(gbNot){
- displayMsg(gsHelpCannotSearch);
- return false;
- }else{
- var aLS,aSS;
- if(gaTI.length>=aTI.length)
- {
- aLS=gaTI;
- aSS=aTI;
- }
- else
- {
- aLS=aTI;
- aSS=gaTI;
- }
- var s=0;
- for(var i=0;i<aSS.length;i++)
- {
- var bAlreadyThere=false;
- for(var j=s;j<aLS.length;j++)
- {
- if(aSS[i].equalTo(aLS[j]))
- {
- bAlreadyThere=true;
- s=j;
- break;
- }
- }
- if(!bAlreadyThere)
- {
- insertTopic(aLS,aSS[i]);
- }
- }
- gaTI=aLS;
- }
- }else if(gnCurrentOp==1){
- if(gbNot){
- var s=0;
- for(var i=0;i<aTI.length;i++)
- {
- for(var j=s;j<gaTI.length;j++)
- {
- if(aTI[i].equalTo(gaTI[j]))
- {
- removeItemFromArray(gaTI,j);
- s=j;
- break;
- }
- }
- }
- }else{
- var s=0;
- for(var i=0;i<gaTI.length;i++)
- {
- var bFound=false;
- for(var j=s;j<aTI.length;j++)
- {
- if(gaTI[i].equalTo(aTI[j]))
- {
- bFound=true;
- s=j;
- }
- }
- if(!bFound)
- {
- removeItemFromArray(gaTI,i);
- i--;
- }
- }
- }
- }
- }else{
- if((gnCurrentOp==1)&&(!gbNot)){
- gaTI.length=0;
- }else if((gnCurrentOp==0)&&(gbNot)){
- displayMsg(gsHelpCannotSearch);
- return false;
- }
- }
- return true;
-}
-
-function insertTopic(aTI,oTI)
-{
- var nB=0;
- var nE=aTI.length-1;
- if(nE>=0)
- {
- var nM;
- var bFound=false;
- do{
- nM=(nB+nE)>>1;
- if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)
- nE=nM-1;
- else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
- nB=nM+1;
- else
- {
- bFound=true;
- break;
- }
- }while(nB<=nE);
- if(bFound)
- insertItemIntoArray(aTI,nM,oTI);
- else
- {
- if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
- insertItemIntoArray(aTI,nM+1,oTI);
- else
- insertItemIntoArray(aTI,nM,oTI);
- }
- }
- else
- aTI[0]=oTI;
-}
-
-function mergeTopics(aTI1,aTI2)
-{
- var i1=0;
- var i2=0;
- var len1=aTI1.length;
- var len2=aTI2.length;
- var aTopicNew=new Array();
- var i=0;
- while(i1<len1||i2<len2)
- {
- if(i1<len1&&i2<len2)
- {
- if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)
- aTopicNew[i++]=aTI1[i1++];
- else
- aTopicNew[i++]=aTI2[i2++];
- }
- else if(i1<len1)
- aTopicNew[i++]=aTI1[i1++];
- else if(i2<len2)
- aTopicNew[i++]=aTI2[i2++];
- }
- return aTopicNew;
-}
-
-function getTopics(oCF,sKey)
-{
- var aTIPart=new Array();
- if(oCF&&oCF.aFtsKeys)
- {
- var keys=oCF.aFtsKeys;
- var nB=0;
- var nE=keys.length-1;
- var nM=-1;
- var bFound=false;
- do{
- nM=(nB+nE)>>1;
- if(compare(keys[nM].sItemName,sKey)>0)
- nE=nM-1;
- else if(compare(keys[nM].sItemName,sKey)<0)
- nB=nM+1;
- else{
- bFound=true;
- break;
- }
- }while(nB<=nE);
- if(bFound)
- {
- if(keys[nM].aTopics)
- {
- for(var i=0;i<keys[nM].aTopics.length;i++)
- {
- var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);
- if(oTC.aTopics)
- {
- aTIPart[aTIPart.length]=
- new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,
- gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);
- }
- else{
- goCTF=oTC;
- gnLoadFts=3;
- beginLoading();
- loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);
- return null;
- }
- }
- }
- }
- }
- return aTIPart;
-}
-
-function getTopicChunk(aFTCD,nTopicId)
-{
- if(aFTCD&&aFTCD.length)
- {
- var nB=0;
- var nE=aFTCD.length-1;
- var nM=-1;
- var bFound=false;
- do{
- nM=(nB+nE)>>1;
- if(aFTCD[nM].nBegin>nTopicId)
- nE=nM-1;
- else if(aFTCD[nM].nEnd<nTopicId)
- nB=nM+1;
- else{
- bFound=true;
- break;
- }
- }while(nB<=nE);
- if(bFound)
- return aFTCD[nM];
- }
- return null;
-}
-
-function endLoading()
-{
- var oDiv=getElement(gsLoadingDivID);
- if(oDiv)
- oDiv.style.visibility="hidden";
-}
-
-function beginLoading()
-{
- var oDiv=getElement(gsLoadingDivID);
- if(!oDiv)
- {
- document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());
- oDiv=getElement(gsLoadingDivID);
- }
-
- if(oDiv)
- {
- oDiv.style.top=document.body.scrollTop;
- oDiv.style.visibility="visible";
- }
-}
-
-function writeLoadingDiv(nIIdx)
-{
- return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-function topicInfo(sTopicTitle,sTopicURL)
-{
- this.sTopicTitle=sTopicTitle;
- this.sTopicURL=sTopicURL;
- this.equalTo=function(oTI)
- {
- return ((this.sTopicTitle==oTI.sTopicTitle)&&
- (this.sTopicURL==oTI.sTopicURL));
- }
-}
-
-function getChunkedFts(nIndex,sKey)
-{
- var oCF=null;
- if(nIndex<gaaFCD.length)
- {
- var len=gaaFCD[nIndex].length;
- if(len>0)
- {
- var nB=0;
- var nE=len-1;
- var bFound=false;
- do{
- var nM=(nB+nE)>>1;
- if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)
- {
- nB=nM+1;
- }
- else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)
- {
- nE=nM-1;
- }
- else{
- bFound=true;
- break;
- }
- }while(nE>=nB);
- if(bFound)
- oCF=gaaFCD[nIndex][nM];
- }
- }
- return oCF;
-}
-
-function ftsReady(aFCD,aFTCD)
-{
- endLoading();
- gaaFTCD[gnCLF]=aFTCD;
- gaaFCD[gnCLF++]=aFCD;
- setTimeout("loadFD();",1);
-}
-
-function putFtsTData(aTopics)
-{
- endLoading();
- var oCTF=goCTF;
- if(oCTF)
- {
- oCTF.aTopics=aTopics;
- setTimeout("ftsFindKeyword();",1);
- }
-}
-
-function putFtsWData(aFtsContents)
-{
- endLoading();
- var oCF=goCF;
- if(oCF)
- {
- updateCache(oCF);
- oCF.aFtsKeys=aFtsContents;
- setTimeout("ftsFindKeyword();",1);
- }
-}
-
-function IsStopWord(sCW,aFtsStopArray)
-{
- var nStopArrayLen=aFtsStopArray.length;
- var nB=0;
- var nE=nStopArrayLen-1;
- var nM=0;
- var bFound=false;
- var sStopWord="";
- while(nB<=nE){
- nM=(nB+nE);
- nM>>=1;
- sStopWord=aFtsStopArray[nM];
- if(compare(sCW,sStopWord)>0){
- nB=(nB==nM)?nM+1:nM;
- }else{
- if(compare(sCW,sStopWord)<0){
- nE=(nE==nM)?nM-1:nM;
- }else{
- bFound=true;
- break;
- }
- }
- }
- return bFound;
-}
-
-function GetStem(szWord)
-{
- if(gaFtsStem==null||gaFtsStem.length==0)return szWord;
- var aStems=gaFtsStem;
-
- var nStemPos=0;
- var csStem="";
- for(var iStem=0;iStem<aStems.length;iStem++){
-
- if(aStems[iStem].length>=szWord.length-1) continue;
- nStemPos=szWord.lastIndexOf(aStems[iStem]);
- if(nStemPos>0){
- var cssub=szWord.substring(nStemPos);
- if(cssub==aStems[iStem]){
- csStem=szWord;
- if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){
- csStem=csStem.substring(0,nStemPos-1);
- }else{
- csStem=csStem.substring(0,nStemPos);
- }
- return csStem;
- }
- }
- }
- return szWord;
-}
-
-function FtsWriteClassStyle()
-{
- var sStyle="<STYLE TYPE='text/css'>\n";
- if (gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
- sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
- sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:active {background-color:"+gsABgColor+";}\n";
- sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
- sStyle+="</STYLE>";
- document.write(sStyle);
-}
-
-function window_Unload()
-{
- UnRegisterListener2(this,WH_MSG_PROJECTREADY);
- UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);
-}
-
-
-function onSendMessage(oMsg)
-{
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_SEARCHFTSKEY)
- {
- if(oMsg.oParam)
- {
- if(gsSK==null||gsSK=="")
- {
- gsSK=oMsg.oParam.toLowerCase();
- findFTSKey();
- }
- else
- gsSK2=oMsg.oParam.toLowerCase();
- }
- }
- else if(nMsgId==WH_MSG_PROJECTREADY)
- {
- loadFts();
- }
- return true;
-}
-
-if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)
-{
- goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
- goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");
- goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
- window.onload=window_OnLoad;
- window.onbeforeunload=window_BUnload;
- window.onunload=window_Unload;
- RegisterListener2(this,WH_MSG_PROJECTREADY);
- gbWhFHost=true;
-}
-else
- document.location.reload();
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.001
-var gfunLookUp;
-var gbInputEnable;
-var gfunInit;
-var gstrFormName= "";
-var gbWithButton = false;
-var gsTitle="";
-var gsOverImage = "";
-var gsOutImage = "";
-var gsClickImage = "";
-var gsText = "";
-var gsBgColor = "#c0c0c0";
-var gsBgImage = "";
-var gbInImage = 0;
-var gbInputEnable = 0;
-
-var goTitleFont=null;
-var goInputFont=null;
-var goNormalFont=null;
-var goHoverFont=null;
-var gnType=-1;
-var gbWhForm=false;
-
-function setBackground(sBgImage)
-{
- if (sBgImage != null && sBgImage.length > 0)
- gsBgImage = sBgImage;
-
- if (gsBgImage && gsBgImage .length > 0)
- {
- document.body.background = gsBgImage ;
- }
-}
-
-function setBackgroundcolor(sBgColor)
-{
- if (sBgColor != null && sBgColor.length > 0)
- gsBgColor = sBgColor;
-
- if (gsBgColor&& gsBgColor.length > 0)
- {
- document.body.bgColor = gsBgColor;
- }
-}
-
-function setBtnType(sType)
-{
- if (sType == "image")
- {
- gnType = 0;
- }
- else if (sType == "text")
- {
- gnType = 1;
- }
-}
-
-function setGoImage1(sImage1)
-{
- gsOutImage = sImage1;
- if (gsOutImage && gsOutImage.length > 0)
- gbWithButton = true;
-}
-
-function setGoImage2(sImage2)
-{
- gsOverImage = sImage2;
- if (gsOverImage && gsOverImage.length > 0)
- gbWithButton = true;
-}
-
-function setGoImage3(sImage3)
-{
- gsClickImage = sImage3;
- if (gsClickImage && gsClickImage.length > 0)
- gbWithButton = true;
-}
-
-function setGoText(sText)
-{
- gsText = sText;
- if (gsText.length > 0)
- gbWithButton = true;
-}
-
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
-{
- var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
- if (sType == "Title")
- {
- goTitleFont = vFont;
- var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);
- goInputFont=vFont1;
- }
- else if (sType == "Normal")
- goNormalFont = vFont;
- else if (sType == "Hover")
- goHoverFont = vFont;
-}
-
-function writeFormStyle()
-{
- var sStyle = "<style type='text/css'>";
- sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";
- sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";
- sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";
- sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";
- sStyle+=".clsFormBackground{\n";
- if (gsBgImage)
- sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="border-top:black 1px solid;}\n";
-
- sStyle += "</style>";
- document.write(sStyle);
-}
-
-function lookupKeyDown()
-{
- if (gbInputEnable)
- {
- if (gbIE4)
- {
- if (event.keyCode == 13) //Enter key
- gfunLookUp(true);
- else
- gfunLookUp(false);
- }
- else
- gfunLookUp(false);
- }
-}
-
-function init()
-{
- if (gfunInit)
- gfunInit();
- if (!window.Array) return;
- document.onkeyup = lookupKeyDown;
-}
-
-function inputSubmit()
-{
- if ((gbInputEnable && !gbIE4)|| gbInImage)
- gfunLookUp(true);
-}
-
-function inputEnable(bEnable)
-{
- gbInputEnable = bEnable;
-}
-
-function inImage(bImage)
-{
- gbInImage = bImage;
-}
-
-function getFormHTML()
-{
- var sForm = "";
- sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";
- sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";
- sForm += "<tr>";
- sForm += "<td>";
- sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";
- if (gbWithButton && gnType >= 0)
- {
- sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"
- if (gnType == 0)
- {
- if (!gsText)
- gsText="Go";
- sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";
- }
- else
- sForm += gsText ;
- sForm += "</a></td>";
- }
- sForm += "</tr></table></p></td></tr></form></table>";
- return sForm;
-}
-
-function onMouseOver()
-{
- if (getElement("go") && gsOverImage)
- getElement("go").src = gsOverImage;
-}
-
-function onMouseDown()
-{
- if (getElement("go") && gsClickImage)
- getElement("go").src = gsClickImage;
-}
-
-function onMouseUp()
-{
- if (getElement("go") && gsOutImage)
- getElement("go").src = gsOutImage;
-}
-
-function onMouseOut()
-{
- if (getElement("go") && gsOutImage)
- getElement("go").src = gsOutImage;
-}
-
-if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
-{
- goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
- goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
- goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");
- gbWhForm=true;
-}
-else
- document.location.reload();
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.001
-// this value should be identical to the value used in whproxy.js
-window.whname = "wh_stub";
-
-// this file will be used by Topic and NavBar and NavPane and other components
-// and this file is used in child frame html.
-// and the whstub.js will be used in the start page.
-// see reference in whstub.js.
-// Internal Area
-var gbInited = false;
-var gWndStubPage = null;
-function getStubPage()
-{
- if (!gbInited)
- {
- gWndStubPage = getStubPage_inter(window);
- gbInited = true;
- }
- return gWndStubPage;
-}
-
-function getStubPage_inter(wCurrent) {
- if (null == wCurrent.parent || wCurrent.parent == wCurrent)
- return null;
-
- if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname)
- return wCurrent.parent;
- else
- if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)
- return getStubPage_inter(wCurrent.parent);
- else
- return null;
-}
-
-// Public interface begin here................
-function RegisterListener(framename, nMessageId)
-{
- var wStartPage = getStubPage();
- if (wStartPage && wStartPage != this) {
- return wStartPage.RegisterListener(framename, nMessageId);
- }
- else
- return false;
-}
-
-function RegisterListener2(oframe, nMessageId)
-{
- var wStartPage = getStubPage();
- if (wStartPage && wStartPage != this) {
- return wStartPage.RegisterListener2(oframe, nMessageId);
- }
- else
- return false;
-}
-
-function UnRegisterListener2(oframe, nMessageId)
-{
- var wStartPage = getStubPage();
- if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {
- return wStartPage.UnRegisterListener2(oframe, nMessageId);
- }
- else
- return false;
-}
-
-function SendMessage(oMessage)
-{
- var nMsgId = oMessage.nMessageId;
- if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)
- return true;
- var wStartPage = getStubPage();
- if (wStartPage && wStartPage != this && wStartPage.SendMessage)
- {
- return wStartPage.SendMessage(oMessage);
- }
- else
- return false;
-}
-var gbWhProxy=true;
\ No newline at end of file
+++ /dev/null
-<html>
-<head>
-<title>Glossary Term</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whhost.js"></script>
-<script language="javascript1.2" src="whghost.js"></script>
-<script language="javascript1.2">
-<!--
-if(window.gbWhGHost)
-{
-
-
- setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
- setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
- setActiveBgColor("#cccccc");
- setMargin("0pt");
- setIndent("9pt");
- GloWriteClassStyle();
-}
-else
- document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Glossary Definition</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goGloFont=null;
-
-function setBackground(sBgImage)
-{
- gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
- gsBgColor=sBgColor;
-}
-
-function window_Unload()
-{
- UnRegisterListener2(this, WH_MSG_SHOWGLODEF);
-}
-
-function window_OnLoad()
-{
- if(gsBgImage&&gsBgImage.length>0)
- document.body.background=gsBgImage;
- if(gsBgColor&&gsBgColor.length>0)
- document.body.bgColor=gsBgColor;
-}
-
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
-{
- var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
- if (sType == "Normal")
- goGloFont = vFont;
-}
-
-function textToHtml_nbsp_specialcare(sText)
-{
- if (sText == null) return null;
- var sHTML= sText;
- var re = new RegExp(" ","g");
- sHTML= sHTML.replace(re, " ");
- return sHTML;
-}
-
-function onSendMessage(oMsg)
-{
- var nMsgId = oMsg.nMessageId;
- if (nMsgId == WH_MSG_SHOWGLODEF)
- {
- document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;
- return true;
- }
-}
-
-function GDefWriteClassStyle()
-{
- var sStyle="<STYLE TYPE='text/css'>\n";
- if (gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";
- sStyle+="</STYLE>";
- document.write(sStyle);
-}
-
-if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)
-{
- window.onload=window_OnLoad;
- window.onunload = window_Unload;
- goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");
-
-
- setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
- GDefWriteClassStyle();
- RegisterListener2(this, WH_MSG_SHOWGLODEF);
- var sDefHead = "<p class=\"definition\">";
- var sDefTail = "</p>";
-}
-else
- document.location.reload();
-//-->
-</script>
-</head>
-<body bgproperties="fixed" bgcolor="white">
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Glossary</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgImage="";
-var gsBgColor="";
-var goTitleFont=null;
-
-function setBackground(sBgImage)
-{
- gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
- gsBgColor=sBgColor;
-}
-
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Title")
- goTitleFont=vFont;
-}
-
-function getTermText()
-{
- var strString="Term:";
-strString = "Term:";
- return strString;
-}
-
-function getDefinitionText()
-{
- var strString="Definition for:";
-strString = "Definition:";
- return strString;
-}
-
-function getHTML()
-{
- var sHTML="";
- sHTML+="<P class=title><nobr> " + getTermText() + "</nobr></p>";
- sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
- sHTML+="<P class=title><nobr> " + getDefinitionText() + " <b id=Name></b></nobr></p>";
- sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
- return sHTML;
-}
-
-function writeStyle()
-{
- var sStyle="<style type='text/css'>";
- sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";
- if (gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- sStyle+="</style>";
- document.write(sStyle);
-}
-
-
-function window_OnResize()
-{
- setIFrameHeight();
-}
-
-function window_OnLoad()
-{
- if(gsBgImage&&gsBgImage.length>0)
- document.body.background=gsBgImage;
- if(gsBgColor&&gsBgColor.length>0)
- document.body.bgColor=gsBgColor;
- setIFrameHeight();
-}
-
-function setIFrameHeight()
-{
- var tH=0;
- if(gbNav6)
- {
- tH=parseInt(window.innerHeight)-30;
- }
- else
- {
- tH=parseInt(document.body.clientHeight)-4;
- }
-
- var oEle=getElement("glossaryIFrame");
- if(oEle)
- {
- tH=tH-2*parseInt(oEle.offsetTop);
- if(tH>0)
- {
- oEle.style.height=Math.floor(tH*.6);
- var oEleDef=getElement("defIFrame");
- if(oEleDef)
- {
- oEleDef.style.height=tH-parseInt(oEle.style.height);
- }
- }
- }
-}
-
-function window_Unload()
-{
- UnRegisterListener2(this,WH_MSG_SHOWGLODEF);
-}
-
-function onSendMessage(oMsg)
-{
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_SHOWGLODEF)
- {
- if(getElement("Name"))
- getElement("Name").innerHTML=oMsg.oParam.sName;
- return true;
- }
-}
-
-if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)
-{
- goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");
- setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-
-
- window.onresize=window_OnResize;
- window.onload=window_OnLoad;
- window.onunload=window_Unload;
- RegisterListener2(this,WH_MSG_SHOWGLODEF);
- writeStyle();
- document.write(getHTML());
-}
-else
- document.location.reload();
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-// WebHelp 5.10.004
-var gbXML=false;
-var gaDef=new Array();
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goFont=null;
-var goHoverFont=null;
-var gsMargin="2pt";
-var gsIndent="2pt";
-var gsActiveBgColor="#cccccc";
-var gbWhGHost=false;
-var gbShowDef=true;
-var gsGloId="Glo_"
-
-function setBackground(sBgImage)
-{
- gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
- gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Normal")
- goFont=vFont;
- else if(sType=="Hover")
- goHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
- gsActiveBgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
- gsMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
- gsIndent=sIndent;
-}
-
-function insertDef(sKName,sDef)
-{
- var nLength=gaDef.length
- var oGlo=new nameDefPair(sKName,sDef);
- gaDef[nLength]=oGlo;
- return nLength;
-}
-
-function showDef(nDef)
-{
- if(nDef<gaDef.length)
- {
- HighLight(nDef);
- var oParam=gaDef[nDef];
- var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);
- SendMessage(oMsg);
- }
-}
-
-function nameDefPair(sName,sDef)
-{
- this.sName=sName;
- this.sDef=sDef;
-}
-
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
- var sHTML="";
- var nIdxSet=aCurIdxSet[0];
- var nIIdx=aPos[nIdxSet];
- var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);
- var sKName=_textToHtml(sRawKName);
- var sDText=_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx));
- var sDef=sDText;
- for(var i=1;i<nLength;i++)
- {
- var nIdxSeti=aCurIdxSet[i];
- var nIIdxi=aPos[nIdxSeti];
- var sRawKNamei = getItemName(aDataCon,nIdxSeti,nIIdxi);
- var sKNamei=_textToHtml(sRawKNamei);
- var sDTexti=_textToHtml_nonbsp(getDef(aDataCon,nIdxSeti,nIIdxi));
- if (compare(sKNamei,sKName)==0)
- {
- if (sDText!=sDTexti)
- sDef+="<br>"+sDTexti;
- }
- }
- var nIndex=insertDef(sKName,sDef);
- if(nLevel==1)
- {
- sHTML+="<p><nobr id=\""+getGloId(nIndex)+"\">";
- sHTML+="<a alt=\""+sKName+"\" href=\"javascript:void(0);\" onfocus=\"HighLight("+nIndex+");\" onclick=\"showDef("+nIndex+");return false;\">"+sKName+"</a></nobr></p>";
- oHTML.addHTML(sHTML,nLength,bDown,true,sRawKName);
- if(gbShowDef)
- {
- setTimeout("showDef(0);",100);
- gbShowDef = false;
- }
- }
-}
-
-function HighLight(nIndex)
-{
- var oObj=getElement(getGloId(nIndex));
- if(oObj)
- HighLightElement(oObj,gsActiveBgColor,"transparent");
-}
-
-function getGloId(nIndex)
-{
- return gsGloId+nIndex;
-}
-
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
-{
- if(bDown)
- {
- for(var i=0;i<nLength;i++)
- aPos[aCurIdxSet[i]]++;
- }
- else{
- for(var i=0;i<nLength;i++)
- aPos[aCurIdxSet[i]]--;
- }
-}
-
-function getDef(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- return aDataCon[nIdxSet].aKs[nIIdx].sDef;
- else
- return null;
-}
-
-function getItemName(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- return aDataCon[nIdxSet].aKs[nIIdx].sName;
- else
- return null;
-}
-
-function window_OnLoad()
-{
- if(gsBgImage&&gsBgImage.length>0)
- document.body.background=gsBgImage;
- if(gsBgColor&&gsBgColor.length>0)
- document.body.bgColor=gsBgColor;
- document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
- loadGlo();
- var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
- SendMessage(oMsg);
-}
-
-function loadGlo()
-{
- if(!gbReady)
- {
- var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
- if(SendMessage(oResMsg)&&oResMsg.oParam)
- {
- gbReady=true;
- var oProj=oResMsg.oParam;
- var aProj=oProj.aProj;
- gbXML=oProj.bXML;
- if(aProj.length>0)
- {
- var sLangId=aProj[0].sLangId;
- for(var i=0;i<aProj.length;i++)
- {
- if(aProj[i].sGlo&&aProj[i].sLangId==sLangId)
- addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);
- }
- }
- writeDataIFrame();
- enEvt();
- }
- }
-}
-
-function findCKInDom()
-{
- return true;
-}
-
-function GloWriteClassStyle()
-{
- var sStyle="<STYLE TYPE='text/css'>\n";
- if (gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";
- sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";
- sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
- sStyle+="</STYLE>";
- document.write(sStyle);
-}
-
-function window_Unload()
-{
- UnRegisterListener2(this,WH_MSG_PROJECTREADY);
- UnRegisterListener2(this,WH_MSG_SHOWGLO);
-}
-
-function onSendMessage(oMsg)
-{
- if(oMsg)
- {
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_SHOWGLO)
- {
- if(!gbNav6)
- document.body.focus();
- }
- else if(nMsgId==WH_MSG_PROJECTREADY)
- {
- loadGlo();
- }
- }
- return true;
-}
-
-if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)
-{
- RegisterListener2(this,WH_MSG_PROJECTREADY);
- RegisterListener2(this,WH_MSG_SHOWGLO);
- goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
- goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
- window.onload=window_OnLoad;
- window.onbeforeunload=window_BUnload;
- window.onunload=window_Unload;
- gbWhGHost=true;
-}
-else
- document.location.reload();
-
+++ /dev/null
-// WebHelp 5.10.002
-var gaChunks=new Array();
-var gaFakes=new Array();
-var gaDataCon=null;
-var gaData=new Array();
-
-var gbFindCK=false;;
-var gbNeedCalc=false;
-var gbScrl=false;
-var gbProcess=false;
-var gbReady=false;
-
-var gnCheck=0;
-var gnNum=0;
-var gnIns=-1;
-var gnLoad=0;
-var gnRef=-1;
-var gnMaxItems=0;
-var gnMaxMargin=32000;
-var gnNeeded=0;
-var gnNKI=-1;
-var gnRE=0;
-var gnScrlMgn=30;
-var gnSE=0;
-var gnVisible=0;
-var gnItems=0;
-var gnUHeight=1;
-
-var gsBCK=null;
-var gsChK=null;
-var gsCK=null;
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading data, please wait...";
-var gsSKA=null;
-var gsSKB=null;
-
-var gbLoadInfo=false;
-
-function onLoadXMLError()
-{
- if(gbLoadInfo)
- {
- var aChunk=new Array();
- projReady(aChunk);
- }
- else
- {
- var aData=new Array();
- putData(aData);
- }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
- if(gbLoadInfo)
- {
- var node=xmlDoc.lastChild;
- if(node)
- {
- var nTotal=0
- var aChunk=new Array();
- var oC=node.firstChild;
- while(oC)
- {
- if(oC.nodeName=="chunkinfo")
- {
- var item=new Object();
- item.sBK=oC.getAttribute("first");
- item.sEK=oC.getAttribute("last");
- item.sFileName=oC.getAttribute("url");
- item.nNum=parseInt(oC.getAttribute("num"));
- nTotal+=item.nNum;
- item.nTotal=nTotal;
- aChunk[aChunk.length]=item;
- }
- oC=oC.nextSibling;
- }
- projReady(aChunk);
- }
- }
- else
- {
- var node=xmlDoc.lastChild;
- if(node)
- {
- var aData=new Array();
- var nPrev=0;
- var nNext=0;
- var oC=node.firstChild;
- while(oC)
- {
- nPrev=nNext;
- if(oC.nodeName=="key")
- {
- var sName=oC.getAttribute("name");
- if(sName&&sName.length>0)
- {
- var sTarget=oC.getAttribute("target");
- var item=new Object();
- item.nType=2;
- item.sName=sName;
- if(sTarget)
- item.sTarget=sTarget;
- item.nPKOff=nPrev;
- aData[aData.length]=item;
- var nCurIndex=aData.length;
- processKey(oC,aData,item);
- nNext=aData.length-nCurIndex;
- item.nNKOff=nNext;
- }
- }
- else if(oC.nodeName=="letter")
- {
- var name=oC.getAttribute("name");
- if(name&&name.length>0)
- {
- var item=new Object();
- item.nType=1;
- item.sName=name;
- item.nPKOff=nPrev;
- nNext=0;
- item.nNKOff=nNext;
- aData[aData.length]=item;
- }
- }
- else if(oC.nodeName=="entry")
- {
- var name=oC.getAttribute("name");
- var def=oC.getAttribute("value");
- if(name&&name.length>0)
- {
- var item=new Object();
- item.sName=name;
- item.sDef=def;
- item.nPKOff=nPrev;
- nNext=0;
- item.nNKOff=nNext;
- aData[aData.length]=item;
- }
- }
- oC=oC.nextSibling;
- }
- putData(aData);
- }
- }
-}
-
-function processKey(element,aData,item)
-{
- var i=0;
- var nPrev=0;
- var nNext=0;
- var oC=element.firstChild;
- while(oC)
- {
- if(oC.nodeName=="topic")
- {
- var name=oC.getAttribute("name");
- var url=oC.getAttribute("url");
- if(url&&url.length!=0)
- {
- if(!name||name.length==0)
- name=url;
- var topic=new Object();
- topic.sName=name;
- topic.sURL=url;
- if(!item.aTopics)
- item.aTopics=new Array();
- item.aTopics[item.aTopics.length]=topic;
- }
- }
- else if(oC.nodeName=="key")
- {
- nPrev=nNext;
- var name=oC.getAttribute("name");
- if(name&&name.length!=0)
- {
- var subItem=new Object();
- subItem.sName=name;
- subItem.nType=3;
- subItem.nPKOff=nPrev;
- aData[aData.length]=subItem;
- var nCurIndex=aData.length;
- processKey(oC,aData,subItem);
- nNext=aData.length-nCurIndex;
- subItem.nNKOff=nNext;
- }
- }
- oC=oC.nextSibling;
- }
-}
-
-function putData(aData)
-{
- endLoading();
- var oCData=goCData;
- if(oCData)
- {
- oCData.aKs=aData;
- if(gnNKI==-1)
- setTimeout("checkReady();",1);
- else
- {
- gsSKA=getKByIdx(oCData,gnNKI);
- gbNeedCalc=true;
- gbScrl=true;
- gnNKI=-1;
- if(gsSKA)
- setTimeout("checkReady();",1);
- else
- {
- markEnd();
- setTimeout("checkAgain();",50);
- }
- }
- }
-}
-
-function markEnd()
-{
- if(gbProcess)
- gbProcess=false;
-}
-
-function endLoading()
-{
- var oDiv=getElement(gsLoadingDivID);
- if(oDiv)
- oDiv.style.visibility="hidden";
-}
-
-function markBegin()
-{
- gbProcess=true;
-}
-
-function beginLoading()
-{
- var oDiv=getElement(gsLoadingDivID);
- if(oDiv)
- {
- oDiv.style.top=document.body.scrollTop;
- oDiv.style.visibility="visible";
- }
-}
-
-function indexHTMLPart()
-{
- this.sHTML="";
- this.nNeeded=0;
- this.nCurrent=0;
- this.nConsumed=0;
- this.sFK=null;
- this.sLK=null;
- this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){
- if(bDown)
- this.sHTML+=sHTML;
- else
- this.sHTML=sHTML+this.sHTML;
- this.nCurrent++;
- this.nConsumed+=nConsumed;
- if(bK)
- {
- if(!this.sFK)
- this.sFK=sK;
- if(!this.sLK)
- this.sLK=sK;
- if(bDown)
- this.sLK=sK;
- else
- this.sFK=sK;
- }
- }
- this.appendHTML=function(oHTML,bDown){
- this.addSubHTML(oHTML,bDown);
- if(!this.sFK)
- this.sFK=oHTML.sFK;
- if(!this.sLK)
- this.sLK=oHTML.sLK;
- if(bDown)
- this.sLK=oHTML.sLK;
- else
- this.sFK=oHTML.sFK;
- }
-
- this.addSubHTML=function(oHTML,bDown){
- if(bDown)
- this.sHTML+=oHTML.sHTML;
- else
- this.sHTML=oHTML.sHTML+this.sHTML;
- this.nCurrent+=oHTML.nCurrent;
- this.nConsumed+=oHTML.nConsumed;
- }
-}
-
-function getMaxUnits()
-{
- return Math.floor(gnMaxMargin/gnUHeight)+1;
-}
-
-function getFakeItemsHTMLbyCount(nB,nCount)
-{
- var nMU=getMaxUnits();
- var nNum=Math.floor(nCount/nMU);
- var sHTML="";
- for(var i=0;i<nNum;i++)
- sHTML+=getFakeItemHTML(nB,nMU-1);
-
- var nRest=nCount%nMU;
- sHTML+=getFakeItemHTML(nB,nRest-1);
- return sHTML;
-}
-
-function getFakeItemHTML(nB,nNum)
-{
- return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\"> </h6>";
-}
-
-function fakeItemsArea(nB,n,sKA,sKB,obj)
-{
- this.nB=nB;
- this.nNum=n;
- this.sKA=sKA;
- this.sKB=sKB;
- this.obj=obj;
- this.nMargin=(n-1)*gnUHeight;
-
- this.setNum=function(n)
- {
- var nLastobj=-1;
- var nDelta=this.nMargin;
- this.nMargin=(n-1)*gnUHeight;
- nDelta=nDelta-this.nMargin;
- if(n>0)
- {
- this.nNum=n;
- var nMU=getMaxUnits();
- nLastobj=Math.floor((n-1)/nMU);
- if(this.obj.length)
- this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;
- else
- this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;
- }
- if(this.obj.length)
- {
- for(var i=this.obj.length-1;i>nLastobj;i--)
- removeThis(this.obj[i]);
- }
- else
- {
- if(nLastobj==-1)
- removeThis(this.obj);
- }
- return nDelta;
- }
- this.insertAdjacentHTML=function(sWhere,sHTML)
- {
- if(sWhere=="beforeBegin")
- {
- if(this.obj.length)
- this.obj[0].insertAdjacentHTML(sWhere,sHTML);
- else
- this.obj.insertAdjacentHTML(sWhere,sHTML);
- }
- else if(sWhere=="afterEnd")
- {
- if(this.obj.length)
- {
- if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)
- this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
- else
- this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);
- }
- else
- {
- if(gbMac&&gbIE5&&this.obj.nextSibling)
- this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
- else
- this.obj.insertAdjacentHTML(sWhere,sHTML);
- }
- }
- }
- this.getBtm=function()
- {
- if(this.obj.length)
- return this.obj[this.obj.length-1].offsetTop;
- else
- return this.obj.offsetTop;
- }
- this.getTop=function()
- {
- return this.getBtm()-this.nMargin;
- }
-}
-
-function usedItems(nB,nE)
-{
- this.nB=nB;
- this.nE=nE;
- this.oN=null;
-}
-
-function checkReady()
-{
- var len=gaChunks.length;
- var bNeedLoad=false;
- var aDataCon;
- var s=0;
- var bDown=(gsSKB==null);
- var sK=bDown?gsSKA:gsSKB;
- if(sK==null)
- {
- markEnd();
- setTimeout("checkAgain();",50);
- return;
- }
- if(!gsChK||sK!=gsChK||gnNum==0)
- {
- gnCheck=0;
- gsChK=sK;
- aDataCon=new Array();
- }
- else{
- s=gnNum;
- aDataCon=gaDataCon;
- }
- for(var i=gnCheck;i<len;i++)
- {
- var oCData=getChunkedData(i,bDown,sK);
- if(oCData)
- {
- if(!oCData.aKs&&oCData.sFileName!=null)
- {
- bNeedLoad=true;
- goCData=oCData;
- gnNum=s;
- gnCheck=i;
- gaDataCon=aDataCon;
- oCData.nProjId=i;
- gbLoadInfo=false;
- beginLoading();
- loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);
- return;
- }
- else{
- aDataCon[s++]=oCData;
- }
- }
- }
- if(!bNeedLoad)
- {
- gnNum=0;
- gsSKA=gsSKB=gsShowK=null;
-
- var oHTML=new indexHTMLPart();
- var aPos=new Array();
- var aOriPos=new Array();
- var aMaxPos=new Array();
- var aMinPos=new Array();
-
- if(gbNeedCalc||gbFindCK) gnIns=0;
- for(i=0;i<aDataCon.length;i++)
- {
- aPos[i]=getIdxPos(aDataCon[i],bDown,sK);
- if(gbNeedCalc||gbFindCK)
- {
- gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;
- if(!bDown)
- {
- if(aPos[i]!=-1)
- {
- if(aDataCon[i].aKs)
- gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;
- else
- {
- var n=aPos[i]+1;
- while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])
- n++;
- n=n-aPos[i]-1;
- gnIns+=n;
- }
- }
- }
- }
- aOriPos[i]=aPos[i];
- getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);
- }
- if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)
- {
- gnIns+=(aDataCon.length-1)
- }
- if(gnIns!=-1||gbFindCK)
- {
- oHTML.nNeeded=gnNeeded;
- var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);
- if(oHTML.nConsumed!=0)
- {
- var nB;
- if(!bDown)
- nB=gnIns-oHTML.nConsumed+1;
- else
- nB=gnIns;
-
- var oldScrollPos=document.body.scrollTop;
- if(insertIdxKs(nB,oHTML,gbScrl))
- {
- updateUsedK(aDataCon,aOriPos,aPos,bDown);
- if(!gbScrl&&gbMac)
- {
- while(document.body.scrollTop!=oldScrollPos)
- document.body.scrollTop=oldScrollPos;
- }
- gbScrl=false;
- }
- if(gbFindCK)
- {
- gbFindCK=false;
- gbNeedCalc=true;
- gsSKB=oHTML.sFK;
- gnIns=-1;
- setTimeout("checkReady();",50);
- return;
- }
- }
- else if(gbFindCK)
- {
- gbFindCK=false;
- gbNeedCalc=true;
- gsSKB=getFirstKeyFromPos(aDataCon,aPos);
- gnIns=-1;
- setTimeout("checkReady();",50);
- return;
- }
- if(!findCKInDom()) return;
-
- gnNeeded=gnNeeded-oHTML.nCurrent;
- gnIns=-1;
- markEnd();
- setTimeout("checkAgain();",50);
- gbNeedCalc=false;
- }
- else
- {
- if(!findCKInDom()) return;
- markEnd();
- setTimeout("checkAgain();",50);
- }
- }
-}
-
-function getFirstKeyFromPos(aDataCon,aPos)
-{
- var sCurrentK=getBiggestChar();
- for(var i=0;i<aPos.length;i++)
- {
- if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)
- {
- if(sCurrentK==""||
- compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)
- {
- sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
- }
- }
- }
- return sCurrentK;
-}
-
-function checkAgain()
-{
- if(!gbProcess)
- {
- if(gsBCK!=null)
- {
- gsCK=gsBCK;
- gsBCK=null;
- findCK();
- }
- else
- {
- markBegin();
- getUnitIdx(document.body.scrollTop,document.body.clientHeight);
- }
- }
- else
- setTimeout("checkAgain()",50);
-}
-
-function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)
-{
- aMaxPos[i]=aDataCon[i].nNum;
- aMinPos[i]=-1;
- var oPNode=null;
- if(aDataCon[i].oUsedItems)
- {
- var oUsedItems=aDataCon[i].oUsedItems;
- do{
- if(oUsedItems.nB>aPos[i])
- {
- aMaxPos[i]=oUsedItems.nB;
- break;
- }
- oPNode=oUsedItems;
- oUsedItems=oUsedItems.oN;
- }while(oUsedItems!=null);
- if(oPNode)
- aMinPos[i]=oPNode.nE;
- }
- else if(aDataCon[i].aKs==null)
- {
- aMaxPos[i]=aMinPos[i]=aPos[i];
- }
- if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])
- {
- aMaxPos[i]=aMinPos[i]=aPos[i];
- }
-}
-
-function getIdxPos(oIdx,bDown,sK)
-{
- var aKs=oIdx.aKs;
- var nIdx;
- if(bDown)
- nIdx=oIdx.nNum;
- else
- nIdx=-1;
- if(aKs!=null)
- {
- for(var i=0;i<aKs.length;i++)
- {
- if(bDown)
- {
- if(compare(aKs[i].sName,sK)>0)
- {
- nIdx=i;
- break;
- }
- }
- else
- {
- if(compare(aKs[i].sName,sK)<0)
- nIdx=i;
- else
- break;
- }
- i+=aKs[i].nNKOff;
- }
- }
- else if(oIdx.aKsOnly)
- {
- var aKsOnly=oIdx.aKsOnly;
- for(var i=0;i<aKsOnly.length;i++)
- {
- if(aKsOnly[i])
- {
- if(bDown)
- {
- if(compare(aKsOnly[i],sK)>0)
- {
- nIdx=i;
- break;
- }
- }
- else
- {
- if(compare(aKsOnly[i],sK)<0)
- nIdx=i;
- else
- break;
- }
- }
- }
- }
- return nIdx;
-}
-
-function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)
-{
- var aOldPos=new Array();
- for(var i=0;i<aPos.length;i++)
- {
- aOldPos[i]=aPos[i];
- }
- var p;
- do{
- var sCurrentK="";
- var aCurIdxSet=new Array();
- p=0;
- for(i=0;i<aDataCon.length;i++)
- {
- if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&
- (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))
- {
- if(sCurrentK==""||
- (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||
- (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))
- {
- sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
- p=0;
- aCurIdxSet[p++]=i;
- }
- else if(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){
- aCurIdxSet[p++]=i;
- }
- }
- else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){
- if(bDown&&aPos[i]==aMaxPos[i])
- {
- if(aDataCon[i].aKs)
- {
- gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;
- return false;
- }
- }
- else if(!bDown&&aPos[i]==aMinPos[i])
- {
- if(aDataCon[i].aKs)
- {
- gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;
- return false;
- }
- }
- }
- }
- if(p>=1){
- for(var s=0;s<p;s++)
- {
- aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];
- }
- mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);
- adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);
-
- if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){
- return true;
- }
- }
- }while(p>0);
- return true;
-}
-
-function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)
-{
- for(var i=0;i<aDataCon.length;i++)
- {
- if (aOldPos[i]!=aOriPos[i])
- {
- var nBP=0;
- var nEP=0;
- if(bDown)
- {
- nBP=aOriPos[i];
- nEP=aOldPos[i]-1;
- }
- else
- {
- if (aOldPos[i]!=-1)
- nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;
- else
- nBP=0;
- nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;
- }
- if(nBP<=nEP)
- {
- setContentsUsed(aDataCon[i],nBP,nEP);
-
- var oFirstPair=aDataCon[i].oUsedItems;
- if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)
- {
- storeKeysOnly(aDataCon[i]);
- aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;
- }
- }
- }
- }
-}
-
-function storeKeysOnly(oCData)
-{
- oCData.aKsOnly=new Array();
- for(var i=0;i<oCData.aKs.length;i++)
- {
- oCData.aKsOnly[i]=oCData.aKs[i].sName;
- i+=oCData.aKs[i].nNKOff;
- }
-}
-
-function setContentsUsed(oIdx,nB,nE)
-{
- if(!oIdx.oUsedItems)
- oIdx.oUsedItems=new usedItems(nB,nE);
- else
- {
- var oUsedItems=oIdx.oUsedItems;
- var oPNode=null;
- do{
- if(oUsedItems.nB>nB)
- {
- if(oUsedItems.nB==nE+1)
- {
- oUsedItems.nB=nB;
- }
- else{
- var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);
- oNewNode.oN=oUsedItems.oN;
- oUsedItems.nB=nB;
- oUsedItems.nE=nE;
- oUsedItems.oN=oNewNode;
- }
- break;
- }
- oPNode=oUsedItems;
- oUsedItems=oUsedItems.oN;
- }while(oUsedItems);
- if(!oUsedItems)
- {
- if(oPNode!=null)
- oPNode.oN=new usedItems(nB,nE);
- }
- if(oPNode!=null){
- if(oPNode.nE==oPNode.oN.nB-1)
- {
- oPNode.nE=oPNode.oN.nE;
- oPNode.oN=oPNode.oN.oN;
- }
- }
- }
-}
-
-function projInfo(sPPath,sDPath,sFile)
-{
- this.sPPath=sPPath;
- this.sDPath=sDPath;
- this.sFile=sFile;
-}
-
-function addProjInfo(sPPath,sDPath,sFile)
-{
- var oIdxInfo=new projInfo(sPPath,sDPath,sFile);
- gaData[gaData.length]=oIdxInfo;
- return oIdxInfo;
-}
-
-function writeDataIFrame()
-{
- if(gnLoad<gaData.length)
- {
- gbLoadInfo=true;
- loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);
- }
- else{
- if(gnItems!=0)
- {
- markBegin();
- writeFakeItems();
- gsSKA="";
- gnNeeded=gnVisible;
- gnIns=0;
- checkReady();
- }
- }
-}
-
-function getH6ById(nPos)
-{
- if(document.all)
- return document.all("fk"+nPos);
- else if(document.getElementsByName)
- return document.getElementsByName("fk"+nPos);
- return null;
-}
-
-function showItemsInEvaluation(nBP)
-{
- var bRtn=true;
- var fPer=nBP/gnItems;
- var nB=Math.floor(fPer*gnMaxItems);
- var oCData=getChunkByIdx(gnRef,nB);
- if(oCData)
- {
- if(!oCData.aKs&&oCData.sFileName!=null)
- {
- gnNKI=nB;
- goCData=oCData;
- oCData.nProjId=gnRef;
- gbLoadInfo=false;
- beginLoading();
- loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);
- }
- else{
- gsSKA=getKByIdx(oCData,nB);
- if(gsSKA)
- {
- gsSKB=null;
- gbNeedCalc=true;
- gbScrl=true;
- checkReady()
- }
- else
- {
- markEnd();
- bRtn=false;
- }
- }
- }
- else
- {
- markEnd();
- bRtn=false;
- }
- return bRtn;
-}
-
-function isUsed(oCData,nPos)
-{
- var oUsed=oCData.oUsedItems;
- while(oUsed&&oUsed.nB<=nPos)
- {
- if(oUsed.nE>=nPos) return true;
- oUsed=oUsed.oN;
- }
- return false;
-}
-
-function getKByIdx(oCData,nB)
-{
- var nRelPos=nB-(oCData.nTotal-oCData.nNum);
- var aIKs=oCData.aKs;
- if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)
- {
- var oK=null;
- do{
- oK=aIKs[nRelPos++];
- }
- while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);
- if(oK.nType!=3)
- {
- return oK.sName;
- }
- else{
- nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;
- if(nRelPos>=0)
- {
- do{
- oK=aIKs[nRelPos--];
- }
- while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);
- }
- if(oK.nType!=3)
- {
- return oK.sName;
- }
- }
- }
- return null;
-}
-
-function loadData2(sFileName)
-{
- disEvt();
- if(gbXML)
- loadDataXML(sFileName);
- else
- loadData(sFileName);
- enEvt();
-}
-
-function projReady(aChunk)
-{
- gaChunks[gnLoad++]=aChunk;
- var len=aChunk.length;
- var nTotal=0;
- if(len>0)
- nTotal=aChunk[len-1].nTotal;
- gnItems+=nTotal;
- if(nTotal>gnMaxItems)
- {
- gnMaxItems=nTotal;
- gnRef=gnLoad-1;
- }
- setTimeout("writeDataIFrame();",1);
-}
-
-function writeFakeItems()
-{
- disEvt();
- gnUHeight=15;
- var sHTML=getFakeItemsHTMLbyCount(0,gnItems);
- document.body.insertAdjacentHTML("beforeEnd",sHTML);
- var obj=getH6ById(0);
- if (document.body != null)
- {
- gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
- }
- gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);
- enEvt();
-}
-
-function getEndString()
-{
- var sBC=getBiggestChar();
- return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;
-}
-
-function getUnitIdx(nScrl,nHeight)
-{
- if(gaFakes.length==0)
- {
- markEnd();
- return;
- }
- var nB=0;
- var nE=gaFakes.length-1;
- var nM=-1;
- var nTop=0;
- var nBtm=0;
- var bF=false;
- do{
- nM=(nB+nE)>>1;
- nBtm=gaFakes[nM].getBtm();
- nTop=gaFakes[nM].getTop();
-
- if(nTop>=nScrl+nHeight)
- nE=nM-1;
- else if(nBtm<nScrl)
- nB=nM+1;
- else{
- bF=true;
- break;
- }
- }while(nE>=nB);
- if(bF)
- {
- if(nTop>=nScrl){
- gsSKA=gaFakes[nM].sKA;
- gsSKB=null;
- gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);
- gnIns=gaFakes[nM].nB;
- checkReady();
- }
- else if(nBtm<=nScrl+nHeight){
- gsSKB=gaFakes[nM].sKB;
- gsSKA=null;
- gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);
- gbNeedCalc=true;
- checkReady();
- }
- else{
- gnNeeded=gnVisible;
- var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);
- if (!showItemsInEvaluation(nUnitIdx))
- {
- gsSKA=gaFakes[nM].sKA;
- gsSKB=null;
- gnNeeded=Math.ceil(nHeight/gnUHeight);
- gnIns=gaFakes[nM].nB;
- checkReady();
- }
- }
- }
- else
- markEnd();
-}
-
-function disEvt()
-{
- window.onscroll=null;
- window.onresize=null;
-}
-
-function enEvt()
-{
- window.onscroll=window_OnScroll;
- window.onresize=window_OnResize;
-}
-
-function insertIdxKs(nIns,oHTML,bScrl)
-{
- var bRtn=true;
- disEvt();
- var nCount=oHTML.nConsumed;
- var nB=0;
- var nE=gaFakes.length-1;
- var nM=-1;
- var bF=false;
- do{
- nM=(nB+nE)>>1;
- if(gaFakes[nM].nB>nIns)
- nE=nM-1;
- else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)
- nB=nM+1;
- else{
- bF=true;
- break;
- }
- }while(nE>=nB);
- if(bF)
- {
- var oFIA=gaFakes[nM];
- var nOffsetTop=oFIA.getTop();
- var nOffsetBottom=oFIA.getBtm();
- var nDelta=0;
- var nHDiff=nIns-oFIA.nB;
- var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);
- if(nHDiff>0)
- {
- nDelta=oFIA.setNum(nHDiff);
- var sOldKBefore=oFIA.sKB;
- oFIA.sKB=oHTML.sFK;
- if(nTDiff>0)
- {
- var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);
- oFIA.insertAdjacentHTML("afterEnd",sHTML);
- var obj=getH6ById(nIns);
- insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));
- }
- oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);
- if(bScrl)
- {
- if(gbMac&&gbIE4)
- {
- var nScrollPos=nOffsetBottom-nDelta;
- while(document.body.scrollTop!=nScrollPos)
- document.body.scrollTop=nScrollPos;
- }
- else
- window.scrollTo(0,nOffsetBottom-nDelta);
- }
- }
- else{
- oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);
- if(bScrl){
- if(gbMac&&gbIE4)
- {
- var nScrollPos=nOffsetTop;
- while(document.body.scrollTop!=nScrollPos)
- document.body.scrollTop=nScrollPos;
- }
- else
- window.scrollTo(0,nOffsetTop);
- }
-
- if(nTDiff>0)
- {
- oFIA.nB=nIns+nCount;
- nDelta=oFIA.setNum(nTDiff);
- oFIA.sKA=oHTML.sLK;
- }
- else{
- gaFakes[nM].setNum(0);
- removeItemFromArray(gaFakes,nM);
- }
- }
- }
- else
- bRtn=false;
- enEvt();
- return bRtn;
-}
-
-function window_OnScroll()
-{
- gnSE++;
- setTimeout("procScroll();",50);
-}
-
-function procScroll()
-{
- if(gnSE==1&&!gbProcess)
- {
- markBegin();
- getUnitIdx(document.body.scrollTop,document.body.clientHeight);
- }
- gnSE--;
-}
-
-function window_OnResize()
-{
- gnRE++;
- setTimeout("procResize();",50);
-}
-
-function procResize()
-{
- if(gnRE==1&&!gbProcess)
- {
- markBegin();
- gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
- if(gnIns==-1)
- getUnitIdx(document.body.scrollTop,document.body.clientHeight);
- }
- gnRE--;
-}
-
-function getChunkByIdx(nIdx,nPosition)
-{
- var oCData=null;
- if(nIdx<gaChunks.length)
- {
- var len=gaChunks[nIdx].length;
- if(len>0)
- {
- var nB=0;
- var nE=len-1;
- var bF=false;
- do{
- var nM=(nB+nE)>>1;
- if(nPosition<gaChunks[nIdx][nM].nTotal)
- {
- bF=true;
- nE=nM;
- }
- else
- nB=nM+1;
- }while(nE>nB);
- if(bF)
- oCData=gaChunks[nIdx][nE];
- else if(nPosition<gaChunks[nIdx][nB].nTotal)
- oCData=gaChunks[nIdx][nB];
- }
- }
- return oCData;
-}
-
-function getChunkedData(nIdx,bDown,sK)
-{
- var oCData=null;
- var nCandId=-1;
- if(nIdx<gaChunks.length)
- {
- var len=gaChunks[nIdx].length;
- if(len>0)
- {
- var nB=0;
- var nE=len-1;
- var bF=false;
- do{
- var nM=(nB+nE+(bDown?0:1))>>1;
- if(bDown)
- {
- if(compare(sK,gaChunks[nIdx][nM].sEK)<0)
- {
- bF=true;
- nE=nM;
- }
- else
- nB=nM+1;
- }
- else
- {
- if(compare(sK,gaChunks[nIdx][nM].sBK)>0)
- {
- bF=true;
- nB=nM;
- }
- else
- nE=nM-1;
- }
- }while(nE>nB);
- if(bF)
- {
- if(bDown)
- nCandId=nE;
- else
- nCandId=nB;
- }
- else
- {
- if(bDown)
- {
- if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)
- nCandId=nB;
- else
- nCandId=gaChunks[nIdx].length-1;
- }
- else
- {
- if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)
- nCandId=nE;
- else
- nCandId=0;
- }
- }
- return gaChunks[nIdx][nCandId];
- }
- }
- return null;
-}
-
-function findCK()
-{
- if(gsCK!=null)
- {
- gsSKA=gsCK;
- gbFindCK=true;
- gnNeeded=1;
- markBegin();
- checkReady();
- }
-}
-
-function writeLoadingDiv(nIIdx)
-{
- return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-var gbWhHost=true;
\ No newline at end of file
+++ /dev/null
-<html>
-<head>
-<title>Index content</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whhost.js"></script>
-<script language="javascript1.2" src="whihost.js"></script>
-<script language="javascript1.2">
-<!--
-var goPopup = null;
-var gbPopupMenuTimeoutExpired=false;
-var gBsClientWidth=640;
-var gBsClientHeight=480;
-var g_bIsPopupMenuInit=false;
-
-function WritePopupMenuLayer()
-{
- if (!g_bIsPopupMenuInit)
- {
- document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
- document.write("<STYLE TYPE='text/css'>");
- if (gbMac && gbIE4) {
- document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");
- document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");
- } else {
- document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");
- document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
- }
- document.write("</STYLE>");
- }
- g_bIsPopupMenuInit = true;
-}
-
-function PopupMenu_Invoke()
-{
- if (gbNav6)
- resetHighLight();
-
- if (!gbNav6 && document.readyState != "complete")
- return false;
- var fn_arguments = PopupMenu_Invoke.arguments;
- // Make sure we have reasonable arguments
- var argLen = fn_arguments.length;
- if (argLen < 3) {
- return false;
- }
-
- // Check to see if we only have one target
- var strTarget = "";
-
- strTarget = "TARGET='" + fn_arguments[1] + "'";
-
- if (argLen < 5) {
- // Get the place that we will be putting the topic into
- var strURL = fn_arguments[3];
-
- if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
- window.open(strURL, fn_arguments[1]);
- else
- window.open(strURL);
-
- return false;
- }
-
- var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
- if (gbMac && gbIE4) {
- strMenu += ' CELLPADDING=4';
- } else {
- strMenu += ' CELLPADDING=2';
- }
- strMenu += ' BGCOLOR=#c0c0c0>';
-
- // Add each of the items
- if (gbIE55)
- {
- var i = 2;
- while (i <= argLen - 1) {
- strMenu += '<TR><TD><NOBR>'
- strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';
- strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + excapeSingleQuotandSlash(fn_arguments[i + 1]) + '\', \'' + fn_arguments[1] + '\');"';
- strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';
- strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';
- strMenu += '>';
- strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
- strMenu += '</A></DIV></NOBR></TD></TR>';
- i += 2;
- }
- }
- else
- {
- var i = 2;
- while (i <= argLen - 1) {
- strMenu += '<TR><TD><NOBR>'
- strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;
- strMenu += ' onclick="PopupMenu_HandleClick(event);"';
- strMenu += ' onmouseover="PopupMenu_Over(event);"';
- strMenu += ' onmouseout="PopupMenu_Out(event);"';
- strMenu += '>';
- strMenu += '<SPAN CLASS="PopupNotOver">' + excapeSingleQuotandSlash(fn_arguments[i]) + '</SPAN>';
- strMenu += '</A></DIV></NOBR></TD></TR>';
- i += 2;
- }
- }
- strMenu += "</TABLE>";
-
- if (gbMac && gbIE4) {
- // ie5 in mac need something. </TABLE> is one of them.
- strMenu +="<TABLE></TABLE>";
- }
-
- var layerPopup = null;
- var stylePopup = null;
- var nEventX = 0;
- var nEventY = 0;
- var nWindowWidth = 0;
- if (gbIE4||gbOpera7)
- {
- layerPopup = document.all["PopupMenu"];
- layerPopup.innerHTML = strMenu;
- stylePopup = layerPopup.style;
-
- _BSPSGetClientSize();
-
- // Get the position of the item causing the event (relative to its parent)
- nEventX = window.event.clientX;
- nEventY = window.event.clientY;
-
- if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
- nEventY += document.body.scrollTop + 10;
- } else {
- nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
- }
- stylePopup.top = nEventY;
-
- if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {
- if (gBsClientWidth - layerPopup.scrollWidth < 5) {
- stylePopup.left = 5;
- } else {
- stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;
- }
- } else {
- stylePopup.left = nEventX + document.body.scrollLeft + 20;
- }
-
- if (gbIE55) {
- var nPosX = window.event.clientX;
- var nPosY = window.event.clientY;
- if (window.event.srcElement)
- {
- nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;
- nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;
- }
- goPopup = window.createPopup();
- var oPopupBody = goPopup.document.body;
- goPopup.document.createStyleSheet();
- goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");
- goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
- oPopupBody.insertAdjacentHTML("afterBegin", strMenu);
- goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);
- }
- else
- {
- stylePopup.visibility = "visible";
- document.onclick = PopupMenu_HandleClick;
- }
- } else if (gbNav6) {
- layerPopup = document.getElementById("PopupMenu");
- layerPopup.style.visibility = "hidden";
-
- var e = fn_arguments[0];
- nEventX = e.pageX;
- nEventY = e.pageY;
- _BSPSGetClientSize();
- layerPopup.innerHTML = strMenu;
-
- if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) {
- nEventY += 20;
- } else {
- nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
- }
-
- if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
- if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
- nEventX = 5;
- } else {
- nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
- }
- } else {
- nEventX += 20;
- }
- layerPopup.style.top = nEventY;
- layerPopup.style.left = nEventX;
-
- // set again to avoid the frash in netscape 6.
- layerPopup.innerHTML = strMenu;
- layerPopup.style.visibility = "visible";
- window.onclick = PopupMenu_HandleClick;
- }
-
- window.gbPopupMenuTimeoutExpired = false;
- setTimeout("PopupMenu_Timeout();", 100);
- return false;
-}
-
-function PopupMenu_Timeout()
-{
- window.gbPopupMenuTimeoutExpired = true;
-}
-
-function PopupMenu_Over(e)
-{
- if (gbIE4||gbOpera7)
- e.srcElement.className = "PopupOver";
- else if (gbNav6)
- e.target.parentNode.className = "PopupOver";
-}
-
-function PopupMenu_Out(e)
-{
- if (gbIE4||gbOpera7)
- e.srcElement.className = "PopupNotOver";
- else if (gbNav6)
- e.target.parentNode.className = "PopupNotOver";
-}
-
-function PopupMenu_2HandleClick(surl, starget)
-{
- window.open(surl, starget);
- goPopup.hide();
-}
-
-function PopupMenu_HandleClick(e)
-{
- if (!window.gbPopupMenuTimeoutExpired) {
- return;
- }
-
- var layerPopup = getElement("PopupMenu");
- layerPopup.style.visibility = "hidden";
-
- return;
-}
-
-//Get client size info
-function _BSPSGetClientSize()
-{
- gBsClientWidth = document.body.clientWidth;
- gBsClientHeight = document.body.clientHeight;
-}
-
-if (window.gbWhIHost)
-{
-
-
- setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
- setFont("Empty", "Arial","9pt","#000000","normal","normal","none");
- setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
- setActiveBgColor("#cccccc");
- setMargin("0pt");
- setIndent("9pt");
- IndexWriteClassStyle();
-}
-else
- document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
-<script languageE="JavaScript">
-<!--
-WritePopupMenuLayer();
-//-->
-</script>
-</body>
-</html>
-
+++ /dev/null
-<html>
-<head>
-<title>Index</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2">
-<!--
-var gbIndexLayerInit = false;
-if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)
-{
- var strWrite;
- if (gbMac)
- strWrite="<FRAMESET ROWS='45,100%' framespacing=0 frameborder=1>";
- else
- strWrite="<FRAMESET ROWS='60,100%' framespacing=0 frameborder=1>";
- strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";
- strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";
- strWrite +="</FRAMESET>";
- document.write(strWrite);
-}
-else
- document.location.reload();
-//-->
-</script>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Index form</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<style>
-<!--
-body {margin:0;}
--->
-</style>
-<body bgcolor="#c0c0c0">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whform.js"></script>
-<script language="javascript1.2">
-<!--
-function indexLookup(bCR)
-{
- var strInput = document.IndexInputForm.keywordField.value.toUpperCase();
- if (strInput != "") {
- var oParam = new Object();
- oParam.sInput = strInput;
- oParam.bCR = bCR;
- var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);
- SendMessage(oMessage);
- }
- if (gbMac) {
- document.IndexInputForm.keywordField.focus();
- }
-}
-
-function window_Unload()
-{
- UnRegisterListener2(this, WH_MSG_SHOWTOC);
- UnRegisterListener2(this, WH_MSG_SHOWIDX);
- UnRegisterListener2(this, WH_MSG_SHOWFTS);
- UnRegisterListener2(this, WH_MSG_SHOWGLO);
-}
-
-function onSendMessage(oMessage)
-{
- if (oMessage.nMessageId == WH_MSG_SHOWIDX)
- {
- document.IndexInputForm.keywordField.focus();
- }
- else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||
- oMessage.nMessageId == WH_MSG_SHOWTOC ||
- oMessage.nMessageId == WH_MSG_SHOWGLO)
- {
- document.IndexInputForm.keywordField.blur();
- }
- return true;
-}
-
-if (window.gbWhForm)
-{
- RegisterListener2(this, WH_MSG_SHOWTOC);
- RegisterListener2(this, WH_MSG_SHOWIDX);
- RegisterListener2(this, WH_MSG_SHOWFTS);
- RegisterListener2(this, WH_MSG_SHOWGLO);
- window.onunload=window_Unload;
- window.onload = init;
- gfunLookUp = indexLookup;
- gfunInit = null;
- gstrFormName = "IndexInputForm"
- gsTitle = "Type in the keyword to find:";
- gsTitle = "Type in the keyword to find:";
-
-
-
-
-
-
-
- setGoText("Go");
- setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-
-
- document.write(getFormHTML());
- writeFormStyle();
-}
-else
- document.location.reload();
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-// WebHelp 5.10.002
-var gsDefaultTarget="bsscright";
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goIdxFont=null;
-var goIdxEmptyFont=null;
-var goIdxHoverFont=null;
-var gsIdxMargin="0pt";
-var gsIdxIndent="8pt";
-var gsIdxActiveBgColor="#cccccc";
-var gsCK = null;
-var gsBCK = null;
-var gbCR = false;
-var gbBCR = false;
-var gbWhIHost=true;
-
-function myEvent()
-{
- this.pageX = 0;
- this.pageY = 0;
-}
-var _event=new myEvent();
-
-function setBackgroundcolor(sBgColor)
-{
- gsBgColor=sBgColor;
-}
-
-function setBackground(sBgImage)
-{
- gsBgImage=sBgImage;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Normal")
- goIdxFont=vFont;
- else if(sType=="Empty")
- goIdxEmptyFont=vFont;
- else if(sType=="Hover")
- goIdxHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
- gsIdxActiveBgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
- gsIdxMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
- gsIdxIndent=sIndent;
-}
-
-function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
- var sHTML="";
- var nIdxSet=aCurIdxSet[0];
- var nIIdx=aPos[nIdxSet];
- var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);
- var sKName=_textToHtml(sKOriName);
-
- var nIdxIndent=parseInt(gsIdxIndent);
- var sTopics="";
- if(nLevel==1){
- if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
- {
- sHTML+="<H6><nobr>";
- sHTML+="<b>"+sKName+"</b></nobr></H6>";
- }
- else{
- for(var i=0;i<nLength;i++)
- sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
- sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";
- sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
- if(sTopics.length>0)
- sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";
- else
- sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
- }
- }
- else if(nLevel>=2){
- var nIndent=nIdxIndent*nLevel;
- for(var i=0;i<nLength;i++)
- sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
- if (nLevel==2)
- sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
- else
- sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";
- sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
- if(sTopics.length>0)
- sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";
- else
- sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
- }
- oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
-}
-
-function getTargetName(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)
- return aDataCon[nIdxSet].aKs[nIIdx].sTarget;
- return gsDefaultTarget;
-}
-
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
- var oLocalHTML=new indexHTMLPart();
- writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
-
- var aLocalPos=new Array();
- var aMaxPos=new Array();
- for(var i=0;i<aPos.length;i++)
- {
- aLocalPos[i]=aPos[i];
- aMaxPos[i]=-1;
- }
-
- for(i=0;i<nLength;i++)
- {
- var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
- aLocalPos[aCurIdxSet[i]]++;
- if(nNKOff>0)
- aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
- }
- var oSubHTML=new indexHTMLPart();
- writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);
- oLocalHTML.addSubHTML(oSubHTML,true);
- oHTML.appendHTML(oLocalHTML,bDown);
-}
-
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
-{
- if(bDown)
- {
- for(var i=0;i<nLength;i++)
- {
- var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
- aPos[aCurIdxSet[i]]+=(1+nNKOff);
- }
- }
- else{
- for(var i=0;i<nLength;i++)
- {
- var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
- aPos[aCurIdxSet[i]]-=(1+nPKOff);
- }
- }
-}
-
-function getItemName(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- return aDataCon[nIdxSet].aKs[nIIdx].sName;
- else
- return null;
-}
-
-function getItemType(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- return aDataCon[nIdxSet].aKs[nIIdx].nType;
- else
- return 0;
-}
-
-function getNKOff(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
- else
- return null;
-}
-
-function getPKOff(aDataCon,nIdxSet,nIIdx)
-{
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
- else
- return null;
-}
-
-function window_OnLoad()
-{
- if(gsBgImage&&gsBgImage.length>0)
- {
- document.body.background=gsBgImage;
- }
- if(gsBgColor&&gsBgColor.length>0)
- {
- document.body.bgColor=gsBgColor;
- }
- document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
- loadIdx();
- var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
- SendMessage(oMsg);
-}
-
-function loadIdx()
-{
- if(!gbReady)
- {
- var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
- if(SendMessage(oResMsg)&&oResMsg.oParam)
- {
- gbReady=true;
- var oProj=oResMsg.oParam;
- var aProj=oProj.aProj;
- gbXML=oProj.bXML;
- if(aProj.length>0)
- {
- var sLangId=aProj[0].sLangId;
- for(var i=0;i<aProj.length;i++)
- {
- if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)
- {
- addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
- }
- }
- }
- writeDataIFrame();
- enEvt();
- }
- }
-}
-
-function getIdxTopics(aDataCon,nIdxSet,nIIdx)
-{
- var sTopics="";
- if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
- {
- if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
- {
- var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;
- var nProj=aDataCon[nIdxSet].nProjId;
- var sPath=gaData[nProj].sPPath;
- for(var i=0;i<nLen;i++)
- {
- var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;
- var sFullPath=_getFullPath(sPath,sURL);
- sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";
- }
- }
- }
- return sTopics;
-}
-
-function findCKInDom()
-{
- if(gsCK!=null)
- {
- var sK=gsCK;
- var oP=getElementsByTag(document,"P");
- if(!oP) return false;
- var len=oP.length;
- var nB=0;
- var nE=len-1;
- var nM=0;
- var sItem="";
- var bF=false;
- while(nB<nE){
- nM=(nB+nE+1)>>1;
- sItem=getInnerText(oP[nM]);
-
- if(compare(sItem,sK)==0)
- {
- bF=true;
- break;
- }
- else if(compare(sItem,sK)>0)
- nE=nM-1;
- else if(compare(sItem,sK)<0)
- nB=nM;
- }
- if(!bF)
- {
- if(nB==nE) nM=nB;
-
- if(nM+1<len)
- {
- sItem=getInnerText(oP[nM+1]);
- if(compare(sItem,sK)<=0) nM++;
- }
- if(nM+1<len)
- {
- sItem=getInnerText(oP[nM+1]);
- if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
- }
- }
-
- var oMatch=oP[nM];
- if(oMatch)
- {
- window.scrollTo(0,oMatch.offsetTop);
- var tempColl=getElementsByTag(oMatch,"A");
- if(tempColl&&tempColl.length>0){
- var nbTag=getElementsByTag(oMatch,"NOBR");
- if(nbTag&&nbTag.length>0)
- HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");
- if (gbCR)
- {
- if (gbIE4)
- tempColl(0).click();
- else
- {
- var strCommand = tempColl[0].getAttribute("onClick");
- var nstrCommand = strCommand.indexOf(";");
- strCommand = strCommand.substring(0, nstrCommand);
- strCommand = strCommand.replace("event", "_event");
- window._event.pageX = oMatch.offsetLeft ;
- window._event.pageY = oMatch.offsetTop + 20;
- window.setTimeout(strCommand, 100);
- }
- }
- }
- }
- gsCK=gsBCK;
- gbCR=gbBCR;
- if(gsBCK!=null)
- {
- gsBCK=null;
- gbBCR=false;
- findCK();
- return false;
- }
-
- }
- return true;
-}
-
-function clearHighLight()
-{
- resetHighLight(gsBgColor);
-}
-
-function IndexWriteClassStyle()
-{
- var sStyle="";
- sStyle+="<STYLE TYPE='text/css'>";
- if (gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- if(gbIE4&&gbMac&&!gbIE5)
- {
- var nMargin=parseInt(gsIdxMargin);
- nMargin-=10;
- sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
- sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
- sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";
- }
- else
- {
- sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
- sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
- }
- sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
- sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";
- sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";
- sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";
- sStyle+="</STYLE>";
- document.write(sStyle);
- return;
-}
-
-function window_Unload()
-{
- UnRegisterListener2(this,WH_MSG_PROJECTREADY);
- UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
-}
-
-function onSendMessage(oMsg)
-{
- if(oMsg)
- {
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_SEARCHINDEXKEY)
- {
- if(oMsg.oParam && oMsg.oParam.sInput)
- {
- if(gsCK==null)
- {
- gsCK=oMsg.oParam.sInput;
- gbCR = oMsg.oParam.bCR;
- findCK();
- }
- else
- {
- gsBCK=oMsg.oParam.sInput;
- gbBCR = oMsg.oParam.bCR;
- }
- }
- }
- else if(nMsgId==WH_MSG_PROJECTREADY)
- {
- loadIdx();
- }
- }
- return true;
-}
-
-if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
-{
- RegisterListener2(this,WH_MSG_PROJECTREADY);
- RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
- goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
- goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
- goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
- window.onload=window_OnLoad;
- window.onbeforeunload=window_BUnload;
- window.onunload=window_Unload;
- gbWhIHost=true;
-}
-else
- document.location.reload();
-
+++ /dev/null
-// WebHelp 5.10.001
-var garrSortChar=new Array();
-var gaFtsStop=new Array();
-var gaFtsStem=new Array();
-var gbWhLang=false;
-
-garrSortChar[0] = 0;
-garrSortChar[1] = 1;
-garrSortChar[2] = 2;
-garrSortChar[3] = 3;
-garrSortChar[4] = 4;
-garrSortChar[5] = 5;
-garrSortChar[6] = 6;
-garrSortChar[7] = 7;
-garrSortChar[8] = 8;
-garrSortChar[9] = 40;
-garrSortChar[10] = 41;
-garrSortChar[11] = 42;
-garrSortChar[12] = 43;
-garrSortChar[13] = 44;
-garrSortChar[14] = 9;
-garrSortChar[15] = 10;
-garrSortChar[16] = 11;
-garrSortChar[17] = 12;
-garrSortChar[18] = 13;
-garrSortChar[19] = 14;
-garrSortChar[20] = 15;
-garrSortChar[21] = 16;
-garrSortChar[22] = 17;
-garrSortChar[23] = 18;
-garrSortChar[24] = 19;
-garrSortChar[25] = 20;
-garrSortChar[26] = 21;
-garrSortChar[27] = 22;
-garrSortChar[28] = 23;
-garrSortChar[29] = 24;
-garrSortChar[30] = 25;
-garrSortChar[31] = 26;
-garrSortChar[32] = 38;
-garrSortChar[33] = 45;
-garrSortChar[34] = 46;
-garrSortChar[35] = 47;
-garrSortChar[36] = 48;
-garrSortChar[37] = 49;
-garrSortChar[38] = 50;
-garrSortChar[39] = 33;
-garrSortChar[40] = 51;
-garrSortChar[41] = 52;
-garrSortChar[42] = 53;
-garrSortChar[43] = 88;
-garrSortChar[44] = 54;
-garrSortChar[45] = 34;
-garrSortChar[46] = 55;
-garrSortChar[47] = 56;
-garrSortChar[48] = 115;
-garrSortChar[49] = 119;
-garrSortChar[50] = 121;
-garrSortChar[51] = 123;
-garrSortChar[52] = 125;
-garrSortChar[53] = 126;
-garrSortChar[54] = 127;
-garrSortChar[55] = 128;
-garrSortChar[56] = 129;
-garrSortChar[57] = 130;
-garrSortChar[58] = 57;
-garrSortChar[59] = 58;
-garrSortChar[60] = 89;
-garrSortChar[61] = 90;
-garrSortChar[62] = 91;
-garrSortChar[63] = 59;
-garrSortChar[64] = 60;
-garrSortChar[65] = 131;
-garrSortChar[66] = 148;
-garrSortChar[67] = 150;
-garrSortChar[68] = 154;
-garrSortChar[69] = 158;
-garrSortChar[70] = 168;
-garrSortChar[71] = 171;
-garrSortChar[72] = 173;
-garrSortChar[73] = 175;
-garrSortChar[74] = 185;
-garrSortChar[75] = 187;
-garrSortChar[76] = 189;
-garrSortChar[77] = 191;
-garrSortChar[78] = 193;
-garrSortChar[79] = 197;
-garrSortChar[80] = 214;
-garrSortChar[81] = 216;
-garrSortChar[82] = 218;
-garrSortChar[83] = 220;
-garrSortChar[84] = 225;
-garrSortChar[85] = 230;
-garrSortChar[86] = 240;
-garrSortChar[87] = 242;
-garrSortChar[88] = 244;
-garrSortChar[89] = 246;
-garrSortChar[90] = 252;
-garrSortChar[91] = 61;
-garrSortChar[92] = 62;
-garrSortChar[93] = 63;
-garrSortChar[94] = 64;
-garrSortChar[95] = 66;
-garrSortChar[96] = 67;
-garrSortChar[97] = 131;
-garrSortChar[98] = 148;
-garrSortChar[99] = 150;
-garrSortChar[100] = 154;
-garrSortChar[101] = 158;
-garrSortChar[102] = 168;
-garrSortChar[103] = 171;
-garrSortChar[104] = 173;
-garrSortChar[105] = 175;
-garrSortChar[106] = 185;
-garrSortChar[107] = 187;
-garrSortChar[108] = 189;
-garrSortChar[109] = 191;
-garrSortChar[110] = 193;
-garrSortChar[111] = 197;
-garrSortChar[112] = 214;
-garrSortChar[113] = 216;
-garrSortChar[114] = 218;
-garrSortChar[115] = 220;
-garrSortChar[116] = 225;
-garrSortChar[117] = 230;
-garrSortChar[118] = 240;
-garrSortChar[119] = 242;
-garrSortChar[120] = 244;
-garrSortChar[121] = 246;
-garrSortChar[122] = 252;
-garrSortChar[123] = 68;
-garrSortChar[124] = 69;
-garrSortChar[125] = 70;
-garrSortChar[126] = 71;
-garrSortChar[127] = 27;
-garrSortChar[128] = 114;
-garrSortChar[129] = 28;
-garrSortChar[130] = 82;
-garrSortChar[131] = 170;
-garrSortChar[132] = 85;
-garrSortChar[133] = 112;
-garrSortChar[134] = 109;
-garrSortChar[135] = 110;
-garrSortChar[136] = 65;
-garrSortChar[137] = 113;
-garrSortChar[138] = 223;
-garrSortChar[139] = 86;
-garrSortChar[140] = 213;
-garrSortChar[141] = 29;
-garrSortChar[142] = 255;
-garrSortChar[143] = 30;
-garrSortChar[144] = 31;
-garrSortChar[145] = 80;
-garrSortChar[146] = 81;
-garrSortChar[147] = 83;
-garrSortChar[148] = 84;
-garrSortChar[149] = 111;
-garrSortChar[150] = 36;
-garrSortChar[151] = 37;
-garrSortChar[152] = 79;
-garrSortChar[153] = 229;
-garrSortChar[154] = 222;
-garrSortChar[155] = 87;
-garrSortChar[156] = 212;
-garrSortChar[157] = 32;
-garrSortChar[158] = 254;
-garrSortChar[159] = 251;
-garrSortChar[160] = 39;
-garrSortChar[161] = 72;
-garrSortChar[162] = 97;
-garrSortChar[163] = 98;
-garrSortChar[164] = 99;
-garrSortChar[165] = 100;
-garrSortChar[166] = 73;
-garrSortChar[167] = 101;
-garrSortChar[168] = 74;
-garrSortChar[169] = 102;
-garrSortChar[170] = 133;
-garrSortChar[171] = 93;
-garrSortChar[172] = 103;
-garrSortChar[173] = 35;
-garrSortChar[174] = 104;
-garrSortChar[175] = 75;
-garrSortChar[176] = 105;
-garrSortChar[177] = 92;
-garrSortChar[178] = 122;
-garrSortChar[179] = 124;
-garrSortChar[180] = 76;
-garrSortChar[181] = 106;
-garrSortChar[182] = 107;
-garrSortChar[183] = 108;
-garrSortChar[184] = 77;
-garrSortChar[185] = 120;
-garrSortChar[186] = 199;
-garrSortChar[187] = 94;
-garrSortChar[188] = 116;
-garrSortChar[189] = 117;
-garrSortChar[190] = 118;
-garrSortChar[191] = 78;
-garrSortChar[192] = 131;
-garrSortChar[193] = 131;
-garrSortChar[194] = 131;
-garrSortChar[195] = 131;
-garrSortChar[196] = 131;
-garrSortChar[197] = 131;
-garrSortChar[198] = 131;
-garrSortChar[199] = 150;
-garrSortChar[200] = 158;
-garrSortChar[201] = 158;
-garrSortChar[202] = 158;
-garrSortChar[203] = 158;
-garrSortChar[204] = 175;
-garrSortChar[205] = 175;
-garrSortChar[206] = 175;
-garrSortChar[207] = 175;
-garrSortChar[208] = 154;
-garrSortChar[209] = 193;
-garrSortChar[210] = 197;
-garrSortChar[211] = 197;
-garrSortChar[212] = 197;
-garrSortChar[213] = 197;
-garrSortChar[214] = 197;
-garrSortChar[215] = 95;
-garrSortChar[216] = 197;
-garrSortChar[217] = 230;
-garrSortChar[218] = 230;
-garrSortChar[219] = 230;
-garrSortChar[220] = 230;
-garrSortChar[221] = 246;
-garrSortChar[222] = 227;
-garrSortChar[223] = 224;
-garrSortChar[224] = 131;
-garrSortChar[225] = 131;
-garrSortChar[226] = 131;
-garrSortChar[227] = 131;
-garrSortChar[228] = 131;
-garrSortChar[229] = 131;
-garrSortChar[230] = 131;
-garrSortChar[231] = 150;
-garrSortChar[232] = 158;
-garrSortChar[233] = 158;
-garrSortChar[234] = 158;
-garrSortChar[235] = 158;
-garrSortChar[236] = 175;
-garrSortChar[237] = 175;
-garrSortChar[238] = 175;
-garrSortChar[239] = 175;
-garrSortChar[240] = 154;
-garrSortChar[241] = 193;
-garrSortChar[242] = 197;
-garrSortChar[243] = 197;
-garrSortChar[244] = 197;
-garrSortChar[245] = 197;
-garrSortChar[246] = 197;
-garrSortChar[247] = 96;
-garrSortChar[248] = 197;
-garrSortChar[249] = 230;
-garrSortChar[250] = 230;
-garrSortChar[251] = 230;
-garrSortChar[252] = 230;
-garrSortChar[253] = 246;
-garrSortChar[254] = 227;
-garrSortChar[255] = 250;
-
-gaFtsStop[0] = "a";
-gaFtsStop[1] = "about";
-gaFtsStop[2] = "after";
-gaFtsStop[3] = "against";
-gaFtsStop[4] = "all";
-gaFtsStop[5] = "also";
-gaFtsStop[6] = "among";
-gaFtsStop[7] = "an";
-gaFtsStop[8] = "and";
-gaFtsStop[9] = "are";
-gaFtsStop[10] = "as";
-gaFtsStop[11] = "at";
-gaFtsStop[12] = "be";
-gaFtsStop[13] = "became";
-gaFtsStop[14] = "because";
-gaFtsStop[15] = "been";
-gaFtsStop[16] = "between";
-gaFtsStop[17] = "but";
-gaFtsStop[18] = "by";
-gaFtsStop[19] = "can";
-gaFtsStop[20] = "come";
-gaFtsStop[21] = "do";
-gaFtsStop[22] = "during";
-gaFtsStop[23] = "each";
-gaFtsStop[24] = "early";
-gaFtsStop[25] = "for";
-gaFtsStop[26] = "form";
-gaFtsStop[27] = "found";
-gaFtsStop[28] = "from";
-gaFtsStop[29] = "had";
-gaFtsStop[30] = "has";
-gaFtsStop[31] = "have";
-gaFtsStop[32] = "he";
-gaFtsStop[33] = "her";
-gaFtsStop[34] = "his";
-gaFtsStop[35] = "however";
-gaFtsStop[36] = "in";
-gaFtsStop[37] = "include";
-gaFtsStop[38] = "into";
-gaFtsStop[39] = "is";
-gaFtsStop[40] = "it";
-gaFtsStop[41] = "its";
-gaFtsStop[42] = "late";
-gaFtsStop[43] = "later";
-gaFtsStop[44] = "made";
-gaFtsStop[45] = "many";
-gaFtsStop[46] = "may";
-gaFtsStop[47] = "me";
-gaFtsStop[48] = "med";
-gaFtsStop[49] = "more";
-gaFtsStop[50] = "most";
-gaFtsStop[51] = "near";
-gaFtsStop[52] = "no";
-gaFtsStop[53] = "non";
-gaFtsStop[54] = "not";
-gaFtsStop[55] = "of";
-gaFtsStop[56] = "on";
-gaFtsStop[57] = "only";
-gaFtsStop[58] = "or";
-gaFtsStop[59] = "other";
-gaFtsStop[60] = "over";
-gaFtsStop[61] = "several";
-gaFtsStop[62] = "she";
-gaFtsStop[63] = "some";
-gaFtsStop[64] = "such";
-gaFtsStop[65] = "than";
-gaFtsStop[66] = "that";
-gaFtsStop[67] = "the";
-gaFtsStop[68] = "their";
-gaFtsStop[69] = "then";
-gaFtsStop[70] = "there";
-gaFtsStop[71] = "these";
-gaFtsStop[72] = "they";
-gaFtsStop[73] = "this";
-gaFtsStop[74] = "through";
-gaFtsStop[75] = "to";
-gaFtsStop[76] = "under";
-gaFtsStop[77] = "until";
-gaFtsStop[78] = "use";
-gaFtsStop[79] = "was";
-gaFtsStop[80] = "we";
-gaFtsStop[81] = "were";
-gaFtsStop[82] = "when";
-gaFtsStop[83] = "where";
-gaFtsStop[84] = "which";
-gaFtsStop[85] = "who";
-gaFtsStop[86] = "with";
-gaFtsStop[87] = "you";
-
-gaFtsStem[0] = "ed";
-gaFtsStem[1] = "es";
-gaFtsStem[2] = "er";
-gaFtsStem[3] = "e";
-gaFtsStem[4] = "s";
-gaFtsStem[5] = "ingly";
-gaFtsStem[6] = "ing";
-gaFtsStem[7] = "ly";
-
-
-// as javascript 1.3 support unicode instead of ISO-Latin-1
-// need to transfer come code back to ISO-Latin-1 for compare purpose
-// Note: Different Language(Code page) maybe need different array:
-var gaUToC=new Array();
-gaUToC[8364]=128;
-gaUToC[8218]=130;
-gaUToC[402]=131;
-gaUToC[8222]=132;
-gaUToC[8230]=133;
-gaUToC[8224]=134;
-gaUToC[8225]=135;
-gaUToC[710]=136;
-gaUToC[8240]=137;
-gaUToC[352]=138;
-gaUToC[8249]=139;
-gaUToC[338]=140;
-gaUToC[381]=142;
-gaUToC[8216]=145;
-gaUToC[8217]=146;
-gaUToC[8220]=147;
-gaUToC[8221]=148;
-gaUToC[8226]=149;
-gaUToC[8211]=150;
-gaUToC[8212]=151;
-gaUToC[732]=152;
-gaUToC[8482]=153;
-gaUToC[353]=154;
-gaUToC[8250]=155;
-gaUToC[339]=156;
-gaUToC[382]=158;
-gaUToC[376]=159;
-
-var gsBiggestChar="";
-function getBiggestChar()
-{
- if(gsBiggestChar.length==0)
- {
- if(garrSortChar.length<256)
- gsBiggestChar=String.fromCharCode(255);
- else
- {
- var nBiggest=0;
- var nBigChar=0;
- for(var i=0;i<=255;i++)
- {
- if(garrSortChar[i]>nBiggest)
- {
- nBiggest=garrSortChar[i];
- nBigChar=i;
- }
- }
- gsBiggestChar=String.fromCharCode(nBigChar);
- }
-
- }
- return gsBiggestChar;
-}
-
-function getCharCode(str,i)
-{
- var code=str.charCodeAt(i)
- if(code>256)
- {
- code=gaUToC[code];
- }
- return code;
-}
-
-function compare(strText1,strText2)
-{
- if(garrSortChar.length<256)
- {
- var strt1=strText1.toLowerCase();
- var strt2=strText2.toLowerCase();
- if(strt1<strt2) return -1;
- if(strt1>strt2) return 1;
- return 0;
- }
- else
- {
- for(var i=0;i<strText1.length&&i<strText2.length;i++)
- {
- if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;
- if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;
- }
- if(strText1.length<strText2.length) return -1;
- if(strText1.length>strText2.length) return 1;
- return 0;
- }
-}
-gbWhLang=true;
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.002
-if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){
-
-HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
-{
- switch (where){
- case 'beforeBegin':
- this.parentNode.insertBefore(parsedNode,this);
- break;
- case 'afterBegin':
- this.insertBefore(parsedNode,this.firstChild);
- break;
- case 'beforeEnd':
- this.appendChild(parsedNode);
- break;
- case 'afterEnd':
- if (this.nextSibling){
- this.parentNode.insertBefore(parsedNode,this.nextSibling);
- } else {
- this.parentNode.appendChild(parsedNode);
- }
- break;
- }
-}
-
-HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
-
- var r = this.ownerDocument.createRange();
- r.setStartBefore(this);
- var parsedHTML = r.createContextualFragment(htmlStr);
- this.insertAdjacentElement(where,parsedHTML);
-}
-
-
-HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
-
- var parsedText = document.createTextNode(txtStr);
- this.insertAdjacentElement(where,parsedText);
-}
-}
-
-function testScroll() {
- // Initialize scrollbar cache if necessary
- if (window._pageXOffset==null) {
- window._pageXOffset = window.pageXOffset;
- window._pageYOffset = window.pageYOffset;
- }
- // Expose Internet Explorer compatible object model
- document.scrollTop = window.pageYOffset;
- document.scrollLeft = window.pageXOffset;
- window.document.scrollHeight = document.height;
- window.document.scrollWidth = document.width;
- window.document.clientWidth = window.innerWidth;
- window.document.clientHeight = window.innerHeight;
-
- // If cache!=current values, call the onscroll event
- if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll))
- window.onscroll();
- // Cache new values
- window._pageXOffset = window.pageXOffset;
- window._pageYOffset = window.pageYOffset;
- }
-
-// Create compatibility layer for Netscape
-if (window.gbNav6 && !window.gbNav7) {
- setInterval("testScroll()",50)
-}
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.002
-var WH_MSG_RESIZEPANE =0x0100;
-var WH_MSG_SHOWPANE =0x0101;
-var WH_MSG_HIDEPANE =0x0102;
-var WH_MSG_SYNCTOC =0x0103;
-var WH_MSG_NEXT =0x0104;
-var WH_MSG_PREV =0x0105;
-var WH_MSG_NOSEARCHINPUT =0x0106;
-var WH_MSG_NOSYNC =0x0107;
-var WH_MSG_ENABLEWEBSEARCH =0x0108;
-
-var WH_MSG_ISPANEVISIBLE =0x0109;
-var WH_MSG_PANESTATUE =0x010a;
-
-var WH_MSG_SYNCINFO =0x010b;
-var WH_MSG_PANEINFO =0x010c;
-var WH_MSG_WEBSEARCH =0x010d;
-
-var WH_MSG_SEARCHINDEXKEY =0x0201;
-
-var WH_MSG_SEARCHFTSKEY =0x020a;
-
-var WH_MSG_PROJECTREADY =0x0301;
-var WH_MSG_GETPROJINFO =0x0302;
-
-var WH_MSG_SHOWTOC =0x0401;
-var WH_MSG_SHOWIDX =0x0402;
-var WH_MSG_SHOWFTS =0x0403;
-var WH_MSG_SHOWGLO =0x0404;
-
-var WH_MSG_SHOWGLODEF =0x0500;
-
-var WH_MSG_GETTOCPATHS =0x0600;
-var WH_MSG_GETAVIAVENUES =0x0601;
-var WH_MSG_GETCURRENTAVENUE =0x0602;
-var WH_MSG_GETPANEINFO =0x0603;
-var WH_MSG_AVENUEINFO =0x0604;
-
-var WH_MSG_GETSTARTFRAME =0x0701;
-var WH_MSG_GETDEFAULTTOPIC =0x0702;
-
-var WH_MSG_SEARCHTHIS =0x0801;
-var WH_MSG_GETSEARCHS =0x0802;
-
-var WH_MSG_ISINFRAMESET =0x0900;
-
-var WH_MSG_TOOLBARORDER =0x0a00;
-var WH_MSG_MINIBARORDER =0x0a01;
-var WH_MSG_ISSYNCSSUPPORT =0x0a02;
-var WH_MSG_ISSEARCHSUPPORT =0x0a03;
-var WH_MSG_GETPANETYPE =0x0a04;
-var WH_MSG_BACKUPSEARCH =0x0a05;
-var WH_MSG_GETPANES =0x0a06;
-var WH_MSG_INITSEARCHSTRING =0x0a07;
-var WH_MSG_RELOADNS6 =0x0a08;
-var WH_MSG_ISAVENUESUPPORT =0x0a09;
-
-var WH_MSG_GETCMD =0x0b00;
-var WH_MSG_GETPANE =0x0b01;
-var WH_MSG_GETDEFPANE =0x0b02;
-
-function whMessage(nMessageId,wSender,nVersion,oParam)
-{
- this.nMessageId=nMessageId;
- this.wSender=wSender;
- this.nVersion=nVersion;
- this.oParam=oParam;
-}
-var gbWhMsg=true;
\ No newline at end of file
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whstub.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript1.2">
-<!--
-function window_Onload()
-{
- if (window.gsTopic)
- frames["bsscright"].document.location = window.gsTopic;
-}
-window.onload=window_Onload;
-//-->
-</script>
-</head>
-
-<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="mesh.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>
-</html>
+++ /dev/null
-// WebHelp 5.10.005
-var gaProj=new Array();
-var gnChecked=0;
-var gsProjName="";
-var gbReady=false;
-var goMan=null;
-var gbXML=false;
-var gsFirstPane="";
-var gServerEnabled=false;
-var gsPath="";
-var gbWhPHost=false;
-var goDiv = null;
-var gsHTML = "";
-
-if (navigator.currentNavPen)
- gsFirstPane = navigator.currentNavPen;
-
-
-function delayLoad()
-{
- if (goDiv&&gsHTML)
- {
- goDiv.innerHTML=gsHTML;
- goDiv=null;
- gsHTML="";
- }
-}
-
-function whCom(sName,sComFile)
-{
- this.msName=sName;
- this.msDivId=sName+"Div";
- this.msIFrameId=sName+"IFrame";
- this.msComFile=sComFile;
- this.mbloaded=false;
- this.mbShow=false;
- this.show=function(bShow)
- {
- if(this.mbShow!=bShow)
- {
- if(bShow&&!this.mbloaded)
- {
- this.load();
- }
-
- var oDiv=getElement(this.msDivId);
- if(oDiv)
- {
- if(gbIE55||(gbIE5&&gbMac))
- {
- var oIframe=getElement(this.msIFrameId);
- if(oIframe)
- {
- if(bShow)
- {
- oDiv.style.zIndex=3;
- if(oIframe!=null)
- {
- oIframe.style.zIndex=3;
- if (!gbIE55)
- oIframe.style.visibility="visible";
- }
- }
- else
- {
- oDiv.style.zIndex=2;
- if(oIframe!=null)
- {
- oIframe.style.zIndex=2;
- if (!gbIE55)
- oIframe.style.visibility="hidden";
- }
- }
- }
- }
- if (!gbIE55)
- oDiv.style.visibility=(bShow==true)?'visible':'hidden';
- this.mbShow=bShow;
- }
-
- }
- }
- this.load=function()
- {
- if(!this.mbloaded)
- {
- if(this.msComFile.length>0){
- var strFile= _getFullPath(getPath(), this.msComFile);
- var oDiv=getElement(this.msDivId);
- if(oDiv){
- if(gbIE4||gbOpera7){
- var nIFrameHeight=oDiv.style.pixelHeight;
- var nIFrameWidth=oDiv.style.pixelWidth;
- var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";
- if(gbMac){
- sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";
- }else{
- sHTML+="100%; height:100%;\"></IFRAME>";
- }
- oDiv.innerHTML=sHTML;
- }else if(gbNav6){
- gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:100%;\"></IFRAME>";
- goDiv = oDiv;
- setTimeout("delayLoad()", 100);
- }
- this.mbloaded=true;
- }
- }
- }
- }
- this.unload=function()
- {
- var oDiv=getElement(this.msDivId);
- if(oDiv)
- oDiv.innerHTML="";
- }
- this.getDivHTML=function()
- {
- var sHTML="";
- if(gbMac&&gbIE4)
- sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";
- else if(gbIE5)
- sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";
- else if(gbIE4||gbWindows)
- sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
- else
- sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
- sHTML+="</DIV>";
- return sHTML;
- }
-}
-
-function whComMan()
-{
- this.sName="";
- this.maCom=new Array();
- this.addCom=function(sName,sComFile)
- {
- var owhCom=new whCom(sName,sComFile);
- this.maCom[this.maCom.length]=owhCom;
- }
- this.init=function()
- {
- var sHTML="";
- for(var i=0;i<this.maCom.length;i++)
- {
- sHTML+=this.maCom[i].getDivHTML();
- }
- document.body.insertAdjacentHTML("beforeEnd",sHTML);
-
- }
- this.showById=function(nId)
- {
- for(var s=0;s<this.maCom.length;s++)
- {
- if(s!==nId)
- this.maCom[s].show(false);
- }
- this.maCom[nId].show(true);
- }
- this.show=function(sName)
- {
- navigator.currentNavPen = sName;
- var bFound=false;
- for(var i=0;i<this.maCom.length;i++)
- {
- if(sName==this.maCom[i].msName)
- {
- bFound=true;
- break;
- }
- }
- if(bFound)
- {
- this.showById(i);
- this.sName=sName;
- }
- }
- this.unload=function()
- {
- for(var i=0;i<this.maCom.length;i++)
- {
- this.maCom[i].unload();
- }
- }
- this.getCurrent=function()
- {
- return this.sName;
- }
-}
-
-function getPath()
-{
- if(gsPath=="")
- {
- gsPath=location.href;
- gsPath=_replaceSlash(gsPath);
- var nPosFile=gsPath.lastIndexOf("/");
- gsPath=gsPath.substring(0,nPosFile+1);
- }
- return gsPath;
-}
-
-goMan=new whComMan();
-function addPane(sName,sFileName)
-{
- var oParam=new Object();
- oParam.sName=sName;
- var oMsg=new whMessage(WH_MSG_GETPANE, this, 1, oParam);
- if (SendMessage(oMsg))
- {
- if (oMsg.oParam.bEnable)
- goMan.addCom(sName,sFileName);
- }
- else
- goMan.addCom(sName,sFileName);
-}
-
-function setShowPane(sName, bForce)
-{
- if ((gsFirstPane == "") || bForce)
- {
- var oMsg=new whMessage(WH_MSG_GETDEFPANE, this, 1, null);
- if (SendMessage(oMsg))
- {
- if (oMsg.oParam)
- gsFirstPane = oMsg.oParam;
- else
- gsFirstPane=sName;
- }
- else
- gsFirstPane=sName;
- }
-}
-
-function window_OnLoad()
-{
- var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
- var bHidePane=false;
- if (SendMessage(oMsg))
- {
- if(oMsg.oParam>0)
- {
- if(oMsg.oParam==1)
- gsFirstPane="toc";
- else if(oMsg.oParam==2)
- gsFirstPane="idx";
- else if(oMsg.oParam==3)
- gsFirstPane="fts";
- else if(oMsg.oParam==4)
- gsFirstPane="glo";
- }
- else if(oMsg.oParam==0)
- {
- bHidePane=true;
- }
- }
- goMan.init();
- if(gsProjName!="")
- loadData2(gsProjName);
- if (bHidePane)
- {
- gsFirstPane="";
- var oMsg1=new whMessage(WH_MSG_HIDEPANE, this, 1, null)
- SendMessage(oMsg1);
- }
- else
- {
- if(gsFirstPane!="")
- goMan.show(gsFirstPane);
- else
- goMan.showById(0);
- }
-}
-
-function setServerEnabled()
-{
- gServerEnabled = true;
-}
-
-function loadData2(strFile)
-{
- if(gbXML)
- loadDataXML(strFile);
- else
- loadData(strFile);
-}
-
-function addProject(bPreferXML,sXMLName,sHTMLName)
-{
- var bLoadXML=bPreferXML;
- if(!gbIE4&&!gbNav6&&!gbOpera7)
- return;
- if(gbIE4&&!gbIE5)
- bLoadXML=false;
- if (gbIE5&&!gbMac)
- bLoadXML=true;
- if(gbIE55||gbNav6)
- bLoadXML=true;
- if(gbOpera7)
- bLoadXML=false;
- if(bLoadXML)
- addProjectXML(sXMLName);
- else
- addProjectHTML(sHTMLName);
-}
-
-function addProjectHTML(sName)
-{
- gbXML=false;
- gsProjName=sName;
-}
-
-function addProjectXML(sName)
-{
- gbXML=true;
- gsProjName=sName;
-}
-
-function window_MyBunload()
-{
- goMan.unload();
- window_BUnload();
-}
-
-function putDataXML(xmlDoc,sdocPath)
-{
- if(xmlDoc!=null)
- {
- var projectNode=xmlDoc.getElementsByTagName("project")[0];
- if(projectNode)
- {
- var aRProj=new Array();
- aRProj[0]=new Object();
- aRProj[0].sPPath=_getPath(sdocPath);
- var sLangId=projectNode.getAttribute("langid");
- if(sLangId)
- {
- aRProj[0].sLangId=sLangId;
- }
- var sDPath=projectNode.getAttribute("datapath");
- if(sDPath)
- {
- if(sDPath.lastIndexOf("/")!=sDPath.length-1)
- sDPath+="/";
- aRProj[0].sDPath=sDPath;
- }
- else
- aRProj[0].sDPath="";
- aRProj[0].sToc=projectNode.getAttribute("toc");
- aRProj[0].sIdx=projectNode.getAttribute("index");
- aRProj[0].sFts=projectNode.getAttribute("fts");
- aRProj[0].sGlo=projectNode.getAttribute("glossary");
- var RmtProject=projectNode.getElementsByTagName("remote");
- var nCount=1;
- for (var i=0;i<RmtProject.length;i++)
- {
- var sURL=RmtProject[i].getAttribute("url");
- if(sURL)
- {
- if(sURL.lastIndexOf("/")!=sURL.length-1)
- sURL+="/";
- aRProj[nCount]=new Object();
- aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);
- }
- }
- putProjectInfo(aRProj);
- }
- else
- {
- // on Netscape 6.0 under some situation the xml file cannot be loaded.
- // so we use pure html instead.
- if (gnChecked == 0)
- setTimeout("redirectToList();",100);
- else
- {
- gnChecked++;
- setTimeout("checkRemoteProject();", 1);
- }
- }
- }
-}
-
-function onLoadXMLError()
-{
- gnChecked++;
- setTimeout("checkRemoteProject();", 1);
-}
-
-function redirectToList()
-{
- if(gbReDirectThis)
- document.location=gsNavReDirect;
- else
- parent.document.location=gsNavReDirect;
-}
-
-function putProjectInfo(aRProj)
-{
- if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))
- {
- if(gnChecked!=0)
- {
- if(aRProj[0].sLangId!=gaProj[0].sLangId)
- alert("The merged Help system "+aRProj[0].sPPath+" is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system.");
- }
- gaProj[gnChecked]=aRProj[0];
- for(var i=1;i<aRProj.length;i++)
- {
- var bFound=false;
- for(var j=0;j<gaProj.length;j++)
- {
- if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))
- {
- bFound=true;
- break;
- }
- }
- if(!bFound)
- {
- gaProj[gaProj.length]=aRProj[i];
- }
- }
- gnChecked++;
- setTimeout("checkRemoteProject();", 1);
- }
- else
- alert("Could not load correctly, please click Refresh.");
-}
-
-function isSamePath(sPath1,sPath2)
-{
- return (sPath1.toLowerCase()==sPath2.toLowerCase());
-}
-
-function checkRemoteProject()
-{
- if(gaProj.length!=gnChecked)
- {
- setTimeout("cancelProj("+gnChecked+");",10000);
- loadData2(gaProj[gnChecked].sPPath+gsProjName);
- }
- else{
- var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);
- gbReady=true;
- SendMessage(oMsg);
- }
-}
-
-function cancelProj(i)
-{
- if(i==gnChecked)
- {
- gnChecked++;
- setTimeout("checkRemoteProject();", 1);
- }
-}
-
-function window_resize()
-{
- for(var i=0;i<goMan.maCom.length;i++)
- {
- var oFrame=getElement(goMan.maCom[i].msIFrameId);
- if(oFrame)
- {
- oFrame.style.height=document.body.clientHeight;
- oFrame.style.width=document.body.clientWidth;
- }
- }
- window_resize2();
-}
-
-function window_resize2()
-{
- if(document.body)
- {
- if(document.body.clientWidth > 1 && document.body.clientHeight>1)
- {
- var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);
- SendMessage(oMsg);
- }
- }
-}
-
-function window_unload()
-{
- UnRegisterListener2(this,WH_MSG_GETPROJINFO);
- UnRegisterListener2(this,WH_MSG_SHOWTOC);
- UnRegisterListener2(this,WH_MSG_SHOWIDX);
- UnRegisterListener2(this,WH_MSG_SHOWFTS);
- UnRegisterListener2(this,WH_MSG_SHOWGLO);
- UnRegisterListener2(this,WH_MSG_GETPANEINFO);
-}
-
-function onSendMessage(oMsg)
-{
- if(oMsg)
- {
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_GETPROJINFO)
- {
- if(gbReady)
- {
- var oProj=new Object();
- oProj.aProj=gaProj;
- oProj.bXML=gbXML;
- oMsg.oParam=oProj;
- }
- else
- return false;
- }
- else if(nMsgId==WH_MSG_SHOWTOC)
- {
- if(goMan)
- goMan.show("toc");
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if(nMsgId==WH_MSG_SHOWIDX)
- {
- if(goMan)
- goMan.show("idx");
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if(nMsgId==WH_MSG_SHOWFTS)
- {
- if(goMan)
- goMan.show("fts");
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if(nMsgId==WH_MSG_SHOWGLO)
- {
- if(goMan)
- goMan.show("glo");
- var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
- SendMessage(onMsg);
- }
- else if(nMsgId==WH_MSG_GETPANEINFO)
- {
- oMsg.oParam=goMan.getCurrent();
- return false;
- }
- }
- return true;
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
- RegisterListener2(this,WH_MSG_GETPROJINFO);
- RegisterListener2(this,WH_MSG_SHOWTOC);
- RegisterListener2(this,WH_MSG_SHOWIDX);
- RegisterListener2(this,WH_MSG_SHOWFTS);
- RegisterListener2(this,WH_MSG_SHOWGLO);
- RegisterListener2(this,WH_MSG_GETPANEINFO);
-
- if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)||gbOpera7)
- {
- window.onresize=window_resize;
- }
- else if(gbIE4)
- {
- window.onresize=window_resize2;
- }
- window.onload=window_OnLoad;
- window.onbeforeunload=window_MyBunload;
- window.onunload=window_unload;
- gbWhPHost=true;
-}
-else
- document.location.reload();
-
+++ /dev/null
-<html>
-<head>
-<title>project description</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whproj.js"></script>
-<script language="javascript1.2">
-<!--
- setLangId("1033");
- setDataPath("whdata");
- addToc("whtoc.htm");
-
- addFts("whfts.htm");
- addGlo("whglo.htm");
-
-//-->
-</script>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.001
-var gaProj=new Array();
-
-gaProj[0]=new project("");
-
-function setLangId(sLangId)
-{
- gaProj[0].sLangId=sLangId;
-}
-
-function setDataPath(sPath)
-{
- if(sPath.length!=0)
- {
- if(sPath.lastIndexOf("/")!=sPath.length-1)
- sPath+="/";
- gaProj[0].sDPath=sPath;
- }
- else
- gaProj[0].sDPath="";
-}
-
-function addToc(sFile)
-{
- gaProj[0].sToc=sFile;
-}
-
-function addIdx(sFile)
-{
- gaProj[0].sIdx=sFile;
-}
-
-function addFts(sFile)
-{
- gaProj[0].sFts=sFile;
-}
-
-function addGlo(sFile)
-{
- gaProj[0].sGlo=sFile;
-}
-
-function addRemoteProject(sProjRelPath)
-{
- if(sProjRelPath.lastIndexOf("/")!=sProjRelPath.length-1)
- sProjRelPath+="/";
- gaProj[gaProj.length]=new project(sProjRelPath);
-}
-
-function project(sPPath)
-{
- this.sPPath=sPPath;
- this.sLangId="";
- this.sDPath="";
- this.sToc="";
- this.sIdx="";
- this.sFts="";
- this.sGlo="";
-}
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
- gsName=document.location.href;
- gsName=_replaceSlash(gsName);
- var nPos=gsName.lastIndexOf("/");
- if(nPos!=-1)
- gaProj[0].sPPath=gsName.substring(0,nPos+1);
- else
- alert("Error in Loading navigation component. Please regenerate WebHelp.");
- patchPath(gaProj);
- if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")
- {
- parent.putProjectInfo(gaProj);
- }
-}
-
-function patchPath(aProj)
-{
- for(var i=1;i<aProj.length;i++)
- {
- aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);
- }
-}
\ No newline at end of file
+++ /dev/null
-<?xml version='1.0' encoding='windows-1252' ?>
-<project langid="1033" datapath="whxdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >
-</project>
+++ /dev/null
-// WebHelp 5.10.001
-var gbInited=false;
-var gWndStubPage=null;
-function getStubPage()
-{
- if(!gbInited)
- {
- gWndStubPage=getStubPage_inter(window);
- gbInited=true;
- }
- return gWndStubPage;
-}
-
-function getStubPage_inter(wCurrent)
-{
- if(null==wCurrent.parent||wCurrent.parent==wCurrent)
- return null;
-
- if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)
- return wCurrent.parent;
- else
- if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)
- return getStubPage_inter(wCurrent.parent);
- else
- return null;
-}
-
-function RegisterListener(framename,nMessageId)
-{
- var wSP=getStubPage();
- if(wSP&&wSP!=this)
- return wSP.RegisterListener(framename,nMessageId);
- else
- return false;
-}
-
-function RegisterListener2(oframe,nMessageId)
-{
- var wSP=getStubPage();
- if(wSP&&wSP!=this)
- return wSP.RegisterListener2(oframe,nMessageId);
- else
- return false;
-}
-
-function UnRegisterListener2(oframe,nMessageId)
-{
- var wSP=getStubPage();
- if(wSP&&wSP!=this&&wSP.UnRegisterListener2)
- return wSP.UnRegisterListener2(oframe,nMessageId);
- else
- return false;
-}
-
-function SendMessage(oMessage)
-{
- var wSP=getStubPage();
- if(wSP&&wSP!=this&&wSP.SendMessage)
- return wSP.SendMessage(oMessage);
- else
- return false;
-}
-
-var gbWhProxy=true;
-
-var gbPreview=false;
-gbPreview=false;
-if (gbPreview)
- document.oncontextmenu=contextMenu;
-
-function contextMenu()
-{
- return false;
-}
+++ /dev/null
-<?xml version='1.0' encoding='windows-1252' ?>
-<resource>
-<item name="Prev" value="<<" />
-<item name="Hide" value="Hide" />
-<item name="SyncTocTooltip" value="Sync TOC" />
-<item name="InTopicSearchBtnText" value="Go" />
-<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />
-<item name="Done" value="Done" />
-<item name="Logo/Author" value="Powered By" />
-<item name="MergeError1" value="The merged Help system" />
-<item name="JS_alert_cantLoadProject" value="Can't load project:" />
-<item name="Next" value=">>" />
-<item name="SyncToc" value="SyncToc" />
-<item name="MergeError2" value="is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system." />
-<item name="nls_body_instruction" value="Enter your question in the text box above, then click GO." />
-<item name="ToolBarSearchBtnText" value="Go" />
-<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />
-<item name="Hide_Navigation_Component" value="Hide Navigation Component" />
-<item name="FtsBtnText" value="Go" />
-<item name="TopicsFound" value="Topics Found" />
-<item name="LoadingContentsData" value="Loading, click here to cancel..." />
-<item name="Definition" value="Definition:" />
-<item name="CompletingContents" value="Completing Contents..." />
-<item name="Seperate" value="|" />
-<item name="GeneratedBy" value="Generated by" />
-<item name="PoweredBy" value="Powered by" />
-<item name="IndexAlphabetBookmarks" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ" />
-<item name="Contents" value="Contents" />
-<item name="IndexSelectTopicLabel" value="Select a topic, then click Display" />
-<item name="Disabled Prev" value="<<" />
-<item name="Glossary" value="Glossary" />
-<item name="Search" value="Search" />
-<item name="CantSearch" value="Cannot search for that phrase." />
-<item name="LoadingIndex" value="Loading Index..." />
-<item name="LoadingData" value="Loading data, please wait..." />
-<item name="Show_Navigation_Component" value="Show Navigation Component" />
-<item name="Book" value="Book" />
-<item name="Disabled Next" value=">>" />
-<item name="nls_body_empty" value="Sorry, we were unable to find a good answer for your question." />
-<item name="nls_button_go_hint" value="Go Search" />
-<item name="Find" value="Find" />
-<item name="CantOpenURLorFile" value="Can't open URL or file" />
-<item name="Print" value="Print" />
-<item name="About" value="About" />
-<item name="Author" value="Author" />
-<item name="IndexSelectTopicTitle" value="Select a Topic" />
-<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />
-<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />
-<item name="LoadingTOCItem" value="Loading Table of Contents:" />
-<item name="Display" value="Display" />
-<item name="Cancel" value="Cancel" />
-<item name="IndexSelectTopicError" value="Please select a topic." />
-<item name="nls_edit_label" value="Type in your question:" />
-<item name="SearchLabel" value="Search" />
-<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />
-<item name="NextTooltip" value="Next Topic" />
-<item name="JS_alert_colorlimitation" value="WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors." />
-<item name="TopicsNotFound" value="No Topics Found." />
-<item name="Show" value="Show" />
-<item name="PreTooltip" value="Previous Topic" />
-<item name="SearchPrompt" value="- Search -" />
-<item name="IndexBtnText" value="Go" />
-<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />
-<item name="LoadingContents" value="Loading contents, please wait..." />
-<item name="Term" value="Term:" />
-<item name="WebSearchButton" value="WebSearch" />
-<item name="Remote_Page" value="Remote Page" />
-<item name="WebSearch" value="WebSearch" />
-<item name="LoadingFTS" value="Reading Search Data..." />
-<item name="Index" value="Index" />
-<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />
-<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />
-<item name="IndexInputPrompt" value="Type in the keyword to find:" />
-<item name="Page" value="Page" />
-<item name="SuggestViewNoFrameMsg2" value="hyperlink." />
-<item name="nls_button_go_text" value="Go" />
-<item name="Searching" value="Searching..." />
-
- <item name="English" value="" />
- <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />
-
- <panes show="0">
- <toc />
- <fts />
- <glossary />
- </panes>
-
- <stopwords>
- <word name="a" />
- <word name="about" />
- <word name="after" />
- <word name="against" />
- <word name="all" />
- <word name="also" />
- <word name="among" />
- <word name="an" />
- <word name="and" />
- <word name="are" />
- <word name="as" />
- <word name="at" />
- <word name="be" />
- <word name="became" />
- <word name="because" />
- <word name="been" />
- <word name="between" />
- <word name="but" />
- <word name="by" />
- <word name="can" />
- <word name="come" />
- <word name="do" />
- <word name="during" />
- <word name="each" />
- <word name="early" />
- <word name="for" />
- <word name="form" />
- <word name="found" />
- <word name="from" />
- <word name="had" />
- <word name="has" />
- <word name="have" />
- <word name="he" />
- <word name="her" />
- <word name="his" />
- <word name="however" />
- <word name="in" />
- <word name="include" />
- <word name="into" />
- <word name="is" />
- <word name="it" />
- <word name="its" />
- <word name="late" />
- <word name="later" />
- <word name="made" />
- <word name="many" />
- <word name="may" />
- <word name="me" />
- <word name="med" />
- <word name="more" />
- <word name="most" />
- <word name="near" />
- <word name="no" />
- <word name="non" />
- <word name="not" />
- <word name="of" />
- <word name="on" />
- <word name="only" />
- <word name="or" />
- <word name="other" />
- <word name="over" />
- <word name="several" />
- <word name="she" />
- <word name="some" />
- <word name="such" />
- <word name="than" />
- <word name="that" />
- <word name="the" />
- <word name="their" />
- <word name="then" />
- <word name="there" />
- <word name="these" />
- <word name="they" />
- <word name="this" />
- <word name="through" />
- <word name="to" />
- <word name="under" />
- <word name="until" />
- <word name="use" />
- <word name="was" />
- <word name="we" />
- <word name="were" />
- <word name="when" />
- <word name="where" />
- <word name="which" />
- <word name="who" />
- <word name="with" />
- <word name="you" />
- </stopwords>
-
- <stems>
- <stem name="ed" />
- <stem name="es" />
- <stem name="er" />
- <stem name="e" />
- <stem name="s" />
- <stem name="ingly" />
- <stem name="ing" />
- <stem name="ly" />
- </stems>
-
- <paneskin>
- <background color="" img="" />
- <font name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- <toc>
- <background color="" img="" />
- <icons>
- <book open="whd_toc2.gif" close="whd_toc1.gif" />
- <item local="whd_toc3.gif" remote="whd_toc4.gif" />
- <newbook open="whd_toc2.gif" close="whd_toc1.gif" />
- <newitem local="whd_toc3.gif" remote="whd_toc4.gif" />
- </icons>
- <fonts>
- <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
- </fonts>
- <activebackgroundcolor attr="#cccccc" />
- <margin attr="0pt" />
- <indent attr="9pt" />
- </toc>
- <index>
- <form>
- <fonts>
- <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- </fonts>
- <button normal="" hover="" />
- <editwith value="28" />
- </form>
- <background color="" img="" />
- <fonts>
- <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
- <empty name="Arial" size="9pt" color="#666666" style="normal" weight="normal" decoration="none" />
- </fonts>
- <activebackgroundcolor attr="#cccccc" />
- <margin attr="0pt" />
- <indent attr="9pt" />
- </index>
- <fts>
- <form>
- <fonts>
- <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- </fonts>
- <button normal="" hover="" />
- <editwith value="28" />
- </form>
- <background color="" img="" />
- <fonts>
- <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
- <error name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- </fonts>
- <activebackgroundcolor attr="#cccccc" />
- <margin attr="0pt" />
- <indent attr="9pt" />
- </fts>
- <glossary>
- <background color="" img="" />
- <fonts>
- <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
- <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
- </fonts>
- <activebackgroundcolor attr="#cccccc" />
- <margin attr="0pt" />
- <indent attr="9pt" />
- </glossary>
- </paneskin>
-</resource>
+++ /dev/null
-<html>
-<head>
-<title>Blank Page</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript">
-<!--
-var strDefaultTopic = "about:blank";
-var nWebhelpNavPaneMode = 1; //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
-var bNoApplet = false;
-var strPaneDHTML = "whd_nvp10.htm"; //whd_nvp10.htm if tab enabled, whnframe.htm if tab disabled.
-var strPaneApplet = "whd_nvp20.htm";
-var strPaneList = "whgdata/whnvp30.htm";
-
-var strHTML = "";
-var strPane = "";
-var nViewFrameType = -1;
-
-function CMRServer()
-{
- this.m_cAgents = new Array;
-}
-var cMRServer = new CMRServer;
-
-//figure out which mode is the best
-if (!window.gAgent)
-{
- // low end browser, we don't even try to determine it.
- document.location = "whnjs.htm";
-}
-else
-{
- if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
- document.location = "whnjs.htm";
- else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
- document.location = "whnjs.htm";
- else if (gbMac && gbIE4 && !gbIE5)
- document.location = "whnjs.htm";
- //figure out which mode is the best
- else
- {
- nViewFrameType=nWebhelpNavPaneMode;
- if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
- {
- var gbDHTML=(nWebhelpNavPaneMode==1);
- if (gbNav4) nViewFrameType = 2;
- if (gbNav4&&(gnVerMinor < 4.1)) nViewFrameType = 3;
- if (gbNav4&&(gnVerMinor == 4.6)) nViewFrameType = 3;
- if (gbIE4&&gbDHTML) nViewFrameType = 1;
- if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2) nViewFrameType = 3;
- if (gbNav6&&gbDHTML) nViewFrameType = 1;
- if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2) nViewFrameType = 3;
- if (gbMac) nViewFrameType = 3;
- if (gbOpera7&&nViewFrameType == 2) nViewFrameType = 3;
- if ((bNoApplet)&&(nViewFrameType == 2)) nViewFrameType = 3;
- }
- }
-}
-
-if (nViewFrameType!=-1)
-{
- var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
- //The colordepth of the 16 color on Windows is 1.
- if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
- {
- alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");
- nViewFrameType = 3;
- }
-
- //figure out which one is navpane
- if (nViewFrameType == 1)
- strPane = strPaneDHTML;
- else if (nViewFrameType == 2)
- strPane = strPaneApplet;
- else
- strPane = strPaneList;
-
- var oParam = new Object();
- oParam.sTopic = "";
- var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
- if (SendMessage(oMsg) && oParam.sTopic != "")
- strDefaultTopic = oParam.sTopic;
-
-
- if (nViewFrameType == 1)
- {
- //DHTML (iframe or xml based)
- strHTML += "<frameset id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
- strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
- strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
- }
- else if (nViewFrameType == 2)
- {
- //applet (xml based)
- strHTML += "<frameset id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
- strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
- strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
- }
- else if (nViewFrameType == 3)
- {
- //generic html (pure html based)
- strHTML += "<frameset id=\"whPfset\" cols=\"260,*\">";
- strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\" scrolling=\"no\"></frame>";
- strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
- strHTML += "</frameset>";
- }
- else if (nViewFrameType == 4)
- {
- //no navipane at all
- strHTML += "<frameset id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
- strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
- strHTML += "</frameset>";
- }
-
- document.write(strHTML);
-
- RegisterListener2(window, WH_MSG_SHOWPANE);
- RegisterListener2(window, WH_MSG_HIDEPANE);
- RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
- window.onunload = window_unload;
-}
-
-function window_unload()
-{
- UnRegisterListener2(window, WH_MSG_SHOWPANE);
- UnRegisterListener2(window, WH_MSG_HIDEPANE);
- UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-}
-
-
-function onSendMessage(oMsg)
-{
- var nMsgId = oMsg.nMessageId;
- if (nMsgId == WH_MSG_SHOWPANE)
- {
- getElement("whPfset").cols = "260,*";
- var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
- if (SendMessage(onMsg))
- {
- onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
- SendMessage(onMsg);
- }
- return false;
- }
- else if (nMsgId == WH_MSG_HIDEPANE)
- {
- getElement("whPfset").cols = "0,*";
- var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
- SendMessage(onMsg);
- onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
- SendMessage(onMsg);
- return false;
- }
- else if (nMsgId == WH_MSG_ISPANEVISIBLE)
- {
- var n = parseInt(getElement("whPfset").cols);
- if (n > 0)
- {
- oMsg.oParam.bVisible = true;
- }
- return false;
- }
- return true;
-}
-//-->
-</script>
-<body>
-<noscript>
- <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>
-</noscript>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>WebHelp 5.50 </title>
-<meta name="description" content="output from robohelp">
-<meta name="keywords" content="robohelp,webhelp,webhelp enterprise,roboinfo">
-</head>
-<body>
-<h1> WebHelp 5.50 System Info </h1>
-<table>
-<tr><td> Start Page </td><td>index.htm</td></tr>
-<tr><td> Skin Name </td><td></td></tr>
-<tr><td> Generating Time </td><td>12:45 05/22/2006</td></tr>
-<tr><td> Language ID </td><td>1033</td></tr>
-<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>
-<tr><td> Compile Build Version </td><td>13.10.606</td></tr>
-<tr><td> Product Name </td><td>WebHelp 5.50</td></tr>
-<tr><td> Authoring Tool Name </td><td>RoboHelp X5</td></tr>
-<table>
-</body>
-</html>
+++ /dev/null
-<html>
-<head>
-<title>Select a Topic </title>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gsBgColor = "#c0c0c0";
-var gsBgImage = "";
-var gsListBgColor = "white";
-var gsListBgImage = "";
-var gsMargin="0pt";
-var gsIndent="0pt";
-var gSelectedItem = -1;
-
-
-var goFont=null;
-var goHoverFont=null;
-var goTableFont=null;
-var gsABgColor="#cccccc";
-
-function setListBackground(sBgImage)
-{
- if (sBgImage != null && sBgImage.length > 0)
- gsListBgImage = sBgImage;
-}
-
-function setListBackgroundcolor(sBgColor)
-{
- if (sBgColor != null && sBgColor.length > 0)
- gsListBgColor = sBgColor;
-}
-
-function setBackground(sBgImage)
-{
- if (sBgImage != null && sBgImage.length > 0)
- gsBgImage = sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
- if (sBgColor != null && sBgColor.length > 0)
- gsBgColor = sBgColor;
-}
-
-function setActiveBgColor(sBgColor)
-{
- gsABgColor=sBgColor;
-}
-
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if (sType == "Normal")
- goFont=vFont;
- if (sType == "Hover")
- goHoverFont=vFont;
- else if (sType == "Table")
- goTableFont=vFont;
-}
-
-function fnOnload()
-{
- if( window.dialogArguments != null )
- fnLoadOptions( window.dialogArguments );
- var items = getElementsByTag(document, "a");
- if (items.length > 0)
- items[0].focus();
-}
-
-var gaOpts = new Array();
-
-function selectOption(index)
-{
- gSelectedItem = index;
-}
-
-function displayOption(index)
-{
- if (index < gaOpts.length)
- {
- returnValue = new Object();
- returnValue.m_url = gaOpts[index];
- }
- else
- returnValue = null;
-
- window.close();
-}
-
-function fnLoadOptions( cList )
-{
- var sHTML = "<dl>";
- for( var i=0;i <cList.length; i++)
- {
- sHTML += "<dt><nobr><a href=\"javascript:void(0);\" onclick=\"return false;\" onfocus=\"selectOption(";
- sHTML += gaOpts.length + ");return false;\" ondblclick=\"displayOption(" + gaOpts.length;
- sHTML += ");return false;\">"+ _textToHtml(cList[i].m_sName) + "</a></nobr></dt>";
- gaOpts[gaOpts.length] = cList[i].m_sURL;
- }
- sHTML += "</dl>";
- var oDivCon=getElement("divlist");
- if(oDivCon)
- oDivCon.innerHTML=sHTML;
- return true;
-}
-
-function fnOK()
-{
- displayOption(gSelectedItem);
-}
-
-function fnCancel()
-{
- returnValue = null; window.close();
-}
-
-function fnOnKeypress()
-{
- switch( event.keyCode )
- {
- case 13: // enter key
- fnOK();
- break;
- case 27: // escape key
- fnCancel();
- break;
- }
-}
-
-function writeStyle(bMiniBar)
-{
- var sStyle="";
- sStyle+="<style type='text/css'>\n";
- sStyle+="<!--\n";
- sStyle+="body.clsbody\n";
- sStyle+="{\n";
- sStyle+="margin: 4px;\n";
- sStyle+=getFontStyle(goTableFont);
- sStyle+="background-attachment: fixed;\n";
- sStyle+="};\n";
- sStyle+="P.clsNDXTD\n";
- sStyle+="{\n";
- sStyle+="margin:0;\n";
- sStyle+=getFontStyle(goTableFont);
- sStyle+="};\n";
- sStyle+="div.clslist\n";
- sStyle+="{\n";
- if (gsListBgImage)
- sStyle+="background-image:url("+gsListBgImage+");\n";
- else if (gsListBgColor)
- sStyle+="background-color:"+gsListBgColor+";\n";
- sStyle+=getFontStyle(goFont);
- sStyle+="};\n";
- sStyle+="BUTTON.clsNDXButton\n";
- sStyle+="{\n";
- sStyle+=getFontStyle(goTableFont);
- sStyle+="background-color: transparent;\n";
- sStyle+="};\n";
- sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
- sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:active {background-color:"+gsABgColor+";}\n";
- sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
- sStyle+="</style>\n";
- document.write(sStyle);
-}
-
-function window_OnLoad()
-{
- if(document.body)
- {
- if(gsBgImage&&gsBgImage.length>0)
- {
- document.body.background=gsBgImage;
- }
- if(gsBgColor&&gsBgColor.length>0)
- {
- document.body.bgColor=gsBgColor;
- }
- }
- fnOnload();
- window_onResize();
-}
-
-function window_onResize()
-{
- var oDiv = getElement("divlist");
- var oTitle = getElement("p_title");
- var oButton = getElement("tb_button");
- if (oDiv && oTitle && oButton)
- {
- oDiv.style.height = document.body.offsetHeight - oTitle.offsetHeight - oButton.offsetHeight - 8;
- }
-}
-goTableFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-goHoverFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
-
-
-
-
-setFont("Table", "Arial","9pt","#000000","normal","normal","none");
-
-
-setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-setActiveBgColor("#cccccc");
-
-window.onload=window_OnLoad;
-window.onresize = window_onResize;
-writeStyle();
-//-->
-</script>
-</head>
-
-<body class="clsbody" scroll="no" onkeypress="fnOnKeypress()">
-<p id="p_title" class="clsNDXTD"><nobr>Select a topic, then click Display</nobr></p>
-<div id="divlist" class="clslist" style="margin:2px;position: relative;overflow:auto;width:100%;border-style:inset;border-width:2">
-</div>
-<table id="tb_button" width="100%">
- <tr>
- <td width="100%" align="center"><button class="clsNDXButton" name="btnOK" onclick="fnOK()">Display</button>   <button class="clsNDXButton" name="btnCancel" onclick="fnCancel()">Cancel</button></td>
- </tr>
-</table>
-
-</body>
-
-</html>
+++ /dev/null
-<html>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsTopic="";
-
-if (location.hash.length > 1)
-{
- var nPos = location.hash.indexOf(">>");
- if (nPos>1)
- {
- gsTopic = location.hash.substring(1, nPos);
- parseParam(location.hash.substring(nPos+2));
- }
- else
- gsTopic = location.hash.substring(1);
-}
-
-
- var strHtml="";
- strHtml+="<frameset rows=\'100%,*\'>";
- strHtml+="<frame name=\'topicwindow\' src=\'" + gsTopic +"\'></frame>";
- strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";
- strHtml+="</frameset>";
- document.write(strHtml);
-
-function parseParam(sParam)
-{
- if (sParam)
- {
- var nBPos=0;
- do
- {
- var nPos=sParam.indexOf(">>", nBPos);
- if (nPos!=-1)
- {
- if (nPos>0)
- {
- var sPart=sParam.substring(nBPos, nPos);
- parsePart(sPart);
- }
- nBPos = nPos + 2;
- }
- else
- {
- var sPart=sParam.substring(nBPos);
- parsePart(sPart);
- break;
- }
- } while(nBPos < sParam.length);
- }
-}
-
-function parsePart(sPart)
-{
- if(sPart.toLowerCase().indexOf("cap=")==0)
- {
- document.title=_browserStringToText(sPart.substring(4));
- }
-}
-//-->
-</script>
-</html>
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.003
-RegisterListener2(this, WH_MSG_GETSTARTFRAME);
-RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);
-RegisterListener2(this, WH_MSG_MINIBARORDER);
-RegisterListener2(this, WH_MSG_TOOLBARORDER);
-RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);
-RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);
-RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);
-RegisterListener2(this, WH_MSG_GETPANETYPE);
-RegisterListener2(this, WH_MSG_GETPANES);
-RegisterListener2(this, WH_MSG_RELOADNS6);
-RegisterListener2(this, WH_MSG_GETCMD);
-RegisterListener2(this, WH_MSG_GETPANE);
-RegisterListener2(this, WH_MSG_GETDEFPANE);
-
-if (gbNav6)
-{
- var gnReload=0;
- setTimeout("delayReload();",5000);
-}
-
-function delayReload()
-{
- if (!(this.cMRServer && cMRServer.m_strVersion))
- {
- if(gnReload!=2)
- {
- if(nViewFrameType&&nViewFrameType==1)
- document.location=document.location;
- }
- }
-}
-
-var gsToolbarOrder = "";
-var gsMinibarOrder = "";
-
-var gsTopic = "mesh.htm";
-var PANE_OPT_SEARCH = 1;
-var PANE_OPT_BROWSESEQ = 2;
-var gnOpts=-1;
-var gnCmd=-1;
-var gnPans=2;
-var gsBtns="invalid";
-var gsDefaultBtn="invalid";
-var gbHasTitle=false;
-
-if (location.hash.length > 1)
-{
- var sParam = location.hash;
- if (sParam.indexOf("#<") == 0)
- {
- document.location = "whcsh_home.htm#" + sParam.substring(2);
- }
- else if (sParam.indexOf("#>>") == 0)
- {
- parseParam(sParam.substring(3));
- sParam = "#" + gsTopic + sParam.substring(1);
- }
- else
- {
- var nPos = sParam.indexOf(">>");
- if (nPos>1)
- {
- gsTopic = sParam.substring(1, nPos);
- parseParam(sParam.substring(nPos+2));
- }
- else
- gsTopic = sParam.substring(1);
- }
- if (gnPans == 1 && gsTopic)
- {
- var strURL=location.href;
- if (location.hash)
- {
- var nPos=location.href.indexOf(location.hash);
- strURL=strURL.substring(0, nPos);
- }
- if (gbHasTitle)
- document.location=_getPath(strURL)+ "whskin_tw.htm" + sParam;
- else
- document.location=_getPath(strURL)+ gsTopic;
- }
-}
-
-function parseParam(sParam)
-{
- if (sParam)
- {
- var nBPos=0;
- do
- {
- var nPos=sParam.indexOf(">>", nBPos);
- if (nPos!=-1)
- {
- if (nPos>0)
- {
- var sPart=sParam.substring(nBPos, nPos);
- parsePart(sPart);
- }
- nBPos = nPos + 2;
- }
- else
- {
- var sPart=sParam.substring(nBPos);
- parsePart(sPart);
- break;
- }
- } while(nBPos < sParam.length);
- }
-}
-
-function parsePart(sPart)
-{
- if(sPart.toLowerCase().indexOf("cmd=")==0)
- {
- gnCmd=parseInt(sPart.substring(4));
- }
- else if(sPart.toLowerCase().indexOf("cap=")==0)
- {
- document.title=_browserStringToText(sPart.substring(4));
- gbHasTitle=true;
- }
- else if(sPart.toLowerCase().indexOf("pan=")==0)
- {
- gnPans=parseInt(sPart.substring(4));
- }
- else if(sPart.toLowerCase().indexOf("pot=")==0)
- {
- gnOpts=parseInt(sPart.substring(4));
- }
- else if(sPart.toLowerCase().indexOf("pbs=")==0)
- {
- var sRawBtns = sPart.substring(4);
- var aBtns = sRawBtns.split("|");
- for (var i=0;i<aBtns.length;i++)
- {
- aBtns[i] = transferAgentNameToPaneName(aBtns[i]);
- }
- gsRawBtns = aBtns.join("|");
- }
- else if(sPart.toLowerCase().indexOf("pdb=")==0)
- {
- gsDefaultBtn=transferAgentNameToPaneName(sPart.substring(4));
- }
-}
-
-function setToolbarOrder(sOrder)
-{
- gsToolbarOrder = sOrder;
-}
-
-function setMinibarOrder(sOrder)
-{
- gsMinibarOrder = sOrder;
-}
-
-function onSendMessageX(oMsg)
-{
- var nMsgId = oMsg.nMessageId;
- if (nMsgId == WH_MSG_GETSTARTFRAME)
- {
- oMsg.oParam.oFrame = this;
- return false;
- }
- else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)
- {
- if (this.cMRServer && cMRServer.m_strVersion)
- {
- if (cMRServer.m_strURLTopic);
- {
- oMsg.oParam.sTopic = cMRServer.m_strURLTopic;
- return false;
- }
-
- }
- oMsg.oParam.sTopic = gsTopic;
- return false;
- }
- else if (nMsgId == WH_MSG_TOOLBARORDER)
- {
- var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);
- if (SendMessage(oMsg1))
- {
- if (oMsg1.oParam)
- {
- if (this.cMRServer && cMRServer.m_strVersion)
- {
- var aToolbarOrder=cMRServer.m_strAgentList.split(";");
- var i=0;
- for (i=0;i<aToolbarOrder.length;i++)
- aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);
- aToolbarOrder[aToolbarOrder.length] = "blankblock";
- if (cMRServer.m_bShowSearchInput)
- {
- aToolbarOrder[aToolbarOrder.length] = "searchform";
- }
- aToolbarOrder[aToolbarOrder.length] = "banner";
- var aToolbarOrderNew = new Array();
- for (i=0;i<aToolbarOrder.length;i++)
- {
- if (isAPane(aToolbarOrder[i]))
- {
- if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)
- {
- for (var j=0;j<oMsg1.oParam.aPanes.length;j++)
- {
- if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)
- {
- aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
- break;
- }
- }
- }
- }
- else
- aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
- }
- oMsg.oParam = aToolbarOrderNew.join("|");
- return false;
- }
- }
- }
- var sParam="";
- if (gsBtns!="invalid")
- sParam=gsBtns+"|blankblock|banner";
- else
- sParam = gsToolbarOrder;
-
- if (gnOpts!=-1)
- {
- var nPosForm=sParam.indexOf("|searchform|");
- if (gnOpts&PANE_OPT_SEARCH)
- {
- if (nPosForm == -1 && sParam.indexOf("|fts|") != -1)
- {
- var nPos=sParam.indexOf("banner");
- if (nPos!=-1)
- {
- sParam=sParam.substring(0, nPos) + "searchform|" + sParam.substring(nPos);
- }
- }
- }
- else
- {
- if (nPosForm!=-1)
- {
- sParam=sParam.substring(0,nPosForm) + sParam.substring(nPosForm+11);
- }
- }
- }
- oMsg.oParam=sParam;
- return false;
- }
- else if (nMsgId == WH_MSG_MINIBARORDER)
- {
- var sMinParam=gsMinibarOrder;
- if (gnOpts!=-1)
- {
- var nPosBro=gsMinibarOrder.indexOf("avprev|avnext");
- if (gnOpts&PANE_OPT_BROWSESEQ)
- {
- if (nPosBro==-1)
- {
- sMinParam ="avprev|avnext|" + gsMinibarOrder;
- }
- }
- else
- {
- if (nPosBro!=-1)
- {
- if (nPosBro!=0)
- sMinParam=gsMinibarOrder.substring(0, nPosBro) + gsMinibarOrder.substring(nPosBro+14);
- else
- sMinParam=gsMinibarOrder.substring(14);
- }
- }
- }
- oMsg.oParam = sMinParam;
- return false;
- }
- else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)
- {
- if (this.cMRServer && cMRServer.m_strVersion)
- {
- if (cMRServer.m_bShowSync)
- oMsg.oParam=true;
- else
- oMsg.oParam=false;
- return false;
- }
- else
- {
- if(typeof(nViewFrameType)!="undefined")
- {
- oMsg.oParam= (nViewFrameType < 3);
- return false;
- }
- }
- }
- else if (nMsgId == WH_MSG_ISAVENUESUPPORT)
- {
- if (this.cMRServer && cMRServer.m_strVersion)
- {
- if (cMRServer.m_bShowBrowseSequences)
- oMsg.oParam=true;
- else
- oMsg.oParam=false;
- }
- else
- {
- oMsg.oParam=true;
- }
- return false;
- }
- else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)
- {
- if(typeof(nViewFrameType)!="undefined")
- {
- oMsg.oParam= (nViewFrameType < 3);
- return false;
- }
- }
- else if (nMsgId == WH_MSG_GETPANETYPE)
- {
- if(typeof(nViewFrameType)!="undefined")
- {
- var oPaneInfo = new Object();
- oPaneInfo.nType = nViewFrameType;
- oPaneInfo.sPaneURL = strPane;
- oMsg.oParam = oPaneInfo;
- return false;
- }
- }
- else if (nMsgId == WH_MSG_GETPANES)
- {
- if (this.cMRServer && cMRServer.m_strVersion)
- {
- var oPanes = new Object();
- var aAgentNames = null;
- if (cMRServer.m_strDefAgent)
- oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);
-
- aPanes = new Array();
- for(var i=0; i< cMRServer.m_cAgents.length; i++)
- {
- var nCur = aPanes.length;
- aPanes[nCur] = new Object();
- aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);
- aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;
- }
- oPanes.aPanes = aPanes;
- oMsg.oParam = oPanes;
- return false;
- }
- else
- {
- oMsg.oParam = null;
- return false;
- }
- }
- else if(nMsgId==WH_MSG_RELOADNS6)
- {
- if(gbNav6)
- gnReload++;
- return false;
- }
- else if(nMsgId==WH_MSG_GETCMD)
- {
- oMsg.oParam=gnCmd;
- return false;
- }
- else if(nMsgId==WH_MSG_GETPANE)
- {
- if (gsBtns!="invalid" && oMsg.oParam.sName)
- {
- if(gsBtns.indexOf(oMsg.oParam.sName) != -1)
- oMsg.oParam.bEnable=true;
- else
- oMsg.oParam.bEnable=false;
- }
- else
- oMsg.oParam.bEnable=true;
- return false;
- }
- else if(nMsgId==WH_MSG_GETDEFPANE)
- {
- if (gsDefaultBtn!="invalid")
- {
- oMsg.oParam=gsDefaultBtn;
- }
- return false;
- }
- return true;
-}
-
-function transferANToPN2(sAN)
-{
- if (sAN =="toc")
- return "toc";
- else if (sAN =="ndx")
- return "idx";
- else if (sAN =="nls")
- return "fts";
- else if (sAN =="gls")
- return "glo";
- else if (sAN =="WebSearch")
- return "websearch";
- else if (sAN.indexOf("custom_")==0);
- return "custom" + sAN.substring(7);
- return sAN;
-}
-
-function transferAgentNameToPaneName(sAgentName)
-{
- if (sAgentName =="toc")
- return "toc";
- else if (sAgentName =="ndx")
- return "idx";
- else if (sAgentName =="nls")
- return "fts";
- else if (sAgentName =="gls")
- return "glo";
- return "";
-}
-
-function isAPane(sPaneName)
-{
- if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")
- return true;
- else
- return false;
-}
+++ /dev/null
-// WebHelp 5.10.002
-window.whname="wh_stub";
-function getframehandle(frames,framename)
-{
- var frame=null;
- if(null==frames) return null;
- for(var i=0;i<frames.length;i++)
- {
- if(typeof(frames[i].name)!="unknown")
- {
- if(frames[i].name==framename)
- return frames[i];
- }
- if(frames[i].frames.length>0)
- {
- frame=getframehandle(frames[i].frames,framename);
- if(null!=frame)
- return frame;
- }
- }
- return frame;
-}
-
-function AddToArray(arr,obj)
-{
- var bFound=false;
- for(var i=0;i<arr.length;i++){
- if(arr[i]==obj){
- bFound=true;
- break;
- }
- else if(arr[i]==null){
- break;
- }
- }
- if(!bFound) arr[i]=obj;
-}
-
-var gArrayRegistedMessage=new Array();
-var gArrayCompoentsArray=new Array();
-
-function GetComponentsArray(nMessageId)
-{
- var len=gArrayRegistedMessage.length;
- for(var i=0;i<len;i++)
- {
- if(gArrayRegistedMessage[i]==nMessageId){
- if(gArrayCompoentsArray.length>i)
- return gArrayCompoentsArray[i];
- else
- return null;
- }
- }
- return null;
-}
-
-function CreateComponentsArray(nMessageId)
-{
- var len=gArrayRegistedMessage.length;
- gArrayRegistedMessage[len]=nMessageId;
- gArrayCompoentsArray[len]=new Array();
- return gArrayCompoentsArray[len];
-}
-
-function listener(sName,oWindow)
-{
- this.sName=sName;
- this.oWindow=oWindow;
-}
-
-function RegisterListener(windowName,nMessageId)
-{
- var arrayComponents=GetComponentsArray(nMessageId);
- if(arrayComponents==null)
- arrayComponents=CreateComponentsArray(nMessageId);
-
- if(arrayComponents!=null)
- {
- for (var i=0;i<arrayComponents.length;i++)
- {
- if (arrayComponents[i].sName == windowName)
- return false;
- }
- var oListener=new listener(windowName,null);
- AddToArray(arrayComponents,oListener);
- return true;
- }
- else
- return false;
-}
-
-function RegisterListener2(oWindow,nMessageId)
-{
- var arrayComponents=GetComponentsArray(nMessageId);
- if(arrayComponents==null)
- arrayComponents=CreateComponentsArray(nMessageId);
-
- if(arrayComponents!=null)
- {
- var oListener=new listener("",oWindow);
- AddToArray(arrayComponents,oListener);
- return true;
- }
- else
- return false;
-}
-
-function UnRegisterListener2(oWindow,nMessageId)
-{
- var arrayComponents=GetComponentsArray(nMessageId);
- if(arrayComponents!=null)
- {
- for(var i=0;i<arrayComponents.length;i++)
- {
- if(arrayComponents[i].oWindow==oWindow)
- {
- removeItemFromArray(arrayComponents,i);
- return true;
- }
- }
- }
- else
- return false;
-}
-
-function SendMessage(oMessage)
-{
- var bDelivered=false;
- var arrayComponents=GetComponentsArray(oMessage.nMessageId);
- if(arrayComponents!=null&&arrayComponents.length>0){
- for(var i=0;i<arrayComponents.length;i++)
- {
- if(null!=arrayComponents[i])
- {
- var pFrame;
- if(arrayComponents[i].oWindow==null)
- pFrame=getframehandle(frames,arrayComponents[i].sName);
- else
- pFrame=arrayComponents[i].oWindow;
- if(null!=pFrame)
- {
- if(pFrame.onSendMessageX)
- {
- bDelivered=true;
- if(!pFrame.onSendMessageX(oMessage))
- break;
- }
- if(pFrame.onSendMessage)
- {
- bDelivered=true;
- if(!pFrame.onSendMessage(oMessage))
- break;
- }
- }
- }
- }
- }
- return bDelivered;
-}
\ No newline at end of file
+++ /dev/null
-<html>
-<head>
-<title>Table of contents</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whthost.js"></script>
-<script LANGUAGE="javascript1.2">
-<!--
-if (window.gbWhTHost)
-{
-
-
- setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
- setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
- setActiveBgColor("#cccccc");
- setMargin("0pt");
- setIndent("9pt");
- setIcon("BookOpen","whd_toc2.gif");
- setIcon("BookClose","whd_toc1.gif");
- setIcon("Item","whd_toc3.gif");
- setIcon("RemoteItem","whd_toc4.gif");
- setIcon("NewBookOpen","whd_toc2.gif");
- setIcon("NewBookClose","whd_toc1.gif");
- setIcon("NewItem","whd_toc3.gif");
- setIcon("NewRemoteItem","whd_toc4.gif");
- TocWriteClassStyle();
- TocWriteFixedWidth(true,400);
-}
-else
- document.location.reload();
-//-->
-</script>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">
-<script LANGUAGE="javascript1.2">
-<!--
-TocWriteFixedWidth(false,400);
-TocInitPage();
-//-->
-</script>
-</body>
-</html>
+++ /dev/null
-// WebHelp 5.10.007
-var gaHSLoad=new Array();
-var gnMinIdx=0;
-var gnInsIdx=-1;
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading, click here to cancel...";
-var gaProj=null;
-var gaTocs=new Array();
-var goChunk=null;
-var gbReady=false;
-var gbToc=false;
-var gbXML=false;
-var gaRoot=new Array();
-var gnCC=-1;
-var gsTP="";
-var gaBTPs="";
-var gsCTPath="";
-var gnLT=-1;
-var gsPathSplit="\n";
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goFont=null;
-var goHFont=null;
-
-var gsMargin="0pt";
-var gsIndent="15pt";
-var gsABgColor="#cccccc";
-
-var giBookClose="";
-var giBookOpen="";
-var giBookItem="";
-var giURLItem="";
-var giNewBookClose="";
-var giNewBookOpen="";
-var giNewBookItem="";
-var giNewURLItem="";
-var gnImages=0;
-var gnLoadedImages=0;
-var gaImgs=new Array();
-var gbLoadData=false;
-var gobj=null;
-var gaTocsNs61Fix=null;
-var gbWhTHost=false;
-var gBookItems=new Array();
-var gInSync=false;
-var gbLData=false;
-var gbNeedFillStub=false;
-var gbLoadToc=false;
-
-function chunkInfoQueue()
-{
- this.aContent=new Array();
- this.inQueue=function(cInfo)
- {
- this.aContent[this.aContent.length]=cInfo;
- }
- this.deQueue=function()
- {
- var cInfo=null;
- if(this.aContent.length>0)
- {
- cInfo=this.aContent[0];
- for(var i=1;i<this.aContent.length;i++)
- this.aContent[i-1]=this.aContent[i];
- this.aContent.length--;
- }
- return cInfo;
- }
- this.length=function()
- {
- return this.aContent.length;
- }
-}
-
-var gchunkRequestQueue=new chunkInfoQueue();
-
-function chunkInfo(nIdx, bLocal)
-{
- this.nIdx=nIdx;
- this.bLocal=bLocal;
-}
-
-function setBackground(sBgImage)
-{
- gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
- gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- if(sType=="Normal") goFont=vFont;
- else if(sType=="Hover") goHFont=vFont;
-}
-
-function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
-
-function setMargin(sMargin){gsMargin=sMargin;}
-
-function setIndent(sIndent){gsIndent=sIndent;}
-
-function setIcon(sType,sURL)
-{
- if(sType=="BookOpen")
- giBookOpen=sURL;
- else if(sType=="BookClose")
- giBookClose=sURL;
- else if(sType=="Item")
- giBookItem=sURL;
- else if(sType=="RemoteItem")
- giURLItem=sURL;
- else if(sType=="NewBookClose")
- giNewBookClose=sURL;
- else if(sType=="NewBookOpen")
- giNewBookOpen=sURL;
- else if(sType=="NewItem")
- giNewBookItem=sURL;
- else if(sType=="NewRemoteItem")
- giNewURLItem=sURL;
-}
-
-function bookItem(sTarget,sURL)
-{
- if(sTarget)
- this.sTarget=sTarget;
- else
- this.sTarget="bsscright";
- this.sURL=sURL;
-}
-
-function addBookItem(sBookId,sTarget,sURL)
-{
- gBookItems[sBookId]=new bookItem(sTarget,sURL);
-}
-
-function tocChunk(sPPath,sDPath)
-{
- this.sPPath=sPPath;
- this.sDPath=sDPath;
- this.nMI=-1;
- this.aTocs=null;
-}
-
-function addTocChunk(sPPath,sDPath)
-{
- var oChunk=new tocChunk(sPPath,sDPath);
- gaTocs[gaTocs.length]=oChunk;
- return oChunk;
-}
-
-function isHSLoad(nIdx)
-{
- for(var i=0;i<gaHSLoad.length;i++)
- if(gaHSLoad[i]==nIdx)
- return true;
- return false;
-}
-
-function setHSLoad(nIdx)
-{
- if(!isHSLoad(nIdx))
- {
- var len=gaHSLoad.length;
- for(var i=0;i<len;i++)
- if(gaHSLoad[i]==-1)
- {
- gaHSLoad[i]=nIdx;
- return;
- }
- gaHSLoad[len]=nIdx;
- }
-}
-
-function setHSUnLoad(nIdx)
-{
- if(isHSLoad(nIdx))
- {
- for(var i=0;i<gaHSLoad.length;i++)
- if(gaHSLoad[i]==nIdx)
- {
- gaHSLoad[i]=-1;
- return;
- }
- }
-}
-
-function removeLoadingDiv()
-{
- var eLoadingDiv=getElement(gsLoadingDivID);
- if(eLoadingDiv)
- removeThis(eLoadingDiv);
-}
-
-function checkBookItem(nIdx)
-{
- if(!gInSync)
- {
- var sBookId=getBookId(nIdx);
- if(gBookItems[sBookId])
- {
- window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
- }
- }
-}
-
-function insertBookItems(nIdx,num)
-{
- checkBookItem(nIdx);
- var sChildBookId=getCBId(nIdx);
- var eChildDiv=getElement(sChildBookId);
- if(eChildDiv){
- if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
- (eChildDiv.all&&eChildDiv.all.length==0)){
- var sHTML=writeBookItems(nIdx,num);
- eChildDiv.innerHTML=sHTML;
- setTimeout("syncInit()",1);
- }
- }
- ExpandIt(nIdx);
-}
-
-function isBookEmpty(nIdx)
-{
- var num=getItemContentsNum(nIdx);
- if (num>0)
- {
- var nCIdx=0;
- do {
- nCIdx++;
- var i=nIdx+nCIdx;
- var nItemType=getItemType(i);
- if(nItemType==1){
- if (!isBookEmpty(i))
- return false;
- }
- else if(nItemType==4){
- var sSrc=getRefURL(i);
- var nProj=getProject(sSrc);
- if(nProj!=-1){
- sSrc=gaRoot[nProj].sToc;
- if(sSrc)
- return false;
- }
- }
- else if(nItemType==2||nItemType==16||nItemType==8)
- return false;
- } while(nCIdx<num);
- }
- return true;
-}
-
-function writeBook(nIdx)
-{
- var sIcon=getBookImage(nIdx,true);
- var sName=_textToHtml(getItemName(nIdx));
- sIcon=_textToHtml_nonbsp(sIcon);
-
- var nType=getItemType(nIdx);
- var bLocal=(nType==1);
- var bLocalProject=(nType!=4);
-
- var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
- if(bLocal)
- {
- if (!isBookEmpty(nIdx))
- {
- sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
- sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
- sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
- sHTML+=" "+sName+"</a></nobr></p></div>";
- var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
- if(sURL!="")
- addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
- sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
- }
- else
- sHTML="";
- }
- else
- {
- sHTML+="stub></div>";
- gbNeedFillStub=true;
- setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
- }
- return sHTML;
-}
-
-function checkFillStub()
-{
- if(!gbLData)
- {
- if(gchunkRequestQueue.length()>0)
- {
- var cInfo=gchunkRequestQueue.deQueue();
- if(cInfo)
- {
- fillStub(cInfo.nIdx,cInfo.bLocal);
- return;
- }
- }
- }
- if(gbNeedFillStub)
- {
- gbNeedFillStub=false;
- setTimeout("syncInit()",1);
- }
-}
-
-function fillStub(nIdx,bLocalProject)
-{
- if(!gbLData)
- {
- gbLData=true;
- var sObj=getElement(getPBId(nIdx));
- if(sObj!=null)
- {
- tocExpandHelpSet(nIdx,bLocalProject);
- gbNeedFillStub=false;
- setTimeout("syncInit()",1);
- }
- else
- setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
- }
- else
- gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
-}
-
-function getBookId(nIdx){return "B_"+nIdx;}
-
-function getItemId(nIdx){return "I_"+nIdx;}
-
-function markBook(nIdx)
-{
- var obj=getElement(getItemId(nIdx));
- if(obj==null)
- obj=getElement(getBookId(nIdx));
- if(gbNav6)
- {
- gobj=obj;
- setTimeout("delayMarkObj();",1);
- }
- else
- markObj(obj);
-}
-
-function delayMarkObj()
-{
- if(gobj)
- {
- markObj(gobj);
- gobj=null;
- }
-}
-
-function markObj(obj)
-{
- if(obj!=null)
- {
- HighLightElement(obj,gsABgColor,"transparent");
- var sPath=calTocPath(obj);
- if(gsCTPath!=sPath)
- gsCTPath=sPath;
- }
-}
-
-function markItem(nIdx)
-{
- var obj=getElement(getItemId(nIdx));
- if(gbNav6)
- {
- gobj=obj;
- setTimeout("delayMarkObj();",1);
- }
- else
- markObj(getElement(getItemId(nIdx)));
-}
-
-function calTocPath(obj)
-{
- var sPath=getInnerText2(obj);
- var pObj=getParentNode(obj);
- do
- {
- while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
- if(pObj!=null)
- {
- var nId=getIdByCBId(pObj.id);
- var sObj=getElement(getPBId(nId));
- if(sObj!=null)
- {
- var objs=getItemsByBook(sObj);
- for(var i=0;i<objs.length;i++)
- {
- var sText=getInnerText2(objs[i]);
- if(sText.length!=0)
- {
- sPath=sText+gsPathSplit+sPath;
- break;
- }
- }
- }
- pObj=getParentNode(pObj);
- }
- }while(pObj!=null);
- return sPath;
-}
-
-function writeAnItem(nIdx)
-{
- var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
- var sIcon=getItemIcon(nIdx,0);
- if(sIcon=="")
- {
- var nItemType=getItemType(nIdx);
- if(nItemType&2)
- sIcon=getItemImage(nIdx,false);
- else
- sIcon=getItemImage(nIdx,true);
- }
- sIcon=_textToHtml_nonbsp(sIcon);
- var sName=_textToHtml(getItemName(nIdx));
- var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
- var sAltString="";
- if(nItemType&2)
- sAltString="Page";
- else
- sAltString="Remote Page";
- if(sTarget!="")
- sHTML+="target=\""+sTarget+"\" ";
- sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\"> "+sName+"</a></nobr></p>";
- return sHTML;
-}
-
-function writeBookItems(nIdx,num)
-{
- var sHTML="";
- if(num>0){
- var nCIdx=0;
- do{
- nCIdx++;
- var i=nIdx+nCIdx;
- var nItemType=getItemType(i);
- if(nItemType==1||nItemType==4||nItemType==8){
- sHTML+=writeBook(i);
- nCIdx+=getItemContentsNum(i);
- }
- else if(nItemType==2||nItemType==16){
- sHTML+=writeAnItem(i);
- }
- }
- while(nCIdx<num);
- }
- return sHTML;
-}
-
-function tocExpandHelpSet(nIdx,bLocal)
-{
- checkBookItem(nIdx);
- removeLoadingDiv();
- if(!isHSLoad(nIdx))
- {
- setHSLoad(nIdx);
- var sSrc="";
- if(bLocal){
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
- sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
- }
- }
- else{
- sSrc=getRefURL(nIdx);
- var nProj=getProject(sSrc);
- if(nProj!=-1)
- {
- sSrc=gaRoot[nProj].sToc;
- if(sSrc)
- goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
- else
- goChunk=null;
- }
- else
- goChunk=null;
- }
- if(goChunk)
- {
- PrepareLoading(nIdx);
- gbToc=false;
- loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
- }
- else
- {
- gbLData=false;
- checkFillStub();
- }
- }
-}
-
-function getProject(sSrc)
-{
- for(var i=0;i<gaProj.length;i++)
- if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
- return i;
- return -1;
-}
-
-function getPath(sPath)
-{
- if(sPath!="")
- {
- sPath=_replaceSlash(sPath);
- var nPosFile=sPath.lastIndexOf("/");
- sPath=sPath.substring(0,nPosFile+1);
- }
- return sPath;
-}
-
-function isSamePath(sPath1,sPath2)
-{
- return (sPath1.toLowerCase()==sPath2.toLowerCase());
-}
-
-function PrepareLoading(nIdx)
-{
- gnInsIdx=nIdx;
- if(!gsTP)
- {
- var oObj=getElement(getPBId(gnInsIdx));
- if(oObj)
- oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
- }
-}
-
-function writeLoadingDiv(nIdx)
-{
- return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-function getItemName(nIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
- else
- return null;
-}
-
-function getItemContentsNum(nIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
- else
- return null;
-}
-
-function getItemType(nIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- return oChunk.aTocs[nIdx-oChunk.nMI].nType;
- else
- return 0;
-}
-
-function getItemURL(nIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
- if(!(sPath==null||sPath==""))
- {
- return _getFullPath(oChunk.sPPath,sPath);
- }
- }
- return "";
-}
-
-function getRefURL(nIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
- if(!(sPath==null||sPath==""))
- {
- return _getFullPath(oChunk.sPPath,sPath)
- }
- }
- return "";
-}
-
-function getTopicTarget(nIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
- return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
- }
- return "";
-}
-
-function getItemIcon(nIdx,nIconIdx)
-{
- var oChunk=getChunk(nIdx);
- if(oChunk)
- {
- if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
- {
- var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
- var nIndex=sIconRef.indexOf(";");
- while(nIconIdx-->0&&nIndex!=-1)
- {
- sIconRef=sIconRef.substring(nIndex+1);
- nIndex=sIconRef.indexOf(";");
- }
- if(nIconIdx<0)
- {
- if(nIndex!=-1)
- sIconRef=sIconRef.substring(0,nIndex);
- return _getFullPath(oChunk.sPPath,sIconRef)
- }
- }
- }
- return "";
-}
-
-function TocWriteClassStyle()
-{
- var sStyle="<STYLE TYPE='text/css'>\n";
- if(gsBgImage)
- sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
- else
- sStyle+="body {border-top:black 1px solid;}\n";
- sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
- sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
- sStyle+=".parent {margin-left:0pt;}\n";
- sStyle+=".stub {margin-left:0pt;display:none}\n";
- sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
- sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
- sStyle+="A:active {background-color:"+gsABgColor+";}\n";
- sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
- sStyle+="</STYLE>";
- document.write(sStyle);
-}
-
-function TocWriteFixedWidth(bBegin,nWidth)
-{
- if((gbIE4)&&(gbMac)&&(!gbIE5)){
- if(bBegin)
- document.write("<table width="+nWidth+" border=0><tr><td>");
- else
- document.write("</td></tr></table>");
- }
-}
-
-function TocInitPage()
-{
- var tempColl=getItemsByBook(document.body);
- if(tempColl.length>0)
- tempColl[0].focus();
-}
-
-function getItemsFromObj(obj)
-{
- var aAnchor=new Array();
- var tempColl=getChildrenByTag(obj,"P");
- if(tempColl&&tempColl.length>0)
- {
- var anobr=new Array();
- for(var i=0;i<tempColl.length;i++)
- {
- var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
- if(tempNobr&&tempNobr.length>0)
- for(var j=0;j<tempNobr.length;j++)
- anobr[anobr.length]=tempNobr[j];
- }
- for(var s=0;s<anobr.length;s++)
- {
- var tempAnchor=getChildrenByTag(anobr[s],"A");
- if(tempAnchor&&tempAnchor.length>0)
- for(var u=0;u<tempAnchor.length;u++)
- aAnchor[aAnchor.length]=tempAnchor[u];
- }
- }
- return aAnchor;
-}
-
-function getItemsByBook(obj)
-{
- var aAnchor=new Array();
- var aTAnchor=getItemsFromObj(obj);
- for(var i=0;i<aTAnchor.length;i++)
- aAnchor[aAnchor.length]=aTAnchor[i];
- var tempBook=getChildrenByTag(obj,"DIV");
- if(tempBook&&tempBook.length>0)
- for(var j=0;j<tempBook.length;j++)
- {
- var aTAnchorDiv=getItemsFromObj(tempBook[j]);
- for(var s=0;s<aTAnchorDiv.length;s++)
- aAnchor[aAnchor.length]=aTAnchorDiv[s];
- }
- return aAnchor;
-}
-
-function ExpandIt(nId)
-{
- if(!gsTP)
- ExpandIt2(nId,false);
-}
-
-function ExpandIt2(nId,bForceOpen)
-{
- var oC=TocExpand(nId,true,bForceOpen);
- var nNewScroll=document.body.scrollTop;
- if(oC.style.display=="block"){
- var nTop=oC.offsetTop;
- var nBottom=nTop+oC.offsetHeight;
- if(document.body.scrollTop+document.body.clientHeight<nBottom){
- nNewScroll=nBottom-document.body.clientHeight;
- }
- if(nBottom-nTop>document.body.clientHeight){
- nNewScroll=nTop-20;
- }
- }
- document.body.scrollTop=nNewScroll;
-}
-
-function TocExpand(nId,bChangeImg,bForceOpen)
-{
- var oDiv=getElement(getCBId(nId));
- if(oDiv==null) return null;
-
- var whichIm=document.images[getBId(nId)];
- if((oDiv.style.display!="block")||bForceOpen){
- oDiv.style.display="block";
- if(bChangeImg){
- var sPath=getPath(whichIm.src);
- sPath=_getFullPath(sPath,getBookImage(nId,false));
- whichIm.src=sPath;
- }
- }else{
- oDiv.style.display="none";
- if(bChangeImg){
- var sPath=getPath(whichIm.src);
- sPath=_getFullPath(sPath,getBookImage(nId,true));
- whichIm.src=sPath;
- }
- if(gbMac&&gbIE5){
- this.parent.document.getElementById("tocIFrame").style.width="101%";
- this.parent.document.getElementById("tocIFrame").style.width="100%";
- }
- }
- return oDiv;
-}
-
-function getChunkId(n)
-{
- var nCan=-1;
- for(var i=0;i<gaTocs.length;i++)
- if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
- {
- if(nCan==-1)
- nCan=i;
- else
- if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
- nCan=i;
- }
- if(nCan!=-1)
- return nCan;
- else
- return -1;
-}
-
-function getChunk(n)
-{
- if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
- gaTocs[gnCC+1].nMI>n))
- {
- return gaTocs[gnCC];
- }
- else{
- gnCC=getChunkId(n);
- if(gnCC!=-1)
- return gaTocs[gnCC];
- else
- return null;
- }
-}
-
-function getBookImage(nIdx,bClosed)
-{
- var nIdx=bClosed?0:1;
- var sIcon=getItemIcon(nIdx,nIdx);
- if(sIcon=="")
- if(bClosed)
- sIcon=giBookClose;
- else
- sIcon=giBookOpen;
- return _getFullPath(gaProj[0].sPPath,sIcon);
-}
-
-function getItemImage(nIdx,bRemote)
-{
- var sIcon=getItemIcon(nIdx,0);
- if(sIcon=="")
- if(bRemote)
- sIcon=giURLItem;
- else
- sIcon=giBookItem;
- return _getFullPath(gaProj[0].sPPath,sIcon);
-}
-
-function getInnerText2(obj)
-{
- var sText=getInnerText(obj);
- if(sText.length>0&&!gbOpera7)
- sText=sText.substring(1);
- return sText;
-}
-
-function expandToc(oObj,sRest,aIdList)
-{
- var len=aIdList.length;
- var nPos=sRest.indexOf(gsPathSplit);
- if(nPos!=-1)
- {
- sPart=sRest.substring(0,nPos);
- sRest=sRest.substring(nPos+1);
- }
- else
- {
- sPart=sRest;
- var aTagAs=getItemsByBook(oObj);
- for(var s=0;s<aTagAs.length;s++)
- {
- var sText=getInnerText2(aTagAs[s]);
- if(sText==sPart)
- {
- aIdList[len]=aTagAs[s];
- return 1;
- }
- }
- return 0;
- }
-
- var aChildren=getChildrenByTag(oObj,"DIV");
- for(var i=0;i<aChildren.length;i++)
- {
- var sPId=aChildren[i].id;
- if(!isPBId(sPId))
- continue;
- var sText=getInnerText2(aChildren[i]);
- if(sText!=sPart)
- continue;
- aIdList[len]=getIdByPBId(sPId);
- var sCId=getCBId(aIdList[len]);
- var oCObj=getElement(sCId);
- if(oCObj)
- {
- if(oCObj.innerHTML=="")
- {
- var obj=getItemsByBook(aChildren[i]);
- if(obj.length>0)
- {
- if(gbNav6)
- {
- var sCommand=obj[0].getAttribute("onClick");
- var nCommand=sCommand.indexOf(";");
- sCommand=sCommand.substring(0,nCommand);
- setTimeout(sCommand,1);
- }
- else
- obj[0].click();
- }
- return -1;
- }
- var nRet=expandToc(oCObj,sRest,aIdList);
- if(nRet)
- return nRet;
- }
- }
- aIdList.length=len;
- return 0;
-}
-
-function getIdByPBId(sPId)
-{
- return parseInt(sPId.substring(2,sPId.length-1));
-}
-
-function getIdByCBId(sCId)
-{
- return parseInt(sCId.substring(2,sCId.length-1));
-}
-
-function isPBId(sId)
-{
- return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
-}
-
-function isCBId(sId)
-{
- return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
-}
-
-function getBId(nIdx)
-{
- return "B_"+nIdx;
-}
-
-function getPBId(nIdx)
-{
- return getBId(nIdx)+"P";
-}
-
-function getCBId(nIdx)
-{
- return getBId(nIdx)+"C";
-}
-
-function getClosestTocPath(aPaths)
-{
- var nMaxSimilarity=0;
- var nThatIndex=-1;
- var sPath=null;
- if(aPaths.length==0) return sPath;
- for(var i=0;i<aPaths.length;i++)
- {
- var nSimilarity=comparePath(gsCTPath,aPaths[i]);
- if(nSimilarity>nMaxSimilarity)
- {
- nMaxSimilarity=nSimilarity;
- nThatIndex=i;
- }
- }
- if(nThatIndex!=-1)
- sPath=aPaths[nThatIndex];
- else
- sPath=aPaths[0];
- return sPath;
-}
-
-function comparePath(sPath1,sPath2)
-{
- var nMaxSimilarity=0;
- var nStartPos1=0;
- var nPos1=-1;
- var nStartPos2=0;
- var nPos2=-1;
- do{
- var sCheck1=null;
- var sCheck2=null;
- nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
- if(nPos1!=-1)
- {
- sCheck1=sPath1.substring(nStartPos1,nPos1);
- nStartPos1=nPos1+1;
- }
- else
- {
- sCheck1=sPath1.substring(nStartPos1);
- nStartPos1=-1;
- }
- nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
- if(nPos1!=-1)
- {
- sCheck2=sPath2.substring(nStartPos2,nPos2);
- nStartPos2=nPos2+1;
- }
- else
- {
- sCheck2=sPath2.substring(nStartPos2);
- nStartPos2=-1;
- }
- if(sCheck1==sCheck2)
- nMaxSimilarity++;
- else
- break;
- }while(nStartPos1!=-1&&nStartPos2!=-1);
- return nMaxSimilarity;
-}
-
-function getTocPaths(oTopicParam)
-{
- var aRelTocPaths=oTopicParam.aPaths;
- var aPaths=new Array();
- for(var i=0;i<gaProj.length;i++)
- if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
- {
- for(var j=0;j<aRelTocPaths.length;j++)
- for (var k=0;k<gaRoot[i].aRPath.length;k++)
- {
- var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
- aPaths[aPaths.length]=sPath.substring(1);
- }
- break;
- }
- return aPaths;
-}
-
-function syncInit()
-{
- if(gsTP&&!gbNeedFillStub)
- {
- gInSync=true;
- var obj=document.body;
- var aIdList=new Array();
- var nRet=expandToc(obj,gsTP,aIdList);
- if(nRet!=-1)
- {
- if(nRet==1)
- {
- if(aIdList.length)
- for(var i=0;i<aIdList.length-1;i++)
- ExpandIt2(aIdList[i],true);
- gsCTPath=gsTP;
- if(!gbIE55)
- aIdList[aIdList.length-1].focus();
- else
- HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
- }
- var aPaths=gaBTPs;
- gsTP=null;
- gaBTPs=null;
- if(aPaths!=null)
- {
- var sPath=getClosestTocPath(aPaths);
- if(sPath!=null)
- {
- gsTP=sPath;
- setTimeout("syncInit()",1);
- }
- }
- }
- gInSync=false;
- }
-}
-
-function loadToc()
-{
- if(!gbLoadToc)
- {
- var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
- if(SendMessage(oResMsg)&&oResMsg.oParam)
- {
- gbLoadToc=true;
- var oProj=oResMsg.oParam;
- gaProj=oProj.aProj;
- gbXML=oProj.bXML;
- load1B1();
- }
- }
-}
-
-function load1B1()
-{
- if(gnLT+1<gaProj.length)
- for(var i=gnLT+1;i<gaProj.length;i++)
- if(gaProj[i].sToc)
- {
- gbToc=true;
- gnLT=i;
- setTimeout("loadTocInfo()",1);
- return true;
- }
- return false;
-}
-
-function loadTocInfo()
-{
- loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
-}
-
-function loadData2(sFile)
-{
- if(gbXML)
- loadDataXML(sFile);
- else
- loadData(sFile);
-}
-
-function projReady(sRoot,aProj)
-{
- if(gaRoot.length<=gnLT||!gaRoot[gnLT])
- gaRoot[gnLT]=new Object();
- gaRoot[gnLT].sToc=sRoot;
-
- if(gnLT==0)
- {
- gaRoot[gnLT].aRPath=new Array();
- gaRoot[gnLT].aRPath[0]=gsPathSplit;
- }
-
- updatePTPath(gnLT,aProj);
-
- if(!((gnLT+1<gaProj.length)&&load1B1()))
- {
- gbReady=true;
- if(gbIE4)
- setTimeout("loadImages();",1);
- else
- setTimeout("loadTData();",1);
- }
-}
-
-function loadTData()
-{
- if(gaProj[0].sToc!="")
- {
- gbLData=true;
- goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
- gbToc=false;
- loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
- }
-}
-
-function updatePTPath(n,aProj)
-{
- if(aProj)
- for(var i=0;i<aProj.length;i++)
- {
- var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
- for(var j=0;j<gaProj.length;j++)
- if(isSamePath(sFullPath,gaProj[j].sPPath))
- {
- if(gaRoot.length<=j||!gaRoot[j])
- gaRoot[j]=new Object();
- if(!gaRoot[j].aRPath)
- gaRoot[j].aRPath=new Array();
-
- if(gaRoot[n].aRPath)
- for(var k=0;k<gaRoot[n].aRPath.length;k++)
- {
- var bDup=false;
- var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
- for(var l=0;l<gaRoot[j].aRPath.length;l++)
- if(gaRoot[j].aRPath[l]==sTFPath)
- {
- bDup=true;
- break;
- }
- if(!bDup)
- gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
- }
- else
- gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
- break;
- }
- }
-}
-
-function onLoadXMLError()
-{
- if(gbToc)
- {
- var sRoot="";
- var aRProj=new Array();
- projReady(sRoot,aRProj);
- }
- else
- {
- var aToc=new Array();
- putData(aToc)
- }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
- if(gbToc)
- {
- var tocNode=xmlDoc.getElementsByTagName("toc")[0];
- if(tocNode)
- {
- var sRoot=tocNode.getAttribute("root");
- var rmtProject=tocNode.getElementsByTagName("project");
- var aRProj=new Array();
- if(rmtProject.length>0)
- {
- for(var i=0;i<rmtProject.length;i++)
- {
- aRProj[i]=new Object();
- var sURL=rmtProject[i].getAttribute("url");
- if(sURL)
- {
- if(sURL.lastIndexOf("/")!=sURL.length-1)
- sURL+="/";
- }
- aRProj[i].sPPath=sURL;
- aRProj[i].sRPath = "";
- var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
- if (oSubPath)
- {
- while (oSubPath)
- {
- aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
- oSubPath = oSubPath.getElementsByTagName("subpath")[0];
- }
- }
- else
- aRProj[i].sRPath=rmtProject[i].getAttribute("path");
- }
- }
- projReady(sRoot,aRProj);
- }
- }
- else
- {
- var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
- if(chunkNode)
- {
- var aToc=new Array();
- processBook(chunkNode,aToc);
- putData(aToc);
- }
- }
-}
-
-function processBook(node,aToc)
-{
- var i=0;
- var entry=null;
- var prevEntry=null;
- var oChild=node.firstChild;
- do{
- if(oChild)
- {
- if(oChild.nodeName.indexOf("#")!=0)
- {
- var sName=oChild.getAttribute("name");
- var sURL=oChild.getAttribute("url");
- var sRef=oChild.getAttribute("ref");
- var sTarget=oChild.getAttribute("target");
- var sIcons=oChild.getAttribute("images");
- var item=new Object();
- item.sItemName=sName;
- if(sTarget)
- item.sTarget=sTarget;
- if(sIcons)
- item.sIconRef=sIcons;
- if(sURL==null) sURL="";
-
- item.sItemURL=sURL;
-
- if(oChild.nodeName=="book")
- {
- item.nType=1;
- aToc[aToc.length]=item;
- var nCurrPos=aToc.length;
- processBook(oChild,aToc);
- item.nContents=aToc.length-nCurrPos;
- }
- else if(oChild.nodeName=="item")
- {
- item.nType=2;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- else if(oChild.nodeName=="remoteitem")
- {
- item.nType=16;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- else if(oChild.nodeName=="project")
- {
- if(sRef)
- {
- if(sRef.lastIndexOf("/")!=sRef.length-1)
- sRef+="/";
- }
- item.nType=4;
- item.sRefURL=sRef;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- else if(oChild.nodeName=="chunk")
- {
- item.nType=8;
- item.sRefURL=sRef;
- item.nContents=0;
- aToc[aToc.length]=item;
- }
- }
- }
- else
- break;
- oChild=oChild.nextSibling;
- }while(true);
-}
-
-function putData(aTocs)
-{
- gaTocsNs61Fix=aTocs;
- setTimeout("realPutData();",1);
-}
-
-function realPutData()
-{
- removeLoadingDiv();
- var aTocs=gaTocsNs61Fix;
- if(!aTocs) return;
- if(goChunk)
- {
- var n=gnMinIdx;
- goChunk.nMI=gnMinIdx;
- goChunk.aTocs=aTocs;
- gnMinIdx+=aTocs.length;
- if(gnInsIdx!=-1)
- {
- var oObj=getElement(getPBId(gnInsIdx));
- if(oObj)
- {
- oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
- setTimeout("syncInit()",1);
- }
- }
- else{
- document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
- var oParam=new Object();
- oParam.oTocInfo=null;
- var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
- if(SendMessage(oMsg))
- {
- if(oMsg.oParam.oTocInfo)
- syncWithPaths(oMsg.oParam.oTocInfo);
- }
- }
- }
- gbLData=false;
- checkFillStub();
-}
-
-function syncWithPaths(oTopicParam)
-{
- var aPaths=getTocPaths(oTopicParam);
- if(gsTP)
- gaBTPs=aPaths;
- else{
- var sPath=getClosestTocPath(aPaths);
- if(sPath!=null)
- {
- gsTP=sPath;
- setTimeout("syncInit()",1);
- }
- }
-}
-
-function window_OnLoad()
-{
- if(gsBgImage&&gsBgImage.length>0)
- {
- document.body.background=gsBgImage;
- }
- if(gsBgColor&&gsBgColor.length>0)
- {
- document.body.bgColor=gsBgColor;
- }
- loadToc();
- var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
- SendMessage(oMsg);
-}
-
-function loadImages()
-{
- if(giBookClose)
- {
- gaImgs[gnImages]=giBookClose;
- gnImages++;
- }
- if(giBookOpen)
- {
- gaImgs[gnImages]=giBookOpen;
- gnImages++;
- }
- if(giBookItem)
- {
- gaImgs[gnImages]=giBookItem;
- gnImages++;
- }
- if(giURLItem)
- {
- gaImgs[gnImages]=giURLItem;
- gnImages++;
- }
- if(giNewBookClose)
- {
- gaImgs[gnImages]=giNewBookClose;
- gnImages++;
- }
- if(giNewBookOpen)
- {
- gaImgs[gnImages]=giNewBookOpen;
- gnImages++;
- }
- if(giNewBookItem)
- {
- gaImgs[gnImages]=giNewBookItem;
- gnImages++;
- }
- if(giNewURLItem)
- {
- gaImgs[gnImages]=giNewURLItem;
- gnImages++;
- }
- if(gnImages>0)
- {
- setTimeout("loadDataAfter();",1000);
- loadImage(gaImgs[0]);
- }
- else
- loadDataAfter();
-}
-
-function loadImage(sURL)
-{
- var oImg=new Image();
- oImg.onload=checkImageLoading;
- oImg.onerror=errorImageLoading;
- oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
-}
-
-function loadDataAfter()
-{
- if(!gbLoadData)
- {
- gbLoadData=true;
- loadTData();
- }
-}
-
-function errorImageLoading()
-{
- gnLoadedImages++;
- if(gnImages==gnLoadedImages)
- loadDataAfter();
- else
- loadImage(gaImgs[gnLoadedImages]);
-}
-
-function checkImageLoading()
-{
- gnLoadedImages++;
- if(gnImages==gnLoadedImages)
- loadDataAfter();
- else
- loadImage(gaImgs[gnLoadedImages]);
-}
-
-function window_unload()
-{
- UnRegisterListener2(this,WH_MSG_PROJECTREADY);
- UnRegisterListener2(this,WH_MSG_SYNCTOC);
- UnRegisterListener2(this,WH_MSG_SHOWTOC);
-}
-
-function onSendMessage(oMsg)
-{
- if(oMsg)
- {
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_PROJECTREADY)
- {
- loadToc();
- }
- else if(nMsgId==WH_MSG_SYNCTOC)
- {
- if(gbReady)
- {
- syncWithPaths(oMsg.oParam);
- }
- }
- else if(nMsgId==WH_MSG_SHOWTOC)
- {
- if(!gbNav6)
- document.body.focus();
- }
- }
- return true;
-}
-
-if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
-{
- RegisterListener2(this,WH_MSG_PROJECTREADY);
- RegisterListener2(this,WH_MSG_SYNCTOC);
- RegisterListener2(this,WH_MSG_SHOWTOC);
- goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
- goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
- window.onload=window_OnLoad;
- window.onbeforeunload=window_BUnload;
- window.onunload=window_unload;
- gbWhTHost=true;
-}
-else
- document.location.reload();
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.005
-var gsPPath="";
-var gaPaths=new Array();
-var gaAvenues=new Array();
-
-var goFrame=null;
-var gsStartPage="";
-var gsRelCurPagePath="";
-var gsSearchFormHref="";
-var gnTopicOnly=-1;
-var gnOutmostTopic=-1;
-
-var BTN_TEXT=1;
-var BTN_IMG=2;
-
-var goSync=null;
-
-var goShow=null;
-var goHide=null;
-
-var goPrev=null;
-var goNext=null;
-var gnForm=0;
-var goShowNav=null;
-var goHideNav=null;
-
-var goWebSearch=null;
-
-var gsBtnStyle="";
-var gaButtons=new Array();
-var gaTypes=new Array();
-var whtopic_foldUnload=null;
-var gbWhTopic=false;
-var gbCheckSync=false;
-var gbSyncEnabled=false;
-
-function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
- var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
- gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}";
-}
-
-function writeBtnStyle()
-{
- if(gaButtons.length>0)
- {
- if(gsBtnStyle.length>0)
- {
- var sStyle="<style type='text/css'>";
- sStyle+=gsBtnStyle+"</style>";
- document.write(sStyle);
- }
- }
-}
-
-function button(sText,nWidth,nHeight)
-{
- this.sText=sText;
- this.nWidth=nWidth;
- this.nHeight=nHeight;
-
- this.aImgs=new Array();
- var i=0;
- while(button.arguments.length>i+3)
- {
- this.aImgs[i]=button.arguments[3+i];
- i++;
- }
-}
-
-//project info
-function setRelStartPage(sPath)
-{
- if(gsPPath.length==0)
- {
- gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath));
- gsStartPage=_getFullPath(_getPath(document.location.href),sPath);
- gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href);
- }
-}
-
-function getImage(oImage,sType)
-{
- var sImg="";
- if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0))
- {
- sImg+="<img alt=\""+sType+"\" src=\""+oImage.aImgs[0]+"\"";
- if(oImage.nWidth>0)
- sImg+=" width="+oImage.nWidth;
- if(oImage.nHeight>0)
- sImg+=" height="+oImage.nHeight;
- sImg+=" border=0>";
- }
- return sImg;
-}
-
-function addTocInfo(sTocPath)
-{
- gaPaths[gaPaths.length]=sTocPath;
-}
-
-function addAvenueInfo(sName,sPrev,sNext)
-{
- gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext);
-}
-
-function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3)
-{
- var sButton="";
- var nBtn=gaButtons.length;
- if(sType=="prev")
- {
- if(canGo(false))
- {
- var sTitle="Previous Topic";
- goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goPrev.sText;
- else
- sButton+=getImage(goPrev,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="next")
- {
- if(canGo(true))
- {
- var sTitle="Next Topic";
- goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goNext.sText;
- else
- sButton+=getImage(goNext,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="show")
- {
- if(isTopicOnly()&&(!gbOpera6||gbOpera7))
- {
- var sTitle="Show Navigation Component";
- goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goShow.sText;
- else
- sButton+=getImage(goShow,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="hide")
- {
- if(!isTopicOnly()&&!gbOpera6)
- {
- var sTitle="Hide Navigation Component";
- goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goHide.sText;
- else
- sButton+=getImage(goHide,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="shownav")
- {
- if(isShowHideEnable())
- {
- var sTitle="Show Navigation Component";
- goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goShowNav.sText;
- else
- sButton+=getImage(goShowNav,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="hidenav")
- {
- if(isShowHideEnable())
- {
- var sTitle="Hide Navigation Component";
- goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goHideNav.sText;
- else
- sButton+=getImage(goHideNav,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="synctoc")
- {
- if(gaPaths.length>0)
- {
- var sTitle="Sync TOC";
- goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";
- if(nStyle==BTN_TEXT)
- sButton+=goSync.sText;
- else
- sButton+=getImage(goSync,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="websearch")
- {
- if(gsSearchFormHref.length>0)
- {
- var sTitle="WebSearch";
- goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
- sButton="<a title=\""+sTitle+"\" class=\"whtbtnwebsearch\" href=\""+gsSearchFormHref+"\">";
- if(nStyle==BTN_TEXT)
- sButton+=goWebSearch.sText;
- else
- sButton+=getImage(goWebSearch,sTitle);
- sButton+="</a>";
- }
- }
- else if(sType=="searchform")
- {
- gaButtons[nBtn]="NeedSearchForm";
- gaTypes[nBtn]=sType;
- }
- if(sButton.length!=0)
- {
- if(nStyle==BTN_TEXT)
- sButton+=" ";
- gaButtons[nBtn]="<td>"+sButton+"</td>";
- gaTypes[nBtn]=sType;
- }
-}
-
-function isSyncEnabled()
-{
- if(!gbCheckSync)
- {
- var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);
- if(SendMessage(oMsg))
- {
- gbSyncEnabled=oMsg.oParam;
- }
- gbCheckSync=true;
- }
- return gbSyncEnabled;
-}
-
-function isInPopup()
-{
- return (window.name.indexOf("BSSCPopup")!=-1);
-}
-
-function getIntopicBar(sAlign)
-{
- var sHTML="";
- if(gaButtons.length>0)
- {
- sHTML+="<div align="+sAlign+">";
-
- sHTML+="<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";
- for(var i=0;i<gaButtons.length;i++)
- {
- if(gaTypes[i]!="synctoc"||isSyncEnabled())
- {
- if(gaButtons[i]=="NeedSearchForm")
- sHTML+=getSearchFormHTML();
- else
- sHTML+=gaButtons[i];
- }
- }
- sHTML+="</tr></table>";
-
- sHTML+="</div>";
- }
- return sHTML;
-}
-
-
-function writeIntopicBar(nAligns)
-{
- if(isInPopup()) return;
- if(gaButtons.length>0)
- {
- var sHTML="";
- if(nAligns!=0)
- {
- sHTML+="<table width=100%><tr>"
- if(nAligns&1)
- sHTML+="<td width=33%>"+getIntopicBar("left")+"</td>";
- if(nAligns&2)
- sHTML+="<td width=34%>"+getIntopicBar("center")+"</td>";
- if(nAligns&4)
- sHTML+="<td width=33%>"+getIntopicBar("right")+"</td>";
- sHTML+="</tr></table>";
- document.write(sHTML);
- }
- }
-}
-
-function sendAveInfoOut()
-{
- if(!isInPopup())
- setTimeout("sendAveInfo();",100);
-}
-
-function sendAveInfo()
-{
- var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues);
- SendMessage(oMsg);
-}
-
-
-function onNext()
-{
- var oMsg=new whMessage(WH_MSG_NEXT,this,1,null);
- SendMessage(oMsg);
-}
-
-function onPrev()
-{
- var oMsg=new whMessage(WH_MSG_PREV,this,1,null);
- SendMessage(oMsg);
-}
-
-function createSyncInfo()
-{
- var oParam=new Object();
- if(gsPPath.length==0)
- gsPPath=_getPath(document.location.href);
- oParam.sPPath=gsPPath;
- oParam.sTPath=document.location.href;
- oParam.aPaths=gaPaths;
- return oParam;
-}
-
-function syncWithShow()
-{
- if(isTopicOnly())
- show();
- else
- {
- sync();
- showTocPane();
- }
-}
-
-function showTocPane()
-{
- var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null);
- SendMessage(oMsg);
-}
-
-function sendSyncInfo()
-{
- if(!isInPopup())
- {
- var oParam=null;
- if(gaPaths.length>0)
- {
- oParam=createSyncInfo();
- }
- var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam);
- SendMessage(oMsg);
- }
-}
-
-function sendInvalidSyncInfo()
-{
- if(!isInPopup())
- {
- var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null);
- SendMessage(oMsg);
- }
-}
-
-function enableWebSearch(bEnable)
-{
- if(!isInPopup())
- {
- var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable);
- SendMessage(oMsg);
- }
-}
-
-function autoSync(nSync)
-{
- if(nSync==0) return;
- if(isInPopup()) return;
- if(isOutMostTopic())
- sync();
-}
-
-function isOutMostTopic()
-{
- if(gnOutmostTopic==-1)
- {
- var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null);
- if(SendMessage(oMessage))
- gnOutmostTopic=0;
- else
- gnOutmostTopic=1;
- }
- return (gnOutmostTopic==1);
-}
-
-function sync()
-{
- if(gaPaths.length>0)
- {
- var oParam=createSyncInfo();
- var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);
- SendMessage(oMessage);
- }
-}
-
-
-function avenueInfo(sName,sPrev,sNext)
-{
- this.sName=sName;
- this.sPrev=sPrev;
- this.sNext=sNext;
-}
-
-function getCurrentAvenue()
-{
- var oParam=new Object();
- oParam.sAvenue=null;
- var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam);
- SendMessage(oMessage);
- return oParam.sAvenue;
-}
-
-function unRegisterListener()
-{
- sendInvalidSyncInfo();
- enableWebSearch(false);
- if(whtopic_foldUnload)
- whtopic_foldUnload();
-}
-
-function onSendMessage(oMsg)
-{
- var nMsgId=oMsg.nMessageId;
- if(nMsgId==WH_MSG_GETAVIAVENUES)
- {
- oMsg.oParam.aAvenues=gaAvenues;
- return false;
- }
- else if(nMsgId==WH_MSG_GETTOCPATHS)
- {
- if(isOutMostTopic())
- {
- oMsg.oParam.oTocInfo=createSyncInfo();
- return false;
- }
- else
- return true;
- }
- else if(nMsgId==WH_MSG_NEXT)
- {
- goAvenue(true);
- }
- else if(nMsgId==WH_MSG_PREV)
- {
- goAvenue(false);
- }
- else if(nMsgId==WH_MSG_WEBSEARCH)
- {
- websearch();
- }
- return true;
-}
-
-function goAvenue(bNext)
-{
- var sTopic=null;
- var sAvenue=getCurrentAvenue();
- var nAvenue=-1;
- if(sAvenue!=null&&sAvenue!="")
- {
- for(var i=0;i<gaAvenues.length;i++)
- {
- if(gaAvenues[i].sName==sAvenue)
- {
- nAvenue=i;
- break;
- }
- }
- if(nAvenue!=-1)
- {
- if(bNext)
- sTopic=gaAvenues[nAvenue].sNext;
- else
- sTopic=gaAvenues[nAvenue].sPrev;
- }
- }
- else
- {
- for(var i=0;i<gaAvenues.length;i++)
- {
- if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)
- {
- sTopic=gaAvenues[i].sNext;
- break;
- }
- else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)
- {
- sTopic=gaAvenues[i].sPrev;
- break;
- }
- }
- }
-
- if(sTopic!=null&&sTopic!="")
- {
- if(gsPPath!=null&&gsPPath!="")
- {
- sFullTopicPath=_getFullPath(gsPPath,sTopic);
- document.location=sFullTopicPath;
- }
- }
-}
-
-function canGo(bNext)
-{
- for(var i=0;i<gaAvenues.length;i++)
- {
- if((gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)||
- (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext))
- return true;
- }
- return false;
-}
-
-function show()
-{
- if(gsStartPage!="")
- window.location=gsStartPage+"#"+gsRelCurPagePath;
-}
-
-function hide()
-{
- if(goFrame!=null)
- {
- goFrame.location=window.location;
- }
-}
-
-function isTopicOnly()
-{
- if(gnTopicOnly==-1)
- {
- var oParam=new Object();
- oParam.oFrame=null;
- var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam);
- if(SendMessage(oMsg))
- {
- goFrame=oParam.oFrame;
- gnTopicOnly=0;
- }
- else
- gnTopicOnly=1;
- }
- if(gnTopicOnly==1)
- return true;
- else
- return false;
-}
-
-function websearch()
-{
- if(gbNav4)
- {
- if(document.ehelpform)
- document.ehelpform.submit();
- }
- else
- {
- if(window.ehelpform)
- window.ehelpform.submit();
- }
-}
-
-function addSearchFormHref(sHref)
-{
- gsSearchFormHref=sHref;
- enableWebSearch(true);
-}
-
-function searchB(nForm)
-{
- var sValue=eval("document.searchForm"+nForm+".searchString.value");
- var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue);
- SendMessage(oMsg);
-}
-
-function getSearchFormHTML()
-{
- var sHTML="";
- gnForm++;
- var sFormName="searchForm"+gnForm;
- var sButton="<form name=\""+sFormName+"\" method=\"POST\" action=\"javascript:searchB("+gnForm+")\">"
- sButton+="<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";
- if(""=="text")
- {
- sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\"></a>";
- }
- else if(""=="image")
- {
- sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\">"
- sButton+="<img src=\"\" border=0></a>";
- }
- sButton+="</form>";
- sHTML="<td align=\"center\">"+sButton+"</td>";
- return sHTML;
-}
-
-function showHidePane(bShow)
-{
- var oMsg=null;
- if(bShow)
- oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
- else
- oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);
- SendMessage(oMsg);
-}
-
-function isShowHideEnable()
-{
- if(gbIE4)
- return true;
- else
- return false;
-}
-
-
-function PickupDialog_Invoke()
-{
- if(!gbIE4||gbMac)
- {
- if(typeof(_PopupMenu_Invoke)=="function")
- return _PopupMenu_Invoke(PickupDialog_Invoke.arguments);
- }
- else
- {
- if(PickupDialog_Invoke.arguments.length>2)
- {
- var sPickup="whskin_pickup.htm";
- var sPickupPath=gsPPath+sPickup;
- if(gbIE4)
- {
- var sFrame=PickupDialog_Invoke.arguments[1];
- var aTopics=new Array();
- for(var i=2;i<PickupDialog_Invoke.arguments.length;i+=2)
- {
- var j=aTopics.length;
- aTopics[j]=new Object();
- aTopics[j].m_sName=PickupDialog_Invoke.arguments[i];
- aTopics[j].m_sURL=PickupDialog_Invoke.arguments[i+1];
- }
-
- if(aTopics.length>1)
- {
- var nWidth=300;
- var nHeight=180;
- var nScreenWidth=screen.width;
- var nScreenHeight=screen.height;
- var nLeft=(nScreenWidth-nWidth)/2;
- var nTop=(nScreenHeight-nHeight)/2;
- if(gbIE4)
- {
- var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;");
- if(vRet)
- {
- var sURL=vRet.m_url;
- if(sFrame)
- window.open(sURL,sFrame);
- else
- window.open(sURL,"_self");
- }
- }
- }
- else if(aTopics.length==1)
- {
- var sURL=aTopics[0].m_sURL
- if(sFrame)
- window.open(sURL,sFrame);
- else
- window.open(sURL,"_self");
- }
- }
- }
- }
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
- RegisterListener("bsscright",WH_MSG_GETAVIAVENUES);
- RegisterListener("bsscright",WH_MSG_GETTOCPATHS);
- RegisterListener("bsscright",WH_MSG_NEXT);
- RegisterListener("bsscright",WH_MSG_PREV);
- RegisterListener("bsscright",WH_MSG_WEBSEARCH);
- if(gbMac&&gbIE4)
- {
- if(typeof(window.onunload)!="unknown")
- if(window.onunload.toString!=unRegisterListener.toString)
- whtopic_foldUnload=window.onunload;
- }
- else
- {
- if(window.onunload)
- if(window.onunload.toString!=unRegisterListener.toString)
- whtopic_foldUnload=window.onunload;
- }
- window.onunload=unRegisterListener;
- setButtonFont("show","","","","","","");
-setButtonFont("hide","","","","","","");
-
- gbWhTopic=true;
-}
-else
- document.location.reload();
+++ /dev/null
-// WebHelp 5.10.004
-var gsFileName="";
-var gsDivName="";
-var xmlDoc=null;
-var sdocPath=null;
-var gsInsertBeforeEndHTML="";
-var sReplaceStringsSrc=new Array();
-var gsDivName="dataDiv";
-var gnLoadDivNum=0;
-sReplaceStringsSrc[0]="&";
-sReplaceStringsSrc[1]=">";
-sReplaceStringsSrc[2]="<";
-sReplaceStringsSrc[3]=""";
-sReplaceStringsSrc[4]=String.fromCharCode(8364);
-sReplaceStringsSrc[5]=" ";
-
-var sReplaceStringsDst=new Array();
-sReplaceStringsDst[0]="&";
-sReplaceStringsDst[1]=">";
-sReplaceStringsDst[2]="<";
-sReplaceStringsDst[3]="\"";
-sReplaceStringsDst[4]=String.fromCharCode(128);
-sReplaceStringsDst[5]=" ";
-var goHighLighted=null;
-
-function _getRelativePath(strParentPath,strCurrentPath)
-{
- if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);
- strParentPath=_replaceSlash(strParentPath);
- strParentPath=_getPath(strParentPath);
- strCurrentPath=_replaceSlash(strCurrentPath);
- strCurrentPath=_getPath(strCurrentPath);
- for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
- {
- if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
- break;
- }
-
- strParentPath=strParentPath.substring(i);
- strCurrentPath=strCurrentPath.substring(i);
-
- var nPathPos=0;
- while(nPathPos!=-1)
- {
- nPathPos=strParentPath.indexOf("/");
- if(nPathPos!=-1)
- {
- strParentPath=strParentPath.substring(nPathPos+1);
- strCurrentPath="../"+strCurrentPath;
- }
- }
- return strCurrentPath;
-}
-
-function _getRelativeFileName(strParentPath,strCurrentPath)
-{
- strParentPath=_replaceSlash(strParentPath);
- strParentPath=_getPath(strParentPath);
- strCurrentPath=_replaceSlash(strCurrentPath);
- for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
- {
- if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
- break;
- }
-
- strParentPath=strParentPath.substring(i);
- strCurrentPath=strCurrentPath.substring(i);
-
- var nPathPos=0;
- while(nPathPos!=-1)
- {
- nPathPos=strParentPath.indexOf("/");
- if(nPathPos!=-1)
- {
- strParentPath=strParentPath.substring(nPathPos+1);
- strCurrentPath="../"+strCurrentPath;
- }
- }
- return strCurrentPath;
-}
-
-function _isAbsPathToHost(sPath)
-{
- return (sPath.indexOf("/")==0);
-}
-
-function _getHost(sPath)
-{
- var nPos=sPath.indexOf("//");
- if(nPos>0)
- {
- var nPosx=sPath.indexOf("/",nPos+2);
- if(nPosx>0)
- return sPath.substring(0,nPosx);
- else
- return sPath;
- }
- return sPath;
-}
-
-function _getFullPath(sPath,sRelPath)
-{
- if(_isAbsPath(sRelPath))
- return sRelPath;
- else if(_isAbsPathToHost(sRelPath))
- return _getHost(sPath)+sRelPath;
- else
- {
- var sFullPath=sPath;
- var nPathPos=0;
- while(nPathPos!=-1)
- {
- var nPathPos=sRelPath.indexOf("../");
- if(nPathPos!=-1)
- {
- sRelPath=sRelPath.substring(nPathPos+3);
- sFullPath=sFullPath.substring(0,sFullPath.length-1);
- var nPos2=sFullPath.lastIndexOf("/");
- if(nPos2!=-1)
- sFullPath=sFullPath.substring(0,nPos2+1);
- else
- break;
- }
- }
- sFullPath+=sRelPath;
- return sFullPath;
- }
-}
-
-function _isAbsPath(strPath)
-{
- var strUpper=strPath.toUpperCase();
- return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0);
-}
-
-function _replaceSlash(strURL)
-{
- var re=new RegExp("\\\\","g");
- var strReplacedURL=strURL.replace(re,"/");
- return strReplacedURL;
-}
-
-function _getPath(strURL)
-{
- pathpos=strURL.lastIndexOf("/");
- if(pathpos>0)
- return strURL.substring(0,pathpos+1);
- else
- return "";
-}
-
-function removeItemFromArray(oArray,i)
-{
- if(oArray.length&&i>=0&&i<oArray.length)
- {
- var len=oArray.length;
- for(var s=i;s<len-1;s++)
- oArray[s]=oArray[s+1];
- oArray.length=len-1;
- }
-}
-
-function insertItemIntoArray(oArray,i,obj)
-{
- if(oArray.length&&i>=0&&i<=oArray.length)
- {
- var len=oArray.length;
- for(var s=len;s>i;s--)
- oArray[s]=oArray[s-1];
- oArray[i]=obj;
- }
-}
-
-function loadData(sFileName)
-{
- var i=gnLoadDivNum;
- var sName=gsDivName+gnLoadDivNum++;
- loadData_2(sFileName,sName);
-}
-
-function loadData_2(sFileName,sDivName)
-{
- if(!getElement(sDivName))
- {
- if(!insertDataDiv(sDivName))
- {
- gsFileName=sFileName;
- gsDivName=sDivName;
- return;
- }
- }
- var sHTML="";
- if(gbMac)
- sHTML+="<iframe src=\""+sFileName+"\"></iframe>";
- else
- sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src=\""+sFileName+"\"></iframe>";
-
- var oDivCon=getElement(sDivName);
- if(oDivCon)
- {
- if(gbNav6)
- {
- if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)
- {
- oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;
- }
- else
- oDivCon.innerHTML=sHTML;
- }
- else
- oDivCon.innerHTML=sHTML;
- }
-}
-
-function loadDataXML(sFileName)
-{
- var sCurrentDocPath=_getPath(document.location.href);
- sdocPath=_getFullPath(sCurrentDocPath,sFileName);
- if(gbIE5)
- {
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- xmlDoc.async=true;
- xmlDoc.onreadystatechange=checkState;
- if(document.body!=null)
- xmlDoc.load(sdocPath);
- }
- else if(gbNav6)
- {
- xmlDoc=document.implementation.createDocument("","",null);
- xmlDoc.addEventListener("load",initializeData,false);
- xmlDoc.load(sdocPath,"text/xml");
- }
-}
-
-function initializeData()
-{
- if(xmlDoc!=null)
- putDataXML(xmlDoc,sdocPath);
-}
-
-function checkState()
-{
- if(xmlDoc!=null)
- {
- var state=xmlDoc.readyState;
- if(state==4)
- {
- var err=xmlDoc.parseError;
- if(err.errorCode==0)
- putDataXML(xmlDoc,sdocPath);
- else
- onLoadXMLError();
- }
- }
-}
-
-function insertDataDiv(sName)
-{
- var sHTML="";
- if(gbMac)
- sHTML+="<div id="+sName+" style=\"display:none;\"></div>";
- else
- sHTML+="<div id="+sName+" style=\"visibility:hidden\"></div>";
- if((gbIE5||gbNav6)&&document.body)
- document.body.insertAdjacentHTML("beforeEnd",sHTML);
- else
- {
- gsInsertBeforeEndHTML=sHTML;
- setTimeout("insertWhenBodyReady();",100);
- return false;
- }
- return true;
-}
-
-function insertWhenBodyReady()
-{
- if(gsInsertBeforeEndHTML=="") return;
- if(document.body)
- {
- document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);
- gsInsertBeforeEndHTML="";
- loadData_2(gsFileName,gsDivName);
- }
- else
- {
- setTimeout("insertWhenBodyReady();",100);
- }
-}
-
-function window_BUnload()
-{
- for(var i=0;i<gnLoadDivNum;i++)
- {
- var oDivCon=getElement(gsDivName+i);
- if(oDivCon)
- oDivCon.innerHTML="";
- }
-}
-
-function removeThis(obj)
-{
- if(obj.parentNode)
- obj.parentNode.removeChild(obj);
- else
- obj.outerHTML="";
-}
-
-function getParentNode(obj)
-{
- if(obj.parentNode)
- return obj.parentNode;
- else if(obj.parentElement)
- return obj.parentElement;
- return null;
-}
-
-function getElement(sID)
-{
- if(document.getElementById)
- return document.getElementById(sID);
- else if(document.all)
- return document.all(sID);
- return null;
-}
-
-function getChildrenByTag(obj,sTagName)
-{
- if(obj.getElementsByTagName)
- {
- var aChildren=new Array();
- var aElements=getElementsByTag(obj,sTagName);
- if(aElements!=null)
- {
- for(var i=0;i<aElements.length;i++)
- {
- if(aElements[i].parentNode==obj)
- aChildren[aChildren.length]=aElements[i];
- }
- return aChildren;
- }
- else
- return new Array();
- }
- else if(obj.children)
- return obj.children.tags(sTagName);
-}
-
-function getElementsByTag(obj,sTagName)
-{
- if(obj.getElementsByTagName)
- return obj.getElementsByTagName(sTagName);
- else if(obj.all)
- return obj.all.tags(sTagName);
- return null;
-}
-
-function _htmlToText(sHTML)
-{
- if(sHTML==null) return null;
- var sText=sHTML;
- for(var i=0;i<sReplaceStringsSrc.length;i++)
- {
- var re=new RegExp(sReplaceStringsSrc[i],"g");
- sText=sText.replace(re,sReplaceStringsDst[i]);
- }
- return sText;
-}
-
-function _textToHtml_nonbsp(sText)
-{
- if(sText==null) return null;
- var sHTML=sText;
- for(var i=0;i<sReplaceStringsSrc.length-1;i++)
- {
- var re=new RegExp(sReplaceStringsDst[i],"g");
- sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
- }
- return sHTML;
-}
-
-function _textToHtml(sText)
-{
- if(sText==null) return null;
- var sHTML=sText;
- for(var i=0;i<sReplaceStringsSrc.length;i++)
- {
- var re=new RegExp(sReplaceStringsDst[i],"g");
- sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
- }
- return sHTML;
-}
-
-
-function getInnerText(obj)
-{
- var renbsp2sp=new RegExp("\xa0","g");
- if(obj.innerText)
- {
- var sText=obj.innerText;
- sText=sText.replace(renbsp2sp," ");
- return sText;
- }
- else
- {
- if(obj.nodeValue)
- {
- var sValue=obj.nodeValue;
- sValue=sValue.replace(renbsp2sp," ");
- return sValue;
- }
- else
- {
- var sText="";
- var oChild=obj.firstChild;
- while(oChild!=null)
- {
- sText+=getInnerText(oChild);
- oChild=oChild.nextSibling;
- }
- return sText;
- }
- }
-
-}
-
-function HighLightElement(obj,sHighLightColor,sNormalColor)
-{
- if(obj!=null)
- {
- resetHighLight(sNormalColor);
- if (obj.style)
- obj.style.backgroundColor=sHighLightColor;
- goHighLighted=obj;
- }
-}
-
-function resetHighLight(sNormalColor)
-{
- if(goHighLighted!=null)
- {
- if (goHighLighted.style)
- goHighLighted.style.backgroundColor=sNormalColor;
- goHighLighted=null;
- }
-}
-
-function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)
-{
- this.sName=sName;
- this.sSize=sSize;
- this.sColor=sColor;
- this.sStyle=sStyle;
- this.sWeight=sWeight;
- this.sDecoration=sDecoration;
-}
-
-function getFontStyle(oFont)
-{
- var sStyle="";
- if(oFont)
- {
- sStyle+="font-family:"+oFont.sName+";";
- if(gbMac)
- {
- var nSize=parseInt(oFont.sSize);
- if(gbIE5)
- nSize+=2;
- else
- nSize+=4;
- sStyle+="font-size:"+nSize+"pt;";
- }
- else
- sStyle+="font-size:"+oFont.sSize+";";
-
- sStyle+="font-style:"+oFont.sStyle+";";
- sStyle+="font-weight:"+oFont.sWeight+";";
- sStyle+="text-decoration:"+oFont.sDecoration+";";
- sStyle+="color:"+oFont.sColor+";";
- }
- return sStyle;
-}
-
-function _browserStringToText(sBStr)
-{
- var sText="";
- // change %xxx back to the real char.
- var nPos=sBStr.indexOf('%');
- while(nPos!=-1)
- {
- sText+=sBStr.substring(0,nPos);
- sBStr=sBStr.substring(nPos+1);
- var sNum="";
- var i=0;
- while(sBStr.charAt(i)>='0'&&sBStr.charAt(i)<='9')
- {
- sNum+=sBStr.charAt(i++);
- }
- if(sNum!=""){
- var nNum=parseInt(sNum,16);
- sText+=String.fromCharCode(nNum);
- sBStr=sBStr.substring(i);
- }
- nPos=sBStr.indexOf('%');
- }
- sText+=sBStr;
- return sText;
-}
-
-function excapeSingleQuotandSlash(str)
-{
- if(str==null) return null;
- var nPos=0;
- var sRes="";
- var nPosNew=str.indexOf("\\",nPos);
- while(nPosNew!=-1){
- sRes+=str.substring(nPos,nPosNew+1)+"\\";
- nPos=nPosNew+1;
- nPosNew=str.indexOf("\\",nPos);
- }
- if(nPos<str.length)
- sRes+=str.substring(nPos);
- var re=new RegExp("'","g");
- sRes=sRes.replace(re,"\\'");
- return sRes;
-}
-
-var gbWhUtil=true;
\ No newline at end of file
+++ /dev/null
-// WebHelp 5.10.006
-var gbNav=false;
-var gbNav6=false;
-var gbNav61=false;
-var gbNav7=false;
-var gbNav4=false;
-var gbIE4=false;
-var gbIE=false;
-var gbIE5=false;
-var gbIE55=false;
-var gbOpera6=false;
-var gbOpera7=false;
-var gbKonqueror3=false;
-
-var gAgent=navigator.userAgent.toLowerCase();
-var gbMac=(gAgent.indexOf("mac")!=-1);
-var gbSunOS=(gAgent.indexOf("sunos")!=-1);
-var gbOpera=(gAgent.indexOf("opera")!=-1);
-var gbKonqueror=(gAgent.indexOf("konqueror")!= -1);
-var gbSafari=(gAgent.indexOf("safari")!= -1);
-var gbWindows=((gAgent.indexOf('win')!= -1)||(gAgent.indexOf('16bit')!= -1));
-var gbMozilla=((gAgent.indexOf('gecko')!=-1) && (gAgent.indexOf('netscape')==-1));
-
-
-var gVersion=navigator.appVersion.toLowerCase();
-
-var gnVerMajor=parseInt(gVersion);
-var gnVerMinor=parseFloat(gVersion);
-
-if(!gbOpera&&!gbKonqueror&&!gbSafari) // opera can mimic IE or Netscape by settings.
-{
- gbIE=(navigator.appName.indexOf("Microsoft")!=-1);
- gbNav=(gAgent.indexOf('mozilla')!=-1) && ((gAgent.indexOf('spoofer')==-1) && (gAgent.indexOf('compatible')==-1));
- if(gnVerMajor>=4)
- {
- if(navigator.appName=="Netscape")
- {
- gbNav4=true;
- if(gnVerMajor>=5)
- gbNav6=true;
- }
- gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);
- }
- if(gbNav6)
- {
- var nPos=gAgent.indexOf("gecko");
- if(nPos!=-1)
- {
- var nPos2=gAgent.indexOf("/", nPos);
- if(nPos2!=-1)
- {
- var nVersion=parseFloat(gAgent.substring(nPos2+1));
- if(nVersion>=20010726)
- {
- gbNav61=true;
- if (nVersion>=20020823)
- gbNav7=true;
- }
- }
- }
- }else if(gbIE4)
- {
- var nPos=gAgent.indexOf("msie");
- if(nPos!=-1)
- {
- var nVersion=parseFloat(gAgent.substring(nPos+5));
- if(nVersion>=5)
- {
- gbIE5=true;
- if(nVersion>=5.5)
- gbIE55=true;
- }
- }
- }
-}
-else if (gbOpera)
-{
- var nPos = gAgent.indexOf("opera");
- if(nPos!=-1)
- {
- var nVersion=parseFloat(gAgent.substring(nPos+6));
- if(nVersion>=6)
- {
- gbOpera6=true;
- if(nVersion>=7)
- gbOpera7=true;
- }
- }
-}
-else if (gbKonqueror)
-{
- var nPos = gAgent.indexOf("konqueror");
- if(nPos!=-1)
- {
- var nVersion = parseFloat(gAgent.substring(nPos+10));
- if (nVersion >= 3)
- {
- gbKonqueror3=true;
- }
- }
-}
-
-var gbWhVer=true;
\ No newline at end of file