0027191: Documentation - redesign of information architecture -- revision (user guides)
authorVera Sdobnova <vera.sdobnova@opencascade.com>
Thu, 1 Oct 2020 12:34:55 +0000 (15:34 +0300)
committerabv <abv@opencascade.com>
Fri, 2 Oct 2020 15:11:24 +0000 (18:11 +0300)
Revision of User Guides

- Changes in User Guides Section to correspond with OCCT Overview structure: Mesh became a direct subsection of User Guides (it was a part of Modeling Algorithms).
  TObj is included into OCAF.
- Changes in User Guides – Modeling Algorithms section: Fillets and Chamfers, Offsets, Drafts, Pipes and Evolved shapes, Sewing, Features, 3D Model Defeaturing, 3D Model Periodicity,
  Object Modification are moved into The Topology API section.
- Changes in User Guides – Modeling Data section: Naming shapes, sub-shapes, their orientation and state section is renamed to Shape content. Shape Location is moved into Shape content section.
  Storage of Shapes is moved into BRep Format section of Specification. Lists and Maps of Shapes subsection is moved into Topology - Exploration of Topological Data Structures.
- Some pictures in User Guides (Foundation Classes, Modeling Data, Modeling Algorithms) and Tutorial are updated to improve quality and correct mistakes.

69 files changed:
dox/FILES_HTML.txt
dox/FILES_PDF.txt
dox/introduction/introduction.md
dox/user_guides/draw_test_harness/draw_test_harness.md
dox/user_guides/foundation_classes/foundation_classes.md
dox/user_guides/foundation_classes/images/foundation_classes_image004.png
dox/user_guides/foundation_classes/images/foundation_classes_image005.png
dox/user_guides/foundation_classes/images/foundation_classes_image006.png
dox/user_guides/iges/iges.md
dox/user_guides/mesh/images/modeling_algos_image056.png [new file with mode: 0644]
dox/user_guides/mesh/images/modeling_algos_image057.png [new file with mode: 0644]
dox/user_guides/mesh/images/modeling_algos_mesh_001.svg [new file with mode: 0644]
dox/user_guides/mesh/images/modeling_algos_mesh_002.svg [new file with mode: 0644]
dox/user_guides/mesh/images/modeling_algos_mesh_003.svg [new file with mode: 0644]
dox/user_guides/mesh/images/modeling_algos_mesh_004.svg [new file with mode: 0644]
dox/user_guides/mesh/mesh.md [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image003.png
dox/user_guides/modeling_algos/images/modeling_algos_image004.png
dox/user_guides/modeling_algos/images/modeling_algos_image014.png
dox/user_guides/modeling_algos/images/modeling_algos_image015.png
dox/user_guides/modeling_algos/images/modeling_algos_image016.png
dox/user_guides/modeling_algos/images/modeling_algos_image017.png
dox/user_guides/modeling_algos/images/modeling_algos_image021.png
dox/user_guides/modeling_algos/images/modeling_algos_image023.png
dox/user_guides/modeling_algos/images/modeling_algos_image028.png
dox/user_guides/modeling_algos/images/modeling_algos_image030.png
dox/user_guides/modeling_algos/images/modeling_algos_image035.png
dox/user_guides/modeling_algos/images/modeling_algos_image037.gif [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image040.png
dox/user_guides/modeling_algos/images/modeling_algos_image041.png
dox/user_guides/modeling_algos/images/modeling_algos_image043.png
dox/user_guides/modeling_algos/images/modeling_algos_image045.png
dox/user_guides/modeling_algos/images/modeling_algos_image047.png
dox/user_guides/modeling_algos/images/modeling_algos_image048.png
dox/user_guides/modeling_algos/images/modeling_algos_image049.png
dox/user_guides/modeling_algos/images/modeling_algos_image051.png
dox/user_guides/modeling_algos/images/modeling_algos_image056.png [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image057.png [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image058.png
dox/user_guides/modeling_algos/images/modeling_algos_mesh_001.svg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_mesh_002.svg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_mesh_003.svg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_mesh_004.svg [deleted file]
dox/user_guides/modeling_algos/images/modeling_data_image003.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_data_image014.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_data_image015.png [new file with mode: 0644]
dox/user_guides/modeling_algos/modeling_algos.md
dox/user_guides/modeling_data/images/modeling_data_image003.png
dox/user_guides/modeling_data/images/modeling_data_image014.png
dox/user_guides/modeling_data/images/modeling_data_image015.png
dox/user_guides/modeling_data/modeling_data.md
dox/user_guides/ocaf/images/tobj_image003.png [new file with mode: 0644]
dox/user_guides/ocaf/images/tobj_image004.png [new file with mode: 0644]
dox/user_guides/ocaf/images/tobj_image005.png [new file with mode: 0644]
dox/user_guides/ocaf/images/tobj_image006.png [new file with mode: 0644]
dox/user_guides/ocaf/images/tobj_image007.png [new file with mode: 0644]
dox/user_guides/ocaf/images/tobj_image008.png [new file with mode: 0644]
dox/user_guides/ocaf/ocaf.md
dox/user_guides/step/step.md
dox/user_guides/tobj/images/tobj_image003.png [deleted file]
dox/user_guides/tobj/images/tobj_image004.png [deleted file]
dox/user_guides/tobj/images/tobj_image005.png [deleted file]
dox/user_guides/tobj/images/tobj_image006.png [deleted file]
dox/user_guides/tobj/images/tobj_image007.png [deleted file]
dox/user_guides/tobj/images/tobj_image008.png [deleted file]
dox/user_guides/tobj/tobj.md [deleted file]
dox/user_guides/user_guides.md
dox/user_guides/visualization/visualization.md
dox/user_guides/xde/xde.md

index 46e89cb7a2a449dae7acaf50fb161af989348a35..5fbca28ed300475558762a6d71bef3aba890470e 100644 (file)
@@ -33,13 +33,13 @@ user_guides/user_guides.md
 user_guides/foundation_classes/foundation_classes.md
 user_guides/modeling_data/modeling_data.md
 user_guides/modeling_algos/modeling_algos.md
+user_guides/mesh/mesh.md
 user_guides/shape_healing/shape_healing.md
 user_guides/visualization/visualization.md
 user_guides/iges/iges.md
 user_guides/step/step.md
 user_guides/xde/xde.md
 user_guides/ocaf/ocaf.md
-user_guides/tobj/tobj.md
 user_guides/draw_test_harness/draw_test_harness.md
 user_guides/inspector/inspector.md
 user_guides/vis/vis.md
index a26c0f74640130168df89d04ee4c1b9a1bc575a7..c7850a700632cfd07d79c283df65a61e97229b8d 100644 (file)
@@ -4,21 +4,22 @@
 # Empty spaces are allowed.
 # Strings starting with '#' are treated as comments and ignored.
 
-specification/brep_wp/brep_wp.md
+tutorial/tutorial.md
+
+upgrade/upgrade.md
+
 user_guides/foundation_classes/foundation_classes.md
-user_guides/iges/iges.md
 user_guides/modeling_data/modeling_data.md
 user_guides/modeling_algos/modeling_algos.md
-specification/boolean_operations/boolean_operations.md
-user_guides/shape_healing/shape_healing.md
+user_guides/mesh/mesh.md
 user_guides/ocaf/ocaf.md
-user_guides/step/step.md
-user_guides/draw_test_harness/draw_test_harness.md
-user_guides/inspector/inspector.md
-user_guides/tobj/tobj.md
 user_guides/visualization/visualization.md
-user_guides/xde/xde.md
 user_guides/vis/vis.md
+user_guides/iges/iges.md
+user_guides/step/step.md
+user_guides/xde/xde.md
+user_guides/inspector/inspector.md
+user_guides/draw_test_harness/draw_test_harness.md
 
 contribution/contribution_workflow/contribution_workflow.md
 contribution/documentation/documentation.md
@@ -26,7 +27,6 @@ contribution/coding_rules.md
 contribution/git_guide/git_guide.md
 contribution/tests/tests.md
 
-upgrade/upgrade.md
+specification/boolean_operations/boolean_operations.md
+specification/brep_format.md
 specification/pbr_math.md
-
-tutorial/tutorial.md
index e1b9c43f4ab8fb0a712152bc200d22d57a67f95b..d2df5501b6dca3a5e4263a03f25599749a8e58b5 100644 (file)
@@ -281,7 +281,7 @@ Each sub-domain of Shape Healing has its own scope of functionality:
 | Customization | Modifies the shape representation to fit specific needs. | The shape is not modified, only the mathematical form of its internal representation is changed. |
 | Processing | Mechanism of shape modification via a user-editable resource file. | |
 
-For more details, refer to @ref occt_shg "Shape Healing User's guide".
+For more details, refer to @ref occt_user_guides__shape_healing "Shape Healing User's guide".
 
 @subsection intro_overview_ocaf Application Framework
 
index 5104cfe9557d1a3e923f3f537104a1feb8d7abfd..255352e87cdbcc1687f32b4599533c5e1bff3bd7 100644 (file)
@@ -6979,7 +6979,7 @@ sr is a shape COMPOUND FORWARD Free Modified
 
 The new algorithm of Boolean operations avoids a large number of weak points and limitations presented in the old Boolean operation algorithm.
 It also provides wider range of options and diagnostics.
-The algorithms of Boolean component are fully described in the @ref specification__boolean_1 "Boolean Operations" of boolean operation user guide.
+The algorithms of Boolean component are fully described in the @ref specification__boolean_operations "Boolean Operations" of boolean operation user guide.
 
 For the Draw commands to perform operations in Boolean component, read the dedicated section @ref occt_draw_bop "Boolean operations commands"
 
@@ -11733,4 +11733,3 @@ The procedure consists in defining the system variables and using the *pload* co
 Draw[]> set env(CSF_MyDrawPluginDefaults) /users/test
 Draw[]> pload -MyDrawPlugin ALL
 ~~~~
-
index 9a144a9080d106caf11595b2d9032cd39bd3808b..45844ef7eb36e9098dfa2a16bb4518d0acc4f474 100644 (file)
@@ -7,7 +7,6 @@ Foundation Classes  {#occt_user_guides__foundation_classes}
 
 This manual explains how to use Open CASCADE Technology (**OCCT**) Foundation Classes.
 It provides basic documentation on foundation classes.
-For advanced information on foundation classes and their applications, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
    
 Foundation Classes provide a variety of general-purpose services such as automated dynamic memory management (manipulation of objects by handle), collections, exception handling, genericity by down-casting and plug-in creation.
 
index 6d00d38d4a8407081e17421f9d045a4915129073..9dfe2ac521b0e1e115b0703a9f58d19e19a9f0dd 100644 (file)
Binary files a/dox/user_guides/foundation_classes/images/foundation_classes_image004.png and b/dox/user_guides/foundation_classes/images/foundation_classes_image004.png differ
index 6ad4232577627a1ace929a7381ae818d2051deb6..a11addb082ef59dfec9040cf8a955c31d189ab3e 100644 (file)
Binary files a/dox/user_guides/foundation_classes/images/foundation_classes_image005.png and b/dox/user_guides/foundation_classes/images/foundation_classes_image005.png differ
index 6e920054acecf6c077f366833140fe45f2968835..a57756d0a8b10a11c7205f806f8dd53c134c9c5e 100644 (file)
Binary files a/dox/user_guides/foundation_classes/images/foundation_classes_image006.png and b/dox/user_guides/foundation_classes/images/foundation_classes_image006.png differ
index 76654aa7d9c0f0e131feb2aea71f37299a186472..3e09800e06bc7661ffcd07eb29aa5cadae493414 100644 (file)
@@ -1,4 +1,4 @@
-IGES Support  {#occt_user_guides__iges}
+IGES Translator  {#occt_user_guides__iges}
 ==================
 
 @tableofcontents
@@ -15,7 +15,7 @@ Other kinds of data such as colors and names can be read or written with the hel
   * an IGES entity is an entity in the IGES normal sense.
   * a root entity is the highest level entity of any given type, e.g. type 144 for surfaces and type 186 for solids. Roots are not referenced by other entities.
 
-This manual mainly explains how  to convert an IGES file to an Open CASCADE Technology (**OCCT**) shape and  vice versa. It provides basic documentation on conversion. For advanced  information on conversion, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
+This manual mainly explains how  to convert an IGES file to an Open CASCADE Technology (**OCCT**) shape and  vice versa. It provides basic documentation on conversion.
 
 IGES files produced in accordance with IGES standard versions up to and including version 5.3 can be read. IGES files that are produced by this  interface conform to IGES version 5.3 (Initial Graphics Exchange Specification,  IGES 5.3. ANS US PRO/IPO-100-1996). 
 
diff --git a/dox/user_guides/mesh/images/modeling_algos_image056.png b/dox/user_guides/mesh/images/modeling_algos_image056.png
new file mode 100644 (file)
index 0000000..f1f724e
Binary files /dev/null and b/dox/user_guides/mesh/images/modeling_algos_image056.png differ
diff --git a/dox/user_guides/mesh/images/modeling_algos_image057.png b/dox/user_guides/mesh/images/modeling_algos_image057.png
new file mode 100644 (file)
index 0000000..450b8c6
Binary files /dev/null and b/dox/user_guides/mesh/images/modeling_algos_image057.png differ
diff --git a/dox/user_guides/mesh/images/modeling_algos_mesh_001.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_001.svg
new file mode 100644 (file)
index 0000000..a02e84d
--- /dev/null
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="503" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 503 507" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="507" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M9 38 L494 38 L494 498 L9 498 L9 38 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M9 38 L492 38 L492 496 L9 496 L9 38 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M185 43 L316 43 L316 61 L185 61 L185 43 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M185 43 L319 43 L319 61 L185 61 L185 43 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M25 134 L206 134 L206 206 L25 206 L25 134 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M25 134 L204 134 L204 204 L25 204 L25 134 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M40 139 L191 139 L191 154 L40 154 L40 139 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M153 122 L175 122 L175 144 L153 144 L153 122 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M97 105 L232 105 L232 123 L97 123 L97 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M97 105 L234 105 L234 123 L97 123 L97 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M285 134 L470 134 L470 206 L285 206 L285 134 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M285 134 L468 134 L468 204 L285 204 L285 134 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M292 139 L463 139 L463 154 L292 154 L292 139 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M309 122 L331 122 L331 144 L309 144 L309 122 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M253 105 L388 105 L388 123 L253 123 L253 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M253 105 L390 105 L390 123 L253 123 L253 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M27 242 L208 242 L208 314 L27 314 L27 242 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M27 242 L206 242 L206 312 L27 312 L27 242 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M63 247 L171 247 L171 262 L63 262 L63 247 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M286 242 L470 242 L470 314 L286 314 L286 242 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M286 242 L468 242 L468 312 L286 312 L286 242 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M307 247 L448 247 L448 262 L307 262 L307 247 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M28 350 L204 350 L204 422 L28 422 L28 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M28 350 L202 350 L202 420 L28 420 L28 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M74 355 L158 355 L158 370 L74 370 L74 355 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M286 350 L470 350 L470 422 L286 422 L286 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M286 350 L468 350 L468 420 L286 420 L286 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M304 355 L451 355 L451 370 L304 370 L304 355 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
+<path d="M45 74 L77 74 L77 106 L45 106 L45 74 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
+<path d="M76 74 L158 74 L158 89 L76 89 L76 74 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
+<path d="M357 458 L389 458 L389 490 L357 490 L357 458 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
+<path d="M388 458 L421 458 L421 473 L388 473 L388 458 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
+<path d="M129 26 L151 26 L151 48 L129 48 L129 26 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
+<path d="M14 9 L267 9 L267 27 L14 27 L14 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
+<path d="M14 9 L269 9 L269 27 L14 27 L14 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
+<path d="M469 473 L487 473 L487 491 L469 491 L469 473 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
+<path d="M-1 -1 L504 -1 L504 508 L-1 508 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
+<path d="M279 272 L289 272 L289 281 L279 281 L279 272 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
+<path d="M102 343 L111 343 L111 353 L102 353 L102 343 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
+<path d="M302 119 L312 119 L312 128 L302 128 L302 119 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
+<path d="M110 235 L119 235 L119 245 L110 245 L110 235 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
+<path d="M279 380 L289 380 L289 389 L279 389 L279 380 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
+<path d="M369 451 L378 451 L378 461 L369 461 L369 451 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
+<path d="M56 127 L65 127 L65 137 L56 137 L56 127 Z"/>
+</clipPath>
+</defs>
+<g fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="rgb(131,122,133)" stroke-width="0" stroke-miterlimit="0">
+<rect x="11" y="40" clip-path="url(#clipPath1)" width="481" rx="12.5" opacity="0.2549" ry="12.5" height="456" stroke="none"/>
+<rect x="12" y="41" clip-path="url(#clipPath1)" width="481" rx="12.5" opacity="0.2549" ry="12.5" height="456" stroke="none"/>
+<rect x="10" y="39" clip-path="url(#clipPath2)" fill="white" width="481" rx="12.5" ry="12.5" height="456" stroke="none"/>
+</g>
+<g fill="rgb(114,73,110)" stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt" stroke="rgb(114,73,110)">
+<rect x="10" y="39" clip-path="url(#clipPath2)" fill="none" width="480" rx="12.5" ry="12.5" height="455"/>
+<image x="186" y="44" clip-path="url(#clipPath3)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABP0lEQVR42mNgGPKA&#13;&#10;EV3g+LWn/4ObljE8XV7CIB3ZAxbDxl5bF8VgqSXNyIhN876uJDD/P9SG/0i2/YfK&#13;&#10;OJfNBxuCYsCPn3/+//n3D85/8f4LUC1UCeN/OBtk7f///xmUpQQZGN3K1/zH5rf1&#13;&#10;DX4Mrz99Z6hYfgFFfH6mFdAARoaX778yWObPYmABCU7Ic0dRVDBpJ1hR7vTDDH2Z&#13;&#10;jkDboDYDnR7avoNhbZUnAwszE1iMiejQRQOszMzgAGXCFz9///xluPP8EwMbKxMY&#13;&#10;33nxCSwGAiwsTODYYIE5GVM/I8NKoFNDmrcw/EcK2E1NAVAXMGG6FBQLyBH79z/u&#13;&#10;iASxOdmYUb1w/u5LBsW4fnAAggxiYWICBhaIZkRjMzKoxPcznLj+DNUAUMoCJQ6F&#13;&#10;2D4GVqBqEK0Q04+F3Q9PiQOfmQBRlXo/vG/acgAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="205" y="57" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">BRepMesh Workflow</text>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke="rgb(131,122,133)" font-weight="bold" stroke-width="1.1">
+<rect x="27" y="136" clip-path="url(#clipPath5)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="28" y="137" clip-path="url(#clipPath5)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="26" y="135" clip-path="url(#clipPath6)" fill="white" width="177" rx="12.5" ry="12.5" height="68" stroke="none"/>
+<rect x="26" y="135" clip-path="url(#clipPath6)" fill="none" width="176" rx="12.5" ry="12.5" height="67" stroke="rgb(224,133,3)"/>
+<text x="41" y="152" clip-path="url(#clipPath7)" fill="black" stroke="none" xml:space="preserve">Create Model Data Structure</text>
+</g>
+<g fill="rgb(69,69,69)" stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt" stroke="rgb(69,69,69)">
+<rect x="154" y="123" clip-path="url(#clipPath8)" width="20" height="20" stroke="none"/>
+<rect x="154" y="123" clip-path="url(#clipPath8)" fill="none" width="19" height="19" stroke="rgb(136,136,136)" stroke-width="0.1"/>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(136,136,136)" font-family="'Segoe UI'" stroke="rgb(136,136,136)" stroke-width="0.1">
+<image x="98" y="106" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAkUlEQVR42mNgGAX0&#13;&#10;B/O3XP+PzGcEERZVa/9bqonDBY/feslwoi2YEZsBel6t/wuzghgSfTTB8kwgQl9e&#13;&#10;mCHWTh2OQXxc4NK2asb+aevgLmEBEe++/GS4++IjXBGID7MNl0EwQ8AGvPn8g+HG&#13;&#10;0w9wSRAfZhshb4ANuP70PcOHrz/hCp5/+IbTC+hhQHEsjAIGBgCVuEWDRzoaKgAA&#13;&#10;AABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="117" y="119" clip-path="url(#clipPath10)" fill="black" stroke="none" xml:space="preserve">IMeshData_Model : [1]</text>
+<rect x="287" y="136" clip-path="url(#clipPath11)" fill="rgb(131,122,133)" width="181" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="288" y="137" clip-path="url(#clipPath11)" fill="rgb(131,122,133)" width="181" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="286" y="135" clip-path="url(#clipPath12)" fill="white" width="181" rx="12.5" ry="12.5" height="68" stroke="none"/>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(224,133,3)" font-family="'Segoe UI'" stroke="rgb(224,133,3)" font-weight="bold" stroke-width="1.1">
+<rect x="286" y="135" clip-path="url(#clipPath12)" fill="none" width="180" rx="12.5" ry="12.5" height="67"/>
+<text x="293" y="152" clip-path="url(#clipPath13)" fill="black" stroke="none" xml:space="preserve">Discretize Edges 3D &amp; 2D Curves</text>
+</g>
+<g fill="rgb(209,209,209)" stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt" stroke="rgb(209,209,209)">
+<rect x="310" y="123" clip-path="url(#clipPath14)" width="20" height="20" stroke="none"/>
+<rect x="310" y="123" clip-path="url(#clipPath14)" fill="none" width="19" height="19" stroke="rgb(136,136,136)" stroke-width="0.1"/>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(136,136,136)" font-family="'Segoe UI'" stroke="rgb(136,136,136)" stroke-width="0.1">
+<image x="254" y="106" clip-path="url(#clipPath15)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnklEQVR42mNgGAW0&#13;&#10;A/O3XP9PjDpGXBJ6Xq3/C7OCGBJ9NOFqLKrW/rdUE4erOX7rJQMzLgNe3t7XeP+D&#13;&#10;VENH/9SGjcumNoLEvGOyGpKcNBn05UXA+MnbLwwsMNtwGdQ/bR3YOyCXvPvyk+Hu&#13;&#10;i49wORAfbMClbdWMxHjjzecfDDeefoDLg/gspITB9afvGT58/QlX8/zDN8pjYRQw&#13;&#10;MAAAk/9KnUC0a2QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="273" y="119" clip-path="url(#clipPath16)" fill="black" stroke="none" xml:space="preserve">IMeshData_Model : [1]</text>
+<rect x="29" y="244" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="30" y="245" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="28" y="243" clip-path="url(#clipPath18)" fill="white" width="177" rx="12.5" ry="12.5" height="68" stroke="none"/>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(224,133,3)" font-family="'Segoe UI'" stroke="rgb(224,133,3)" font-weight="bold" stroke-width="1.1">
+<rect x="28" y="243" clip-path="url(#clipPath18)" fill="none" width="176" rx="12.5" ry="12.5" height="67"/>
+<text x="64" y="260" clip-path="url(#clipPath19)" fill="black" stroke="none" xml:space="preserve">Heal Discrete Model</text>
+<rect x="288" y="244" clip-path="url(#clipPath20)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="289" y="245" clip-path="url(#clipPath20)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="287" y="243" clip-path="url(#clipPath21)" fill="white" width="180" rx="12.5" ry="12.5" height="68" stroke="none"/>
+<rect x="287" y="243" clip-path="url(#clipPath21)" fill="none" width="179" rx="12.5" ry="12.5" height="67"/>
+<text x="308" y="260" clip-path="url(#clipPath22)" fill="black" stroke="none" xml:space="preserve">Preprocess Discrete Model</text>
+<rect x="30" y="352" clip-path="url(#clipPath23)" fill="rgb(131,122,133)" width="172" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="31" y="353" clip-path="url(#clipPath23)" fill="rgb(131,122,133)" width="172" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="29" y="351" clip-path="url(#clipPath24)" fill="white" width="172" rx="12.5" ry="12.5" height="68" stroke="none"/>
+<rect x="29" y="351" clip-path="url(#clipPath24)" fill="none" width="171" rx="12.5" ry="12.5" height="67"/>
+<text x="75" y="368" clip-path="url(#clipPath25)" fill="black" stroke="none" xml:space="preserve">Discretize Faces</text>
+<rect x="288" y="352" clip-path="url(#clipPath26)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="289" y="353" clip-path="url(#clipPath26)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
+<rect x="287" y="351" clip-path="url(#clipPath27)" fill="white" width="180" rx="12.5" ry="12.5" height="68" stroke="none"/>
+<rect x="287" y="351" clip-path="url(#clipPath27)" fill="none" width="179" rx="12.5" ry="12.5" height="67"/>
+<text x="305" y="368" clip-path="url(#clipPath28)" fill="black" stroke="none" xml:space="preserve">Postprocess Discrete Model</text>
+</g>
+<g stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="46" y="75" clip-path="url(#clipPath29)" width="30" xlink:href="data:image/png;base64,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&#13;&#10;g/+qk+iEV25wp+aw5iBnnRmTmPxyQH5C6GPge9We9w9wNeosJLt3zgSVpci6eO9x&#13;&#10;NAom97FVXseILWFPsA8NJW5X3r1kvy7wrwV7rOgcdFxmdW3CpsfFKcw4zzFtXksH&#13;&#10;2292b//+nzg2kL3yvMuyXVvZK081qSgmi0e465fp9ijoPMs59rT3pVO80Wk42v78&#13;&#10;PNpFCRlgSqO5tIIp7RmD/8k2MyeakT4MhX9l2JMYfcPHf5Zjg6BZBUGz08qyc/gD&#13;&#10;X427Gz8YbP75xyKsSa+Ug3YdIuG4g2J81b/UkL8MOuxrHu4FTxzi3S/OcFmymL+k&#13;&#10;GhtpqHOrWKCNl2p0fuZEDxX+NWP4V4I9nYw50B0EXao0pUpPM2nO42+5EG/f+tFg&#13;&#10;65MfeiH1dOZuO+/y5K5JMnHZ3xzIj4E+rXIuJm32ooMIpR917pzEv0ivWo8Yts/A&#13;&#10;GKNLoTL9AnjtawF/atjToCkZixifwyux6SmGoOE8dXkOH3zykxEmYqhmoA4S6uYs&#13;&#10;esMmI1P7XfY3+TZROWN8PApXxPQJfM7j3v3jVqvQqyz2yU4iNVpzrpgJVKlf01nS&#13;&#10;9tWAw9N3mFyBVfZTNywZzXVr2sCSB/wkk/asZfr8cOPjf4h273zXKzW4U3RQ25Nt&#13;&#10;8+nY/I1U8+NVPu3Gi352sg/ZiexFdiP7kR3JnmRXsi/ZmexNdif7Ewc+6Sc+XNhF&#13;&#10;FyiNQa+vr4cBtpniAVuwKjmhmHjFGHY+2vr8R1H33kX8wkyWsFnlV7PhRZEp2iUp&#13;&#10;e9z23+KtcOuQ2cM1N4NsOBbtRXYj+5EdyZ5kV7Iv2ZnsTXYn+xMH4vE0wJ9iwiF6&#13;&#10;jHevyjXG/JIvS6JXbfDArKB/PmVVei7q3fv+sL3+pms/7wHtu+YGGycqf8ugp4Ej&#13;&#10;KIu8uMk6Xw4YkCF7Mi+Iw9oJBb6f0OBKKa5qPQdqbcAU8qBXqkNV9riJ1WhLEUbl&#13;&#10;cqLqJhRN/JYntVZn037rjeHmX/9OBnU3meBh0DNFP1bhZJ98MGWscJqUgfYku5J9&#13;&#10;yc5kb7I72Z84EA/i4vgcRoKWxemsv5tGr2hQY2SSZeoCBWYuqHR4sXfnw7exeeV5&#13;&#10;RTJGXZ97QPMZ6McCn2Tq2WPI4zt1qVuIdm+f8GvH25KmMxuWjLROQJWS8qisXl1r&#13;&#10;6fWf/8o+ycAJPIn7dnH67HqomrpipVoIrTyOzcDT1ppX+vf++A/gl/3xkKQbqfJm&#13;&#10;oL8S8ELhnrMj2ZPsSvYlO5O9ye5kf+JAPIiLi99PkJjDl3eFvuviNE08iLd5nSYd&#13;&#10;aGtOMW7O9DfX/t5q3ShGrGjMmVPzCooYPQP9lRRO3an5HDkHHO1LdiZ7k93J/sSB&#13;&#10;eBAX4kOcvsydw5c2sy79wk3UpxkmFoaLHOwJTB5ORbv3vhv1HlzI+rirk3Y0iFnW&#13;&#10;fRhZOjXN3ATIIobXGNmb7E72dxyQB3EhPsTpy5pj8rHZ9/WrcOf4R35DiArw+jwT&#13;&#10;5phJ9Ulm01eGDz7+Oy+s8WwMulTMzsi6Pmegv3aW7kwH1tlV2JKb/uTplJPd/Urz&#13;&#10;vlFej3uiAwaGSrSi1vaGYhsXjZs39TTKLlRN2R7NAlWiXhPcLiJ+bGrBSn/j+n/C&#13;&#10;q84fTzZwii56xmau+zAUnrlzkU2gdB0v5TxUBj7ZnzgQD+JCfIhTlp0/Wt3waFVf&#13;&#10;BFqGw1inYrmY1zZd5taeSLutb6lR+1QxR9vF6em+bs5noA8B+HgVixsW9bP47ebE&#13;&#10;VxnZnzgQD+JCfIiT4/WYZA0ep2oK/obP1Vg6aoLlxw2zK/3WX97CD+QOdD5HLJv0&#13;&#10;B19pNufs9ljkuYBE3gYfA+fEgXgQF+JDnIjX49QNB6ma2tTuKjEbVa7svPFYk+FJ&#13;&#10;Rxsffx9DQq2Ytw155p3NLJm572fnziGb6TJO2CoUmmsZDxQh8iFOxIu4uT6RA9QN&#13;&#10;B6m61WSyWl8IrPBrAsSCMeKYselKtHvn21nmXc7c9/Tskpn7fvbu3AHPlyMhB+JB&#13;&#10;XIgPcSJexI34HaRuOKgDZVB5RcJOpww0fGmTJj5xbNS6+QaXvlfM/iyW38zc93N0&#13;&#10;55DPWHXuvMyIB3EhPsSJeBE34ndQRwvsV/VNF6tVQGuwhDYNawFhq+Woe/9CFqdL&#13;&#10;xXzoWfb9QrLz6T70CiMuxIc4ES/iRvxuHhC7Yb+qO8Fp6ZV5mKRqDrO8RW55c9i6&#13;&#10;eQk/KBD5asjxBATGZ6p+nupmOXA3Dh66+E1cHB/kRLyIG/EjjvvVPYFNsfpSE+qx&#13;&#10;9lkUVnxr60boJQ1mKe7cfW2yQmN6HfRM1S9E3fnig8KdEx/iRLyIG/EjjsSzqC41&#13;&#10;hu2kTqWmrrdkLxoFVPGAca+BZ12It299G18RFqs0HOhiVIbNkrLnq+1itks+6SFf&#13;&#10;W058HCfkRdyIH3EknsS1cOUwbm611mCO3fGFGrhUzwBrGK0Xk+7m2WJhXdF5Ml7/&#13;&#10;POP83AW+Z7lR3tlCfIgT8SJuxI84Ek/iWrhy1wNLC/FoAmHcgxrz/GWhzKsG4JKO&#13;&#10;hj9s3/q3n/mVJvfKC0xSdx1l4pCre+bCn/PN5rUCjOsrp0IAKu6zdLjDkkHLNl75&#13;&#10;8f8QYfn3YMx1LeFTliabQc30PjxxP0HGZky9czuWJZv4GkQ5tbzOjG6M2rdeEyLg&#13;&#10;k8mCMl8TzWagX2jsZuOm2HjSInIiXsSN+BFH4klciwslc+Po16Oqkn0ohyxOa8BR&#13;&#10;4VbU40HrFOQT+vn0zNCnm5Q6ux068ul1ZHlFCOREvIib44cciSdxzfrLXczO+sEX&#13;&#10;wiUpYigFQlY42LoatY8zldTGNUwKVY/VPFP1iwvchcph0u5GTsSLuBE/4kg8iavr&#13;&#10;L0fONJGQUSXBiIeeDUWgtKlqY+fifuu0m3VSdKCMJ7TPErMjlaiNe9Z8N7uFuBE/&#13;&#10;4kg8iSvxJc6uyRUfr0JoIx9Mgo1pUwVu6QpZnqzHkm7h3Xiq0ex2NDpZ3IJBsafA&#13;&#10;j+OG/BxH5ElciS9xlpSax+yi1OB7EdUAZbpqta2qdDBPk9UnsXrWpj6SyPd0tPgs&#13;&#10;HbXnuWFVLniVirmFiedVNvryFHIGtvpTNggjOVRxyI0qG2Wr8XB7GZM3n0+rms2y&#13;&#10;8COZlbs5a2I8SELciB9xJJ7ElfgSZ+jduwFpia4D62kLZQO8ovpbJ/aUopoNYR5t&#13;&#10;ZY+HQLOubOJHHIkncSW+xNkVaq9KKYUOAhA6FNyW0rjfyEpeiPEslFm8PsJxezyb&#13;&#10;JVssSPyIo+OJXIkvcXbJWdxLZZokgbGixAyUrIorRYW/yXj1rMl1VJtge8a78SB+&#13;&#10;xJF4ElfiS5wh2virTLWWwqYBaBswwQOjk3K2okPsG92a3Y5sM6yoxozciB9xJJ7E&#13;&#10;lfgSZ7ncqIAZeF4SMtS/CW0yqjFmJOdiMrfsoCKvs9vRAG2LhI2PS5YQP50MahyC&#13;&#10;kIXCC43nlZFztksObZ6iEbaQnhq0G1lhdjFbq/USZeYTV54V5yGOxJO4El/iDEbV&#13;&#10;uUlSkXDrgdG+SnpzbKrY3Cwxe3kStXHxXuRHHIkncSW+xBl0rUvF1qQwwtMGn1Aq&#13;&#10;zKoXFf3gfAb8ZcjIpyc2ID/iSDyJK/ElzkAbnFktwYIWAoAKc3mM71X27PYyUJ9S&#13;&#10;Nh3IkXgSV+JLnN1Odjb0uUXWxm2LpL1xMdhZpH75GmI5O+JIPIkr8SXObpzTKgGY&#13;&#10;obm9Vaw1cnrLhdnt5VJ3wY04ur1ykCvxpadBJYHbttBaiepOydnLSUX+mbZfOm0X&#13;&#10;LSfkSDyJK/ElzvumnGBzy5jZNJRvws1xFHv+tA+sprTdzCz1Dbg5jnrvn6QfGxBl&#13;&#10;w7myHFtfDISabIbCGGN2ZriX4man7iwNeyriSVyJr+PsPLzU2CwTtCGddXtTuh2B&#13;&#10;8t1uZreXiPeEG3EknsSV+Dpl00bhPEpQ1drtNAtcpNZtYjbT9Uuo62w3KtpKGDkS&#13;&#10;T+JKfIkz0I7wdBFwg39FbaP8U1eDJd+/qqBuZ9iPKGQ7pmxzbu5AjsSTuBJf4gyi&#13;&#10;N4ftb1AaME8HnmIQj6zV4+0Ji+0KZ7ej7r6zw60WQX7EkXgSV+JLnAFkx4Lvad/y&#13;&#10;FNEnMqx2MG3fo+yZql8CdU8rG/kRR+JJXImv4+yVRsbTAuM4S5lWqSw32m5zUbet&#13;&#10;sMlPNIveRzpa2wJ4sW2kYsSReBJX4kucYbM9MJFNUxFR9xlEwgv6nENq843DWeHO&#13;&#10;7Yz3kczKCiE60JkLJ37E0fFErsSXOEN4/NvKE0Jp7sUYy2NuWMSFP6Ltg9kY+Izy&#13;&#10;UY/ZGSfttn0mfsSReBJX4kucIdjom6DmKe37MXA+shxhS2+QuXI1ceXTu8/Obkep&#13;&#10;sTXlwjNmjh9yJJ7ElfgSZwgbbdNXCtUdx9b6Q8Ng6JVqO8ZtCK6dW2CzRO1IJ2Ys&#13;&#10;z8CJF3Fz/JAj8SSuxJc4Q+3E68ZDp237mLXZNOLaDGXl+D3aE9rtDV3sDG9nQftI&#13;&#10;4s6z8Om9vIkfcSSexJX4Emdg137LKlGolAwiC3oIkveDSmOTcZZkwBXNesi74dgs&#13;&#10;Mz9CGXiGwTg+zoUjL+JG/Igj8SSuxJc4w7XmRdM6XlW+n6TWyKGxto/XykB61bbR&#13;&#10;CcuA65myj7KyiY8LuwkjbsTPcUSexJX4Emdgl9YMBe+Ih4nhcsQM9I3lPVmqbxqV&#13;&#10;uBgwVvcsbh+9eJ2r2uVYyMtxQ36OI/IkrsSXOLtF2hS8QxulQsmR1NAXwLvB3PHb&#13;&#10;RkV4xeTAp/vKZ7yPQPvajpk4PsQJeRE34uc4Ik/iSnyzxfjsPfNhu6F2oi2VilEc&#13;&#10;C4XNLt2RQX1TiFLXqDhP1NRUf/ksbh+JJte4uUWqjhnxIm7EjzgST+JKfIlzNlMF&#13;&#10;JR72paqaIV4aXg/baB3GdcevLd7RaeTcgwv+RWbOZpNZXizu3MsWsVrR/m4RI17E&#13;&#10;zfFDjsSTuBJfel9RzIzVTwcq9mqx6Omhx70OA9EOF87dwCvG0lUzjt12lpUfiSw8&#13;&#10;V3UWq2M6LPEibsSPOBJP4pq9lzOwdIlcfs/Ubtw3FZS8DswowQBvuN3hMnggg+qW&#13;&#10;SUfZCfcPkMxuLygxy9rVxMNxQT7EiXgRN+JHHIkncSW+xBkK6pSad9mpRMvKELXe&#13;&#10;BSPbYGEnqC1/rh3sLFkrOllmidoLTsycC8+SMuJDnIgXcSN+xJF4EtfCe2eLBOjd&#13;&#10;6Nebl5qqFpZin7EBs+kuF2bbnz9zg3M2Mi52x1m7O0/U7Gwo7DlremqCQuG+kQvx&#13;&#10;cZyQF3EjfsSReBJXmwGbLkH9nmleb5lOIBIWRoMUwl2u2bYA1grmT32ik6E78XRH&#13;&#10;y0TdM+DPJ1bv7UAhHsSF+BAn4kXciB9xJJ7EtTjL1Lxxzq7iVVCPb6t0aCMJSZ8b&#13;&#10;s2M5tMqL59YwQMQOeKFu14U662R5rrGaTcFGDsSDuBAf4kS8iBvxI45XXRY+WdEz&#13;&#10;hl0kauexTdYPZAwU5AW0gZsWvmwzqC9/lql7lKl7nKzN1P1cVe0y8MRxcKpGLsSH&#13;&#10;ODleyI34EcciMTtA2RN1L/pJYlR9aCXfBWa2MChsVpZe/xMmBEnhzu1UU2zW7n72&#13;&#10;7erxeLVOx+6beBAX4kOciBdxI377Vf0Q7L3q3snUbeSOUzewjXD+zF913Mfsb5hn&#13;&#10;55PYPRsoeUbO29q9sdpl30NGHIgHcXGqJk5O1TsHqvoAZR+sbs3DTcblRql54Y8c&#13;&#10;RCcDXrjzdDJ1aebOn5H7zovJ68TZnexPHIgHcSE+X6ZquonLly/v+QPtrn7l7VV2&#13;&#10;//xNVi51oSIVS5QvAYwH2pREUIFR+85ZEJJDXndrumLxrBLis+hAyeN0MmAq7rF0&#13;&#10;1LG1lUvvS1n62Eq4qa24G/hRqwvx4C/duZj98hfa2ssPxdZHLM/lrr+crhKd+KOS&#13;&#10;1btgk5YFds+rLt7wK43bOuqxLDuPxjNa2GxGyyG778kMFOe+0d5kd7I/cSAexIX4&#13;&#10;ECfixR6h6gOVvV/dtaUtVuknPEG/AQLlzCCQ5UYa7dx6Fb+OHO+ZPd6mcVZO63Cz&#13;&#10;7zTPvFHVUZfZNIprp3/wGxDep2jqdWP1/UAPd3qLo8H1rWbyKFU/RtkTdZ9afCOR&#13;&#10;ujkw1ttlyj4AYHeZCG5Vli9+oOOeHcdvlTfHaDprMYVppvCvBDob1cqbWWoSp8ne&#13;&#10;ZHeyv+OAPIgL8SFOj1P1I5U9re711V/ZequF8fm8BTOgfdsFZ0IKr4IXXlRPh+3F&#13;&#10;rCKumFS2zzeNmSn8q4Gm5Ts0/9t1nKSZ61ajXer//qTUOPsB2vczfM0X3JgNzpfa&#13;&#10;sfko+t2xW0mWgV9+ZDv4sSU1LH0ynuA6u5hES94o4HHH8LQFxt5jYG+Xj33n30H4&#13;&#10;2yru4lU3yNvfST6NabZ06OlB28xurj2dd4fGlJR1qXD8Ntmb7E72Jw7Eg7gQnwz0&#13;&#10;4zs8nqB+Su7OPyo5d86V3Ym42sD08DY+9UX11Pf+N36pxAFP+m4Qvehhm60Ve0rQ&#13;&#10;U5m3dh0nfQea7Et2JnuT3cn+xMG5b+TyZe77iWFnHS2XzbXVVZU02hH4pV4tgC0j&#13;&#10;2D3M2G5xWf60evK7/wddjVYuQ+/nAyYpy5YQmVkMfxLXbXPXPe4hQ9BkT7Qr2Zfs&#13;&#10;TPYmu5P9iQPxIC7EZ38HylPF7IfjN3PZ+ZKSJqlaK3oYmz2OeYQF6ZcV7TwTde6e&#13;&#10;5NmmFeNqe5zxWQz/UtA2B531edMufJR5p1HHVJa//UFQO/4HZvhNALjFIthMamKH&#13;&#10;9cPBn6JSyn55ST8uTj+lG59y51ffURcZS0aJGo28flupeJN59gtMHNdL86f/o7R0&#13;&#10;4Q+YSFgVddwXHg+a0Pw1Nw15pvCDQaf7QHcoIbNkT7Ir2ZfsTPYmu5P9iQPxeBrh&#13;&#10;PJGyx+q+wvnau5fYm/NvmnZ/YKoBCjvV1hOB4SZFT9OIrFJh0n+wXGxnMN5/alzx&#13;&#10;/m9d4fuy7nGMHmXJWAaahfXTfy43z/+7MOqmkN7nxsb3gzLfGoqge/bs2ehfj/1e&#13;&#10;s2tv2ydx308Ne+LO38bm2Dl7YVhmQWfeKK9jUiUsMGm5YFZWFvsI3I97D47x7OYc&#13;&#10;CN9TIjOvi/o3VUXRFjlQPnCULa+108kYue4hKnr+9Efl5df+DTjDJpa4lRp1V8pR&#13;&#10;qzxY7AbVQfx+7c/pk8bprwx7T+/az/7FLCtpxZawrBIoZbQGAxnwcHEghMQYfn+F&#13;&#10;M5vXvM1VXRTAzaH/baj84OoIxWRBnfScotNR11Sbr31YWjj3AQgErfi6Yvq29OQD&#13;&#10;b9f2dDMaZTvmPr49fWiwM+BsDPwEqxnhKWsiKs3DlWC+1iy1slwfSr+URrt3TuCP&#13;&#10;g+mK9wX8yTXwTa2VaqdYF25bjyf1F0OV5LbxXtVWLr7vz5/4D3ztTcGCz5VN74BN&#13;&#10;t/yq6rIaG05Af7UJBF8J9kPAezUj2/gFSOE6Nb70U2sRfFCORDg3jHfvnMIfKMab&#13;&#10;WhQbzNC9ZWNlf3OgT0PeWwJjPCM0GWSgo11Sd1I98b3f+tXmnzgTn3pCrqc6uUeK&#13;&#10;9nuHA/prwd4L/C1U+IdGbCl06ZFCqaeW08RmQOCVKJxb3ok7G8fwB5b2F2eZ8vBT&#13;&#10;f3tZoe+HPFkoP5kNmvdzY3wmRWPyulN/5Yf/U5Tmr2PE+4xJc4sJe1dAf4tcN1sh&#13;&#10;0P+MoFe/FuivDXsCnI1deqm/pE1ppHUCiRBUZU8heD8J509v6nRQSvutBTQAn9Rp&#13;&#10;2XvPp7aVenmg74PM7J5Rq2KGiaEhyriXgY461q8d+6R28ge/4cL7RIDBdrS8hR7g&#13;&#10;nhfoHUrGJjH664M+FNj7Xfqraxf1Rr2L4cq+CzcAAAglSURBVLuSygRSBXEKVsSc&#13;&#10;W+WXj+2IMIyi3bvHrUpk0c58qCiu3b/D1FGF/ijIk/5tq4rJgVnXp4vP6Siurnzn&#13;&#10;/dL8+Q842Jvcwk3N9W1QpfuJH2xjA6y3dO/k6P03KOt+71BAHxrsaeDrP/+VffOP&#13;&#10;HdM5c06z3b4qa5aMhE48BG4BYu5Xe2H95IN0tFtLBztzaBHu6rbs6XDZB33ave/h&#13;&#10;zV8o4OzOjisMjiGTmvMJ/OjN3OySrFnVwZbK3J250z/8DYTz12n0Cgxfj7m6U4nF&#13;&#10;ZqxZWzfn+2durMXXVm+pwwR9qLAnwLEd/vNV+0+f1/UWSG1LRoFKEtpWDFvbsaTS&#13;&#10;W543CuaWN2Uw10t7Dxbxqg+ymS56PEOjqO1VGJKP6T8K/LOCbw/gbKe+H8VkNW4z&#13;&#10;26nJ+zqHTEkYvrxbPX7pfeooAel9ipa5ybj9wgAmYtq0bOh3mAkH3+sn8b/+qKWz&#13;&#10;dvTlQ522e6iwpzte1q7/2rSurtlTtZ4qjxrYJOsl2gCqm0dMiBE2QyIZVrtB/fRd&#13;&#10;axOedFsLRseiqPIwXaVpTw1Vx/vhqU/8WewquAcumyrxnGXXLC9F5WbZqmQydSjO&#13;&#10;XTa2nTFOp+HCyevVE9+/5pUqH+MbbnIQ69aaOzQeXbLJdsksYsbdG1Jf99qv31Hs&#13;&#10;7afrGXthsMfAKdNa+7Up4viDcxtKjGSiuUhAsiFgmmIsGwEXQz9c2AoWTt41SSzS&#13;&#10;4dYcGk04pbhh0qmVo3a64uLkIuAHJHoPXQRPxNbu6wjJ4TI7ufimitW4/my3MgOv&#13;&#10;Xeeu+0Xyhf8eJn5l+ZPa6Td/G5SP/T8OcNMwvY6J2BdM8LvKsC3OTbvfTPoLn5+L&#13;&#10;XHz+5S80u8LZswDtbGGfcfVCRA7s8hV45/pFWGPMn8PjgWhV5kS9NuLJvODhorDR&#13;&#10;sjHiGL78GLrE5dHWJ2/EnfsXGIMQ/BIDGeZH4LYMps1Fsx1l883m3KZzRVfs9Agb&#13;&#10;f3gw53FuOlfvZAzeTObE55Wa7Rj29NroKM+2R/SeKKivfFZaeu0jzuUm/uEBgH5A&#13;&#10;0321jbZL1t/t6k7vmG4OuowlNKDhpv4ecnx+bso+KI6vocpb7/53TSrv6Q0lK0Ei&#13;&#10;eC9mQ2+EV/pAguhbWj3KWN8vNzdKC+fWUfmpjjuhGnVCjIXc5iNopqjRptV4rpZT&#13;&#10;3tj9F2CmvIGdxNiHjymQ7jxqSr05UJ0lXMb1eg2ziRrUjHLuumvxwmsHc6fX6ie/&#13;&#10;/7/88tKf8UL7HC/EdQlwC7/GHRaZTen3ty0POqo9Gix0zkW/+9HvkzVSsxvQuPzM&#13;&#10;l9U8c2UfpHKGKn+r0Zbbie9XYxVg/K6yIKxwZee1Ng184aIQdgkVu4CGWrRxf3nY&#13;&#10;vvV6Otw+icCrIAKncl4ovZi/7o5ppefj6ntGXfgBQbkYpDCT6dB53daiRGRR5cBm&#13;&#10;VQ4cfC78vldevFtuvHKDB9VN/OhtfN+O1nwLT7ItBLRp8j6LowED6NMaLJru62qc&#13;&#10;PCc1T9/kc2204A/jnDyJNR9evmLQtaubjXaC0ONqPN/nstPDxtlu4qtt0P4m46aB&#13;&#10;rBrcKy/Uli9+ZgWvp/2tk3H3wRmMi8fMoFVHiwsQPt55mVsv3PvYxcNkX1F+AOy8&#13;&#10;uWendk/IXLUeL14s4jM+0OBVOrK8+CCYO/aFV126y7Xt4MWxi6fdweujzazXVjzp&#13;&#10;+Knscp/3bFof9ks7DvJ32hV19ewtw/7bPxt2lWLze891kdxzVfZelRMB/GxU+uo1&#13;&#10;Jnuvr0ChdK/MQxaFlVgnNSb8qocWSy2vc7B1rlkdhKhpa2rATS3ubp5MetsrOu03&#13;&#10;jErLCCXEU8MY9hg6nxp84XlsniRi44I0Y3duDF5EETaThsKrtv3a4n1sLt41FnqC&#13;&#10;Q89o3bOCdazhHY/bTkp1aKgNKfyeW98+tFGhZCp1cW2VqWyt9LNLwI4s7IOgUxKH&#13;&#10;Sped4LSsx9rvRaNAqEFZxFDSNVFmcVoLhKwoZWuW2xoiraLVKgIPY02ZAV4kxpbS&#13;&#10;YbuB8XTexEO8KNIA6UlUqce0ERiTJZUXwY81bqcjARq9QYoeQAnuxRCUeyKo7XpU&#13;&#10;nB04ptk2witniJF8gF90YIztcyoKKDHh0GpAVYmoWA3VMKHSFlTxgBbC0/poWmBX&#13;&#10;JF8vEvKRgf0o6K1LTWhdb8kOu+PPy5qH7VG/D+WQwBtPlwRnIb6pwg2UDT7mwEuY&#13;&#10;yZcwA8a/28AY7gNYD9XqW8ulBURni+Uqlny6S7vxojHcUHjBNh6IBN+X4vswE+Qx&#13;&#10;ni/C842ssSOwLLJghviOgcbHkIoRAabyUyPuJ7uql9bZqYRKW1DFg6ME+cjBPgg6&#13;&#10;Y++xd65fzdR+O5ZRVcmFcElGPPRCG/ke6imugG+1CKSJA6WlJ3wIVJoGEoM4bRQu&#13;&#10;rZKGS0kbhNO+lEypybw7Kd3mdbQbDlilFJeK9tRQGKSl52EUMbEUKlUQxFzoOBiY&#13;&#10;JEU/QyUiqXIgFZSjOmNUfipT8TsI9Qo7apCPLOwnAR+1GxAfr0Jzoy8HYSTTEhfh&#13;&#10;VuynnpaK1UVJKpkKLWlHeNoo3O0PTttGK+E2mS3O73YqlDrf10y5XZBo8xTaU2Ok&#13;&#10;8CSso71UqGgpSKiMM1X3paKvVAuUSkS+DIBfWDb+9Nl7Zrgsg3+PXWVoWMzi2Yn7&#13;&#10;jJpvp1prkGBip9v3oTdaADVXg5UBQFLB/41K6LKbXFe6bqPwetTKIS9MPkDt4MEY&#13;&#10;bXBG+1657ZAwuYbKwDTaDXO/4hvZ7Zmgfcd4jRUT3L5pPmUXTVEx8EOXVbvehDyz&#13;&#10;PtqzZv8/fdFJcNYPglIAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="30" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="77" font-size="11" y="87" clip-path="url(#clipPath30)" stroke="none" xml:space="preserve">TopoDS_Shape</text>
+<image x="358" y="459" clip-path="url(#clipPath31)" width="30" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHsAAAB7CAYAAABUx/9/AAAgAElEQVR42u29C5Bc&#13;&#10;13mY+d9zn/3unpmeNwbAACBeBCmRMimJlAhK1sOyFTmbULErVWt51xU7rtRubbac&#13;&#10;zabKS2Cd3XJtbalS67WddTaRXZtKHMOVRApNSbYoQeJLfFMEMHgPBhhgXj0z/e77&#13;&#10;Ovfc/f9z+/Y0hoOZHvAFiWjooqFhT3ef/zv/85z7HyUMQ7jTH4qiMID29zx2nNHT&#13;&#10;E2cOsVJpitXvGWFOucDcxgLjQxk20kwxr5Bgvl1mfkJR844pX8/TAeNuk61/b81M&#13;&#10;Ca2hCvp3xXKFboeBnigIo2yL+VRTaIt1YaaHhVUoi8yFeVEsHhInDk+J6Ls8Kdrf&#13;&#10;EFCO4o6X450K+22AEe7RLrjNVFPrX/E0P59gKcXSHb2mJdS0xkNQNQGGb9sa0xWV&#13;&#10;M6GFlqGYXGXCDZnQvQ5w5huCmYpwtUAojhdqgnHhE+wE5ww8TYHADhrc8rO8GTq+&#13;&#10;XrHFSr/BU80Uj+GfRPhA8H8KwGt3LORjxxDwiQjw3AirNhY0t3hI821HyyZAV9Oq&#13;&#10;AWCYphdYPOXphpI0w4CbuqKYAoRhphM6A6ZrEOoKF6pQQTXTwMIgoXQ+ywxCji9O&#13;&#10;cjUI9VSgguILU/hB4Pt6yDwhQtdQky5nnms2A1/0G042rbopAV7TTvj4ffjexgLP&#13;&#10;zY3wzNHjbfDHhKLcmdC1OxHyEwh5em5EiwG7dVMv7G4ZwYpIJBTN8tQgkfHMZKh6&#13;&#10;ySCpJXQVEoyFSYSbEIpu6qqwFEWYqhLqoDJNEaqmqIqKH8AEWTMhmMKYYKARDREG&#13;&#10;+IeFHALBgzD0Nc1wRcAcPfRdoYEthNryk6qth9y2PKPlqEErEWh2wIRT2F207XLS&#13;&#10;M4oFPwY/+cQJfuIOhP6Bm/E1yMfZ0ZOgkZle8QwjG6iG6ddNxpIWSirlp6ykqShp&#13;&#10;RQnSaqhlVFWgnmppTYg0U9GSKyKJzwnUTqvVWO1zG6t5t9XI8NA3Qx7oAQ/wpVwL&#13;&#10;Ao7PAWMMlV3VOGMaVzWVK5rqa4rumsl03Uz3VZLpvtUAQkcEwg5D1sLnJr64AYI3&#13;&#10;goA1AoXXw1BtuGHY0JtOCwfRFKLluHrGramB1294njTzR4FHJv6Dh/6BwV4PuYQa&#13;&#10;nIXrRl3bozOtmkx7RspNhiktDLOgKTldgayqsxwqS07TWRZVNcNAZGvLs2P1ytKI&#13;&#10;3aznXc9O+p5ngsLw7TV8UvGDGH0WyI+TqqZ0fQv8fBw/MZByoGeBiFHJ8R+hbhiu&#13;&#10;aSRaiVSmkskPzmcHdtwQwGo8DOrcFzX8jSoa96ofQg14WOWKUjNbSrNheE3Bc60M&#13;&#10;v+zXYNwrlqb4nQD9fYfdDZki6il0vAS5UiiaBdCTfsPOQELJqoGR0ywlD6pe0MKg&#13;&#10;T2V6XtOCgl1dHK+vzO9o1ivFZqOeBbTOiqYDYzr+U5eAFaa1IbOu5wi00sU6Gvoa&#13;&#10;cAk7fhY8Ah/4IIQPIffx54FIpTO1VCZfyvSPzCZyQ9c5V8uB8CtcUVch8MvcCSuB&#13;&#10;6lXBDmt6OlEvg9/Kl0suQT8E4J3oBHPvP/T3FTYKmsWQpwtlLYPmejnXZ2ZtO+2H&#13;&#10;CJmbOdUI+1Wm9qGR7Td0MYCQ+wK3PLqyML2vUlocdX0vwTQLLbiBcA1g6s2QFQW1&#13;&#10;mUWAsykL+vNJSFk6pBI6JBMGJE0dTFMD1+XQcn1o2R40bR+ajg8rlRbUmk4EXBD4&#13;&#10;4GboeIWBh5acLgdM3bDzxaG5/uHJi6pZmEPoq57PlgMWrAQiWA08ZQU0t6oriXot&#13;&#10;kWgMVFfdOpr3yXKBx9BR/OJnCvaaNgM7Cie16yunjGQlb+F/SplBkEPpS8hGqBTR&#13;&#10;Ag+ahlbEOGmoPHfxYGVlfqLVbOWYToDpMhGw0QaMcFUN0kkL7t0zCHvH+2FiJAu7&#13;&#10;RguwcyQHhYzVNuFr1/pHKLV67SrXHbg6X4WZuTJcm6/BpesrcPryEjRaOAkCHsGX&#13;&#10;4Am4K6EL34FkKlnN949cK4zuO6so+qLr8RJ6giVPCUsSuutWXVWt4kc2W/mKM95/&#13;&#10;xDsJR9G0w/um5e857G5tJpNtOWWL7eAJq5rLeKrbpxpWv66ZgwD+sKHrgxgUjy5d&#13;&#10;O31kZXF2VwCarhLkDugIsmVacGTfMHzs4Ag8eGgU7p0sgo5JFmORf46f2xPtpueN&#13;&#10;HrEMup+FEJ1n3+dweroEr03Nwatn5+HUxQVwXCeC3tZyAh7gpQL3+4d2zAxO3HtK&#13;&#10;KNqc5/tLAPqCz92lwHNWjMBcdXLVupjVbMcqON2m/b3W8vcM9k0BGDymzczMWGk0&#13;&#10;2anSalak9LzhoxZrypCiw3BStYaEsHcsXjv9kXJpbiJUdI0ZSXTXiQ5kFTWawP7C&#13;&#10;J/fCZ39uF5pkE1RVlWBjuOs1eDPAvYDvvgg6XUEQoOl34ZlXZuDbL1ySEyCQGh5B&#13;&#10;D3wbhNdCwfq8UBy9NjRx75uMJWZbgbMY+rAQ8nDR08MSa/qVZrGv1kDTvmvXLuck&#13;&#10;/PA9D+DUY8eOvTegSWhTJ7QHOUZP1zA/zqvppM37AlUdMpRwB+LcZVjapKWre5Zn&#13;&#10;Tz965fyrjzi2269aOaYlsqBbWVCNNOyeGIK//6WPwu/+xqfhV75wBA7tGYJEwkJN&#13;&#10;1uWlaZFGbwY+vjabFLd6bfye9P7xZZoGHNhVhC89sg9+6VP7oJBLw3LNh5qNAiXr&#13;&#10;gxeaI9aqVwqlGxfuYeDl8/3DAaaGFqLE4Yc6Z7qS9APFSmC+MWPDENfC+clpgDN/&#13;&#10;IY7jByOX8I7XbAlaFkYis61aTjKdMDJ+yPvIJ4OujuqKMmYY2qhTmTs4e/mtBzxP&#13;&#10;pFQzhXAjbVZQiw9NDsOvffl+ePzB3dJEbwRzvfbejib3qukbaX23tpOp/8FrV+DP&#13;&#10;/stPYGp6AaN3V2p5gFoeuE0wDNbcsee+16386FnP43N+GN4AP5gjn64r2mrD9uqB&#13;&#10;Y7XWzPox8W5r+Luq2ZF/VmTePDWYTGjpMGWFQUHxUZtZsENX1d0IeVJT/ANz51/6&#13;&#10;zNy1S/eCmjT0ZB400mQzDQ8c2gX/7Nc/Df/drz4M9+wsopAMqb10xcBvpanvkTva&#13;&#10;0BLEEy++NE2FybE++Mpj+zFYHIbFigdLVU9mC+SGOA+MlfkrO/3mykh+YNhXVV1T&#13;&#10;hNCZCFTu4Xurfuilw/Cq6iofebMqZr52NDz++FFkDuEdBzsOxB6cGzHmM/1mMdnK&#13;&#10;WC29HyENaxab0Ax1j2WZk075xoOXTz131PFEXksQ5BxeaZgYG4Ljv/k4/KO/9xDs&#13;&#10;xqg6hryVX/4AikEbuoBuU79jOAe/9Og+OLh7EM5erULDEZg5RCmi3WpkVm9c2JNJ&#13;&#10;pdVkrk8IBgbGLgoLFcXwBEb1TTGXKoo9rSTMf/kp8W4Cf1dgR6ABQV8wjHLB0hNO&#13;&#10;lge5fktTxnTd2olzeI+JsBevvPnY7My5+5iR0SLQWUikM/Df/PLPwe/91lHYv2uw&#13;&#10;44u7teaDBrwV+PWTIJ6gO0fy8LfQp6sYtkxdrSAxTaaL6AHUlaWZceB2IT8wip5e&#13;&#10;0Zii40BDxeZJkWRuaFbzQvrxLz+IwOFdAf6OYUvQT1Ag9rwO85B00koWU6giJtHj&#13;&#10;OOjduqHsUUP74JWfPPu5SqU6qicLSqTNGfjkA5Pw9X/8Bfjcw3tl0LVek9f75zt4&#13;&#10;vX3DAI8uA+ONBw+MwM8/tBtmS02YW3Gi+gDTlHplpa9RujbRNzjsKJquiBAtPrlp&#13;&#10;pgkbfKEu83AUXhMUuB3/6uHwnQJ/R7A7oAtlDWA0aWbquRCSRWQ2joPcbaE2u/XF&#13;&#10;By6/9fzjfqilpG82s2AlM/Df/+on4Z/82iNQ7MveFFW/m4DjXDm6FJkgbHytve6d&#13;&#10;fu5G5p2ufCYBn394EtI4qV+/uIzUVDTrKniea63euDiZyeZEIoVxLP6SkPVbTZg5&#13;&#10;VwQwKkYTpeDdAH7bsDs+mlIrgKQJLOd4WjGlsR2aqey2GNvbrFz/2JXzr31c0TOa&#13;&#10;nshJ0GMjg/D1//EL8IVP7sMUxtww8LodgUdgI6ABwqMKRSCi0ncQUNQMwFF0AUXP&#13;&#10;XVdUGRWybh4QePwj5AxQOhNhu9/nVsEcjfPevYPwsUOj8Oq5EjSlL2f4eaCuLl4Z&#13;&#10;T6WSSiKZ80IGoONXs30tsFSK9V0E7gTv1IffFuzuYIxAuwC5EEEnVW2HarLJpK7v&#13;&#10;qSxd+sS1S6cfUM0ck6DRbH/qgb3wf/3OF2HvjuJN2ny7kGPABJfACqTlcRSNj5fD&#13;&#10;5XMLn21fgONyWf9u2h7+jH7ugeMF4OFrHC7AxX9zfBOfngWlVZI8RPMlhr898LeC&#13;&#10;Ptyfhi9+YhKuzNXh+nIrqueHCisvXh0zTdXIZgdbAXl4wYTNOfdUP0DTKUbrGfFO&#13;&#10;gG8bdjdoCsbQA2UNNN2k0QSaArHla6c/fWPm4r0YhCkUiKkYbf+9z98Px3/rcchm&#13;&#10;khL0em2+HcCklT7Oe4+HYEuQLlSbrqxvr9ZdWKk6sFxzoLTahAW8llZbsFBuyeel&#13;&#10;qg0rFfzv+FzB11dbPtTwdxu2jxPBlxOFB2QJCHUbNP4RtwF+I9OeMHXpx2tNH6au&#13;&#10;VSLg+Hdl6fowAz+V6RuuC6q+hEoQcpP7HuOJRiaIgrbbA65t0zzJggmVP93yG5aT&#13;&#10;VTMmswZUJjDqNnYZCpsszZ56dH72ykE9UQCqhFEV7Lf+7kPw3/7yA5106nYh02oW&#13;&#10;l2aXI2CqWaNWej6CDqCOgBpND+p4NfDfNq1qITjSXJoMfkDa64PjuNBqNjDFSQOm&#13;&#10;gmAaGP2rGEhpCgZTKiQTOoLQIG3pkEkZkMYrg/9OWCpY9Fp8jaG1c2smv5j8d6/A&#13;&#10;11uy38G4pS+XgH/5ly/L5VeaUCQ/ml/F0SOhZ2Ey7nuCaUw4Rk1Y5SYcHX1MnDx2&#13;&#10;nCvKsW2VVrVtgUYn9sRXT7BXUjNWsWimhJvq00MxqqvaTg1BV0oXH5q/Nn0oAp0D&#13;&#10;PZGGf/prn4b/6rOHJOjb0ebIn0aQuUeQuQRZb/hQR5MstRKhVqptTS6X4eLFy1Cp&#13;&#10;VKDZaqI5dxGwg9B9NNFeWxUUaZzpbx2/F2YPCN4CE+GnkinI5/Owb98eGCgUoD9n&#13;&#10;QT5nQg4nQT5jQSaB8NPRhDBksYe1hbh96DTx6f//xt9+EPqyCfj9P/tRZ3OFlKNu&#13;&#10;udniPmGqWuAHPPAgxXnRFfMzM+KJ5qHWCQRNXHoFvg3NRjF99YRGJdAdhpbwGulC&#13;&#10;2hAjqm6Om1q4u1WZ/ejs9NRHZP4sa9tp+L1/+Fn4wif2dTR6O765GzJpsoOgSWvJ&#13;&#10;TK9WPTS/TSiVbVhFM319fhnOnz8HczeuQ71eb69zdy2DsgzQhiUzqUYbGTrlT9qo&#13;&#10;EGCSg9qP1iFs2RCWaiCmr8Irr7wCmUwGRsfGYf/+AzA+MoBALCgWEjCQS6E2GpBL&#13;&#10;mVL7LSOyVr1CX6/l9CCFSCV1+N0/eqYdJYRA8txtWG4yP8bD0PTSvuvzRjrYYTE+&#13;&#10;1QSOPOi1/F312Z2iCebSqA8pESYLmiaGqWCC49zj1EsfvXLulU9QMKbJqDsD/+Rr&#13;&#10;n4a/9diB2wQN0jf6FGy5AVQaLiyh+ZpdbMDlGxU4d60ML795AX7w7I/h2eefhzNn&#13;&#10;zkClZkPAEqCn+kFP9knLQvm8it+FKnRUitWo9i6vRHTRqlrnZyn83vS6lPz+9Hr0&#13;&#10;ALCysgLnzp6G01NTMDO7gJMNXUegSr/u+e2IHn24Km1wSDuipE/fapjdcoih7x7N&#13;&#10;Qx41/IVT89HOGny71aWZkUy2zzGtVAt1Ez9ReA5PeKFq8/FMnW+n6LIl7MhPR/Vu&#13;&#10;YCJhZlhO8fkQlUCpMsYC59ClU88+ruhpnaJuFaPu3/w7D8N//Yv3bxu0XFSglAkh&#13;&#10;2xgVN1CLlyotuFFqweXrVTg3W4GXXj8PTz31V3D6zBTUWxzT0TQYEnChU19X9ZuX&#13;&#10;R6MND3qXprcvqlurWscKMNWMXkuXbsn3oElAVxCq0jWcP3cGps6ew2TIBK6YcjJi&#13;&#10;HIfQA2AdzQiJt0ziNxvzRsAP7OyXW6lev1CKnI0QrLJ4ZbQ4PFEGTXXxfT3wAs9K&#13;&#10;aJ5aTvK9U6Vg5mt/Fh5//HHYaqVsS9jHjx9TniiW1KnBklymFEFQNFU2rlPkrbO9&#13;&#10;M6ef/XlfqGndysv06onP3ScXMeIcejugyXBztNtNTJdW0f/OLjVgZr4K52dW4JXT&#13;&#10;0/Dtb39XarFgSTDSRQlYTjACgoCZHu9iiYFiIKVEplu55dIn/hzY2nYmFhU7WGcy&#13;&#10;RPBjS0BWgIK+SxfOwqVLV8BHa8IFkymfj6kfI9gY8Kmo4ZGWbx/4/fsGoVxz4ezV&#13;&#10;crtOwNVW5cbgwNjuJYKNBsT1IPBEBry51LL43I0xPjX1F2Ir7d4UdpxmKaWiaYaZ&#13;&#10;RJLxPg3CUYxJdlsa27M0c+rT5XJlLF61+sT9k/DPf/szHdC9BmNRwSOU+8LqqM2L&#13;&#10;6Iun5ytwATX5jbOz8PR3n4HXX38d/BCj4VQEWZpaFLzS0VoEpGjroLY3GnZ2ld7i&#13;&#10;ar8m+h1YmwSdCRBtf6KJFGs9Q/C2Y8N5NPEzs2h29TRw1H5O0Tn+rorvQ+Dl94HN&#13;&#10;zfr6ZVq6Hj48CqcuL8ON5ab8udNqJBS/lczlBldRMQi4wzhzQyfrlkQgSl/9y2Cr&#13;&#10;dOyWsDvmG9MszWxZerNWoI0HqqnuomVKpzr3wOzMuft1yqXRNw4P9sMf/E+/ALlM&#13;&#10;qrOQ0Sto0mobAzCKrOdwcJdvVGHqSgn+y9PPwHM/ehZaXoimugtyW4slgC7Ab4d6&#13;&#10;W7XBmybBevByyZJFy5bxdql6rQpn3noDFkplSOUGpA+PFkSUKFpnb9/ZulUuTtdD&#13;&#10;h0fgr1+akYUhimJq5YVCOpNx9VS+xhVwfV/YZtDwrFHD22sdCmaObm7ObwmbzDeg&#13;&#10;+dbUadP07UyoJgdMVR3TVWWPzoJ7pk89/xmmpzUKhMxEBv7P/+ELcv05Lpj0BJrM&#13;&#10;NoYcVNWq1j002zXU5iqcujAP//E/fRNuLJRQYQYQcn+UsxNkLYKsKOoGgN+TZY6b&#13;&#10;wZNnlpUwrbNWTcDJ5JeWFuDSxUuQLgyjz1aBbkEx5XdFQdOEVJVNv+V64BTl70cf&#13;&#10;/t0fX4lKuEIotdLscHFschFC5qDlaHFdcUS46i05C3z1yu4ANjHnG8KOtZrq3moj&#13;&#10;kwQnUUioxgh+812WwfbMX3j1aMv1+7R2GfQ3/+7D8Euf2v+2XHpL0OifGwh6BXPk&#13;&#10;q2i2z86swqtnrsBT3/oWtHxF+mUNc3bpk6VAN4L8vq5v3aTtMXSlA92AVqsF56ZO&#13;&#10;gZHpw/9mSHMu6/8aarnKpB9XoHeTPtSXlM+vnVuU/p+Kp7xZzuSHdiz6wGzNZ7bb&#13;&#10;1B3NNb0oOqfq2sbard0qp6b7rV5JNY0sQMpKqvlQCYcwnx716iv3rKwujuvJAQnh&#13;&#10;Y4d3wq9/+aNvK4Fu7aOF9M+lig3XFutwEYOR5155C1584XlQzBwYBJnuxKM9XfF+&#13;&#10;cAU+AMC3gg5rWh77ZhkU6uDbZfj2U09BZfURhHMfeBiPcIymaFUtg7m5JifJ5sDj&#13;&#10;XJ3kSvJ95cwcvPLWZbl3neTfX1++x0j3l101rCKfWtMR9opneE+cOcRPwMZFlrdp&#13;&#10;dqzVSqlkmsXJRNIJ+pgajmlMQ60GjL6ff1wwy6SAzExm4Otovgf7sz0HZBI057IG&#13;&#10;TaAj/7wM3/nes/Dqa6+BhibbILNNoPU1bb5zQN8aOkXyjC7UdKrPzVw+j3FIC9L5&#13;&#10;fmnGTUMFXYvKrFEc0PN6BKZkffDNH11C+dGNC4HSKt/oL47tmQu40goFt1WhtpR8&#13;&#10;zinVT2Gw9sNgI+1mG2k15dRZyBpZeyEtdDWv6GrRsGB45fq5+23Xz8Spzq9+8T7Y&#13;&#10;OzGwPdD4V0umVq7U6HNXV+E/ffNpWbQwMkPSP0cabbU1mn1AJnu7pj3SbPre9P1p&#13;&#10;HDQeGheNj8ZJ46Vx0/i5iJZdt1oxi8uqJGeSt6whoPyJA/EgLsSHOBEv4iZrIhu4&#13;&#10;bfZ2rT7O6CY7uvfKD40M/lafoemDqsJHF65dOkALG5TyDBfz8Btf+cjb1qM3y6Np&#13;&#10;gI6MutFHL2BqhQL4m2eehauzN9A/I+iO6Tbxm7V9M9zZu1S6ocvvS5pNeTkBx/HQ&#13;&#10;uGh8NE4aL42bxk9y4O3dqVuZc5IvyZnkTXKPKn5pkDyQC/EhTsSLuBE/mTJ314bf&#13;&#10;rtmhbF9BXQ1UaCXp3itFF0VdEcOlmbP3C0XX6YOYlpCFk0w62Ym8eymYeDjAKqZX&#13;&#10;N1bqcGmuAs+9fArOTJ1FgQyiYKJByJxZ+WkDfTNw+v40DhoPjYvGR+Ok8dK4afwk&#13;&#10;B5KH6KwDbK7lJGeSN8md5E/vTTyIC/EhTvJeOeRG/Ijjeu1m67WabrhLu31mysmk&#13;&#10;NKYWTIUVNSaGlhev7ZYw9ATcs2sIPvfwnm366SjFWlxtoZ+uw5tnr8GLLz4HeqpP&#13;&#10;1rCpRq20Qd+Z/nmbfpwmLEXpOC4aH42TxkvjpvGTHEgeJJftmHOSO8mftat5xIX4&#13;&#10;RJzUAnEjfsRxvXaz9VpdNXdoepLTTXdZlYk+1WDF0vXzh4NQNeJ6869/+f6b8ule&#13;&#10;iibkp0qUYi2gn55ehO999zvAzHxkurs0+qcb9NuBr2l4QY6Xxk3jJzmU2v5bbOG/&#13;&#10;u7U7is7vj2ID5EFciA9xIl7EjfgRx/XavQabfPXhIsu5gQGOnVJ1LafqbEBjysDS&#13;&#10;3JU9UdXKgsnxfvjsQ5M3FU421Wr8Q9t+aEfG3HIDLs2W4a/+6ilA/9IF2vgZAr0R&#13;&#10;cKMDnMZN4yc5kDxILiQfAWJL7Y6Bk/yJQ7RYkwTiQ5yIF3EjfsSReMbdpTqwpapT&#13;&#10;q6kzJc1wbJMZakZVvIKhs77qwvQBzJSsqDRowq99+SM33THZi/m20VzRtqCr8zV4&#13;&#10;5ofPQrnWjIolZkrWtoH9rIG+GbgMNmXQlpLjpvGTHEgeJBd7m+ac5E8c4jo98SFO&#13;&#10;xIu4ET/iSDyJa2zKWSfdKk0x6oAgeDNpMA1Dbq2gKtBfXrq+K5pBFoxgJPj5j0/e&#13;&#10;5Ku3jr4FlBsezK2gVl8rwYXz53HAfVEeTaVP9tMajG0zaGtH6TRuGj/JgeRBciH5&#13;&#10;kJx6jc5J/sSBeMS3NBMn4kXciB9xJJ7ENTbl6vHjx2URpd8Y0VrcShi6lgczHDVU&#13;&#10;dZcm+N7Z6VMfUa2cQpsAnvj8ffDJ+3f2tNBBiwE8CKHecuA65pcXrpXh2999BupN&#13;&#10;LjcY0CxfM98/q6C7gHetrtEj8F2olJdhYmIXZJMGZFO63OMma+g9imO1asOb5xdk&#13;&#10;gwCnsZIYGpm8IRRW4YpfBRHWG6DZwWjaj0uoEXUKzGZdLRF6hp9SkxooOU2H/PL8&#13;&#10;xX1IWYkX/7/06L6efHVHqx1P7vKcX2nCpZkFmJ293l7QSMhIFWTBBD4cD2m8mBw3&#13;&#10;jZ/kQPIguZB8SE4kr820e73vJh7RYgwtDpkK8SJuxI84Ek/iCu1ATZpxUvVimmvU&#13;&#10;hkq3WUYLAfM1LVdZnhuPfLUBh/cOwe7RQqeAsmXtGx1J08UIvNyC2aU6vPDC85iG&#13;&#10;pGUxgPzXT28u/c5zcOm/UQ4kD5ILyYfkRPIiuW0VmceFFuJBXOLlVuJF3IgfcSSe&#13;&#10;xDUy5dJnH5ctIpvWgAYaSzBVxShCzXnO6kir1crEPUy++Il9N6Vam2l1VEARUMXZ&#13;&#10;uoAR57lL12BhYVGukFF+yOIy6IcGdDfw9vIoaTfKg+Qi5YNyInmR3DYrtHTLn3gQ&#13;&#10;l3hTBfEibsQv4sgSxJX4Emf0108C9QKl/p9cDRKqLjKqyjK1pRsTkXmgZUsdPvfx&#13;&#10;3T2uajH5RV1fwErNxkE04ccvPNfZPkRmRy75fNg4d5vz9iYIkgfJheRDciJ5kdzi&#13;&#10;nbW9lFEjLnq0oxZ5ETfiRxyJp+zrinyJs+wPSuU1PesYDCxLDUKErWSatdVBpa3V&#13;&#10;e3fSNtpkj8uXQm7gr7dcWK46cPHqPJTL1chsxYsb8GHU6u5grWvRBOVC8iE5kbxI&#13;&#10;bh4XPZVQiQdxIT4y2EVexI34EUfiSVyJL3GWjWCpbXOzEZiGGqaoBaymqOlGo56P&#13;&#10;9nZp8ODB0Z6qZVERJcqt6y3alNCE85hiyMWNOCj7MGv1Ou2W5VQqe6J8SE4kL5Kb&#13;&#10;zLl7WvqMTDnxifbI6UDciB9xJJ7ElfgS57a/djRNMIMDS2pKmGpVFkdEKDQyDbQY&#13;&#10;/9DhsZ6j8MiEc6jil6bN/HNzN6IqmWbE9zPB3Ufsv9WoExTKh+RE8iK5kfzENqJy&#13;&#10;4hN1djCAuBE/4ih5IlfiS5xZ5K+bujBV09CZhTMkWavMjUinj7OFqjUP7B/qfQcK&#13;&#10;VcycQG6FXVyuQL3elKs00kq0d1reBR7l3Uq8gRHlQ3IieZHcSH5bVdS6TTnxkVXN&#13;&#10;9g5Y4kcciSdxJb7EWXbgd/CVzHVNFooEXimnXi3EG+mpBRT1HOt5AyFtN3KiOyLP&#13;&#10;nTsXbdSnnaCyn6hyl/NNebcS+W7a745yInmR3Eh+XGxtymMmxIc4xcyIH3GUPJEr&#13;&#10;8SXO8qiFhBpo+IFmoEJCZarluXYqvnticrywYcfAjUw4SBMeQqMZ3Qp7fXa2s9AB&#13;&#10;HRN+l3YXbSmXeKGE5EVyI/mRHGELU96t3cQpvsuF+BFH4klciS9xlsEZr+bQ8oe6&#13;&#10;GqIZVxTL9txE3Nl3YjjfkwmPbsKjm959aLR8KGOwsVpeade/tS4TfvdxkzFncWRu&#13;&#10;SnmR3Eh+JEe+RQrWDZs4QXtrlOSHHIkncSW+xJl5hTIzNa4JBZ+EMH27lg2FUKMu&#13;&#10;vyrsGsn1vJRJd1zSvU8Nm8P05SvU5Q+iIE9dWwG6+7hZuUFp33IkuyJKuZH8SI7y&#13;&#10;DtYelz4lpzYz4kcciSdxJb7Emfl2gnkq09CY6KHCDLu5WpCN2dt9uifasLd+MOm0&#13;&#10;vYBjgMFhpVJeu+9KuZtubQZcyrodXJHcSH4kx4hzb/d8R5xY+0LtRo7Ek7gSX+LM&#13;&#10;RF9OceiUnCCU97U4dj0TrS+rsmvf2ECmtz1m7cUP3xeyX0mr0ezaZvRhLqL0Qpt1&#13;&#10;tjGR3Eh+JMd4UaSXAgtxIl4yNkJ+EUemE4MXA1gAACAASURBVFfiS5xZwa4xwwk0&#13;&#10;zcKMjYEWBIEZ3/WYS1vyXqXNArMuvZbLmi4P5H3LLTvu96V2Uo27wDdOwTqmHOVF&#13;&#10;ciP5kRxJnqwHraYHcSJeSruxPnEknsSV+BJnxh2TCYNuMAWVhaEmAl+PNTFpGdvq&#13;&#10;lMBl01bahhTIftzRxgR2xzet+8CRd/adq1JuJD+SI+9Bq29KwSyjYymII/EkrsSX&#13;&#10;OMuJE2j4Azr7Cj8tDLgW/zIdt9A7KPLZ0T3K1NjGa8OGzib/u49NaLUjaVXKjeRH&#13;&#10;ciR59uKzY+AxL7qII/EkrsRXEqJjCxNkgjW65QyBB0KL78CgHh89g47iMwi4kPda&#13;&#10;+55/8y6Uu7w3icjbBRaUF8mN5BfE9XEGPQOPeEW7YYgj8SSuxJc4y3ehYws1/GnI&#13;&#10;mMIF1+I0KdU247084u2wQRD1QuG+H83Wu5R79t4kL5KbL8142NmG3btmG510jjgS&#13;&#10;T+JKfN82ZeQtnSLo/Mwyt3egX9SrTAGn2WrPVLjD79O6o/Kvjryk/MjOiu31lr+J&#13;&#10;F3LUNgiiOw/ZY4mpnU+gFpDbecjtSmiCrFSyfVYWtA/PCu/y3PQR3iQvKT9qUczY&#13;&#10;tt7lJl7krjeCTSfNcoWHihChxjQefTjIG+V7PVaCte85pg6AOuZ7mmFEh6HdBd0j&#13;&#10;7ujEQJIbyY/kyBj0DJw4ES9oH0xHHIkncSW+khGdHW2T9eAhzaWAqSqPtZHaQfZo&#13;&#10;wOX/ZMKGf1EPEV3T5SFoEE+Wu8xvqdRtWlJeJDdNdlpqa6Lo/LXlI+IVWQniSDyJ&#13;&#10;K/ElzvL9EC8aeARNd3nTi9q9t6mLb+8HxghZuTH1aFZSa0jaz9w58vDuYxOtXDsS&#13;&#10;kuQm5adHlbBeQXfzkn3TkSPxJK7EN9JsyxXMo967GO0rCmeq7kddGuiXvc4v92LG&#13;&#10;NbkJjuEX1WR7rOgQU3FXq3ty2dGhryQ3U552xNrtOFhPoCPYXvvNBG2K8IkncSW+&#13;&#10;knM5kRWepXLuBNTVmauq6kYfLKDacOSOifgNt9BrDCRD0Bl1+VEhlUhGsGVhIPbd&#13;&#10;d6m/3VOHkXzasiK5kfxIjiRP0QNoGVzziFcoIksqOSJP4kp8iTNjq9XQ8sNAUxV5&#13;&#10;nGwika3Jyg36D2oreaNU3xJ057gjedMZ9Q7RIJVJyeML1/z2XdCbR+LR4a4kN5If&#13;&#10;yVHrOitlK+DEiXgRN+IXcRQ+cSW+xJnpCVsYdCI8CB89uGum+it0fnTY9rVXF6o9&#13;&#10;+m00HRoDSzcwudegkMvKw0nlYaV3TfnWJhzlRPIiuZH8SI4samjekxmPOIn2hb4f&#13;&#10;ORJP4kp8iTMzygXhco2cucsU5hiJdE1RWBCbFepP1n0m5a0LpvRH4IykPVEa7N13&#13;&#10;DyjyRFqvbcrDu8A3jMTD9pHNnpQXyY3kR3IkebJNSqXdXCSnNjPiRxyJJ3ElvsSZ&#13;&#10;zaeaQstV6QZ+14fADRjYCdO040iajheOT9HZSrPJ7FimDvm0CX25JBT6++TJs9Kc&#13;&#10;i7s594Yem+SC8iE5kbxIbiQ/kqPGttbs+JhI4hRH9MSPOBJP4kp8iTPTFuvCDihA&#13;&#10;a/iMh07oc9cwE80IEIfL11dvgn0r6CyqAGAkqchDyQsZE3aM70QjYkeHjIdt7b4L&#13;&#10;vEutI19N8iE5kbxIbiQ/kiNs4q/XH/9MnOKzvSU/5Eg8iSvxJc7MTA+LtGp6wjRd&#13;&#10;oQS2CFnTSuXKMewLV5eh0XJ7SsHoa9FspDM16Byr/fvvkedK01HDIC3FXVN+M+tQ&#13;&#10;yiU+f5vkRXIj+cngrMeUi/gQpxg28SOOkidyJb7EmVmFsqjaGK25gesLs+WHvJXp&#13;&#10;H5nDQA5nHAff9+GN8ws9mXKahLRjgg5PyaV1GC7mIJNJR8BvMuXhXQPeNuGRVjtS&#13;&#10;TiQvkhvJT9M2b3nZrdXEhzgRL+JG/Igj8SSuxJc4s8yFeZFyLB6apqOpYQtCpZnO&#13;&#10;D81jTs+j4IrDS6dvyGODtwrU4jSBigKFdAL6cwkYGx+DwGvKw8TXTPndR8eEc0/K&#13;&#10;h+RE8iK5mbq2acrVzYG4EJ+wHQwTN+JHHIkncSW+xJmdLB4S5Lwdx/Ndm9uBHzQC&#13;&#10;ETZSqVxFaiPOltfOznVgb1lJw8ugPBtnZyGbgAMH9uNgGjh7W9LEyEXau4ot5RBK&#13;&#10;rW5J+ZCcSF4kN5JfL8sfMWziE6VumKcjN+JHHIkncSW+xJnB4SdEqpniKcXyQBMt&#13;&#10;UJU6F2E9nR9YFNyVud/l2WVYLjd7NOVMnnuVSZowkLNg78QIDAz0A3cb0jfJGdg+&#13;&#10;B+/Da8KjqJnkQXIh+Ug5obxIbvG5Yb2YcOJCfIgT8SJuxI84Ek/iSnyJM/XJArLn&#13;&#10;zdDxdaGhZrN6KMJaun/sWhi40jSQL/ibl67IWbQ1cNE25Qz6caaOFNPw0Mc/iUlA&#13;&#10;PTLnH3btbms1yYHkQXIh+ZCcSF4kN7ZFyhWDJh7EhfhIl4u8JDfkRxyJJ3ElvsQZ&#13;&#10;3/VJMVku8JSzzAPbdkUQNN1QqZrpwnwikarF2v2dFy/dZMo39dvSlDPIYRoxPJCG&#13;&#10;Q/t2wsjwEHCnHqViol1V+9ARD+W4afwkB5IHyYXkQ3IieZHcGEBPKRfxIC6xVhMv&#13;&#10;4kb8iCPxJK7ElzjLdzyBf0oNjQtBp1WJeugH1cALqn3FketR6uTB2elFmMZcLtbu&#13;&#10;LQssGvptU4NiLglj/Sn45COPQOjVpX8KuRvVgj9UNfM4qArk+KUcUB4kF5IPyYnk&#13;&#10;RXLbqpASazXxIC7EhzgRL+JG/Igj8SSuxLcdT2HyfviwyO0wuatnXF0ELaECvhjK&#13;&#10;hdG9F9A0hJF2+/D0cxd7jsplNc3SMG/UYXQwBXsmhmDnzl3g21UI4mDtw1Qzl/M6&#13;&#10;rpa1pBxIHiQXkg/JieSlbSMKJx4ydSPlQU7Ei7gRP+JIPIkr8ZUt8OU5jseeFFEK&#13;&#10;tkxNsG3w/HoYKKuqai1lsoUVMjnkD779wiVwXa/n8ml0mqwB/ZkEjA9mcBZ/HBRu&#13;&#10;t835hylY6wrKcNw0fpIDyYPkQvIhObFtlEeJA/EgLsSHOBEv4kb8iCPxJK7Elzi3&#13;&#10;p5ACFJrXYNxjWqrFGdQgEGXui3Lf0Ph0gG9GtdvFlQp854XL7V5dmwPvaDf6oP48&#13;&#10;mvLBNOwZH4CDBw+C3ypjFFpvz8ifdXPe1kZyfzheGjeNn+RA8iC5kHxITlttVohB&#13;&#10;k/yJA/EgLsSHOBEvyQ35EUfiSVzj3b2s/SYCDk+J4uEi96yEy1vQDIRfCRRYzg7t&#13;&#10;voARoh35bhf+9Kk35Ym1MezNgUcVNdpiM4iR5s6RLHzm6CMwUMjggNH/Y9pBMxPE&#13;&#10;zyrwtnzkqpYrx0vjpvGTHEgegzIC37piFstadqNC+RMH6V6RC/EhTsSLuBE/4kg8&#13;&#10;iWt8Cm9XC+onRfFMSVRN1QPLaXLPqXkuX+UCSoOjk5fIz9AbX51bhe+9NC1nV69L&#13;&#10;nzRrsxhpjg6g7x7Pw5e+9CUw1CDScJmOeV3+O/yZAR37aRofjZPGS+Om8ZMcSB4k&#13;&#10;F8tgPS9lktxJ/sRBSK1uAfEhTpIXciN+xJF4EtfughfEpvwEzoKcO8v9VuigTtZE&#13;&#10;KFbwe5YGRvef0RThkbmgQsA3vvUm+D7vqaoWabcGSQw+ioU07BzOwYHJQfj8538B&#13;&#10;o9Ea8BaaIq+1tjL2MwE8bG9KCNr5dEuOk8ZL46bxkxxIHiSXqMtzb9Uykvu/+dYb&#13;&#10;kgPxIC59yIc4ES/iRvyII/HsvkGjc9QTHQtEZzk+OjkNM4mAKaarMaHQcQG0lJ4K&#13;&#10;Q7e/Xl0eoBvGK60AdowUYN+Ovp76rcQ3hdB4aE80HT/MNF0egXzl8tmoRVR8e298&#13;&#10;Kt5Pbf/xNdCyHEqg7TJq9TI8+qnH4BMf3QcHJvrQV2cgk9Axr1blIa29mG9a7Hj6&#13;&#10;+QvwH793SroE7lShOLLjYjI98hM75DN+4N1oGe5KQ9Hr99ay7tQf/XYQhsc20uw1&#13;&#10;7e43jniQGG5grF4TnrKMKr1UHD/4lhpyX2ohmo8/+POXoFpv9Zh3r9XM6XDxsWIG&#13;&#10;9ozl4RMPHoYjh+8Fr1GSB591a/hPpw9fy6VjjaZx0fhonDReGjeNn+TQaw08zqtJ&#13;&#10;3iR3ab7xvYlHcfzQW8SHOBEv4kb81mv1TZrdrd37M/+KJROmAppHm8hRBTVLNZUE&#13;&#10;upZMdXVxiDoEOJjQ+QGDh+8d7akhXnSOJTV7iY4p1FQ6YBx9eb4IS8vLsLw419Um&#13;&#10;gnXO81J+ajR8LRgjH02lUN4GvWdyJ/zi5z8DB3f2wS4Mymh1i+7LiqJvZcvoWwZl&#13;&#10;ngd/+BevwI9/Mi0jeu5UYGxi7xk92/+Wa4czPjjXbeYtD7S8unn5FX/mT5/k3Vq9&#13;&#10;gWa307CjwEvNq7yGs4T5SiVUghJakPn+sYNvJhJmlUwI+Yv/8Nen4OLV5ZtSsS2j&#13;&#10;83Y61ocDnhjJwP7dBfjlX/wi3Hf/ERTMEvjNlXZa5nRtVryTtTzeHdreNCgXN+py&#13;&#10;HDQeGheNj8ZJ46Vxr6VZvUXfJF+SM8lbpsEof+JAPIiLi3yIE2k1cSN+GynI245n&#13;&#10;jLX76OFSOCNqzNAy+MWEGobcxJdbuWyOleandylMQ7XTYHquDl/85CRqqtrTuSFK&#13;&#10;u2EMpRp0VKGhRevffQNDwMwUzE6fl4X97gPOY6d/52l5e3KHa6tYQRs0YDD26GOP&#13;&#10;wWce/ZjU6J0IerCQgnTSaMuqtyVMAm07DvzP//czcGO+hBMJg1q3Gu458HMvcpY4&#13;&#10;73NvhoE667JEqWZXmh/xx5z1vnoTze723Z6H5sh2WkFFCcJFD5Q5I1O80D8wPBs4&#13;&#10;0SrWG+dm4V9/8w0ZPPS2KraWf9PASQC7R7NweLIPHv/4EfjFX/oyaOCAV0ctp0jd&#13;&#10;bUbFF3EnaXmXNkvIrvye9H3pe9P3p3HQeGhcNL4O6G3sQImib1/Kl+QsV8lQ7gMo&#13;&#10;f+JAPIgL8SFOxGsjX31Lze7W7nmMzDMDy5BqeEpgWaomgFpwmLmBIX917tLeQNB9&#13;&#10;/Rq8dXkVjuwbkoFHL9F5rJ/U64GafpiGLg8llTcXJBIwNLoTZq9NQ6O20rkvMPL5&#13;&#10;a7+sdPqqKe8zZIhKvKIdbfN2scSuoEaXoJBLwt/+ylfgI/vH4R6MuieGMjCAP0ua&#13;&#10;Kmh0Z2YP2twdfb/41jX43//1D+W6N8cUWg09d/d9j36fB8qlwA9mXCWcZ051td5v&#13;&#10;N88sFz24hVZvotltIeIsGe8/4mlBscmafsX1xZLr8htBwK7u3P+xl4VXD+VA3RY8&#13;&#10;+S9/AAvLtZ79d/zhcQ5OvoyCl0Po2x48NAp//1e+Cgf274WguYgWcSHy5ThY8lkY&#13;&#10;hG6g6eF7B3idJtPnB3KJshb5Zvx+9D3p+9L3pu9P46Dx0Lg6ufQ2QJMcSZ4kV5Iv&#13;&#10;yZnkTXIn+RMH4kFciA9xgk20+paa3a3dM0f/LMyVSorPJsOkEeA7CTVQdc1KpkMl&#13;&#10;dHP1cqlfdvnB6Pz8tQp8vn3iQLfv3sqHy8NKWFRWpY4/Scw/k6jlY+M7YGTHJJTL&#13;&#10;K7C6fF36cuisg4dyWN170Tu6r6y3IdsBe/M/pRbLuywCuvUx0mS/FYFuraJGL8P4&#13;&#10;6Iisin3q4ftg/0QBJmV1LAPZlAmGTnk0bBp1bwSa/PTv/Iu/gYszOJHwszhajsGx&#13;&#10;iYvZoT0vO4JdDjm/xhR1oeFny6445bwyeNWLFjyOiW3DjoBDJ1i7PpgAo+JQyyaG&#13;&#10;lCnE0LL9I06rcmPcdVpJKowsrDpQqrnw6P3jNx34vTVwwkT3FCsyaKOALWnp6OM0&#13;&#10;yGVSMLFrFwwUx2CldAOqqwty+22UiwftXS+x5oXQngEbo1a24hsTXrvZDtrbc6PS&#13;&#10;JO0soarfKnhosgf6MvDzn/08HH30QTg0OQh7d+Rgx1AWBvIJ/O66vF9LVaCnLUbd&#13;&#10;5VBKs/63bzwHP3jpggz4KM1Kp6yVsXs+/gPfCy+7Hr/KbTEnXGWlUUw27mvk2gWU&#13;&#10;zZfMNoVNj+PHFWXqq4fhvpf3hmHCBjVbg9A1FMWQ3XH0fN+oU567MImfpFL0fGEW&#13;&#10;Zzx+5IMHht+2Q3Ir4HTCPMlbRwkZZmTesylDnnvVX8jAzt17IJcbgKWFa9ColNqr&#13;&#10;ZmTS/fbtwUHnXuf4ijRzzRR39mu3o+j4FtewfUOc9MWCt3d/OHL5MBJ4NdLkxor8&#13;&#10;To99+nH47NFPwn33jMA+1GQy2UN9SchnLLRKqjyfi+oJWzUg2gj0H554Bf782z/B&#13;&#10;gCz6XDWwvd1Hjj4TALvIhZgOHHFdSzZKrJWs9V3JOU8/9GoAJx8P1x+Ovm3YkTl/&#13;&#10;HGa+9qfhEH8+dGw6/sFH5QZF4Eh0VWX5fL+/PD89IUMuHORbl1Ygk7Rwtg9sS8Oj&#13;&#10;SF1pp2ZKZNZNHTIpXZrEXNqEoYE+uOeeg1AcHgbuueDUV6GFgVxAeTnBpy3LBD+Q&#13;&#10;N6VCfLODvJ2p/RyXMkO5N96P9tnRChKP1obljk+nCzD6Zeo6tWN8FD71qUfgc0c/&#13;&#10;BfcfoACsgJF2DgPTtFyTJm02JWi81K3dx0ag//13TsMfn3hJ7mQhV4F+Oth7+BPP&#13;&#10;MiN1xgnE5cDjsz54i45nVCFTb7145O/4cOzxzsrWO4K9BhxkdD7ANeGlUclDXbCA&#13;&#10;gWCCaakczyYTsLp4dSw62ZPBy1OLMEplUeqDva66thVweea41HQmTTvdr5zQqdRq&#13;&#10;ouZE1/BgH+zdsxsOHDgEOyZ24WtDsBtlaFYXoxRFlnVbkWZ6dgSRR+vy0fZdu22W&#13;&#10;mzLSlRsiyQ+jb6TKF130eXsndyPgT8GnH/k4PPzAQbh33yjsHc/B7rEc+mWCbMnS&#13;&#10;p+wlo0Z17l66iXX7aEqxCPRTz56H3//Gjzqg0WWIyf0ffVkrjL3h+3waPPUqSme+&#13;&#10;rkMZGlbzJ07Chz86HGzmp7sf2+h9hSM4EfJDT5yAN8z+ZlhtsLoe6BkR6ihAPVnY&#13;&#10;oU1M+ubV6dMfjYf7v/4/P4BGy4Nf+cIRMKihDqz5r176q8l8XP4DI9lktM2J9mkV&#13;&#10;EMJIvy8PT6EzNcqoYfcfGIPVuger5TpcungRytUaNFstsFs2OK4tm8n5Ph224kPs&#13;&#10;2DWN/CqCwtTPMi1IJHOQSiblbbN79+2DPnQdfRlD3pJTyKJlQXeSSRqyk2ACvwd9&#13;&#10;n3iTRrQzp8cwcAPQf/7dU/D1/+/5qBRq18hPhzsn730T5fq66zsz+NJrOB0Xk75a&#13;&#10;9pP9zY9Cwztz4gn+tiBlM4K990yJD1Q/xo7CYxrMzFhVNchpzBpEoY3pIdtjmsre&#13;&#10;yvWzj964dvFeLZGXh4TTQaO//pUH4bef+DkJvNcD1jdaDIgb2Ed9UkGeLE+Hp9CZ&#13;&#10;GnTUQqPpQaVhQ6uFP8PAwUYhui4dPRXIFpGchxhPBOA0G2Cl0qAzVboL0kpDwzzf&#13;&#10;ZJDA75jAwCqJwWE+jaYZtZbuvaJbcihwpMULjcE6yL23sFofdRPoP0If/Y1vvtbO&#13;&#10;pasy8h6b2Hc6P37wOdcNL/mKuIyT9AYXzlIuUKuwa5dzEn7IkUVP5vs2NDva0UKA&#13;&#10;Th47xh80RjyrXKg3LYcJDY25KpCjpvSPHqJminB99vLhSIVC+Df/+VVYrdnwT7/2&#13;&#10;CArN6gDfnpaztS+Mmq7hZ1iagdDJvAvo46Y8asFx07IxuxdEpxAFPJRNX31aD26f&#13;&#10;ZCsbzOBnyh4wBgNdnqKD/5ZxAgKlvjCmKm+bpbspqeqlxXAZtDcaxJrce+uqeNJ2&#13;&#10;p1e//6fPw3/+/pmO6SaNHp/Yc6Zv9NDzOIbLLsfIO4B5n4vllJOt1wtl77XbAL1t&#13;&#10;ze7yqfIQ7gfnRsg2J30jkdGb+iAqx46UBbswLN/bXL72sauXT39UNbOMjiGks6se&#13;&#10;uncX/N4/fByDrKwE3uuB61tpuzxqXJ5pCJ2DVASPwSrRKQc8aP/OzW5CTiBqrU8H&#13;&#10;qylhtEChsc4dqRDdidwFmG37e67fFUqgF5dr8Lt//AN4+fRMe226Ln30zj33vpEa&#13;&#10;mHg1CMWlpgMz+LVn/ZS/pHt2Hd+q9drofDufhm23oOopQLtV/k1H9Y7WM0JF9TFV&#13;&#10;V3i+Rmk4fgk1SGULzXQqJVaXro6GQjByK3RW9HdfmoH9O/tkmtLJsbtAbwe60l4C&#13;&#10;ZXGe3k53cA7JHJc2SiQouEPTS89J05DmmFK6pPT/hixjUsQvm9aQOTei5VddLlYo&#13;&#10;MvCLjzne7oRcfw91bLZfOXMd/tH/8TRcuDKHQWFkuoXfCCgYS/fvfMXxlcu2J676&#13;&#10;PLhuGY3lMOC1dwr6tmFvBJwyVK/hB0wTXNF16rYq9FR/s5DPOdWlmTEe+LQNBVoO&#13;&#10;h+/++IoEdO+e4i0hb1ewMfi1SF5p7wAJo5+x9vmVXVf0s7VjrWmixL+rdI67Vm5L&#13;&#10;k7s1Ol7QoO2/3/jW6/B7/+ok1KrVTsGE8ug9hx56Ts+Mv+677rTHlCu+37rh2c4y&#13;&#10;WFB9N0C/I9g3A38Qgb8mtDJ1azE5YyEquOIrOEzdzNr9wxMrrfLCoNOqJWQBEr/x&#13;&#10;a+cW4Y0LS3AAtZzy580gvpNHt5tQus4r74Z5u25kK8ixNhPoi1dL8M/+8PvwzZOn&#13;&#10;wUdtjkugqYS1Onnfp7/HzPwZP/CmXYAZnBzznqeUjDpqdIZA/wMEffQdgX7HsNeA&#13;&#10;QwQcXhOJRibwjCb3heEbgYrfmXOMed3BsT2LirATtdX5PpSCQhWs+eUGfPNHl6S2&#13;&#10;H97d3ylEbCT4O/k0gvWQu7W5jtnBH//lq3D8T34AszeWOvl84FbD4bGJixP7P/59&#13;&#10;nysXbRFMg6/ONEU4H4b2crKZqgVFx45AwzsG/a7Avhn4U2KIa+Eq13lfYPqgCj+k&#13;&#10;EpWKDh3HnusbXk1nM061NDvMfVeLZn8Ab10swbd/PA2DhSTsGMxsCvhOgn4ryLFv&#13;&#10;/t7Ll+Ef/4u/hudfu4zaXG9vJ6oCC11398EHXywM7X3Z8cLLHMJp4fNZKpjovrpS&#13;&#10;Al430003Mt1H3xXQ7xrs9T78I29WxcLEbsx0Gpxx7oWe6/mK6ilMdXUzUy+O7Fry&#13;&#10;W+VMs1bKUrtUyiCaLReeefkqvPDWDcimdBgfTPdkoj8owBsVR2LI339lGo79yQ/h&#13;&#10;3z39Jvrmylr+jGlVodB/fffhR78vzbaAyy2PXw2c5nUfwkWqjNVT+cbEhSn3xSMN&#13;&#10;/5366PcM9hpwqqMfDT97JRcsO1oQqoJ7Cc8zPHBCP/SCMHSYptuF/onFXF+h0SrP&#13;&#10;97t2w5QrTAi9VG7C916ZgZOvXpMR846hdFQj2mB9fP3/fy/gr4e7fidJDJly5u+8&#13;&#10;cAn+lz8+CX/+1z+BxaWVdkpVk6AtXanvPvixF/uGD/yYA7vkunw6cPg1EXjXm5a/&#13;&#10;HFKtu2E172t47tMPlYIojz72rnb4fVdhdy+cTE39hSgdngrHM3WeLBd4ICo+M1Mu&#13;&#10;0nbwZbbHmKNpyVpxdHJOVXxWX53rC7jHov5rAaxWW/CD167C089flltoB3IJ2flv&#13;&#10;o7tQtrpn/FYTYqvX38pMd2vxzI1V+Hff+Qn88//3WQy+pmB5ZbWrQIKBNG/ykR2T&#13;&#10;U+P3PPxDoabO2iFMyx0mPLzOVHUhsKuriVZ/jRY1qNY9RSXQk4+H4XvQyvldh90B&#13;&#10;fhylisDJrO+dOhQs7U7zoMo8M2h43FccDXybh8xGwbVSfUNLQzv23AC/Zdi15Sz3&#13;&#10;HDVepao3bdkN6MQzZ+Gl03PgYtAz0p+UGwLialQ3jPWANitwbPbfRNcBanFUHUfW&#13;&#10;5VoTvvWjc/D1f/si/MF/+DG8duYaVKuVCDKtd9volwPbLw6OTO8+8shJMzv0Ewc1&#13;&#10;2Q9gRvHda64dzjPulWjjQaPY36BlyhePnPZpSxGlp+F71LP7tipot1Nte+LMITYF&#13;&#10;YGTx4mopxdVcxkqqeSUURUVXizoLhw1VGwyVcHjl2tSRlfmZSR4qBtMRrG5FB7iq&#13;&#10;pjxvWjcMODQ5BB87OCJPhb9v36AsbcYl2JvTra1X2jbS4G7gdAjqWxeXZKOaV8/O&#13;&#10;w9T0Ivie114eddu7V6LVNE0Jvf6RXdP9E4dOKaGy4AV8yRfKQugHpVBhJdocqAXV&#13;&#10;Om0lqgF4h/CSmwTfZf/8gcDuLKBQCQ2hHz35mHb9yCkjWclb+J9SCSXMCD3Mq5o+&#13;&#10;YCpmP9ODIguVQY1BsTx/4VClNLez0WrkmWoq8ixuzZSnyUdHPuvyDEvTNDB1K8Ke&#13;&#10;cdqym8crB7vwebAv1V4f3xj62/PiEJZWmzAzX5HtIakfKHUOPHOlJAsich97vFbO&#13;&#10;4zVw6vHmhulkupIvjl4tjNwzRTfZCSVcEr5ackN3JeD+Mu3rtkOFSp7NVr7ijJ86&#13;&#10;4p08SjXuJ8V7qc3vO+z1Wg6o5Q8WytqKZxhpt8+EzEI6ERoZ4GZOY2qBgTegmUYf&#13;&#10;U5UBk6l9GK0OLy9e3ldZmRtzHSclodOhrlqk6dG50Zo8cFSRJbGo5m7hJBjIJ2V7&#13;&#10;SNrmJJcmqeOvoYHjRQfEUvd9ai7Ssj1YrrRQi9vnotAGBxF1+I0gR62nwnaPGYJs&#13;&#10;WlYz3z96Y2Boz0XVSi1gfrkqgnCZu96qAGOZi6AMmlu1Fa8O9eFGw1x1abvva9Tj&#13;&#10;5H3S5tte9XrnkS0IRaEYIRSvHTsu0LTz6cKCl/EMdznX18jaC/XAscoC9OUQlJyq&#13;&#10;hAWu+gVVNWf7d957cWjiSMFpro7WVq/vaFbLg43mSi4MFTU6zVfvnGcZn9fNHQaN&#13;&#10;2tqtRG8/rP3mnaPxERcScryrJd4yTF2DlTBIp7LVVG5kKds3Pmul+ua4EpZ9X1Qc&#13;&#10;x8fITCkHIV6+ipGZU9Mtp0l31QxUV916ZsE7iJBP7Loq4E/+gYATpM1Pvq/nabyv&#13;&#10;mn1r0w5aqXhIK6aa2jJqup7kFjh2ihlqxmBaOtS8nAYqghU5XVNzqsoydCHSTL0y&#13;&#10;N1ZfnR+xm7WC5zpJz3WtUG6Pis4Bhfi5fa/ZGvQ25G7Y7WMuZBtn/NswTccwrVYi&#13;&#10;lS1n+kbmM/nRG4i/HgRCXj6GnPjeVQ74zI2qJ3hDeEEdrETTb2nOAGpyqZnixdJU&#13;&#10;dEvO+2iy7yjYG0GnIG66bd6zgWqkZZawSQAAAoZJREFUFEsXvJkEzUz4KTOp226G&#13;&#10;JdQUhuoZCLSMqou0pqjomMOUCiypMgXjgCDhOLWC0yjnnWY9g1ppChHo6Df1QASa&#13;&#10;4L5G7UXwYwXm+xzNAsd4wWdM9dE6uFYqU7fShYplZcuYrNiBCJ0ARAttUpOHQTPw&#13;&#10;WQNUXg8URu2cm37CrOtNt4VhuE2tLajvWE0NPDLX1JIqDr4+SMh3DOxbQS8dLrLS&#13;&#10;mZKWhetGXcvoiULaYBXHAo0luBokaJOSoYYpjpANnVksVBOB8BOqxiwQzFQhNEMd&#13;&#10;8CWK3HdAhycJ2qMgaDkMP5C2gbMwZJg6y5axmF0FSsgVHzzUaxeYcAMuHJXpNnX3&#13;&#10;9XyB6aJoeYHSxPjc0QLVpiY1Im85drnhZXjdpx4m1NqCOh7cSZDvONgbQQd4Eo6e&#13;&#10;PK7V7xlh1VlXK6aHtablaKTxqEGGrgamJpghTNVkrmtqVlpXAsV0FN+kE+GZGuoq&#13;&#10;RW1hSOdSqtF5o15n94EijPjwOmq/zwOMxkSg+HTUghXqbqiGLvXrpjbO1N2XM+H5&#13;&#10;gepSi0jSYGoAW2oscGo/RV2JTh59kgMchzsN8h0L+5bgUdufwJ+RmXfKBeYOp1lx&#13;&#10;oSHh5xKK6miaZvOakazmVF/jmqEyjU6ENxiZbpUZdGy028L3S3R9gg3MTApPnmsW&#13;&#10;CE+onA5P8ehMDa7xVq4aJLSsZ3HOqY2zhDuc5uZCQ1CLSGmm6W3uQC3+qYP9Nuiy&#13;&#10;PHc80kyEf7Q0xUjr6f+S5vOhDBtppphXKDPfTjDBc0ohU5MHhXOvxKCvT/4qd5uY&#13;&#10;rqciKKuroBlFee5VuZ5FP14N5SE55YLs1kwd+GXjOHxI7aVWU/KeKoC15jR3NuT4&#13;&#10;8f8D/BVoxjuzuWYAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="30" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="389" font-size="11" y="471" clip-path="url(#clipPath32)" stroke="none" xml:space="preserve">Mesh</text>
+<rect x="130" y="27" clip-path="url(#clipPath33)" fill="rgb(209,209,209)" width="20" height="20" stroke="none"/>
+<rect x="130" y="27" clip-path="url(#clipPath33)" fill="none" width="19" height="19" stroke="rgb(136,136,136)"/>
+<image stroke="rgb(136,136,136)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(136,136,136)" clip-path="url(#clipPath34)" preserveAspectRatio="none" height="16" x="15" y="10" font-size="11" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA50lEQVR42mNgGGjA&#13;&#10;iC7w4evP/xtO32d48OozTk0KYrwMAaaKDALc7IyM6JodGjYyOGhLgRXgAgeuPmNY&#13;&#10;cOAGw4EGfwYWZImG1acZCrz1GBIcNBgnEHD6gatP/zesPgPxwoV7L/9/+PqDoWD+&#13;&#10;EYYJiTZgBQ668oyE/O/QsOE/2AWTt5xl0FKUZoh11GE4++ADw84zt4gORLAB3Jzs&#13;&#10;DPrKUnDBi3efk2bA1+8/gZqewQVfvP9MtAFMICLXx5jBWEGAYfH+K2C6KsSMvHRQ&#13;&#10;sODIfwMFEXAsMBARCwsO3GSgOB1QnBIZhj4AAGcNZeNL2Ad0AAAAAElFTkSuQmCC" xlink:actuate="onLoad"/>
+<text x="34" font-size="11" y="23" clip-path="url(#clipPath35)" stroke="none" xml:space="preserve">Meshing Parameters : IMeshTools_Parameters</text>
+<image x="470" y="474" clip-path="url(#clipPath36)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABGElEQVR42mP8//8/&#13;&#10;AyWAiYFCQLEBLLgk9i0K+f/kygE4X0bHgcEpbg0j0QaANMfW7IDzF7d4kOaCd6//&#13;&#10;MPy+O4WB4R+Ixwjmk2SAnqMLQ1/nejhfwdaCNANA/nWKY2DwL1j1f+OEMEaSAtEt&#13;&#10;fcF/kNMZofHknr4InFhAxK6ZcYwEDfj25RvDkaVZGLbaRE7DSHWMyClx8fqD/9cc&#13;&#10;fAnnh9iLM8QG2jPWbZvw//yj83BxQzlDhiavAkYMF4A0d5a4wPnlPXuABjAwgDR3&#13;&#10;uzPDxUt3nsfuhQ9v3zLsu34bkj7/gfjvweJbDp5gsBbXhavbcvAyA0MGFgNC3A0Z&#13;&#10;Fs86Aefra8uC6TzXCIbKVSvg4tGebtjDYEAyEwAqcGWs48tc2QAAAABJRU5ErkJg&#13;&#10;gg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="205" x2="287" y1="276" y2="276" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath38)" fill="none" x1="280" x2="287" y1="279" y2="276" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath38)" fill="none" x1="287" x2="280" y1="276" y2="273" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="311" y2="331" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="106" y1="331" y2="331" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="106" x2="106" y1="331" y2="351" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath39)" fill="none" x1="103" x2="106" y1="344" y2="351" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath39)" fill="none" x1="106" x2="109" y1="351" y2="344" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="174" x2="310" y1="123" y2="123" stroke="rgb(69,69,69)"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="303" x2="310" y1="126" y2="123" stroke="rgb(69,69,69)"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="310" x2="303" y1="123" y2="120" stroke="rgb(69,69,69)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="370" y1="203" y2="219" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="114" y1="219" y2="219" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="114" x2="114" y1="219" y2="243" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath41)" fill="none" x1="111" x2="114" y1="236" y2="243" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath41)" fill="none" x1="114" x2="117" y1="243" y2="236" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="201" x2="287" y1="384" y2="384" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="280" x2="287" y1="387" y2="384" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="287" x2="280" y1="384" y2="381" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="419" y2="459" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="370" x2="373" y1="452" y2="459" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="373" x2="376" y1="459" y2="452" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="60" x2="60" y1="104" y2="135" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="57" x2="60" y1="128" y2="135" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="60" x2="63" y1="135" y2="128" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="60" x2="60" y1="104" y2="135" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="57" x2="60" y1="128" y2="135" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="60" x2="63" y1="135" y2="128" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="174" x2="310" y1="123" y2="123" stroke="rgb(69,69,69)"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="303" x2="310" y1="126" y2="123" stroke="rgb(69,69,69)"/>
+<line clip-path="url(#clipPath40)" fill="none" x1="310" x2="303" y1="123" y2="120" stroke="rgb(69,69,69)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="419" y2="459" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="370" x2="373" y1="452" y2="459" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="373" x2="376" y1="459" y2="452" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="370" y1="203" y2="219" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="114" y1="219" y2="219" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="114" x2="114" y1="219" y2="243" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath41)" fill="none" x1="111" x2="114" y1="236" y2="243" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath41)" fill="none" x1="114" x2="117" y1="243" y2="236" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="205" x2="287" y1="276" y2="276" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath38)" fill="none" x1="280" x2="287" y1="279" y2="276" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath38)" fill="none" x1="287" x2="280" y1="276" y2="273" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="311" y2="331" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="106" y1="331" y2="331" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="106" x2="106" y1="331" y2="351" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath39)" fill="none" x1="103" x2="106" y1="344" y2="351" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath39)" fill="none" x1="106" x2="109" y1="351" y2="344" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath37)" fill="none" x1="201" x2="287" y1="384" y2="384" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="280" x2="287" y1="387" y2="384" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="287" x2="280" y1="384" y2="381" stroke="rgb(136,136,136)"/>
+</g>
+</g>
+</svg>
diff --git a/dox/user_guides/mesh/images/modeling_algos_mesh_002.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_002.svg
new file mode 100644 (file)
index 0000000..c3d8ae5
--- /dev/null
@@ -0,0 +1,715 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="1032" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 1032 595" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="595" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M131 9 L316 9 L316 206 L131 206 L131 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M131 9 L314 9 L314 204 L131 204 L131 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M146 14 L299 14 L299 32 L146 32 L146 14 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M146 14 L302 14 L302 32 L146 32 L146 14 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M136 37 L256 37 L256 55 L136 55 L136 37 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M136 37 L258 37 L258 55 L136 55 L136 37 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M136 53 L233 53 L233 71 L136 71 L136 53 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M136 53 L235 53 L235 71 L136 71 L136 53 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M136 69 L243 69 L243 87 L136 87 L136 69 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M136 69 L245 69 L245 87 L136 87 L136 69 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M136 85 L264 85 L264 103 L136 103 L136 85 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M136 85 L266 85 L266 103 L136 103 L136 85 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M136 101 L271 101 L271 119 L136 119 L136 101 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M136 101 L273 101 L273 119 L136 119 L136 101 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M136 117 L276 117 L276 145 L136 145 L136 117 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M136 117 L278 117 L278 145 L136 145 L136 117 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M136 143 L296 143 L296 171 L136 171 L136 143 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M136 143 L298 143 L298 171 L136 171 L136 143 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M136 169 L286 169 L286 187 L136 187 L136 169 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M136 169 L288 169 L288 187 L136 187 L136 169 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M132 35 L313 35 L313 203 L132 203 L132 35 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M455 44 L745 44 L745 565 L455 565 L455 44 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M455 44 L743 44 L743 563 L455 563 L455 44 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M532 49 L666 49 L666 67 L532 67 L532 49 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M532 49 L669 49 L669 67 L532 67 L532 49 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M460 72 L694 72 L694 90 L460 90 L460 72 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M460 72 L696 72 L696 90 L460 90 L460 72 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M460 88 L552 88 L552 106 L460 106 L460 88 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
+<path d="M460 88 L554 88 L554 106 L460 106 L460 88 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
+<path d="M460 104 L722 104 L722 122 L460 122 L460 104 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
+<path d="M460 104 L724 104 L724 122 L460 122 L460 104 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
+<path d="M460 120 L700 120 L700 138 L460 138 L460 120 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
+<path d="M460 120 L702 120 L702 138 L460 138 L460 120 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
+<path d="M460 136 L705 136 L705 154 L460 154 L460 136 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
+<path d="M460 136 L707 136 L707 154 L460 154 L460 136 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
+<path d="M460 152 L704 152 L704 170 L460 170 L460 152 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
+<path d="M460 152 L706 152 L706 170 L460 170 L460 152 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
+<path d="M460 168 L697 168 L697 186 L460 186 L460 168 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
+<path d="M460 168 L699 168 L699 186 L460 186 L460 168 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
+<path d="M460 184 L710 184 L710 202 L460 202 L460 184 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
+<path d="M460 184 L712 184 L712 202 L460 202 L460 184 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
+<path d="M460 200 L561 200 L561 218 L460 218 L460 200 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
+<path d="M460 200 L563 200 L563 218 L460 218 L460 200 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
+<path d="M460 216 L583 216 L583 234 L460 234 L460 216 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath45">
+<path d="M460 216 L585 216 L585 234 L460 234 L460 216 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath46">
+<path d="M460 232 L547 232 L547 250 L460 250 L460 232 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath47">
+<path d="M460 232 L549 232 L549 250 L460 250 L460 232 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath48">
+<path d="M460 248 L538 248 L538 266 L460 266 L460 248 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath49">
+<path d="M460 248 L540 248 L540 266 L460 266 L460 248 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath50">
+<path d="M460 264 L567 264 L567 282 L460 282 L460 264 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath51">
+<path d="M460 264 L569 264 L569 282 L460 282 L460 264 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath52">
+<path d="M460 280 L543 280 L543 298 L460 298 L460 280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath53">
+<path d="M460 280 L545 280 L545 298 L460 298 L460 280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath54">
+<path d="M460 296 L574 296 L574 314 L460 314 L460 296 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath55">
+<path d="M460 296 L576 296 L576 314 L460 314 L460 296 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath56">
+<path d="M460 312 L564 312 L564 330 L460 330 L460 312 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath57">
+<path d="M460 312 L566 312 L566 330 L460 330 L460 312 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath58">
+<path d="M460 328 L580 328 L580 346 L460 346 L460 328 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath59">
+<path d="M460 328 L582 328 L582 346 L460 346 L460 328 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath60">
+<path d="M460 344 L573 344 L573 362 L460 362 L460 344 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath61">
+<path d="M460 344 L575 344 L575 362 L460 362 L460 344 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath62">
+<path d="M460 360 L575 360 L575 378 L460 378 L460 360 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath63">
+<path d="M460 360 L577 360 L577 378 L460 378 L460 360 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath64">
+<path d="M460 376 L564 376 L564 394 L460 394 L460 376 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath65">
+<path d="M460 376 L566 376 L566 394 L460 394 L460 376 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath66">
+<path d="M460 392 L566 392 L566 410 L460 410 L460 392 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath67">
+<path d="M460 392 L568 392 L568 410 L460 410 L460 392 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath68">
+<path d="M460 408 L569 408 L569 426 L460 426 L460 408 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath69">
+<path d="M460 408 L571 408 L571 426 L460 426 L460 408 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath70">
+<path d="M460 424 L571 424 L571 442 L460 442 L460 424 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath71">
+<path d="M460 424 L573 424 L573 442 L460 442 L460 424 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath72">
+<path d="M460 440 L568 440 L568 458 L460 458 L460 440 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath73">
+<path d="M460 440 L570 440 L570 458 L460 458 L460 440 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath74">
+<path d="M460 456 L570 456 L570 474 L460 474 L460 456 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath75">
+<path d="M460 456 L572 456 L572 474 L460 474 L460 456 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath76">
+<path d="M460 472 L561 472 L561 490 L460 490 L460 472 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath77">
+<path d="M460 472 L563 472 L563 490 L460 490 L460 472 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath78">
+<path d="M460 488 L563 488 L563 506 L460 506 L460 488 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath79">
+<path d="M460 488 L565 488 L565 506 L460 506 L460 488 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath80">
+<path d="M460 504 L574 504 L574 522 L460 522 L460 504 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath81">
+<path d="M460 504 L576 504 L576 522 L460 522 L460 504 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath82">
+<path d="M460 520 L576 520 L576 538 L460 538 L460 520 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath83">
+<path d="M460 520 L578 520 L578 538 L460 538 L460 520 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath84">
+<path d="M460 536 L516 536 L516 554 L460 554 L460 536 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath85">
+<path d="M460 536 L518 536 L518 554 L460 554 L460 536 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath86">
+<path d="M456 70 L742 70 L742 562 L456 562 L456 70 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath87">
+<path d="M131 225 L316 225 L316 315 L131 315 L131 225 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath88">
+<path d="M131 225 L314 225 L314 313 L131 313 L131 225 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath89">
+<path d="M140 230 L304 230 L304 248 L140 248 L140 230 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath90">
+<path d="M140 230 L307 230 L307 248 L140 248 L140 230 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath91">
+<path d="M136 253 L292 253 L292 281 L136 281 L136 253 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath92">
+<path d="M136 253 L294 253 L294 281 L136 281 L136 253 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath93">
+<path d="M132 251 L313 251 L313 312 L132 312 L132 251 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath94">
+<path d="M131 333 L316 333 L316 423 L131 423 L131 333 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath95">
+<path d="M131 333 L314 333 L314 421 L131 421 L131 333 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath96">
+<path d="M148 338 L297 338 L297 356 L148 356 L148 338 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath97">
+<path d="M148 338 L300 338 L300 356 L148 356 L148 338 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath98">
+<path d="M136 361 L308 361 L308 389 L136 389 L136 361 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath99">
+<path d="M136 361 L310 361 L310 389 L136 389 L136 361 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath100">
+<path d="M132 359 L313 359 L313 420 L132 420 L132 359 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath101">
+<path d="M131 441 L316 441 L316 586 L131 586 L131 441 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath102">
+<path d="M131 441 L314 441 L314 584 L131 584 L131 441 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath103">
+<path d="M162 446 L283 446 L283 464 L162 464 L162 446 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath104">
+<path d="M162 446 L286 446 L286 464 L162 464 L162 446 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath105">
+<path d="M136 469 L222 469 L222 487 L136 487 L136 469 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath106">
+<path d="M136 469 L224 469 L224 487 L136 487 L136 469 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath107">
+<path d="M136 485 L206 485 L206 503 L136 503 L136 485 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath108">
+<path d="M136 485 L208 485 L208 503 L136 503 L136 485 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath109">
+<path d="M136 501 L207 501 L207 519 L136 519 L136 501 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath110">
+<path d="M136 501 L209 501 L209 519 L136 519 L136 501 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath111">
+<path d="M136 517 L204 517 L204 535 L136 535 L136 517 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath112">
+<path d="M136 517 L206 517 L206 535 L136 535 L136 517 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath113">
+<path d="M136 533 L209 533 L209 551 L136 551 L136 533 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath114">
+<path d="M136 533 L211 533 L211 551 L136 551 L136 533 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath115">
+<path d="M136 549 L210 549 L210 567 L136 567 L136 549 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath116">
+<path d="M136 549 L212 549 L212 567 L136 567 L136 549 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath117">
+<path d="M136 565 L207 565 L207 583 L136 583 L136 565 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath118">
+<path d="M136 565 L209 565 L209 583 L136 583 L136 565 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath119">
+<path d="M132 467 L313 467 L313 583 L132 583 L132 467 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath120">
+<path d="M851 105 L1023 105 L1023 207 L851 207 L851 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath121">
+<path d="M851 105 L1021 105 L1021 205 L851 205 L851 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath122">
+<path d="M856 110 L1015 110 L1015 128 L856 128 L856 110 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath123">
+<path d="M856 110 L1018 110 L1018 128 L856 128 L856 110 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath124">
+<path d="M856 133 L939 133 L939 151 L856 151 L856 133 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath125">
+<path d="M856 133 L941 133 L941 151 L856 151 L856 133 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath126">
+<path d="M856 149 L941 149 L941 167 L856 167 L856 149 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath127">
+<path d="M856 149 L943 149 L943 167 L856 167 L856 149 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath128">
+<path d="M856 165 L923 165 L923 183 L856 183 L856 165 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath129">
+<path d="M856 165 L925 165 L925 183 L856 183 L856 165 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath130">
+<path d="M852 131 L1020 131 L1020 204 L852 204 L852 131 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath131">
+<path d="M-1 -1 L1033 -1 L1033 596 L-1 596 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath132">
+<path d="M58 177 L113 177 L113 192 L58 192 L58 177 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath133">
+<path d="M124 128 L134 128 L134 137 L124 137 L124 128 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath134">
+<path d="M22 211 L77 211 L77 226 L22 226 L22 211 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath135">
+<path d="M124 86 L134 86 L134 95 L124 95 L124 86 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath136">
+<path d="M22 436 L77 436 L77 451 L22 451 L22 436 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath137">
+<path d="M124 510 L134 510 L134 519 L124 519 L124 510 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath138">
+<path d="M363 129 L401 129 L401 144 L363 144 L363 129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath139">
+<path d="M406 105 L460 105 L460 120 L406 120 L406 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath140">
+<path d="M311 105 L384 105 L384 120 L311 120 L311 105 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath141">
+<path d="M443 121 L458 121 L458 130 L443 130 L443 121 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath142">
+<path d="M312 121 L322 121 L322 130 L312 130 L312 121 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath143">
+<path d="M366 271 L404 271 L404 286 L366 286 L366 271 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath144">
+<path d="M409 251 L463 251 L463 266 L409 266 L409 251 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath145">
+<path d="M309 251 L362 251 L362 266 L309 266 L309 251 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath146">
+<path d="M443 264 L458 264 L458 273 L443 273 L443 264 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath147">
+<path d="M312 264 L322 264 L322 273 L312 273 L312 264 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath148">
+<path d="M366 504 L404 504 L404 519 L366 519 L366 504 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath149">
+<path d="M409 484 L463 484 L463 499 L409 499 L409 484 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath150">
+<path d="M311 484 L359 484 L359 499 L311 499 L311 484 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath151">
+<path d="M443 497 L458 497 L458 506 L443 506 L443 497 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath152">
+<path d="M312 497 L322 497 L322 506 L312 506 L312 497 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath153">
+<path d="M366 379 L404 379 L404 394 L366 394 L366 379 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath154">
+<path d="M409 359 L463 359 L463 374 L409 374 L409 359 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath155">
+<path d="M317 359 L356 359 L356 374 L317 374 L317 359 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath156">
+<path d="M443 372 L458 372 L458 381 L443 381 L443 372 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath157">
+<path d="M312 372 L322 372 L322 381 L312 381 L312 372 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath158">
+<path d="M771 163 L826 163 L826 178 L771 178 L771 163 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath159">
+<path d="M741 156 L751 156 L751 165 L741 165 L741 156 Z"/>
+</clipPath>
+</defs>
+<g fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="rgb(131,122,133)" font-weight="bold" stroke-width="0" stroke-miterlimit="0">
+<rect x="133" y="11" clip-path="url(#clipPath1)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="193" stroke="none"/>
+<rect x="134" y="12" clip-path="url(#clipPath1)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="193" stroke="none"/>
+<rect x="132" y="10" clip-path="url(#clipPath2)" fill="white" width="181" rx="2.5" ry="2.5" height="193" stroke="none"/>
+</g>
+<g stroke-linecap="butt" fill="rgb(77,137,20)" font-family="'Segoe UI'" stroke="rgb(77,137,20)" font-weight="bold" stroke-width="1.1">
+<rect x="132" y="10" clip-path="url(#clipPath2)" fill="none" width="180" rx="2.5" ry="2.5" height="192"/>
+<image x="147" y="15" clip-path="url(#clipPath3)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSUlEQVR42mNgGGjA&#13;&#10;CCIKFhz5/+DJJyj3PxAyQiQYkdggmf8IjYoyvAwTEmwYWUCc+48/MUxMswNrBhnC&#13;&#10;CNUB4QEN+c8INhtoHlSMgSF31kGwGrAB//7+Y+BgYwZrOXHjMYOFuhyDk2cB3La9&#13;&#10;O/rB9EmQnIYsxIh/EOcwwRSxMDOBNdc1r2FgYYE44dDuiWDs7FHIwAaUB8mB1IDU&#13;&#10;wgCcxcrMCFZweHUpkM0EFWOCs0GaQHJgC5gZMQ0ACTbVhjDYhnbDFbCwMCHYQBok&#13;&#10;B1LDiuQCFljwgmzwNFFhYAAqgDnR1C4bTJ8/Mg1MgzSD1ICM/AcNAxaI/n8MzExM&#13;&#10;4LDxMVMFK7h0bAYkBiAxCxbzNVODR8X//0gGgIB/w0ZopCFIWFQiJxpIygCyoXEN&#13;&#10;N2BphRdJKTCmcztqIJILwC5QURKGm0gsAOkZHAAAeQpotyJG88kAAAAASUVORK5C&#13;&#10;YII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="166" y="28" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">IMeshTools_Parameters</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="137" y="38" clip-path="url(#clipPath5)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="51" clip-path="url(#clipPath6)" stroke="none">Deflection : Real [1]</text>
+<image x="137" y="54" clip-path="url(#clipPath7)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="67" clip-path="url(#clipPath8)" stroke="none">Angle : Real [1]</text>
+<image x="137" y="70" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="83" clip-path="url(#clipPath10)" stroke="none">MinSize : Real [1]</text>
+<image x="137" y="86" clip-path="url(#clipPath11)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="99" clip-path="url(#clipPath12)" stroke="none">Relative : Boolean [1]</text>
+<image x="137" y="102" clip-path="url(#clipPath13)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="115" clip-path="url(#clipPath14)" stroke="none">InParallel : Boolean [1]</text>
+<image x="137" y="123" clip-path="url(#clipPath15)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="130" clip-path="url(#clipPath16)" stroke="none">InternalVerticesMode : </text>
+<text xml:space="preserve" x="156" y="143" clip-path="url(#clipPath16)" stroke="none">Boolean [1]</text>
+<image x="137" y="149" clip-path="url(#clipPath17)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="156" clip-path="url(#clipPath18)" stroke="none">ControlSurfaceDeflection : </text>
+<text xml:space="preserve" x="156" y="169" clip-path="url(#clipPath18)" stroke="none">Boolean [1]</text>
+<image x="137" y="170" clip-path="url(#clipPath19)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="183" clip-path="url(#clipPath20)" stroke="none">CleanModel : Boolean [1]</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(77,137,20)" font-family="'Segoe UI'" stroke="rgb(77,137,20)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath21)" fill="none" x1="133" x2="312" y1="36" y2="36"/>
+<rect x="457" y="46" clip-path="url(#clipPath22)" fill="rgb(131,122,133)" width="286" rx="2.5" opacity="0.2549" ry="2.5" height="517" stroke="none"/>
+<rect x="458" y="47" clip-path="url(#clipPath22)" fill="rgb(131,122,133)" width="286" rx="2.5" opacity="0.2549" ry="2.5" height="517" stroke="none"/>
+<rect x="456" y="45" clip-path="url(#clipPath23)" fill="white" width="286" rx="2.5" ry="2.5" height="517" stroke="none"/>
+<rect x="456" y="45" clip-path="url(#clipPath23)" fill="none" width="285" rx="2.5" ry="2.5" height="516" stroke="rgb(173,127,168)"/>
+<image stroke="rgb(173,127,168)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(173,127,168)" clip-path="url(#clipPath24)" preserveAspectRatio="none" height="16" x="533" y="50" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:actuate="onLoad"/>
+<text x="552" y="63" clip-path="url(#clipPath25)" fill="black" stroke="none" xml:space="preserve">IMeshTools_Context</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="461" y="73" clip-path="url(#clipPath26)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="86" clip-path="url(#clipPath27)" stroke="none">myParameters : IMeshTools_Parameters [1]</text>
+<image x="461" y="89" clip-path="url(#clipPath28)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="102" clip-path="url(#clipPath29)" stroke="none">myModel :  [1]</text>
+<image x="461" y="105" clip-path="url(#clipPath30)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="118" clip-path="url(#clipPath31)" stroke="none">myModelBuilder : IMeshTools_ModelBuilder [1]</text>
+<image x="461" y="121" clip-path="url(#clipPath32)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="134" clip-path="url(#clipPath33)" stroke="none">myEdgeDiscret : IMeshTools_ModelAlgo [1]</text>
+<image x="461" y="137" clip-path="url(#clipPath34)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="150" clip-path="url(#clipPath35)" stroke="none">myModelHealer : IMeshTools_ModelAlgo [1]</text>
+<image x="461" y="153" clip-path="url(#clipPath36)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="166" clip-path="url(#clipPath37)" stroke="none">myPreProcessor : IMeshTools_ModelAlgo [1]</text>
+<image x="461" y="169" clip-path="url(#clipPath38)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="182" clip-path="url(#clipPath39)" stroke="none">myFaceDiscret : IMeshTools_ModelAlgo [1]</text>
+<image x="461" y="185" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="198" clip-path="url(#clipPath41)" stroke="none">myPostProcessor : IMeshTools_ModelAlgo [1]</text>
+<image x="461" y="201" clip-path="url(#clipPath42)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="214" clip-path="url(#clipPath43)" stroke="none">GetParameters()</text>
+<image x="461" y="217" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="230" clip-path="url(#clipPath45)" stroke="none">ChangeParameters()</text>
+<image x="461" y="233" clip-path="url(#clipPath46)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="246" clip-path="url(#clipPath47)" stroke="none">BuildModel()</text>
+<image x="461" y="249" clip-path="url(#clipPath48)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="262" clip-path="url(#clipPath49)" stroke="none">GetModel()</text>
+<image x="461" y="265" clip-path="url(#clipPath50)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="278" clip-path="url(#clipPath51)" stroke="none">DiscretizeEdges()</text>
+<image x="461" y="281" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="294" clip-path="url(#clipPath53)" stroke="none">HealModel()</text>
+<image x="461" y="297" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="310" clip-path="url(#clipPath55)" stroke="none">PreProcessModel()</text>
+<image x="461" y="313" clip-path="url(#clipPath56)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="326" clip-path="url(#clipPath57)" stroke="none">DiscretizeFaces()</text>
+<image x="461" y="329" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="342" clip-path="url(#clipPath59)" stroke="none">PostProcessModel()</text>
+<image x="461" y="345" clip-path="url(#clipPath60)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="358" clip-path="url(#clipPath61)" stroke="none">SetModelBuilder()</text>
+<image x="461" y="361" clip-path="url(#clipPath62)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="374" clip-path="url(#clipPath63)" stroke="none">GetModelBuilder()</text>
+<image x="461" y="377" clip-path="url(#clipPath64)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="390" clip-path="url(#clipPath65)" stroke="none">SetEdgeDiscret()</text>
+<image x="461" y="393" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="406" clip-path="url(#clipPath67)" stroke="none">GetEdgeDiscret()</text>
+<image x="461" y="409" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="422" clip-path="url(#clipPath69)" stroke="none">SetModelHealer()</text>
+<image x="461" y="425" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="438" clip-path="url(#clipPath71)" stroke="none">GetModelHealer()</text>
+<image x="461" y="441" clip-path="url(#clipPath72)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="454" clip-path="url(#clipPath73)" stroke="none">SetPreProcessor()</text>
+<image x="461" y="457" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="470" clip-path="url(#clipPath75)" stroke="none">GetPreProcessor()</text>
+<image x="461" y="473" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="486" clip-path="url(#clipPath77)" stroke="none">SetFaceDiscret()</text>
+<image x="461" y="489" clip-path="url(#clipPath78)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="502" clip-path="url(#clipPath79)" stroke="none">GetFaceDiscret()</text>
+<image x="461" y="505" clip-path="url(#clipPath80)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="518" clip-path="url(#clipPath81)" stroke="none">SetPostProcessor()</text>
+<image x="461" y="521" clip-path="url(#clipPath82)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="534" clip-path="url(#clipPath83)" stroke="none">GetPostProcessor()</text>
+<image x="461" y="537" clip-path="url(#clipPath84)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="480" y="550" clip-path="url(#clipPath85)" stroke="none">Clean()</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath86)" fill="none" x1="457" x2="741" y1="71" y2="71"/>
+<rect x="133" y="227" clip-path="url(#clipPath87)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
+<rect x="134" y="228" clip-path="url(#clipPath87)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
+<rect x="132" y="226" clip-path="url(#clipPath88)" fill="white" width="181" rx="2.5" ry="2.5" height="86" stroke="none"/>
+<rect x="132" y="226" clip-path="url(#clipPath88)" fill="none" width="180" rx="2.5" ry="2.5" height="85"/>
+<image x="141" y="231" clip-path="url(#clipPath89)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="160" y="244" clip-path="url(#clipPath90)" fill="black" stroke="none" xml:space="preserve">IMeshTools_ModelBuilder</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="137" y="259" clip-path="url(#clipPath91)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="266" clip-path="url(#clipPath92)" stroke="none">Perform(TopoDS_Shape : , </text>
+<text xml:space="preserve" x="156" y="279" clip-path="url(#clipPath92)" stroke="none">IMeshTools_Parameter : )</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath93)" fill="none" x1="133" x2="312" y1="252" y2="252"/>
+<rect x="133" y="335" clip-path="url(#clipPath94)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
+<rect x="134" y="336" clip-path="url(#clipPath94)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
+<rect x="132" y="334" clip-path="url(#clipPath95)" fill="white" width="181" rx="2.5" ry="2.5" height="86" stroke="none"/>
+<rect x="132" y="334" clip-path="url(#clipPath95)" fill="none" width="180" rx="2.5" ry="2.5" height="85"/>
+<image x="149" y="339" clip-path="url(#clipPath96)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="168" y="352" clip-path="url(#clipPath97)" fill="black" stroke="none" xml:space="preserve">IMeshTools_ModelAlgo</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="137" y="367" clip-path="url(#clipPath98)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="374" clip-path="url(#clipPath99)" stroke="none">Perform(IMeshData_Model : , </text>
+<text xml:space="preserve" x="156" y="387" clip-path="url(#clipPath99)" stroke="none">IMeshTools_Parameters : )</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath100)" fill="none" x1="133" x2="312" y1="360" y2="360"/>
+<rect x="133" y="443" clip-path="url(#clipPath101)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="141" stroke="none"/>
+<rect x="134" y="444" clip-path="url(#clipPath101)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="141" stroke="none"/>
+<rect x="132" y="442" clip-path="url(#clipPath102)" fill="white" width="181" rx="2.5" ry="2.5" height="141" stroke="none"/>
+<rect x="132" y="442" clip-path="url(#clipPath102)" fill="none" width="180" rx="2.5" ry="2.5" height="140"/>
+<image x="163" y="447" clip-path="url(#clipPath103)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="182" y="460" clip-path="url(#clipPath104)" fill="black" stroke="none" xml:space="preserve">IMeshData_Model</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="137" y="470" clip-path="url(#clipPath105)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="483" clip-path="url(#clipPath106)" stroke="none">GetMaxSize()</text>
+<image x="137" y="486" clip-path="url(#clipPath107)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="499" clip-path="url(#clipPath108)" stroke="none">FacesNb()</text>
+<image x="137" y="502" clip-path="url(#clipPath109)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="515" clip-path="url(#clipPath110)" stroke="none">AddFace()</text>
+<image x="137" y="518" clip-path="url(#clipPath111)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="531" clip-path="url(#clipPath112)" stroke="none">GetFace()</text>
+<image x="137" y="534" clip-path="url(#clipPath113)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="547" clip-path="url(#clipPath114)" stroke="none">EdgesNb()</text>
+<image x="137" y="550" clip-path="url(#clipPath115)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="563" clip-path="url(#clipPath116)" stroke="none">AddEdge()</text>
+<image x="137" y="566" clip-path="url(#clipPath117)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="156" y="579" clip-path="url(#clipPath118)" stroke="none">GetEdge()</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath119)" fill="none" x1="133" x2="312" y1="468" y2="468"/>
+<rect x="853" y="107" clip-path="url(#clipPath120)" fill="rgb(131,122,133)" width="168" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="854" y="108" clip-path="url(#clipPath120)" fill="rgb(131,122,133)" width="168" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="852" y="106" clip-path="url(#clipPath121)" fill="white" width="168" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="852" y="106" clip-path="url(#clipPath121)" fill="none" width="167" rx="2.5" ry="2.5" height="97"/>
+<image x="857" y="111" clip-path="url(#clipPath122)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="876" y="124" clip-path="url(#clipPath123)" fill="black" stroke="none" xml:space="preserve">IMeshTools_MeshBuilder</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="857" y="134" clip-path="url(#clipPath124)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="876" y="147" clip-path="url(#clipPath125)" stroke="none">SetContext()</text>
+<image x="857" y="150" clip-path="url(#clipPath126)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="876" y="163" clip-path="url(#clipPath127)" stroke="none">GetContext()</text>
+<image x="857" y="166" clip-path="url(#clipPath128)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="876" y="179" clip-path="url(#clipPath129)" stroke="none">Perform()</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath130)" fill="none" x1="853" x2="1019" y1="132" y2="132"/>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(136,136,136)" font-family="'Segoe UI'" stroke-dasharray="5,5" stroke="rgb(136,136,136)" stroke-width="1.1">
+<line clip-path="url(#clipPath131)" fill="none" x1="132" x2="84" y1="268" y2="268"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="84" x2="84" y1="268" y2="132"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="84" x2="132" y1="132" y2="132"/>
+<text x="59" y="190" clip-path="url(#clipPath132)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath133)" fill="none" x1="125" x2="132" y1="135" y2="132" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath133)" fill="none" x1="132" x2="125" y1="132" y2="129" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="132" x2="48" y1="370" y2="370"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="48" y1="370" y2="90"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="132" y1="90" y2="90"/>
+<text x="23" y="224" clip-path="url(#clipPath134)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath135)" fill="none" x1="125" x2="132" y1="93" y2="90" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath135)" fill="none" x1="132" x2="125" y1="90" y2="87" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="132" x2="48" y1="390" y2="390"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="48" y1="390" y2="514"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="132" y1="514" y2="514"/>
+<text x="23" y="449" clip-path="url(#clipPath136)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath137)" fill="none" x1="125" x2="132" y1="517" y2="514" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath137)" fill="none" x1="132" x2="125" y1="514" y2="511" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="125" y2="125" stroke-dasharray="none"/>
+<text x="364" y="142" clip-path="url(#clipPath138)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
+<text x="407" y="118" clip-path="url(#clipPath139)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
+<text x="312" y="118" clip-path="url(#clipPath140)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">parameters[1]</text>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath141)" points=" 456 125 450 128 444 125 450 122" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath141)" points=" 456 125 450 128 444 125 450 122"/>
+<line clip-path="url(#clipPath142)" fill="none" x1="320" x2="313" y1="122" y2="125" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath142)" fill="none" x1="313" x2="320" y1="125" y2="128" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="268" y2="268" stroke-dasharray="none"/>
+<text x="367" y="284" clip-path="url(#clipPath143)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
+<text x="410" y="264" clip-path="url(#clipPath144)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
+<text x="310" y="264" clip-path="url(#clipPath145)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">builder[1]</text>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath146)" points=" 456 268 450 271 444 268 450 265" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath146)" points=" 456 268 450 271 444 268 450 265"/>
+<line clip-path="url(#clipPath147)" fill="none" x1="320" x2="313" y1="265" y2="268" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath147)" fill="none" x1="313" x2="320" y1="268" y2="271" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="501" y2="501" stroke-dasharray="none"/>
+<text x="367" y="517" clip-path="url(#clipPath148)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
+<text x="410" y="497" clip-path="url(#clipPath149)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
+<text x="312" y="497" clip-path="url(#clipPath150)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">model[1]</text>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath151)" points=" 456 501 450 504 444 501 450 498" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath151)" points=" 456 501 450 504 444 501 450 498"/>
+<line clip-path="url(#clipPath152)" fill="none" x1="320" x2="313" y1="498" y2="501" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath152)" fill="none" x1="313" x2="320" y1="501" y2="504" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="376" y2="376" stroke-dasharray="none"/>
+<text x="367" y="392" clip-path="url(#clipPath153)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
+<text x="410" y="372" clip-path="url(#clipPath154)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
+<text x="318" y="372" clip-path="url(#clipPath155)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">algo[5]</text>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath156)" points=" 456 376 450 379 444 376 450 373" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath156)" points=" 456 376 450 379 444 376 450 373"/>
+<line clip-path="url(#clipPath157)" fill="none" x1="320" x2="313" y1="373" y2="376" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath157)" fill="none" x1="313" x2="320" y1="376" y2="379" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="852" x2="742" y1="160" y2="160"/>
+<text x="772" y="176" clip-path="url(#clipPath158)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath159)" fill="none" x1="749" x2="742" y1="157" y2="160" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath159)" fill="none" x1="742" x2="749" y1="160" y2="163" stroke-dasharray="none"/>
+</g>
+</g>
+</svg>
diff --git a/dox/user_guides/mesh/images/modeling_algos_mesh_003.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_003.svg
new file mode 100644 (file)
index 0000000..78b14e9
--- /dev/null
@@ -0,0 +1,5085 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   shape-rendering="auto"
+   width="889.54999"
+   text-rendering="auto"
+   contentScriptType="text/ecmascript"
+   color-interpolation="auto"
+   color-rendering="auto"
+   preserveAspectRatio="xMidYMid meet"
+   font-size="12"
+   viewBox="0 0 889.54999 913.09998"
+   image-rendering="auto"
+   stroke-miterlimit="10"
+   zoomAndPan="magnify"
+   version="1.0"
+   contentStyleType="text/css"
+   font-style="normal"
+   height="913.09998"
+   font-weight="normal"
+   id="svg2"
+   inkscape:version="0.48.0 r9654"
+   sodipodi:docname="modeling_algos_mesh_003.svg"
+   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog">
+  <metadata
+     id="metadata1250">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1028"
+     id="namedview1248"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="0.68480471"
+     inkscape:cx="164.85375"
+     inkscape:cy="906.86367"
+     inkscape:window-x="1912"
+     inkscape:window-y="13"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g1054" />
+  <!--Generated by the Batik Graphics2D SVG Generator-->
+  <defs
+     id="genericDefs" />
+  <g
+     id="g5"
+     transform="translate(-9.45,-141.45)">
+    <defs
+       id="defs1">
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath1">
+        <path
+           d="m 214,141 149,0 0,102 -149,0 0,-102 z"
+           id="path9"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath2">
+        <path
+           d="m 214,141 147,0 0,100 -147,0 0,-100 z"
+           id="path12"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath3">
+        <path
+           d="m 227,146 120,0 0,18 -120,0 0,-18 z"
+           id="path15"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath4">
+        <path
+           d="m 227,146 123,0 0,18 -123,0 0,-18 z"
+           id="path18"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath5">
+        <path
+           d="m 219,169 113,0 0,28 -113,0 0,-28 z"
+           id="path21"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath6">
+        <path
+           d="m 219,169 115,0 0,28 -115,0 0,-28 z"
+           id="path24"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath7">
+        <path
+           d="m 219,195 75,0 0,18 -75,0 0,-18 z"
+           id="path27"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath8">
+        <path
+           d="m 219,195 77,0 0,18 -77,0 0,-18 z"
+           id="path30"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath9">
+        <path
+           d="m 219,211 77,0 0,18 -77,0 0,-18 z"
+           id="path33"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath10">
+        <path
+           d="m 219,211 79,0 0,18 -79,0 0,-18 z"
+           id="path36"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath11">
+        <path
+           d="m 215,167 145,0 0,73 -145,0 0,-73 z"
+           id="path39"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath12">
+        <path
+           d="m 9,297 186,0 0,149 -186,0 0,-149 z"
+           id="path42"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath13">
+        <path
+           d="m 9,297 184,0 0,147 -184,0 0,-147 z"
+           id="path45"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath14">
+        <path
+           d="m 40,302 121,0 0,18 -121,0 0,-18 z"
+           id="path48"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath15">
+        <path
+           d="m 40,302 124,0 0,18 -124,0 0,-18 z"
+           id="path51"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath16">
+        <path
+           d="m 14,325 86,0 0,18 -86,0 0,-18 z"
+           id="path54"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath17">
+        <path
+           d="m 14,325 88,0 0,18 -88,0 0,-18 z"
+           id="path57"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath18">
+        <path
+           d="m 14,341 70,0 0,18 -70,0 0,-18 z"
+           id="path60"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath19">
+        <path
+           d="m 14,341 72,0 0,18 -72,0 0,-18 z"
+           id="path63"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath20">
+        <path
+           d="m 14,357 71,0 0,18 -71,0 0,-18 z"
+           id="path66"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath21">
+        <path
+           d="m 14,357 73,0 0,18 -73,0 0,-18 z"
+           id="path69"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath22">
+        <path
+           d="m 14,373 68,0 0,18 -68,0 0,-18 z"
+           id="path72"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath23">
+        <path
+           d="m 14,373 70,0 0,18 -70,0 0,-18 z"
+           id="path75"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath24">
+        <path
+           d="m 14,389 73,0 0,18 -73,0 0,-18 z"
+           id="path78"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath25">
+        <path
+           d="m 14,389 75,0 0,18 -75,0 0,-18 z"
+           id="path81"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath26">
+        <path
+           d="m 14,405 74,0 0,18 -74,0 0,-18 z"
+           id="path84"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath27">
+        <path
+           d="m 14,405 76,0 0,18 -76,0 0,-18 z"
+           id="path87"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath28">
+        <path
+           d="m 14,421 71,0 0,18 -71,0 0,-18 z"
+           id="path90"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath29">
+        <path
+           d="m 14,421 73,0 0,18 -73,0 0,-18 z"
+           id="path93"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath30">
+        <path
+           d="m 10,323 182,0 0,120 -182,0 0,-120 z"
+           id="path96"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath31">
+        <path
+           d="m 370,357 197,0 0,126 -197,0 0,-126 z"
+           id="path99"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath32">
+        <path
+           d="m 370,357 195,0 0,124 -195,0 0,-124 z"
+           id="path102"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath33">
+        <path
+           d="m 376,362 182,0 0,18 -182,0 0,-18 z"
+           id="path105"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath34">
+        <path
+           d="m 376,362 185,0 0,18 -185,0 0,-18 z"
+           id="path108"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath35">
+        <path
+           d="m 375,385 96,0 0,18 -96,0 0,-18 z"
+           id="path111"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath36">
+        <path
+           d="m 375,385 98,0 0,18 -98,0 0,-18 z"
+           id="path114"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath37">
+        <path
+           d="m 375,401 98,0 0,18 -98,0 0,-18 z"
+           id="path117"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath38">
+        <path
+           d="m 375,401 100,0 0,18 -100,0 0,-18 z"
+           id="path120"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath39">
+        <path
+           d="m 371,383 193,0 0,97 -193,0 0,-97 z"
+           id="path123"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath40">
+        <path
+           d="m 238,513 161,0 0,293 -161,0 0,-293 z"
+           id="path126"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath41">
+        <path
+           d="m 238,513 159,0 0,291 -159,0 0,-291 z"
+           id="path129"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath42">
+        <path
+           d="m 261,518 113,0 0,18 -113,0 0,-18 z"
+           id="path132"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath43">
+        <path
+           d="m 261,518 116,0 0,18 -116,0 0,-18 z"
+           id="path135"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath44">
+        <path
+           d="m 243,541 71,0 0,18 -71,0 0,-18 z"
+           id="path138"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath45">
+        <path
+           d="m 243,541 73,0 0,18 -73,0 0,-18 z"
+           id="path141"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath46">
+        <path
+           d="m 243,557 72,0 0,18 -72,0 0,-18 z"
+           id="path144"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath47">
+        <path
+           d="m 243,557 74,0 0,18 -74,0 0,-18 z"
+           id="path147"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath48">
+        <path
+           d="m 243,573 74,0 0,18 -74,0 0,-18 z"
+           id="path150"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath49">
+        <path
+           d="m 243,573 76,0 0,18 -76,0 0,-18 z"
+           id="path153"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath50">
+        <path
+           d="m 243,589 82,0 0,18 -82,0 0,-18 z"
+           id="path156"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath51">
+        <path
+           d="m 243,589 84,0 0,18 -84,0 0,-18 z"
+           id="path159"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath52">
+        <path
+           d="m 243,605 83,0 0,18 -83,0 0,-18 z"
+           id="path162"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath53">
+        <path
+           d="m 243,605 85,0 0,18 -85,0 0,-18 z"
+           id="path165"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath54">
+        <path
+           d="m 243,621 80,0 0,18 -80,0 0,-18 z"
+           id="path168"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath55">
+        <path
+           d="m 243,621 82,0 0,18 -82,0 0,-18 z"
+           id="path171"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath56">
+        <path
+           d="m 243,637 53,0 0,18 -53,0 0,-18 z"
+           id="path174"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath57">
+        <path
+           d="m 243,637 55,0 0,18 -55,0 0,-18 z"
+           id="path177"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath58">
+        <path
+           d="m 243,653 57,0 0,18 -57,0 0,-18 z"
+           id="path180"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath59">
+        <path
+           d="m 243,653 59,0 0,18 -59,0 0,-18 z"
+           id="path183"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath60">
+        <path
+           d="m 243,669 139,0 0,18 -139,0 0,-18 z"
+           id="path186"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath61">
+        <path
+           d="m 243,669 141,0 0,18 -141,0 0,-18 z"
+           id="path189"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath62">
+        <path
+           d="m 243,685 137,0 0,18 -137,0 0,-18 z"
+           id="path192"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath63">
+        <path
+           d="m 243,685 139,0 0,18 -139,0 0,-18 z"
+           id="path195"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath64">
+        <path
+           d="m 243,701 101,0 0,18 -101,0 0,-18 z"
+           id="path198"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath65">
+        <path
+           d="m 243,701 103,0 0,18 -103,0 0,-18 z"
+           id="path201"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath66">
+        <path
+           d="m 243,717 103,0 0,18 -103,0 0,-18 z"
+           id="path204"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath67">
+        <path
+           d="m 243,717 105,0 0,18 -105,0 0,-18 z"
+           id="path207"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath68">
+        <path
+           d="m 243,733 103,0 0,18 -103,0 0,-18 z"
+           id="path210"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath69">
+        <path
+           d="m 243,733 105,0 0,18 -105,0 0,-18 z"
+           id="path213"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath70">
+        <path
+           d="m 243,749 105,0 0,18 -105,0 0,-18 z"
+           id="path216"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath71">
+        <path
+           d="m 243,749 108,0 0,18 -108,0 0,-18 z"
+           id="path219"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath72">
+        <path
+           d="m 243,765 110,0 0,18 -110,0 0,-18 z"
+           id="path222"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath73">
+        <path
+           d="m 243,765 112,0 0,18 -112,0 0,-18 z"
+           id="path225"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath74">
+        <path
+           d="m 243,781 112,0 0,18 -112,0 0,-18 z"
+           id="path228"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath75">
+        <path
+           d="m 243,781 114,0 0,18 -114,0 0,-18 z"
+           id="path231"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath76">
+        <path
+           d="m 239,539 157,0 0,264 -157,0 0,-264 z"
+           id="path234"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath77">
+        <path
+           d="m 514,513 149,0 0,125 -149,0 0,-125 z"
+           id="path237"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath78">
+        <path
+           d="m 514,513 147,0 0,123 -147,0 0,-123 z"
+           id="path240"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath79">
+        <path
+           d="m 531,518 113,0 0,18 -113,0 0,-18 z"
+           id="path243"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath80">
+        <path
+           d="m 531,518 116,0 0,18 -116,0 0,-18 z"
+           id="path246"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath81">
+        <path
+           d="m 519,541 69,0 0,18 -69,0 0,-18 z"
+           id="path249"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath82">
+        <path
+           d="m 519,541 71,0 0,18 -71,0 0,-18 z"
+           id="path252"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath83">
+        <path
+           d="m 519,557 73,0 0,18 -73,0 0,-18 z"
+           id="path255"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath84">
+        <path
+           d="m 519,557 75,0 0,18 -75,0 0,-18 z"
+           id="path258"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath85">
+        <path
+           d="m 519,573 74,0 0,18 -74,0 0,-18 z"
+           id="path261"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath86">
+        <path
+           d="m 519,573 76,0 0,18 -76,0 0,-18 z"
+           id="path264"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath87">
+        <path
+           d="m 519,589 71,0 0,18 -71,0 0,-18 z"
+           id="path267"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath88">
+        <path
+           d="m 519,589 73,0 0,18 -73,0 0,-18 z"
+           id="path270"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath89">
+        <path
+           d="m 519,605 131,0 0,18 -131,0 0,-18 z"
+           id="path273"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath90">
+        <path
+           d="m 519,605 133,0 0,18 -133,0 0,-18 z"
+           id="path276"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath91">
+        <path
+           d="m 515,539 145,0 0,96 -145,0 0,-96 z"
+           id="path279"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath92">
+        <path
+           d="m 778,513 122,0 0,137 -122,0 0,-137 z"
+           id="path282"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath93">
+        <path
+           d="m 778,513 120,0 0,135 -120,0 0,-135 z"
+           id="path285"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath94">
+        <path
+           d="m 782,518 111,0 0,18 -111,0 0,-18 z"
+           id="path288"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath95">
+        <path
+           d="m 782,518 114,0 0,18 -114,0 0,-18 z"
+           id="path291"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath96">
+        <path
+           d="m 783,541 68,0 0,18 -68,0 0,-18 z"
+           id="path294"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath97">
+        <path
+           d="m 783,541 70,0 0,18 -70,0 0,-18 z"
+           id="path297"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath98">
+        <path
+           d="m 783,557 71,0 0,18 -71,0 0,-18 z"
+           id="path300"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath99">
+        <path
+           d="m 783,557 73,0 0,18 -73,0 0,-18 z"
+           id="path303"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath100">
+        <path
+           d="m 783,573 72,0 0,18 -72,0 0,-18 z"
+           id="path306"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath101">
+        <path
+           d="m 783,573 74,0 0,18 -74,0 0,-18 z"
+           id="path309"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath102">
+        <path
+           d="m 783,589 69,0 0,18 -69,0 0,-18 z"
+           id="path312"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath103">
+        <path
+           d="m 783,589 71,0 0,18 -71,0 0,-18 z"
+           id="path315"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath104">
+        <path
+           d="m 783,605 83,0 0,18 -83,0 0,-18 z"
+           id="path318"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath105">
+        <path
+           d="m 783,605 85,0 0,18 -85,0 0,-18 z"
+           id="path321"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath106">
+        <path
+           d="m 783,621 61,0 0,18 -61,0 0,-18 z"
+           id="path324"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath107">
+        <path
+           d="m 783,621 63,0 0,18 -63,0 0,-18 z"
+           id="path327"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath108">
+        <path
+           d="m 779,539 118,0 0,108 -118,0 0,-108 z"
+           id="path330"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath109">
+        <path
+           d="m 622,357 173,0 0,126 -173,0 0,-126 z"
+           id="path333"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath110">
+        <path
+           d="m 622,357 171,0 0,124 -171,0 0,-124 z"
+           id="path336"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath111">
+        <path
+           d="m 628,362 159,0 0,18 -159,0 0,-18 z"
+           id="path339"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath112">
+        <path
+           d="m 628,362 162,0 0,18 -162,0 0,-18 z"
+           id="path342"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath113">
+        <path
+           d="m 627,385 64,0 0,18 -64,0 0,-18 z"
+           id="path345"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath114">
+        <path
+           d="m 627,385 66,0 0,18 -66,0 0,-18 z"
+           id="path348"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath115">
+        <path
+           d="m 627,401 51,0 0,18 -51,0 0,-18 z"
+           id="path351"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath116">
+        <path
+           d="m 627,401 53,0 0,18 -53,0 0,-18 z"
+           id="path354"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath117">
+        <path
+           d="m 627,417 75,0 0,18 -75,0 0,-18 z"
+           id="path357"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath118">
+        <path
+           d="m 627,417 77,0 0,18 -77,0 0,-18 z"
+           id="path360"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath119">
+        <path
+           d="m 627,433 89,0 0,18 -89,0 0,-18 z"
+           id="path363"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath120">
+        <path
+           d="m 627,433 91,0 0,18 -91,0 0,-18 z"
+           id="path366"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath121">
+        <path
+           d="m 627,449 104,0 0,18 -104,0 0,-18 z"
+           id="path369"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath122">
+        <path
+           d="m 627,449 106,0 0,18 -106,0 0,-18 z"
+           id="path372"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath123">
+        <path
+           d="m 623,383 169,0 0,97 -169,0 0,-97 z"
+           id="path375"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath124">
+        <path
+           d="m 9,549 186,0 0,102 -186,0 0,-102 z"
+           id="path378"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath125">
+        <path
+           d="m 9,549 184,0 0,100 -184,0 0,-100 z"
+           id="path381"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath126">
+        <path
+           d="m 16,554 169,0 0,18 -169,0 0,-18 z"
+           id="path384"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath127">
+        <path
+           d="m 16,554 172,0 0,18 -172,0 0,-18 z"
+           id="path387"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath128">
+        <path
+           d="m 14,577 96,0 0,18 -96,0 0,-18 z"
+           id="path390"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath129">
+        <path
+           d="m 14,577 98,0 0,18 -98,0 0,-18 z"
+           id="path393"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath130">
+        <path
+           d="m 14,593 98,0 0,18 -98,0 0,-18 z"
+           id="path396"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath131">
+        <path
+           d="m 14,593 100,0 0,18 -100,0 0,-18 z"
+           id="path399"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath132">
+        <path
+           d="m 14,609 53,0 0,18 -53,0 0,-18 z"
+           id="path402"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath133">
+        <path
+           d="m 14,609 55,0 0,18 -55,0 0,-18 z"
+           id="path405"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath134">
+        <path
+           d="m 10,575 182,0 0,73 -182,0 0,-73 z"
+           id="path408"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath135">
+        <path
+           d="m 154,825 149,0 0,185 -149,0 0,-185 z"
+           id="path411"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath136">
+        <path
+           d="m 154,825 147,0 0,183 -147,0 0,-183 z"
+           id="path414"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath137">
+        <path
+           d="m 168,830 119,0 0,18 -119,0 0,-18 z"
+           id="path417"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath138">
+        <path
+           d="m 168,830 122,0 0,18 -122,0 0,-18 z"
+           id="path420"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath139">
+        <path
+           d="m 159,853 83,0 0,18 -83,0 0,-18 z"
+           id="path423"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath140">
+        <path
+           d="m 159,853 85,0 0,18 -85,0 0,-18 z"
+           id="path426"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath141">
+        <path
+           d="m 159,869 75,0 0,18 -75,0 0,-18 z"
+           id="path429"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath142">
+        <path
+           d="m 159,869 77,0 0,18 -77,0 0,-18 z"
+           id="path432"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath143">
+        <path
+           d="m 159,885 72,0 0,18 -72,0 0,-18 z"
+           id="path435"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath144">
+        <path
+           d="m 159,885 74,0 0,18 -74,0 0,-18 z"
+           id="path438"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath145">
+        <path
+           d="m 159,901 94,0 0,18 -94,0 0,-18 z"
+           id="path441"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath146">
+        <path
+           d="m 159,901 96,0 0,18 -96,0 0,-18 z"
+           id="path444"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath147">
+        <path
+           d="m 155,851 145,0 0,156 -145,0 0,-156 z"
+           id="path447"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath148">
+        <path
+           d="m 334,825 149,0 0,185 -149,0 0,-185 z"
+           id="path450"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath149">
+        <path
+           d="m 334,825 147,0 0,183 -147,0 0,-183 z"
+           id="path453"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath150">
+        <path
+           d="m 344,830 126,0 0,18 -126,0 0,-18 z"
+           id="path456"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath151">
+        <path
+           d="m 344,830 129,0 0,18 -129,0 0,-18 z"
+           id="path459"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath152">
+        <path
+           d="m 339,853 83,0 0,18 -83,0 0,-18 z"
+           id="path462"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath153">
+        <path
+           d="m 339,853 85,0 0,18 -85,0 0,-18 z"
+           id="path465"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath154">
+        <path
+           d="m 339,869 75,0 0,18 -75,0 0,-18 z"
+           id="path468"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath155">
+        <path
+           d="m 339,869 77,0 0,18 -77,0 0,-18 z"
+           id="path471"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath156">
+        <path
+           d="m 339,885 72,0 0,18 -72,0 0,-18 z"
+           id="path474"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath157">
+        <path
+           d="m 339,885 74,0 0,18 -74,0 0,-18 z"
+           id="path477"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath158">
+        <path
+           d="m 339,901 94,0 0,18 -94,0 0,-18 z"
+           id="path480"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath159">
+        <path
+           d="m 339,901 96,0 0,18 -96,0 0,-18 z"
+           id="path483"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath160">
+        <path
+           d="m 339,917 73,0 0,18 -73,0 0,-18 z"
+           id="path486"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath161">
+        <path
+           d="m 339,917 75,0 0,18 -75,0 0,-18 z"
+           id="path489"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath162">
+        <path
+           d="m 339,933 78,0 0,18 -78,0 0,-18 z"
+           id="path492"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath163">
+        <path
+           d="m 339,933 80,0 0,18 -80,0 0,-18 z"
+           id="path495"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath164">
+        <path
+           d="m 339,949 75,0 0,18 -75,0 0,-18 z"
+           id="path498"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath165">
+        <path
+           d="m 339,949 77,0 0,18 -77,0 0,-18 z"
+           id="path501"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath166">
+        <path
+           d="m 339,965 105,0 0,18 -105,0 0,-18 z"
+           id="path504"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath167">
+        <path
+           d="m 339,965 107,0 0,18 -107,0 0,-18 z"
+           id="path507"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath168">
+        <path
+           d="m 339,981 68,0 0,18 -68,0 0,-18 z"
+           id="path510"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath169">
+        <path
+           d="m 339,981 70,0 0,18 -70,0 0,-18 z"
+           id="path513"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath170">
+        <path
+           d="m 335,851 145,0 0,156 -145,0 0,-156 z"
+           id="path516"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath171">
+        <path
+           d="M 9,9 169,9 169,61 9,61 9,9 z"
+           id="path519"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath172">
+        <path
+           d="M 9,9 167,9 167,59 9,59 9,9 z"
+           id="path522"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath173">
+        <path
+           d="m 36,14 104,0 0,18 -104,0 0,-18 z"
+           id="path525"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath174">
+        <path
+           d="m 36,14 107,0 0,18 -107,0 0,-18 z"
+           id="path528"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath175">
+        <path
+           d="m 10,35 156,0 0,23 -156,0 0,-23 z"
+           id="path531"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath176">
+        <path
+           d="m -1,-1 923,0 0,1080 -923,0 0,-1080 z"
+           id="path534"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath177">
+        <path
+           d="m 283,239 11,0 0,11 -11,0 0,-11 z"
+           id="path537"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath178">
+        <path
+           d="m 463,479 11,0 0,11 -11,0 0,-11 z"
+           id="path540"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath179">
+        <path
+           d="m 702,479 11,0 0,11 -11,0 0,-11 z"
+           id="path543"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath180">
+        <path
+           d="m 99,647 11,0 0,11 -11,0 0,-11 z"
+           id="path546"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath181">
+        <path
+           d="m 190,765 23,0 0,15 -23,0 0,-15 z"
+           id="path549"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath182">
+        <path
+           d="m 190,717 42,0 0,15 -42,0 0,-15 z"
+           id="path552"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath183">
+        <path
+           d="m 190,813 43,0 0,15 -43,0 0,-15 z"
+           id="path555"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath184">
+        <path
+           d="m 175,818 9,0 0,10 -9,0 0,-10 z"
+           id="path558"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath185">
+        <path
+           d="m 430,765 23,0 0,15 -23,0 0,-15 z"
+           id="path561"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath186">
+        <path
+           d="m 406,717 42,0 0,15 -42,0 0,-15 z"
+           id="path564"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath187">
+        <path
+           d="m 394,813 49,0 0,15 -49,0 0,-15 z"
+           id="path567"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath188">
+        <path
+           d="m 449,818 9,0 0,10 -9,0 0,-10 z"
+           id="path570"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath189">
+        <path
+           d="m 778,861 57,0 0,15 -57,0 0,-15 z"
+           id="path573"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath190">
+        <path
+           d="m 478,885 50,0 0,15 -50,0 0,-15 z"
+           id="path576"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath191">
+        <path
+           d="m 850,651 37,0 0,15 -37,0 0,-15 z"
+           id="path579"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath192">
+        <path
+           d="m 834,646 9,0 0,10 -9,0 0,-10 z"
+           id="path582"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath193">
+        <path
+           d="m 704,582 23,0 0,15 -23,0 0,-15 z"
+           id="path585"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath194">
+        <path
+           d="m 742,567 37,0 0,15 -37,0 0,-15 z"
+           id="path588"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath195">
+        <path
+           d="m 663,566 49,0 0,15 -49,0 0,-15 z"
+           id="path591"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath196">
+        <path
+           d="m 659,578 10,0 0,9 -10,0 0,-9 z"
+           id="path594"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath197">
+        <path
+           d="m 444,583 23,0 0,15 -23,0 0,-15 z"
+           id="path597"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath198">
+        <path
+           d="m 478,565 38,0 0,15 -38,0 0,-15 z"
+           id="path600"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath199">
+        <path
+           d="m 393,564 53,0 0,15 -53,0 0,-15 z"
+           id="path603"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath200">
+        <path
+           d="m 395,578 10,0 0,9 -10,0 0,-9 z"
+           id="path606"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath201">
+        <path
+           d="m 265,465 23,0 0,15 -23,0 0,-15 z"
+           id="path609"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath202">
+        <path
+           d="m 190,369 48,0 0,15 -48,0 0,-15 z"
+           id="path612"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath203">
+        <path
+           d="m 249,502 41,0 0,15 -41,0 0,-15 z"
+           id="path615"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath204">
+        <path
+           d="m 287,506 9,0 0,10 -9,0 0,-10 z"
+           id="path618"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath205">
+        <path
+           d="m 683,317 23,0 0,15 -23,0 0,-15 z"
+           id="path621"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath206">
+        <path
+           d="m 190,321 48,0 0,15 -48,0 0,-15 z"
+           id="path624"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath207">
+        <path
+           d="m 865,497 36,0 0,15 -36,0 0,-15 z"
+           id="path627"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath208">
+        <path
+           d="m 859,506 9,0 0,10 -9,0 0,-10 z"
+           id="path630"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+    </defs>
+    <g
+       font-weight="bold"
+       stroke-miterlimit="0"
+       id="g632"
+       style="font-weight:bold;fill:#837a85;stroke:#837a85;stroke-width:0;stroke-linejoin:round;stroke-miterlimit:0;font-family:Segoe UI">
+      <rect
+         x="216"
+         y="143"
+         clip-path="url(#clipPath1)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="98"
+         id="rect634"
+         style="opacity:0.25489999;stroke:none" />
+      <rect
+         x="217"
+         y="144"
+         clip-path="url(#clipPath1)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="98"
+         id="rect636"
+         style="opacity:0.25489999;stroke:none" />
+      <rect
+         x="215"
+         y="142"
+         clip-path="url(#clipPath2)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="98"
+         id="rect638"
+         style="fill:#ffffff;stroke:none" />
+    </g>
+    <g
+       font-weight="bold"
+       id="g640"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <rect
+         x="215"
+         y="142"
+         clip-path="url(#clipPath2)"
+         width="144"
+         rx="2.5"
+         ry="2.5"
+         height="97"
+         id="rect642"
+         style="fill:none" />
+      <image
+         x="228"
+         y="147"
+         clip-path="url(#clipPath3)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image644" />
+      <text
+         x="247"
+         y="160"
+         clip-path="url(#clipPath4)"
+         xml:space="preserve"
+         id="text646"
+         style="fill:#000000;stroke:none">IMeshData_Shape</text>
+    </g>
+    <g
+       font-size="11"
+       id="g648"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="220"
+         y="175"
+         clip-path="url(#clipPath5)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM
+ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3
+obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R
+EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5
+A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg
+zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx
+Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg=="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image650" />
+      <text
+         xml:space="preserve"
+         x="239"
+         y="182"
+         clip-path="url(#clipPath6)"
+         id="text652"
+         style="stroke:none">myShape : </text>
+      <text
+         xml:space="preserve"
+         x="239"
+         y="195"
+         clip-path="url(#clipPath6)"
+         id="text654"
+         style="stroke:none">TopoDS_Shape [1]</text>
+      <image
+         x="220"
+         y="196"
+         clip-path="url(#clipPath7)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image656" />
+      <text
+         xml:space="preserve"
+         x="239"
+         y="209"
+         clip-path="url(#clipPath8)"
+         id="text658"
+         style="stroke:none">SetShape()</text>
+      <image
+         x="220"
+         y="212"
+         clip-path="url(#clipPath9)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image660" />
+      <text
+         xml:space="preserve"
+         x="239"
+         y="225"
+         clip-path="url(#clipPath10)"
+         id="text662"
+         style="stroke:none">GetShape()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g664"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath11)"
+         x1="216"
+         x2="359"
+         y1="168"
+         y2="168"
+         id="line666"
+         style="fill:none" />
+      <rect
+         x="11"
+         y="299"
+         clip-path="url(#clipPath12)"
+         width="182"
+         rx="2.5"
+         ry="2.5"
+         height="145"
+         id="rect668"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="12"
+         y="300"
+         clip-path="url(#clipPath12)"
+         width="182"
+         rx="2.5"
+         ry="2.5"
+         height="145"
+         id="rect670"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="10"
+         y="298"
+         clip-path="url(#clipPath13)"
+         width="182"
+         rx="2.5"
+         ry="2.5"
+         height="145"
+         id="rect672"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="10"
+         y="298"
+         clip-path="url(#clipPath13)"
+         width="181"
+         rx="2.5"
+         ry="2.5"
+         height="144"
+         id="rect674"
+         style="fill:none" />
+      <image
+         x="41"
+         y="303"
+         clip-path="url(#clipPath14)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image676" />
+      <text
+         x="60"
+         y="316"
+         clip-path="url(#clipPath15)"
+         xml:space="preserve"
+         id="text678"
+         style="fill:#000000;stroke:none">IMeshData_Model</text>
+    </g>
+    <g
+       font-size="11"
+       id="g680"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="15"
+         y="326"
+         clip-path="url(#clipPath16)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image682" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="339"
+         clip-path="url(#clipPath17)"
+         id="text684"
+         style="stroke:none">GetMaxSize()</text>
+      <image
+         x="15"
+         y="342"
+         clip-path="url(#clipPath18)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image686" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="355"
+         clip-path="url(#clipPath19)"
+         id="text688"
+         style="stroke:none">FacesNb()</text>
+      <image
+         x="15"
+         y="358"
+         clip-path="url(#clipPath20)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image690" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="371"
+         clip-path="url(#clipPath21)"
+         id="text692"
+         style="stroke:none">AddFace()</text>
+      <image
+         x="15"
+         y="374"
+         clip-path="url(#clipPath22)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image694" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="387"
+         clip-path="url(#clipPath23)"
+         id="text696"
+         style="stroke:none">GetFace()</text>
+      <image
+         x="15"
+         y="390"
+         clip-path="url(#clipPath24)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image698" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="403"
+         clip-path="url(#clipPath25)"
+         id="text700"
+         style="stroke:none">EdgesNb()</text>
+      <image
+         x="15"
+         y="406"
+         clip-path="url(#clipPath26)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image702" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="419"
+         clip-path="url(#clipPath27)"
+         id="text704"
+         style="stroke:none">AddEdge()</text>
+      <image
+         x="15"
+         y="422"
+         clip-path="url(#clipPath28)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image706" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="435"
+         clip-path="url(#clipPath29)"
+         id="text708"
+         style="stroke:none">GetEdge()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g710"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath30)"
+         x1="11"
+         x2="191"
+         y1="324"
+         y2="324"
+         id="line712"
+         style="fill:none" />
+      <rect
+         x="372"
+         y="359"
+         clip-path="url(#clipPath31)"
+         width="193"
+         rx="2.5"
+         ry="2.5"
+         height="122"
+         id="rect714"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="373"
+         y="360"
+         clip-path="url(#clipPath31)"
+         width="193"
+         rx="2.5"
+         ry="2.5"
+         height="122"
+         id="rect716"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="371"
+         y="358"
+         clip-path="url(#clipPath32)"
+         width="193"
+         rx="2.5"
+         ry="2.5"
+         height="122"
+         id="rect718"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="371"
+         y="358"
+         clip-path="url(#clipPath32)"
+         width="192"
+         rx="2.5"
+         ry="2.5"
+         height="121"
+         id="rect720"
+         style="fill:none" />
+      <image
+         x="377"
+         y="363"
+         clip-path="url(#clipPath33)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image722" />
+      <text
+         x="396"
+         y="376"
+         clip-path="url(#clipPath34)"
+         xml:space="preserve"
+         id="text724"
+         style="fill:#000000;stroke:none">IMeshData_TessellatedShape</text>
+    </g>
+    <g
+       font-size="11"
+       id="g726"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="376"
+         y="386"
+         clip-path="url(#clipPath35)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image728" />
+      <text
+         xml:space="preserve"
+         x="395"
+         y="399"
+         clip-path="url(#clipPath36)"
+         id="text730"
+         style="stroke:none">SetDeflection()</text>
+      <image
+         x="376"
+         y="402"
+         clip-path="url(#clipPath37)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image732" />
+      <text
+         xml:space="preserve"
+         x="395"
+         y="415"
+         clip-path="url(#clipPath38)"
+         id="text734"
+         style="stroke:none">GetDeflection()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g736"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath39)"
+         x1="372"
+         x2="563"
+         y1="384"
+         y2="384"
+         id="line738"
+         style="fill:none" />
+      <rect
+         x="240"
+         y="515"
+         clip-path="url(#clipPath40)"
+         width="157"
+         rx="2.5"
+         ry="2.5"
+         height="289"
+         id="rect740"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="241"
+         y="516"
+         clip-path="url(#clipPath40)"
+         width="157"
+         rx="2.5"
+         ry="2.5"
+         height="289"
+         id="rect742"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="239"
+         y="514"
+         clip-path="url(#clipPath41)"
+         width="157"
+         rx="2.5"
+         ry="2.5"
+         height="289"
+         id="rect744"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="239"
+         y="514"
+         clip-path="url(#clipPath41)"
+         width="156"
+         rx="2.5"
+         ry="2.5"
+         height="288"
+         id="rect746"
+         style="fill:none" />
+      <image
+         x="262"
+         y="519"
+         clip-path="url(#clipPath42)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image748" />
+      <text
+         x="281"
+         y="532"
+         clip-path="url(#clipPath43)"
+         xml:space="preserve"
+         id="text750"
+         style="fill:#000000;stroke:none">IMeshData_Edge</text>
+    </g>
+    <g
+       font-size="11"
+       id="g752"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="244"
+         y="542"
+         clip-path="url(#clipPath44)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image754" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="555"
+         clip-path="url(#clipPath45)"
+         id="text756"
+         style="stroke:none">GetEdge()</text>
+      <image
+         x="244"
+         y="558"
+         clip-path="url(#clipPath46)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image758" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="571"
+         clip-path="url(#clipPath47)"
+         id="text760"
+         style="stroke:none">SetCurve()</text>
+      <image
+         x="244"
+         y="574"
+         clip-path="url(#clipPath48)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image762" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="587"
+         clip-path="url(#clipPath49)"
+         id="text764"
+         style="stroke:none">GetCurve()</text>
+      <image
+         x="244"
+         y="590"
+         clip-path="url(#clipPath50)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image766" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="603"
+         clip-path="url(#clipPath51)"
+         id="text768"
+         style="stroke:none">PCurvesNb()</text>
+      <image
+         x="244"
+         y="606"
+         clip-path="url(#clipPath52)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image770" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="619"
+         clip-path="url(#clipPath53)"
+         id="text772"
+         style="stroke:none">AddPCurve()</text>
+      <image
+         x="244"
+         y="622"
+         clip-path="url(#clipPath54)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image774" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="635"
+         clip-path="url(#clipPath55)"
+         id="text776"
+         style="stroke:none">GetPCurve()</text>
+      <image
+         x="244"
+         y="638"
+         clip-path="url(#clipPath56)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image778" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="651"
+         clip-path="url(#clipPath57)"
+         id="text780"
+         style="stroke:none">Clear()</text>
+      <image
+         x="244"
+         y="654"
+         clip-path="url(#clipPath58)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image782" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="667"
+         clip-path="url(#clipPath59)"
+         id="text784"
+         style="stroke:none">IsFree()</text>
+      <image
+         x="244"
+         y="670"
+         clip-path="url(#clipPath60)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image786" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="683"
+         clip-path="url(#clipPath61)"
+         id="text788"
+         style="stroke:none">GetAngularDeflection()</text>
+      <image
+         x="244"
+         y="686"
+         clip-path="url(#clipPath62)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image790" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="699"
+         clip-path="url(#clipPath63)"
+         id="text792"
+         style="stroke:none">SetAngularDeflection()</text>
+      <image
+         x="244"
+         y="702"
+         clip-path="url(#clipPath64)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image794" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="715"
+         clip-path="url(#clipPath65)"
+         id="text796"
+         style="stroke:none">SetSameParam()</text>
+      <image
+         x="244"
+         y="718"
+         clip-path="url(#clipPath66)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image798" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="731"
+         clip-path="url(#clipPath67)"
+         id="text800"
+         style="stroke:none">GetSameParam()</text>
+      <image
+         x="244"
+         y="734"
+         clip-path="url(#clipPath68)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image802" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="747"
+         clip-path="url(#clipPath69)"
+         id="text804"
+         style="stroke:none">SetSameRange()</text>
+      <image
+         x="244"
+         y="750"
+         clip-path="url(#clipPath70)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image806" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="763"
+         clip-path="url(#clipPath71)"
+         id="text808"
+         style="stroke:none">GetSameRange()</text>
+      <image
+         x="244"
+         y="766"
+         clip-path="url(#clipPath72)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image810" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="779"
+         clip-path="url(#clipPath73)"
+         id="text812"
+         style="stroke:none">SetDegenerated()</text>
+      <image
+         x="244"
+         y="782"
+         clip-path="url(#clipPath74)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image814" />
+      <text
+         xml:space="preserve"
+         x="263"
+         y="795"
+         clip-path="url(#clipPath75)"
+         id="text816"
+         style="stroke:none">GetDegenerated()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g818"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath76)"
+         x1="240"
+         x2="395"
+         y1="540"
+         y2="540"
+         id="line820"
+         style="fill:none" />
+      <rect
+         x="516"
+         y="515"
+         clip-path="url(#clipPath77)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="121"
+         id="rect822"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="517"
+         y="516"
+         clip-path="url(#clipPath77)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="121"
+         id="rect824"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="515"
+         y="514"
+         clip-path="url(#clipPath78)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="121"
+         id="rect826"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="515"
+         y="514"
+         clip-path="url(#clipPath78)"
+         width="144"
+         rx="2.5"
+         ry="2.5"
+         height="120"
+         id="rect828"
+         style="fill:none" />
+      <image
+         x="532"
+         y="519"
+         clip-path="url(#clipPath79)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image830" />
+      <text
+         x="551"
+         y="532"
+         clip-path="url(#clipPath80)"
+         xml:space="preserve"
+         id="text832"
+         style="fill:#000000;stroke:none">IMeshData_Wire</text>
+    </g>
+    <g
+       font-size="11"
+       id="g834"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="520"
+         y="542"
+         clip-path="url(#clipPath81)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image836" />
+      <text
+         xml:space="preserve"
+         x="539"
+         y="555"
+         clip-path="url(#clipPath82)"
+         id="text838"
+         style="stroke:none">GetWire()</text>
+      <image
+         x="520"
+         y="558"
+         clip-path="url(#clipPath83)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image840" />
+      <text
+         xml:space="preserve"
+         x="539"
+         y="571"
+         clip-path="url(#clipPath84)"
+         id="text842"
+         style="stroke:none">EdgesNb()</text>
+      <image
+         x="520"
+         y="574"
+         clip-path="url(#clipPath85)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image844" />
+      <text
+         xml:space="preserve"
+         x="539"
+         y="587"
+         clip-path="url(#clipPath86)"
+         id="text846"
+         style="stroke:none">AddEdge()</text>
+      <image
+         x="520"
+         y="590"
+         clip-path="url(#clipPath87)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image848" />
+      <text
+         xml:space="preserve"
+         x="539"
+         y="603"
+         clip-path="url(#clipPath88)"
+         id="text850"
+         style="stroke:none">GetEdge()</text>
+      <image
+         x="520"
+         y="606"
+         clip-path="url(#clipPath89)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image852" />
+      <text
+         xml:space="preserve"
+         x="539"
+         y="619"
+         clip-path="url(#clipPath90)"
+         id="text854"
+         style="stroke:none">GetEdgeOrientation()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g856"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath91)"
+         x1="516"
+         x2="659"
+         y1="540"
+         y2="540"
+         id="line858"
+         style="fill:none" />
+      <rect
+         x="780"
+         y="515"
+         clip-path="url(#clipPath92)"
+         width="118"
+         rx="2.5"
+         ry="2.5"
+         height="133"
+         id="rect860"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="781"
+         y="516"
+         clip-path="url(#clipPath92)"
+         width="118"
+         rx="2.5"
+         ry="2.5"
+         height="133"
+         id="rect862"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="779"
+         y="514"
+         clip-path="url(#clipPath93)"
+         width="118"
+         rx="2.5"
+         ry="2.5"
+         height="133"
+         id="rect864"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="779"
+         y="514"
+         clip-path="url(#clipPath93)"
+         width="117"
+         rx="2.5"
+         ry="2.5"
+         height="132"
+         id="rect866"
+         style="fill:none" />
+      <image
+         x="783"
+         y="519"
+         clip-path="url(#clipPath94)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image868" />
+      <text
+         x="802"
+         y="532"
+         clip-path="url(#clipPath95)"
+         xml:space="preserve"
+         id="text870"
+         style="fill:#000000;stroke:none">IMeshData_Face</text>
+    </g>
+    <g
+       font-size="11"
+       id="g872"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="784"
+         y="542"
+         clip-path="url(#clipPath96)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image874" />
+      <text
+         xml:space="preserve"
+         x="803"
+         y="555"
+         clip-path="url(#clipPath97)"
+         id="text876"
+         style="stroke:none">GetFace()</text>
+      <image
+         x="784"
+         y="558"
+         clip-path="url(#clipPath98)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image878" />
+      <text
+         xml:space="preserve"
+         x="803"
+         y="571"
+         clip-path="url(#clipPath99)"
+         id="text880"
+         style="stroke:none">WiresNb()</text>
+      <image
+         x="784"
+         y="574"
+         clip-path="url(#clipPath100)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image882" />
+      <text
+         xml:space="preserve"
+         x="803"
+         y="587"
+         clip-path="url(#clipPath101)"
+         id="text884"
+         style="stroke:none">AddWire()</text>
+      <image
+         x="784"
+         y="590"
+         clip-path="url(#clipPath102)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image886" />
+      <text
+         xml:space="preserve"
+         x="803"
+         y="603"
+         clip-path="url(#clipPath103)"
+         id="text888"
+         style="stroke:none">GetWire()</text>
+      <image
+         x="784"
+         y="606"
+         clip-path="url(#clipPath104)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image890" />
+      <text
+         xml:space="preserve"
+         x="803"
+         y="619"
+         clip-path="url(#clipPath105)"
+         id="text892"
+         style="stroke:none">GetSurface()</text>
+      <image
+         x="784"
+         y="622"
+         clip-path="url(#clipPath106)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image894" />
+      <text
+         xml:space="preserve"
+         x="803"
+         y="635"
+         clip-path="url(#clipPath107)"
+         id="text896"
+         style="stroke:none">IsValid()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g898"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath108)"
+         x1="780"
+         x2="896"
+         y1="540"
+         y2="540"
+         id="line900"
+         style="fill:none" />
+      <rect
+         x="624"
+         y="359"
+         clip-path="url(#clipPath109)"
+         width="169"
+         rx="2.5"
+         ry="2.5"
+         height="122"
+         id="rect902"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="625"
+         y="360"
+         clip-path="url(#clipPath109)"
+         width="169"
+         rx="2.5"
+         ry="2.5"
+         height="122"
+         id="rect904"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="623"
+         y="358"
+         clip-path="url(#clipPath110)"
+         width="169"
+         rx="2.5"
+         ry="2.5"
+         height="122"
+         id="rect906"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="623"
+         y="358"
+         clip-path="url(#clipPath110)"
+         width="168"
+         rx="2.5"
+         ry="2.5"
+         height="121"
+         id="rect908"
+         style="fill:none" />
+      <image
+         x="629"
+         y="363"
+         clip-path="url(#clipPath111)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image910" />
+      <text
+         x="648"
+         y="376"
+         clip-path="url(#clipPath112)"
+         xml:space="preserve"
+         id="text912"
+         style="fill:#000000;stroke:none">IMeshData_StatusOwner</text>
+    </g>
+    <g
+       font-size="11"
+       id="g914"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="628"
+         y="386"
+         clip-path="url(#clipPath113)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image916" />
+      <text
+         xml:space="preserve"
+         x="647"
+         y="399"
+         clip-path="url(#clipPath114)"
+         id="text918"
+         style="stroke:none">IsEqual()</text>
+      <image
+         x="628"
+         y="402"
+         clip-path="url(#clipPath115)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image920" />
+      <text
+         xml:space="preserve"
+         x="647"
+         y="415"
+         clip-path="url(#clipPath116)"
+         id="text922"
+         style="stroke:none">IsSet()</text>
+      <image
+         x="628"
+         y="418"
+         clip-path="url(#clipPath117)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image924" />
+      <text
+         xml:space="preserve"
+         x="647"
+         y="431"
+         clip-path="url(#clipPath118)"
+         id="text926"
+         style="stroke:none">SetStatus()</text>
+      <image
+         x="628"
+         y="434"
+         clip-path="url(#clipPath119)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image928" />
+      <text
+         xml:space="preserve"
+         x="647"
+         y="447"
+         clip-path="url(#clipPath120)"
+         id="text930"
+         style="stroke:none">UnsetStatus()</text>
+      <image
+         x="628"
+         y="450"
+         clip-path="url(#clipPath121)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image932" />
+      <text
+         xml:space="preserve"
+         x="647"
+         y="463"
+         clip-path="url(#clipPath122)"
+         id="text934"
+         style="stroke:none">GetStatusMask()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g936"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath123)"
+         x1="624"
+         x2="791"
+         y1="384"
+         y2="384"
+         id="line938"
+         style="fill:none" />
+      <rect
+         x="11"
+         y="551"
+         clip-path="url(#clipPath124)"
+         width="182"
+         rx="2.5"
+         ry="2.5"
+         height="98"
+         id="rect940"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="12"
+         y="552"
+         clip-path="url(#clipPath124)"
+         width="182"
+         rx="2.5"
+         ry="2.5"
+         height="98"
+         id="rect942"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="10"
+         y="550"
+         clip-path="url(#clipPath125)"
+         width="182"
+         rx="2.5"
+         ry="2.5"
+         height="98"
+         id="rect944"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="10"
+         y="550"
+         clip-path="url(#clipPath125)"
+         width="181"
+         rx="2.5"
+         ry="2.5"
+         height="97"
+         id="rect946"
+         style="fill:none" />
+      <image
+         x="17"
+         y="555"
+         clip-path="url(#clipPath126)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image948" />
+      <text
+         x="36"
+         y="568"
+         clip-path="url(#clipPath127)"
+         xml:space="preserve"
+         id="text950"
+         style="fill:#000000;stroke:none">IMeshData_ParametersList</text>
+    </g>
+    <g
+       font-size="11"
+       id="g952"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="15"
+         y="578"
+         clip-path="url(#clipPath128)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image954" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="591"
+         clip-path="url(#clipPath129)"
+         id="text956"
+         style="stroke:none">GetParameter()</text>
+      <image
+         x="15"
+         y="594"
+         clip-path="url(#clipPath130)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image958" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="607"
+         clip-path="url(#clipPath131)"
+         id="text960"
+         style="stroke:none">ParametersNb()</text>
+      <image
+         x="15"
+         y="610"
+         clip-path="url(#clipPath132)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image962" />
+      <text
+         xml:space="preserve"
+         x="34"
+         y="623"
+         clip-path="url(#clipPath133)"
+         id="text964"
+         style="stroke:none">Clear()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g966"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath134)"
+         x1="11"
+         x2="191"
+         y1="576"
+         y2="576"
+         id="line968"
+         style="fill:none" />
+      <rect
+         x="156"
+         y="827"
+         clip-path="url(#clipPath135)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="181"
+         id="rect970"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="157"
+         y="828"
+         clip-path="url(#clipPath135)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="181"
+         id="rect972"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="155"
+         y="826"
+         clip-path="url(#clipPath136)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="181"
+         id="rect974"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="155"
+         y="826"
+         clip-path="url(#clipPath136)"
+         width="144"
+         rx="2.5"
+         ry="2.5"
+         height="180"
+         id="rect976"
+         style="fill:none" />
+      <image
+         x="169"
+         y="831"
+         clip-path="url(#clipPath137)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image978" />
+      <text
+         x="188"
+         y="844"
+         clip-path="url(#clipPath138)"
+         xml:space="preserve"
+         id="text980"
+         style="fill:#000000;stroke:none">IMeshData_Curve</text>
+    </g>
+    <g
+       font-size="11"
+       id="g982"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="160"
+         y="854"
+         clip-path="url(#clipPath139)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image984" />
+      <text
+         xml:space="preserve"
+         x="179"
+         y="867"
+         clip-path="url(#clipPath140)"
+         id="text986"
+         style="stroke:none">InsertPoint()</text>
+      <image
+         x="160"
+         y="870"
+         clip-path="url(#clipPath141)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image988" />
+      <text
+         xml:space="preserve"
+         x="179"
+         y="883"
+         clip-path="url(#clipPath142)"
+         id="text990"
+         style="stroke:none">AddPoint()</text>
+      <image
+         x="160"
+         y="886"
+         clip-path="url(#clipPath143)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image992" />
+      <text
+         xml:space="preserve"
+         x="179"
+         y="899"
+         clip-path="url(#clipPath144)"
+         id="text994"
+         style="stroke:none">GetPoint()</text>
+      <image
+         x="160"
+         y="902"
+         clip-path="url(#clipPath145)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image996" />
+      <text
+         xml:space="preserve"
+         x="179"
+         y="915"
+         clip-path="url(#clipPath146)"
+         id="text998"
+         style="stroke:none">RemovePoint()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g1000"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath147)"
+         x1="156"
+         x2="299"
+         y1="852"
+         y2="852"
+         id="line1002"
+         style="fill:none" />
+      <rect
+         x="336"
+         y="827"
+         clip-path="url(#clipPath148)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="181"
+         id="rect1004"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="337"
+         y="828"
+         clip-path="url(#clipPath148)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="181"
+         id="rect1006"
+         style="opacity:0.25489999;fill:#837a85;stroke:none" />
+      <rect
+         x="335"
+         y="826"
+         clip-path="url(#clipPath149)"
+         width="145"
+         rx="2.5"
+         ry="2.5"
+         height="181"
+         id="rect1008"
+         style="fill:#ffffff;stroke:none" />
+      <rect
+         x="335"
+         y="826"
+         clip-path="url(#clipPath149)"
+         width="144"
+         rx="2.5"
+         ry="2.5"
+         height="180"
+         id="rect1010"
+         style="fill:none" />
+      <image
+         x="345"
+         y="831"
+         clip-path="url(#clipPath150)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
+BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
+rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
+x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
+g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
+Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
+0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
+RK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1012" />
+      <text
+         x="364"
+         y="844"
+         clip-path="url(#clipPath151)"
+         xml:space="preserve"
+         id="text1014"
+         style="fill:#000000;stroke:none">IMeshData_PCurve</text>
+    </g>
+    <g
+       font-size="11"
+       id="g1016"
+       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <image
+         x="340"
+         y="854"
+         clip-path="url(#clipPath152)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1018" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="867"
+         clip-path="url(#clipPath153)"
+         id="text1020"
+         style="stroke:none">InsertPoint()</text>
+      <image
+         x="340"
+         y="870"
+         clip-path="url(#clipPath154)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1022" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="883"
+         clip-path="url(#clipPath155)"
+         id="text1024"
+         style="stroke:none">AddPoint()</text>
+      <image
+         x="340"
+         y="886"
+         clip-path="url(#clipPath156)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1026" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="899"
+         clip-path="url(#clipPath157)"
+         id="text1028"
+         style="stroke:none">GetPoint()</text>
+      <image
+         x="340"
+         y="902"
+         clip-path="url(#clipPath158)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1030" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="915"
+         clip-path="url(#clipPath159)"
+         id="text1032"
+         style="stroke:none">RemovePoint()</text>
+      <image
+         x="340"
+         y="918"
+         clip-path="url(#clipPath160)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1034" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="931"
+         clip-path="url(#clipPath161)"
+         id="text1036"
+         style="stroke:none">GetIndex()</text>
+      <image
+         x="340"
+         y="934"
+         clip-path="url(#clipPath162)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1038" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="947"
+         clip-path="url(#clipPath163)"
+         id="text1040"
+         style="stroke:none">IsForward()</text>
+      <image
+         x="340"
+         y="950"
+         clip-path="url(#clipPath164)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1042" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="963"
+         clip-path="url(#clipPath165)"
+         id="text1044"
+         style="stroke:none">IsInternal()</text>
+      <image
+         x="340"
+         y="966"
+         clip-path="url(#clipPath166)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1046" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="979"
+         clip-path="url(#clipPath167)"
+         id="text1048"
+         style="stroke:none">GetOrientation()</text>
+      <image
+         x="340"
+         y="982"
+         clip-path="url(#clipPath168)"
+         width="16"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
+URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
+B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
+u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
+rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
+aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
+OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
+/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
+lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
+/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
+zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
+ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
+Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
+         xlink:type="simple"
+         xlink:actuate="onLoad"
+         height="16"
+         preserveAspectRatio="none"
+         xlink:show="embed"
+         id="image1050" />
+      <text
+         xml:space="preserve"
+         x="359"
+         y="995"
+         clip-path="url(#clipPath169)"
+         id="text1052"
+         style="stroke:none">GetFace()</text>
+    </g>
+    <g
+       font-weight="bold"
+       id="g1054"
+       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath170)"
+         x1="336"
+         x2="479"
+         y1="852"
+         y2="852"
+         id="line1056"
+         style="fill:none" />
+    </g>
+    <g
+       font-size="11"
+       id="g1072"
+       style="font-size:11px;fill:#888888;stroke:#888888;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
+      <line
+         clip-path="url(#clipPath176)"
+         x1="83"
+         x2="83"
+         y1="298"
+         y2="258"
+         id="line1074"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="83"
+         x2="288"
+         y1="258"
+         y2="258"
+         id="line1076"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="288"
+         x2="288"
+         y1="258"
+         y2="240"
+         id="line1078"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath177)"
+         points="288,240 292,248 284,248 "
+         id="polygon1080"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath177)"
+         points="288,240 292,248 284,248 "
+         id="polygon1082"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="466"
+         x2="466"
+         y1="358"
+         y2="258"
+         id="line1084"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="466"
+         x2="288"
+         y1="258"
+         y2="258"
+         id="line1086"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="288"
+         x2="288"
+         y1="258"
+         y2="240"
+         id="line1088"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath177)"
+         points="288,240 292,248 284,248 "
+         id="polygon1090"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath177)"
+         points="288,240 292,248 284,248 "
+         id="polygon1092"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="323"
+         x2="323"
+         y1="514"
+         y2="502"
+         id="line1094"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="323"
+         x2="468"
+         y1="502"
+         y2="502"
+         id="line1096"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="468"
+         x2="468"
+         y1="502"
+         y2="480"
+         id="line1098"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath178)"
+         points="468,480 472,488 464,488 "
+         id="polygon1100"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath178)"
+         points="468,480 472,488 464,488 "
+         id="polygon1102"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="583"
+         x2="583"
+         y1="514"
+         y2="502"
+         id="line1104"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="583"
+         x2="468"
+         y1="502"
+         y2="502"
+         id="line1106"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="468"
+         x2="468"
+         y1="502"
+         y2="480"
+         id="line1108"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath178)"
+         points="468,480 472,488 464,488 "
+         id="polygon1110"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath178)"
+         points="468,480 472,488 464,488 "
+         id="polygon1112"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="822"
+         x2="822"
+         y1="514"
+         y2="502"
+         id="line1114"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="822"
+         x2="468"
+         y1="502"
+         y2="502"
+         id="line1116"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="468"
+         x2="468"
+         y1="502"
+         y2="480"
+         id="line1118"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath178)"
+         points="468,480 472,488 464,488 "
+         id="polygon1120"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath178)"
+         points="468,480 472,488 464,488 "
+         id="polygon1122"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="323"
+         x2="323"
+         y1="514"
+         y2="502"
+         id="line1124"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="323"
+         x2="707"
+         y1="502"
+         y2="502"
+         id="line1126"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="707"
+         x2="707"
+         y1="502"
+         y2="480"
+         id="line1128"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath179)"
+         points="707,480 711,488 703,488 "
+         id="polygon1130"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath179)"
+         points="707,480 711,488 703,488 "
+         id="polygon1132"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="409"
+         x2="409"
+         y1="1007"
+         y2="1054"
+         id="line1134"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="409"
+         x2="104"
+         y1="1054"
+         y2="1054"
+         id="line1136"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="104"
+         x2="104"
+         y1="1054"
+         y2="648"
+         id="line1138"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath180)"
+         points="104,648 108,656 100,656 "
+         id="polygon1140"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath180)"
+         points="104,648 108,656 100,656 "
+         id="polygon1142"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="239"
+         x2="179"
+         y1="714"
+         y2="714"
+         id="line1144"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="179"
+         x2="179"
+         y1="714"
+         y2="826"
+         id="line1146"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="191"
+         y="778"
+         clip-path="url(#clipPath181)"
+         xml:space="preserve"
+         id="text1148"
+         style="fill:#000000;stroke:none">has</text>
+      <text
+         x="191"
+         y="730"
+         clip-path="url(#clipPath182)"
+         xml:space="preserve"
+         id="text1150"
+         style="fill:#000000;stroke:none">edge[1]</text>
+      <text
+         x="191"
+         y="826"
+         clip-path="url(#clipPath183)"
+         xml:space="preserve"
+         id="text1152"
+         style="fill:#000000;stroke:none">curve[1]</text>
+      <line
+         clip-path="url(#clipPath184)"
+         x1="176"
+         x2="179"
+         y1="819"
+         y2="826"
+         id="line1154"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath184)"
+         x1="179"
+         x2="182"
+         y1="826"
+         y2="819"
+         id="line1156"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="396"
+         x2="453"
+         y1="718"
+         y2="718"
+         id="line1158"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="453"
+         x2="453"
+         y1="718"
+         y2="826"
+         id="line1160"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="431"
+         y="778"
+         clip-path="url(#clipPath185)"
+         xml:space="preserve"
+         id="text1162"
+         style="fill:#000000;stroke:none">has</text>
+      <text
+         x="407"
+         y="730"
+         clip-path="url(#clipPath186)"
+         xml:space="preserve"
+         id="text1164"
+         style="fill:#000000;stroke:none">edge[1]</text>
+      <text
+         x="395"
+         y="826"
+         clip-path="url(#clipPath187)"
+         xml:space="preserve"
+         id="text1166"
+         style="fill:#000000;stroke:none">pcurve[*]</text>
+      <line
+         clip-path="url(#clipPath188)"
+         x1="450"
+         x2="453"
+         y1="819"
+         y2="826"
+         id="line1168"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath188)"
+         x1="453"
+         x2="456"
+         y1="826"
+         y2="819"
+         id="line1170"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="480"
+         x2="838"
+         y1="886"
+         y2="886"
+         id="line1172"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="838"
+         x2="838"
+         y1="886"
+         y2="647"
+         id="line1174"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="779"
+         y="874"
+         clip-path="url(#clipPath189)"
+         xml:space="preserve"
+         id="text1176"
+         style="fill:#000000;stroke:none">references</text>
+      <text
+         x="479"
+         y="898"
+         clip-path="url(#clipPath190)"
+         xml:space="preserve"
+         id="text1178"
+         style="fill:#000000;stroke:none">pcurve[1]</text>
+      <text
+         x="851"
+         y="664"
+         clip-path="url(#clipPath191)"
+         xml:space="preserve"
+         id="text1180"
+         style="fill:#000000;stroke:none">face[1]</text>
+      <line
+         clip-path="url(#clipPath192)"
+         x1="841"
+         x2="838"
+         y1="654"
+         y2="647"
+         id="line1182"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath192)"
+         x1="838"
+         x2="835"
+         y1="647"
+         y2="654"
+         id="line1184"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="779"
+         x2="660"
+         y1="582"
+         y2="582"
+         id="line1186"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="705"
+         y="595"
+         clip-path="url(#clipPath193)"
+         xml:space="preserve"
+         id="text1188"
+         style="fill:#000000;stroke:none">has</text>
+      <text
+         x="743"
+         y="580"
+         clip-path="url(#clipPath194)"
+         xml:space="preserve"
+         id="text1190"
+         style="fill:#000000;stroke:none">face[1]</text>
+      <text
+         x="664"
+         y="579"
+         clip-path="url(#clipPath195)"
+         xml:space="preserve"
+         id="text1192"
+         style="fill:#000000;stroke:none">wire[1..*]</text>
+      <line
+         clip-path="url(#clipPath196)"
+         x1="667"
+         x2="660"
+         y1="579"
+         y2="582"
+         id="line1194"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath196)"
+         x1="660"
+         x2="667"
+         y1="582"
+         y2="585"
+         id="line1196"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="515"
+         x2="396"
+         y1="582"
+         y2="582"
+         id="line1198"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="445"
+         y="596"
+         clip-path="url(#clipPath197)"
+         xml:space="preserve"
+         id="text1200"
+         style="fill:#000000;stroke:none">has</text>
+      <text
+         x="479"
+         y="578"
+         clip-path="url(#clipPath198)"
+         xml:space="preserve"
+         id="text1202"
+         style="fill:#000000;stroke:none">wire[1]</text>
+      <text
+         x="394"
+         y="577"
+         clip-path="url(#clipPath199)"
+         xml:space="preserve"
+         id="text1204"
+         style="fill:#000000;stroke:none">edge[1..*]</text>
+      <line
+         clip-path="url(#clipPath200)"
+         x1="403"
+         x2="396"
+         y1="579"
+         y2="582"
+         id="line1206"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath200)"
+         x1="396"
+         x2="403"
+         y1="582"
+         y2="585"
+         id="line1208"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="192"
+         x2="291"
+         y1="382"
+         y2="382"
+         id="line1210"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="291"
+         x2="291"
+         y1="382"
+         y2="514"
+         id="line1212"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="266"
+         y="478"
+         clip-path="url(#clipPath201)"
+         xml:space="preserve"
+         id="text1214"
+         style="fill:#000000;stroke:none">has</text>
+      <text
+         x="191"
+         y="382"
+         clip-path="url(#clipPath202)"
+         xml:space="preserve"
+         id="text1216"
+         style="fill:#000000;stroke:none">model[1]</text>
+      <text
+         x="250"
+         y="515"
+         clip-path="url(#clipPath203)"
+         xml:space="preserve"
+         id="text1218"
+         style="fill:#000000;stroke:none">edge[*]</text>
+      <line
+         clip-path="url(#clipPath204)"
+         x1="288"
+         x2="291"
+         y1="507"
+         y2="514"
+         id="line1220"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath204)"
+         x1="291"
+         x2="294"
+         y1="514"
+         y2="507"
+         id="line1222"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="192"
+         x2="863"
+         y1="334"
+         y2="334"
+         id="line1224"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="863"
+         x2="863"
+         y1="334"
+         y2="514"
+         id="line1226"
+         style="fill:none;stroke-dasharray:5, 5" />
+      <text
+         x="684"
+         y="330"
+         clip-path="url(#clipPath205)"
+         xml:space="preserve"
+         id="text1228"
+         style="fill:#000000;stroke:none">has</text>
+      <text
+         x="191"
+         y="334"
+         clip-path="url(#clipPath206)"
+         xml:space="preserve"
+         id="text1230"
+         style="fill:#000000;stroke:none">model[1]</text>
+      <text
+         x="866"
+         y="510"
+         clip-path="url(#clipPath207)"
+         xml:space="preserve"
+         id="text1232"
+         style="fill:#000000;stroke:none">face[*]</text>
+      <line
+         clip-path="url(#clipPath208)"
+         x1="860"
+         x2="863"
+         y1="507"
+         y2="514"
+         id="line1234"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath208)"
+         x1="863"
+         x2="866"
+         y1="514"
+         y2="507"
+         id="line1236"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="228"
+         x2="228"
+         y1="1007"
+         y2="1054"
+         id="line1238"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="228"
+         x2="104"
+         y1="1054"
+         y2="1054"
+         id="line1240"
+         style="fill:none" />
+      <line
+         clip-path="url(#clipPath176)"
+         x1="104"
+         x2="104"
+         y1="1054"
+         y2="648"
+         id="line1242"
+         style="fill:none" />
+      <polygon
+         clip-path="url(#clipPath180)"
+         points="104,648 108,656 100,656 "
+         id="polygon1244"
+         style="fill:#ffffff;stroke:none" />
+      <polygon
+         clip-path="url(#clipPath180)"
+         points="104,648 108,656 100,656 "
+         id="polygon1246"
+         style="fill:none" />
+    </g>
+  </g>
+</svg>
diff --git a/dox/user_guides/mesh/images/modeling_algos_mesh_004.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_004.svg
new file mode 100644 (file)
index 0000000..2ca4c42
--- /dev/null
@@ -0,0 +1,820 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="1514" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 1514 1571" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="1571" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M1296 189 L1505 189 L1505 291 L1296 291 L1296 189 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M1296 189 L1503 189 L1503 289 L1296 289 L1296 189 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M1307 194 L1492 194 L1492 212 L1307 212 L1307 194 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M1307 194 L1495 194 L1495 212 L1307 212 L1307 194 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M1301 217 L1497 217 L1497 245 L1301 245 L1301 217 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M1301 217 L1499 217 L1499 245 L1301 245 L1301 217 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M1297 215 L1502 215 L1502 288 L1297 288 L1297 215 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M1296 345 L1505 345 L1505 434 L1296 434 L1296 345 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M1296 345 L1503 345 L1503 432 L1296 432 L1296 345 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M1308 350 L1490 350 L1490 368 L1308 368 L1308 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M1308 350 L1493 350 L1493 368 L1308 368 L1308 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M1297 371 L1502 371 L1502 431 L1297 431 L1297 371 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M12 165 L1168 165 L1168 1562 L12 1562 L12 165 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M12 165 L1166 165 L1166 1560 L12 1560 L12 165 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M13 170 L135 170 L135 188 L13 188 L13 170 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M13 170 L137 170 L137 188 L13 188 L13 170 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M291 189 L523 189 L523 291 L291 291 L291 189 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M291 189 L521 189 L521 289 L291 289 L291 189 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M334 194 L478 194 L478 212 L334 212 L334 194 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M334 194 L481 194 L481 212 L334 212 L334 194 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M296 217 L458 217 L458 245 L296 245 L296 217 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M296 217 L460 217 L460 245 L296 245 L296 217 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M292 215 L520 215 L520 288 L292 288 L292 215 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M446 465 L739 465 L739 567 L446 567 L446 465 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M446 465 L737 465 L737 565 L446 565 L446 465 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M482 470 L700 470 L700 488 L482 488 L482 470 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M482 470 L703 470 L703 488 L482 488 L482 470 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M447 491 L736 491 L736 564 L447 564 L447 491 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
+<path d="M444 777 L737 777 L737 879 L444 879 L444 777 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
+<path d="M444 777 L735 777 L735 877 L444 877 L444 777 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
+<path d="M452 782 L727 782 L727 814 L452 814 L452 782 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
+<path d="M452 782 L730 782 L730 814 L452 814 L452 782 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
+<path d="M445 817 L734 817 L734 876 L445 876 L445 817 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
+<path d="M792 777 L1097 777 L1097 879 L792 879 L792 777 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
+<path d="M792 777 L1095 777 L1095 877 L792 877 L792 777 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
+<path d="M796 782 L1091 782 L1091 814 L796 814 L796 782 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
+<path d="M796 782 L1094 782 L1094 814 L796 814 L796 782 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
+<path d="M793 817 L1094 817 L1094 876 L793 876 L793 817 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
+<path d="M74 465 L367 465 L367 567 L74 567 L74 465 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
+<path d="M74 465 L365 465 L365 565 L74 565 L74 465 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
+<path d="M118 470 L320 470 L320 488 L118 488 L118 470 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
+<path d="M118 470 L323 470 L323 488 L118 488 L118 470 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
+<path d="M75 491 L364 491 L364 564 L75 564 L75 491 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
+<path d="M72 777 L365 777 L365 879 L72 879 L72 777 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath45">
+<path d="M72 777 L363 777 L363 877 L72 877 L72 777 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath46">
+<path d="M75 782 L360 782 L360 814 L75 814 L75 782 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath47">
+<path d="M75 782 L363 782 L363 814 L75 814 L75 782 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath48">
+<path d="M73 817 L362 817 L362 876 L73 876 L73 817 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath49">
+<path d="M36 944 L1145 944 L1145 1538 L36 1538 L36 944 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath50">
+<path d="M36 944 L1143 944 L1143 1536 L36 1536 L36 944 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath51">
+<path d="M37 949 L135 949 L135 967 L37 967 L37 949 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath52">
+<path d="M37 949 L137 949 L137 967 L37 967 L37 949 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath53">
+<path d="M492 980 L713 980 L713 1082 L492 1082 L492 980 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath54">
+<path d="M492 980 L711 980 L711 1080 L492 1080 L492 980 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath55">
+<path d="M499 985 L704 985 L704 1003 L499 1003 L499 985 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath56">
+<path d="M499 985 L707 985 L707 1003 L499 1003 L499 985 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath57">
+<path d="M493 1006 L710 1006 L710 1079 L493 1079 L493 1006 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath58">
+<path d="M60 1124 L281 1124 L281 1226 L60 1226 L60 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath59">
+<path d="M60 1124 L279 1124 L279 1224 L60 1224 L60 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath60">
+<path d="M74 1129 L265 1129 L265 1147 L74 1147 L74 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath61">
+<path d="M74 1129 L268 1129 L268 1147 L74 1147 L74 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath62">
+<path d="M61 1150 L278 1150 L278 1223 L61 1223 L61 1150 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath63">
+<path d="M300 1124 L521 1124 L521 1226 L300 1226 L300 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath64">
+<path d="M300 1124 L519 1124 L519 1224 L300 1224 L300 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath65">
+<path d="M305 1129 L513 1129 L513 1147 L305 1147 L305 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath66">
+<path d="M305 1129 L516 1129 L516 1147 L305 1147 L305 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath67">
+<path d="M301 1150 L518 1150 L518 1223 L301 1223 L301 1150 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath68">
+<path d="M535 1124 L756 1124 L756 1226 L535 1226 L535 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath69">
+<path d="M535 1124 L754 1124 L754 1224 L535 1224 L535 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath70">
+<path d="M543 1129 L746 1129 L746 1147 L543 1147 L543 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath71">
+<path d="M543 1129 L749 1129 L749 1147 L543 1147 L543 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath72">
+<path d="M536 1150 L753 1150 L753 1223 L536 1223 L536 1150 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath73">
+<path d="M775 1124 L995 1124 L995 1226 L775 1226 L775 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath74">
+<path d="M775 1124 L993 1124 L993 1224 L775 1224 L775 1124 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath75">
+<path d="M776 1129 L991 1129 L991 1147 L776 1147 L776 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath76">
+<path d="M776 1129 L994 1129 L994 1147 L776 1147 L776 1129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath77">
+<path d="M776 1150 L992 1150 L992 1223 L776 1223 L776 1150 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath78">
+<path d="M649 1280 L869 1280 L869 1382 L649 1382 L649 1280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath79">
+<path d="M649 1280 L867 1280 L867 1380 L649 1380 L649 1280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath80">
+<path d="M661 1285 L855 1285 L855 1303 L661 1303 L661 1285 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath81">
+<path d="M661 1285 L858 1285 L858 1303 L661 1303 L661 1285 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath82">
+<path d="M650 1306 L866 1306 L866 1379 L650 1379 L650 1306 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath83">
+<path d="M900 1280 L1119 1280 L1119 1382 L900 1382 L900 1280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath84">
+<path d="M900 1280 L1117 1280 L1117 1380 L900 1380 L900 1280 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath85">
+<path d="M906 1285 L1110 1285 L1110 1303 L906 1303 L906 1285 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath86">
+<path d="M906 1285 L1113 1285 L1113 1303 L906 1303 L906 1285 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath87">
+<path d="M901 1306 L1116 1306 L1116 1379 L901 1379 L901 1306 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath88">
+<path d="M852 1413 L1119 1413 L1119 1515 L852 1515 L852 1413 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath89">
+<path d="M852 1413 L1117 1413 L1117 1513 L852 1513 L852 1413 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath90">
+<path d="M856 1418 L1112 1418 L1112 1436 L856 1436 L856 1418 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath91">
+<path d="M856 1418 L1115 1418 L1115 1436 L856 1436 L856 1418 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath92">
+<path d="M853 1439 L1116 1439 L1116 1512 L853 1512 L853 1439 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath93">
+<path d="M290 321 L523 321 L523 423 L290 423 L290 321 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath94">
+<path d="M290 321 L521 321 L521 421 L290 421 L290 321 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath95">
+<path d="M322 326 L489 326 L489 344 L322 344 L322 326 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath96">
+<path d="M322 326 L492 326 L492 344 L322 344 L322 326 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath97">
+<path d="M291 347 L520 347 L520 420 L291 420 L291 347 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath98">
+<path d="M822 321 L1067 321 L1067 423 L822 423 L822 321 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath99">
+<path d="M822 321 L1065 321 L1065 421 L822 421 L822 321 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath100">
+<path d="M834 326 L1053 326 L1053 344 L834 344 L834 326 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath101">
+<path d="M834 326 L1056 326 L1056 344 L834 344 L834 326 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath102">
+<path d="M823 347 L1064 347 L1064 420 L823 420 L823 347 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath103">
+<path d="M276 621 L538 621 L538 723 L276 723 L276 621 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath104">
+<path d="M276 621 L536 621 L536 721 L276 721 L276 621 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath105">
+<path d="M294 626 L518 626 L518 658 L294 658 L294 626 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath106">
+<path d="M294 626 L521 626 L521 658 L294 658 L294 626 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath107">
+<path d="M294 626 L520 626 L520 658 L294 658 L294 626 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath108">
+<path d="M277 661 L535 661 L535 720 L277 720 L277 661 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath109">
+<path d="M792 9 L986 9 L986 111 L792 111 L792 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath110">
+<path d="M792 9 L984 9 L984 109 L792 109 L792 9 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath111">
+<path d="M812 14 L963 14 L963 32 L812 32 L812 14 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath112">
+<path d="M812 14 L966 14 L966 32 L812 32 L812 14 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath113">
+<path d="M793 35 L983 35 L983 108 L793 108 L793 35 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath114">
+<path d="M-1 -1 L1515 -1 L1515 1572 L-1 1572 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath115">
+<path d="M22 597 L365 597 L365 615 L22 615 L22 597 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath116">
+<path d="M22 597 L367 597 L367 615 L22 615 L22 597 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath117">
+<path d="M366 616 L377 616 L377 624 L366 624 L366 616 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath118">
+<path d="M828 908 L1001 908 L1001 926 L828 926 L828 908 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath119">
+<path d="M828 908 L1003 908 L1003 926 L828 926 L828 908 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath120">
+<path d="M904 875 L915 875 L915 883 L904 883 L904 875 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath121">
+<path d="M597 1078 L608 1078 L608 1089 L597 1089 L597 1078 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath122">
+<path d="M400 419 L411 419 L411 430 L400 430 L400 419 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath123">
+<path d="M880 1222 L891 1222 L891 1233 L880 1233 L880 1222 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath124">
+<path d="M127 902 L300 902 L300 920 L127 920 L127 902 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath125">
+<path d="M127 902 L302 902 L302 920 L127 920 L127 902 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath126">
+<path d="M252 875 L263 875 L263 883 L252 883 L252 875 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath127">
+<path d="M434 597 L794 597 L794 615 L434 615 L434 597 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath128">
+<path d="M434 597 L796 597 L796 615 L434 615 L434 597 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath129">
+<path d="M446 616 L457 616 L457 624 L446 624 L446 616 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath130">
+<path d="M1004 1378 L1015 1378 L1015 1389 L1004 1389 L1004 1378 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath131">
+<path d="M733 823 L743 823 L743 832 L733 832 L733 823 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath132">
+<path d="M402 719 L413 719 L413 730 L402 730 L402 719 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath133">
+<path d="M408 896 L581 896 L581 914 L408 914 L408 896 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath134">
+<path d="M408 896 L583 896 L583 914 L408 914 L408 896 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath135">
+<path d="M586 875 L595 875 L595 885 L586 885 L586 875 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath136">
+<path d="M666 359 L721 359 L721 374 L666 374 L666 359 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath137">
+<path d="M815 372 L825 372 L825 381 L815 381 L815 372 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath138">
+<path d="M401 287 L412 287 L412 298 L401 298 L401 287 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath139">
+<path d="M1394 287 L1405 287 L1405 298 L1394 298 L1394 287 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath140">
+<path d="M1164 394 L1174 394 L1174 403 L1164 403 L1164 394 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath141">
+<path d="M579 123 L634 123 L634 138 L579 138 L579 123 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath142">
+<path d="M408 185 L418 185 L418 194 L408 194 L408 185 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath143">
+<path d="M1140 129 L1195 129 L1195 144 L1140 144 L1140 129 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath144">
+<path d="M1385 185 L1395 185 L1395 194 L1385 194 L1385 185 Z"/>
+</clipPath>
+</defs>
+<g fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="rgb(131,122,133)" font-weight="bold" stroke-width="0" stroke-miterlimit="0">
+<rect x="1298" y="191" clip-path="url(#clipPath1)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="1299" y="192" clip-path="url(#clipPath1)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="1297" y="190" clip-path="url(#clipPath2)" fill="white" width="205" rx="2.5" ry="2.5" height="98" stroke="none"/>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<rect x="1297" y="190" clip-path="url(#clipPath2)" fill="none" width="204" rx="2.5" ry="2.5" height="97"/>
+<image x="1308" y="195" clip-path="url(#clipPath3)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="1327" y="208" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">IMeshTools_MeshAlgoFactory</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="1302" y="223" clip-path="url(#clipPath5)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="1321" y="230" clip-path="url(#clipPath6)" stroke="none">GetAlgo(GeomAbs_SurfaceType : , </text>
+<text xml:space="preserve" x="1321" y="243" clip-path="url(#clipPath6)" stroke="none">IMeshTools_Parameters : )</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath7)" fill="none" x1="1298" x2="1501" y1="216" y2="216"/>
+<rect x="1298" y="347" clip-path="url(#clipPath8)" fill="rgb(131,122,133)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="85" stroke="none"/>
+<rect x="1299" y="348" clip-path="url(#clipPath8)" fill="rgb(131,122,133)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="85" stroke="none"/>
+<rect x="1297" y="346" clip-path="url(#clipPath9)" fill="white" width="205" rx="2.5" ry="2.5" height="85" stroke="none"/>
+<rect x="1297" y="346" clip-path="url(#clipPath9)" fill="none" width="204" rx="2.5" ry="2.5" height="84" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath10)" preserveAspectRatio="none" height="16" x="1309" y="351" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="1328" y="364" clip-path="url(#clipPath11)" fill="black" stroke="none" xml:space="preserve">BRepMesh_MeshAlgoFactory</text>
+<line clip-path="url(#clipPath12)" fill="none" x1="1298" x2="1501" y1="372" y2="372" stroke="rgb(39,76,114)"/>
+<rect x="14" y="167" clip-path="url(#clipPath13)" fill="rgb(131,122,133)" width="1152" rx="2.5" opacity="0.2549" ry="2.5" height="1393" stroke="none"/>
+<rect x="15" y="168" clip-path="url(#clipPath13)" fill="rgb(131,122,133)" width="1152" rx="2.5" opacity="0.2549" ry="2.5" height="1393" stroke="none"/>
+<rect x="13" y="166" clip-path="url(#clipPath14)" fill="white" width="1152" rx="2.5" ry="2.5" height="1393" stroke="none"/>
+<rect x="13" y="166" clip-path="url(#clipPath14)" fill="none" width="1151" rx="2.5" ry="2.5" height="1392" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath15)" preserveAspectRatio="none" height="16" x="14" y="171" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAWUlEQVR42mNgGPKA&#13;&#10;EUQoZCz4j0vBgxkJjPgMYIEx7k+Px5BUzFxIuQvwAZDr4C7YUBdAkuaApg2oXgAB&#13;&#10;MV5+kl3BRGksoLiAnZlCA5gZKTWAiQIDYKE6AgEAAu0P6M4KKrgAAAAASUVORK5C&#13;&#10;YII=" xlink:actuate="onLoad"/>
+<text x="33" y="184" clip-path="url(#clipPath16)" fill="black" stroke="none" xml:space="preserve">Triangulation Algo</text>
+<rect x="293" y="191" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="228" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="294" y="192" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="228" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="292" y="190" clip-path="url(#clipPath18)" fill="white" width="228" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="292" y="190" clip-path="url(#clipPath18)" fill="none" width="227" rx="2.5" ry="2.5" height="97"/>
+<image x="335" y="195" clip-path="url(#clipPath19)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="354" y="208" clip-path="url(#clipPath20)" fill="black" stroke="none" xml:space="preserve">IMeshTools_MeshAlgo</text>
+</g>
+<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
+<image x="297" y="223" clip-path="url(#clipPath21)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text xml:space="preserve" x="316" y="230" clip-path="url(#clipPath22)" stroke="none">Perform(IMeshData_Face : , </text>
+<text xml:space="preserve" x="316" y="243" clip-path="url(#clipPath22)" stroke="none">IMeshTools_Parameters : )</text>
+</g>
+<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
+<line clip-path="url(#clipPath23)" fill="none" x1="293" x2="519" y1="216" y2="216"/>
+<rect x="448" y="467" clip-path="url(#clipPath24)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="449" y="468" clip-path="url(#clipPath24)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="447" y="466" clip-path="url(#clipPath25)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="447" y="466" clip-path="url(#clipPath25)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath26)" preserveAspectRatio="none" height="16" x="483" y="471" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="502" y="484" clip-path="url(#clipPath27)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DelaunayBaseMeshAlgo</text>
+<line clip-path="url(#clipPath28)" fill="none" x1="448" x2="735" y1="492" y2="492" stroke="rgb(39,76,114)"/>
+<rect x="446" y="779" clip-path="url(#clipPath29)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="447" y="780" clip-path="url(#clipPath29)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="445" y="778" clip-path="url(#clipPath30)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="445" y="778" clip-path="url(#clipPath30)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath31)" preserveAspectRatio="none" height="16" x="453" y="790" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="472" y="796" clip-path="url(#clipPath32)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DelaunayNodeInsertionMeshAlgo </text>
+<text x="472" y="811" clip-path="url(#clipPath32)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter&gt;</text>
+<line clip-path="url(#clipPath33)" fill="none" x1="446" x2="733" y1="818" y2="818" stroke="rgb(39,76,114)"/>
+<rect x="794" y="779" clip-path="url(#clipPath34)" fill="rgb(131,122,133)" width="301" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="795" y="780" clip-path="url(#clipPath34)" fill="rgb(131,122,133)" width="301" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="793" y="778" clip-path="url(#clipPath35)" fill="white" width="301" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="793" y="778" clip-path="url(#clipPath35)" fill="none" width="300" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath36)" preserveAspectRatio="none" height="16" x="797" y="790" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="816" y="796" clip-path="url(#clipPath37)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DelaunayDeflectionControlMeshAlgo </text>
+<text x="816" y="811" clip-path="url(#clipPath37)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter&gt;</text>
+<line clip-path="url(#clipPath38)" fill="none" x1="794" x2="1093" y1="818" y2="818" stroke="rgb(39,76,114)"/>
+<rect x="76" y="467" clip-path="url(#clipPath39)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="77" y="468" clip-path="url(#clipPath39)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="75" y="466" clip-path="url(#clipPath40)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="75" y="466" clip-path="url(#clipPath40)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath41)" preserveAspectRatio="none" height="16" x="119" y="471" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="138" y="484" clip-path="url(#clipPath42)" fill="black" stroke="none" xml:space="preserve">BRepMesh_SweepLineMeshAlgo</text>
+<line clip-path="url(#clipPath43)" fill="none" x1="76" x2="363" y1="492" y2="492" stroke="rgb(39,76,114)"/>
+<rect x="74" y="779" clip-path="url(#clipPath44)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="75" y="780" clip-path="url(#clipPath44)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="73" y="778" clip-path="url(#clipPath45)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="73" y="778" clip-path="url(#clipPath45)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath46)" preserveAspectRatio="none" height="16" x="76" y="790" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="95" y="796" clip-path="url(#clipPath47)" fill="black" stroke="none" xml:space="preserve">BRepMesh_SweepLineNodeInsertionMeshAlgo </text>
+<text x="95" y="811" clip-path="url(#clipPath47)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter&gt;</text>
+<line clip-path="url(#clipPath48)" fill="none" x1="74" x2="361" y1="818" y2="818" stroke="rgb(39,76,114)"/>
+<rect x="38" y="946" clip-path="url(#clipPath49)" fill="rgb(131,122,133)" width="1105" rx="2.5" opacity="0.2549" ry="2.5" height="590" stroke="none"/>
+<rect x="39" y="947" clip-path="url(#clipPath49)" fill="rgb(131,122,133)" width="1105" rx="2.5" opacity="0.2549" ry="2.5" height="590" stroke="none"/>
+<rect x="37" y="945" clip-path="url(#clipPath50)" fill="white" width="1105" rx="2.5" ry="2.5" height="590" stroke="none"/>
+<rect x="37" y="945" clip-path="url(#clipPath50)" fill="none" width="1104" rx="2.5" ry="2.5" height="589" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath51)" preserveAspectRatio="none" height="16" x="38" y="950" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAWUlEQVR42mNgGPKA&#13;&#10;EUQoZCz4j0vBgxkJjPgMYIEx7k+Px5BUzFxIuQvwAZDr4C7YUBdAkuaApg2oXgAB&#13;&#10;MV5+kl3BRGksoLiAnZlCA5gZKTWAiQIDYKE6AgEAAu0P6M4KKrgAAAAASUVORK5C&#13;&#10;YII=" xlink:actuate="onLoad"/>
+<text x="57" y="963" clip-path="url(#clipPath52)" fill="black" stroke="none" xml:space="preserve">RangeSplitter</text>
+<rect x="494" y="982" clip-path="url(#clipPath53)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="495" y="983" clip-path="url(#clipPath53)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="493" y="981" clip-path="url(#clipPath54)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="493" y="981" clip-path="url(#clipPath54)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath55)" preserveAspectRatio="none" height="16" x="500" y="986" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="519" y="999" clip-path="url(#clipPath56)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DefaultRangeSplitter</text>
+<line clip-path="url(#clipPath57)" fill="none" x1="494" x2="709" y1="1007" y2="1007" stroke="rgb(39,76,114)"/>
+<rect x="62" y="1126" clip-path="url(#clipPath58)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="63" y="1127" clip-path="url(#clipPath58)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="61" y="1125" clip-path="url(#clipPath59)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="61" y="1125" clip-path="url(#clipPath59)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath60)" preserveAspectRatio="none" height="16" x="75" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="94" y="1143" clip-path="url(#clipPath61)" fill="black" stroke="none" xml:space="preserve">BRepMesh_ConeRangeSplitter</text>
+<line clip-path="url(#clipPath62)" fill="none" x1="62" x2="277" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
+<rect x="302" y="1126" clip-path="url(#clipPath63)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="303" y="1127" clip-path="url(#clipPath63)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="301" y="1125" clip-path="url(#clipPath64)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="301" y="1125" clip-path="url(#clipPath64)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath65)" preserveAspectRatio="none" height="16" x="306" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="325" y="1143" clip-path="url(#clipPath66)" fill="black" stroke="none" xml:space="preserve">BRepMesh_CylinderRangeSplitter</text>
+<line clip-path="url(#clipPath67)" fill="none" x1="302" x2="517" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
+<rect x="537" y="1126" clip-path="url(#clipPath68)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="538" y="1127" clip-path="url(#clipPath68)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="536" y="1125" clip-path="url(#clipPath69)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="536" y="1125" clip-path="url(#clipPath69)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath70)" preserveAspectRatio="none" height="16" x="544" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="563" y="1143" clip-path="url(#clipPath71)" fill="black" stroke="none" xml:space="preserve">BRepMesh_SphereRangeSplitter</text>
+<line clip-path="url(#clipPath72)" fill="none" x1="537" x2="752" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
+<rect x="777" y="1126" clip-path="url(#clipPath73)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="778" y="1127" clip-path="url(#clipPath73)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="776" y="1125" clip-path="url(#clipPath74)" fill="white" width="216" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="776" y="1125" clip-path="url(#clipPath74)" fill="none" width="215" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath75)" preserveAspectRatio="none" height="16" x="777" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="796" y="1143" clip-path="url(#clipPath76)" fill="black" stroke="none" xml:space="preserve">BRepMesh_UVParamRangeSplitter</text>
+<line clip-path="url(#clipPath77)" fill="none" x1="777" x2="991" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
+<rect x="651" y="1282" clip-path="url(#clipPath78)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="652" y="1283" clip-path="url(#clipPath78)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="650" y="1281" clip-path="url(#clipPath79)" fill="white" width="216" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="650" y="1281" clip-path="url(#clipPath79)" fill="none" width="215" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath80)" preserveAspectRatio="none" height="16" x="662" y="1286" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="681" y="1299" clip-path="url(#clipPath81)" fill="black" stroke="none" xml:space="preserve">BRepMesh_TorusRangeSplitter</text>
+<line clip-path="url(#clipPath82)" fill="none" x1="651" x2="865" y1="1307" y2="1307" stroke="rgb(39,76,114)"/>
+<rect x="902" y="1282" clip-path="url(#clipPath83)" fill="rgb(131,122,133)" width="215" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="903" y="1283" clip-path="url(#clipPath83)" fill="rgb(131,122,133)" width="215" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="901" y="1281" clip-path="url(#clipPath84)" fill="white" width="215" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="901" y="1281" clip-path="url(#clipPath84)" fill="none" width="214" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath85)" preserveAspectRatio="none" height="16" x="907" y="1286" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="926" y="1299" clip-path="url(#clipPath86)" fill="black" stroke="none" xml:space="preserve">BRepMesh_NURBSRangeSplitter</text>
+<line clip-path="url(#clipPath87)" fill="none" x1="902" x2="1115" y1="1307" y2="1307" stroke="rgb(39,76,114)"/>
+<rect x="854" y="1415" clip-path="url(#clipPath88)" fill="rgb(131,122,133)" width="263" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="855" y="1416" clip-path="url(#clipPath88)" fill="rgb(131,122,133)" width="263" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="853" y="1414" clip-path="url(#clipPath89)" fill="white" width="263" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="853" y="1414" clip-path="url(#clipPath89)" fill="none" width="262" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath90)" preserveAspectRatio="none" height="16" x="857" y="1419" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="876" y="1432" clip-path="url(#clipPath91)" fill="black" stroke="none" xml:space="preserve">BRepMesh_BoundaryParamsRangeSplitter</text>
+<line clip-path="url(#clipPath92)" fill="none" x1="854" x2="1115" y1="1440" y2="1440" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="38" x2="134" y1="971" y2="971" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="134" x2="134" y1="971" y2="971" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="134" x2="139" y1="971" y2="966" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="139" x2="139" y1="966" y2="966" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="139" x2="139" y1="966" y2="945" stroke="rgb(39,76,114)"/>
+<rect x="292" y="323" clip-path="url(#clipPath93)" fill="rgb(131,122,133)" width="229" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="293" y="324" clip-path="url(#clipPath93)" fill="rgb(131,122,133)" width="229" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="291" y="322" clip-path="url(#clipPath94)" fill="white" width="229" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="291" y="322" clip-path="url(#clipPath94)" fill="none" width="228" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath95)" preserveAspectRatio="none" height="16" x="323" y="327" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="342" y="340" clip-path="url(#clipPath96)" fill="black" stroke="none" xml:space="preserve">BRepMesh_BaseMeshAlgo</text>
+<line clip-path="url(#clipPath97)" fill="none" x1="292" x2="519" y1="348" y2="348" stroke="rgb(39,76,114)"/>
+<rect x="824" y="323" clip-path="url(#clipPath98)" fill="rgb(131,122,133)" width="241" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="825" y="324" clip-path="url(#clipPath98)" fill="rgb(131,122,133)" width="241" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="823" y="322" clip-path="url(#clipPath99)" fill="white" width="241" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="823" y="322" clip-path="url(#clipPath99)" fill="none" width="240" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath100)" preserveAspectRatio="none" height="16" x="835" y="327" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="854" y="340" clip-path="url(#clipPath101)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DataStructureOfDelaun</text>
+<line clip-path="url(#clipPath102)" fill="none" x1="824" x2="1063" y1="348" y2="348" stroke="rgb(39,76,114)"/>
+<rect x="278" y="623" clip-path="url(#clipPath103)" fill="rgb(131,122,133)" width="258" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="279" y="624" clip-path="url(#clipPath103)" fill="rgb(131,122,133)" width="258" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="277" y="622" clip-path="url(#clipPath104)" fill="white" width="258" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="277" y="622" clip-path="url(#clipPath104)" fill="none" width="257" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath105)" preserveAspectRatio="none" height="16" x="295" y="634" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="314" y="640" clip-path="url(#clipPath106)" fill="black" stroke="none" xml:space="preserve">BRepMesh_NodeInsertionMeshAlgo </text>
+<text x="314" y="655" clip-path="url(#clipPath107)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter, BaseClass&gt;</text>
+<line clip-path="url(#clipPath108)" fill="none" x1="278" x2="534" y1="662" y2="662" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="14" x2="134" y1="192" y2="192" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="134" x2="134" y1="192" y2="192" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="134" x2="139" y1="192" y2="187" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="139" x2="139" y1="187" y2="187" stroke="rgb(39,76,114)"/>
+<line clip-path="url(#clipPath13)" fill="none" x1="139" x2="139" y1="187" y2="166" stroke="rgb(39,76,114)"/>
+<rect x="794" y="11" clip-path="url(#clipPath109)" fill="rgb(131,122,133)" width="190" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="795" y="12" clip-path="url(#clipPath109)" fill="rgb(131,122,133)" width="190" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
+<rect x="793" y="10" clip-path="url(#clipPath110)" fill="white" width="190" rx="2.5" ry="2.5" height="98" stroke="none"/>
+<rect x="793" y="10" clip-path="url(#clipPath110)" fill="none" width="189" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
+<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath111)" preserveAspectRatio="none" height="16" x="813" y="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
+<text x="832" y="28" clip-path="url(#clipPath112)" fill="black" stroke="none" xml:space="preserve">BRepMesh_FaceDiscret</text>
+<line clip-path="url(#clipPath113)" fill="none" x1="794" x2="982" y1="36" y2="36" stroke="rgb(39,76,114)"/>
+</g>
+<g stroke-linecap="butt" font-size="11" fill="rgb(69,69,69)" font-family="'Segoe UI'" stroke-dasharray="5,5" stroke="rgb(69,69,69)" stroke-width="1.1">
+<line clip-path="url(#clipPath114)" fill="none" x1="219" x2="375" y1="564" y2="622"/>
+<image x="23" y="598" clip-path="url(#clipPath115)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="42" y="611" clip-path="url(#clipPath116)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_SweepLineMeshAlgo</text>
+<line clip-path="url(#clipPath117)" fill="none" x1="367" x2="375" y1="622" y2="622" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath117)" fill="none" x1="375" x2="369" y1="622" y2="617" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="661" x2="913" y1="981" y2="876"/>
+<image x="829" y="909" clip-path="url(#clipPath118)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="848" y="922" clip-path="url(#clipPath119)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
+<line clip-path="url(#clipPath120)" fill="none" x1="908" x2="913" y1="881" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath120)" fill="none" x1="913" x2="905" y1="876" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="672" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="757" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="538" x2="253" y1="981" y2="876"/>
+<image x="128" y="903" clip-path="url(#clipPath124)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="147" y="916" clip-path="url(#clipPath125)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
+<line clip-path="url(#clipPath126)" fill="none" x1="261" x2="253" y1="876" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath126)" fill="none" x1="253" x2="259" y1="876" y2="881" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="214" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="600" x2="447" y1="564" y2="622"/>
+<image x="435" y="598" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="454" y="611" clip-path="url(#clipPath128)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_DelaunayBaseMeshAlgo</text>
+<line clip-path="url(#clipPath129)" fill="none" x1="452" x2="447" y1="617" y2="622" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath129)" fill="none" x1="447" x2="455" y1="622" y2="622" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1414" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1379" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="428" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="1013" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="793" x2="734" y1="827" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="741" x2="734" y1="824" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="734" x2="741" y1="827" y2="830" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="218" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="590" x2="590" y1="981" y2="876"/>
+<image x="409" y="897" clip-path="url(#clipPath133)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="428" y="910" clip-path="url(#clipPath134)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
+<line clip-path="url(#clipPath135)" fill="none" x1="593" x2="590" y1="883" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath135)" fill="none" x1="590" x2="587" y1="876" y2="883" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="520" x2="823" y1="376" y2="376" stroke="rgb(136,136,136)"/>
+<text x="667" y="372" clip-path="url(#clipPath136)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath137)" fill="none" x1="816" x2="823" y1="379" y2="376" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath137)" fill="none" x1="823" x2="816" y1="376" y2="373" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="176" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="896" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="601" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="406" x2="406" y1="322" y2="288" stroke="rgb(136,136,136)"/>
+<polygon fill="white" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1399" x2="1399" y1="346" y2="288" stroke="rgb(136,136,136)"/>
+<polygon fill="white" clip-path="url(#clipPath139)" points=" 1399 288 1403 296 1395 296" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath139)" points=" 1399 288 1403 296 1395 296" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="793" x2="734" y1="827" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="741" x2="734" y1="824" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath131)" fill="none" x1="734" x2="741" y1="827" y2="830" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1297" x2="1165" y1="398" y2="398" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath140)" fill="none" x1="1172" x2="1165" y1="395" y2="398" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath140)" fill="none" x1="1165" x2="1172" y1="398" y2="401" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="176" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="428" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="672" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="896" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="757" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="1013" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="538" x2="253" y1="981" y2="876"/>
+<image x="128" y="903" clip-path="url(#clipPath124)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="147" y="916" clip-path="url(#clipPath125)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
+<line clip-path="url(#clipPath126)" fill="none" x1="261" x2="253" y1="876" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath126)" fill="none" x1="253" x2="259" y1="876" y2="881" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="590" x2="590" y1="981" y2="876"/>
+<image x="409" y="897" clip-path="url(#clipPath133)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="428" y="910" clip-path="url(#clipPath134)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
+<line clip-path="url(#clipPath135)" fill="none" x1="593" x2="590" y1="883" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath135)" fill="none" x1="590" x2="587" y1="876" y2="883" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="661" x2="913" y1="981" y2="876"/>
+<image x="829" y="909" clip-path="url(#clipPath118)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="848" y="922" clip-path="url(#clipPath119)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
+<line clip-path="url(#clipPath120)" fill="none" x1="908" x2="913" y1="881" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath120)" fill="none" x1="913" x2="905" y1="876" y2="876" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="828" x2="409" y1="108" y2="190" stroke="rgb(136,136,136)"/>
+<text x="580" y="136" clip-path="url(#clipPath141)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath142)" fill="none" x1="415" x2="409" y1="186" y2="190" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath142)" fill="none" x1="409" x2="416" y1="190" y2="192" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="966" x2="1393" y1="108" y2="190" stroke="rgb(136,136,136)"/>
+<text x="1141" y="142" clip-path="url(#clipPath143)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath144)" fill="none" x1="1386" x2="1393" y1="192" y2="190" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath144)" fill="none" x1="1393" x2="1387" y1="190" y2="186" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="406" x2="406" y1="322" y2="288" stroke="rgb(136,136,136)"/>
+<polygon fill="white" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="214" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="520" x2="823" y1="376" y2="376" stroke="rgb(136,136,136)"/>
+<text x="667" y="372" clip-path="url(#clipPath136)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
+<line clip-path="url(#clipPath137)" fill="none" x1="816" x2="823" y1="379" y2="376" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath137)" fill="none" x1="823" x2="816" y1="376" y2="373" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="600" x2="447" y1="564" y2="622"/>
+<image x="435" y="598" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="454" y="611" clip-path="url(#clipPath128)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_DelaunayBaseMeshAlgo</text>
+<line clip-path="url(#clipPath129)" fill="none" x1="452" x2="447" y1="617" y2="622" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath129)" fill="none" x1="447" x2="455" y1="622" y2="622" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="219" x2="375" y1="564" y2="622"/>
+<image x="23" y="598" clip-path="url(#clipPath115)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
+<text x="42" y="611" clip-path="url(#clipPath116)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_SweepLineMeshAlgo</text>
+<line clip-path="url(#clipPath117)" fill="none" x1="367" x2="375" y1="622" y2="622" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath117)" fill="none" x1="375" x2="369" y1="622" y2="617" stroke-dasharray="none"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="218" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="601" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1414" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1379" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
+<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="none"/>
+<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="rgb(136,136,136)"/>
+</g>
+</g>
+</svg>
diff --git a/dox/user_guides/mesh/mesh.md b/dox/user_guides/mesh/mesh.md
new file mode 100644 (file)
index 0000000..43976aa
--- /dev/null
@@ -0,0 +1,228 @@
+Mesh {#occt_user_guides__mesh}
+=========================
+
+@tableofcontents
+
+@section occt_modalg_11_1 Mesh presentations
+
+In addition to support of exact geometrical representation of 3D objects Open CASCADE Technology provides functionality to work with tessellated  representations of objects in form of meshes.
+
+Open CASCADE Technology mesh functionality provides:
+- data structures to store surface mesh data associated to shapes, and some basic algorithms to handle these data
+- data structures and algorithms to build surface triangular mesh from *BRep* objects (shapes).
+- tools to extend 3D visualization capabilities of Open CASCADE Technology with displaying meshes along with associated pre- and post-processor data.
+
+Open CASCADE Technology includes two mesh converters:
+- VRML converter translates Open CASCADE shapes to VRML 1.0 files (Virtual Reality Modeling Language). Open CASCADE shapes may be translated in two representations: shaded or wireframe. A shaded representation present shapes as sets of triangles computed by a mesh algorithm while a wireframe representation present shapes as sets of curves.
+- STL converter translates Open CASCADE shapes to STL files. STL (STtereoLithography) format is widely used for rapid prototyping.
+
+Open CASCADE SAS also offers Advanced Mesh Products:
+- <a href="https://www.opencascade.com/content/mesh-framework">Open CASCADE Mesh Framework (OMF)</a>
+- <a href="https://www.opencascade.com/content/express-mesh">Express Mesh</a>
+
+Besides, we can efficiently help you in the fields of surface and volume meshing algorithms, mesh optimization algorithms etc. If you require a qualified advice about meshing algorithms, do not hesitate to benefit from the expertise of our team in that domain.
+
+The projects dealing with numerical simulation can benefit from using SALOME - an Open Source Framework for CAE with CAD data interfaces, generic Pre- and Post- F.E. processors and API for integrating F.E. solvers.
+
+Learn more about SALOME platform on https://www.salome-platform.org
+
+@section occt_modalg_11_2 Meshing algorithm
+
+The algorithm of shape triangulation is provided by the functionality of *BRepMesh_IncrementalMesh* class, which adds a triangulation of the shape to its topological data structure. This triangulation is used to visualize the shape in shaded mode.
+
+~~~~~
+#include <IMeshData_Status.hxx>
+#include <IMeshTools_Parameters.hxx>
+#include <BRepMesh_IncrementalMesh.hxx>
+
+Standard_Boolean meshing_explicit_parameters()
+{
+  const Standard_Real aRadius = 10.0; 
+  const Standard_Real aHeight = 25.0; 
+  BRepPrimAPI_MakeCylinder aCylinder(aRadius, aHeight); 
+  TopoDS_Shape aShape = aCylinder.Shape();
+
+  const Standard_Real aLinearDeflection   = 0.01;
+  const Standard_Real anAngularDeflection = 0.5;
+  BRepMesh_IncrementalMesh aMesher (aShape, aLinearDeflection, Standard_False, anAngularDeflection, Standard_True);
+  const Standard_Integer aStatus = aMesher.GetStatusFlags();
+  return !aStatus;
+}
+
+Standard_Boolean meshing_imeshtools_parameters()
+{
+  const Standard_Real aRadius = 10.0; 
+  const Standard_Real aHeight = 25.0; 
+  BRepPrimAPI_MakeCylinder aCylinder(aRadius, aHeight); 
+  TopoDS_Shape aShape = aCylinder.Shape();
+  
+  IMeshTools_Parameters aMeshParams;
+  aMeshParams.Deflection               = 0.01;
+  aMeshParams.Angle                    = 0.5;
+  aMeshParams.Relative                 = Standard_False;
+  aMeshParams.InParallel               = Standard_True;
+  aMeshParams.MinSize                  = Precision::Confusion();
+  aMeshParams.InternalVerticesMode     = Standard_True;
+  aMeshParams.ControlSurfaceDeflection = Standard_True;
+
+  BRepMesh_IncrementalMesh aMesher (aShape, aMeshParams);
+  const Standard_Integer aStatus = aMesher.GetStatusFlags();
+  return !aStatus;
+}
+~~~~~
+
+The default meshing algorithm *BRepMesh_IncrementalMesh* has two major options to define triangulation -- linear and angular deflections. 
+
+At the first step all edges from a face are discretized according to the specified parameters. 
+
+At the second step, the faces are tessellated. Linear deflection limits the distance between a curve and its tessellation, whereas angular deflection limits the angle between subsequent segments in a polyline.
+
+@figure{/user_guides/mesh/images/modeling_algos_image056.png,"Deflection parameters of BRepMesh_IncrementalMesh algorithm",420}
+
+There are additional options to control behavior of the meshing of face interior: *DeflectionInterior* and *AngleInterior*. *DeflectionInterior* limits the distance between triangles and the face interior. *AngleInterior* (used for tessellation of B-spline faces only) limits the angle between normals (N1, N2 and N3 in the picture) in the nodes of every link of the triangle. There is an exception for the links along the face boundary edges, "Angular Deflection" is used for them during edges discretization.
+
+@figure{/user_guides/mesh/images/modeling_algos_image057.png,"Linear and angular interior deflections",420}
+
+Note that if a given value of linear deflection is less than shape tolerance then the algorithm will skip this value and will take into account the shape tolerance.
+
+The application should provide deflection parameters to compute a satisfactory mesh. Angular deflection is relatively simple and allows using a default value (12-20 degrees). Linear deflection has an absolute meaning and the application should provide the correct value for its models. Giving small values may result in a too huge mesh (consuming a lot of memory, which results in a  long computation time and slow rendering) while big values result in an ugly mesh.
+
+For an application working in dimensions known in advance it can be reasonable to use the absolute linear deflection for all models. This provides meshes according to metrics and precision used in the application (for example, it it is known that the model will be stored in meters, 0.004 m is enough for most tasks).
+
+However, an application that imports models created in other applications may not use the same deflection for all models. Note that actually this is an abnormal situation and this application is probably just a viewer for CAD models with  dimensions varying by an order of magnitude. This problem can be solved by introducing the concept of a relative linear deflection with some  LOD (level of detail). The level of detail is a scale factor for absolute deflection, which is applied to model dimensions.
+
+Meshing covers a shape with a triangular mesh. Other than hidden line removal, you can use meshing to transfer the shape to another tool: a manufacturing tool, a shading algorithm, a finite element algorithm, or a collision algorithm. 
+
+You can obtain information on the shape by first exploring it. To access triangulation of a face in the shape later, use *BRepTool::Triangulation*. To access a polygon, which is the approximation of an edge of the face, use *BRepTool::PolygonOnTriangulation*.
+
+@section occt_modalg_11_3 BRepMesh Architecture
+@subsection occt_modalg_11_3_1 Goals
+
+The main goals of the chosen architecture are:
+  * Remove tight connections between data structures, auxiliary tools and algorithms to create an extensible solution, easy for maintenance and improvements;
+  * Separate the code among several functional units responsible for specific operation for the sake of simplification of debugging and readability;
+  * Introduce new data structures enabling the possibility to manipulate a discrete model of a particular entity (edge, wire, face) in order to perform computations locally instead of processing the entire model;
+  * Implement a new triangulation algorithm replacing the existing functionality that contains overcomplicated solutions that need to be moved to the upper level. In addition, provide the possibility to change the algorithm depending on surface type (initially to speed up meshing of planes).
+
+@subsection occt_modalg_11_3_2 General workflow
+@figure{/user_guides/mesh/images/modeling_algos_mesh_001.svg,"General workflow of BRepMesh component",500}
+
+Generally, the workflow of the component can be divided into six parts:
+  * **Creation of model data structure**: source *TopoDS_Shape* passed to algorithm is analyzed and exploded into faces and edges. The reflection corresponding to each topological entity is created in the data model. Note that underlying algorithms use the data model as input and access it via a common interface which allows creating a custom data model with necessary dependencies between particular entities (see the paragraph "Data model interface");
+  * **Discretize edges 3D & 2D curves**: 3D curve as well as an associated set of 2D curves of each model edge is discretized in order to create a coherent skeleton used as a base in face meshing process. If an edge of the source shape already contains polygonal data which suits the specified parameters, it is extracted from the shape and stored in the model as is. Each edge is processed separately, the adjacency is not taken into account;
+  * **Heal discrete model**: the source *TopoDS_Shape* can contain problems, such as open wires or self-intersections, introduced during design, exchange or modification of model. In addition, some problems like self-intersections can be introduced by roughly discretized edges. This stage is responsible for analysis of a discrete model in order to detect and repair problems or to refuse further processing of a model part in case if a problem cannot be solved;
+  * **Preprocess discrete model**: defines actions specific to the implemented approach to be performed before meshing of faces. By default, this operation iterates over model faces, checks the consistency of existing triangulations and cleans topological faces and adjacent edges from polygonal data in case of inconsistency or marks a face of the discrete model as not required for the computation;
+  * **Discretize faces**: represents the core part performing mesh generation for a particular face based on 2D discrete data. This operation caches polygonal data associated with face edges in the data model for further processing and stores the generated mesh to *TopoDS_Face*;
+  * **Postprocess discrete model**: defines actions specific for the implemented approach to be performed after meshing of faces. By default, this operation stores polygonal data obtained at the previous stage to *TopoDS_Edge* objects of the source model.
+
+@subsection occt_modalg_11_3_3 Common interfaces
+The component structure contains two units: <i>IMeshData</i> (see Data model interface) and <i>IMeshTools</i>, defining common interfaces for the data model and algorithmic tools correspondingly. Class *IMeshTools_Context* represents a connector between these units. The context class caches the data model as well as the tools corresponding to each of six stages of the workflow mentioned above and provides methods to call the corresponding tool safely (designed similarly to *IntTools_Context* in order to keep consistency with OCCT core tools). All stages, except for the first one, use the data model as input and perform a specific action on the entire structure. Thus, API class *IMeshTools_ModelAlgo* is defined in order to unify the interface of tools manipulating the data model. Each tool supposed to process the data model should inherit this interface enabling the possibility to cache it in context. In contrast to others, the model builder interface is defined by another class *IMeshTools_ModelBuilder* due to a different meaning of the stage. The entry point starting the entire workflow is represented by *IMeshTools_MeshBuilder*.
+
+The default implementation of *IMeshTools_Context* is given in *BRepMesh_Context* class initializing the context by instances of default algorithmic tools.
+
+The factory interface *IMeshTools_MeshAlgoFactory* gives the possibility to change the triangulation algorithm for a specific surface. The factory returns an instance of the triangulation algorithm via *IMeshTools_MeshAlgo* interface depending on the type of surface passed as parameter. It is supposed to be used at the face discretization stage.
+
+The default implementation of AlgoFactory is given in *BRepMesh_MeshAlgoFactory* returning algorithms of different complexity chosen according to the passed surface type. In its turn, it is used as the initializer of *BRepMesh_FaceDiscret* algorithm representing the starter of face discretization stage.
+
+@figure{/user_guides/mesh/images/modeling_algos_mesh_002.svg,"Interface describing entry point to meshing workflow",500}
+
+Remaining interfaces describe auxiliary tools:
+  * *IMeshTools_CurveTessellator*: provides a common interface to the algorithms responsible for creation of discrete polygons on 3D and 2D curves as well as tools for extraction of existing polygons from *TopoDS_Edge* allowing to obtain discrete points and the corresponding parameters on curve regardless of the implementation details (see examples of usage of derived classes *BRepMesh_CurveTessellator*, *BRepMesh_EdgeTessellationExtractor* in *BRepMesh_EdgeDiscret*);
+  * *IMeshTools_ShapeExplorer*: the last two interfaces represent visitor design pattern and are intended to separate iteration over elements of topological shape (edges and faces) from the operations performed on a particular element;
+  * *IMeshTools_ShapeVisitor*: provides a common interface for operations on edges and faces of the target topological shape. It can be used in couple with *IMeshTools_ShapeExplorer*. The default implementation available in *BRepMesh_ShapeVisitor* performs initialization of the data model. The advantage of such approach is that the implementation of *IMeshTools_ShapeVisitor* can be changed according to the specific data model whereas the shape explorer implementation remains the same.
+
+@subsection occt_modalg_11_3_4 Create model data structure
+The data structures intended to keep discrete and temporary data required by underlying algorithms are created at the first stage of the meshing procedure. Generally, the model represents dependencies between entities of the source topological shape suitable for the target task.
+
+#### Data model interface
+Unit <i>IMeshData</i> provides common interfaces specifying the data model API used on different stages of the entire workflow. Dependencies and references of the designed interfaces are given in the figure below. A specific interface implementation depends on the target application which allows the developer to implement different models and use custom low-level data structures, e.g. different collections, either <i>NCollection</i> or STL. *IMeshData_Shape* is used as the base class for all data structures and tools keeping the topological shape in order to avoid possible copy-paste.
+
+The default implementation of interfaces is given in <i>BRepMeshData</i> unit. The main aim of the default data model is to provide features performing discretization of edges in a parallel mode. Thus, curve, pcurve and other classes are based on STL containers and smart-pointers as far as <i>NCollection</i> does not provide thread-safety for some cases (e.g. *NCollection_Sequence*). In addition, it closely reflects topology of the source shape, i.e. the number of edges in the data model is equal to the number of edges in the source model; each edge contains a set of pcurves associated with its adjacent faces which allows creation of discrete polygons for all pcurves or the 3D curve of a particular edge in a separate thread.
+
+**Advantages**:
+In case of necessity, the data model (probably with algorithms for its processing) can be easily substituted by another implementation supporting another kind of dependencies between elements.
+
+An additional example of a different data model is the case when it is not required to create a mesh with discrete polygons synchronized between adjacent faces, i.e. in case of necessity to speed up creation of a rough per-face tessellation used for visualization or quick computation only (the approach used in *XDEDRAW_Props*).
+
+@figure{/user_guides/mesh/images/modeling_algos_mesh_003.svg,"Common API of data model",500}
+
+#### Collecting data model
+At this stage the data model is filled by entities according to the topological structure of the source shape. A default implementation of the data model is given in <i>BRepMeshData</i> unit and represents the model as two sets: a set of edges and a set of faces. Each face consists of one or several wires, the first of which always represents the outer wire, while others are internal. In its turn, each wire depicts the ordered sequence of oriented edges. Each edge is characterized by a single 3D curve and zero (in case of free edge) or more 2D curves associated with faces adjacent to this edge. Both 3D and 2D curves represent a set of pairs point-parameter defined in 3D and 2D space of the reference face correspondingly. An additional difference between a curve and a pcurve is that the latter has a reference to the face it is defined for.
+
+Model filler algorithm is represented by *BRepMesh_ShapeVisitor* class creating the model as a reflection to topological shape with help of *BRepMesh_ShapeExplorer* performing iteration over edges and faces of the target shape. Note that the algorithm operates on a common interface of the data model and creates a structure without any knowledge about the implementation details and underlying data structures. The entry point to collecting functionality is *BRepMesh_ModelBuilder* class.
+
+@subsection occt_modalg_11_3_5 Discretize edges 3D & 2D curves
+At this stage only the edges of the data model are considered. Each edge is processed separately (with the possibility to run processing in multiple threads). The edge is checked for existing polygonal data. In case if at least one representation exists and suits the meshing parameters, it is recuperated and used as reference data for tessellation of the whole set of pcurves as well as 3D curve assigned to the edge (see *BRepMesh_EdgeTessellationExtractor*). Otherwise, a new tessellation algorithm is created and used to generate the initial polygon (see *BRepMesh_CurveTessellator*) and the edge is marked as outdated. In addition, the model edge is updated by deflection as well as recomputed same range, same parameter and degeneracy parameters. See *BRepMesh_EdgeDiscret* for implementation details.
+
+<i>IMeshData</i> unit defines interface *IMeshData_ParametersListArrayAdaptor*, which is intended to adapt arbitrary data structures to the *NCollection_Array1* container API. This solution is made to use both *NCollection_Array1* and *IMeshData_Curve* as the source for *BRepMesh_EdgeParameterProvider* tool intended to generate a consistent parametrization taking into account the same parameter property.
+
+@subsection occt_modalg_11_3_6 Heal discrete model
+In general, this stage represents a set of operations performed on the entire discrete model in order to resolve inconsistencies due to the problems caused by design, translation or rough discretization. A different sequence of operations can be performed depending on the target triangulation algorithm, e.g. there are different approaches to process self-intersections – either to amplify edges discretization by decreasing the target precision or to split links at the intersection points. At this stage the whole set of edges is considered in aggregate and their adjacency is taken into account. A default implementation of the model healer is given in *BRepMesh_ModelHealer* which performs the following actions:
+  * Iterates over model faces and checks their wires for consistency, i.e. whether the wires are closed and do not contain self-intersections. The data structures are designed free of collisions, thus it is possible to run processing in a parallel mode;
+  * Forcibly connects the ends of adjacent edges in the parametric space, closing gaps between possible disconnected parts. The aim of this operation is to create a correct discrete model defined relatively to the parametric space of the target face taking into account connectivity and tolerances of 3D space only. This means that no specific computations are made to determine U and V tolerance;
+  * Registers intersections on edges forming the face shape. Two solutions are possible in order to resolve self-intersection: 
+    * Decrease deflection of a particular edge and update its discrete model. After that the workflow "intersection check – amplification" is repeated up to 5 times. As the result, target edges contain a finer tessellation and meshing continues or the face is marked by *IMeshData_SelfIntersectingWire* status and refused from further processing;
+    * Split target edges by intersection point and synchronize the updated polygon with curve and remaining pcurves associated to each edge. This operation presents a more robust solution comparing to the amplification procedure with a guaranteed result, but it is more difficult for implementation from the point of view of synchronization functionality.
+
+@subsection occt_modalg_11_3_7 Preprocess discrete model
+This stage implements actions to be performed before meshing of faces. Depending on target goals it can be changed or omitted. By default, *BRepMesh_ModelPreProcessor* implements the functionality checking topological faces for consistency of existing triangulation, i.e.: consistency with the target deflection parameter; indices of nodes referenced by triangles do not exceed the number of nodes stored in a triangulation. If the face fails some checks, it is cleaned from triangulation and its adjacent edges are cleaned from existing polygons. This does not affect a discrete model and does not require any recomputation as the model keeps tessellations for the whole set of edges despite consistency of their polygons.
+
+@subsection occt_modalg_11_3_8 Discretize faces
+Discretization of faces is the general part of meshing algorithm. At this stage edges tessellation data obtained and processed on previous steps is used to form contours of target faces and passed as input to the triangulation algorithm. Default implementation is provided by *BRepMesh_FaceDiscret* class which represents a starter for triangulation algorithm. It iterates over faces available in the data model, creates an instance of the triangulation algorithm according to the type of surface associated with each face via *IMeshTools_MeshAlgoFactory* and executes it. Each face is processed separately, thus it is possible to process faces in a parallel mode. The class diagram of face discretization is given in the figure below.
+@figure{/user_guides/mesh/images/modeling_algos_mesh_004.svg,"Class diagram of face discrete stage",300}
+
+In general, face meshing algorithms have the following structure:
+  * *BRepMesh_BaseMeshAlgo* implements *IMeshTools_MeshAlgo* interface and the base functionality for inherited algorithms. The main goal of this class is to initialize an instance of *BRepMesh_DataStructureOfDelaun* as well as auxiliary data structures suitable for nested algorithms using face model data passed as input parameter. Despite implementation of triangulation algorithm this structure is currently supposed as common for OCCT. However, the user is free to implement a custom algorithm and supporting data structure accessible via *IMeshTools_MeshAlgo* interface, e.g. to connect a 3-rd party meshing tool that does not support *TopoDS_Shape* out of box. For this, such structure provides the possibility to distribute connectors to various algorithms in the form of plugins;
+  * *BRepMesh_DelaunayBaseMeshAlgo* and *BRepMesh_SweepLineMeshAlgo* classes implement core meshing functionality operating directly on an instance of *BRepMesh_DataStructureOfDelaun*. The algorithms represent mesh generation tools adding new points from the data structure to the final mesh;
+  * *BRepMesh_NodeInsertionMeshAlgo* class represents a wrapper intended to extend the algorithm inherited from *BRepMesh_BaseMeshAlgo* to enable the functionality generating surface nodes and inserting them into the structure. On this level, an instance of the classification tool is created and can be used to accept-reject internal nodes. In addition, computations necessary for scaling UV coordinates of points relatively to the range specified for the corresponding direction are performed. As far as both triangulation algorithms work on static data provided by the structure, new nodes are added at the initialization stage. Surface nodes are generated by an auxiliary tool called range splitter and passed as template parameter (see Range splitter);
+  * Classes *BRepMesh_DelaunayNodeInsertionMeshAlgo* and *BRepMesh_SweepLineNodeInsertionMeshAlgo* implement algorithm-specific functionality related to addition of internal nodes supplementing functionality provided by *BRepMesh_NodeInsertionMeshAlgo*;
+  * *BRepMesh_DelaunayDeflectionControlMeshAlgo* extends functionality of *BRepMesh_DelaunayNodeInsertionMeshAlgo* by additional procedure controlling deflection of generated triangles.
+
+
+
+
+
+BRepMesh provides user a way to switch default triangulation algorithm to a custom one, either implemented by user or available worldwide. There are three base classes that can be currently used to integrate 3rd-party algorithms:
+
+* *BRepMesh_ConstrainedBaseMeshAlgo* base class for tools providing generation of triangulations with constraints requiring no common processing by BRepMesh;
+* *BRepMesh_CustomBaseMeshAlgo* provides the entry point for generic algorithms without support of constraints and supposed for generation of base mesh only. Constraint edges are processed using standard functionality provided by the component itself upon background mesh produced by 3rd-party solver;
+* *BRepMesh_CustomDelaunayBaseMeshAlgo* contains initialization part for tools used by BRepMesh for checks or optimizations using results of 3rd-party algorithm.
+
+Meshing algorithms could be provided by implemeting *IMeshTools_MeshAlgoFactory* with related interfaces and passing it to *BRepMesh_Context::SetFaceDiscret()*. OCCT comes with two base 2D meshing algorithms: *BRepMesh_MeshAlgoFactory* (used by default) and *BRepMesh_DelabellaMeshAlgoFactory*.
+
+The following example demonstrates how it could be done from *Draw* environment:
+
+~~~~~
+psphere s 10
+
+### Default Algo ###
+incmesh s 0.0001 -algo default
+
+### Delabella Algo ###
+incmesh s 0.0001 -algo delabella
+~~~~~
+
+The code snippet below shows passing a custom mesh factory to BRepMesh_IncrementalMesh:
+
+~~~~~
+IMeshTools_Parameters aMeshParams;
+Handle(IMeshTools_Context) aContext = new BRepMesh_Context();
+aContext->SetFaceDiscret (new BRepMesh_FaceDiscret (new BRepMesh_DelabellaMeshAlgoFactory()));
+
+BRepMesh_IncrementalMesh aMesher;
+aMesher.SetShape (aShape);
+aMesher.ChangeParameters() = aMeshParams;
+
+aMesher.Perform (aContext);
+~~~~~
+
+#### Range splitter
+Range splitter tools provide functionality to generate internal surface nodes defined within the range computed using discrete model data. The base functionality is provided by *BRepMesh_DefaultRangeSplitter* which can be used without modifications in case of planar surface. The default splitter does not generate any internal node.
+
+*BRepMesh_ConeRangeSplitter*, *BRepMesh_CylinderRangeSplitter* and *BRepMesh_SphereRangeSplitter* are specializations of the default splitter intended for quick generation of internal nodes for the corresponding type of analytical surface.
+
+*BRepMesh_UVParamRangeSplitter* implements base functionality taking discretization points of face border into account for node generation. Its successors BRepMesh_TorusRangeSplitter and *BRepMesh_NURBSRangeSplitter* extend the base functionality for toroidal and NURBS surfaces correspondingly.
+
+@subsection occt_modalg_11_3_9 Postprocess discrete model
+This stage implements actions to be performed after meshing of faces. Depending on target goals it can be changed or omitted. By default, *BRepMesh_ModelPostProcessor* commits polygonal data stored in the data model to *TopoDS_Edge*. 
\ No newline at end of file
index d3ee059e526cbac080f1e6673f856c103a4ca81c..6d51f6e72b05842b42a6d2abd710e2c4807b1e9e 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image003.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image003.png differ
index 6b371fb255cbec9765aa06beaee3364fde741eca..de827453c35361571d7c2104fc3d631a57008c13 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image004.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image004.png differ
index 42bf360518c793641e088e123de6f1b366245823..2820ffa0930e37093793704361138e53dc3dbf2b 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image014.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image014.png differ
index 7ff604a603c2c5f660f46ed8ee55f3f93a57328b..ea9bebb18d0ec9315a0c7ee2578df952f8c4a16e 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image015.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image015.png differ
index 2e1367d331b61a71e26423139b2d2c32b4810932..919d1dcfe7855aa6cb497cdb5fc2e601392528b8 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image016.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image016.png differ
index 88e0101e4900cb852cee81651d7219727ea85fa0..c56ae77fd20caf841bfaaf8c8ad624cc6f25ff33 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image017.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image017.png differ
index d390c72d9861131f066e9a8a9b9b3cb0996a00d4..54bd1b6457cf350a81021cc34755bff06ac39962 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image021.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image021.png differ
index 505d403a5f8f8bf83d3a6d83b923e5e66ca2affa..42061ea6d90631772e375e085bda52122e0731d6 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image023.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image023.png differ
index d93ccea4471765e1c235de9fcc7bd13d70863f30..072eb71babca00de27c67efbe971528fae46fc72 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image028.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image028.png differ
index 7ce050d43782f13c33d4422ff05c64ca764df056..bd23d61bb98ed640b6a85a3feaca76a76624583e 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image030.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image030.png differ
index df85effd0c6f7c42eff79958746e1e4143bbf4d4..1a5f60f6b1562f12e5e4e0fe21574d0bd0b3b2bb 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image035.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image035.png differ
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image037.gif b/dox/user_guides/modeling_algos/images/modeling_algos_image037.gif
new file mode 100644 (file)
index 0000000..4693c9c
Binary files /dev/null and b/dox/user_guides/modeling_algos/images/modeling_algos_image037.gif differ
index 6a44f401119af3a1a2f44150f8437dd19df76e20..b72cd4ce9bc263ecd5e3fbfb764eb3e6f5b4e8fe 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image040.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image040.png differ
index 281438243a51b1d9837e3a48d02bbe5b176828e8..263b4b33786b28d0af78f4ab95df6934c2f2d25d 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image041.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image041.png differ
index 31c47f92f705e9f8b9e36168e2610e31ff3503b9..504d71726cf019b0cc7065973db6c24018d52c3b 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image043.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image043.png differ
index 8ab7eba802cf141095b920399aeb0580bfed2f00..d9c5dfb7d2b7e2edfa55eb0a72eb415194a81837 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image045.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image045.png differ
index 784681e85ec666b1f78fb153d957c3e9d1f509a6..f0c0b1472f87f65f18916b3d9299f2b02dab7840 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image047.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image047.png differ
index 5f9a7369f4a569c9e59b3ce8c67be79178eb7adc..a35fc4bd39cac363d57462854108ef6a0bd5d722 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image048.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image048.png differ
index 746e721f0a5077ad6fd9eaeab794f5f766278a69..ec330cc88dd2b69430f3776066092d7f67aa900b 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image049.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image049.png differ
index f52a14560c02a11b988c7b806df106f4487df0f5..c0eb80ee61fd1c0b2cfa108bb3c2959a8d67c419 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image051.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image051.png differ
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image056.png b/dox/user_guides/modeling_algos/images/modeling_algos_image056.png
deleted file mode 100644 (file)
index f1f724e..0000000
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image056.png and /dev/null differ
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image057.png b/dox/user_guides/modeling_algos/images/modeling_algos_image057.png
deleted file mode 100644 (file)
index 450b8c6..0000000
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image057.png and /dev/null differ
index 6d96ab4d51d358317ca98bc763a619c8143854bf..61179be280a3727c0f6bdd12b87867341d28a633 100644 (file)
Binary files a/dox/user_guides/modeling_algos/images/modeling_algos_image058.png and b/dox/user_guides/modeling_algos/images/modeling_algos_image058.png differ
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_001.svg b/dox/user_guides/modeling_algos/images/modeling_algos_mesh_001.svg
deleted file mode 100644 (file)
index a02e84d..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="503" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 503 507" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="507" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
-<!--Generated by the Batik Graphics2D SVG Generator-->
-<defs id="genericDefs"/>
-<g>
-<defs id="defs1">
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
-<path d="M9 38 L494 38 L494 498 L9 498 L9 38 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
-<path d="M9 38 L492 38 L492 496 L9 496 L9 38 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
-<path d="M185 43 L316 43 L316 61 L185 61 L185 43 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
-<path d="M185 43 L319 43 L319 61 L185 61 L185 43 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
-<path d="M25 134 L206 134 L206 206 L25 206 L25 134 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
-<path d="M25 134 L204 134 L204 204 L25 204 L25 134 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
-<path d="M40 139 L191 139 L191 154 L40 154 L40 139 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
-<path d="M153 122 L175 122 L175 144 L153 144 L153 122 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
-<path d="M97 105 L232 105 L232 123 L97 123 L97 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
-<path d="M97 105 L234 105 L234 123 L97 123 L97 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
-<path d="M285 134 L470 134 L470 206 L285 206 L285 134 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
-<path d="M285 134 L468 134 L468 204 L285 204 L285 134 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
-<path d="M292 139 L463 139 L463 154 L292 154 L292 139 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
-<path d="M309 122 L331 122 L331 144 L309 144 L309 122 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
-<path d="M253 105 L388 105 L388 123 L253 123 L253 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
-<path d="M253 105 L390 105 L390 123 L253 123 L253 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
-<path d="M27 242 L208 242 L208 314 L27 314 L27 242 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
-<path d="M27 242 L206 242 L206 312 L27 312 L27 242 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
-<path d="M63 247 L171 247 L171 262 L63 262 L63 247 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
-<path d="M286 242 L470 242 L470 314 L286 314 L286 242 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
-<path d="M286 242 L468 242 L468 312 L286 312 L286 242 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
-<path d="M307 247 L448 247 L448 262 L307 262 L307 247 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
-<path d="M28 350 L204 350 L204 422 L28 422 L28 350 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
-<path d="M28 350 L202 350 L202 420 L28 420 L28 350 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
-<path d="M74 355 L158 355 L158 370 L74 370 L74 355 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
-<path d="M286 350 L470 350 L470 422 L286 422 L286 350 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
-<path d="M286 350 L468 350 L468 420 L286 420 L286 350 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
-<path d="M304 355 L451 355 L451 370 L304 370 L304 355 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
-<path d="M45 74 L77 74 L77 106 L45 106 L45 74 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
-<path d="M76 74 L158 74 L158 89 L76 89 L76 74 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
-<path d="M357 458 L389 458 L389 490 L357 490 L357 458 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
-<path d="M388 458 L421 458 L421 473 L388 473 L388 458 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
-<path d="M129 26 L151 26 L151 48 L129 48 L129 26 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
-<path d="M14 9 L267 9 L267 27 L14 27 L14 9 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
-<path d="M14 9 L269 9 L269 27 L14 27 L14 9 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
-<path d="M469 473 L487 473 L487 491 L469 491 L469 473 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
-<path d="M-1 -1 L504 -1 L504 508 L-1 508 L-1 -1 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
-<path d="M279 272 L289 272 L289 281 L279 281 L279 272 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
-<path d="M102 343 L111 343 L111 353 L102 353 L102 343 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
-<path d="M302 119 L312 119 L312 128 L302 128 L302 119 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
-<path d="M110 235 L119 235 L119 245 L110 245 L110 235 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
-<path d="M279 380 L289 380 L289 389 L279 389 L279 380 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
-<path d="M369 451 L378 451 L378 461 L369 461 L369 451 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
-<path d="M56 127 L65 127 L65 137 L56 137 L56 127 Z"/>
-</clipPath>
-</defs>
-<g fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="rgb(131,122,133)" stroke-width="0" stroke-miterlimit="0">
-<rect x="11" y="40" clip-path="url(#clipPath1)" width="481" rx="12.5" opacity="0.2549" ry="12.5" height="456" stroke="none"/>
-<rect x="12" y="41" clip-path="url(#clipPath1)" width="481" rx="12.5" opacity="0.2549" ry="12.5" height="456" stroke="none"/>
-<rect x="10" y="39" clip-path="url(#clipPath2)" fill="white" width="481" rx="12.5" ry="12.5" height="456" stroke="none"/>
-</g>
-<g fill="rgb(114,73,110)" stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt" stroke="rgb(114,73,110)">
-<rect x="10" y="39" clip-path="url(#clipPath2)" fill="none" width="480" rx="12.5" ry="12.5" height="455"/>
-<image x="186" y="44" clip-path="url(#clipPath3)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABP0lEQVR42mNgGPKA&#13;&#10;EV3g+LWn/4ObljE8XV7CIB3ZAxbDxl5bF8VgqSXNyIhN876uJDD/P9SG/0i2/YfK&#13;&#10;OJfNBxuCYsCPn3/+//n3D85/8f4LUC1UCeN/OBtk7f///xmUpQQZGN3K1/zH5rf1&#13;&#10;DX4Mrz99Z6hYfgFFfH6mFdAARoaX778yWObPYmABCU7Ic0dRVDBpJ1hR7vTDDH2Z&#13;&#10;jkDboDYDnR7avoNhbZUnAwszE1iMiejQRQOszMzgAGXCFz9///xluPP8EwMbKxMY&#13;&#10;33nxCSwGAiwsTODYYIE5GVM/I8NKoFNDmrcw/EcK2E1NAVAXMGG6FBQLyBH79z/u&#13;&#10;iASxOdmYUb1w/u5LBsW4fnAAggxiYWICBhaIZkRjMzKoxPcznLj+DNUAUMoCJQ6F&#13;&#10;2D4GVqBqEK0Q04+F3Q9PiQOfmQBRlXo/vG/acgAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="205" y="57" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">BRepMesh Workflow</text>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke="rgb(131,122,133)" font-weight="bold" stroke-width="1.1">
-<rect x="27" y="136" clip-path="url(#clipPath5)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="28" y="137" clip-path="url(#clipPath5)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="26" y="135" clip-path="url(#clipPath6)" fill="white" width="177" rx="12.5" ry="12.5" height="68" stroke="none"/>
-<rect x="26" y="135" clip-path="url(#clipPath6)" fill="none" width="176" rx="12.5" ry="12.5" height="67" stroke="rgb(224,133,3)"/>
-<text x="41" y="152" clip-path="url(#clipPath7)" fill="black" stroke="none" xml:space="preserve">Create Model Data Structure</text>
-</g>
-<g fill="rgb(69,69,69)" stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt" stroke="rgb(69,69,69)">
-<rect x="154" y="123" clip-path="url(#clipPath8)" width="20" height="20" stroke="none"/>
-<rect x="154" y="123" clip-path="url(#clipPath8)" fill="none" width="19" height="19" stroke="rgb(136,136,136)" stroke-width="0.1"/>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(136,136,136)" font-family="'Segoe UI'" stroke="rgb(136,136,136)" stroke-width="0.1">
-<image x="98" y="106" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAkUlEQVR42mNgGAX0&#13;&#10;B/O3XP+PzGcEERZVa/9bqonDBY/feslwoi2YEZsBel6t/wuzghgSfTTB8kwgQl9e&#13;&#10;mCHWTh2OQXxc4NK2asb+aevgLmEBEe++/GS4++IjXBGID7MNl0EwQ8AGvPn8g+HG&#13;&#10;0w9wSRAfZhshb4ANuP70PcOHrz/hCp5/+IbTC+hhQHEsjAIGBgCVuEWDRzoaKgAA&#13;&#10;AABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="117" y="119" clip-path="url(#clipPath10)" fill="black" stroke="none" xml:space="preserve">IMeshData_Model : [1]</text>
-<rect x="287" y="136" clip-path="url(#clipPath11)" fill="rgb(131,122,133)" width="181" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="288" y="137" clip-path="url(#clipPath11)" fill="rgb(131,122,133)" width="181" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="286" y="135" clip-path="url(#clipPath12)" fill="white" width="181" rx="12.5" ry="12.5" height="68" stroke="none"/>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(224,133,3)" font-family="'Segoe UI'" stroke="rgb(224,133,3)" font-weight="bold" stroke-width="1.1">
-<rect x="286" y="135" clip-path="url(#clipPath12)" fill="none" width="180" rx="12.5" ry="12.5" height="67"/>
-<text x="293" y="152" clip-path="url(#clipPath13)" fill="black" stroke="none" xml:space="preserve">Discretize Edges 3D &amp; 2D Curves</text>
-</g>
-<g fill="rgb(209,209,209)" stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt" stroke="rgb(209,209,209)">
-<rect x="310" y="123" clip-path="url(#clipPath14)" width="20" height="20" stroke="none"/>
-<rect x="310" y="123" clip-path="url(#clipPath14)" fill="none" width="19" height="19" stroke="rgb(136,136,136)" stroke-width="0.1"/>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(136,136,136)" font-family="'Segoe UI'" stroke="rgb(136,136,136)" stroke-width="0.1">
-<image x="254" y="106" clip-path="url(#clipPath15)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnklEQVR42mNgGAW0&#13;&#10;A/O3XP9PjDpGXBJ6Xq3/C7OCGBJ9NOFqLKrW/rdUE4erOX7rJQMzLgNe3t7XeP+D&#13;&#10;VENH/9SGjcumNoLEvGOyGpKcNBn05UXA+MnbLwwsMNtwGdQ/bR3YOyCXvPvyk+Hu&#13;&#10;i49wORAfbMClbdWMxHjjzecfDDeefoDLg/gspITB9afvGT58/QlX8/zDN8pjYRQw&#13;&#10;MAAAk/9KnUC0a2QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="273" y="119" clip-path="url(#clipPath16)" fill="black" stroke="none" xml:space="preserve">IMeshData_Model : [1]</text>
-<rect x="29" y="244" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="30" y="245" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="177" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="28" y="243" clip-path="url(#clipPath18)" fill="white" width="177" rx="12.5" ry="12.5" height="68" stroke="none"/>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(224,133,3)" font-family="'Segoe UI'" stroke="rgb(224,133,3)" font-weight="bold" stroke-width="1.1">
-<rect x="28" y="243" clip-path="url(#clipPath18)" fill="none" width="176" rx="12.5" ry="12.5" height="67"/>
-<text x="64" y="260" clip-path="url(#clipPath19)" fill="black" stroke="none" xml:space="preserve">Heal Discrete Model</text>
-<rect x="288" y="244" clip-path="url(#clipPath20)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="289" y="245" clip-path="url(#clipPath20)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="287" y="243" clip-path="url(#clipPath21)" fill="white" width="180" rx="12.5" ry="12.5" height="68" stroke="none"/>
-<rect x="287" y="243" clip-path="url(#clipPath21)" fill="none" width="179" rx="12.5" ry="12.5" height="67"/>
-<text x="308" y="260" clip-path="url(#clipPath22)" fill="black" stroke="none" xml:space="preserve">Preprocess Discrete Model</text>
-<rect x="30" y="352" clip-path="url(#clipPath23)" fill="rgb(131,122,133)" width="172" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="31" y="353" clip-path="url(#clipPath23)" fill="rgb(131,122,133)" width="172" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="29" y="351" clip-path="url(#clipPath24)" fill="white" width="172" rx="12.5" ry="12.5" height="68" stroke="none"/>
-<rect x="29" y="351" clip-path="url(#clipPath24)" fill="none" width="171" rx="12.5" ry="12.5" height="67"/>
-<text x="75" y="368" clip-path="url(#clipPath25)" fill="black" stroke="none" xml:space="preserve">Discretize Faces</text>
-<rect x="288" y="352" clip-path="url(#clipPath26)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="289" y="353" clip-path="url(#clipPath26)" fill="rgb(131,122,133)" width="180" rx="12.5" opacity="0.2549" ry="12.5" height="68" stroke="none"/>
-<rect x="287" y="351" clip-path="url(#clipPath27)" fill="white" width="180" rx="12.5" ry="12.5" height="68" stroke="none"/>
-<rect x="287" y="351" clip-path="url(#clipPath27)" fill="none" width="179" rx="12.5" ry="12.5" height="67"/>
-<text x="305" y="368" clip-path="url(#clipPath28)" fill="black" stroke="none" xml:space="preserve">Postprocess Discrete Model</text>
-</g>
-<g stroke-width="1.1" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="46" y="75" clip-path="url(#clipPath29)" width="30" xlink:href="data:image/png;base64,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&#13;&#10;g/+qk+iEV25wp+aw5iBnnRmTmPxyQH5C6GPge9We9w9wNeosJLt3zgSVpci6eO9x&#13;&#10;NAom97FVXseILWFPsA8NJW5X3r1kvy7wrwV7rOgcdFxmdW3CpsfFKcw4zzFtXksH&#13;&#10;2292b//+nzg2kL3yvMuyXVvZK081qSgmi0e465fp9ijoPMs59rT3pVO80Wk42v78&#13;&#10;PNpFCRlgSqO5tIIp7RmD/8k2MyeakT4MhX9l2JMYfcPHf5Zjg6BZBUGz08qyc/gD&#13;&#10;X427Gz8YbP75xyKsSa+Ug3YdIuG4g2J81b/UkL8MOuxrHu4FTxzi3S/OcFmymL+k&#13;&#10;GhtpqHOrWKCNl2p0fuZEDxX+NWP4V4I9nYw50B0EXao0pUpPM2nO42+5EG/f+tFg&#13;&#10;65MfeiH1dOZuO+/y5K5JMnHZ3xzIj4E+rXIuJm32ooMIpR917pzEv0ivWo8Yts/A&#13;&#10;GKNLoTL9AnjtawF/atjToCkZixifwyux6SmGoOE8dXkOH3zykxEmYqhmoA4S6uYs&#13;&#10;esMmI1P7XfY3+TZROWN8PApXxPQJfM7j3v3jVqvQqyz2yU4iNVpzrpgJVKlf01nS&#13;&#10;9tWAw9N3mFyBVfZTNywZzXVr2sCSB/wkk/asZfr8cOPjf4h273zXKzW4U3RQ25Nt&#13;&#10;8+nY/I1U8+NVPu3Gi352sg/ZiexFdiP7kR3JnmRXsi/ZmexNdif7Ewc+6Sc+XNhF&#13;&#10;FyiNQa+vr4cBtpniAVuwKjmhmHjFGHY+2vr8R1H33kX8wkyWsFnlV7PhRZEp2iUp&#13;&#10;e9z23+KtcOuQ2cM1N4NsOBbtRXYj+5EdyZ5kV7Iv2ZnsTXYn+xMH4vE0wJ9iwiF6&#13;&#10;jHevyjXG/JIvS6JXbfDArKB/PmVVei7q3fv+sL3+pms/7wHtu+YGGycqf8ugp4Ej&#13;&#10;KIu8uMk6Xw4YkCF7Mi+Iw9oJBb6f0OBKKa5qPQdqbcAU8qBXqkNV9riJ1WhLEUbl&#13;&#10;cqLqJhRN/JYntVZn037rjeHmX/9OBnU3meBh0DNFP1bhZJ98MGWscJqUgfYku5J9&#13;&#10;yc5kb7I72Z84EA/i4vgcRoKWxemsv5tGr2hQY2SSZeoCBWYuqHR4sXfnw7exeeV5&#13;&#10;RTJGXZ97QPMZ6McCn2Tq2WPI4zt1qVuIdm+f8GvH25KmMxuWjLROQJWS8qisXl1r&#13;&#10;6fWf/8o+ycAJPIn7dnH67HqomrpipVoIrTyOzcDT1ppX+vf++A/gl/3xkKQbqfJm&#13;&#10;oL8S8ELhnrMj2ZPsSvYlO5O9ye5kf+JAPIiLi99PkJjDl3eFvuviNE08iLd5nSYd&#13;&#10;aGtOMW7O9DfX/t5q3ShGrGjMmVPzCooYPQP9lRRO3an5HDkHHO1LdiZ7k93J/sSB&#13;&#10;eBAX4kOcvsydw5c2sy79wk3UpxkmFoaLHOwJTB5ORbv3vhv1HlzI+rirk3Y0iFnW&#13;&#10;fRhZOjXN3ATIIobXGNmb7E72dxyQB3EhPsTpy5pj8rHZ9/WrcOf4R35DiArw+jwT&#13;&#10;5phJ9Ulm01eGDz7+Oy+s8WwMulTMzsi6Pmegv3aW7kwH1tlV2JKb/uTplJPd/Urz&#13;&#10;vlFej3uiAwaGSrSi1vaGYhsXjZs39TTKLlRN2R7NAlWiXhPcLiJ+bGrBSn/j+n/C&#13;&#10;q84fTzZwii56xmau+zAUnrlzkU2gdB0v5TxUBj7ZnzgQD+JCfIhTlp0/Wt3waFVf&#13;&#10;BFqGw1inYrmY1zZd5taeSLutb6lR+1QxR9vF6em+bs5noA8B+HgVixsW9bP47ebE&#13;&#10;VxnZnzgQD+JCfIiT4/WYZA0ep2oK/obP1Vg6aoLlxw2zK/3WX97CD+QOdD5HLJv0&#13;&#10;B19pNufs9ljkuYBE3gYfA+fEgXgQF+JDnIjX49QNB6ma2tTuKjEbVa7svPFYk+FJ&#13;&#10;Rxsffx9DQq2Ytw155p3NLJm572fnziGb6TJO2CoUmmsZDxQh8iFOxIu4uT6RA9QN&#13;&#10;B6m61WSyWl8IrPBrAsSCMeKYselKtHvn21nmXc7c9/Tskpn7fvbu3AHPlyMhB+JB&#13;&#10;XIgPcSJexI34HaRuOKgDZVB5RcJOpww0fGmTJj5xbNS6+QaXvlfM/iyW38zc93N0&#13;&#10;55DPWHXuvMyIB3EhPsSJeBE34ndQRwvsV/VNF6tVQGuwhDYNawFhq+Woe/9CFqdL&#13;&#10;xXzoWfb9QrLz6T70CiMuxIc4ES/iRvxuHhC7Yb+qO8Fp6ZV5mKRqDrO8RW55c9i6&#13;&#10;eQk/KBD5asjxBATGZ6p+nupmOXA3Dh66+E1cHB/kRLyIG/EjjvvVPYFNsfpSE+qx&#13;&#10;9lkUVnxr60boJQ1mKe7cfW2yQmN6HfRM1S9E3fnig8KdEx/iRLyIG/EjjsSzqC41&#13;&#10;hu2kTqWmrrdkLxoFVPGAca+BZ12It299G18RFqs0HOhiVIbNkrLnq+1itks+6SFf&#13;&#10;W058HCfkRdyIH3EknsS1cOUwbm611mCO3fGFGrhUzwBrGK0Xk+7m2WJhXdF5Ml7/&#13;&#10;POP83AW+Z7lR3tlCfIgT8SJuxI84Ek/iWrhy1wNLC/FoAmHcgxrz/GWhzKsG4JKO&#13;&#10;hj9s3/q3n/mVJvfKC0xSdx1l4pCre+bCn/PN5rUCjOsrp0IAKu6zdLjDkkHLNl75&#13;&#10;8f8QYfn3YMx1LeFTliabQc30PjxxP0HGZky9czuWJZv4GkQ5tbzOjG6M2rdeEyLg&#13;&#10;k8mCMl8TzWagX2jsZuOm2HjSInIiXsSN+BFH4klciwslc+Po16Oqkn0ohyxOa8BR&#13;&#10;4VbU40HrFOQT+vn0zNCnm5Q6ux068ul1ZHlFCOREvIib44cciSdxzfrLXczO+sEX&#13;&#10;wiUpYigFQlY42LoatY8zldTGNUwKVY/VPFP1iwvchcph0u5GTsSLuBE/4kg8iavr&#13;&#10;L0fONJGQUSXBiIeeDUWgtKlqY+fifuu0m3VSdKCMJ7TPErMjlaiNe9Z8N7uFuBE/&#13;&#10;4kg8iSvxJc6uyRUfr0JoIx9Mgo1pUwVu6QpZnqzHkm7h3Xiq0ex2NDpZ3IJBsafA&#13;&#10;j+OG/BxH5ElciS9xlpSax+yi1OB7EdUAZbpqta2qdDBPk9UnsXrWpj6SyPd0tPgs&#13;&#10;HbXnuWFVLniVirmFiedVNvryFHIGtvpTNggjOVRxyI0qG2Wr8XB7GZM3n0+rms2y&#13;&#10;8COZlbs5a2I8SELciB9xJJ7ElfgSZ+jduwFpia4D62kLZQO8ovpbJ/aUopoNYR5t&#13;&#10;ZY+HQLOubOJHHIkncSW+xNkVaq9KKYUOAhA6FNyW0rjfyEpeiPEslFm8PsJxezyb&#13;&#10;JVssSPyIo+OJXIkvcXbJWdxLZZokgbGixAyUrIorRYW/yXj1rMl1VJtge8a78SB+&#13;&#10;xJF4ElfiS5wh2virTLWWwqYBaBswwQOjk3K2okPsG92a3Y5sM6yoxozciB9xJJ7E&#13;&#10;lfgSZ7ncqIAZeF4SMtS/CW0yqjFmJOdiMrfsoCKvs9vRAG2LhI2PS5YQP50MahyC&#13;&#10;kIXCC43nlZFztksObZ6iEbaQnhq0G1lhdjFbq/USZeYTV54V5yGOxJO4El/iDEbV&#13;&#10;uUlSkXDrgdG+SnpzbKrY3Cwxe3kStXHxXuRHHIkncSW+xBl0rUvF1qQwwtMGn1Aq&#13;&#10;zKoXFf3gfAb8ZcjIpyc2ID/iSDyJK/ElzkAbnFktwYIWAoAKc3mM71X27PYyUJ9S&#13;&#10;Nh3IkXgSV+JLnN1Odjb0uUXWxm2LpL1xMdhZpH75GmI5O+JIPIkr8SXObpzTKgGY&#13;&#10;obm9Vaw1cnrLhdnt5VJ3wY04ur1ykCvxpadBJYHbttBaiepOydnLSUX+mbZfOm0X&#13;&#10;LSfkSDyJK/ElzvumnGBzy5jZNJRvws1xFHv+tA+sprTdzCz1Dbg5jnrvn6QfGxBl&#13;&#10;w7myHFtfDISabIbCGGN2ZriX4man7iwNeyriSVyJr+PsPLzU2CwTtCGddXtTuh2B&#13;&#10;8t1uZreXiPeEG3EknsSV+Dpl00bhPEpQ1drtNAtcpNZtYjbT9Uuo62w3KtpKGDkS&#13;&#10;T+JKfIkz0I7wdBFwg39FbaP8U1eDJd+/qqBuZ9iPKGQ7pmxzbu5AjsSTuBJf4gyi&#13;&#10;N4ftb1AaME8HnmIQj6zV4+0Ji+0KZ7ej7r6zw60WQX7EkXgSV+JLnAFkx4Lvad/y&#13;&#10;FNEnMqx2MG3fo+yZql8CdU8rG/kRR+JJXImv4+yVRsbTAuM4S5lWqSw32m5zUbet&#13;&#10;sMlPNIveRzpa2wJ4sW2kYsSReBJX4kucYbM9MJFNUxFR9xlEwgv6nENq843DWeHO&#13;&#10;7Yz3kczKCiE60JkLJ37E0fFErsSXOEN4/NvKE0Jp7sUYy2NuWMSFP6Ltg9kY+Izy&#13;&#10;UY/ZGSfttn0mfsSReBJX4kucIdjom6DmKe37MXA+shxhS2+QuXI1ceXTu8/Obkep&#13;&#10;sTXlwjNmjh9yJJ7ElfgSZwgbbdNXCtUdx9b6Q8Ng6JVqO8ZtCK6dW2CzRO1IJ2Ys&#13;&#10;z8CJF3Fz/JAj8SSuxJc4Q+3E68ZDp237mLXZNOLaDGXl+D3aE9rtDV3sDG9nQftI&#13;&#10;4s6z8Om9vIkfcSSexJX4Emdg137LKlGolAwiC3oIkveDSmOTcZZkwBXNesi74dgs&#13;&#10;Mz9CGXiGwTg+zoUjL+JG/Igj8SSuxJc4w7XmRdM6XlW+n6TWyKGxto/XykB61bbR&#13;&#10;CcuA65myj7KyiY8LuwkjbsTPcUSexJX4Emdgl9YMBe+Ih4nhcsQM9I3lPVmqbxqV&#13;&#10;uBgwVvcsbh+9eJ2r2uVYyMtxQ36OI/IkrsSXOLtF2hS8QxulQsmR1NAXwLvB3PHb&#13;&#10;RkV4xeTAp/vKZ7yPQPvajpk4PsQJeRE34uc4Ik/iSnyzxfjsPfNhu6F2oi2VilEc&#13;&#10;C4XNLt2RQX1TiFLXqDhP1NRUf/ksbh+JJte4uUWqjhnxIm7EjzgST+JKfIlzNlMF&#13;&#10;JR72paqaIV4aXg/baB3GdcevLd7RaeTcgwv+RWbOZpNZXizu3MsWsVrR/m4RI17E&#13;&#10;zfFDjsSTuBJfel9RzIzVTwcq9mqx6Omhx70OA9EOF87dwCvG0lUzjt12lpUfiSw8&#13;&#10;V3UWq2M6LPEibsSPOBJP4pq9lzOwdIlcfs/Ubtw3FZS8DswowQBvuN3hMnggg+qW&#13;&#10;SUfZCfcPkMxuLygxy9rVxMNxQT7EiXgRN+JHHIkncSW+xBkK6pSad9mpRMvKELXe&#13;&#10;BSPbYGEnqC1/rh3sLFkrOllmidoLTsycC8+SMuJDnIgXcSN+xJF4EtfCe2eLBOjd&#13;&#10;6Nebl5qqFpZin7EBs+kuF2bbnz9zg3M2Mi52x1m7O0/U7Gwo7DlremqCQuG+kQvx&#13;&#10;cZyQF3EjfsSReBJXmwGbLkH9nmleb5lOIBIWRoMUwl2u2bYA1grmT32ik6E78XRH&#13;&#10;y0TdM+DPJ1bv7UAhHsSF+BAn4kXciB9xJJ7EtTjL1Lxxzq7iVVCPb6t0aCMJSZ8b&#13;&#10;s2M5tMqL59YwQMQOeKFu14U662R5rrGaTcFGDsSDuBAf4kS8iBvxI45XXRY+WdEz&#13;&#10;hl0kauexTdYPZAwU5AW0gZsWvmwzqC9/lql7lKl7nKzN1P1cVe0y8MRxcKpGLsSH&#13;&#10;ODleyI34EcciMTtA2RN1L/pJYlR9aCXfBWa2MChsVpZe/xMmBEnhzu1UU2zW7n72&#13;&#10;7erxeLVOx+6beBAX4kOciBdxI377Vf0Q7L3q3snUbeSOUzewjXD+zF913Mfsb5hn&#13;&#10;55PYPRsoeUbO29q9sdpl30NGHIgHcXGqJk5O1TsHqvoAZR+sbs3DTcblRql54Y8c&#13;&#10;RCcDXrjzdDJ1aebOn5H7zovJ68TZnexPHIgHcSE+X6ZquonLly/v+QPtrn7l7VV2&#13;&#10;//xNVi51oSIVS5QvAYwH2pREUIFR+85ZEJJDXndrumLxrBLis+hAyeN0MmAq7rF0&#13;&#10;1LG1lUvvS1n62Eq4qa24G/hRqwvx4C/duZj98hfa2ssPxdZHLM/lrr+crhKd+KOS&#13;&#10;1btgk5YFds+rLt7wK43bOuqxLDuPxjNa2GxGyyG778kMFOe+0d5kd7I/cSAexIX4&#13;&#10;ECfixR6h6gOVvV/dtaUtVuknPEG/AQLlzCCQ5UYa7dx6Fb+OHO+ZPd6mcVZO63Cz&#13;&#10;7zTPvFHVUZfZNIprp3/wGxDep2jqdWP1/UAPd3qLo8H1rWbyKFU/RtkTdZ9afCOR&#13;&#10;ujkw1ttlyj4AYHeZCG5Vli9+oOOeHcdvlTfHaDprMYVppvCvBDob1cqbWWoSp8ne&#13;&#10;ZHeyv+OAPIgL8SFOj1P1I5U9re711V/ZequF8fm8BTOgfdsFZ0IKr4IXXlRPh+3F&#13;&#10;rCKumFS2zzeNmSn8q4Gm5Ts0/9t1nKSZ61ajXer//qTUOPsB2vczfM0X3JgNzpfa&#13;&#10;sfko+t2xW0mWgV9+ZDv4sSU1LH0ynuA6u5hES94o4HHH8LQFxt5jYG+Xj33n30H4&#13;&#10;2yru4lU3yNvfST6NabZ06OlB28xurj2dd4fGlJR1qXD8Ntmb7E72Jw7Eg7gQnwz0&#13;&#10;4zs8nqB+Su7OPyo5d86V3Ym42sD08DY+9UX11Pf+N36pxAFP+m4Qvehhm60Ve0rQ&#13;&#10;U5m3dh0nfQea7Et2JnuT3cn+xMG5b+TyZe77iWFnHS2XzbXVVZU02hH4pV4tgC0j&#13;&#10;2D3M2G5xWf60evK7/wddjVYuQ+/nAyYpy5YQmVkMfxLXbXPXPe4hQ9BkT7Qr2Zfs&#13;&#10;TPYmu5P9iQPxIC7EZ38HylPF7IfjN3PZ+ZKSJqlaK3oYmz2OeYQF6ZcV7TwTde6e&#13;&#10;5NmmFeNqe5zxWQz/UtA2B531edMufJR5p1HHVJa//UFQO/4HZvhNALjFIthMamKH&#13;&#10;9cPBn6JSyn55ST8uTj+lG59y51ffURcZS0aJGo28flupeJN59gtMHNdL86f/o7R0&#13;&#10;4Q+YSFgVddwXHg+a0Pw1Nw15pvCDQaf7QHcoIbNkT7Ir2ZfsTPYmu5P9iQPxeBrh&#13;&#10;PJGyx+q+wvnau5fYm/NvmnZ/YKoBCjvV1hOB4SZFT9OIrFJh0n+wXGxnMN5/alzx&#13;&#10;/m9d4fuy7nGMHmXJWAaahfXTfy43z/+7MOqmkN7nxsb3gzLfGoqge/bs2ehfj/1e&#13;&#10;s2tv2ydx308Ne+LO38bm2Dl7YVhmQWfeKK9jUiUsMGm5YFZWFvsI3I97D47x7OYc&#13;&#10;CN9TIjOvi/o3VUXRFjlQPnCULa+108kYue4hKnr+9Efl5df+DTjDJpa4lRp1V8pR&#13;&#10;qzxY7AbVQfx+7c/pk8bprwx7T+/az/7FLCtpxZawrBIoZbQGAxnwcHEghMQYfn+F&#13;&#10;M5vXvM1VXRTAzaH/baj84OoIxWRBnfScotNR11Sbr31YWjj3AQgErfi6Yvq29OQD&#13;&#10;b9f2dDMaZTvmPr49fWiwM+BsDPwEqxnhKWsiKs3DlWC+1iy1slwfSr+URrt3TuCP&#13;&#10;g+mK9wX8yTXwTa2VaqdYF25bjyf1F0OV5LbxXtVWLr7vz5/4D3ztTcGCz5VN74BN&#13;&#10;t/yq6rIaG05Af7UJBF8J9kPAezUj2/gFSOE6Nb70U2sRfFCORDg3jHfvnMIfKMab&#13;&#10;WhQbzNC9ZWNlf3OgT0PeWwJjPCM0GWSgo11Sd1I98b3f+tXmnzgTn3pCrqc6uUeK&#13;&#10;9nuHA/prwd4L/C1U+IdGbCl06ZFCqaeW08RmQOCVKJxb3ok7G8fwB5b2F2eZ8vBT&#13;&#10;f3tZoe+HPFkoP5kNmvdzY3wmRWPyulN/5Yf/U5Tmr2PE+4xJc4sJe1dAf4tcN1sh&#13;&#10;0P+MoFe/FuivDXsCnI1deqm/pE1ppHUCiRBUZU8heD8J509v6nRQSvutBTQAn9Rp&#13;&#10;2XvPp7aVenmg74PM7J5Rq2KGiaEhyriXgY461q8d+6R28ge/4cL7RIDBdrS8hR7g&#13;&#10;nhfoHUrGJjH664M+FNj7Xfqraxf1Rr2L4cq+CzcAAAglSURBVLuSygRSBXEKVsSc&#13;&#10;W+WXj+2IMIyi3bvHrUpk0c58qCiu3b/D1FGF/ijIk/5tq4rJgVnXp4vP6Siurnzn&#13;&#10;/dL8+Q842Jvcwk3N9W1QpfuJH2xjA6y3dO/k6P03KOt+71BAHxrsaeDrP/+VffOP&#13;&#10;HdM5c06z3b4qa5aMhE48BG4BYu5Xe2H95IN0tFtLBztzaBHu6rbs6XDZB33ave/h&#13;&#10;zV8o4OzOjisMjiGTmvMJ/OjN3OySrFnVwZbK3J250z/8DYTz12n0Cgxfj7m6U4nF&#13;&#10;ZqxZWzfn+2durMXXVm+pwwR9qLAnwLEd/vNV+0+f1/UWSG1LRoFKEtpWDFvbsaTS&#13;&#10;W543CuaWN2Uw10t7Dxbxqg+ymS56PEOjqO1VGJKP6T8K/LOCbw/gbKe+H8VkNW4z&#13;&#10;26nJ+zqHTEkYvrxbPX7pfeooAel9ipa5ybj9wgAmYtq0bOh3mAkH3+sn8b/+qKWz&#13;&#10;dvTlQ522e6iwpzte1q7/2rSurtlTtZ4qjxrYJOsl2gCqm0dMiBE2QyIZVrtB/fRd&#13;&#10;axOedFsLRseiqPIwXaVpTw1Vx/vhqU/8WewquAcumyrxnGXXLC9F5WbZqmQydSjO&#13;&#10;XTa2nTFOp+HCyevVE9+/5pUqH+MbbnIQ69aaOzQeXbLJdsksYsbdG1Jf99qv31Hs&#13;&#10;7afrGXthsMfAKdNa+7Up4viDcxtKjGSiuUhAsiFgmmIsGwEXQz9c2AoWTt41SSzS&#13;&#10;4dYcGk04pbhh0qmVo3a64uLkIuAHJHoPXQRPxNbu6wjJ4TI7ufimitW4/my3MgOv&#13;&#10;Xeeu+0Xyhf8eJn5l+ZPa6Td/G5SP/T8OcNMwvY6J2BdM8LvKsC3OTbvfTPoLn5+L&#13;&#10;XHz+5S80u8LZswDtbGGfcfVCRA7s8hV45/pFWGPMn8PjgWhV5kS9NuLJvODhorDR&#13;&#10;sjHiGL78GLrE5dHWJ2/EnfsXGIMQ/BIDGeZH4LYMps1Fsx1l883m3KZzRVfs9Agb&#13;&#10;f3gw53FuOlfvZAzeTObE55Wa7Rj29NroKM+2R/SeKKivfFZaeu0jzuUm/uEBgH5A&#13;&#10;0321jbZL1t/t6k7vmG4OuowlNKDhpv4ecnx+bso+KI6vocpb7/53TSrv6Q0lK0Ei&#13;&#10;eC9mQ2+EV/pAguhbWj3KWN8vNzdKC+fWUfmpjjuhGnVCjIXc5iNopqjRptV4rpZT&#13;&#10;3tj9F2CmvIGdxNiHjymQ7jxqSr05UJ0lXMb1eg2ziRrUjHLuumvxwmsHc6fX6ie/&#13;&#10;/7/88tKf8UL7HC/EdQlwC7/GHRaZTen3ty0POqo9Gix0zkW/+9HvkzVSsxvQuPzM&#13;&#10;l9U8c2UfpHKGKn+r0Zbbie9XYxVg/K6yIKxwZee1Ng184aIQdgkVu4CGWrRxf3nY&#13;&#10;vvV6Otw+icCrIAKncl4ovZi/7o5ppefj6ntGXfgBQbkYpDCT6dB53daiRGRR5cBm&#13;&#10;VQ4cfC78vldevFtuvHKDB9VN/OhtfN+O1nwLT7ItBLRp8j6LowED6NMaLJru62qc&#13;&#10;PCc1T9/kc2204A/jnDyJNR9evmLQtaubjXaC0ONqPN/nstPDxtlu4qtt0P4m46aB&#13;&#10;rBrcKy/Uli9+ZgWvp/2tk3H3wRmMi8fMoFVHiwsQPt55mVsv3PvYxcNkX1F+AOy8&#13;&#10;uWendk/IXLUeL14s4jM+0OBVOrK8+CCYO/aFV126y7Xt4MWxi6fdweujzazXVjzp&#13;&#10;+Knscp/3bFof9ks7DvJ32hV19ewtw/7bPxt2lWLze891kdxzVfZelRMB/GxU+uo1&#13;&#10;Jnuvr0ChdK/MQxaFlVgnNSb8qocWSy2vc7B1rlkdhKhpa2rATS3ubp5MetsrOu03&#13;&#10;jErLCCXEU8MY9hg6nxp84XlsniRi44I0Y3duDF5EETaThsKrtv3a4n1sLt41FnqC&#13;&#10;Q89o3bOCdazhHY/bTkp1aKgNKfyeW98+tFGhZCp1cW2VqWyt9LNLwI4s7IOgUxKH&#13;&#10;Sped4LSsx9rvRaNAqEFZxFDSNVFmcVoLhKwoZWuW2xoiraLVKgIPY02ZAV4kxpbS&#13;&#10;YbuB8XTexEO8KNIA6UlUqce0ERiTJZUXwY81bqcjARq9QYoeQAnuxRCUeyKo7XpU&#13;&#10;nB04ptk2witniJF8gF90YIztcyoKKDHh0GpAVYmoWA3VMKHSFlTxgBbC0/poWmBX&#13;&#10;JF8vEvKRgf0o6K1LTWhdb8kOu+PPy5qH7VG/D+WQwBtPlwRnIb6pwg2UDT7mwEuY&#13;&#10;yZcwA8a/28AY7gNYD9XqW8ulBURni+Uqlny6S7vxojHcUHjBNh6IBN+X4vswE+Qx&#13;&#10;ni/C842ssSOwLLJghviOgcbHkIoRAabyUyPuJ7uql9bZqYRKW1DFg6ME+cjBPgg6&#13;&#10;Y++xd65fzdR+O5ZRVcmFcElGPPRCG/ke6imugG+1CKSJA6WlJ3wIVJoGEoM4bRQu&#13;&#10;rZKGS0kbhNO+lEypybw7Kd3mdbQbDlilFJeK9tRQGKSl52EUMbEUKlUQxFzoOBiY&#13;&#10;JEU/QyUiqXIgFZSjOmNUfipT8TsI9Qo7apCPLOwnAR+1GxAfr0Jzoy8HYSTTEhfh&#13;&#10;VuynnpaK1UVJKpkKLWlHeNoo3O0PTttGK+E2mS3O73YqlDrf10y5XZBo8xTaU2Ok&#13;&#10;8CSso71UqGgpSKiMM1X3paKvVAuUSkS+DIBfWDb+9Nl7Zrgsg3+PXWVoWMzi2Yn7&#13;&#10;jJpvp1prkGBip9v3oTdaADVXg5UBQFLB/41K6LKbXFe6bqPwetTKIS9MPkDt4MEY&#13;&#10;bXBG+1657ZAwuYbKwDTaDXO/4hvZ7Zmgfcd4jRUT3L5pPmUXTVEx8EOXVbvehDyz&#13;&#10;PtqzZv8/fdFJcNYPglIAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="30" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="77" font-size="11" y="87" clip-path="url(#clipPath30)" stroke="none" xml:space="preserve">TopoDS_Shape</text>
-<image x="358" y="459" clip-path="url(#clipPath31)" width="30" xlink:href="data:image/png;base64,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&#13;&#10;8f8D/BVoxjuzuWYAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="30" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="389" font-size="11" y="471" clip-path="url(#clipPath32)" stroke="none" xml:space="preserve">Mesh</text>
-<rect x="130" y="27" clip-path="url(#clipPath33)" fill="rgb(209,209,209)" width="20" height="20" stroke="none"/>
-<rect x="130" y="27" clip-path="url(#clipPath33)" fill="none" width="19" height="19" stroke="rgb(136,136,136)"/>
-<image stroke="rgb(136,136,136)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(136,136,136)" clip-path="url(#clipPath34)" preserveAspectRatio="none" height="16" x="15" y="10" font-size="11" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA50lEQVR42mNgGGjA&#13;&#10;iC7w4evP/xtO32d48OozTk0KYrwMAaaKDALc7IyM6JodGjYyOGhLgRXgAgeuPmNY&#13;&#10;cOAGw4EGfwYWZImG1acZCrz1GBIcNBgnEHD6gatP/zesPgPxwoV7L/9/+PqDoWD+&#13;&#10;EYYJiTZgBQ668oyE/O/QsOE/2AWTt5xl0FKUZoh11GE4++ADw84zt4gORLAB3Jzs&#13;&#10;DPrKUnDBi3efk2bA1+8/gZqewQVfvP9MtAFMICLXx5jBWEGAYfH+K2C6KsSMvHRQ&#13;&#10;sODIfwMFEXAsMBARCwsO3GSgOB1QnBIZhj4AAGcNZeNL2Ad0AAAAAElFTkSuQmCC" xlink:actuate="onLoad"/>
-<text x="34" font-size="11" y="23" clip-path="url(#clipPath35)" stroke="none" xml:space="preserve">Meshing Parameters : IMeshTools_Parameters</text>
-<image x="470" y="474" clip-path="url(#clipPath36)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABGElEQVR42mP8//8/&#13;&#10;AyWAiYFCQLEBLLgk9i0K+f/kygE4X0bHgcEpbg0j0QaANMfW7IDzF7d4kOaCd6//&#13;&#10;MPy+O4WB4R+Ixwjmk2SAnqMLQ1/nejhfwdaCNANA/nWKY2DwL1j1f+OEMEaSAtEt&#13;&#10;fcF/kNMZofHknr4InFhAxK6ZcYwEDfj25RvDkaVZGLbaRE7DSHWMyClx8fqD/9cc&#13;&#10;fAnnh9iLM8QG2jPWbZvw//yj83BxQzlDhiavAkYMF4A0d5a4wPnlPXuABjAwgDR3&#13;&#10;uzPDxUt3nsfuhQ9v3zLsu34bkj7/gfjvweJbDp5gsBbXhavbcvAyA0MGFgNC3A0Z&#13;&#10;Fs86Aefra8uC6TzXCIbKVSvg4tGebtjDYEAyEwAqcGWs48tc2QAAAABJRU5ErkJg&#13;&#10;gg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="205" x2="287" y1="276" y2="276" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath38)" fill="none" x1="280" x2="287" y1="279" y2="276" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath38)" fill="none" x1="287" x2="280" y1="276" y2="273" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="311" y2="331" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="106" y1="331" y2="331" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="106" x2="106" y1="331" y2="351" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath39)" fill="none" x1="103" x2="106" y1="344" y2="351" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath39)" fill="none" x1="106" x2="109" y1="351" y2="344" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="174" x2="310" y1="123" y2="123" stroke="rgb(69,69,69)"/>
-<line clip-path="url(#clipPath40)" fill="none" x1="303" x2="310" y1="126" y2="123" stroke="rgb(69,69,69)"/>
-<line clip-path="url(#clipPath40)" fill="none" x1="310" x2="303" y1="123" y2="120" stroke="rgb(69,69,69)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="370" y1="203" y2="219" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="114" y1="219" y2="219" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="114" x2="114" y1="219" y2="243" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath41)" fill="none" x1="111" x2="114" y1="236" y2="243" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath41)" fill="none" x1="114" x2="117" y1="243" y2="236" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="201" x2="287" y1="384" y2="384" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath42)" fill="none" x1="280" x2="287" y1="387" y2="384" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath42)" fill="none" x1="287" x2="280" y1="384" y2="381" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="419" y2="459" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath43)" fill="none" x1="370" x2="373" y1="452" y2="459" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath43)" fill="none" x1="373" x2="376" y1="459" y2="452" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="60" x2="60" y1="104" y2="135" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath44)" fill="none" x1="57" x2="60" y1="128" y2="135" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath44)" fill="none" x1="60" x2="63" y1="135" y2="128" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="60" x2="60" y1="104" y2="135" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath44)" fill="none" x1="57" x2="60" y1="128" y2="135" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath44)" fill="none" x1="60" x2="63" y1="135" y2="128" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="174" x2="310" y1="123" y2="123" stroke="rgb(69,69,69)"/>
-<line clip-path="url(#clipPath40)" fill="none" x1="303" x2="310" y1="126" y2="123" stroke="rgb(69,69,69)"/>
-<line clip-path="url(#clipPath40)" fill="none" x1="310" x2="303" y1="123" y2="120" stroke="rgb(69,69,69)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="419" y2="459" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath43)" fill="none" x1="370" x2="373" y1="452" y2="459" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath43)" fill="none" x1="373" x2="376" y1="459" y2="452" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="370" y1="203" y2="219" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="370" x2="114" y1="219" y2="219" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="114" x2="114" y1="219" y2="243" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath41)" fill="none" x1="111" x2="114" y1="236" y2="243" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath41)" fill="none" x1="114" x2="117" y1="243" y2="236" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="205" x2="287" y1="276" y2="276" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath38)" fill="none" x1="280" x2="287" y1="279" y2="276" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath38)" fill="none" x1="287" x2="280" y1="276" y2="273" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="373" y1="311" y2="331" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="373" x2="106" y1="331" y2="331" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="106" x2="106" y1="331" y2="351" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath39)" fill="none" x1="103" x2="106" y1="344" y2="351" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath39)" fill="none" x1="106" x2="109" y1="351" y2="344" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath37)" fill="none" x1="201" x2="287" y1="384" y2="384" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath42)" fill="none" x1="280" x2="287" y1="387" y2="384" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath42)" fill="none" x1="287" x2="280" y1="384" y2="381" stroke="rgb(136,136,136)"/>
-</g>
-</g>
-</svg>
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_002.svg b/dox/user_guides/modeling_algos/images/modeling_algos_mesh_002.svg
deleted file mode 100644 (file)
index c3d8ae5..0000000
+++ /dev/null
@@ -1,715 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="1032" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 1032 595" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="595" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
-<!--Generated by the Batik Graphics2D SVG Generator-->
-<defs id="genericDefs"/>
-<g>
-<defs id="defs1">
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
-<path d="M131 9 L316 9 L316 206 L131 206 L131 9 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
-<path d="M131 9 L314 9 L314 204 L131 204 L131 9 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
-<path d="M146 14 L299 14 L299 32 L146 32 L146 14 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
-<path d="M146 14 L302 14 L302 32 L146 32 L146 14 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
-<path d="M136 37 L256 37 L256 55 L136 55 L136 37 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
-<path d="M136 37 L258 37 L258 55 L136 55 L136 37 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
-<path d="M136 53 L233 53 L233 71 L136 71 L136 53 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
-<path d="M136 53 L235 53 L235 71 L136 71 L136 53 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
-<path d="M136 69 L243 69 L243 87 L136 87 L136 69 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
-<path d="M136 69 L245 69 L245 87 L136 87 L136 69 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
-<path d="M136 85 L264 85 L264 103 L136 103 L136 85 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
-<path d="M136 85 L266 85 L266 103 L136 103 L136 85 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
-<path d="M136 101 L271 101 L271 119 L136 119 L136 101 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
-<path d="M136 101 L273 101 L273 119 L136 119 L136 101 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
-<path d="M136 117 L276 117 L276 145 L136 145 L136 117 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
-<path d="M136 117 L278 117 L278 145 L136 145 L136 117 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
-<path d="M136 143 L296 143 L296 171 L136 171 L136 143 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
-<path d="M136 143 L298 143 L298 171 L136 171 L136 143 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
-<path d="M136 169 L286 169 L286 187 L136 187 L136 169 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
-<path d="M136 169 L288 169 L288 187 L136 187 L136 169 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
-<path d="M132 35 L313 35 L313 203 L132 203 L132 35 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
-<path d="M455 44 L745 44 L745 565 L455 565 L455 44 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
-<path d="M455 44 L743 44 L743 563 L455 563 L455 44 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
-<path d="M532 49 L666 49 L666 67 L532 67 L532 49 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
-<path d="M532 49 L669 49 L669 67 L532 67 L532 49 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
-<path d="M460 72 L694 72 L694 90 L460 90 L460 72 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
-<path d="M460 72 L696 72 L696 90 L460 90 L460 72 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
-<path d="M460 88 L552 88 L552 106 L460 106 L460 88 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
-<path d="M460 88 L554 88 L554 106 L460 106 L460 88 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
-<path d="M460 104 L722 104 L722 122 L460 122 L460 104 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
-<path d="M460 104 L724 104 L724 122 L460 122 L460 104 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
-<path d="M460 120 L700 120 L700 138 L460 138 L460 120 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
-<path d="M460 120 L702 120 L702 138 L460 138 L460 120 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
-<path d="M460 136 L705 136 L705 154 L460 154 L460 136 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
-<path d="M460 136 L707 136 L707 154 L460 154 L460 136 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
-<path d="M460 152 L704 152 L704 170 L460 170 L460 152 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
-<path d="M460 152 L706 152 L706 170 L460 170 L460 152 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
-<path d="M460 168 L697 168 L697 186 L460 186 L460 168 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
-<path d="M460 168 L699 168 L699 186 L460 186 L460 168 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
-<path d="M460 184 L710 184 L710 202 L460 202 L460 184 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
-<path d="M460 184 L712 184 L712 202 L460 202 L460 184 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
-<path d="M460 200 L561 200 L561 218 L460 218 L460 200 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
-<path d="M460 200 L563 200 L563 218 L460 218 L460 200 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
-<path d="M460 216 L583 216 L583 234 L460 234 L460 216 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath45">
-<path d="M460 216 L585 216 L585 234 L460 234 L460 216 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath46">
-<path d="M460 232 L547 232 L547 250 L460 250 L460 232 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath47">
-<path d="M460 232 L549 232 L549 250 L460 250 L460 232 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath48">
-<path d="M460 248 L538 248 L538 266 L460 266 L460 248 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath49">
-<path d="M460 248 L540 248 L540 266 L460 266 L460 248 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath50">
-<path d="M460 264 L567 264 L567 282 L460 282 L460 264 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath51">
-<path d="M460 264 L569 264 L569 282 L460 282 L460 264 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath52">
-<path d="M460 280 L543 280 L543 298 L460 298 L460 280 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath53">
-<path d="M460 280 L545 280 L545 298 L460 298 L460 280 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath54">
-<path d="M460 296 L574 296 L574 314 L460 314 L460 296 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath55">
-<path d="M460 296 L576 296 L576 314 L460 314 L460 296 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath56">
-<path d="M460 312 L564 312 L564 330 L460 330 L460 312 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath57">
-<path d="M460 312 L566 312 L566 330 L460 330 L460 312 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath58">
-<path d="M460 328 L580 328 L580 346 L460 346 L460 328 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath59">
-<path d="M460 328 L582 328 L582 346 L460 346 L460 328 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath60">
-<path d="M460 344 L573 344 L573 362 L460 362 L460 344 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath61">
-<path d="M460 344 L575 344 L575 362 L460 362 L460 344 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath62">
-<path d="M460 360 L575 360 L575 378 L460 378 L460 360 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath63">
-<path d="M460 360 L577 360 L577 378 L460 378 L460 360 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath64">
-<path d="M460 376 L564 376 L564 394 L460 394 L460 376 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath65">
-<path d="M460 376 L566 376 L566 394 L460 394 L460 376 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath66">
-<path d="M460 392 L566 392 L566 410 L460 410 L460 392 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath67">
-<path d="M460 392 L568 392 L568 410 L460 410 L460 392 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath68">
-<path d="M460 408 L569 408 L569 426 L460 426 L460 408 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath69">
-<path d="M460 408 L571 408 L571 426 L460 426 L460 408 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath70">
-<path d="M460 424 L571 424 L571 442 L460 442 L460 424 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath71">
-<path d="M460 424 L573 424 L573 442 L460 442 L460 424 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath72">
-<path d="M460 440 L568 440 L568 458 L460 458 L460 440 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath73">
-<path d="M460 440 L570 440 L570 458 L460 458 L460 440 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath74">
-<path d="M460 456 L570 456 L570 474 L460 474 L460 456 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath75">
-<path d="M460 456 L572 456 L572 474 L460 474 L460 456 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath76">
-<path d="M460 472 L561 472 L561 490 L460 490 L460 472 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath77">
-<path d="M460 472 L563 472 L563 490 L460 490 L460 472 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath78">
-<path d="M460 488 L563 488 L563 506 L460 506 L460 488 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath79">
-<path d="M460 488 L565 488 L565 506 L460 506 L460 488 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath80">
-<path d="M460 504 L574 504 L574 522 L460 522 L460 504 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath81">
-<path d="M460 504 L576 504 L576 522 L460 522 L460 504 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath82">
-<path d="M460 520 L576 520 L576 538 L460 538 L460 520 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath83">
-<path d="M460 520 L578 520 L578 538 L460 538 L460 520 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath84">
-<path d="M460 536 L516 536 L516 554 L460 554 L460 536 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath85">
-<path d="M460 536 L518 536 L518 554 L460 554 L460 536 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath86">
-<path d="M456 70 L742 70 L742 562 L456 562 L456 70 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath87">
-<path d="M131 225 L316 225 L316 315 L131 315 L131 225 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath88">
-<path d="M131 225 L314 225 L314 313 L131 313 L131 225 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath89">
-<path d="M140 230 L304 230 L304 248 L140 248 L140 230 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath90">
-<path d="M140 230 L307 230 L307 248 L140 248 L140 230 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath91">
-<path d="M136 253 L292 253 L292 281 L136 281 L136 253 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath92">
-<path d="M136 253 L294 253 L294 281 L136 281 L136 253 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath93">
-<path d="M132 251 L313 251 L313 312 L132 312 L132 251 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath94">
-<path d="M131 333 L316 333 L316 423 L131 423 L131 333 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath95">
-<path d="M131 333 L314 333 L314 421 L131 421 L131 333 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath96">
-<path d="M148 338 L297 338 L297 356 L148 356 L148 338 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath97">
-<path d="M148 338 L300 338 L300 356 L148 356 L148 338 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath98">
-<path d="M136 361 L308 361 L308 389 L136 389 L136 361 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath99">
-<path d="M136 361 L310 361 L310 389 L136 389 L136 361 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath100">
-<path d="M132 359 L313 359 L313 420 L132 420 L132 359 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath101">
-<path d="M131 441 L316 441 L316 586 L131 586 L131 441 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath102">
-<path d="M131 441 L314 441 L314 584 L131 584 L131 441 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath103">
-<path d="M162 446 L283 446 L283 464 L162 464 L162 446 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath104">
-<path d="M162 446 L286 446 L286 464 L162 464 L162 446 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath105">
-<path d="M136 469 L222 469 L222 487 L136 487 L136 469 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath106">
-<path d="M136 469 L224 469 L224 487 L136 487 L136 469 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath107">
-<path d="M136 485 L206 485 L206 503 L136 503 L136 485 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath108">
-<path d="M136 485 L208 485 L208 503 L136 503 L136 485 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath109">
-<path d="M136 501 L207 501 L207 519 L136 519 L136 501 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath110">
-<path d="M136 501 L209 501 L209 519 L136 519 L136 501 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath111">
-<path d="M136 517 L204 517 L204 535 L136 535 L136 517 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath112">
-<path d="M136 517 L206 517 L206 535 L136 535 L136 517 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath113">
-<path d="M136 533 L209 533 L209 551 L136 551 L136 533 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath114">
-<path d="M136 533 L211 533 L211 551 L136 551 L136 533 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath115">
-<path d="M136 549 L210 549 L210 567 L136 567 L136 549 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath116">
-<path d="M136 549 L212 549 L212 567 L136 567 L136 549 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath117">
-<path d="M136 565 L207 565 L207 583 L136 583 L136 565 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath118">
-<path d="M136 565 L209 565 L209 583 L136 583 L136 565 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath119">
-<path d="M132 467 L313 467 L313 583 L132 583 L132 467 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath120">
-<path d="M851 105 L1023 105 L1023 207 L851 207 L851 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath121">
-<path d="M851 105 L1021 105 L1021 205 L851 205 L851 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath122">
-<path d="M856 110 L1015 110 L1015 128 L856 128 L856 110 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath123">
-<path d="M856 110 L1018 110 L1018 128 L856 128 L856 110 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath124">
-<path d="M856 133 L939 133 L939 151 L856 151 L856 133 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath125">
-<path d="M856 133 L941 133 L941 151 L856 151 L856 133 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath126">
-<path d="M856 149 L941 149 L941 167 L856 167 L856 149 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath127">
-<path d="M856 149 L943 149 L943 167 L856 167 L856 149 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath128">
-<path d="M856 165 L923 165 L923 183 L856 183 L856 165 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath129">
-<path d="M856 165 L925 165 L925 183 L856 183 L856 165 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath130">
-<path d="M852 131 L1020 131 L1020 204 L852 204 L852 131 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath131">
-<path d="M-1 -1 L1033 -1 L1033 596 L-1 596 L-1 -1 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath132">
-<path d="M58 177 L113 177 L113 192 L58 192 L58 177 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath133">
-<path d="M124 128 L134 128 L134 137 L124 137 L124 128 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath134">
-<path d="M22 211 L77 211 L77 226 L22 226 L22 211 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath135">
-<path d="M124 86 L134 86 L134 95 L124 95 L124 86 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath136">
-<path d="M22 436 L77 436 L77 451 L22 451 L22 436 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath137">
-<path d="M124 510 L134 510 L134 519 L124 519 L124 510 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath138">
-<path d="M363 129 L401 129 L401 144 L363 144 L363 129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath139">
-<path d="M406 105 L460 105 L460 120 L406 120 L406 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath140">
-<path d="M311 105 L384 105 L384 120 L311 120 L311 105 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath141">
-<path d="M443 121 L458 121 L458 130 L443 130 L443 121 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath142">
-<path d="M312 121 L322 121 L322 130 L312 130 L312 121 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath143">
-<path d="M366 271 L404 271 L404 286 L366 286 L366 271 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath144">
-<path d="M409 251 L463 251 L463 266 L409 266 L409 251 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath145">
-<path d="M309 251 L362 251 L362 266 L309 266 L309 251 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath146">
-<path d="M443 264 L458 264 L458 273 L443 273 L443 264 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath147">
-<path d="M312 264 L322 264 L322 273 L312 273 L312 264 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath148">
-<path d="M366 504 L404 504 L404 519 L366 519 L366 504 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath149">
-<path d="M409 484 L463 484 L463 499 L409 499 L409 484 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath150">
-<path d="M311 484 L359 484 L359 499 L311 499 L311 484 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath151">
-<path d="M443 497 L458 497 L458 506 L443 506 L443 497 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath152">
-<path d="M312 497 L322 497 L322 506 L312 506 L312 497 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath153">
-<path d="M366 379 L404 379 L404 394 L366 394 L366 379 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath154">
-<path d="M409 359 L463 359 L463 374 L409 374 L409 359 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath155">
-<path d="M317 359 L356 359 L356 374 L317 374 L317 359 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath156">
-<path d="M443 372 L458 372 L458 381 L443 381 L443 372 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath157">
-<path d="M312 372 L322 372 L322 381 L312 381 L312 372 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath158">
-<path d="M771 163 L826 163 L826 178 L771 178 L771 163 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath159">
-<path d="M741 156 L751 156 L751 165 L741 165 L741 156 Z"/>
-</clipPath>
-</defs>
-<g fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="rgb(131,122,133)" font-weight="bold" stroke-width="0" stroke-miterlimit="0">
-<rect x="133" y="11" clip-path="url(#clipPath1)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="193" stroke="none"/>
-<rect x="134" y="12" clip-path="url(#clipPath1)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="193" stroke="none"/>
-<rect x="132" y="10" clip-path="url(#clipPath2)" fill="white" width="181" rx="2.5" ry="2.5" height="193" stroke="none"/>
-</g>
-<g stroke-linecap="butt" fill="rgb(77,137,20)" font-family="'Segoe UI'" stroke="rgb(77,137,20)" font-weight="bold" stroke-width="1.1">
-<rect x="132" y="10" clip-path="url(#clipPath2)" fill="none" width="180" rx="2.5" ry="2.5" height="192"/>
-<image x="147" y="15" clip-path="url(#clipPath3)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSUlEQVR42mNgGGjA&#13;&#10;CCIKFhz5/+DJJyj3PxAyQiQYkdggmf8IjYoyvAwTEmwYWUCc+48/MUxMswNrBhnC&#13;&#10;CNUB4QEN+c8INhtoHlSMgSF31kGwGrAB//7+Y+BgYwZrOXHjMYOFuhyDk2cB3La9&#13;&#10;O/rB9EmQnIYsxIh/EOcwwRSxMDOBNdc1r2FgYYE44dDuiWDs7FHIwAaUB8mB1IDU&#13;&#10;wgCcxcrMCFZweHUpkM0EFWOCs0GaQHJgC5gZMQ0ACTbVhjDYhnbDFbCwMCHYQBok&#13;&#10;B1LDiuQCFljwgmzwNFFhYAAqgDnR1C4bTJ8/Mg1MgzSD1ICM/AcNAxaI/n8MzExM&#13;&#10;4LDxMVMFK7h0bAYkBiAxCxbzNVODR8X//0gGgIB/w0ZopCFIWFQiJxpIygCyoXEN&#13;&#10;N2BphRdJKTCmcztqIJILwC5QURKGm0gsAOkZHAAAeQpotyJG88kAAAAASUVORK5C&#13;&#10;YII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="166" y="28" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">IMeshTools_Parameters</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="137" y="38" clip-path="url(#clipPath5)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="51" clip-path="url(#clipPath6)" stroke="none">Deflection : Real [1]</text>
-<image x="137" y="54" clip-path="url(#clipPath7)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="67" clip-path="url(#clipPath8)" stroke="none">Angle : Real [1]</text>
-<image x="137" y="70" clip-path="url(#clipPath9)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="83" clip-path="url(#clipPath10)" stroke="none">MinSize : Real [1]</text>
-<image x="137" y="86" clip-path="url(#clipPath11)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="99" clip-path="url(#clipPath12)" stroke="none">Relative : Boolean [1]</text>
-<image x="137" y="102" clip-path="url(#clipPath13)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="115" clip-path="url(#clipPath14)" stroke="none">InParallel : Boolean [1]</text>
-<image x="137" y="123" clip-path="url(#clipPath15)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="130" clip-path="url(#clipPath16)" stroke="none">InternalVerticesMode : </text>
-<text xml:space="preserve" x="156" y="143" clip-path="url(#clipPath16)" stroke="none">Boolean [1]</text>
-<image x="137" y="149" clip-path="url(#clipPath17)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="156" clip-path="url(#clipPath18)" stroke="none">ControlSurfaceDeflection : </text>
-<text xml:space="preserve" x="156" y="169" clip-path="url(#clipPath18)" stroke="none">Boolean [1]</text>
-<image x="137" y="170" clip-path="url(#clipPath19)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="183" clip-path="url(#clipPath20)" stroke="none">CleanModel : Boolean [1]</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(77,137,20)" font-family="'Segoe UI'" stroke="rgb(77,137,20)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath21)" fill="none" x1="133" x2="312" y1="36" y2="36"/>
-<rect x="457" y="46" clip-path="url(#clipPath22)" fill="rgb(131,122,133)" width="286" rx="2.5" opacity="0.2549" ry="2.5" height="517" stroke="none"/>
-<rect x="458" y="47" clip-path="url(#clipPath22)" fill="rgb(131,122,133)" width="286" rx="2.5" opacity="0.2549" ry="2.5" height="517" stroke="none"/>
-<rect x="456" y="45" clip-path="url(#clipPath23)" fill="white" width="286" rx="2.5" ry="2.5" height="517" stroke="none"/>
-<rect x="456" y="45" clip-path="url(#clipPath23)" fill="none" width="285" rx="2.5" ry="2.5" height="516" stroke="rgb(173,127,168)"/>
-<image stroke="rgb(173,127,168)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(173,127,168)" clip-path="url(#clipPath24)" preserveAspectRatio="none" height="16" x="533" y="50" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:actuate="onLoad"/>
-<text x="552" y="63" clip-path="url(#clipPath25)" fill="black" stroke="none" xml:space="preserve">IMeshTools_Context</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="461" y="73" clip-path="url(#clipPath26)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="86" clip-path="url(#clipPath27)" stroke="none">myParameters : IMeshTools_Parameters [1]</text>
-<image x="461" y="89" clip-path="url(#clipPath28)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="102" clip-path="url(#clipPath29)" stroke="none">myModel :  [1]</text>
-<image x="461" y="105" clip-path="url(#clipPath30)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="118" clip-path="url(#clipPath31)" stroke="none">myModelBuilder : IMeshTools_ModelBuilder [1]</text>
-<image x="461" y="121" clip-path="url(#clipPath32)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="134" clip-path="url(#clipPath33)" stroke="none">myEdgeDiscret : IMeshTools_ModelAlgo [1]</text>
-<image x="461" y="137" clip-path="url(#clipPath34)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="150" clip-path="url(#clipPath35)" stroke="none">myModelHealer : IMeshTools_ModelAlgo [1]</text>
-<image x="461" y="153" clip-path="url(#clipPath36)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="166" clip-path="url(#clipPath37)" stroke="none">myPreProcessor : IMeshTools_ModelAlgo [1]</text>
-<image x="461" y="169" clip-path="url(#clipPath38)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="182" clip-path="url(#clipPath39)" stroke="none">myFaceDiscret : IMeshTools_ModelAlgo [1]</text>
-<image x="461" y="185" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM&#13;&#10;ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3&#13;&#10;obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R&#13;&#10;EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5&#13;&#10;A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg&#13;&#10;zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx&#13;&#10;Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="198" clip-path="url(#clipPath41)" stroke="none">myPostProcessor : IMeshTools_ModelAlgo [1]</text>
-<image x="461" y="201" clip-path="url(#clipPath42)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="214" clip-path="url(#clipPath43)" stroke="none">GetParameters()</text>
-<image x="461" y="217" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="230" clip-path="url(#clipPath45)" stroke="none">ChangeParameters()</text>
-<image x="461" y="233" clip-path="url(#clipPath46)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="246" clip-path="url(#clipPath47)" stroke="none">BuildModel()</text>
-<image x="461" y="249" clip-path="url(#clipPath48)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="262" clip-path="url(#clipPath49)" stroke="none">GetModel()</text>
-<image x="461" y="265" clip-path="url(#clipPath50)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="278" clip-path="url(#clipPath51)" stroke="none">DiscretizeEdges()</text>
-<image x="461" y="281" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="294" clip-path="url(#clipPath53)" stroke="none">HealModel()</text>
-<image x="461" y="297" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="310" clip-path="url(#clipPath55)" stroke="none">PreProcessModel()</text>
-<image x="461" y="313" clip-path="url(#clipPath56)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="326" clip-path="url(#clipPath57)" stroke="none">DiscretizeFaces()</text>
-<image x="461" y="329" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="342" clip-path="url(#clipPath59)" stroke="none">PostProcessModel()</text>
-<image x="461" y="345" clip-path="url(#clipPath60)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="358" clip-path="url(#clipPath61)" stroke="none">SetModelBuilder()</text>
-<image x="461" y="361" clip-path="url(#clipPath62)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="374" clip-path="url(#clipPath63)" stroke="none">GetModelBuilder()</text>
-<image x="461" y="377" clip-path="url(#clipPath64)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="390" clip-path="url(#clipPath65)" stroke="none">SetEdgeDiscret()</text>
-<image x="461" y="393" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="406" clip-path="url(#clipPath67)" stroke="none">GetEdgeDiscret()</text>
-<image x="461" y="409" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="422" clip-path="url(#clipPath69)" stroke="none">SetModelHealer()</text>
-<image x="461" y="425" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="438" clip-path="url(#clipPath71)" stroke="none">GetModelHealer()</text>
-<image x="461" y="441" clip-path="url(#clipPath72)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="454" clip-path="url(#clipPath73)" stroke="none">SetPreProcessor()</text>
-<image x="461" y="457" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="470" clip-path="url(#clipPath75)" stroke="none">GetPreProcessor()</text>
-<image x="461" y="473" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="486" clip-path="url(#clipPath77)" stroke="none">SetFaceDiscret()</text>
-<image x="461" y="489" clip-path="url(#clipPath78)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="502" clip-path="url(#clipPath79)" stroke="none">GetFaceDiscret()</text>
-<image x="461" y="505" clip-path="url(#clipPath80)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="518" clip-path="url(#clipPath81)" stroke="none">SetPostProcessor()</text>
-<image x="461" y="521" clip-path="url(#clipPath82)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="534" clip-path="url(#clipPath83)" stroke="none">GetPostProcessor()</text>
-<image x="461" y="537" clip-path="url(#clipPath84)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="480" y="550" clip-path="url(#clipPath85)" stroke="none">Clean()</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath86)" fill="none" x1="457" x2="741" y1="71" y2="71"/>
-<rect x="133" y="227" clip-path="url(#clipPath87)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
-<rect x="134" y="228" clip-path="url(#clipPath87)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
-<rect x="132" y="226" clip-path="url(#clipPath88)" fill="white" width="181" rx="2.5" ry="2.5" height="86" stroke="none"/>
-<rect x="132" y="226" clip-path="url(#clipPath88)" fill="none" width="180" rx="2.5" ry="2.5" height="85"/>
-<image x="141" y="231" clip-path="url(#clipPath89)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="160" y="244" clip-path="url(#clipPath90)" fill="black" stroke="none" xml:space="preserve">IMeshTools_ModelBuilder</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="137" y="259" clip-path="url(#clipPath91)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="266" clip-path="url(#clipPath92)" stroke="none">Perform(TopoDS_Shape : , </text>
-<text xml:space="preserve" x="156" y="279" clip-path="url(#clipPath92)" stroke="none">IMeshTools_Parameter : )</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath93)" fill="none" x1="133" x2="312" y1="252" y2="252"/>
-<rect x="133" y="335" clip-path="url(#clipPath94)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
-<rect x="134" y="336" clip-path="url(#clipPath94)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="86" stroke="none"/>
-<rect x="132" y="334" clip-path="url(#clipPath95)" fill="white" width="181" rx="2.5" ry="2.5" height="86" stroke="none"/>
-<rect x="132" y="334" clip-path="url(#clipPath95)" fill="none" width="180" rx="2.5" ry="2.5" height="85"/>
-<image x="149" y="339" clip-path="url(#clipPath96)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="168" y="352" clip-path="url(#clipPath97)" fill="black" stroke="none" xml:space="preserve">IMeshTools_ModelAlgo</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="137" y="367" clip-path="url(#clipPath98)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="374" clip-path="url(#clipPath99)" stroke="none">Perform(IMeshData_Model : , </text>
-<text xml:space="preserve" x="156" y="387" clip-path="url(#clipPath99)" stroke="none">IMeshTools_Parameters : )</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath100)" fill="none" x1="133" x2="312" y1="360" y2="360"/>
-<rect x="133" y="443" clip-path="url(#clipPath101)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="141" stroke="none"/>
-<rect x="134" y="444" clip-path="url(#clipPath101)" fill="rgb(131,122,133)" width="181" rx="2.5" opacity="0.2549" ry="2.5" height="141" stroke="none"/>
-<rect x="132" y="442" clip-path="url(#clipPath102)" fill="white" width="181" rx="2.5" ry="2.5" height="141" stroke="none"/>
-<rect x="132" y="442" clip-path="url(#clipPath102)" fill="none" width="180" rx="2.5" ry="2.5" height="140"/>
-<image x="163" y="447" clip-path="url(#clipPath103)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="182" y="460" clip-path="url(#clipPath104)" fill="black" stroke="none" xml:space="preserve">IMeshData_Model</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="137" y="470" clip-path="url(#clipPath105)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="483" clip-path="url(#clipPath106)" stroke="none">GetMaxSize()</text>
-<image x="137" y="486" clip-path="url(#clipPath107)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="499" clip-path="url(#clipPath108)" stroke="none">FacesNb()</text>
-<image x="137" y="502" clip-path="url(#clipPath109)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="515" clip-path="url(#clipPath110)" stroke="none">AddFace()</text>
-<image x="137" y="518" clip-path="url(#clipPath111)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="531" clip-path="url(#clipPath112)" stroke="none">GetFace()</text>
-<image x="137" y="534" clip-path="url(#clipPath113)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="547" clip-path="url(#clipPath114)" stroke="none">EdgesNb()</text>
-<image x="137" y="550" clip-path="url(#clipPath115)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="563" clip-path="url(#clipPath116)" stroke="none">AddEdge()</text>
-<image x="137" y="566" clip-path="url(#clipPath117)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="156" y="579" clip-path="url(#clipPath118)" stroke="none">GetEdge()</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath119)" fill="none" x1="133" x2="312" y1="468" y2="468"/>
-<rect x="853" y="107" clip-path="url(#clipPath120)" fill="rgb(131,122,133)" width="168" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="854" y="108" clip-path="url(#clipPath120)" fill="rgb(131,122,133)" width="168" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="852" y="106" clip-path="url(#clipPath121)" fill="white" width="168" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="852" y="106" clip-path="url(#clipPath121)" fill="none" width="167" rx="2.5" ry="2.5" height="97"/>
-<image x="857" y="111" clip-path="url(#clipPath122)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="876" y="124" clip-path="url(#clipPath123)" fill="black" stroke="none" xml:space="preserve">IMeshTools_MeshBuilder</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="857" y="134" clip-path="url(#clipPath124)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="876" y="147" clip-path="url(#clipPath125)" stroke="none">SetContext()</text>
-<image x="857" y="150" clip-path="url(#clipPath126)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="876" y="163" clip-path="url(#clipPath127)" stroke="none">GetContext()</text>
-<image x="857" y="166" clip-path="url(#clipPath128)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="876" y="179" clip-path="url(#clipPath129)" stroke="none">Perform()</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath130)" fill="none" x1="853" x2="1019" y1="132" y2="132"/>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(136,136,136)" font-family="'Segoe UI'" stroke-dasharray="5,5" stroke="rgb(136,136,136)" stroke-width="1.1">
-<line clip-path="url(#clipPath131)" fill="none" x1="132" x2="84" y1="268" y2="268"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="84" x2="84" y1="268" y2="132"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="84" x2="132" y1="132" y2="132"/>
-<text x="59" y="190" clip-path="url(#clipPath132)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath133)" fill="none" x1="125" x2="132" y1="135" y2="132" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath133)" fill="none" x1="132" x2="125" y1="132" y2="129" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="132" x2="48" y1="370" y2="370"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="48" y1="370" y2="90"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="132" y1="90" y2="90"/>
-<text x="23" y="224" clip-path="url(#clipPath134)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath135)" fill="none" x1="125" x2="132" y1="93" y2="90" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath135)" fill="none" x1="132" x2="125" y1="90" y2="87" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="132" x2="48" y1="390" y2="390"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="48" y1="390" y2="514"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="48" x2="132" y1="514" y2="514"/>
-<text x="23" y="449" clip-path="url(#clipPath136)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath137)" fill="none" x1="125" x2="132" y1="517" y2="514" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath137)" fill="none" x1="132" x2="125" y1="514" y2="511" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="125" y2="125" stroke-dasharray="none"/>
-<text x="364" y="142" clip-path="url(#clipPath138)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
-<text x="407" y="118" clip-path="url(#clipPath139)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
-<text x="312" y="118" clip-path="url(#clipPath140)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">parameters[1]</text>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath141)" points=" 456 125 450 128 444 125 450 122" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath141)" points=" 456 125 450 128 444 125 450 122"/>
-<line clip-path="url(#clipPath142)" fill="none" x1="320" x2="313" y1="122" y2="125" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath142)" fill="none" x1="313" x2="320" y1="125" y2="128" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="268" y2="268" stroke-dasharray="none"/>
-<text x="367" y="284" clip-path="url(#clipPath143)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
-<text x="410" y="264" clip-path="url(#clipPath144)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
-<text x="310" y="264" clip-path="url(#clipPath145)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">builder[1]</text>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath146)" points=" 456 268 450 271 444 268 450 265" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath146)" points=" 456 268 450 271 444 268 450 265"/>
-<line clip-path="url(#clipPath147)" fill="none" x1="320" x2="313" y1="265" y2="268" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath147)" fill="none" x1="313" x2="320" y1="268" y2="271" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="501" y2="501" stroke-dasharray="none"/>
-<text x="367" y="517" clip-path="url(#clipPath148)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
-<text x="410" y="497" clip-path="url(#clipPath149)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
-<text x="312" y="497" clip-path="url(#clipPath150)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">model[1]</text>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath151)" points=" 456 501 450 504 444 501 450 498" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath151)" points=" 456 501 450 504 444 501 450 498"/>
-<line clip-path="url(#clipPath152)" fill="none" x1="320" x2="313" y1="498" y2="501" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath152)" fill="none" x1="313" x2="320" y1="501" y2="504" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="456" x2="313" y1="376" y2="376" stroke-dasharray="none"/>
-<text x="367" y="392" clip-path="url(#clipPath153)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">caches</text>
-<text x="410" y="372" clip-path="url(#clipPath154)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">context[1]</text>
-<text x="318" y="372" clip-path="url(#clipPath155)" fill="black" stroke-dasharray="none" stroke="none" xml:space="preserve">algo[5]</text>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath156)" points=" 456 376 450 379 444 376 450 373" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath156)" points=" 456 376 450 379 444 376 450 373"/>
-<line clip-path="url(#clipPath157)" fill="none" x1="320" x2="313" y1="373" y2="376" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath157)" fill="none" x1="313" x2="320" y1="376" y2="379" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="852" x2="742" y1="160" y2="160"/>
-<text x="772" y="176" clip-path="url(#clipPath158)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath159)" fill="none" x1="749" x2="742" y1="157" y2="160" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath159)" fill="none" x1="742" x2="749" y1="160" y2="163" stroke-dasharray="none"/>
-</g>
-</g>
-</svg>
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_003.svg b/dox/user_guides/modeling_algos/images/modeling_algos_mesh_003.svg
deleted file mode 100644 (file)
index 78b14e9..0000000
+++ /dev/null
@@ -1,5085 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   shape-rendering="auto"
-   width="889.54999"
-   text-rendering="auto"
-   contentScriptType="text/ecmascript"
-   color-interpolation="auto"
-   color-rendering="auto"
-   preserveAspectRatio="xMidYMid meet"
-   font-size="12"
-   viewBox="0 0 889.54999 913.09998"
-   image-rendering="auto"
-   stroke-miterlimit="10"
-   zoomAndPan="magnify"
-   version="1.0"
-   contentStyleType="text/css"
-   font-style="normal"
-   height="913.09998"
-   font-weight="normal"
-   id="svg2"
-   inkscape:version="0.48.0 r9654"
-   sodipodi:docname="modeling_algos_mesh_003.svg"
-   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog">
-  <metadata
-     id="metadata1250">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1028"
-     id="namedview1248"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:zoom="0.68480471"
-     inkscape:cx="164.85375"
-     inkscape:cy="906.86367"
-     inkscape:window-x="1912"
-     inkscape:window-y="13"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="g1054" />
-  <!--Generated by the Batik Graphics2D SVG Generator-->
-  <defs
-     id="genericDefs" />
-  <g
-     id="g5"
-     transform="translate(-9.45,-141.45)">
-    <defs
-       id="defs1">
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath1">
-        <path
-           d="m 214,141 149,0 0,102 -149,0 0,-102 z"
-           id="path9"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath2">
-        <path
-           d="m 214,141 147,0 0,100 -147,0 0,-100 z"
-           id="path12"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath3">
-        <path
-           d="m 227,146 120,0 0,18 -120,0 0,-18 z"
-           id="path15"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath4">
-        <path
-           d="m 227,146 123,0 0,18 -123,0 0,-18 z"
-           id="path18"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath5">
-        <path
-           d="m 219,169 113,0 0,28 -113,0 0,-28 z"
-           id="path21"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath6">
-        <path
-           d="m 219,169 115,0 0,28 -115,0 0,-28 z"
-           id="path24"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath7">
-        <path
-           d="m 219,195 75,0 0,18 -75,0 0,-18 z"
-           id="path27"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath8">
-        <path
-           d="m 219,195 77,0 0,18 -77,0 0,-18 z"
-           id="path30"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath9">
-        <path
-           d="m 219,211 77,0 0,18 -77,0 0,-18 z"
-           id="path33"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath10">
-        <path
-           d="m 219,211 79,0 0,18 -79,0 0,-18 z"
-           id="path36"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath11">
-        <path
-           d="m 215,167 145,0 0,73 -145,0 0,-73 z"
-           id="path39"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath12">
-        <path
-           d="m 9,297 186,0 0,149 -186,0 0,-149 z"
-           id="path42"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath13">
-        <path
-           d="m 9,297 184,0 0,147 -184,0 0,-147 z"
-           id="path45"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath14">
-        <path
-           d="m 40,302 121,0 0,18 -121,0 0,-18 z"
-           id="path48"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath15">
-        <path
-           d="m 40,302 124,0 0,18 -124,0 0,-18 z"
-           id="path51"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath16">
-        <path
-           d="m 14,325 86,0 0,18 -86,0 0,-18 z"
-           id="path54"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath17">
-        <path
-           d="m 14,325 88,0 0,18 -88,0 0,-18 z"
-           id="path57"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath18">
-        <path
-           d="m 14,341 70,0 0,18 -70,0 0,-18 z"
-           id="path60"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath19">
-        <path
-           d="m 14,341 72,0 0,18 -72,0 0,-18 z"
-           id="path63"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath20">
-        <path
-           d="m 14,357 71,0 0,18 -71,0 0,-18 z"
-           id="path66"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath21">
-        <path
-           d="m 14,357 73,0 0,18 -73,0 0,-18 z"
-           id="path69"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath22">
-        <path
-           d="m 14,373 68,0 0,18 -68,0 0,-18 z"
-           id="path72"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath23">
-        <path
-           d="m 14,373 70,0 0,18 -70,0 0,-18 z"
-           id="path75"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath24">
-        <path
-           d="m 14,389 73,0 0,18 -73,0 0,-18 z"
-           id="path78"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath25">
-        <path
-           d="m 14,389 75,0 0,18 -75,0 0,-18 z"
-           id="path81"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath26">
-        <path
-           d="m 14,405 74,0 0,18 -74,0 0,-18 z"
-           id="path84"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath27">
-        <path
-           d="m 14,405 76,0 0,18 -76,0 0,-18 z"
-           id="path87"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath28">
-        <path
-           d="m 14,421 71,0 0,18 -71,0 0,-18 z"
-           id="path90"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath29">
-        <path
-           d="m 14,421 73,0 0,18 -73,0 0,-18 z"
-           id="path93"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath30">
-        <path
-           d="m 10,323 182,0 0,120 -182,0 0,-120 z"
-           id="path96"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath31">
-        <path
-           d="m 370,357 197,0 0,126 -197,0 0,-126 z"
-           id="path99"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath32">
-        <path
-           d="m 370,357 195,0 0,124 -195,0 0,-124 z"
-           id="path102"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath33">
-        <path
-           d="m 376,362 182,0 0,18 -182,0 0,-18 z"
-           id="path105"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath34">
-        <path
-           d="m 376,362 185,0 0,18 -185,0 0,-18 z"
-           id="path108"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath35">
-        <path
-           d="m 375,385 96,0 0,18 -96,0 0,-18 z"
-           id="path111"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath36">
-        <path
-           d="m 375,385 98,0 0,18 -98,0 0,-18 z"
-           id="path114"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath37">
-        <path
-           d="m 375,401 98,0 0,18 -98,0 0,-18 z"
-           id="path117"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath38">
-        <path
-           d="m 375,401 100,0 0,18 -100,0 0,-18 z"
-           id="path120"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath39">
-        <path
-           d="m 371,383 193,0 0,97 -193,0 0,-97 z"
-           id="path123"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath40">
-        <path
-           d="m 238,513 161,0 0,293 -161,0 0,-293 z"
-           id="path126"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath41">
-        <path
-           d="m 238,513 159,0 0,291 -159,0 0,-291 z"
-           id="path129"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath42">
-        <path
-           d="m 261,518 113,0 0,18 -113,0 0,-18 z"
-           id="path132"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath43">
-        <path
-           d="m 261,518 116,0 0,18 -116,0 0,-18 z"
-           id="path135"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath44">
-        <path
-           d="m 243,541 71,0 0,18 -71,0 0,-18 z"
-           id="path138"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath45">
-        <path
-           d="m 243,541 73,0 0,18 -73,0 0,-18 z"
-           id="path141"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath46">
-        <path
-           d="m 243,557 72,0 0,18 -72,0 0,-18 z"
-           id="path144"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath47">
-        <path
-           d="m 243,557 74,0 0,18 -74,0 0,-18 z"
-           id="path147"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath48">
-        <path
-           d="m 243,573 74,0 0,18 -74,0 0,-18 z"
-           id="path150"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath49">
-        <path
-           d="m 243,573 76,0 0,18 -76,0 0,-18 z"
-           id="path153"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath50">
-        <path
-           d="m 243,589 82,0 0,18 -82,0 0,-18 z"
-           id="path156"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath51">
-        <path
-           d="m 243,589 84,0 0,18 -84,0 0,-18 z"
-           id="path159"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath52">
-        <path
-           d="m 243,605 83,0 0,18 -83,0 0,-18 z"
-           id="path162"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath53">
-        <path
-           d="m 243,605 85,0 0,18 -85,0 0,-18 z"
-           id="path165"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath54">
-        <path
-           d="m 243,621 80,0 0,18 -80,0 0,-18 z"
-           id="path168"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath55">
-        <path
-           d="m 243,621 82,0 0,18 -82,0 0,-18 z"
-           id="path171"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath56">
-        <path
-           d="m 243,637 53,0 0,18 -53,0 0,-18 z"
-           id="path174"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath57">
-        <path
-           d="m 243,637 55,0 0,18 -55,0 0,-18 z"
-           id="path177"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath58">
-        <path
-           d="m 243,653 57,0 0,18 -57,0 0,-18 z"
-           id="path180"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath59">
-        <path
-           d="m 243,653 59,0 0,18 -59,0 0,-18 z"
-           id="path183"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath60">
-        <path
-           d="m 243,669 139,0 0,18 -139,0 0,-18 z"
-           id="path186"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath61">
-        <path
-           d="m 243,669 141,0 0,18 -141,0 0,-18 z"
-           id="path189"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath62">
-        <path
-           d="m 243,685 137,0 0,18 -137,0 0,-18 z"
-           id="path192"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath63">
-        <path
-           d="m 243,685 139,0 0,18 -139,0 0,-18 z"
-           id="path195"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath64">
-        <path
-           d="m 243,701 101,0 0,18 -101,0 0,-18 z"
-           id="path198"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath65">
-        <path
-           d="m 243,701 103,0 0,18 -103,0 0,-18 z"
-           id="path201"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath66">
-        <path
-           d="m 243,717 103,0 0,18 -103,0 0,-18 z"
-           id="path204"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath67">
-        <path
-           d="m 243,717 105,0 0,18 -105,0 0,-18 z"
-           id="path207"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath68">
-        <path
-           d="m 243,733 103,0 0,18 -103,0 0,-18 z"
-           id="path210"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath69">
-        <path
-           d="m 243,733 105,0 0,18 -105,0 0,-18 z"
-           id="path213"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath70">
-        <path
-           d="m 243,749 105,0 0,18 -105,0 0,-18 z"
-           id="path216"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath71">
-        <path
-           d="m 243,749 108,0 0,18 -108,0 0,-18 z"
-           id="path219"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath72">
-        <path
-           d="m 243,765 110,0 0,18 -110,0 0,-18 z"
-           id="path222"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath73">
-        <path
-           d="m 243,765 112,0 0,18 -112,0 0,-18 z"
-           id="path225"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath74">
-        <path
-           d="m 243,781 112,0 0,18 -112,0 0,-18 z"
-           id="path228"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath75">
-        <path
-           d="m 243,781 114,0 0,18 -114,0 0,-18 z"
-           id="path231"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath76">
-        <path
-           d="m 239,539 157,0 0,264 -157,0 0,-264 z"
-           id="path234"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath77">
-        <path
-           d="m 514,513 149,0 0,125 -149,0 0,-125 z"
-           id="path237"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath78">
-        <path
-           d="m 514,513 147,0 0,123 -147,0 0,-123 z"
-           id="path240"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath79">
-        <path
-           d="m 531,518 113,0 0,18 -113,0 0,-18 z"
-           id="path243"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath80">
-        <path
-           d="m 531,518 116,0 0,18 -116,0 0,-18 z"
-           id="path246"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath81">
-        <path
-           d="m 519,541 69,0 0,18 -69,0 0,-18 z"
-           id="path249"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath82">
-        <path
-           d="m 519,541 71,0 0,18 -71,0 0,-18 z"
-           id="path252"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath83">
-        <path
-           d="m 519,557 73,0 0,18 -73,0 0,-18 z"
-           id="path255"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath84">
-        <path
-           d="m 519,557 75,0 0,18 -75,0 0,-18 z"
-           id="path258"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath85">
-        <path
-           d="m 519,573 74,0 0,18 -74,0 0,-18 z"
-           id="path261"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath86">
-        <path
-           d="m 519,573 76,0 0,18 -76,0 0,-18 z"
-           id="path264"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath87">
-        <path
-           d="m 519,589 71,0 0,18 -71,0 0,-18 z"
-           id="path267"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath88">
-        <path
-           d="m 519,589 73,0 0,18 -73,0 0,-18 z"
-           id="path270"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath89">
-        <path
-           d="m 519,605 131,0 0,18 -131,0 0,-18 z"
-           id="path273"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath90">
-        <path
-           d="m 519,605 133,0 0,18 -133,0 0,-18 z"
-           id="path276"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath91">
-        <path
-           d="m 515,539 145,0 0,96 -145,0 0,-96 z"
-           id="path279"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath92">
-        <path
-           d="m 778,513 122,0 0,137 -122,0 0,-137 z"
-           id="path282"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath93">
-        <path
-           d="m 778,513 120,0 0,135 -120,0 0,-135 z"
-           id="path285"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath94">
-        <path
-           d="m 782,518 111,0 0,18 -111,0 0,-18 z"
-           id="path288"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath95">
-        <path
-           d="m 782,518 114,0 0,18 -114,0 0,-18 z"
-           id="path291"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath96">
-        <path
-           d="m 783,541 68,0 0,18 -68,0 0,-18 z"
-           id="path294"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath97">
-        <path
-           d="m 783,541 70,0 0,18 -70,0 0,-18 z"
-           id="path297"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath98">
-        <path
-           d="m 783,557 71,0 0,18 -71,0 0,-18 z"
-           id="path300"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath99">
-        <path
-           d="m 783,557 73,0 0,18 -73,0 0,-18 z"
-           id="path303"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath100">
-        <path
-           d="m 783,573 72,0 0,18 -72,0 0,-18 z"
-           id="path306"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath101">
-        <path
-           d="m 783,573 74,0 0,18 -74,0 0,-18 z"
-           id="path309"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath102">
-        <path
-           d="m 783,589 69,0 0,18 -69,0 0,-18 z"
-           id="path312"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath103">
-        <path
-           d="m 783,589 71,0 0,18 -71,0 0,-18 z"
-           id="path315"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath104">
-        <path
-           d="m 783,605 83,0 0,18 -83,0 0,-18 z"
-           id="path318"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath105">
-        <path
-           d="m 783,605 85,0 0,18 -85,0 0,-18 z"
-           id="path321"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath106">
-        <path
-           d="m 783,621 61,0 0,18 -61,0 0,-18 z"
-           id="path324"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath107">
-        <path
-           d="m 783,621 63,0 0,18 -63,0 0,-18 z"
-           id="path327"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath108">
-        <path
-           d="m 779,539 118,0 0,108 -118,0 0,-108 z"
-           id="path330"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath109">
-        <path
-           d="m 622,357 173,0 0,126 -173,0 0,-126 z"
-           id="path333"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath110">
-        <path
-           d="m 622,357 171,0 0,124 -171,0 0,-124 z"
-           id="path336"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath111">
-        <path
-           d="m 628,362 159,0 0,18 -159,0 0,-18 z"
-           id="path339"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath112">
-        <path
-           d="m 628,362 162,0 0,18 -162,0 0,-18 z"
-           id="path342"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath113">
-        <path
-           d="m 627,385 64,0 0,18 -64,0 0,-18 z"
-           id="path345"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath114">
-        <path
-           d="m 627,385 66,0 0,18 -66,0 0,-18 z"
-           id="path348"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath115">
-        <path
-           d="m 627,401 51,0 0,18 -51,0 0,-18 z"
-           id="path351"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath116">
-        <path
-           d="m 627,401 53,0 0,18 -53,0 0,-18 z"
-           id="path354"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath117">
-        <path
-           d="m 627,417 75,0 0,18 -75,0 0,-18 z"
-           id="path357"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath118">
-        <path
-           d="m 627,417 77,0 0,18 -77,0 0,-18 z"
-           id="path360"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath119">
-        <path
-           d="m 627,433 89,0 0,18 -89,0 0,-18 z"
-           id="path363"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath120">
-        <path
-           d="m 627,433 91,0 0,18 -91,0 0,-18 z"
-           id="path366"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath121">
-        <path
-           d="m 627,449 104,0 0,18 -104,0 0,-18 z"
-           id="path369"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath122">
-        <path
-           d="m 627,449 106,0 0,18 -106,0 0,-18 z"
-           id="path372"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath123">
-        <path
-           d="m 623,383 169,0 0,97 -169,0 0,-97 z"
-           id="path375"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath124">
-        <path
-           d="m 9,549 186,0 0,102 -186,0 0,-102 z"
-           id="path378"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath125">
-        <path
-           d="m 9,549 184,0 0,100 -184,0 0,-100 z"
-           id="path381"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath126">
-        <path
-           d="m 16,554 169,0 0,18 -169,0 0,-18 z"
-           id="path384"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath127">
-        <path
-           d="m 16,554 172,0 0,18 -172,0 0,-18 z"
-           id="path387"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath128">
-        <path
-           d="m 14,577 96,0 0,18 -96,0 0,-18 z"
-           id="path390"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath129">
-        <path
-           d="m 14,577 98,0 0,18 -98,0 0,-18 z"
-           id="path393"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath130">
-        <path
-           d="m 14,593 98,0 0,18 -98,0 0,-18 z"
-           id="path396"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath131">
-        <path
-           d="m 14,593 100,0 0,18 -100,0 0,-18 z"
-           id="path399"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath132">
-        <path
-           d="m 14,609 53,0 0,18 -53,0 0,-18 z"
-           id="path402"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath133">
-        <path
-           d="m 14,609 55,0 0,18 -55,0 0,-18 z"
-           id="path405"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath134">
-        <path
-           d="m 10,575 182,0 0,73 -182,0 0,-73 z"
-           id="path408"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath135">
-        <path
-           d="m 154,825 149,0 0,185 -149,0 0,-185 z"
-           id="path411"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath136">
-        <path
-           d="m 154,825 147,0 0,183 -147,0 0,-183 z"
-           id="path414"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath137">
-        <path
-           d="m 168,830 119,0 0,18 -119,0 0,-18 z"
-           id="path417"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath138">
-        <path
-           d="m 168,830 122,0 0,18 -122,0 0,-18 z"
-           id="path420"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath139">
-        <path
-           d="m 159,853 83,0 0,18 -83,0 0,-18 z"
-           id="path423"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath140">
-        <path
-           d="m 159,853 85,0 0,18 -85,0 0,-18 z"
-           id="path426"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath141">
-        <path
-           d="m 159,869 75,0 0,18 -75,0 0,-18 z"
-           id="path429"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath142">
-        <path
-           d="m 159,869 77,0 0,18 -77,0 0,-18 z"
-           id="path432"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath143">
-        <path
-           d="m 159,885 72,0 0,18 -72,0 0,-18 z"
-           id="path435"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath144">
-        <path
-           d="m 159,885 74,0 0,18 -74,0 0,-18 z"
-           id="path438"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath145">
-        <path
-           d="m 159,901 94,0 0,18 -94,0 0,-18 z"
-           id="path441"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath146">
-        <path
-           d="m 159,901 96,0 0,18 -96,0 0,-18 z"
-           id="path444"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath147">
-        <path
-           d="m 155,851 145,0 0,156 -145,0 0,-156 z"
-           id="path447"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath148">
-        <path
-           d="m 334,825 149,0 0,185 -149,0 0,-185 z"
-           id="path450"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath149">
-        <path
-           d="m 334,825 147,0 0,183 -147,0 0,-183 z"
-           id="path453"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath150">
-        <path
-           d="m 344,830 126,0 0,18 -126,0 0,-18 z"
-           id="path456"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath151">
-        <path
-           d="m 344,830 129,0 0,18 -129,0 0,-18 z"
-           id="path459"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath152">
-        <path
-           d="m 339,853 83,0 0,18 -83,0 0,-18 z"
-           id="path462"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath153">
-        <path
-           d="m 339,853 85,0 0,18 -85,0 0,-18 z"
-           id="path465"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath154">
-        <path
-           d="m 339,869 75,0 0,18 -75,0 0,-18 z"
-           id="path468"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath155">
-        <path
-           d="m 339,869 77,0 0,18 -77,0 0,-18 z"
-           id="path471"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath156">
-        <path
-           d="m 339,885 72,0 0,18 -72,0 0,-18 z"
-           id="path474"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath157">
-        <path
-           d="m 339,885 74,0 0,18 -74,0 0,-18 z"
-           id="path477"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath158">
-        <path
-           d="m 339,901 94,0 0,18 -94,0 0,-18 z"
-           id="path480"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath159">
-        <path
-           d="m 339,901 96,0 0,18 -96,0 0,-18 z"
-           id="path483"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath160">
-        <path
-           d="m 339,917 73,0 0,18 -73,0 0,-18 z"
-           id="path486"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath161">
-        <path
-           d="m 339,917 75,0 0,18 -75,0 0,-18 z"
-           id="path489"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath162">
-        <path
-           d="m 339,933 78,0 0,18 -78,0 0,-18 z"
-           id="path492"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath163">
-        <path
-           d="m 339,933 80,0 0,18 -80,0 0,-18 z"
-           id="path495"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath164">
-        <path
-           d="m 339,949 75,0 0,18 -75,0 0,-18 z"
-           id="path498"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath165">
-        <path
-           d="m 339,949 77,0 0,18 -77,0 0,-18 z"
-           id="path501"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath166">
-        <path
-           d="m 339,965 105,0 0,18 -105,0 0,-18 z"
-           id="path504"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath167">
-        <path
-           d="m 339,965 107,0 0,18 -107,0 0,-18 z"
-           id="path507"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath168">
-        <path
-           d="m 339,981 68,0 0,18 -68,0 0,-18 z"
-           id="path510"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath169">
-        <path
-           d="m 339,981 70,0 0,18 -70,0 0,-18 z"
-           id="path513"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath170">
-        <path
-           d="m 335,851 145,0 0,156 -145,0 0,-156 z"
-           id="path516"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath171">
-        <path
-           d="M 9,9 169,9 169,61 9,61 9,9 z"
-           id="path519"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath172">
-        <path
-           d="M 9,9 167,9 167,59 9,59 9,9 z"
-           id="path522"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath173">
-        <path
-           d="m 36,14 104,0 0,18 -104,0 0,-18 z"
-           id="path525"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath174">
-        <path
-           d="m 36,14 107,0 0,18 -107,0 0,-18 z"
-           id="path528"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath175">
-        <path
-           d="m 10,35 156,0 0,23 -156,0 0,-23 z"
-           id="path531"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath176">
-        <path
-           d="m -1,-1 923,0 0,1080 -923,0 0,-1080 z"
-           id="path534"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath177">
-        <path
-           d="m 283,239 11,0 0,11 -11,0 0,-11 z"
-           id="path537"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath178">
-        <path
-           d="m 463,479 11,0 0,11 -11,0 0,-11 z"
-           id="path540"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath179">
-        <path
-           d="m 702,479 11,0 0,11 -11,0 0,-11 z"
-           id="path543"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath180">
-        <path
-           d="m 99,647 11,0 0,11 -11,0 0,-11 z"
-           id="path546"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath181">
-        <path
-           d="m 190,765 23,0 0,15 -23,0 0,-15 z"
-           id="path549"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath182">
-        <path
-           d="m 190,717 42,0 0,15 -42,0 0,-15 z"
-           id="path552"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath183">
-        <path
-           d="m 190,813 43,0 0,15 -43,0 0,-15 z"
-           id="path555"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath184">
-        <path
-           d="m 175,818 9,0 0,10 -9,0 0,-10 z"
-           id="path558"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath185">
-        <path
-           d="m 430,765 23,0 0,15 -23,0 0,-15 z"
-           id="path561"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath186">
-        <path
-           d="m 406,717 42,0 0,15 -42,0 0,-15 z"
-           id="path564"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath187">
-        <path
-           d="m 394,813 49,0 0,15 -49,0 0,-15 z"
-           id="path567"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath188">
-        <path
-           d="m 449,818 9,0 0,10 -9,0 0,-10 z"
-           id="path570"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath189">
-        <path
-           d="m 778,861 57,0 0,15 -57,0 0,-15 z"
-           id="path573"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath190">
-        <path
-           d="m 478,885 50,0 0,15 -50,0 0,-15 z"
-           id="path576"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath191">
-        <path
-           d="m 850,651 37,0 0,15 -37,0 0,-15 z"
-           id="path579"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath192">
-        <path
-           d="m 834,646 9,0 0,10 -9,0 0,-10 z"
-           id="path582"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath193">
-        <path
-           d="m 704,582 23,0 0,15 -23,0 0,-15 z"
-           id="path585"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath194">
-        <path
-           d="m 742,567 37,0 0,15 -37,0 0,-15 z"
-           id="path588"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath195">
-        <path
-           d="m 663,566 49,0 0,15 -49,0 0,-15 z"
-           id="path591"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath196">
-        <path
-           d="m 659,578 10,0 0,9 -10,0 0,-9 z"
-           id="path594"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath197">
-        <path
-           d="m 444,583 23,0 0,15 -23,0 0,-15 z"
-           id="path597"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath198">
-        <path
-           d="m 478,565 38,0 0,15 -38,0 0,-15 z"
-           id="path600"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath199">
-        <path
-           d="m 393,564 53,0 0,15 -53,0 0,-15 z"
-           id="path603"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath200">
-        <path
-           d="m 395,578 10,0 0,9 -10,0 0,-9 z"
-           id="path606"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath201">
-        <path
-           d="m 265,465 23,0 0,15 -23,0 0,-15 z"
-           id="path609"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath202">
-        <path
-           d="m 190,369 48,0 0,15 -48,0 0,-15 z"
-           id="path612"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath203">
-        <path
-           d="m 249,502 41,0 0,15 -41,0 0,-15 z"
-           id="path615"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath204">
-        <path
-           d="m 287,506 9,0 0,10 -9,0 0,-10 z"
-           id="path618"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath205">
-        <path
-           d="m 683,317 23,0 0,15 -23,0 0,-15 z"
-           id="path621"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath206">
-        <path
-           d="m 190,321 48,0 0,15 -48,0 0,-15 z"
-           id="path624"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath207">
-        <path
-           d="m 865,497 36,0 0,15 -36,0 0,-15 z"
-           id="path627"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-      <clipPath
-         clipPathUnits="userSpaceOnUse"
-         id="clipPath208">
-        <path
-           d="m 859,506 9,0 0,10 -9,0 0,-10 z"
-           id="path630"
-           inkscape:connector-curvature="0" />
-      </clipPath>
-    </defs>
-    <g
-       font-weight="bold"
-       stroke-miterlimit="0"
-       id="g632"
-       style="font-weight:bold;fill:#837a85;stroke:#837a85;stroke-width:0;stroke-linejoin:round;stroke-miterlimit:0;font-family:Segoe UI">
-      <rect
-         x="216"
-         y="143"
-         clip-path="url(#clipPath1)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="98"
-         id="rect634"
-         style="opacity:0.25489999;stroke:none" />
-      <rect
-         x="217"
-         y="144"
-         clip-path="url(#clipPath1)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="98"
-         id="rect636"
-         style="opacity:0.25489999;stroke:none" />
-      <rect
-         x="215"
-         y="142"
-         clip-path="url(#clipPath2)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="98"
-         id="rect638"
-         style="fill:#ffffff;stroke:none" />
-    </g>
-    <g
-       font-weight="bold"
-       id="g640"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <rect
-         x="215"
-         y="142"
-         clip-path="url(#clipPath2)"
-         width="144"
-         rx="2.5"
-         ry="2.5"
-         height="97"
-         id="rect642"
-         style="fill:none" />
-      <image
-         x="228"
-         y="147"
-         clip-path="url(#clipPath3)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image644" />
-      <text
-         x="247"
-         y="160"
-         clip-path="url(#clipPath4)"
-         xml:space="preserve"
-         id="text646"
-         style="fill:#000000;stroke:none">IMeshData_Shape</text>
-    </g>
-    <g
-       font-size="11"
-       id="g648"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="220"
-         y="175"
-         clip-path="url(#clipPath5)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVR42mNgGAWM
-ICJr1qH/pGqclmYH1ssCIn7/+ccwI8OeaM0ZMw/C2WADfgIN+At0Q8rUfRDR/zC3
-obGBYE62E8Ov339RDfjx6w/DHyjdne2G0+aSqbsZ/gAN/I5kABOI+P4TaMA/EA2R
-EGSBYlYELcfBwLCq2JWBk5mBYWWRK8N/IIC74BvQ5l9A7rfff8AG/P4PcTmIYIR5
-A6iRrckLbvOvum0IL3z/9Res6fuPPwyRTetRnH20LRCFn2OgwzDlwhVI8AABxACg
-zaBAXNkQyMCIFmgggGwzuhjYAFCoupWvRDgXKZVcmRAOtxnZFSAAcgnYgKsTIxhx
-Bv2E8P8wxSBgJ63McOjpXdRoJARgAYYtEBmJTX2gAMNmAAC8fn+eU+XlTAAAAABJRU5ErkJggg=="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image650" />
-      <text
-         xml:space="preserve"
-         x="239"
-         y="182"
-         clip-path="url(#clipPath6)"
-         id="text652"
-         style="stroke:none">myShape : </text>
-      <text
-         xml:space="preserve"
-         x="239"
-         y="195"
-         clip-path="url(#clipPath6)"
-         id="text654"
-         style="stroke:none">TopoDS_Shape [1]</text>
-      <image
-         x="220"
-         y="196"
-         clip-path="url(#clipPath7)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image656" />
-      <text
-         xml:space="preserve"
-         x="239"
-         y="209"
-         clip-path="url(#clipPath8)"
-         id="text658"
-         style="stroke:none">SetShape()</text>
-      <image
-         x="220"
-         y="212"
-         clip-path="url(#clipPath9)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image660" />
-      <text
-         xml:space="preserve"
-         x="239"
-         y="225"
-         clip-path="url(#clipPath10)"
-         id="text662"
-         style="stroke:none">GetShape()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g664"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath11)"
-         x1="216"
-         x2="359"
-         y1="168"
-         y2="168"
-         id="line666"
-         style="fill:none" />
-      <rect
-         x="11"
-         y="299"
-         clip-path="url(#clipPath12)"
-         width="182"
-         rx="2.5"
-         ry="2.5"
-         height="145"
-         id="rect668"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="12"
-         y="300"
-         clip-path="url(#clipPath12)"
-         width="182"
-         rx="2.5"
-         ry="2.5"
-         height="145"
-         id="rect670"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="10"
-         y="298"
-         clip-path="url(#clipPath13)"
-         width="182"
-         rx="2.5"
-         ry="2.5"
-         height="145"
-         id="rect672"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="10"
-         y="298"
-         clip-path="url(#clipPath13)"
-         width="181"
-         rx="2.5"
-         ry="2.5"
-         height="144"
-         id="rect674"
-         style="fill:none" />
-      <image
-         x="41"
-         y="303"
-         clip-path="url(#clipPath14)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image676" />
-      <text
-         x="60"
-         y="316"
-         clip-path="url(#clipPath15)"
-         xml:space="preserve"
-         id="text678"
-         style="fill:#000000;stroke:none">IMeshData_Model</text>
-    </g>
-    <g
-       font-size="11"
-       id="g680"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="15"
-         y="326"
-         clip-path="url(#clipPath16)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image682" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="339"
-         clip-path="url(#clipPath17)"
-         id="text684"
-         style="stroke:none">GetMaxSize()</text>
-      <image
-         x="15"
-         y="342"
-         clip-path="url(#clipPath18)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image686" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="355"
-         clip-path="url(#clipPath19)"
-         id="text688"
-         style="stroke:none">FacesNb()</text>
-      <image
-         x="15"
-         y="358"
-         clip-path="url(#clipPath20)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image690" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="371"
-         clip-path="url(#clipPath21)"
-         id="text692"
-         style="stroke:none">AddFace()</text>
-      <image
-         x="15"
-         y="374"
-         clip-path="url(#clipPath22)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image694" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="387"
-         clip-path="url(#clipPath23)"
-         id="text696"
-         style="stroke:none">GetFace()</text>
-      <image
-         x="15"
-         y="390"
-         clip-path="url(#clipPath24)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image698" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="403"
-         clip-path="url(#clipPath25)"
-         id="text700"
-         style="stroke:none">EdgesNb()</text>
-      <image
-         x="15"
-         y="406"
-         clip-path="url(#clipPath26)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image702" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="419"
-         clip-path="url(#clipPath27)"
-         id="text704"
-         style="stroke:none">AddEdge()</text>
-      <image
-         x="15"
-         y="422"
-         clip-path="url(#clipPath28)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image706" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="435"
-         clip-path="url(#clipPath29)"
-         id="text708"
-         style="stroke:none">GetEdge()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g710"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath30)"
-         x1="11"
-         x2="191"
-         y1="324"
-         y2="324"
-         id="line712"
-         style="fill:none" />
-      <rect
-         x="372"
-         y="359"
-         clip-path="url(#clipPath31)"
-         width="193"
-         rx="2.5"
-         ry="2.5"
-         height="122"
-         id="rect714"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="373"
-         y="360"
-         clip-path="url(#clipPath31)"
-         width="193"
-         rx="2.5"
-         ry="2.5"
-         height="122"
-         id="rect716"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="371"
-         y="358"
-         clip-path="url(#clipPath32)"
-         width="193"
-         rx="2.5"
-         ry="2.5"
-         height="122"
-         id="rect718"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="371"
-         y="358"
-         clip-path="url(#clipPath32)"
-         width="192"
-         rx="2.5"
-         ry="2.5"
-         height="121"
-         id="rect720"
-         style="fill:none" />
-      <image
-         x="377"
-         y="363"
-         clip-path="url(#clipPath33)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image722" />
-      <text
-         x="396"
-         y="376"
-         clip-path="url(#clipPath34)"
-         xml:space="preserve"
-         id="text724"
-         style="fill:#000000;stroke:none">IMeshData_TessellatedShape</text>
-    </g>
-    <g
-       font-size="11"
-       id="g726"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="376"
-         y="386"
-         clip-path="url(#clipPath35)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image728" />
-      <text
-         xml:space="preserve"
-         x="395"
-         y="399"
-         clip-path="url(#clipPath36)"
-         id="text730"
-         style="stroke:none">SetDeflection()</text>
-      <image
-         x="376"
-         y="402"
-         clip-path="url(#clipPath37)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image732" />
-      <text
-         xml:space="preserve"
-         x="395"
-         y="415"
-         clip-path="url(#clipPath38)"
-         id="text734"
-         style="stroke:none">GetDeflection()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g736"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath39)"
-         x1="372"
-         x2="563"
-         y1="384"
-         y2="384"
-         id="line738"
-         style="fill:none" />
-      <rect
-         x="240"
-         y="515"
-         clip-path="url(#clipPath40)"
-         width="157"
-         rx="2.5"
-         ry="2.5"
-         height="289"
-         id="rect740"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="241"
-         y="516"
-         clip-path="url(#clipPath40)"
-         width="157"
-         rx="2.5"
-         ry="2.5"
-         height="289"
-         id="rect742"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="239"
-         y="514"
-         clip-path="url(#clipPath41)"
-         width="157"
-         rx="2.5"
-         ry="2.5"
-         height="289"
-         id="rect744"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="239"
-         y="514"
-         clip-path="url(#clipPath41)"
-         width="156"
-         rx="2.5"
-         ry="2.5"
-         height="288"
-         id="rect746"
-         style="fill:none" />
-      <image
-         x="262"
-         y="519"
-         clip-path="url(#clipPath42)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image748" />
-      <text
-         x="281"
-         y="532"
-         clip-path="url(#clipPath43)"
-         xml:space="preserve"
-         id="text750"
-         style="fill:#000000;stroke:none">IMeshData_Edge</text>
-    </g>
-    <g
-       font-size="11"
-       id="g752"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="244"
-         y="542"
-         clip-path="url(#clipPath44)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image754" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="555"
-         clip-path="url(#clipPath45)"
-         id="text756"
-         style="stroke:none">GetEdge()</text>
-      <image
-         x="244"
-         y="558"
-         clip-path="url(#clipPath46)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image758" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="571"
-         clip-path="url(#clipPath47)"
-         id="text760"
-         style="stroke:none">SetCurve()</text>
-      <image
-         x="244"
-         y="574"
-         clip-path="url(#clipPath48)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image762" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="587"
-         clip-path="url(#clipPath49)"
-         id="text764"
-         style="stroke:none">GetCurve()</text>
-      <image
-         x="244"
-         y="590"
-         clip-path="url(#clipPath50)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image766" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="603"
-         clip-path="url(#clipPath51)"
-         id="text768"
-         style="stroke:none">PCurvesNb()</text>
-      <image
-         x="244"
-         y="606"
-         clip-path="url(#clipPath52)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image770" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="619"
-         clip-path="url(#clipPath53)"
-         id="text772"
-         style="stroke:none">AddPCurve()</text>
-      <image
-         x="244"
-         y="622"
-         clip-path="url(#clipPath54)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image774" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="635"
-         clip-path="url(#clipPath55)"
-         id="text776"
-         style="stroke:none">GetPCurve()</text>
-      <image
-         x="244"
-         y="638"
-         clip-path="url(#clipPath56)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image778" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="651"
-         clip-path="url(#clipPath57)"
-         id="text780"
-         style="stroke:none">Clear()</text>
-      <image
-         x="244"
-         y="654"
-         clip-path="url(#clipPath58)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image782" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="667"
-         clip-path="url(#clipPath59)"
-         id="text784"
-         style="stroke:none">IsFree()</text>
-      <image
-         x="244"
-         y="670"
-         clip-path="url(#clipPath60)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image786" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="683"
-         clip-path="url(#clipPath61)"
-         id="text788"
-         style="stroke:none">GetAngularDeflection()</text>
-      <image
-         x="244"
-         y="686"
-         clip-path="url(#clipPath62)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image790" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="699"
-         clip-path="url(#clipPath63)"
-         id="text792"
-         style="stroke:none">SetAngularDeflection()</text>
-      <image
-         x="244"
-         y="702"
-         clip-path="url(#clipPath64)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image794" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="715"
-         clip-path="url(#clipPath65)"
-         id="text796"
-         style="stroke:none">SetSameParam()</text>
-      <image
-         x="244"
-         y="718"
-         clip-path="url(#clipPath66)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image798" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="731"
-         clip-path="url(#clipPath67)"
-         id="text800"
-         style="stroke:none">GetSameParam()</text>
-      <image
-         x="244"
-         y="734"
-         clip-path="url(#clipPath68)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image802" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="747"
-         clip-path="url(#clipPath69)"
-         id="text804"
-         style="stroke:none">SetSameRange()</text>
-      <image
-         x="244"
-         y="750"
-         clip-path="url(#clipPath70)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image806" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="763"
-         clip-path="url(#clipPath71)"
-         id="text808"
-         style="stroke:none">GetSameRange()</text>
-      <image
-         x="244"
-         y="766"
-         clip-path="url(#clipPath72)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image810" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="779"
-         clip-path="url(#clipPath73)"
-         id="text812"
-         style="stroke:none">SetDegenerated()</text>
-      <image
-         x="244"
-         y="782"
-         clip-path="url(#clipPath74)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image814" />
-      <text
-         xml:space="preserve"
-         x="263"
-         y="795"
-         clip-path="url(#clipPath75)"
-         id="text816"
-         style="stroke:none">GetDegenerated()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g818"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath76)"
-         x1="240"
-         x2="395"
-         y1="540"
-         y2="540"
-         id="line820"
-         style="fill:none" />
-      <rect
-         x="516"
-         y="515"
-         clip-path="url(#clipPath77)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="121"
-         id="rect822"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="517"
-         y="516"
-         clip-path="url(#clipPath77)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="121"
-         id="rect824"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="515"
-         y="514"
-         clip-path="url(#clipPath78)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="121"
-         id="rect826"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="515"
-         y="514"
-         clip-path="url(#clipPath78)"
-         width="144"
-         rx="2.5"
-         ry="2.5"
-         height="120"
-         id="rect828"
-         style="fill:none" />
-      <image
-         x="532"
-         y="519"
-         clip-path="url(#clipPath79)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image830" />
-      <text
-         x="551"
-         y="532"
-         clip-path="url(#clipPath80)"
-         xml:space="preserve"
-         id="text832"
-         style="fill:#000000;stroke:none">IMeshData_Wire</text>
-    </g>
-    <g
-       font-size="11"
-       id="g834"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="520"
-         y="542"
-         clip-path="url(#clipPath81)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image836" />
-      <text
-         xml:space="preserve"
-         x="539"
-         y="555"
-         clip-path="url(#clipPath82)"
-         id="text838"
-         style="stroke:none">GetWire()</text>
-      <image
-         x="520"
-         y="558"
-         clip-path="url(#clipPath83)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image840" />
-      <text
-         xml:space="preserve"
-         x="539"
-         y="571"
-         clip-path="url(#clipPath84)"
-         id="text842"
-         style="stroke:none">EdgesNb()</text>
-      <image
-         x="520"
-         y="574"
-         clip-path="url(#clipPath85)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image844" />
-      <text
-         xml:space="preserve"
-         x="539"
-         y="587"
-         clip-path="url(#clipPath86)"
-         id="text846"
-         style="stroke:none">AddEdge()</text>
-      <image
-         x="520"
-         y="590"
-         clip-path="url(#clipPath87)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image848" />
-      <text
-         xml:space="preserve"
-         x="539"
-         y="603"
-         clip-path="url(#clipPath88)"
-         id="text850"
-         style="stroke:none">GetEdge()</text>
-      <image
-         x="520"
-         y="606"
-         clip-path="url(#clipPath89)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image852" />
-      <text
-         xml:space="preserve"
-         x="539"
-         y="619"
-         clip-path="url(#clipPath90)"
-         id="text854"
-         style="stroke:none">GetEdgeOrientation()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g856"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath91)"
-         x1="516"
-         x2="659"
-         y1="540"
-         y2="540"
-         id="line858"
-         style="fill:none" />
-      <rect
-         x="780"
-         y="515"
-         clip-path="url(#clipPath92)"
-         width="118"
-         rx="2.5"
-         ry="2.5"
-         height="133"
-         id="rect860"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="781"
-         y="516"
-         clip-path="url(#clipPath92)"
-         width="118"
-         rx="2.5"
-         ry="2.5"
-         height="133"
-         id="rect862"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="779"
-         y="514"
-         clip-path="url(#clipPath93)"
-         width="118"
-         rx="2.5"
-         ry="2.5"
-         height="133"
-         id="rect864"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="779"
-         y="514"
-         clip-path="url(#clipPath93)"
-         width="117"
-         rx="2.5"
-         ry="2.5"
-         height="132"
-         id="rect866"
-         style="fill:none" />
-      <image
-         x="783"
-         y="519"
-         clip-path="url(#clipPath94)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image868" />
-      <text
-         x="802"
-         y="532"
-         clip-path="url(#clipPath95)"
-         xml:space="preserve"
-         id="text870"
-         style="fill:#000000;stroke:none">IMeshData_Face</text>
-    </g>
-    <g
-       font-size="11"
-       id="g872"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="784"
-         y="542"
-         clip-path="url(#clipPath96)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image874" />
-      <text
-         xml:space="preserve"
-         x="803"
-         y="555"
-         clip-path="url(#clipPath97)"
-         id="text876"
-         style="stroke:none">GetFace()</text>
-      <image
-         x="784"
-         y="558"
-         clip-path="url(#clipPath98)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image878" />
-      <text
-         xml:space="preserve"
-         x="803"
-         y="571"
-         clip-path="url(#clipPath99)"
-         id="text880"
-         style="stroke:none">WiresNb()</text>
-      <image
-         x="784"
-         y="574"
-         clip-path="url(#clipPath100)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image882" />
-      <text
-         xml:space="preserve"
-         x="803"
-         y="587"
-         clip-path="url(#clipPath101)"
-         id="text884"
-         style="stroke:none">AddWire()</text>
-      <image
-         x="784"
-         y="590"
-         clip-path="url(#clipPath102)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image886" />
-      <text
-         xml:space="preserve"
-         x="803"
-         y="603"
-         clip-path="url(#clipPath103)"
-         id="text888"
-         style="stroke:none">GetWire()</text>
-      <image
-         x="784"
-         y="606"
-         clip-path="url(#clipPath104)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image890" />
-      <text
-         xml:space="preserve"
-         x="803"
-         y="619"
-         clip-path="url(#clipPath105)"
-         id="text892"
-         style="stroke:none">GetSurface()</text>
-      <image
-         x="784"
-         y="622"
-         clip-path="url(#clipPath106)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image894" />
-      <text
-         xml:space="preserve"
-         x="803"
-         y="635"
-         clip-path="url(#clipPath107)"
-         id="text896"
-         style="stroke:none">IsValid()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g898"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath108)"
-         x1="780"
-         x2="896"
-         y1="540"
-         y2="540"
-         id="line900"
-         style="fill:none" />
-      <rect
-         x="624"
-         y="359"
-         clip-path="url(#clipPath109)"
-         width="169"
-         rx="2.5"
-         ry="2.5"
-         height="122"
-         id="rect902"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="625"
-         y="360"
-         clip-path="url(#clipPath109)"
-         width="169"
-         rx="2.5"
-         ry="2.5"
-         height="122"
-         id="rect904"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="623"
-         y="358"
-         clip-path="url(#clipPath110)"
-         width="169"
-         rx="2.5"
-         ry="2.5"
-         height="122"
-         id="rect906"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="623"
-         y="358"
-         clip-path="url(#clipPath110)"
-         width="168"
-         rx="2.5"
-         ry="2.5"
-         height="121"
-         id="rect908"
-         style="fill:none" />
-      <image
-         x="629"
-         y="363"
-         clip-path="url(#clipPath111)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image910" />
-      <text
-         x="648"
-         y="376"
-         clip-path="url(#clipPath112)"
-         xml:space="preserve"
-         id="text912"
-         style="fill:#000000;stroke:none">IMeshData_StatusOwner</text>
-    </g>
-    <g
-       font-size="11"
-       id="g914"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="628"
-         y="386"
-         clip-path="url(#clipPath113)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image916" />
-      <text
-         xml:space="preserve"
-         x="647"
-         y="399"
-         clip-path="url(#clipPath114)"
-         id="text918"
-         style="stroke:none">IsEqual()</text>
-      <image
-         x="628"
-         y="402"
-         clip-path="url(#clipPath115)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image920" />
-      <text
-         xml:space="preserve"
-         x="647"
-         y="415"
-         clip-path="url(#clipPath116)"
-         id="text922"
-         style="stroke:none">IsSet()</text>
-      <image
-         x="628"
-         y="418"
-         clip-path="url(#clipPath117)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image924" />
-      <text
-         xml:space="preserve"
-         x="647"
-         y="431"
-         clip-path="url(#clipPath118)"
-         id="text926"
-         style="stroke:none">SetStatus()</text>
-      <image
-         x="628"
-         y="434"
-         clip-path="url(#clipPath119)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image928" />
-      <text
-         xml:space="preserve"
-         x="647"
-         y="447"
-         clip-path="url(#clipPath120)"
-         id="text930"
-         style="stroke:none">UnsetStatus()</text>
-      <image
-         x="628"
-         y="450"
-         clip-path="url(#clipPath121)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image932" />
-      <text
-         xml:space="preserve"
-         x="647"
-         y="463"
-         clip-path="url(#clipPath122)"
-         id="text934"
-         style="stroke:none">GetStatusMask()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g936"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath123)"
-         x1="624"
-         x2="791"
-         y1="384"
-         y2="384"
-         id="line938"
-         style="fill:none" />
-      <rect
-         x="11"
-         y="551"
-         clip-path="url(#clipPath124)"
-         width="182"
-         rx="2.5"
-         ry="2.5"
-         height="98"
-         id="rect940"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="12"
-         y="552"
-         clip-path="url(#clipPath124)"
-         width="182"
-         rx="2.5"
-         ry="2.5"
-         height="98"
-         id="rect942"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="10"
-         y="550"
-         clip-path="url(#clipPath125)"
-         width="182"
-         rx="2.5"
-         ry="2.5"
-         height="98"
-         id="rect944"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="10"
-         y="550"
-         clip-path="url(#clipPath125)"
-         width="181"
-         rx="2.5"
-         ry="2.5"
-         height="97"
-         id="rect946"
-         style="fill:none" />
-      <image
-         x="17"
-         y="555"
-         clip-path="url(#clipPath126)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image948" />
-      <text
-         x="36"
-         y="568"
-         clip-path="url(#clipPath127)"
-         xml:space="preserve"
-         id="text950"
-         style="fill:#000000;stroke:none">IMeshData_ParametersList</text>
-    </g>
-    <g
-       font-size="11"
-       id="g952"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="15"
-         y="578"
-         clip-path="url(#clipPath128)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image954" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="591"
-         clip-path="url(#clipPath129)"
-         id="text956"
-         style="stroke:none">GetParameter()</text>
-      <image
-         x="15"
-         y="594"
-         clip-path="url(#clipPath130)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image958" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="607"
-         clip-path="url(#clipPath131)"
-         id="text960"
-         style="stroke:none">ParametersNb()</text>
-      <image
-         x="15"
-         y="610"
-         clip-path="url(#clipPath132)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image962" />
-      <text
-         xml:space="preserve"
-         x="34"
-         y="623"
-         clip-path="url(#clipPath133)"
-         id="text964"
-         style="stroke:none">Clear()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g966"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath134)"
-         x1="11"
-         x2="191"
-         y1="576"
-         y2="576"
-         id="line968"
-         style="fill:none" />
-      <rect
-         x="156"
-         y="827"
-         clip-path="url(#clipPath135)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="181"
-         id="rect970"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="157"
-         y="828"
-         clip-path="url(#clipPath135)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="181"
-         id="rect972"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="155"
-         y="826"
-         clip-path="url(#clipPath136)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="181"
-         id="rect974"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="155"
-         y="826"
-         clip-path="url(#clipPath136)"
-         width="144"
-         rx="2.5"
-         ry="2.5"
-         height="180"
-         id="rect976"
-         style="fill:none" />
-      <image
-         x="169"
-         y="831"
-         clip-path="url(#clipPath137)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image978" />
-      <text
-         x="188"
-         y="844"
-         clip-path="url(#clipPath138)"
-         xml:space="preserve"
-         id="text980"
-         style="fill:#000000;stroke:none">IMeshData_Curve</text>
-    </g>
-    <g
-       font-size="11"
-       id="g982"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="160"
-         y="854"
-         clip-path="url(#clipPath139)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image984" />
-      <text
-         xml:space="preserve"
-         x="179"
-         y="867"
-         clip-path="url(#clipPath140)"
-         id="text986"
-         style="stroke:none">InsertPoint()</text>
-      <image
-         x="160"
-         y="870"
-         clip-path="url(#clipPath141)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image988" />
-      <text
-         xml:space="preserve"
-         x="179"
-         y="883"
-         clip-path="url(#clipPath142)"
-         id="text990"
-         style="stroke:none">AddPoint()</text>
-      <image
-         x="160"
-         y="886"
-         clip-path="url(#clipPath143)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image992" />
-      <text
-         xml:space="preserve"
-         x="179"
-         y="899"
-         clip-path="url(#clipPath144)"
-         id="text994"
-         style="stroke:none">GetPoint()</text>
-      <image
-         x="160"
-         y="902"
-         clip-path="url(#clipPath145)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image996" />
-      <text
-         xml:space="preserve"
-         x="179"
-         y="915"
-         clip-path="url(#clipPath146)"
-         id="text998"
-         style="stroke:none">RemovePoint()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g1000"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath147)"
-         x1="156"
-         x2="299"
-         y1="852"
-         y2="852"
-         id="line1002"
-         style="fill:none" />
-      <rect
-         x="336"
-         y="827"
-         clip-path="url(#clipPath148)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="181"
-         id="rect1004"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="337"
-         y="828"
-         clip-path="url(#clipPath148)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="181"
-         id="rect1006"
-         style="opacity:0.25489999;fill:#837a85;stroke:none" />
-      <rect
-         x="335"
-         y="826"
-         clip-path="url(#clipPath149)"
-         width="145"
-         rx="2.5"
-         ry="2.5"
-         height="181"
-         id="rect1008"
-         style="fill:#ffffff;stroke:none" />
-      <rect
-         x="335"
-         y="826"
-         clip-path="url(#clipPath149)"
-         width="144"
-         rx="2.5"
-         ry="2.5"
-         height="180"
-         id="rect1010"
-         style="fill:none" />
-      <image
-         x="345"
-         y="831"
-         clip-path="url(#clipPath150)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC
-BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu
-rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF
-x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG
-g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL
-Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX
-0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO
-RK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1012" />
-      <text
-         x="364"
-         y="844"
-         clip-path="url(#clipPath151)"
-         xml:space="preserve"
-         id="text1014"
-         style="fill:#000000;stroke:none">IMeshData_PCurve</text>
-    </g>
-    <g
-       font-size="11"
-       id="g1016"
-       style="font-size:11px;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <image
-         x="340"
-         y="854"
-         clip-path="url(#clipPath152)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1018" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="867"
-         clip-path="url(#clipPath153)"
-         id="text1020"
-         style="stroke:none">InsertPoint()</text>
-      <image
-         x="340"
-         y="870"
-         clip-path="url(#clipPath154)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1022" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="883"
-         clip-path="url(#clipPath155)"
-         id="text1024"
-         style="stroke:none">AddPoint()</text>
-      <image
-         x="340"
-         y="886"
-         clip-path="url(#clipPath156)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1026" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="899"
-         clip-path="url(#clipPath157)"
-         id="text1028"
-         style="stroke:none">GetPoint()</text>
-      <image
-         x="340"
-         y="902"
-         clip-path="url(#clipPath158)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1030" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="915"
-         clip-path="url(#clipPath159)"
-         id="text1032"
-         style="stroke:none">RemovePoint()</text>
-      <image
-         x="340"
-         y="918"
-         clip-path="url(#clipPath160)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1034" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="931"
-         clip-path="url(#clipPath161)"
-         id="text1036"
-         style="stroke:none">GetIndex()</text>
-      <image
-         x="340"
-         y="934"
-         clip-path="url(#clipPath162)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1038" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="947"
-         clip-path="url(#clipPath163)"
-         id="text1040"
-         style="stroke:none">IsForward()</text>
-      <image
-         x="340"
-         y="950"
-         clip-path="url(#clipPath164)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1042" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="963"
-         clip-path="url(#clipPath165)"
-         id="text1044"
-         style="stroke:none">IsInternal()</text>
-      <image
-         x="340"
-         y="966"
-         clip-path="url(#clipPath166)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1046" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="979"
-         clip-path="url(#clipPath167)"
-         id="text1048"
-         style="stroke:none">GetOrientation()</text>
-      <image
-         x="340"
-         y="982"
-         clip-path="url(#clipPath168)"
-         width="16"
-         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT
-URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp
-B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/
-u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0
-rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri
-aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx
-OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM
-/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4
-lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI
-/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA
-zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms
-ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG
-Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII="
-         xlink:type="simple"
-         xlink:actuate="onLoad"
-         height="16"
-         preserveAspectRatio="none"
-         xlink:show="embed"
-         id="image1050" />
-      <text
-         xml:space="preserve"
-         x="359"
-         y="995"
-         clip-path="url(#clipPath169)"
-         id="text1052"
-         style="stroke:none">GetFace()</text>
-    </g>
-    <g
-       font-weight="bold"
-       id="g1054"
-       style="font-weight:bold;fill:#ad7fa8;stroke:#ad7fa8;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath170)"
-         x1="336"
-         x2="479"
-         y1="852"
-         y2="852"
-         id="line1056"
-         style="fill:none" />
-    </g>
-    <g
-       font-size="11"
-       id="g1072"
-       style="font-size:11px;fill:#888888;stroke:#888888;stroke-width:1.10000002;stroke-linecap:butt;font-family:Segoe UI">
-      <line
-         clip-path="url(#clipPath176)"
-         x1="83"
-         x2="83"
-         y1="298"
-         y2="258"
-         id="line1074"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="83"
-         x2="288"
-         y1="258"
-         y2="258"
-         id="line1076"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="288"
-         x2="288"
-         y1="258"
-         y2="240"
-         id="line1078"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath177)"
-         points="288,240 292,248 284,248 "
-         id="polygon1080"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath177)"
-         points="288,240 292,248 284,248 "
-         id="polygon1082"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="466"
-         x2="466"
-         y1="358"
-         y2="258"
-         id="line1084"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="466"
-         x2="288"
-         y1="258"
-         y2="258"
-         id="line1086"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="288"
-         x2="288"
-         y1="258"
-         y2="240"
-         id="line1088"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath177)"
-         points="288,240 292,248 284,248 "
-         id="polygon1090"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath177)"
-         points="288,240 292,248 284,248 "
-         id="polygon1092"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="323"
-         x2="323"
-         y1="514"
-         y2="502"
-         id="line1094"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="323"
-         x2="468"
-         y1="502"
-         y2="502"
-         id="line1096"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="468"
-         x2="468"
-         y1="502"
-         y2="480"
-         id="line1098"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath178)"
-         points="468,480 472,488 464,488 "
-         id="polygon1100"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath178)"
-         points="468,480 472,488 464,488 "
-         id="polygon1102"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="583"
-         x2="583"
-         y1="514"
-         y2="502"
-         id="line1104"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="583"
-         x2="468"
-         y1="502"
-         y2="502"
-         id="line1106"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="468"
-         x2="468"
-         y1="502"
-         y2="480"
-         id="line1108"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath178)"
-         points="468,480 472,488 464,488 "
-         id="polygon1110"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath178)"
-         points="468,480 472,488 464,488 "
-         id="polygon1112"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="822"
-         x2="822"
-         y1="514"
-         y2="502"
-         id="line1114"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="822"
-         x2="468"
-         y1="502"
-         y2="502"
-         id="line1116"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="468"
-         x2="468"
-         y1="502"
-         y2="480"
-         id="line1118"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath178)"
-         points="468,480 472,488 464,488 "
-         id="polygon1120"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath178)"
-         points="468,480 472,488 464,488 "
-         id="polygon1122"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="323"
-         x2="323"
-         y1="514"
-         y2="502"
-         id="line1124"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="323"
-         x2="707"
-         y1="502"
-         y2="502"
-         id="line1126"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="707"
-         x2="707"
-         y1="502"
-         y2="480"
-         id="line1128"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath179)"
-         points="707,480 711,488 703,488 "
-         id="polygon1130"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath179)"
-         points="707,480 711,488 703,488 "
-         id="polygon1132"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="409"
-         x2="409"
-         y1="1007"
-         y2="1054"
-         id="line1134"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="409"
-         x2="104"
-         y1="1054"
-         y2="1054"
-         id="line1136"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="104"
-         x2="104"
-         y1="1054"
-         y2="648"
-         id="line1138"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath180)"
-         points="104,648 108,656 100,656 "
-         id="polygon1140"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath180)"
-         points="104,648 108,656 100,656 "
-         id="polygon1142"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="239"
-         x2="179"
-         y1="714"
-         y2="714"
-         id="line1144"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="179"
-         x2="179"
-         y1="714"
-         y2="826"
-         id="line1146"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="191"
-         y="778"
-         clip-path="url(#clipPath181)"
-         xml:space="preserve"
-         id="text1148"
-         style="fill:#000000;stroke:none">has</text>
-      <text
-         x="191"
-         y="730"
-         clip-path="url(#clipPath182)"
-         xml:space="preserve"
-         id="text1150"
-         style="fill:#000000;stroke:none">edge[1]</text>
-      <text
-         x="191"
-         y="826"
-         clip-path="url(#clipPath183)"
-         xml:space="preserve"
-         id="text1152"
-         style="fill:#000000;stroke:none">curve[1]</text>
-      <line
-         clip-path="url(#clipPath184)"
-         x1="176"
-         x2="179"
-         y1="819"
-         y2="826"
-         id="line1154"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath184)"
-         x1="179"
-         x2="182"
-         y1="826"
-         y2="819"
-         id="line1156"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="396"
-         x2="453"
-         y1="718"
-         y2="718"
-         id="line1158"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="453"
-         x2="453"
-         y1="718"
-         y2="826"
-         id="line1160"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="431"
-         y="778"
-         clip-path="url(#clipPath185)"
-         xml:space="preserve"
-         id="text1162"
-         style="fill:#000000;stroke:none">has</text>
-      <text
-         x="407"
-         y="730"
-         clip-path="url(#clipPath186)"
-         xml:space="preserve"
-         id="text1164"
-         style="fill:#000000;stroke:none">edge[1]</text>
-      <text
-         x="395"
-         y="826"
-         clip-path="url(#clipPath187)"
-         xml:space="preserve"
-         id="text1166"
-         style="fill:#000000;stroke:none">pcurve[*]</text>
-      <line
-         clip-path="url(#clipPath188)"
-         x1="450"
-         x2="453"
-         y1="819"
-         y2="826"
-         id="line1168"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath188)"
-         x1="453"
-         x2="456"
-         y1="826"
-         y2="819"
-         id="line1170"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="480"
-         x2="838"
-         y1="886"
-         y2="886"
-         id="line1172"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="838"
-         x2="838"
-         y1="886"
-         y2="647"
-         id="line1174"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="779"
-         y="874"
-         clip-path="url(#clipPath189)"
-         xml:space="preserve"
-         id="text1176"
-         style="fill:#000000;stroke:none">references</text>
-      <text
-         x="479"
-         y="898"
-         clip-path="url(#clipPath190)"
-         xml:space="preserve"
-         id="text1178"
-         style="fill:#000000;stroke:none">pcurve[1]</text>
-      <text
-         x="851"
-         y="664"
-         clip-path="url(#clipPath191)"
-         xml:space="preserve"
-         id="text1180"
-         style="fill:#000000;stroke:none">face[1]</text>
-      <line
-         clip-path="url(#clipPath192)"
-         x1="841"
-         x2="838"
-         y1="654"
-         y2="647"
-         id="line1182"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath192)"
-         x1="838"
-         x2="835"
-         y1="647"
-         y2="654"
-         id="line1184"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="779"
-         x2="660"
-         y1="582"
-         y2="582"
-         id="line1186"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="705"
-         y="595"
-         clip-path="url(#clipPath193)"
-         xml:space="preserve"
-         id="text1188"
-         style="fill:#000000;stroke:none">has</text>
-      <text
-         x="743"
-         y="580"
-         clip-path="url(#clipPath194)"
-         xml:space="preserve"
-         id="text1190"
-         style="fill:#000000;stroke:none">face[1]</text>
-      <text
-         x="664"
-         y="579"
-         clip-path="url(#clipPath195)"
-         xml:space="preserve"
-         id="text1192"
-         style="fill:#000000;stroke:none">wire[1..*]</text>
-      <line
-         clip-path="url(#clipPath196)"
-         x1="667"
-         x2="660"
-         y1="579"
-         y2="582"
-         id="line1194"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath196)"
-         x1="660"
-         x2="667"
-         y1="582"
-         y2="585"
-         id="line1196"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="515"
-         x2="396"
-         y1="582"
-         y2="582"
-         id="line1198"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="445"
-         y="596"
-         clip-path="url(#clipPath197)"
-         xml:space="preserve"
-         id="text1200"
-         style="fill:#000000;stroke:none">has</text>
-      <text
-         x="479"
-         y="578"
-         clip-path="url(#clipPath198)"
-         xml:space="preserve"
-         id="text1202"
-         style="fill:#000000;stroke:none">wire[1]</text>
-      <text
-         x="394"
-         y="577"
-         clip-path="url(#clipPath199)"
-         xml:space="preserve"
-         id="text1204"
-         style="fill:#000000;stroke:none">edge[1..*]</text>
-      <line
-         clip-path="url(#clipPath200)"
-         x1="403"
-         x2="396"
-         y1="579"
-         y2="582"
-         id="line1206"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath200)"
-         x1="396"
-         x2="403"
-         y1="582"
-         y2="585"
-         id="line1208"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="192"
-         x2="291"
-         y1="382"
-         y2="382"
-         id="line1210"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="291"
-         x2="291"
-         y1="382"
-         y2="514"
-         id="line1212"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="266"
-         y="478"
-         clip-path="url(#clipPath201)"
-         xml:space="preserve"
-         id="text1214"
-         style="fill:#000000;stroke:none">has</text>
-      <text
-         x="191"
-         y="382"
-         clip-path="url(#clipPath202)"
-         xml:space="preserve"
-         id="text1216"
-         style="fill:#000000;stroke:none">model[1]</text>
-      <text
-         x="250"
-         y="515"
-         clip-path="url(#clipPath203)"
-         xml:space="preserve"
-         id="text1218"
-         style="fill:#000000;stroke:none">edge[*]</text>
-      <line
-         clip-path="url(#clipPath204)"
-         x1="288"
-         x2="291"
-         y1="507"
-         y2="514"
-         id="line1220"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath204)"
-         x1="291"
-         x2="294"
-         y1="514"
-         y2="507"
-         id="line1222"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="192"
-         x2="863"
-         y1="334"
-         y2="334"
-         id="line1224"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="863"
-         x2="863"
-         y1="334"
-         y2="514"
-         id="line1226"
-         style="fill:none;stroke-dasharray:5, 5" />
-      <text
-         x="684"
-         y="330"
-         clip-path="url(#clipPath205)"
-         xml:space="preserve"
-         id="text1228"
-         style="fill:#000000;stroke:none">has</text>
-      <text
-         x="191"
-         y="334"
-         clip-path="url(#clipPath206)"
-         xml:space="preserve"
-         id="text1230"
-         style="fill:#000000;stroke:none">model[1]</text>
-      <text
-         x="866"
-         y="510"
-         clip-path="url(#clipPath207)"
-         xml:space="preserve"
-         id="text1232"
-         style="fill:#000000;stroke:none">face[*]</text>
-      <line
-         clip-path="url(#clipPath208)"
-         x1="860"
-         x2="863"
-         y1="507"
-         y2="514"
-         id="line1234"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath208)"
-         x1="863"
-         x2="866"
-         y1="514"
-         y2="507"
-         id="line1236"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="228"
-         x2="228"
-         y1="1007"
-         y2="1054"
-         id="line1238"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="228"
-         x2="104"
-         y1="1054"
-         y2="1054"
-         id="line1240"
-         style="fill:none" />
-      <line
-         clip-path="url(#clipPath176)"
-         x1="104"
-         x2="104"
-         y1="1054"
-         y2="648"
-         id="line1242"
-         style="fill:none" />
-      <polygon
-         clip-path="url(#clipPath180)"
-         points="104,648 108,656 100,656 "
-         id="polygon1244"
-         style="fill:#ffffff;stroke:none" />
-      <polygon
-         clip-path="url(#clipPath180)"
-         points="104,648 108,656 100,656 "
-         id="polygon1246"
-         style="fill:none" />
-    </g>
-  </g>
-</svg>
diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_004.svg b/dox/user_guides/modeling_algos/images/modeling_algos_mesh_004.svg
deleted file mode 100644 (file)
index 2ca4c42..0000000
+++ /dev/null
@@ -1,820 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none" shape-rendering="auto" font-family="'Dialog'" width="1514" text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" color-interpolation="auto" color-rendering="auto" preserveAspectRatio="xMidYMid meet" font-size="12" viewBox="0 0 1514 1571" fill="black" stroke="black" image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square" stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="1571" stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
-<!--Generated by the Batik Graphics2D SVG Generator-->
-<defs id="genericDefs"/>
-<g>
-<defs id="defs1">
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
-<path d="M1296 189 L1505 189 L1505 291 L1296 291 L1296 189 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
-<path d="M1296 189 L1503 189 L1503 289 L1296 289 L1296 189 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
-<path d="M1307 194 L1492 194 L1492 212 L1307 212 L1307 194 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
-<path d="M1307 194 L1495 194 L1495 212 L1307 212 L1307 194 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
-<path d="M1301 217 L1497 217 L1497 245 L1301 245 L1301 217 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
-<path d="M1301 217 L1499 217 L1499 245 L1301 245 L1301 217 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
-<path d="M1297 215 L1502 215 L1502 288 L1297 288 L1297 215 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
-<path d="M1296 345 L1505 345 L1505 434 L1296 434 L1296 345 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
-<path d="M1296 345 L1503 345 L1503 432 L1296 432 L1296 345 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
-<path d="M1308 350 L1490 350 L1490 368 L1308 368 L1308 350 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
-<path d="M1308 350 L1493 350 L1493 368 L1308 368 L1308 350 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
-<path d="M1297 371 L1502 371 L1502 431 L1297 431 L1297 371 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
-<path d="M12 165 L1168 165 L1168 1562 L12 1562 L12 165 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
-<path d="M12 165 L1166 165 L1166 1560 L12 1560 L12 165 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
-<path d="M13 170 L135 170 L135 188 L13 188 L13 170 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
-<path d="M13 170 L137 170 L137 188 L13 188 L13 170 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
-<path d="M291 189 L523 189 L523 291 L291 291 L291 189 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
-<path d="M291 189 L521 189 L521 289 L291 289 L291 189 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
-<path d="M334 194 L478 194 L478 212 L334 212 L334 194 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
-<path d="M334 194 L481 194 L481 212 L334 212 L334 194 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
-<path d="M296 217 L458 217 L458 245 L296 245 L296 217 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
-<path d="M296 217 L460 217 L460 245 L296 245 L296 217 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
-<path d="M292 215 L520 215 L520 288 L292 288 L292 215 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
-<path d="M446 465 L739 465 L739 567 L446 567 L446 465 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
-<path d="M446 465 L737 465 L737 565 L446 565 L446 465 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
-<path d="M482 470 L700 470 L700 488 L482 488 L482 470 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
-<path d="M482 470 L703 470 L703 488 L482 488 L482 470 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
-<path d="M447 491 L736 491 L736 564 L447 564 L447 491 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
-<path d="M444 777 L737 777 L737 879 L444 879 L444 777 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
-<path d="M444 777 L735 777 L735 877 L444 877 L444 777 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
-<path d="M452 782 L727 782 L727 814 L452 814 L452 782 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
-<path d="M452 782 L730 782 L730 814 L452 814 L452 782 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
-<path d="M445 817 L734 817 L734 876 L445 876 L445 817 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
-<path d="M792 777 L1097 777 L1097 879 L792 879 L792 777 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
-<path d="M792 777 L1095 777 L1095 877 L792 877 L792 777 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
-<path d="M796 782 L1091 782 L1091 814 L796 814 L796 782 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
-<path d="M796 782 L1094 782 L1094 814 L796 814 L796 782 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
-<path d="M793 817 L1094 817 L1094 876 L793 876 L793 817 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
-<path d="M74 465 L367 465 L367 567 L74 567 L74 465 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
-<path d="M74 465 L365 465 L365 565 L74 565 L74 465 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
-<path d="M118 470 L320 470 L320 488 L118 488 L118 470 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
-<path d="M118 470 L323 470 L323 488 L118 488 L118 470 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
-<path d="M75 491 L364 491 L364 564 L75 564 L75 491 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
-<path d="M72 777 L365 777 L365 879 L72 879 L72 777 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath45">
-<path d="M72 777 L363 777 L363 877 L72 877 L72 777 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath46">
-<path d="M75 782 L360 782 L360 814 L75 814 L75 782 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath47">
-<path d="M75 782 L363 782 L363 814 L75 814 L75 782 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath48">
-<path d="M73 817 L362 817 L362 876 L73 876 L73 817 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath49">
-<path d="M36 944 L1145 944 L1145 1538 L36 1538 L36 944 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath50">
-<path d="M36 944 L1143 944 L1143 1536 L36 1536 L36 944 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath51">
-<path d="M37 949 L135 949 L135 967 L37 967 L37 949 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath52">
-<path d="M37 949 L137 949 L137 967 L37 967 L37 949 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath53">
-<path d="M492 980 L713 980 L713 1082 L492 1082 L492 980 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath54">
-<path d="M492 980 L711 980 L711 1080 L492 1080 L492 980 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath55">
-<path d="M499 985 L704 985 L704 1003 L499 1003 L499 985 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath56">
-<path d="M499 985 L707 985 L707 1003 L499 1003 L499 985 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath57">
-<path d="M493 1006 L710 1006 L710 1079 L493 1079 L493 1006 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath58">
-<path d="M60 1124 L281 1124 L281 1226 L60 1226 L60 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath59">
-<path d="M60 1124 L279 1124 L279 1224 L60 1224 L60 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath60">
-<path d="M74 1129 L265 1129 L265 1147 L74 1147 L74 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath61">
-<path d="M74 1129 L268 1129 L268 1147 L74 1147 L74 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath62">
-<path d="M61 1150 L278 1150 L278 1223 L61 1223 L61 1150 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath63">
-<path d="M300 1124 L521 1124 L521 1226 L300 1226 L300 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath64">
-<path d="M300 1124 L519 1124 L519 1224 L300 1224 L300 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath65">
-<path d="M305 1129 L513 1129 L513 1147 L305 1147 L305 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath66">
-<path d="M305 1129 L516 1129 L516 1147 L305 1147 L305 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath67">
-<path d="M301 1150 L518 1150 L518 1223 L301 1223 L301 1150 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath68">
-<path d="M535 1124 L756 1124 L756 1226 L535 1226 L535 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath69">
-<path d="M535 1124 L754 1124 L754 1224 L535 1224 L535 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath70">
-<path d="M543 1129 L746 1129 L746 1147 L543 1147 L543 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath71">
-<path d="M543 1129 L749 1129 L749 1147 L543 1147 L543 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath72">
-<path d="M536 1150 L753 1150 L753 1223 L536 1223 L536 1150 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath73">
-<path d="M775 1124 L995 1124 L995 1226 L775 1226 L775 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath74">
-<path d="M775 1124 L993 1124 L993 1224 L775 1224 L775 1124 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath75">
-<path d="M776 1129 L991 1129 L991 1147 L776 1147 L776 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath76">
-<path d="M776 1129 L994 1129 L994 1147 L776 1147 L776 1129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath77">
-<path d="M776 1150 L992 1150 L992 1223 L776 1223 L776 1150 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath78">
-<path d="M649 1280 L869 1280 L869 1382 L649 1382 L649 1280 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath79">
-<path d="M649 1280 L867 1280 L867 1380 L649 1380 L649 1280 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath80">
-<path d="M661 1285 L855 1285 L855 1303 L661 1303 L661 1285 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath81">
-<path d="M661 1285 L858 1285 L858 1303 L661 1303 L661 1285 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath82">
-<path d="M650 1306 L866 1306 L866 1379 L650 1379 L650 1306 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath83">
-<path d="M900 1280 L1119 1280 L1119 1382 L900 1382 L900 1280 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath84">
-<path d="M900 1280 L1117 1280 L1117 1380 L900 1380 L900 1280 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath85">
-<path d="M906 1285 L1110 1285 L1110 1303 L906 1303 L906 1285 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath86">
-<path d="M906 1285 L1113 1285 L1113 1303 L906 1303 L906 1285 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath87">
-<path d="M901 1306 L1116 1306 L1116 1379 L901 1379 L901 1306 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath88">
-<path d="M852 1413 L1119 1413 L1119 1515 L852 1515 L852 1413 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath89">
-<path d="M852 1413 L1117 1413 L1117 1513 L852 1513 L852 1413 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath90">
-<path d="M856 1418 L1112 1418 L1112 1436 L856 1436 L856 1418 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath91">
-<path d="M856 1418 L1115 1418 L1115 1436 L856 1436 L856 1418 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath92">
-<path d="M853 1439 L1116 1439 L1116 1512 L853 1512 L853 1439 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath93">
-<path d="M290 321 L523 321 L523 423 L290 423 L290 321 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath94">
-<path d="M290 321 L521 321 L521 421 L290 421 L290 321 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath95">
-<path d="M322 326 L489 326 L489 344 L322 344 L322 326 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath96">
-<path d="M322 326 L492 326 L492 344 L322 344 L322 326 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath97">
-<path d="M291 347 L520 347 L520 420 L291 420 L291 347 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath98">
-<path d="M822 321 L1067 321 L1067 423 L822 423 L822 321 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath99">
-<path d="M822 321 L1065 321 L1065 421 L822 421 L822 321 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath100">
-<path d="M834 326 L1053 326 L1053 344 L834 344 L834 326 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath101">
-<path d="M834 326 L1056 326 L1056 344 L834 344 L834 326 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath102">
-<path d="M823 347 L1064 347 L1064 420 L823 420 L823 347 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath103">
-<path d="M276 621 L538 621 L538 723 L276 723 L276 621 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath104">
-<path d="M276 621 L536 621 L536 721 L276 721 L276 621 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath105">
-<path d="M294 626 L518 626 L518 658 L294 658 L294 626 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath106">
-<path d="M294 626 L521 626 L521 658 L294 658 L294 626 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath107">
-<path d="M294 626 L520 626 L520 658 L294 658 L294 626 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath108">
-<path d="M277 661 L535 661 L535 720 L277 720 L277 661 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath109">
-<path d="M792 9 L986 9 L986 111 L792 111 L792 9 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath110">
-<path d="M792 9 L984 9 L984 109 L792 109 L792 9 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath111">
-<path d="M812 14 L963 14 L963 32 L812 32 L812 14 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath112">
-<path d="M812 14 L966 14 L966 32 L812 32 L812 14 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath113">
-<path d="M793 35 L983 35 L983 108 L793 108 L793 35 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath114">
-<path d="M-1 -1 L1515 -1 L1515 1572 L-1 1572 L-1 -1 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath115">
-<path d="M22 597 L365 597 L365 615 L22 615 L22 597 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath116">
-<path d="M22 597 L367 597 L367 615 L22 615 L22 597 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath117">
-<path d="M366 616 L377 616 L377 624 L366 624 L366 616 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath118">
-<path d="M828 908 L1001 908 L1001 926 L828 926 L828 908 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath119">
-<path d="M828 908 L1003 908 L1003 926 L828 926 L828 908 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath120">
-<path d="M904 875 L915 875 L915 883 L904 883 L904 875 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath121">
-<path d="M597 1078 L608 1078 L608 1089 L597 1089 L597 1078 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath122">
-<path d="M400 419 L411 419 L411 430 L400 430 L400 419 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath123">
-<path d="M880 1222 L891 1222 L891 1233 L880 1233 L880 1222 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath124">
-<path d="M127 902 L300 902 L300 920 L127 920 L127 902 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath125">
-<path d="M127 902 L302 902 L302 920 L127 920 L127 902 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath126">
-<path d="M252 875 L263 875 L263 883 L252 883 L252 875 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath127">
-<path d="M434 597 L794 597 L794 615 L434 615 L434 597 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath128">
-<path d="M434 597 L796 597 L796 615 L434 615 L434 597 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath129">
-<path d="M446 616 L457 616 L457 624 L446 624 L446 616 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath130">
-<path d="M1004 1378 L1015 1378 L1015 1389 L1004 1389 L1004 1378 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath131">
-<path d="M733 823 L743 823 L743 832 L733 832 L733 823 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath132">
-<path d="M402 719 L413 719 L413 730 L402 730 L402 719 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath133">
-<path d="M408 896 L581 896 L581 914 L408 914 L408 896 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath134">
-<path d="M408 896 L583 896 L583 914 L408 914 L408 896 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath135">
-<path d="M586 875 L595 875 L595 885 L586 885 L586 875 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath136">
-<path d="M666 359 L721 359 L721 374 L666 374 L666 359 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath137">
-<path d="M815 372 L825 372 L825 381 L815 381 L815 372 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath138">
-<path d="M401 287 L412 287 L412 298 L401 298 L401 287 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath139">
-<path d="M1394 287 L1405 287 L1405 298 L1394 298 L1394 287 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath140">
-<path d="M1164 394 L1174 394 L1174 403 L1164 403 L1164 394 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath141">
-<path d="M579 123 L634 123 L634 138 L579 138 L579 123 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath142">
-<path d="M408 185 L418 185 L418 194 L408 194 L408 185 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath143">
-<path d="M1140 129 L1195 129 L1195 144 L1140 144 L1140 129 Z"/>
-</clipPath>
-<clipPath clipPathUnits="userSpaceOnUse" id="clipPath144">
-<path d="M1385 185 L1395 185 L1395 194 L1385 194 L1385 185 Z"/>
-</clipPath>
-</defs>
-<g fill="rgb(131,122,133)" font-family="'Segoe UI'" stroke-linejoin="round" stroke="rgb(131,122,133)" font-weight="bold" stroke-width="0" stroke-miterlimit="0">
-<rect x="1298" y="191" clip-path="url(#clipPath1)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="1299" y="192" clip-path="url(#clipPath1)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="1297" y="190" clip-path="url(#clipPath2)" fill="white" width="205" rx="2.5" ry="2.5" height="98" stroke="none"/>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<rect x="1297" y="190" clip-path="url(#clipPath2)" fill="none" width="204" rx="2.5" ry="2.5" height="97"/>
-<image x="1308" y="195" clip-path="url(#clipPath3)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="1327" y="208" clip-path="url(#clipPath4)" fill="black" stroke="none" xml:space="preserve">IMeshTools_MeshAlgoFactory</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="1302" y="223" clip-path="url(#clipPath5)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="1321" y="230" clip-path="url(#clipPath6)" stroke="none">GetAlgo(GeomAbs_SurfaceType : , </text>
-<text xml:space="preserve" x="1321" y="243" clip-path="url(#clipPath6)" stroke="none">IMeshTools_Parameters : )</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath7)" fill="none" x1="1298" x2="1501" y1="216" y2="216"/>
-<rect x="1298" y="347" clip-path="url(#clipPath8)" fill="rgb(131,122,133)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="85" stroke="none"/>
-<rect x="1299" y="348" clip-path="url(#clipPath8)" fill="rgb(131,122,133)" width="205" rx="2.5" opacity="0.2549" ry="2.5" height="85" stroke="none"/>
-<rect x="1297" y="346" clip-path="url(#clipPath9)" fill="white" width="205" rx="2.5" ry="2.5" height="85" stroke="none"/>
-<rect x="1297" y="346" clip-path="url(#clipPath9)" fill="none" width="204" rx="2.5" ry="2.5" height="84" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath10)" preserveAspectRatio="none" height="16" x="1309" y="351" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="1328" y="364" clip-path="url(#clipPath11)" fill="black" stroke="none" xml:space="preserve">BRepMesh_MeshAlgoFactory</text>
-<line clip-path="url(#clipPath12)" fill="none" x1="1298" x2="1501" y1="372" y2="372" stroke="rgb(39,76,114)"/>
-<rect x="14" y="167" clip-path="url(#clipPath13)" fill="rgb(131,122,133)" width="1152" rx="2.5" opacity="0.2549" ry="2.5" height="1393" stroke="none"/>
-<rect x="15" y="168" clip-path="url(#clipPath13)" fill="rgb(131,122,133)" width="1152" rx="2.5" opacity="0.2549" ry="2.5" height="1393" stroke="none"/>
-<rect x="13" y="166" clip-path="url(#clipPath14)" fill="white" width="1152" rx="2.5" ry="2.5" height="1393" stroke="none"/>
-<rect x="13" y="166" clip-path="url(#clipPath14)" fill="none" width="1151" rx="2.5" ry="2.5" height="1392" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath15)" preserveAspectRatio="none" height="16" x="14" y="171" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAWUlEQVR42mNgGPKA&#13;&#10;EUQoZCz4j0vBgxkJjPgMYIEx7k+Px5BUzFxIuQvwAZDr4C7YUBdAkuaApg2oXgAB&#13;&#10;MV5+kl3BRGksoLiAnZlCA5gZKTWAiQIDYKE6AgEAAu0P6M4KKrgAAAAASUVORK5C&#13;&#10;YII=" xlink:actuate="onLoad"/>
-<text x="33" y="184" clip-path="url(#clipPath16)" fill="black" stroke="none" xml:space="preserve">Triangulation Algo</text>
-<rect x="293" y="191" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="228" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="294" y="192" clip-path="url(#clipPath17)" fill="rgb(131,122,133)" width="228" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="292" y="190" clip-path="url(#clipPath18)" fill="white" width="228" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="292" y="190" clip-path="url(#clipPath18)" fill="none" width="227" rx="2.5" ry="2.5" height="97"/>
-<image x="335" y="195" clip-path="url(#clipPath19)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmMHsEzceMVhoyDFYVK6EazjRHg4Xh2iAOIcJ2VQWZiawooKF&#13;&#10;x8HsM12RYHEQDeKDxEHyIDYMoBnACFZ0oTcKzAZhmDgIg8QhhjNiN4AVaPKEeEsG&#13;&#10;g+JlYDYr1CYYGyQOkmfF6gJgELMCTfYyUYEqYmTQLlgClgLRID5IHCQPYv+DhgEL&#13;&#10;Qv8/BmYmiNN8zVTB9N2pcSghDxOHqEczAAT8GjaB08F/NBIGECkEyGZkxDRgaYUX&#13;&#10;0ekgpnM7ZiCSA1iwmUq2AUvKPQfQCypKwiR5AaSeKgAABcZdRqE6GaQAAAAASUVO&#13;&#10;RK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="354" y="208" clip-path="url(#clipPath20)" fill="black" stroke="none" xml:space="preserve">IMeshTools_MeshAlgo</text>
-</g>
-<g stroke-width="1.1" font-size="11" font-family="'Segoe UI'" stroke-linecap="butt">
-<image x="297" y="223" clip-path="url(#clipPath21)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42sVTX0hT&#13;&#10;URz+7p3OCIqkaMLq0R6CCIRMaCMyr9ushkT17Fq9RNk/iJBk5z5s+BAhBQYh6Hyp&#13;&#10;B5W0NufcbCuNFcToIQrxz5g0IsVE5u52d+89HScMYw56CPo9nHN+/L7z8fGd7wD/&#13;&#10;u3TlBgIJ0nmlmljb3GQ2OiCWw/FbmyYxQGG+SzfOE+HXePfkNgLhwc3hiZvUSsK0&#13;&#10;rAKLK0gnwq8w+fA6vF950v/gCnZWVaGxoQ4jC3oy+agdnU/7IVzuIvNRb1ERV5Ri&#13;&#10;aqejXTcASsFxKjRaCbaggtfYtAIKVIbWcO5+DzD1mCtRQJMfxBczHGk1NSCfB3yx&#13;&#10;OGYWF/ElkcLBmhrICnCxswd0y+UigcUVonPqHuK+5kClTofI5zhjVNDr/4RjtUbM&#13;&#10;/kjhQLUBx48cRWhpB2l2uslcZNPYgonjzDDP1TZsqFxeyUHTFPSNxRH1nMez8Rh4&#13;&#10;lcP31RwUlcLjdCAYfPnnK9iEs+joHUBiOYOVjASOee04U4dTHUNw2uqh8TqsrctI&#13;&#10;/FpnuD4IFjtKTCwUM9JxoRW8wnjlFGOn0BiE0xug6vTwDg5Bm+7mtg+S+Ra1t7RA&#13;&#10;zgGSKiNHdyPNVbJ9FyRNRUZWcfhQLb7l9xEkY2JJkMwnGzHq92E1l8XImA8/M2ms&#13;&#10;ScCSlMWwP4h0VsJwwI/TTbbtg5R8+1ysv3SPTE9FCk+VpPvJXqMRHyOsf9/NLagG&#13;&#10;Igh2hFwC91efxOp6Q2G6Q5vF0vj+0/oNRdDxkTDUjqQAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text xml:space="preserve" x="316" y="230" clip-path="url(#clipPath22)" stroke="none">Perform(IMeshData_Face : , </text>
-<text xml:space="preserve" x="316" y="243" clip-path="url(#clipPath22)" stroke="none">IMeshTools_Parameters : )</text>
-</g>
-<g stroke-linecap="butt" fill="rgb(173,127,168)" font-family="'Segoe UI'" stroke="rgb(173,127,168)" font-weight="bold" stroke-width="1.1">
-<line clip-path="url(#clipPath23)" fill="none" x1="293" x2="519" y1="216" y2="216"/>
-<rect x="448" y="467" clip-path="url(#clipPath24)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="449" y="468" clip-path="url(#clipPath24)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="447" y="466" clip-path="url(#clipPath25)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="447" y="466" clip-path="url(#clipPath25)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath26)" preserveAspectRatio="none" height="16" x="483" y="471" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="502" y="484" clip-path="url(#clipPath27)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DelaunayBaseMeshAlgo</text>
-<line clip-path="url(#clipPath28)" fill="none" x1="448" x2="735" y1="492" y2="492" stroke="rgb(39,76,114)"/>
-<rect x="446" y="779" clip-path="url(#clipPath29)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="447" y="780" clip-path="url(#clipPath29)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="445" y="778" clip-path="url(#clipPath30)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="445" y="778" clip-path="url(#clipPath30)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath31)" preserveAspectRatio="none" height="16" x="453" y="790" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="472" y="796" clip-path="url(#clipPath32)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DelaunayNodeInsertionMeshAlgo </text>
-<text x="472" y="811" clip-path="url(#clipPath32)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter&gt;</text>
-<line clip-path="url(#clipPath33)" fill="none" x1="446" x2="733" y1="818" y2="818" stroke="rgb(39,76,114)"/>
-<rect x="794" y="779" clip-path="url(#clipPath34)" fill="rgb(131,122,133)" width="301" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="795" y="780" clip-path="url(#clipPath34)" fill="rgb(131,122,133)" width="301" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="793" y="778" clip-path="url(#clipPath35)" fill="white" width="301" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="793" y="778" clip-path="url(#clipPath35)" fill="none" width="300" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath36)" preserveAspectRatio="none" height="16" x="797" y="790" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="816" y="796" clip-path="url(#clipPath37)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DelaunayDeflectionControlMeshAlgo </text>
-<text x="816" y="811" clip-path="url(#clipPath37)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter&gt;</text>
-<line clip-path="url(#clipPath38)" fill="none" x1="794" x2="1093" y1="818" y2="818" stroke="rgb(39,76,114)"/>
-<rect x="76" y="467" clip-path="url(#clipPath39)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="77" y="468" clip-path="url(#clipPath39)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="75" y="466" clip-path="url(#clipPath40)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="75" y="466" clip-path="url(#clipPath40)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath41)" preserveAspectRatio="none" height="16" x="119" y="471" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="138" y="484" clip-path="url(#clipPath42)" fill="black" stroke="none" xml:space="preserve">BRepMesh_SweepLineMeshAlgo</text>
-<line clip-path="url(#clipPath43)" fill="none" x1="76" x2="363" y1="492" y2="492" stroke="rgb(39,76,114)"/>
-<rect x="74" y="779" clip-path="url(#clipPath44)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="75" y="780" clip-path="url(#clipPath44)" fill="rgb(131,122,133)" width="289" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="73" y="778" clip-path="url(#clipPath45)" fill="white" width="289" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="73" y="778" clip-path="url(#clipPath45)" fill="none" width="288" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath46)" preserveAspectRatio="none" height="16" x="76" y="790" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="95" y="796" clip-path="url(#clipPath47)" fill="black" stroke="none" xml:space="preserve">BRepMesh_SweepLineNodeInsertionMeshAlgo </text>
-<text x="95" y="811" clip-path="url(#clipPath47)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter&gt;</text>
-<line clip-path="url(#clipPath48)" fill="none" x1="74" x2="361" y1="818" y2="818" stroke="rgb(39,76,114)"/>
-<rect x="38" y="946" clip-path="url(#clipPath49)" fill="rgb(131,122,133)" width="1105" rx="2.5" opacity="0.2549" ry="2.5" height="590" stroke="none"/>
-<rect x="39" y="947" clip-path="url(#clipPath49)" fill="rgb(131,122,133)" width="1105" rx="2.5" opacity="0.2549" ry="2.5" height="590" stroke="none"/>
-<rect x="37" y="945" clip-path="url(#clipPath50)" fill="white" width="1105" rx="2.5" ry="2.5" height="590" stroke="none"/>
-<rect x="37" y="945" clip-path="url(#clipPath50)" fill="none" width="1104" rx="2.5" ry="2.5" height="589" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath51)" preserveAspectRatio="none" height="16" x="38" y="950" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAWUlEQVR42mNgGPKA&#13;&#10;EUQoZCz4j0vBgxkJjPgMYIEx7k+Px5BUzFxIuQvwAZDr4C7YUBdAkuaApg2oXgAB&#13;&#10;MV5+kl3BRGksoLiAnZlCA5gZKTWAiQIDYKE6AgEAAu0P6M4KKrgAAAAASUVORK5C&#13;&#10;YII=" xlink:actuate="onLoad"/>
-<text x="57" y="963" clip-path="url(#clipPath52)" fill="black" stroke="none" xml:space="preserve">RangeSplitter</text>
-<rect x="494" y="982" clip-path="url(#clipPath53)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="495" y="983" clip-path="url(#clipPath53)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="493" y="981" clip-path="url(#clipPath54)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="493" y="981" clip-path="url(#clipPath54)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath55)" preserveAspectRatio="none" height="16" x="500" y="986" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="519" y="999" clip-path="url(#clipPath56)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DefaultRangeSplitter</text>
-<line clip-path="url(#clipPath57)" fill="none" x1="494" x2="709" y1="1007" y2="1007" stroke="rgb(39,76,114)"/>
-<rect x="62" y="1126" clip-path="url(#clipPath58)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="63" y="1127" clip-path="url(#clipPath58)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="61" y="1125" clip-path="url(#clipPath59)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="61" y="1125" clip-path="url(#clipPath59)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath60)" preserveAspectRatio="none" height="16" x="75" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="94" y="1143" clip-path="url(#clipPath61)" fill="black" stroke="none" xml:space="preserve">BRepMesh_ConeRangeSplitter</text>
-<line clip-path="url(#clipPath62)" fill="none" x1="62" x2="277" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
-<rect x="302" y="1126" clip-path="url(#clipPath63)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="303" y="1127" clip-path="url(#clipPath63)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="301" y="1125" clip-path="url(#clipPath64)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="301" y="1125" clip-path="url(#clipPath64)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath65)" preserveAspectRatio="none" height="16" x="306" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="325" y="1143" clip-path="url(#clipPath66)" fill="black" stroke="none" xml:space="preserve">BRepMesh_CylinderRangeSplitter</text>
-<line clip-path="url(#clipPath67)" fill="none" x1="302" x2="517" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
-<rect x="537" y="1126" clip-path="url(#clipPath68)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="538" y="1127" clip-path="url(#clipPath68)" fill="rgb(131,122,133)" width="217" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="536" y="1125" clip-path="url(#clipPath69)" fill="white" width="217" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="536" y="1125" clip-path="url(#clipPath69)" fill="none" width="216" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath70)" preserveAspectRatio="none" height="16" x="544" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="563" y="1143" clip-path="url(#clipPath71)" fill="black" stroke="none" xml:space="preserve">BRepMesh_SphereRangeSplitter</text>
-<line clip-path="url(#clipPath72)" fill="none" x1="537" x2="752" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
-<rect x="777" y="1126" clip-path="url(#clipPath73)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="778" y="1127" clip-path="url(#clipPath73)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="776" y="1125" clip-path="url(#clipPath74)" fill="white" width="216" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="776" y="1125" clip-path="url(#clipPath74)" fill="none" width="215" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath75)" preserveAspectRatio="none" height="16" x="777" y="1130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="796" y="1143" clip-path="url(#clipPath76)" fill="black" stroke="none" xml:space="preserve">BRepMesh_UVParamRangeSplitter</text>
-<line clip-path="url(#clipPath77)" fill="none" x1="777" x2="991" y1="1151" y2="1151" stroke="rgb(39,76,114)"/>
-<rect x="651" y="1282" clip-path="url(#clipPath78)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="652" y="1283" clip-path="url(#clipPath78)" fill="rgb(131,122,133)" width="216" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="650" y="1281" clip-path="url(#clipPath79)" fill="white" width="216" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="650" y="1281" clip-path="url(#clipPath79)" fill="none" width="215" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath80)" preserveAspectRatio="none" height="16" x="662" y="1286" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="681" y="1299" clip-path="url(#clipPath81)" fill="black" stroke="none" xml:space="preserve">BRepMesh_TorusRangeSplitter</text>
-<line clip-path="url(#clipPath82)" fill="none" x1="651" x2="865" y1="1307" y2="1307" stroke="rgb(39,76,114)"/>
-<rect x="902" y="1282" clip-path="url(#clipPath83)" fill="rgb(131,122,133)" width="215" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="903" y="1283" clip-path="url(#clipPath83)" fill="rgb(131,122,133)" width="215" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="901" y="1281" clip-path="url(#clipPath84)" fill="white" width="215" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="901" y="1281" clip-path="url(#clipPath84)" fill="none" width="214" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath85)" preserveAspectRatio="none" height="16" x="907" y="1286" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="926" y="1299" clip-path="url(#clipPath86)" fill="black" stroke="none" xml:space="preserve">BRepMesh_NURBSRangeSplitter</text>
-<line clip-path="url(#clipPath87)" fill="none" x1="902" x2="1115" y1="1307" y2="1307" stroke="rgb(39,76,114)"/>
-<rect x="854" y="1415" clip-path="url(#clipPath88)" fill="rgb(131,122,133)" width="263" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="855" y="1416" clip-path="url(#clipPath88)" fill="rgb(131,122,133)" width="263" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="853" y="1414" clip-path="url(#clipPath89)" fill="white" width="263" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="853" y="1414" clip-path="url(#clipPath89)" fill="none" width="262" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath90)" preserveAspectRatio="none" height="16" x="857" y="1419" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="876" y="1432" clip-path="url(#clipPath91)" fill="black" stroke="none" xml:space="preserve">BRepMesh_BoundaryParamsRangeSplitter</text>
-<line clip-path="url(#clipPath92)" fill="none" x1="854" x2="1115" y1="1440" y2="1440" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath49)" fill="none" x1="38" x2="134" y1="971" y2="971" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath49)" fill="none" x1="134" x2="134" y1="971" y2="971" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath49)" fill="none" x1="134" x2="139" y1="971" y2="966" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath49)" fill="none" x1="139" x2="139" y1="966" y2="966" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath49)" fill="none" x1="139" x2="139" y1="966" y2="945" stroke="rgb(39,76,114)"/>
-<rect x="292" y="323" clip-path="url(#clipPath93)" fill="rgb(131,122,133)" width="229" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="293" y="324" clip-path="url(#clipPath93)" fill="rgb(131,122,133)" width="229" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="291" y="322" clip-path="url(#clipPath94)" fill="white" width="229" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="291" y="322" clip-path="url(#clipPath94)" fill="none" width="228" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath95)" preserveAspectRatio="none" height="16" x="323" y="327" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="342" y="340" clip-path="url(#clipPath96)" fill="black" stroke="none" xml:space="preserve">BRepMesh_BaseMeshAlgo</text>
-<line clip-path="url(#clipPath97)" fill="none" x1="292" x2="519" y1="348" y2="348" stroke="rgb(39,76,114)"/>
-<rect x="824" y="323" clip-path="url(#clipPath98)" fill="rgb(131,122,133)" width="241" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="825" y="324" clip-path="url(#clipPath98)" fill="rgb(131,122,133)" width="241" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="823" y="322" clip-path="url(#clipPath99)" fill="white" width="241" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="823" y="322" clip-path="url(#clipPath99)" fill="none" width="240" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath100)" preserveAspectRatio="none" height="16" x="835" y="327" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="854" y="340" clip-path="url(#clipPath101)" fill="black" stroke="none" xml:space="preserve">BRepMesh_DataStructureOfDelaun</text>
-<line clip-path="url(#clipPath102)" fill="none" x1="824" x2="1063" y1="348" y2="348" stroke="rgb(39,76,114)"/>
-<rect x="278" y="623" clip-path="url(#clipPath103)" fill="rgb(131,122,133)" width="258" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="279" y="624" clip-path="url(#clipPath103)" fill="rgb(131,122,133)" width="258" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="277" y="622" clip-path="url(#clipPath104)" fill="white" width="258" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="277" y="622" clip-path="url(#clipPath104)" fill="none" width="257" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath105)" preserveAspectRatio="none" height="16" x="295" y="634" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="314" y="640" clip-path="url(#clipPath106)" fill="black" stroke="none" xml:space="preserve">BRepMesh_NodeInsertionMeshAlgo </text>
-<text x="314" y="655" clip-path="url(#clipPath107)" fill="black" stroke="none" xml:space="preserve">&lt;RangeSplitter, BaseClass&gt;</text>
-<line clip-path="url(#clipPath108)" fill="none" x1="278" x2="534" y1="662" y2="662" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath13)" fill="none" x1="14" x2="134" y1="192" y2="192" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath13)" fill="none" x1="134" x2="134" y1="192" y2="192" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath13)" fill="none" x1="134" x2="139" y1="192" y2="187" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath13)" fill="none" x1="139" x2="139" y1="187" y2="187" stroke="rgb(39,76,114)"/>
-<line clip-path="url(#clipPath13)" fill="none" x1="139" x2="139" y1="187" y2="166" stroke="rgb(39,76,114)"/>
-<rect x="794" y="11" clip-path="url(#clipPath109)" fill="rgb(131,122,133)" width="190" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="795" y="12" clip-path="url(#clipPath109)" fill="rgb(131,122,133)" width="190" rx="2.5" opacity="0.2549" ry="2.5" height="98" stroke="none"/>
-<rect x="793" y="10" clip-path="url(#clipPath110)" fill="white" width="190" rx="2.5" ry="2.5" height="98" stroke="none"/>
-<rect x="793" y="10" clip-path="url(#clipPath110)" fill="none" width="189" rx="2.5" ry="2.5" height="97" stroke="rgb(39,76,114)"/>
-<image stroke="rgb(39,76,114)" width="16" xlink:show="embed" xlink:type="simple" fill="rgb(39,76,114)" clip-path="url(#clipPath111)" preserveAspectRatio="none" height="16" x="813" y="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVR42mNkgIKC&#13;&#10;BUf+P3jyCchiBOL/QMgIYTFCREDg/38GOFCU4WWYkGDDyAITuP/4E8OkNDsGYkHu&#13;&#10;rINgGm7Av7//GNjZmIk2gOHff1QDwBxmJgZSAZoBjJQZwEqRC4BBzEqCC/6hh8H/&#13;&#10;//8YmJmIN+D/fyyB6NewCZwO/qORMIBIIUA2IyOmAUsrvIh2QUzndjBNeqjhiwWY&#13;&#10;qWQbsKTccwC9oKIkTJIXQOqpAgBzFjJ6SnHW0gAAAABJRU5ErkJggg==" xlink:actuate="onLoad"/>
-<text x="832" y="28" clip-path="url(#clipPath112)" fill="black" stroke="none" xml:space="preserve">BRepMesh_FaceDiscret</text>
-<line clip-path="url(#clipPath113)" fill="none" x1="794" x2="982" y1="36" y2="36" stroke="rgb(39,76,114)"/>
-</g>
-<g stroke-linecap="butt" font-size="11" fill="rgb(69,69,69)" font-family="'Segoe UI'" stroke-dasharray="5,5" stroke="rgb(69,69,69)" stroke-width="1.1">
-<line clip-path="url(#clipPath114)" fill="none" x1="219" x2="375" y1="564" y2="622"/>
-<image x="23" y="598" clip-path="url(#clipPath115)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="42" y="611" clip-path="url(#clipPath116)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_SweepLineMeshAlgo</text>
-<line clip-path="url(#clipPath117)" fill="none" x1="367" x2="375" y1="622" y2="622" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath117)" fill="none" x1="375" x2="369" y1="622" y2="617" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="661" x2="913" y1="981" y2="876"/>
-<image x="829" y="909" clip-path="url(#clipPath118)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="848" y="922" clip-path="url(#clipPath119)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
-<line clip-path="url(#clipPath120)" fill="none" x1="908" x2="913" y1="881" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath120)" fill="none" x1="913" x2="905" y1="876" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="672" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="757" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="538" x2="253" y1="981" y2="876"/>
-<image x="128" y="903" clip-path="url(#clipPath124)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="147" y="916" clip-path="url(#clipPath125)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
-<line clip-path="url(#clipPath126)" fill="none" x1="261" x2="253" y1="876" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath126)" fill="none" x1="253" x2="259" y1="876" y2="881" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="214" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="600" x2="447" y1="564" y2="622"/>
-<image x="435" y="598" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="454" y="611" clip-path="url(#clipPath128)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_DelaunayBaseMeshAlgo</text>
-<line clip-path="url(#clipPath129)" fill="none" x1="452" x2="447" y1="617" y2="622" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath129)" fill="none" x1="447" x2="455" y1="622" y2="622" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1414" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1379" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="428" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="1013" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="793" x2="734" y1="827" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="741" x2="734" y1="824" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="734" x2="741" y1="827" y2="830" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="218" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="590" x2="590" y1="981" y2="876"/>
-<image x="409" y="897" clip-path="url(#clipPath133)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="428" y="910" clip-path="url(#clipPath134)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
-<line clip-path="url(#clipPath135)" fill="none" x1="593" x2="590" y1="883" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath135)" fill="none" x1="590" x2="587" y1="876" y2="883" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="520" x2="823" y1="376" y2="376" stroke="rgb(136,136,136)"/>
-<text x="667" y="372" clip-path="url(#clipPath136)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath137)" fill="none" x1="816" x2="823" y1="379" y2="376" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath137)" fill="none" x1="823" x2="816" y1="376" y2="373" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="176" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="896" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="601" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="406" x2="406" y1="322" y2="288" stroke="rgb(136,136,136)"/>
-<polygon fill="white" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1399" x2="1399" y1="346" y2="288" stroke="rgb(136,136,136)"/>
-<polygon fill="white" clip-path="url(#clipPath139)" points=" 1399 288 1403 296 1395 296" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath139)" points=" 1399 288 1403 296 1395 296" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="793" x2="734" y1="827" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="741" x2="734" y1="824" y2="827" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath131)" fill="none" x1="734" x2="741" y1="827" y2="830" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1297" x2="1165" y1="398" y2="398" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath140)" fill="none" x1="1172" x2="1165" y1="395" y2="398" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath140)" fill="none" x1="1165" x2="1172" y1="398" y2="401" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="176" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="176" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="428" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="428" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="672" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="672" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="896" y1="1125" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="896" x2="602" y1="1097" y2="1097" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="1097" y2="1079" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath121)" points=" 602 1079 606 1087 598 1087" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="757" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="757" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="1013" y1="1281" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1013" x2="885" y1="1241" y2="1241" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="885" x2="885" y1="1241" y2="1223" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath123)" points=" 885 1223 889 1231 881 1231" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="538" x2="253" y1="981" y2="876"/>
-<image x="128" y="903" clip-path="url(#clipPath124)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="147" y="916" clip-path="url(#clipPath125)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
-<line clip-path="url(#clipPath126)" fill="none" x1="261" x2="253" y1="876" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath126)" fill="none" x1="253" x2="259" y1="876" y2="881" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="590" x2="590" y1="981" y2="876"/>
-<image x="409" y="897" clip-path="url(#clipPath133)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="428" y="910" clip-path="url(#clipPath134)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
-<line clip-path="url(#clipPath135)" fill="none" x1="593" x2="590" y1="883" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath135)" fill="none" x1="590" x2="587" y1="876" y2="883" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="661" x2="913" y1="981" y2="876"/>
-<image x="829" y="909" clip-path="url(#clipPath118)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="848" y="922" clip-path="url(#clipPath119)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;RangeSplitter</text>
-<line clip-path="url(#clipPath120)" fill="none" x1="908" x2="913" y1="881" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath120)" fill="none" x1="913" x2="905" y1="876" y2="876" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="828" x2="409" y1="108" y2="190" stroke="rgb(136,136,136)"/>
-<text x="580" y="136" clip-path="url(#clipPath141)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath142)" fill="none" x1="415" x2="409" y1="186" y2="190" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath142)" fill="none" x1="409" x2="416" y1="190" y2="192" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="966" x2="1393" y1="108" y2="190" stroke="rgb(136,136,136)"/>
-<text x="1141" y="142" clip-path="url(#clipPath143)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath144)" fill="none" x1="1386" x2="1393" y1="192" y2="190" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath144)" fill="none" x1="1393" x2="1387" y1="190" y2="186" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="406" x2="406" y1="322" y2="288" stroke="rgb(136,136,136)"/>
-<polygon fill="white" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath138)" points=" 406 288 410 296 402 296" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="214" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="214" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="520" x2="823" y1="376" y2="376" stroke="rgb(136,136,136)"/>
-<text x="667" y="372" clip-path="url(#clipPath136)" fill="black" stroke="none" xml:space="preserve">&lt;&lt;use&gt;&gt;</text>
-<line clip-path="url(#clipPath137)" fill="none" x1="816" x2="823" y1="379" y2="376" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath137)" fill="none" x1="823" x2="816" y1="376" y2="373" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="602" y1="466" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="602" x2="405" y1="438" y2="438" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="405" x2="405" y1="438" y2="420" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath122)" points=" 405 420 409 428 401 428" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="600" x2="447" y1="564" y2="622"/>
-<image x="435" y="598" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="454" y="611" clip-path="url(#clipPath128)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_DelaunayBaseMeshAlgo</text>
-<line clip-path="url(#clipPath129)" fill="none" x1="452" x2="447" y1="617" y2="622" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath129)" fill="none" x1="447" x2="455" y1="622" y2="622" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="219" x2="375" y1="564" y2="622"/>
-<image x="23" y="598" clip-path="url(#clipPath115)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhklEQVR42mNkIALo&#13;&#10;ebX+R+Zf2lbNCGMzEWMASENTbQhWOaIM2HD85v+65jUMCbF2DGSDvuWH/2PzDkGb&#13;&#10;CWlgoouzSQLEOBunF2jmbJCL8LoKl7NB4shRB6Nh4mAv4HI2TBzZFbAkDBJHNgTD&#13;&#10;2eguQncBjI1iCD5vYaPxasYWBsi2E6WZWAAAvauBMFaKJxwAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="16" preserveAspectRatio="none" xlink:show="embed"/>
-<text x="42" y="611" clip-path="url(#clipPath116)" fill="black" stroke="none" xml:space="preserve">RangeSplitter-&gt;T, BaseClass-&gt;BRepMesh_SweepLineMeshAlgo</text>
-<line clip-path="url(#clipPath117)" fill="none" x1="367" x2="375" y1="622" y2="622" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath117)" fill="none" x1="375" x2="369" y1="622" y2="617" stroke-dasharray="none"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="218" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="218" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="601" y1="778" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="601" x2="407" y1="738" y2="738" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="407" x2="407" y1="738" y2="720" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath132)" points=" 407 720 411 728 403 728" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1414" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1397" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<line clip-path="url(#clipPath114)" fill="none" x1="1009" x2="1009" y1="1397" y2="1379" stroke-dasharray="none" stroke="rgb(136,136,136)"/>
-<polygon fill="white" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="none"/>
-<polygon fill="none" stroke-dasharray="none" clip-path="url(#clipPath130)" points=" 1009 1379 1013 1387 1005 1387" stroke="rgb(136,136,136)"/>
-</g>
-</g>
-</svg>
diff --git a/dox/user_guides/modeling_algos/images/modeling_data_image003.png b/dox/user_guides/modeling_algos/images/modeling_data_image003.png
new file mode 100644 (file)
index 0000000..593342d
Binary files /dev/null and b/dox/user_guides/modeling_algos/images/modeling_data_image003.png differ
diff --git a/dox/user_guides/modeling_algos/images/modeling_data_image014.png b/dox/user_guides/modeling_algos/images/modeling_data_image014.png
new file mode 100644 (file)
index 0000000..801244f
Binary files /dev/null and b/dox/user_guides/modeling_algos/images/modeling_data_image014.png differ
diff --git a/dox/user_guides/modeling_algos/images/modeling_data_image015.png b/dox/user_guides/modeling_algos/images/modeling_data_image015.png
new file mode 100644 (file)
index 0000000..6f98d72
Binary files /dev/null and b/dox/user_guides/modeling_algos/images/modeling_data_image015.png differ
index 20734055b077f3e8e6900e7192bd4b4bf3aa55ff..b763132d3258cdfd2fc8630335f76f66b3b0b97c 100644 (file)
@@ -5,7 +5,7 @@ Modeling Algorithms  {#occt_user_guides__modeling_algos}
 
 @section occt_modalg_1 Introduction
 
-This manual explains how  to use the Modeling Algorithms. It provides basic documentation on modeling  algorithms. For advanced information on Modeling Algorithms, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
+This manual explains how  to use the Modeling Algorithms. It provides basic documentation on modeling  algorithms.
 
 The Modeling Algorithms module brings together a  wide range of topological algorithms used in modeling. Along with these tools,  you will find the geometric algorithms, which they call. 
 
@@ -28,7 +28,7 @@ The Intersections component is used to compute intersections between 2D or 3D ge
 
 The *Geom2dAPI_InterCurveCurve* class  allows the evaluation of the intersection points (*gp_Pnt2d*) between two  geometric curves (*Geom2d_Curve*) and the evaluation of the points  of self-intersection of a curve. 
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image003.png,"Intersection and self-intersection of curves",420}
+@figure{/user_guides/modeling_algos/images/modeling_algos_image003.png,"Intersection and self-intersection of curves",300}
 
 In both cases, the  algorithm requires a value for the tolerance (Standard_Real) for the confusion  between two points. The default tolerance value used in all constructors is *1.0e-6.* 
 
@@ -1050,836 +1050,463 @@ Handle(Geom_Curve) C3d = GeomAPI::To3d(C2d, Pln);
 ~~~~~
 
 
-@section occt_modalg_2_topo_tools Topological Tools
-
-Open CASCADE Technology topological tools provide algorithms to
- * Create wires from edges;
- * Create faces from wires;
- * Compute state of the shape relatively other shape;
- * Orient shapes in container;
- * Create new shapes from the existing ones;
- * Build PCurves of edges on the faces;
- * Check the validity of the shapes;
- * Take the point in the face;
- * Get the normal direction for the face.
+@section occt_modalg_3 Standard  Topological Objects
 
+The following  standard topological objects can be created:
+  * Vertices;
+  * Edges;
+  * Faces;
+  * Wires;
+  * Polygonal wires;
+  * Shells;
+  * Solids.
 
-@subsection occt_modalg_2_topo_tools_1 Creation of the faces from wireframe model
+There are two root classes for their construction and modification: 
+* The deferred class  *BRepBuilderAPI_MakeShape* is the root of all *BRepBuilderAPI* classes,  which build shapes. It inherits from the class *BRepBuilderAPI_Command* and provides a field to store the constructed shape. 
+* The deferred class *BRepBuilderAPI_ModifyShape* is used as a root for the shape  modifications. It inherits *BRepBuilderAPI_MakeShape* and implements the methods  used to trace the history of all sub-shapes. 
 
-It is possible to create the planar faces from the arbitrary set of planar edges randomly located in 3D space.
-This feature might be useful if you need for instance to restore the shape from the wireframe model:
-<table align="center">
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_image062.png,"Wireframe model",160}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_image063.png,"Faces of the model",160}</td>
-</tr>
-</table>
+@subsection occt_modalg_3_1 Vertex
 
-To make the faces from edges it is, firstly, necessary to create planar wires from the given edges and than create planar faces from each wire.
-The static methods *BOPAlgo_Tools::EdgesToWires* and *BOPAlgo_Tools::WiresToFaces* can be used for that:
+*BRepBuilderAPI_MakeVertex*  creates a new vertex from a 3D point from gp. 
 ~~~~~
-TopoDS_Shape anEdges = ...; /* The input edges */
-Standard_Real anAngTol = 1.e-8; /* The angular tolerance for distinguishing the planes in which the wires are located */
-Standard_Boolean bShared = Standard_False; /* Defines whether the edges are shared or not */
-//
-TopoDS_Shape aWires; /* resulting wires */
-Standard_Integer iErr = BOPAlgo_Tools::EdgesToWires(anEdges, aWires, bShared, anAngTol);
-if (iErr) {
-  cout << "Error: Unable to build wires from given edges\n";
-  return;
-}
-//
-TopoDS_Shape aFaces; /* resulting faces */
-Standard_Boolean bDone = BOPAlgo_Tools::WiresToFaces(aWires, aFaces, anAngTol);
-if (!bDone) {
-  cout << "Error: Unable to build faces from wires\n";
-  return;
-}
+gp_Pnt P(0,0,10); 
+TopoDS_Vertex V = BRepBuilderAPI_MakeVertex(P); 
 ~~~~~
 
-These methods can also be used separately:
- * *BOPAlgo_Tools::EdgesToWires* allows creating planar wires from edges.
-The input edges may be not shared, but the output wires will be sharing the coinciding vertices and edges. For this the intersection of the edges is performed.
-Although, it is possible to skip the intersection stage (if the input edges are already shared) by passing the corresponding flag into the method.
-The input edges are expected to be planar, but the method does not check it. Thus, if the input edges are not planar, the output wires will also be not planar.
-In general, the output wires are non-manifold and may contain free vertices, as well as multi-connected vertices.
- * *BOPAlgo_Tools::WiresToFaces* allows creating planar faces from the planar wires.
-In general, the input wires are non-manifold and may be not closed, but should share the coinciding parts.
-The wires located in the same plane and completely included into other wires will create holes in the faces built from outer wires:
-
-<table align="center">
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_image064.png,"Wireframe model",160}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_image065.png,"Two faces (red face has a hole)",160}</td>
-</tr>
-</table>
+This class always creates a new vertex and has no other methods.
 
+@subsection occt_modalg_3_2 Edge
 
-@subsection occt_modalg_2_topo_tools_2 Classification of the shapes
+@subsubsection occt_modalg_3_2_1 Basic edge construction method
 
-The following methods allow classifying the different shapes relatively other shapes:
- * The variety of the *BOPTools_AlgoTools::ComputState* methods classify the vertex/edge/face relatively solid;
- * *BOPTools_AlgoTools::IsHole* classifies wire relatively face;
- * *IntTools_Tools::ClassifyPointByFace* classifies point relatively face.
+Use *BRepBuilderAPI_MakeEdge* to create from a curve and vertices. The basic method constructs an edge from a curve, two vertices, and two parameters. 
 
-@subsection occt_modalg_2_topo_tools_3 Orientation of the shapes in the container
+~~~~~
+Handle(Geom_Curve) C = ...; // a curve 
+TopoDS_Vertex V1 = ...,V2 = ...;// two Vertices 
+Standard_Real p1 = ..., p2 = ..;// two parameters 
+TopoDS_Edge E = BRepBuilderAPI_MakeEdge(C,V1,V2,p1,p2); 
+~~~~~
 
-The following methods allow reorienting shapes in the containers:
- * *BOPTools_AlgoTools::OrientEdgesOnWire* correctly orients edges on the wire;
- * *BOPTools_AlgoTools::OrientFacesOnShell* correctly orients faces on the shell.
+where C is the domain of the edge; V1 is the first vertex oriented FORWARD; V2 is the second vertex oriented REVERSED; p1  and p2 are the parameters for the vertices V1 and V2 on the curve. The default  tolerance is associated with this edge. 
 
-@subsection occt_modalg_2_topo_tools_4 Making new shapes
+@figure{/user_guides/modeling_algos/images/modeling_algos_image022.png,"Basic Edge Construction",220}
 
-The following methods allow creating new shapes from the existing ones:
- * The variety of the *BOPTools_AlgoTools::MakeNewVertex* creates the new vertices from other vertices and edges;
- * *BOPTools_AlgoTools::MakeSplitEdge* splits the edge by the given parameters.
+The following rules  apply to the arguments: 
 
-@subsection occt_modalg_2_topo_tools_5 Building PCurves
+**The curve**
+  * Must not be a Null Handle.
+  * If the curve is a trimmed  curve, the basis curve is used.
 
-The following methods allow building PCurves of edges on faces:
- * *BOPTools_AlgoTools::BuildPCurveForEdgeOnFace* computes PCurve for the edge on the face;
- * *BOPTools_AlgoTools::BuildPCurveForEdgeOnPlane* and *BOPTools_AlgoTools::BuildPCurveForEdgesOnPlane* allow building PCurves for edges on the planar face;
- * *BOPTools_AlgoTools::AttachExistingPCurve* takes PCurve on the face from one edge and attach this PCurve to other edge coinciding with the first one.
+**The vertices** 
+  * Can be null shapes. When V1  or V2 is Null the edge is open in the corresponding direction and the  corresponding parameter p1 or p2 must be infinite (i.e p1 is RealFirst(),  p2 is RealLast()).
+  * Must be different vertices if  they have different 3d locations and identical vertices if they have the same  3d location (identical vertices are used when the curve is closed).
 
-@subsection occt_modalg_2_topo_tools_6 Checking the validity of the shapes
+**The parameters**
+  * Must be increasing and in the  range of the curve, i.e.:
 
-The following methods allow checking the validity of the shapes:
- * *BOPTools_AlgoTools::IsMicroEdge* detects the small edges;
- * *BOPTools_AlgoTools::ComputeTolerance* computes the correct tolerance of the edge on the face;
- * *BOPTools_AlgoTools::CorrectShapeTolerances* and *BOPTools_AlgoTools::CorrectTolerances* allow correcting the tolerances of the sub-shapes.
- * *BRepLib::FindValidRange* finds a range of 3d curve of the edge not covered by tolerance spheres of vertices.
-@subsection occt_modalg_2_topo_tools_7 Taking a point inside the face
+~~~~~
+  C->FirstParameter() <=  p1 < p2 <= C->LastParameter() 
+~~~~~  
+  
+  * If the parameters are  decreasing, the Vertices are switched, i.e. V2 becomes V1 and V1 becomes V2.
+  * On a periodic curve the  parameters p1 and p2 are adjusted by adding or subtracting the period to obtain  p1 in the range of the curve and p2 in the range p1 < p2 <= p1+ Period.  So on a parametric curve p2 can be greater than the second parameter,  see the figure below.
+  * Can be infinite but the  corresponding vertex must be Null (see above).
+  * The distance between the Vertex 3d location and the point  evaluated on the curve with the parameter must be lower than the default  precision.
 
-The following methods allow taking a point located inside the face:
- * The variety of the *BOPTools_AlgoTools3D::PointNearEdge* allows getting a point inside the face located near the edge;
- * *BOPTools_AlgoTools3D::PointInFace* allows getting a point inside the face.
+The figure below  illustrates two special cases, a semi-infinite edge and an edge on a periodic  curve. 
 
-@subsection occt_modalg_2_topo_tools_8 Getting normal for the face
+@figure{/user_guides/modeling_algos/images/modeling_algos_image023.png,"Infinite and Periodic Edges",220}
 
-The following methods allow getting the normal direction for the face/surface:
- * *BOPTools_AlgoTools3D::GetNormalToSurface* computes the normal direction for the surface in the given point defined by UV parameters;
- * *BOPTools_AlgoTools3D::GetNormalToFaceOnEdge* computes the normal direction for the face in the point located on the edge of the face;
- * *BOPTools_AlgoTools3D::GetApproxNormalToFaceOnEdge* computes the normal direction for the face in the point located near the edge of the face.
+@subsubsection occt_modalg_3_2_2 Supplementary edge construction methods
 
+There exist supplementary edge construction methods derived from the basic one. 
 
+*BRepBuilderAPI_MakeEdge* class provides methods, which are all simplified calls  of the previous one: 
 
-@section occt_modalg_3a The Topology API
-  
-The Topology  API of Open  CASCADE Technology (**OCCT**) includes the following six packages: 
-  * *BRepAlgoAPI*
-  * *BRepBuilderAPI*
-  * *BRepFilletAPI*
-  * *BRepFeat*
-  * *BRepOffsetAPI*
-  * *BRepPrimAPI*
+  * The parameters can be  omitted. They are computed by projecting the vertices on the curve.
+  * 3d points (Pnt from gp) can  be given in place of vertices. Vertices are created from the points. Giving  vertices is useful when creating connected vertices.
+  * The vertices or points can be  omitted if the parameters are given. The points are computed by evaluating the  parameters on the curve.
+  * The vertices or points and  the parameters can be omitted. The first and the last parameters of the curve are used.
 
-The classes provided by the API have the following features:
-  * The constructors of classes provide different construction methods;
-  * The class retains different tools used to build objects as fields;
-  * The class provides a casting method to obtain the result automatically with a function-like call.   
-  
-Let us use the class *BRepBuilderAPI_MakeEdge* to create a linear edge from two  points. 
+The five following  methods are thus derived from the basic construction: 
 
 ~~~~~
-gp_Pnt P1(10,0,0), P2(20,0,0); 
-TopoDS_Edge E = BRepBuilderAPI_MakeEdge(P1,P2);
+Handle(Geom_Curve) C = ...; // a curve 
+TopoDS_Vertex V1 = ...,V2 = ...;// two Vertices 
+Standard_Real p1 = ..., p2 = ..;// two parameters 
+gp_Pnt P1 = ..., P2 = ...;// two points 
+TopoDS_Edge E; 
+// project the vertices on the curve 
+E = BRepBuilderAPI_MakeEdge(C,V1,V2); 
+// Make vertices from points 
+E = BRepBuilderAPI_MakeEdge(C,P1,P2,p1,p2); 
+// Make vertices from points and project them 
+E = BRepBuilderAPI_MakeEdge(C,P1,P2); 
+// Computes the points from the parameters 
+E = BRepBuilderAPI_MakeEdge(C,p1,p2); 
+// Make an edge from the whole curve 
+E = BRepBuilderAPI_MakeEdge(C); 
 ~~~~~
 
-This is the simplest way to create edge E from two  points P1, P2, but the developer can test for errors when he is not as  confident of the data as in the previous example. 
 
-~~~~~
-#include <gp_Pnt.hxx> 
-#include <TopoDS_Edge.hxx> 
-#include <BRepBuilderAPI_MakeEdge.hxx> 
-void EdgeTest() 
-{ 
-gp_Pnt P1; 
-gp_Pnt P2; 
-BRepBuilderAPI_MakeEdge ME(P1,P2); 
-if (!ME.IsDone()) 
-{ 
-// doing ME.Edge() or E = ME here 
-// would raise StdFail_NotDone 
-Standard_DomainError::Raise 
-(“ProcessPoints::Failed to createan edge”); 
-} 
-TopoDS_Edge E = ME; 
-} 
-~~~~~
+Six methods (the five above and the basic method) are also provided for curves from the gp package in  place of Curve from Geom. The methods create the corresponding Curve from Geom  and are implemented for the following classes: 
 
-In this example an  intermediary object ME has been introduced. This can be tested for the  completion of the function before accessing the result. More information on **error  handling** in the topology programming interface can be found in the next section. 
+*gp_Lin*       creates a  *Geom_Line* 
+*gp_Circ*      creates a  *Geom_Circle* 
+*gp_Elips*    creates a  *Geom_Ellipse* 
+*gp_Hypr*    creates a  *Geom_Hyperbola* 
+*gp_Parab*   creates a  *Geom_Parabola* 
 
-*BRepBuilderAPI_MakeEdge*  provides valuable information. For example, when creating an edge from two  points, two vertices have to be created from the points. Sometimes you may be  interested in getting these vertices quickly without exploring the new edge.  Such information can be provided when using a class. The following example  shows a function creating an edge and two vertices from two points. 
+There are also two  methods to construct edges from two vertices or two points. These methods  assume that the curve is a line; the vertices or points must have different  locations. 
 
-~~~~~
-void MakeEdgeAndVertices(const gp_Pnt& P1, 
-const gp_Pnt& P2, 
-TopoDS_Edge& E, 
-TopoDS_Vertex& V1, 
-TopoDS_Vertex& V2) 
-{ 
-BRepBuilderAPI_MakeEdge ME(P1,P2); 
-if (!ME.IsDone()) { 
-Standard_DomainError::Raise 
-(“MakeEdgeAndVerices::Failed  to create an edge”); 
-} 
-E = ME; 
-V1 = ME.Vextex1(); 
-V2 = ME.Vertex2(); 
 ~~~~~
 
-The class *BRepBuilderAPI_MakeEdge*  provides two methods *Vertex1* and  *Vertex2*, which return two vertices used to create the edge. 
+TopoDS_Vertex V1 = ...,V2 = ...;// two Vertices 
+gp_Pnt P1 = ..., P2 = ...;// two points 
+TopoDS_Edge E; 
 
-How can *BRepBuilderAPI_MakeEdge* be both a function and a class? It can do this  because it uses the casting capabilities of C++. The *BRepBuilderAPI_MakeEdge* class has a method called Edge; in the previous  example the line <i>E = ME</i> could have been written. 
+// linear edge from two vertices 
+E = BRepBuilderAPI_MakeEdge(V1,V2); 
 
+// linear edge from two points 
+E = BRepBuilderAPI_MakeEdge(P1,P2); 
 ~~~~~
-E = ME.Edge(); 
-~~~~~
-
-This instruction tells  the C++ compiler that there is an **implicit casting** of a *BRepBuilderAPI_MakeEdge* into a *TopoDS_Edge* using the *Edge* method. It means this method is automatically called when a *BRepBuilderAPI_MakeEdge* is found where a *TopoDS_Edge* is required. 
-
-This feature allows you  to provide classes, which have the simplicity of function calls when required  and the power of classes when advanced processing is necessary. All the  benefits of this approach are explained when describing the topology programming  interface classes. 
 
+@subsubsection occt_modalg_3_2_3 Other information and error status
 
-@subsection occt_modalg_3a_1 Error Handling in the Topology API
+The class *BRepBuilderAPI_MakeEdge* can provide extra information and return an error status. 
 
-A method can report an  error in the two following situations: 
-  * The data or arguments of the  method are incorrect, i.e. they do not respect the restrictions specified by  the methods in its specifications. Typical example: creating a linear edge from  two identical points is likely to lead to a zero divide when computing the  direction of the line.
-  * Something unexpected  happened. This situation covers every error not included in the first category.  Including: interruption, programming errors in the method or in another method  called by the first method, bad specifications of the arguments (i.e. a set of  arguments that was not expected to fail).
+If *BRepBuilderAPI_MakeEdge* is used as a class, it can provide two vertices. This is useful when  the vertices were not provided as arguments, for example when the edge was  constructed from a curve and parameters. The two methods *Vertex1* and *Vertex2*  return the vertices. Note that the returned vertices can be null if the edge is  open in the corresponding direction. 
 
-The second situation is  supposed to become increasingly exceptional as a system is debugged and it is  handled by the **exception mechanism**. Using exceptions avoids handling  error statuses in the call to a method: a very cumbersome style of programming. 
+The *Error* method  returns a term of the *BRepBuilderAPI_EdgeError* enumeration. It can be used to analyze the error when *IsDone* method returns False. The terms are: 
 
-In the first situation,  an exception is also supposed to be raised because the calling method should  have verified the arguments and if it did not do so, there is a bug. For example, if before calling *MakeEdge* you are not sure that the two points are  non-identical, this situation must be tested. 
+  * **EdgeDone** -- No error occurred, *IsDone* returns True. 
+  * **PointProjectionFailed** -- No parameters were given, but the projection of  the 3D points on the curve failed. This happens if the point distance to the  curve is greater than the precision. 
+  * **ParameterOutOfRange** -- The given parameters are not in the range  *C->FirstParameter()*, *C->LastParameter()* 
+  * **DifferentPointsOnClosedCurve** --  The  two vertices or points have different locations but they are the extremities of  a closed curve. 
+  * **PointWithInfiniteParameter** -- A finite coordinate point was associated with an  infinite parameter (see the Precision package for a definition of infinite  values). 
+  * **DifferentsPointAndParameter**  -- The distance of the 3D point and the point  evaluated on the curve with the parameter is greater than the precision. 
+  * **LineThroughIdenticPoints** -- Two identical points were given to define a line  (construction of an edge without curve), *gp::Resolution* is used to test confusion . 
 
-Making those validity  checks on the arguments can be tedious to program and frustrating as you have  probably correctly surmised that the method will perform the test twice. It  does not trust you. 
-As the test involves a  great deal of computation, performing it twice is also time-consuming. 
+The following example  creates a rectangle centered on the origin of dimensions H, L with fillets of radius R. The edges and the vertices are stored in the arrays *theEdges* and *theVertices*. We use class *Array1OfShape* (i.e. not arrays of edges or vertices).  See the image below. 
 
-Consequently, you might be tempted to adopt the highly inadvisable style of programming  illustrated in the following example: 
+@figure{/user_guides/modeling_algos/images/modeling_algos_image024.png,"Creating a Wire",360}
 
 ~~~~~
-#include <Standard_ErrorHandler.hxx> 
-try { 
-TopoDS_Edge E = BRepBuilderAPI_MakeEdge(P1,P2); 
-// go on with the edge 
-} 
-catch { 
-// process the error. 
-} 
-~~~~~
-
-To help the user, the  Topology API classes only raise the exception *StdFail_NotDone*. Any other  exception means that something happened which was unforeseen in the design of  this API. 
-
-The *NotDone* exception  is only raised when the user tries to access the result of the computation and  the original data is corrupted. At the construction of the class instance, if  the algorithm cannot be completed, the internal flag *NotDone* is set. This flag  can be tested and in some situations a more complete description of the error  can be queried. If the user ignores the *NotDone* status and tries to access the  result, an exception is raised. 
+#include <BRepBuilderAPI_MakeEdge.hxx> 
+#include <TopoDS_Shape.hxx> 
+#include <gp_Circ.hxx> 
+#include <gp.hxx> 
+#include <TopoDS_Wire.hxx> 
+#include <TopTools_Array1OfShape.hxx> 
+#include <BRepBuilderAPI_MakeWire.hxx> 
 
-~~~~~
-BRepBuilderAPI_MakeEdge ME(P1,P2); 
-if (!ME.IsDone()) { 
-// doing ME.Edge() or E = ME here 
-// would raise StdFail_NotDone 
-Standard_DomainError::Raise 
-(“ProcessPoints::Failed to create an edge”); 
+// Use MakeArc method to make an edge and two vertices 
+void MakeArc(Standard_Real x,Standard_Real y, 
+Standard_Real R, 
+Standard_Real ang, 
+TopoDS_Shape& E, 
+TopoDS_Shape& V1, 
+TopoDS_Shape& V2) 
+{ 
+gp_Ax2 Origin = gp::XOY(); 
+gp_Vec Offset(x, y, 0.); 
+Origin.Translate(Offset); 
+BRepBuilderAPI_MakeEdge 
+ME(gp_Circ(Origin,R),  ang, ang+PI/2); 
+E = ME; 
+V1 = ME.Vertex1(); 
+V2 = ME.Vertex2(); 
 } 
-TopoDS_Edge E = ME; 
-~~~~~
-
-
-@subsection occt_modalg_hist History support
-
-All topological API algorithms support the history of shape modifications (or just History) for their arguments.
-Generally, the history is available for the following types of sub-shapes of input shapes:
-* Vertex;
-* Edge;
-* Face.
-
-Some algorithms also support the history for Solids.
-
-The history information consists of the following information:
-* Information about Deleted shapes;
-* Information about Modified shapes;
-* Information about Generated shapes.
-
-The History is filled basing on the result of the operation. History cannot return any shapes not contained in the result.
-If the result of the operation is an empty shape, all input shapes will be considered as Deleted and none will have Modified and Generated shapes.
 
-The history information can be accessed by the API methods:
-* *Standard_Boolean IsDeleted(const TopoDS_Shape& theS)* - to check if the shape has been Deleted during the operation;
-* *const TopTools_ListOfShape& Modified(const TopoDS_Shape& theS)* - to get the shapes Modified from the given shape;
-* *const TopTools_ListOfShape& Generated(const TopoDS_Shape& theS)* - to get the shapes Generated from the given shape.
+TopoDS_Wire MakeFilletedRectangle(const Standard_Real H, 
+const Standard_Real L, 
+const Standard_Real  R) 
+{ 
+TopTools_Array1OfShape theEdges(1,8); 
+TopTools_Array1OfShape theVertices(1,8); 
 
-@subsubsection occt_modalg_hist_del Deleted shapes
+// First create the circular edges and the vertices 
+// using the MakeArc function described above. 
+void MakeArc(Standard_Real, Standard_Real, 
+Standard_Real, Standard_Real, 
+TopoDS_Shape&, TopoDS_Shape&,  TopoDS_Shape&); 
 
-The shape is considered as Deleted during the operation if all of the following conditions are met:
-* The shape is a part of the argument shapes of the operation;
-* The result shape does not contain the shape itself;
-* The result shape does not contain any of the splits of the shape.
+Standard_Real x = L/2 - R, y = H/2 - R; 
+MakeArc(x,-y,R,3.*PI/2.,theEdges(2),theVertices(2), 
+theVertices(3)); 
+MakeArc(x,y,R,0.,theEdges(4),theVertices(4), 
+theVertices(5)); 
+MakeArc(-x,y,R,PI/2.,theEdges(6),theVertices(6), 
+theVertices(7)); 
+MakeArc(-x,-y,R,PI,theEdges(8),theVertices(8), 
+theVertices(1)); 
+// Create the linear edges 
+for (Standard_Integer i = 1; i <= 7; i += 2) 
+{ 
+theEdges(i) = BRepBuilderAPI_MakeEdge 
+(TopoDS::Vertex(theVertices(i)),TopoDS::Vertex 
+(theVertices(i+1))); 
+} 
+// Create the wire using the BRepBuilderAPI_MakeWire 
+BRepBuilderAPI_MakeWire MW; 
+for (i = 1; i <= 8; i++) 
+{ 
+MW.Add(TopoDS::Edge(theEdges(i))); 
+} 
+return MW.Wire(); 
+} 
+~~~~~
 
-For example, in the CUT operation between two intersecting solids all vertices/edges/faces located completely inside the Tool solid will be Deleted during the operation.
+@subsection occt_modalg_3_3 Edge 2D
 
-@subsubsection occt_modalg_hist_mod Modified shapes
+Use *BRepBuilderAPI_MakeEdge2d* class to make  edges on a working plane from 2d curves. The working plane is a default value  of the *BRepBuilderAPI* package (see the *Plane* methods). 
 
-The shape is considered as Modified during the operation if the result shape contains the splits of the shape, not the shape itself. The shape can be modified only into the shapes with the same dimension.
-The splits of the shape contained in the result shape are Modified from the shape.
-The Modified shapes are created from the sub-shapes of the input shapes and, generally, repeat their geometry.
+*BRepBuilderAPI_MakeEdge2d* class is strictly similar to BRepBuilderAPI_MakeEdge, but it uses 2D geometry from gp and Geom2d instead of  3D geometry. 
 
-The list of Modified elements will contain only those contributing to the result of the operation. If the list is empty, the shape has not been modified and it is necessary to check if it has been Deleted.
+@subsection occt_modalg_3_4 Polygon
 
-For example, after translation of the shape in any direction all its sub-shapes will be modified into their translated copies.
+*BRepBuilderAPI_MakePolygon* class is used to build polygonal wires from vertices  or points. Points are automatically changed to vertices as in  *BRepBuilderAPI_MakeEdge*. 
 
-@subsubsection occt_modalg_hist_gen Generated shapes
+The basic usage of  *BRepBuilderAPI_MakePolygon* is to create a wire by adding vertices or points  using the Add method. At any moment, the current wire can be extracted. The  close method can be used to close the current wire. In the following example, a  closed wire is created from an array of points. 
 
-The shapes contained in the result shape are considered as Generated from the input shape if they were produced during the operation and have a different dimension from the shapes from which they were created.
+~~~~~
+#include <TopoDS_Wire.hxx> 
+#include <BRepBuilderAPI_MakePolygon.hxx> 
+#include <TColgp_Array1OfPnt.hxx> 
 
-The list of Generated elements will contain only those included in the result of the operation. If the list is empty, no new shapes have been Generated from the shape.
+TopoDS_Wire ClosedPolygon(const TColgp_Array1OfPnt&  Points) 
+{ 
+BRepBuilderAPI_MakePolygon MP; 
+for(Standard_Integer i=Points.Lower();i=Points.Upper();i++) 
+{ 
+MP.Add(Points(i)); 
+} 
+MP.Close(); 
+return MP; 
+} 
+~~~~~
 
-For example, extrusion of the edge in some direction will create a face. This face will be generated from the edge.
+Short-cuts are provided  for 2, 3, or 4 points or vertices. Those methods have a Boolean last argument  to tell if the polygon is closed. The default value is False. 
 
-@subsubsection occt_modalg_hist_tool BRepTools_History
+Two examples: 
 
-*BRepTools_History* is the general History tool intended for unification of the histories of different algorithms.
+Example of a closed  triangle from three vertices:
+~~~~~ 
+TopoDS_Wire W =  BRepBuilderAPI_MakePolygon(V1,V2,V3,Standard_True); 
+~~~~~
 
-*BRepTools_History* can be created from any algorithm supporting the standard history methods *(IsDeleted(), Modified()* and *Generated())*:
-~~~~
-// The arguments of the operation
-TopoDS_Shape aS = ...;
+Example of an open  polygon from four points:
+~~~~~
+TopoDS_Wire W = BRepBuilderAPI_MakePolygon(P1,P2,P3,P4); 
+~~~~~
 
-// Perform transformation on the shape
-gp_Trsf aTrsf;
-aTrsf.SetTranslationPart(gp_Vec(0, 0, 1));
-BRepBuilderAPI_Transform aTransformer(aS, aTrsf); // Transformation API algorithm
-const TopoDS_Shape& aRes = aTransformer.Shape();
+*BRepBuilderAPI_MakePolygon* class maintains a current wire. The current wire can  be extracted at any moment and the construction can proceed to a longer wire.  After each point insertion, the class maintains the last created edge and  vertex, which are returned by the methods *Edge, FirstVertex* and *LastVertex*. 
 
-// Create the translation history object
-TopTools_ListOfShape anArguments;
-anArguments.Append(aS);
-BRepTools_History aHistory(anArguments, aTransformer);
-~~~~
+When the added point or  vertex has the same location as the previous one it is not added to the current  wire but the most recently created edge becomes Null. The *Added* method  can be used to test this condition. The *MakePolygon* class never raises an  error. If no vertex has been added, the *Wire* is *Null*. If two vertices are at  the same location, no edge is created. 
 
-*BRepTools_History* also allows merging histories. Thus, if you have two or more subsequent operations you can get one final history combined from histories of these operations:
+@subsection occt_modalg_3_5 Face
 
-~~~~
-Handle(BRepTools_History) aHist1 = ...; // History of first operation
-Handle(BRepTools_History) aHist2 = ...; // History of second operation
-~~~~
+Use *BRepBuilderAPI_MakeFace* class to create a face from a surface and wires. An underlying surface is  constructed from a surface and optional parametric values. Wires can be added  to the surface. A planar surface can be constructed from a wire. An error  status can be returned after face construction. 
 
-It is possible to merge the second history into the first one:
-~~~~
-aHist1->Merge(aHist2);
-~~~~
+@subsubsection occt_modalg_3_5_1 Basic face construction method
 
-Or create the new history keeping the two histories unmodified:
-~~~~
-Handle(BRepTools_History) aResHistory = new BRepTools_History;
-aResHistory->Merge(aHist1);
-aResHistory->Merge(aHist2);
-~~~~
+A face can be  constructed from a surface and four parameters to determine a limitation of the  UV space. The parameters are optional, if they are omitted the natural bounds  of the surface are used. Up to four edges and vertices are created with a wire.  No edge is created when the parameter is infinite. 
 
-The possibilities of Merging histories and history creation from the API algorithms allow providing easy History support for the new algorithms.
+~~~~~
+Handle(Geom_Surface) S = ...; // a surface 
+Standard_Real umin,umax,vmin,vmax; // parameters 
+TopoDS_Face F =  BRepBuilderAPI_MakeFace(S,umin,umax,vmin,vmax); 
+~~~~~
 
-@subsubsection occt_modalg_hist_draw DRAW history support
+@figure{/user_guides/modeling_algos/images/modeling_algos_image025.png,"Basic Face Construction",360}
 
-DRAW History support for the algorithms is provided by three basic commands:
-* *isdeleted*; 
-* *modified*;
-* *generated*.
+To make a face from the  natural boundary of a surface, the parameters are not required: 
 
-For more information on the Draw History mechanism, refer to the corresponding chapter in the Draw users guide - @ref occt_draw_hist "History commands".
+~~~~~
+Handle(Geom_Surface) S = ...; // a surface 
+TopoDS_Face F = BRepBuilderAPI_MakeFace(S); 
+~~~~~
 
+Constraints on the  parameters are similar to the constraints in *BRepBuilderAPI_MakeEdge*. 
+  * *umin,umax (vmin,vmax)* must be  in the range of the surface and must be increasing.
+  * On a *U (V)* periodic surface  *umin* and *umax (vmin,vmax)* are adjusted.
+  * *umin, umax, vmin, vmax* can be  infinite. There will be no edge in the corresponding direction.
 
-@section occt_modalg_3 Standard  Topological Objects
+@subsubsection occt_modalg_3_5_2 Supplementary face construction methods
 
-The following  standard topological objects can be created:
-  * Vertices;
-  * Edges;
-  * Faces;
-  * Wires;
-  * Polygonal wires;
-  * Shells;
-  * Solids.
+The two basic  constructions (from a surface and from a surface and parameters) are  implemented for all *gp* package surfaces, which are transformed in the corresponding Surface from Geom. 
 
-There are two root classes for their construction and modification: 
-* The deferred class  *BRepBuilderAPI_MakeShape* is the root of all *BRepBuilderAPI* classes,  which build shapes. It inherits from the class *BRepBuilderAPI_Command* and provides a field to store the constructed shape. 
-* The deferred class *BRepBuilderAPI_ModifyShape* is used as a root for the shape  modifications. It inherits *BRepBuilderAPI_MakeShape* and implements the methods  used to trace the history of all sub-shapes. 
+| gp package surface | | Geom package surface |
+| :------------------- | :----------- | :------------- |
+| *gp_Pln*             |    | *Geom_Plane* |
+| *gp_Cylinder*        |   | *Geom_CylindricalSurface* |
+| *gp_Cone*            |   creates  a | *Geom_ConicalSurface* |
+| *gp_Sphere*          |    | *Geom_SphericalSurface* |
+| *gp_Torus*           |    | *Geom_ToroidalSurface* |
 
-@subsection occt_modalg_3_1 Vertex
+Once a face has been  created, a wire can be added using the *Add* method. For example, the following  code creates a cylindrical surface and adds a wire. 
 
-*BRepBuilderAPI_MakeVertex*  creates a new vertex from a 3D point from gp. 
 ~~~~~
-gp_Pnt P(0,0,10); 
-TopoDS_Vertex V = BRepBuilderAPI_MakeVertex(P); 
+gp_Cylinder C = ..; // a cylinder 
+TopoDS_Wire W = ...;// a wire 
+BRepBuilderAPI_MakeFace MF(C); 
+MF.Add(W); 
+TopoDS_Face F = MF; 
 ~~~~~
 
-This class always creates a new vertex and has no other methods.
-
-@subsection occt_modalg_3_2 Edge
+More than one wire can  be added to a face, provided that they do not cross each other and they define  only one area on the surface. (Note that this is not checked). The edges on a Face must have a parametric curve description. 
 
-@subsubsection occt_modalg_3_2_1 Basic edge construction method
+If there is no  parametric curve for an edge of the wire on the Face it is computed by  projection. 
 
-Use *BRepBuilderAPI_MakeEdge* to create from a curve and vertices. The basic method constructs an edge from a curve, two vertices, and two parameters. 
+For one wire, a simple  syntax is provided to construct the face from the surface and the wire. The  above lines could be written: 
 
 ~~~~~
-Handle(Geom_Curve) C = ...; // a curve 
-TopoDS_Vertex V1 = ...,V2 = ...;// two Vertices 
-Standard_Real p1 = ..., p2 = ..;// two parameters 
-TopoDS_Edge E = BRepBuilderAPI_MakeEdge(C,V1,V2,p1,p2); 
+TopoDS_Face F = BRepBuilderAPI_MakeFace(C,W); 
 ~~~~~
 
-where C is the domain of the edge; V1 is the first vertex oriented FORWARD; V2 is the second vertex oriented REVERSED; p1  and p2 are the parameters for the vertices V1 and V2 on the curve. The default  tolerance is associated with this edge. 
-
-@figure{/user_guides/modeling_algos/images/modeling_algos_image022.png,"Basic Edge Construction",220}
+A planar face can be  created from only a wire, provided this wire defines a plane. For example, to  create a planar face from a set of points you can use *BRepBuilderAPI_MakePolygon* and *BRepBuilderAPI_MakeFace*.
 
-The following rules  apply to the arguments: 
+~~~~~
+#include <TopoDS_Face.hxx> 
+#include <TColgp_Array1OfPnt.hxx> 
+#include <BRepBuilderAPI_MakePolygon.hxx> 
+#include <BRepBuilderAPI_MakeFace.hxx> 
 
-**The curve**
-  * Must not be a Null Handle.
-  * If the curve is a trimmed  curve, the basis curve is used.
-
-**The vertices** 
-  * Can be null shapes. When V1  or V2 is Null the edge is open in the corresponding direction and the  corresponding parameter p1 or p2 must be infinite (i.e p1 is RealFirst(),  p2 is RealLast()).
-  * Must be different vertices if  they have different 3d locations and identical vertices if they have the same  3d location (identical vertices are used when the curve is closed).
+TopoDS_Face PolygonalFace(const TColgp_Array1OfPnt&  thePnts) 
+{ 
+BRepBuilderAPI_MakePolygon MP; 
+for(Standard_Integer i=thePnts.Lower(); 
+i<=thePnts.Upper(); i++) 
+{ 
+MP.Add(thePnts(i)); 
+} 
+MP.Close(); 
+TopoDS_Face F = BRepBuilderAPI_MakeFace(MP.Wire()); 
+return F; 
+} 
+~~~~~
 
-**The parameters**
-  * Must be increasing and in the  range of the curve, i.e.:
+The last use of *MakeFace* is to copy an existing face to  add new wires. For example, the following code adds a new wire to a face: 
 
 ~~~~~
-  C->FirstParameter() <=  p1 < p2 <= C->LastParameter() 
-~~~~~  
-  
-  * If the parameters are  decreasing, the Vertices are switched, i.e. V2 becomes V1 and V1 becomes V2.
-  * On a periodic curve the  parameters p1 and p2 are adjusted by adding or subtracting the period to obtain  p1 in the range of the curve and p2 in the range p1 < p2 <= p1+ Period.  So on a parametric curve p2 can be greater than the second parameter,  see the figure below.
-  * Can be infinite but the  corresponding vertex must be Null (see above).
-  * The distance between the Vertex 3d location and the point  evaluated on the curve with the parameter must be lower than the default  precision.
-
-The figure below  illustrates two special cases, a semi-infinite edge and an edge on a periodic  curve. 
+TopoDS_Face F = ...; // a face 
+TopoDS_Wire W = ...; // a wire 
+F = BRepBuilderAPI_MakeFace(F,W); 
+~~~~~
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image023.png,"Infinite and Periodic Edges",220}
+To add more than one  wire an instance of the *BRepBuilderAPI_MakeFace* class can be created with the face and the first wire and the new wires inserted with the *Add* method. 
 
-@subsubsection occt_modalg_3_2_2 Supplementary edge construction methods
+@subsubsection occt_modalg_3_5_3 Error status
 
-There exist supplementary edge construction methods derived from the basic one
+The *Error* method returns  an error status, which is a term from the *BRepBuilderAPI_FaceError* enumeration
 
-*BRepBuilderAPI_MakeEdge* class provides methods, which are all simplified calls  of the previous one: 
+* *FaceDone* -- no  error occurred. 
+* *NoFace* -- no initialization of the algorithm; an empty constructor was used. 
+* *NotPlanar* -- no  surface was given and the wire was not planar. 
+* *CurveProjectionFailed* -- no curve was found  in the parametric space of the surface for an edge. 
+* *ParametersOutOfRange* -- the parameters  *umin, umax, vmin, vmax* are out of the surface. 
 
-  * The parameters can be  omitted. They are computed by projecting the vertices on the curve.
-  * 3d points (Pnt from gp) can  be given in place of vertices. Vertices are created from the points. Giving  vertices is useful when creating connected vertices.
-  * The vertices or points can be  omitted if the parameters are given. The points are computed by evaluating the  parameters on the curve.
-  * The vertices or points and  the parameters can be omitted. The first and the last parameters of the curve are used.
+@subsection occt_modalg_3_6 Wire
+The wire is a composite shape built not from a geometry, but by the assembly of edges. *BRepBuilderAPI_MakeWire* class can build a wire from one or more edges or connect new edges to an  existing wire. 
 
-The five following  methods are thus derived from the basic construction
+Up to four edges can be used directly, for example
 
 ~~~~~
-Handle(Geom_Curve) C = ...; // a curve 
-TopoDS_Vertex V1 = ...,V2 = ...;// two Vertices 
-Standard_Real p1 = ..., p2 = ..;// two parameters 
-gp_Pnt P1 = ..., P2 = ...;// two points 
-TopoDS_Edge E; 
-// project the vertices on the curve 
-E = BRepBuilderAPI_MakeEdge(C,V1,V2); 
-// Make vertices from points 
-E = BRepBuilderAPI_MakeEdge(C,P1,P2,p1,p2); 
-// Make vertices from points and project them 
-E = BRepBuilderAPI_MakeEdge(C,P1,P2); 
-// Computes the points from the parameters 
-E = BRepBuilderAPI_MakeEdge(C,p1,p2); 
-// Make an edge from the whole curve 
-E = BRepBuilderAPI_MakeEdge(C); 
+TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3,E4); 
 ~~~~~
 
-
-Six methods (the five above and the basic method) are also provided for curves from the gp package in  place of Curve from Geom. The methods create the corresponding Curve from Geom  and are implemented for the following classes: 
-
-*gp_Lin*       creates a  *Geom_Line* 
-*gp_Circ*      creates a  *Geom_Circle* 
-*gp_Elips*    creates a  *Geom_Ellipse* 
-*gp_Hypr*    creates a  *Geom_Hyperbola* 
-*gp_Parab*   creates a  *Geom_Parabola* 
-
-There are also two  methods to construct edges from two vertices or two points. These methods  assume that the curve is a line; the vertices or points must have different  locations. 
+For a higher or unknown  number of edges the Add method must be used; for example, to build a wire from  an array of shapes (to be edges). 
 
 ~~~~~
-
-TopoDS_Vertex V1 = ...,V2 = ...;// two Vertices 
-gp_Pnt P1 = ..., P2 = ...;// two points 
-TopoDS_Edge E; 
-
-// linear edge from two vertices 
-E = BRepBuilderAPI_MakeEdge(V1,V2); 
-
-// linear edge from two points 
-E = BRepBuilderAPI_MakeEdge(P1,P2); 
+TopTools_Array1OfShapes theEdges; 
+BRepBuilderAPI_MakeWire MW; 
+for (Standard_Integer i = theEdge.Lower(); 
+i <= theEdges.Upper(); i++) 
+MW.Add(TopoDS::Edge(theEdges(i)); 
+TopoDS_Wire W = MW; 
 ~~~~~
 
-@subsubsection occt_modalg_3_2_3 Other information and error status
-
-The class *BRepBuilderAPI_MakeEdge* can provide extra information and return an error status. 
-
-If *BRepBuilderAPI_MakeEdge* is used as a class, it can provide two vertices. This is useful when  the vertices were not provided as arguments, for example when the edge was  constructed from a curve and parameters. The two methods *Vertex1* and *Vertex2*  return the vertices. Note that the returned vertices can be null if the edge is  open in the corresponding direction. 
-
-The *Error* method  returns a term of the *BRepBuilderAPI_EdgeError* enumeration. It can be used to analyze the error when *IsDone* method returns False. The terms are: 
-
-  * **EdgeDone** -- No error occurred, *IsDone* returns True. 
-  * **PointProjectionFailed** -- No parameters were given, but the projection of  the 3D points on the curve failed. This happens if the point distance to the  curve is greater than the precision. 
-  * **ParameterOutOfRange** -- The given parameters are not in the range  *C->FirstParameter()*, *C->LastParameter()* 
-  * **DifferentPointsOnClosedCurve** --  The  two vertices or points have different locations but they are the extremities of  a closed curve. 
-  * **PointWithInfiniteParameter** -- A finite coordinate point was associated with an  infinite parameter (see the Precision package for a definition of infinite  values). 
-  * **DifferentsPointAndParameter**  -- The distance of the 3D point and the point  evaluated on the curve with the parameter is greater than the precision. 
-  * **LineThroughIdenticPoints** -- Two identical points were given to define a line  (construction of an edge without curve), *gp::Resolution* is used to test confusion . 
-
-The following example  creates a rectangle centered on the origin of dimensions H, L with fillets of radius R. The edges and the vertices are stored in the arrays *theEdges* and *theVertices*. We use class *Array1OfShape* (i.e. not arrays of edges or vertices).  See the image below. 
-
-@figure{/user_guides/modeling_algos/images/modeling_algos_image024.png,"Creating a Wire",360}
+The class can be  constructed with a wire. A wire can also be added. In this case, all the edges  of the wires are added. For example to merge two wires: 
 
 ~~~~~
-#include <BRepBuilderAPI_MakeEdge.hxx> 
-#include <TopoDS_Shape.hxx> 
-#include <gp_Circ.hxx> 
-#include <gp.hxx> 
 #include <TopoDS_Wire.hxx> 
-#include <TopTools_Array1OfShape.hxx> 
 #include <BRepBuilderAPI_MakeWire.hxx> 
 
-// Use MakeArc method to make an edge and two vertices 
-void MakeArc(Standard_Real x,Standard_Real y, 
-Standard_Real R, 
-Standard_Real ang, 
-TopoDS_Shape& E, 
-TopoDS_Shape& V1, 
-TopoDS_Shape& V2) 
+TopoDS_Wire MergeWires (const TopoDS_Wire& W1, 
+const  TopoDS_Wire& W2) 
 { 
-gp_Ax2 Origin = gp::XOY(); 
-gp_Vec Offset(x, y, 0.); 
-Origin.Translate(Offset); 
-BRepBuilderAPI_MakeEdge 
-ME(gp_Circ(Origin,R),  ang, ang+PI/2); 
-E = ME; 
-V1 = ME.Vertex1(); 
-V2 = ME.Vertex2(); 
+BRepBuilderAPI_MakeWire MW(W1); 
+MW.Add(W2); 
+return MW; 
 } 
+~~~~~
 
-TopoDS_Wire MakeFilletedRectangle(const Standard_Real H, 
-const Standard_Real L, 
-const Standard_Real  R) 
-{ 
-TopTools_Array1OfShape theEdges(1,8); 
-TopTools_Array1OfShape theVertices(1,8); 
+*BRepBuilderAPI_MakeWire* class connects the edges to the wire. When a new edge  is added if one of its vertices is shared with the wire it is considered as  connected to the wire. If there is no shared vertex, the algorithm searches for  a vertex of the edge and a vertex of the wire, which are at the same location (the  tolerances of the vertices are used to test if they have the same location). If  such a pair of vertices is found, the edge is copied with the vertex of the  wire in place of the original vertex. All the vertices of the edge can be  exchanged for vertices from the wire. If no connection is found the wire is  considered to be disconnected. This is an error. 
 
-// First create the circular edges and the vertices 
-// using the MakeArc function described above. 
-void MakeArc(Standard_Real, Standard_Real, 
-Standard_Real, Standard_Real, 
-TopoDS_Shape&, TopoDS_Shape&,  TopoDS_Shape&); 
+BRepBuilderAPI_MakeWire class can return the last edge added to the wire (Edge  method). This edge can be different from the original edge if it was copied. 
 
-Standard_Real x = L/2 - R, y = H/2 - R; 
-MakeArc(x,-y,R,3.*PI/2.,theEdges(2),theVertices(2), 
-theVertices(3)); 
-MakeArc(x,y,R,0.,theEdges(4),theVertices(4), 
-theVertices(5)); 
-MakeArc(-x,y,R,PI/2.,theEdges(6),theVertices(6), 
-theVertices(7)); 
-MakeArc(-x,-y,R,PI,theEdges(8),theVertices(8), 
-theVertices(1)); 
-// Create the linear edges 
-for (Standard_Integer i = 1; i <= 7; i += 2) 
-{ 
-theEdges(i) = BRepBuilderAPI_MakeEdge 
-(TopoDS::Vertex(theVertices(i)),TopoDS::Vertex 
-(theVertices(i+1))); 
-} 
-// Create the wire using the BRepBuilderAPI_MakeWire 
-BRepBuilderAPI_MakeWire MW; 
-for (i = 1; i <= 8; i++) 
-{ 
-MW.Add(TopoDS::Edge(theEdges(i))); 
-} 
-return MW.Wire(); 
-} 
-~~~~~
+The Error method returns  a term of the *BRepBuilderAPI_WireError* enumeration: 
+*WireDone* -- no  error occurred. 
+*EmptyWire* -- no  initialization of the algorithm, an empty constructor was used. 
+*DisconnectedWire* -- the last added edge was not connected to the wire. 
+*NonManifoldWire* -- the  wire with some singularity. 
 
-@subsection occt_modalg_3_3 Edge 2D
+@subsection occt_modalg_3_7 Shell
+The shell is a composite shape built not from a geometry, but by the assembly of faces.
+Use *BRepBuilderAPI_MakeShell* class  to build a Shell from a set of Faces. What may be important is that each face  should have the required continuity. That is why an initial surface is broken  up into faces. 
 
-Use *BRepBuilderAPI_MakeEdge2d* class to make  edges on a working plane from 2d curves. The working plane is a default value  of the *BRepBuilderAPI* package (see the *Plane* methods). 
+@subsection occt_modalg_3_8 Solid
+The solid is a composite shape built not from a geometry, but by the assembly of shells. Use  *BRepBuilderAPI_MakeSolid* class  to build a Solid from a set of Shells. Its use is similar to the use of the  MakeWire class: shells are added to the solid in the same way that edges are  added to the wire in MakeWire. 
 
-*BRepBuilderAPI_MakeEdge2d* class is strictly similar to BRepBuilderAPI_MakeEdge, but it uses 2D geometry from gp and Geom2d instead of  3D geometry. 
 
-@subsection occt_modalg_3_4 Polygon
+@section occt_modalg_4 Primitives
 
-*BRepBuilderAPI_MakePolygon* class is used to build polygonal wires from vertices  or points. Points are automatically changed to vertices as in  *BRepBuilderAPI_MakeEdge*. 
+The <i> BRepPrimAPI</i> package provides an API (Application Programming Interface) for construction of primitives such as:
+    * Boxes;
+    * Cones;
+    * Cylinders;
+    * Prisms.
 
-The basic usage of  *BRepBuilderAPI_MakePolygon* is to create a wire by adding vertices or points  using the Add method. At any moment, the current wire can be extracted. The  close method can be used to close the current wire. In the following example, a  closed wire is created from an array of points. 
+It is possible to create partial solids, such as a sphere limited by longitude. In real models, primitives can be used  for easy creation of specific sub-parts.
 
-~~~~~
-#include <TopoDS_Wire.hxx> 
-#include <BRepBuilderAPI_MakePolygon.hxx> 
-#include <TColgp_Array1OfPnt.hxx> 
+  * Construction by sweeping along a profile:
+    * Linear;
+    * Rotational (through an angle of rotation).
 
-TopoDS_Wire ClosedPolygon(const TColgp_Array1OfPnt&  Points) 
-{ 
-BRepBuilderAPI_MakePolygon MP; 
-for(Standard_Integer i=Points.Lower();i=Points.Upper();i++) 
-{ 
-MP.Add(Points(i)); 
-} 
-MP.Close(); 
-return MP; 
-} 
-~~~~~
+Sweeps are objects obtained by sweeping a profile along a path. The profile can be any topology and the path is usually a curve or a wire. The profile generates objects according to the following rules:
+  * Vertices generate Edges
+  * Edges generate Faces.
+  * Wires generate Shells.
+  * Faces generate Solids.
+  * Shells generate Composite Solids.
 
-Short-cuts are provided  for 2, 3, or 4 points or vertices. Those methods have a Boolean last argument  to tell if the polygon is closed. The default value is False. 
+It is not allowed to sweep Solids and Composite Solids. Swept constructions along complex profiles such as BSpline curves also available in the <i> BRepOffsetAPI </i> package. This API provides simple, high level calls for the most common operations.
 
-Two examples: 
+@subsection occt_modalg_4_1 Making  Primitives
+@subsubsection occt_modalg_4_1_1 Box
 
-Example of a closed  triangle from three vertices:
-~~~~~ 
-TopoDS_Wire W =  BRepBuilderAPI_MakePolygon(V1,V2,V3,Standard_True); 
-~~~~~
+The class *BRepPrimAPI_MakeBox* allows building a parallelepiped box. The result is either a **Shell** or a **Solid**. There are  four ways to build a box: 
 
-Example of an open  polygon from four points:
+* From three dimensions *dx, dy* and *dz*. The box is parallel to the axes and extends for <i>[0,dx] [0,dy] [0,dz] </i>. 
+* From a point and three  dimensions. The same as above but the point is the new origin. 
+* From two points, the box  is parallel to the axes and extends on the intervals defined by the coordinates  of the two points. 
+* From a system of axes *gp_Ax2* and three dimensions. Same as the first way but the box is parallel to the given system of axes. 
+
+An error is raised if  the box is flat in any dimension using the default precision. The following  code shows how to create a box: 
 ~~~~~
-TopoDS_Wire W = BRepBuilderAPI_MakePolygon(P1,P2,P3,P4); 
+TopoDS_Solid theBox = BRepPrimAPI_MakeBox(10.,20.,30.); 
 ~~~~~
 
-*BRepBuilderAPI_MakePolygon* class maintains a current wire. The current wire can  be extracted at any moment and the construction can proceed to a longer wire.  After each point insertion, the class maintains the last created edge and  vertex, which are returned by the methods *Edge, FirstVertex* and *LastVertex*. 
+The four methods to build a box are shown in the figure: 
 
-When the added point or  vertex has the same location as the previous one it is not added to the current  wire but the most recently created edge becomes Null. The *Added* method  can be used to test this condition. The *MakePolygon* class never raises an  error. If no vertex has been added, the *Wire* is *Null*. If two vertices are at  the same location, no edge is created. 
+@figure{/user_guides/modeling_algos/images/modeling_algos_image026.png,"Making Boxes",420}
 
-@subsection occt_modalg_3_5 Face
+@subsubsection occt_modalg_4_1_2 Wedge
+*BRepPrimAPI_MakeWedge* class allows building a wedge, which is a slanted box, i.e. a  box with angles. The wedge is constructed in much the same way as a box i.e.  from three dimensions dx,dy,dz plus arguments or from an axis system, three  dimensions, and arguments. 
 
-Use *BRepBuilderAPI_MakeFace* class to create a face from a surface and wires. An underlying surface is  constructed from a surface and optional parametric values. Wires can be added  to the surface. A planar surface can be constructed from a wire. An error  status can be returned after face construction. 
-
-@subsubsection occt_modalg_3_5_1 Basic face construction method
-
-A face can be  constructed from a surface and four parameters to determine a limitation of the  UV space. The parameters are optional, if they are omitted the natural bounds  of the surface are used. Up to four edges and vertices are created with a wire.  No edge is created when the parameter is infinite. 
-
-~~~~~
-Handle(Geom_Surface) S = ...; // a surface 
-Standard_Real umin,umax,vmin,vmax; // parameters 
-TopoDS_Face F =  BRepBuilderAPI_MakeFace(S,umin,umax,vmin,vmax); 
-~~~~~
-
-@figure{/user_guides/modeling_algos/images/modeling_algos_image025.png,"Basic Face Construction",360}
-
-To make a face from the  natural boundary of a surface, the parameters are not required: 
-
-~~~~~
-Handle(Geom_Surface) S = ...; // a surface 
-TopoDS_Face F = BRepBuilderAPI_MakeFace(S); 
-~~~~~
-
-Constraints on the  parameters are similar to the constraints in *BRepBuilderAPI_MakeEdge*. 
-  * *umin,umax (vmin,vmax)* must be  in the range of the surface and must be increasing.
-  * On a *U (V)* periodic surface  *umin* and *umax (vmin,vmax)* are adjusted.
-  * *umin, umax, vmin, vmax* can be  infinite. There will be no edge in the corresponding direction.
-
-@subsubsection occt_modalg_3_5_2 Supplementary face construction methods
-
-The two basic  constructions (from a surface and from a surface and parameters) are  implemented for all *gp* package surfaces, which are transformed in the corresponding Surface from Geom. 
-
-| gp package surface | | Geom package surface |
-| :------------------- | :----------- | :------------- |
-| *gp_Pln*             |    | *Geom_Plane* |
-| *gp_Cylinder*        |   | *Geom_CylindricalSurface* |
-| *gp_Cone*            |   creates  a | *Geom_ConicalSurface* |
-| *gp_Sphere*          |    | *Geom_SphericalSurface* |
-| *gp_Torus*           |    | *Geom_ToroidalSurface* |
-
-Once a face has been  created, a wire can be added using the *Add* method. For example, the following  code creates a cylindrical surface and adds a wire. 
-
-~~~~~
-gp_Cylinder C = ..; // a cylinder 
-TopoDS_Wire W = ...;// a wire 
-BRepBuilderAPI_MakeFace MF(C); 
-MF.Add(W); 
-TopoDS_Face F = MF; 
-~~~~~
-
-More than one wire can  be added to a face, provided that they do not cross each other and they define  only one area on the surface. (Note that this is not checked). The edges on a Face must have a parametric curve description. 
-
-If there is no  parametric curve for an edge of the wire on the Face it is computed by  projection. 
-
-For one wire, a simple  syntax is provided to construct the face from the surface and the wire. The  above lines could be written: 
-
-~~~~~
-TopoDS_Face F = BRepBuilderAPI_MakeFace(C,W); 
-~~~~~
-
-A planar face can be  created from only a wire, provided this wire defines a plane. For example, to  create a planar face from a set of points you can use *BRepBuilderAPI_MakePolygon* and *BRepBuilderAPI_MakeFace*.
-
-~~~~~
-#include <TopoDS_Face.hxx> 
-#include <TColgp_Array1OfPnt.hxx> 
-#include <BRepBuilderAPI_MakePolygon.hxx> 
-#include <BRepBuilderAPI_MakeFace.hxx> 
-
-TopoDS_Face PolygonalFace(const TColgp_Array1OfPnt&  thePnts) 
-{ 
-BRepBuilderAPI_MakePolygon MP; 
-for(Standard_Integer i=thePnts.Lower(); 
-i<=thePnts.Upper(); i++) 
-{ 
-MP.Add(thePnts(i)); 
-} 
-MP.Close(); 
-TopoDS_Face F = BRepBuilderAPI_MakeFace(MP.Wire()); 
-return F; 
-} 
-~~~~~
-
-The last use of *MakeFace* is to copy an existing face to  add new wires. For example, the following code adds a new wire to a face: 
-
-~~~~~
-TopoDS_Face F = ...; // a face 
-TopoDS_Wire W = ...; // a wire 
-F = BRepBuilderAPI_MakeFace(F,W); 
-~~~~~
-
-To add more than one  wire an instance of the *BRepBuilderAPI_MakeFace* class can be created with the face and the first wire and the new wires inserted with the *Add* method. 
-
-@subsubsection occt_modalg_3_5_3 Error status
-
-The *Error* method returns  an error status, which is a term from the *BRepBuilderAPI_FaceError* enumeration. 
-
-* *FaceDone* -- no  error occurred. 
-* *NoFace* -- no initialization of the algorithm; an empty constructor was used. 
-* *NotPlanar* -- no  surface was given and the wire was not planar. 
-* *CurveProjectionFailed* -- no curve was found  in the parametric space of the surface for an edge. 
-* *ParametersOutOfRange* -- the parameters  *umin, umax, vmin, vmax* are out of the surface. 
-
-@subsection occt_modalg_3_6 Wire
-The wire is a composite shape built not from a geometry, but by the assembly of edges. *BRepBuilderAPI_MakeWire* class can build a wire from one or more edges or connect new edges to an  existing wire. 
-
-Up to four edges can be used directly, for example: 
-
-~~~~~
-TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3,E4); 
-~~~~~
-
-For a higher or unknown  number of edges the Add method must be used; for example, to build a wire from  an array of shapes (to be edges). 
-
-~~~~~
-TopTools_Array1OfShapes theEdges; 
-BRepBuilderAPI_MakeWire MW; 
-for (Standard_Integer i = theEdge.Lower(); 
-i <= theEdges.Upper(); i++) 
-MW.Add(TopoDS::Edge(theEdges(i)); 
-TopoDS_Wire W = MW; 
-~~~~~
-
-The class can be  constructed with a wire. A wire can also be added. In this case, all the edges  of the wires are added. For example to merge two wires: 
-
-~~~~~
-#include <TopoDS_Wire.hxx> 
-#include <BRepBuilderAPI_MakeWire.hxx> 
-
-TopoDS_Wire MergeWires (const TopoDS_Wire& W1, 
-const  TopoDS_Wire& W2) 
-{ 
-BRepBuilderAPI_MakeWire MW(W1); 
-MW.Add(W2); 
-return MW; 
-} 
-~~~~~
-
-*BRepBuilderAPI_MakeWire* class connects the edges to the wire. When a new edge  is added if one of its vertices is shared with the wire it is considered as  connected to the wire. If there is no shared vertex, the algorithm searches for  a vertex of the edge and a vertex of the wire, which are at the same location (the  tolerances of the vertices are used to test if they have the same location). If  such a pair of vertices is found, the edge is copied with the vertex of the  wire in place of the original vertex. All the vertices of the edge can be  exchanged for vertices from the wire. If no connection is found the wire is  considered to be disconnected. This is an error. 
-
-BRepBuilderAPI_MakeWire class can return the last edge added to the wire (Edge  method). This edge can be different from the original edge if it was copied. 
-
-The Error method returns  a term of the *BRepBuilderAPI_WireError* enumeration: 
-*WireDone* -- no  error occurred. 
-*EmptyWire* -- no  initialization of the algorithm, an empty constructor was used. 
-*DisconnectedWire* -- the last added edge was not connected to the wire. 
-*NonManifoldWire* -- the  wire with some singularity. 
-
-@subsection occt_modalg_3_7 Shell
-The shell is a composite shape built not from a geometry, but by the assembly of faces.
-Use *BRepBuilderAPI_MakeShell* class  to build a Shell from a set of Faces. What may be important is that each face  should have the required continuity. That is why an initial surface is broken  up into faces. 
-
-@subsection occt_modalg_3_8 Solid
-The solid is a composite shape built not from a geometry, but by the assembly of shells. Use  *BRepBuilderAPI_MakeSolid* class  to build a Solid from a set of Shells. Its use is similar to the use of the  MakeWire class: shells are added to the solid in the same way that edges are  added to the wire in MakeWire. 
-
-
-@section occt_modalg_3b Object Modification
-
-@subsection occt_modalg_3b_1 Transformation
-*BRepBuilderAPI_Transform* class can be used to apply a transformation to a shape (see class  *gp_Trsf*). The methods have a boolean argument to copy or share the  original shape, as long as the transformation allows (it is only possible for  direct isometric transformations). By default, the original shape is shared. 
-
-The following example  deals with the rotation of shapes. 
-
-~~~~~
-
-TopoDS_Shape myShape1 = ...; 
-// The original shape 1 
-TopoDS_Shape myShape2 = ...; 
-// The original shape2 
-gp_Trsf T; 
-T.SetRotation(gp_Ax1(gp_Pnt(0.,0.,0.),gp_Vec(0.,0.,1.)), 
-2.*PI/5.); 
-BRepBuilderAPI_Transformation theTrsf(T); 
-theTrsf.Perform(myShape1); 
-TopoDS_Shape myNewShape1 = theTrsf.Shape() 
-theTrsf.Perform(myShape2,Standard_True); 
-// Here duplication is forced 
-TopoDS_Shape myNewShape2 = theTrsf.Shape() 
-~~~~~
-
-@subsection occt_modalg_3b_2 Duplication
-
-Use the  *BRepBuilderAPI_Copy* class to duplicate a shape. A new shape is thus created. 
-In the following example, a  solid is copied: 
-
-~~~~~
-TopoDS Solid MySolid; 
-....// Creates a solid 
-
-TopoDS_Solid myCopy = BRepBuilderAPI_Copy(mySolid); 
-~~~~~
-
-
-@section occt_modalg_4 Primitives
-
-The <i> BRepPrimAPI</i> package provides an API (Application Programming Interface) for construction of primitives such as:
-    * Boxes;
-    * Cones;
-    * Cylinders;
-    * Prisms.
-
-It is possible to create partial solids, such as a sphere limited by longitude. In real models, primitives can be used  for easy creation of specific sub-parts.
-
-  * Construction by sweeping along a profile:
-    * Linear;
-    * Rotational (through an angle of rotation).
-
-Sweeps are objects obtained by sweeping a profile along a path. The profile can be any topology and the path is usually a curve or a wire. The profile generates objects according to the following rules:
-  * Vertices generate Edges
-  * Edges generate Faces.
-  * Wires generate Shells.
-  * Faces generate Solids.
-  * Shells generate Composite Solids.
-
-It is not allowed to sweep Solids and Composite Solids. Swept constructions along complex profiles such as BSpline curves also available in the <i> BRepOffsetAPI </i> package. This API provides simple, high level calls for the most common operations.
-
-@subsection occt_modalg_4_1 Making  Primitives
-@subsubsection occt_modalg_4_1_1 Box
-
-The class *BRepPrimAPI_MakeBox* allows building a parallelepiped box. The result is either a **Shell** or a **Solid**. There are  four ways to build a box: 
-
-* From three dimensions *dx, dy* and *dz*. The box is parallel to the axes and extends for <i>[0,dx] [0,dy] [0,dz] </i>. 
-* From a point and three  dimensions. The same as above but the point is the new origin. 
-* From two points, the box  is parallel to the axes and extends on the intervals defined by the coordinates  of the two points. 
-* From a system of axes *gp_Ax2* and three dimensions. Same as the first way but the box is parallel to the given system of axes. 
-
-An error is raised if  the box is flat in any dimension using the default precision. The following  code shows how to create a box: 
-~~~~~
-TopoDS_Solid theBox = BRepPrimAPI_MakeBox(10.,20.,30.); 
-~~~~~
-
-The four methods to build a box are shown in the figure: 
-
-@figure{/user_guides/modeling_algos/images/modeling_algos_image026.png,"Making Boxes",420}
-
-@subsubsection occt_modalg_4_1_2 Wedge
-*BRepPrimAPI_MakeWedge* class allows building a wedge, which is a slanted box, i.e. a  box with angles. The wedge is constructed in much the same way as a box i.e.  from three dimensions dx,dy,dz plus arguments or from an axis system, three  dimensions, and arguments. 
-
-The following figure  shows two ways to build wedges. One is to add a dimension *ltx*, which is the length in *x* of the face at *dy*. The second is to add *xmin, xmax, zmin* and *zmax* to  describe the face at *dy*. 
+The following figure  shows two ways to build wedges. One is to add a dimension *ltx*, which is the length in *x* of the face at *dy*. The second is to add *xmin, xmax, zmin* and *zmax* to  describe the face at *dy*. 
 
 The first method is a  particular case of the second with *xmin = 0, xmax = ltx, zmin = 0, zmax = dz*. 
 To make a centered  pyramid you can use *xmin = xmax = dx / 2, zmin = zmax = dz / 2*. 
@@ -2053,7 +1680,10 @@ TopoDS_Solid R2 = BRepPrimAPI_MakeRevol(F,axis,ang);
 
 @figure{/user_guides/modeling_algos/images/modeling_algos_image035.png,"Full and partial  rotation",420}
 
-@section occt_modalg_5 Boolean  Operations
+
+
+
+@section occt_modalg_5 Boolean Operations
 
 Boolean operations are used to create new shapes from the combinations of two groups of shapes.
 
@@ -2114,1189 +1744,1184 @@ TopoDS_Shape S = BRepAlgoAPI_Cut(A,B);
 
 *BRepAlgoAPI_Section* performs the section, described as a *TopoDS_Compound* made of *TopoDS_Edge*. 
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image037.png,"Section  operation",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_image037.png,"Section operation",220}
 
 ~~~~~
 TopoDS_Shape A = ...,  TopoDS_ShapeB = ...; 
 TopoDS_Shape S =  BRepAlgoAPI_Section(A,B); 
 ~~~~~
 
-@section occt_modalg_6 Fillets and  Chamfers
-
-This library provides algorithms to make fillets and chamfers on shape edges.
-The following cases are addressed:
 
-  * Corners and apexes with different radii; 
-  * Corners and apexes with different concavity. 
 
-If there is a concavity, both surfaces that need to be extended and those, which do not, are processed.
 
-@subsection occt_modalg_6_1 Fillets  
-@subsection occt_modalg_6_1_1 Fillet on shape
+@section occt_modalg_2_topo_tools Topological Tools
 
-A fillet is a smooth  face replacing a sharp edge.
+Open CASCADE Technology topological tools provide algorithms to
+ * Create wires from edges;
+ * Create faces from wires;
+ * Compute state of the shape relatively other shape;
+ * Orient shapes in container;
+ * Create new shapes from the existing ones;
+ * Build PCurves of edges on the faces;
+ * Check the validity of the shapes;
+ * Take the point in the face;
+ * Get the normal direction for the face.
 
-*BRepFilletAPI_MakeFillet* class allows filleting a shape.  
 
-To produce a fillet, it is necessary to define the filleted shape at the construction of the class and  add fillet  descriptions using the *Add* method.
+@subsection occt_modalg_2_topo_tools_1 Creation of the faces from wireframe model
 
-A fillet description contains an edge and a  radius. The edge must be shared by two faces. The fillet is automatically extended to all edges in a smooth continuity with the original  edge. It is not an error to add a fillet twice,  the last description holds. 
+It is possible to create the planar faces from the arbitrary set of planar edges randomly located in 3D space.
+This feature might be useful if you need for instance to restore the shape from the wireframe model:
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image038.png,"Filleting two edges using radii r1 and  r2.",360}
+@figure{/user_guides/modeling_algos/images/modeling_algos_image062.png,"Wireframe model",160}
+@figure{/user_guides/modeling_algos/images/modeling_algos_image063.png,"Faces of the model",160}
 
-In the following example  a filleted box with dimensions a,b,c and radius r is created. 
 
-### Constant  radius 
+To make the faces from edges it is, firstly, necessary to create planar wires from the given edges and than create planar faces from each wire.
+The static methods *BOPAlgo_Tools::EdgesToWires* and *BOPAlgo_Tools::WiresToFaces* can be used for that:
+~~~~~
+TopoDS_Shape anEdges = ...; /* The input edges */
+Standard_Real anAngTol = 1.e-8; /* The angular tolerance for distinguishing the planes in which the wires are located */
+Standard_Boolean bShared = Standard_False; /* Defines whether the edges are shared or not */
+//
+TopoDS_Shape aWires; /* resulting wires */
+Standard_Integer iErr = BOPAlgo_Tools::EdgesToWires(anEdges, aWires, bShared, anAngTol);
+if (iErr) {
+  cout << "Error: Unable to build wires from given edges\n";
+  return;
+}
+//
+TopoDS_Shape aFaces; /* resulting faces */
+Standard_Boolean bDone = BOPAlgo_Tools::WiresToFaces(aWires, aFaces, anAngTol);
+if (!bDone) {
+  cout << "Error: Unable to build faces from wires\n";
+  return;
+}
+~~~~~
 
+These methods can also be used separately:
+ * *BOPAlgo_Tools::EdgesToWires* allows creating planar wires from edges.
+The input edges may be not shared, but the output wires will be sharing the coinciding vertices and edges. For this the intersection of the edges is performed.
+Although, it is possible to skip the intersection stage (if the input edges are already shared) by passing the corresponding flag into the method.
+The input edges are expected to be planar, but the method does not check it. Thus, if the input edges are not planar, the output wires will also be not planar.
+In general, the output wires are non-manifold and may contain free vertices, as well as multi-connected vertices.
+ * *BOPAlgo_Tools::WiresToFaces* allows creating planar faces from the planar wires.
+In general, the input wires are non-manifold and may be not closed, but should share the coinciding parts.
+The wires located in the same plane and completely included into other wires will create holes in the faces built from outer wires:
 
-~~~~~
-#include <TopoDS_Shape.hxx> 
-#include <TopoDS.hxx> 
-#include <BRepPrimAPI_MakeBox.hxx> 
-#include <TopoDS_Solid.hxx> 
-#include <BRepFilletAPI_MakeFillet.hxx> 
-#include <TopExp_Explorer.hxx> 
+@figure{/user_guides/modeling_algos/images/modeling_algos_image064.png,"Wireframe model",160}
+@figure{/user_guides/modeling_algos/images/modeling_algos_image065.png,"Two faces (red face has a hole)",160}
 
-TopoDS_Shape FilletedBox(const Standard_Real a, 
-                                               const Standard_Real  b, 
-                                               const Standard_Real  c, 
-                                               const Standard_Real  r) 
-{ 
-       TopoDS_Solid Box =  BRepPrimAPI_MakeBox(a,b,c); 
-       BRepFilletAPI_MakeFillet  MF(Box); 
 
-       // add all the edges  to fillet 
-       TopExp_Explorer  ex(Box,TopAbs_EDGE); 
-       while (ex.More()) 
-       { 
-       MF.Add(r,TopoDS::Edge(ex.Current())); 
-       ex.Next(); 
-       } 
-       return MF.Shape(); 
-       } 
-~~~~~
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image039.png,"Fillet with constant radius",360}
+@subsection occt_modalg_2_topo_tools_2 Classification of the shapes
 
-#### Changing radius
+The following methods allow classifying the different shapes relatively other shapes:
+ * The variety of the *BOPTools_AlgoTools::ComputState* methods classify the vertex/edge/face relatively solid;
+ * *BOPTools_AlgoTools::IsHole* classifies wire relatively face;
+ * *IntTools_Tools::ClassifyPointByFace* classifies point relatively face.
 
+@subsection occt_modalg_2_topo_tools_3 Orientation of the shapes in the container
 
-~~~~~
-void CSampleTopologicalOperationsDoc::OnEvolvedblend1() 
-{ 
-       TopoDS_Shape theBox  = BRepPrimAPI_MakeBox(200,200,200); 
+The following methods allow reorienting shapes in the containers:
+ * *BOPTools_AlgoTools::OrientEdgesOnWire* correctly orients edges on the wire;
+ * *BOPTools_AlgoTools::OrientFacesOnShell* correctly orients faces on the shell.
 
-       BRepFilletAPI_MakeFillet  Rake(theBox); 
-       ChFi3d_FilletShape  FSh = ChFi3d_Rational; 
-       Rake.SetFilletShape(FSh); 
+@subsection occt_modalg_2_topo_tools_4 Making new shapes
 
-       TColgp_Array1OfPnt2d  ParAndRad(1, 6); 
-       ParAndRad(1).SetCoord(0.,  10.); 
-       ParAndRad(1).SetCoord(50.,  20.); 
-       ParAndRad(1).SetCoord(70.,  20.); 
-       ParAndRad(1).SetCoord(130.,  60.); 
-       ParAndRad(1).SetCoord(160.,  30.); 
-       ParAndRad(1).SetCoord(200.,  20.); 
+The following methods allow creating new shapes from the existing ones:
+ * The variety of the *BOPTools_AlgoTools::MakeNewVertex* creates the new vertices from other vertices and edges;
+ * *BOPTools_AlgoTools::MakeSplitEdge* splits the edge by the given parameters.
 
-       TopExp_Explorer  ex(theBox,TopAbs_EDGE); 
-       Rake.Add(ParAndRad, TopoDS::Edge(ex.Current())); 
-       TopoDS_Shape  evolvedBox = Rake.Shape(); 
-} 
-~~~~~
+@subsection occt_modalg_2_topo_tools_5 Building PCurves
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image040.png,"Fillet with changing radius",360}
+The following methods allow building PCurves of edges on faces:
+ * *BOPTools_AlgoTools::BuildPCurveForEdgeOnFace* computes PCurve for the edge on the face;
+ * *BOPTools_AlgoTools::BuildPCurveForEdgeOnPlane* and *BOPTools_AlgoTools::BuildPCurveForEdgesOnPlane* allow building PCurves for edges on the planar face;
+ * *BOPTools_AlgoTools::AttachExistingPCurve* takes PCurve on the face from one edge and attach this PCurve to other edge coinciding with the first one.
+
+@subsection occt_modalg_2_topo_tools_6 Checking the validity of the shapes
+
+The following methods allow checking the validity of the shapes:
+ * *BOPTools_AlgoTools::IsMicroEdge* detects the small edges;
+ * *BOPTools_AlgoTools::ComputeTolerance* computes the correct tolerance of the edge on the face;
+ * *BOPTools_AlgoTools::CorrectShapeTolerances* and *BOPTools_AlgoTools::CorrectTolerances* allow correcting the tolerances of the sub-shapes.
+ * *BRepLib::FindValidRange* finds a range of 3d curve of the edge not covered by tolerance spheres of vertices.
  
-@subsection occt_modalg_6_1_2 Chamfer
+@subsection occt_modalg_2_topo_tools_7 Taking a point inside the face
 
-A chamfer is a rectilinear edge  replacing a sharp vertex of the face.
+The following methods allow taking a point located inside the face:
+ * The variety of the *BOPTools_AlgoTools3D::PointNearEdge* allows getting a point inside the face located near the edge;
+ * *BOPTools_AlgoTools3D::PointInFace* allows getting a point inside the face.
 
-The use of *BRepFilletAPI_MakeChamfer* class is similar to the use of  *BRepFilletAPI_MakeFillet*, except for the following: 
-* The surfaces created are  ruled and not smooth. 
-* The *Add* syntax for  selecting edges requires one or two distances, one edge and one face  (contiguous to the edge).
+@subsection occt_modalg_2_topo_tools_8 Getting normal for the face
 
-~~~~~ 
-Add(dist,  E, F) 
-Add(d1,  d2, E, F) with d1 on the face F. 
-~~~~~
+The following methods allow getting the normal direction for the face/surface:
+ * *BOPTools_AlgoTools3D::GetNormalToSurface* computes the normal direction for the surface in the given point defined by UV parameters;
+ * *BOPTools_AlgoTools3D::GetNormalToFaceOnEdge* computes the normal direction for the face in the point located on the edge of the face;
+ * *BOPTools_AlgoTools3D::GetApproxNormalToFaceOnEdge* computes the normal direction for the face in the point located near the edge of the face.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image041.png,"Chamfer",360}
 
-@subsection occt_modalg_6_1_3 Fillet on a planar face
 
-*BRepFilletAPI_MakeFillet2d* class allows constructing fillets and chamfers on planar faces. 
-To create a fillet on planar face: define it, indicate, which vertex is  to be deleted, and give the fillet radius with *AddFillet* method. 
+@section occt_modalg_3a The Topology API
+  
+The Topology  API of Open  CASCADE Technology (**OCCT**) includes the following six packages: 
+  * *BRepAlgoAPI*
+  * *BRepBuilderAPI*
+  * *BRepFilletAPI*
+  * *BRepFeat*
+  * *BRepOffsetAPI*
+  * *BRepPrimAPI*
 
-A chamfer can be calculated with *AddChamfer* method. It can be  described by 
-  * two edges and two distances
-  * one edge, one vertex, one  distance and one angle.
-Fillets and chamfers are calculated when addition is  complete. 
+The classes provided by the API have the following features:
+  * The constructors of classes provide different construction methods;
+  * The class retains different tools used to build objects as fields;
+  * The class provides a casting method to obtain the result automatically with a function-like call.   
+  
+Let us use the class *BRepBuilderAPI_MakeEdge* to create a linear edge from two  points. 
 
-If face F2 is created by 2D fillet and chamfer builder from face F1, the builder can be rebuilt (the  builder recovers the status it had before deletion). To do so, use the  following syntax: 
 ~~~~~
-BRepFilletAPI_MakeFillet2d builder
-builder.Init(F1,F2); 
+gp_Pnt P1(10,0,0), P2(20,0,0)
+TopoDS_Edge E = BRepBuilderAPI_MakeEdge(P1,P2);
 ~~~~~
 
-Planar Fillet
--------------
+This is the simplest way to create edge E from two  points P1, P2, but the developer can test for errors when he is not as  confident of the data as in the previous example. 
 
 ~~~~~
-#include “BRepPrimAPI_MakeBox.hxx” 
-#include “TopoDS_Shape.hxx” 
-#include “TopExp_Explorer.hxx” 
-#include “BRepFilletAPI_MakeFillet2d.hxx” 
-#include “TopoDS.hxx” 
-#include “TopoDS_Solid.hxx” 
-
-TopoDS_Shape FilletFace(const Standard_Real a, 
-                                               const Standard_Real  b, 
-                                               const Standard_Real c, 
-                                               const Standard_Real  r) 
-
+#include <gp_Pnt.hxx> 
+#include <TopoDS_Edge.hxx> 
+#include <BRepBuilderAPI_MakeEdge.hxx> 
+void EdgeTest() 
 { 
-       TopoDS_Solid Box =  BRepPrimAPI_MakeBox (a,b,c); 
-       TopExp_Explorer  ex1(Box,TopAbs_FACE); 
-
-       const  TopoDS_Face& F = TopoDS::Face(ex1.Current()); 
-       BRepFilletAPI_MakeFillet2d  MF(F); 
-       TopExp_Explorer  ex2(F, TopAbs_VERTEX); 
-       while (ex2.More()) 
-       { 
-       MF.AddFillet(TopoDS::Vertex(ex2.Current()),r); 
-       ex2.Next(); 
-       } 
-       // while... 
-       return MF.Shape(); 
+gp_Pnt P1; 
+gp_Pnt P2; 
+BRepBuilderAPI_MakeEdge ME(P1,P2); 
+if (!ME.IsDone()) 
+{ 
+// doing ME.Edge() or E = ME here 
+// would raise StdFail_NotDone 
+Standard_DomainError::Raise 
+(“ProcessPoints::Failed to createan edge”); 
+} 
+TopoDS_Edge E = ME; 
 } 
 ~~~~~
 
-@section occt_modalg_7 Offsets, Drafts, Pipes and Evolved shapes
+In this example an  intermediary object ME has been introduced. This can be tested for the  completion of the function before accessing the result. More information on **error  handling** in the topology programming interface can be found in the next section. 
 
-These classes provide the following services:
+*BRepBuilderAPI_MakeEdge*  provides valuable information. For example, when creating an edge from two  points, two vertices have to be created from the points. Sometimes you may be  interested in getting these vertices quickly without exploring the new edge.  Such information can be provided when using a class. The following example  shows a function creating an edge and two vertices from two points. 
 
-  * Creation of offset shapes and their variants such as: 
-    * Hollowing; 
-    * Shelling; 
-    * Lofting; 
-  * Creation of tapered shapes using draft angles;
-  * Creation of sweeps.
-  
-@subsection occt_modalg_7_1 Offset computation
+~~~~~
+void MakeEdgeAndVertices(const gp_Pnt& P1, 
+const gp_Pnt& P2, 
+TopoDS_Edge& E, 
+TopoDS_Vertex& V1, 
+TopoDS_Vertex& V2) 
+{ 
+BRepBuilderAPI_MakeEdge ME(P1,P2); 
+if (!ME.IsDone()) { 
+Standard_DomainError::Raise 
+(“MakeEdgeAndVerices::Failed  to create an edge”); 
+} 
+E = ME; 
+V1 = ME.Vextex1(); 
+V2 = ME.Vertex2(); 
+~~~~~
 
-Offset computation can be performed using *BRepOffsetAPI_MakeOffsetShape*. This class provides API to the two different offset algorithms:
+The class *BRepBuilderAPI_MakeEdge*  provides two methods *Vertex1* and  *Vertex2*, which return two vertices used to create the edge. 
 
-Offset algorithm based on computation of the analytical continuation. Meaning of the  parameters can be found in *BRepOffsetAPI_MakeOffsetShape::PerformByJoin* method description. The list below demonstrates principal scheme of this algorithm:
+How can *BRepBuilderAPI_MakeEdge* be both a function and a class? It can do this  because it uses the casting capabilities of C++. The *BRepBuilderAPI_MakeEdge* class has a method called Edge; in the previous  example the line <i>E = ME</i> could have been written. 
 
-* At the first step, the offsets are computed.
-* After this, the analytical continuations are computed for each offset.
-* Pairwise intersection is computed according to the original topological information (sharing, number of neighbors, etc.).
-* The offset shape is assembled.
+~~~~~
+E = ME.Edge(); 
+~~~~~
 
-The second algorithm is based on the fact that the offset computation for a single face without continuation can always be built. The list below shows simple offset algorithm:
-* Each surface is mapped to its geometric offset surface.
-* For each edge, pcurves are mapped to the same pcurves on offset surfaces.
-* For each edge, 3d curve is constructed by re-approximation of pcurve on the first offset face.
-* Position of each vertex in a result shell is computed as average point of all ends of edges sharing that vertex.
-* Tolerances are updated according to the resulting geometry.
-The possible drawback of the simple algorithm is that it leads, in general case, to tolerance increasing. The tolerances have to grow in order to cover the gaps between the neighbor faces in the output. It should be noted that the actual tolerance growth depends on the offset distance and the quality of joints between the input faces. Anyway the good input shell (smooth connections between adjacent faces) will lead to good result.
+This instruction tells  the C++ compiler that there is an **implicit casting** of a *BRepBuilderAPI_MakeEdge* into a *TopoDS_Edge* using the *Edge* method. It means this method is automatically called when a *BRepBuilderAPI_MakeEdge* is found where a *TopoDS_Edge* is required. 
 
-The snippets below show usage examples:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    BRepOffsetAPI_MakeOffsetShape OffsetMaker1;
-    // Computes offset shape using analytical continuation mechanism.
-    OffsetMaker1.PerformByJoin(Shape, OffsetValue, Tolerance);
-    if (OffsetMaker1.IsDone())
-      NewShape = OffsetMaker1.Shape();
-    
-    BRepOffsetAPI_MakeOffsetShape OffsetMaker2;
-    // Computes offset shape using simple algorithm.
-    OffsetMaker2.PerformBySimple(Shape, OffsetValue);
-    if (OffsetMaker2.IsDone())
-      NewShape = OffsetMaker2.Shape();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+This feature allows you  to provide classes, which have the simplicity of function calls when required  and the power of classes when advanced processing is necessary. All the  benefits of this approach are explained when describing the topology programming  interface classes. 
 
-@subsection occt_modalg_7_2 Shelling 
 
-Shelling is used to offset given faces of a solid by a specific value. It rounds or intersects adjacent faces along its edges depending on the convexity of the edge. 
-The MakeThickSolidByJoin method of the *BRepOffsetAPI_MakeThickSolid* takes the solid, the list of faces to remove and an offset value as input.
-
-~~~~~
-TopoDS_Solid SolidInitial = ...;
-
-Standard_Real                  Of              = ...;
-TopTools_ListOfShape   LCF;
-TopoDS_Shape                   Result;
-Standard_Real                  Tol = Precision::Confusion();
+@subsection occt_modalg_hist History support
 
-for (Standard_Integer i = 1 ;i <= n; i++) {
-       TopoDS_Face SF = ...; // a face from SolidInitial
-       LCF.Append(SF);
-}
+All topological API algorithms support the history of shape modifications (or just History) for their arguments.
+Generally, the history is available for the following types of sub-shapes of input shapes:
+* Vertex;
+* Edge;
+* Face.
 
-BRepOffsetAPI_MakeThickSolid SolidMaker;
-SolidMaker.MakeThickSolidByJoin(SolidInitial,
-                                LCF,
-                                Of,
-                                Tol);
-if (SolidMaker.IsDone())
-  Result = SolidMaker.Shape();
-~~~~~
+Some algorithms also support the history for Solids.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image042.png,"Shelling",420}
+The history information consists of the following information:
+* Information about Deleted shapes;
+* Information about Modified shapes;
+* Information about Generated shapes.
 
-Also it is possible to create solid between shell, offset shell. This functionality can be called using *BRepOffsetAPI_MakeThickSolid::MakeThickSolidBySimple* method. The code below shows usage example:
+The History is filled basing on the result of the operation. History cannot return any shapes not contained in the result.
+If the result of the operation is an empty shape, all input shapes will be considered as Deleted and none will have Modified and Generated shapes.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    BRepOffsetAPI_MakeThickSolid SolidMaker;
-    SolidMaker.MakeThickSolidBySimple(Shell, OffsetValue);
-    if (myDone.IsDone())
-      Solid = SolidMaker.Shape();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The history information can be accessed by the API methods:
+* *Standard_Boolean IsDeleted(const TopoDS_Shape& theS)* - to check if the shape has been Deleted during the operation;
+* *const TopTools_ListOfShape& Modified(const TopoDS_Shape& theS)* - to get the shapes Modified from the given shape;
+* *const TopTools_ListOfShape& Generated(const TopoDS_Shape& theS)* - to get the shapes Generated from the given shape.
 
-@subsection occt_modalg_7_3  Draft Angle
+@subsubsection occt_modalg_hist_del Deleted shapes
 
-*BRepOffsetAPI_DraftAngle* class allows modifying a shape by applying draft angles to its planar, cylindrical and conical faces. 
+The shape is considered as Deleted during the operation if all of the following conditions are met:
+* The shape is a part of the argument shapes of the operation;
+* The result shape does not contain the shape itself;
+* The result shape does not contain any of the splits of the shape.
 
+For example, in the CUT operation between two intersecting solids all vertices/edges/faces located completely inside the Tool solid will be Deleted during the operation.
 
-The class is created or  initialized from a shape, then faces to be modified are added; for each face,  three arguments are used: 
-  * Direction: the direction with  which the draft angle is measured
-  * Angle: value of the angle
-  * Neutral plane: intersection  between the face and the neutral plane is invariant.
+@subsubsection occt_modalg_hist_mod Modified shapes
 
-The following code  places a draft angle on several faces of a shape; the same direction, angle and  neutral plane are used for each face: 
+The shape is considered as Modified during the operation if the result shape contains the splits of the shape, not the shape itself. The shape can be modified only into the shapes with the same dimension.
+The splits of the shape contained in the result shape are Modified from the shape.
+The Modified shapes are created from the sub-shapes of the input shapes and, generally, repeat their geometry.
 
-~~~~~
-TopoDS_Shape myShape = ... 
-// The original shape 
-TopTools_ListOfShape ListOfFace; 
-// Creation of the list of faces to be modified 
-... 
+The list of Modified elements will contain only those contributing to the result of the operation. If the list is empty, the shape has not been modified and it is necessary to check if it has been Deleted.
 
-gp_Dir Direc(0.,0.,1.); 
-// Z direction 
-Standard_Real Angle = 5.*PI/180.; 
-// 5 degree angle 
-gp_Pln Neutral(gp_Pnt(0.,0.,5.), Direc); 
-// Neutral plane Z=5 
-BRepOffsetAPI_DraftAngle theDraft(myShape); 
-TopTools_ListIteratorOfListOfShape itl; 
-for (itl.Initialize(ListOfFace); itl.More(); itl.Next())  { 
-       theDraft.Add(TopoDS::Face(itl.Value()),Direc,Angle,Neutral); 
-       if  (!theDraft.AddDone()) { 
-               // An error has occurred. The faulty face is given by //  ProblematicShape 
-               break; 
-               } 
-} 
-if (!theDraft.AddDone()) { 
-       // An error has  occurred 
-       TopoDS_Face guilty =  theDraft.ProblematicShape(); 
-       ... 
-} 
-theDraft.Build(); 
-if (!theDraft.IsDone()) { 
-       // Problem  encountered during reconstruction 
-       ... 
-} 
-else { 
-       TopoDS_Shape  myResult = theDraft.Shape(); 
-       ... 
-} 
-~~~~~
+For example, after translation of the shape in any direction all its sub-shapes will be modified into their translated copies.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image043.png,"DraftAngle",420}
+@subsubsection occt_modalg_hist_gen Generated shapes
 
-@subsection occt_modalg_7_4 Pipe  Constructor
+The shapes contained in the result shape are considered as Generated from the input shape if they were produced during the operation and have a different dimension from the shapes from which they were created.
 
-*BRepOffsetAPI_MakePipe* class allows creating a pipe from a Spine,  which is a Wire and a Profile which is a Shape. This implementation is limited  to spines with smooth transitions, sharp transitions are precessed by  *BRepOffsetAPI_MakePipeShell*. To be more precise the continuity must be G1,  which means that the tangent must have the same direction, though not necessarily the same magnitude, at neighboring edges. 
+The list of Generated elements will contain only those included in the result of the operation. If the list is empty, no new shapes have been Generated from the shape.
 
-The angle between the spine and the profile is preserved throughout the pipe. 
+For example, extrusion of the edge in some direction will create a face. This face will be generated from the edge.
 
-~~~~~
-TopoDS_Wire Spine = ...; 
-TopoDS_Shape Profile = ...; 
-TopoDS_Shape Pipe =  BRepOffsetAPI_MakePipe(Spine,Profile); 
-~~~~~
+@subsubsection occt_modalg_hist_tool BRepTools_History
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image044.png,"Example of a Pipe",320}
+*BRepTools_History* is the general History tool intended for unification of the histories of different algorithms.
 
-@subsection occt_modalg_7_5 Evolved Solid
+*BRepTools_History* can be created from any algorithm supporting the standard history methods *(IsDeleted(), Modified()* and *Generated())*:
+~~~~
+// The arguments of the operation
+TopoDS_Shape aS = ...;
 
-*BRepOffsetAPI_MakeEvolved* class allows creating an evolved solid from a Spine (planar face or wire) and a profile (wire). 
+// Perform transformation on the shape
+gp_Trsf aTrsf;
+aTrsf.SetTranslationPart(gp_Vec(0, 0, 1));
+BRepBuilderAPI_Transform aTransformer(aS, aTrsf); // Transformation API algorithm
+const TopoDS_Shape& aRes = aTransformer.Shape();
 
-The evolved solid is an unlooped sweep generated by the spine and the profile. 
+// Create the translation history object
+TopTools_ListOfShape anArguments;
+anArguments.Append(aS);
+BRepTools_History aHistory(anArguments, aTransformer);
+~~~~
 
-The evolved solid is  created by sweeping the profile’s reference axes on the spine. The origin of  the axes moves to the spine, the X axis and the local tangent coincide and the  Z axis is normal to the face. 
+*BRepTools_History* also allows merging histories. Thus, if you have two or more subsequent operations you can get one final history combined from histories of these operations:
 
-The reference axes of  the profile can be defined following two distinct modes: 
+~~~~
+Handle(BRepTools_History) aHist1 = ...; // History of first operation
+Handle(BRepTools_History) aHist2 = ...; // History of second operation
+~~~~
 
-* The reference axes of the  profile are the origin axes. 
-* The references axes of  the profile are calculated as follows: 
-  + the origin is given by the  point on the spine which is the closest to the profile
-  + the X axis is given by the  tangent to the spine at the point defined above
-  + the Z axis is the normal to  the plane which contains the spine.
+It is possible to merge the second history into the first one:
+~~~~
+aHist1->Merge(aHist2);
+~~~~
 
-~~~~~
-TopoDS_Face Spine = ...; 
-TopoDS_Wire Profile = ...; 
-TopoDS_Shape Evol = 
-BRepOffsetAPI_MakeEvolved(Spine,Profile); 
-~~~~~
+Or create the new history keeping the two histories unmodified:
+~~~~
+Handle(BRepTools_History) aResHistory = new BRepTools_History;
+aResHistory->Merge(aHist1);
+aResHistory->Merge(aHist2);
+~~~~
 
-@section occt_modalg_8 Sewing
+The possibilities of Merging histories and history creation from the API algorithms allow providing easy History support for the new algorithms.
 
-@subsection occt_modalg_8_1 Introduction
+@subsubsection occt_modalg_hist_draw DRAW history support
 
-Sewing allows creation of connected topology (shells and wires) from a set of separate topological elements (faces and edges). For example, Sewing can be used to create of shell from a compound of separate faces. 
+DRAW History support for the algorithms is provided by three basic commands:
+* *isdeleted*; 
+* *modified*;
+* *generated*.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image045.png,"Shapes with partially shared edges",320}
+For more information on the Draw History mechanism, refer to the corresponding chapter in the Draw users guide - @ref occt_draw_hist "History commands".
 
-It is important to distinguish between sewing and other procedures, which modify the geometry, such as filling holes or gaps, gluing, bending curves and surfaces, etc.
+@subsection occt_modalg_6 Fillets and  Chamfers
 
-Sewing does not change geometrical representation of the shapes. Sewing applies to topological elements (faces, edges) which are not connected but can be connected because they are geometrically coincident : it adds the information about topological connectivity. Already connected elements are left untouched in case of manifold sewing.
+This library provides algorithms to make fillets and chamfers on shape edges.
+The following cases are addressed:
 
-Let us define several terms:
-* **Floating edges** do not belong to any face;
-* **Free boundaries** belong to one face only;
-* **Shared edges** belong to several faces, (i.e. two faces in a manifold topology).
-* **Sewn faces** should have edges shared with each other.
-* **Sewn edges** should have vertices shared with each other.
+  * Corners and apexes with different radii; 
+  * Corners and apexes with different concavity. 
 
-@subsection occt_modalg_8_2 Sewing Algorithm
+If there is a concavity, both surfaces that need to be extended and those, which do not, are processed.
 
-The sewing algorithm is one of the basic algorithms used for shape processing, therefore its quality is very important.
+@subsubsection occt_modalg_6_1 Fillets  
+@subsubsection occt_modalg_6_1_1 Fillet on shape
 
-Sewing algorithm is implemented in the class *BRepBuilder_Sewing*. This class provides the following methods: 
-* loading initial data for global or local sewing; 
-* setting customization parameters, such as special operation modes, tolerances and output results;
-* applying analysis methods that can be used to obtain connectivity data required by external algorithms;
-* sewing of the loaded shapes. 
+A fillet is a smooth  face replacing a sharp edge.
 
-Sewing supports working mode with big value tolerance. It is not necessary to repeat sewing step by step while smoothly increasing tolerance.
+*BRepFilletAPI_MakeFillet* class allows filleting a shape.  
 
-It is also possible to sew edges to wire and to sew locally separate faces and edges from a shape.
+To produce a fillet, it is necessary to define the filleted shape at the construction of the class and  add fillet  descriptions using the *Add* method.
 
-The Sewing algorithm can be subdivided into several independent stages, some of which can be turned on or off using Boolean or other flags. 
+A fillet description contains an edge and a  radius. The edge must be shared by two faces. The fillet is automatically extended to all edges in a smooth continuity with the original  edge. It is not an error to add a fillet twice,  the last description holds. 
 
-In brief, the algorithm should find a set of merge candidates for each free boundary, filter them according to certain criteria, and finally merge the found candidates and  build the resulting sewn shape.
+@figure{/user_guides/modeling_algos/images/modeling_algos_image038.png,"Filleting two edges using radii r1 and  r2.",360}
 
-Each stage of the algorithm or the whole algorithm can be adjusted with the following parameters: 
-* **Working tolerance** defines the maximal distance between topological elements which can be sewn. It is not ultimate that such elements will  be actually sewn as many other criteria are applied to make the final decision.
-* **Minimal tolerance** defines the size of the smallest element (edge) in the resulting shape. It is declared that no edges with size less than this value are created after sewing. If encountered, such topology becomes degenerated.
-* **Non-manifold mode** enables sewing of non-manifold topology. 
+In the following example  a filleted box with dimensions a,b,c and radius r is created. 
 
-#### Example
+### Constant  radius 
 
-To connect a set of *n* contiguous but independent faces, do the following: 
 
 ~~~~~
-    BRepBuilderAPI_Sewing Sew;
-    Sew.Add(Face1); 
-    Sew.Add(Face2); 
-    ...
-    Sew.Add(Facen); 
-    Sew.Perform();
-    TopoDS_Shape result= Sew.SewedShape();
-~~~~~
-
-If all faces have been sewn correctly, the result is a shell. Otherwise, it is a compound. After a successful sewing operation all faces have a coherent orientation.
+#include <TopoDS_Shape.hxx> 
+#include <TopoDS.hxx> 
+#include <BRepPrimAPI_MakeBox.hxx> 
+#include <TopoDS_Solid.hxx> 
+#include <BRepFilletAPI_MakeFillet.hxx> 
+#include <TopExp_Explorer.hxx> 
 
-@subsection occt_modalg_8_3 Tolerance Management
+TopoDS_Shape FilletedBox(const Standard_Real a, 
+                                               const Standard_Real  b, 
+                                               const Standard_Real  c, 
+                                               const Standard_Real  r) 
+{ 
+       TopoDS_Solid Box =  BRepPrimAPI_MakeBox(a,b,c); 
+       BRepFilletAPI_MakeFillet  MF(Box); 
 
-To produce a closed shell, Sewing allows specifying the value of working tolerance, exceeding the size of small faces belonging to the shape.
+       // add all the edges  to fillet 
+       TopExp_Explorer  ex(Box,TopAbs_EDGE); 
+       while (ex.More()) 
+       { 
+       MF.Add(r,TopoDS::Edge(ex.Current())); 
+       ex.Next(); 
+       } 
+       return MF.Shape(); 
+       } 
+~~~~~
 
-However, if we produce an open shell, it is possible to get incorrect sewing results if the value of working tolerance is too large (i.e. it exceeds the size of faces lying on an open boundary).
+@figure{/user_guides/modeling_algos/images/modeling_algos_image039.png,"Fillet with constant radius",360}
 
-The following recommendations can be proposed for tuning-up the sewing process:
-- Use as small working tolerance as possible. This will reduce the sewing time and, consequently, the number of incorrectly sewn edges for shells with free boundaries.
-- Use as large minimal tolerance as possible. This will reduce the number of small geometry in the shape, both original and appearing after cutting.
-- If it is expected to obtain a shell with holes (free boundaries) as a result of sewing, the working tolerance should be set to a value not greater than the size of the smallest element (edge) or smallest distance between elements of such free boundary. Otherwise the free boundary may be sewn only partially.
-- It should  be mentioned that the Sewing algorithm is unable to understand which small (less than working tolerance) free boundary should be kept and which should be sewn.
+#### Changing radius
 
-@subsection occt_modalg_8_4 Manifold and Non-manifold Sewing
 
-To create one or several shells from a set of faces, sewing merges edges, which belong to different faces or one closed face. 
+~~~~~
+void CSampleTopologicalOperationsDoc::OnEvolvedblend1() 
+{ 
+       TopoDS_Shape theBox  = BRepPrimAPI_MakeBox(200,200,200); 
 
-Face sewing supports manifold and non manifold modes. Manifold mode can produce only a manifold shell. Sewing should be used in the non manifold mode to create non manifold shells.
+       BRepFilletAPI_MakeFillet  Rake(theBox); 
+       ChFi3d_FilletShape  FSh = ChFi3d_Rational; 
+       Rake.SetFilletShape(FSh); 
 
-Manifold sewing of faces merges only two nearest edges belonging to different faces or one closed face with each other. Non manifold sewing of faces merges all edges at a distance less than the specified tolerance.
-
-For a complex topology it is advisable to apply first the manifold sewing and then the non manifold sewing a minimum possible working tolerance. However, this is not necessary for a easy topology. 
-
-Giving a large tolerance value to non manifold sewing will cause a lot of incorrectness since all nearby geometry will be sewn.
-
-@subsection occt_modalg_8_5 Local Sewing
-
-If a shape still has some non-sewn faces or edges after sewing, it is possible to use local sewing with a greater tolerance.
+       TColgp_Array1OfPnt2d  ParAndRad(1, 6); 
+       ParAndRad(1).SetCoord(0.,  10.); 
+       ParAndRad(1).SetCoord(50.,  20.); 
+       ParAndRad(1).SetCoord(70.,  20.); 
+       ParAndRad(1).SetCoord(130.,  60.); 
+       ParAndRad(1).SetCoord(160.,  30.); 
+       ParAndRad(1).SetCoord(200.,  20.); 
 
-Local sewing is especially good for open shells. It allows sewing an unwanted hole in one part of the shape and keeping a required hole, which is smaller than the working tolerance specified for the local sewing in the other part of the shape. Local sewing is much faster than sewing on the whole shape.
+       TopExp_Explorer  ex(theBox,TopAbs_EDGE); 
+       Rake.Add(ParAndRad, TopoDS::Edge(ex.Current())); 
+       TopoDS_Shape  evolvedBox = Rake.Shape(); 
+} 
+~~~~~
 
-All preexisting connections of the whole shape are kept after local sewing. 
+@figure{/user_guides/modeling_algos/images/modeling_algos_image040.png,"Fillet with changing radius",360}
+@subsubsection occt_modalg_6_1_2 Chamfer
 
-For example, if you want to sew two open shells having coincided free edges using local sewing, it is necessary to create a compound from two shells then load the full compound using method *BRepBuilderAPI_Sewing::Load()*. After that it is necessary to add local sub-shapes, which should be sewn using method *BRepBuilderAPI_Sewing::Add()*. The result of sewing can be obtained using method *BRepBuilderAPI_Sewing::SewedShape()*.
+A chamfer is a rectilinear edge  replacing a sharp vertex of the face.
 
-See the example:
+The use of *BRepFilletAPI_MakeChamfer* class is similar to the use of  *BRepFilletAPI_MakeFillet*, except for the following: 
+* The surfaces created are  ruled and not smooth. 
+* The *Add* syntax for  selecting edges requires one or two distances, one edge and one face  (contiguous to the edge).
 
-~~~~
+~~~~~ 
+Add(dist,  E, F) 
+Add(d1,  d2, E, F) with d1 on the face F. 
+~~~~~
 
-//initial sewn shapes
-TopoDS_Shape aS1, aS2;  // these shapes are expected to be well sewn shells
-TopoDS_Shape aComp;
-BRep_Builder aB;
-aB.MakeCompound(aComp);
-aB.Add(aComp, aS1);
-aB.Add(aComp, aS2);
-................................
-aSewing.Load(aComp);
+@figure{/user_guides/modeling_algos/images/modeling_algos_image041.png,"Chamfer",360}
 
-//sub shapes which should be locally sewed
-aSewing.Add(aF1);
-aSewing.Add(aF2);
-//performing sewing
-aSewing.Perform();
-//result shape
-TopoDS_Shape aRes = aSewing.SewedShape();
+@subsubsection occt_modalg_6_1_3 Fillet on a planar face
 
-~~~~
+*BRepFilletAPI_MakeFillet2d* class allows constructing fillets and chamfers on planar faces. 
+To create a fillet on planar face: define it, indicate, which vertex is  to be deleted, and give the fillet radius with *AddFillet* method. 
 
-@section occt_modalg_9 Features
+A chamfer can be calculated with *AddChamfer* method. It can be  described by 
+  * two edges and two distances
+  * one edge, one vertex, one  distance and one angle.
+Fillets and chamfers are calculated when addition is  complete. 
 
-This library contained in *BRepFeat* package is necessary for creation and manipulation of form and mechanical features that go beyond the classical boundary representation of shapes. In that sense, *BRepFeat* is an extension of *BRepBuilderAPI* package. 
+If face F2 is created by 2D fillet and chamfer builder from face F1, the builder can be rebuilt (the  builder recovers the status it had before deletion). To do so, use the  following syntax: 
+~~~~~
+BRepFilletAPI_MakeFillet2d builder; 
+builder.Init(F1,F2); 
+~~~~~
 
-@subsection occt_modalg_9_1 Form Features
+Planar Fillet
+-------------
 
-The form features are depressions or protrusions including the following types:
+~~~~~
+#include “BRepPrimAPI_MakeBox.hxx” 
+#include “TopoDS_Shape.hxx” 
+#include “TopExp_Explorer.hxx” 
+#include “BRepFilletAPI_MakeFillet2d.hxx” 
+#include “TopoDS.hxx” 
+#include “TopoDS_Solid.hxx” 
 
-  * Cylinder;
-  * Draft Prism;
-  * Prism;
-  * Revolved feature;
-  * Pipe.
+TopoDS_Shape FilletFace(const Standard_Real a, 
+                                               const Standard_Real  b, 
+                                               const Standard_Real c, 
+                                               const Standard_Real  r) 
 
-Depending on whether you wish to make a depression or a protrusion, 
-you can choose either to remove matter (Boolean cut: Fuse equal to 0) or to add it (Boolean fusion: Fuse equal to 1).
+{ 
+       TopoDS_Solid Box =  BRepPrimAPI_MakeBox (a,b,c); 
+       TopExp_Explorer  ex1(Box,TopAbs_FACE); 
 
-The semantics of form feature creation is based on the construction of shapes:
+       const  TopoDS_Face& F = TopoDS::Face(ex1.Current()); 
+       BRepFilletAPI_MakeFillet2d  MF(F); 
+       TopExp_Explorer  ex2(F, TopAbs_VERTEX); 
+       while (ex2.More()) 
+       { 
+       MF.AddFillet(TopoDS::Vertex(ex2.Current()),r); 
+       ex2.Next(); 
+       } 
+       // while... 
+       return MF.Shape(); 
+} 
+~~~~~
 
-  * for a certain length in a certain direction;
-  * up to the limiting face;
-  * from the limiting face at a height;
-  * above and/or below a plane.
+@subsection occt_modalg_7 Offsets, Drafts, Pipes and Evolved shapes
 
-The shape defining the construction of a feature can be either a supporting edge or a concerned area of a face.
+These classes provide the following services:
 
-In case of supporting edge, this contour can be attached to a face of the basis shape by binding. When the contour is bound to this face, the information that the contour will slide on the face becomes available 
-to the relevant class methods. In case of the concerned area of a face, you can, for example, cut it out and move it at a different height, which defines the limiting face of a protrusion or depression.
+  * Creation of offset shapes and their variants such as: 
+    * Hollowing; 
+    * Shelling; 
+    * Lofting; 
+  * Creation of tapered shapes using draft angles;
+  * Creation of sweeps.
+  
+@subsubsection occt_modalg_7_1 Offset computation
 
-Topological definition with local operations of this sort makes calculations simpler 
-and faster than a global operation. The latter would entail a second phase 
-of removing unwanted matter to get the same result.
+Offset computation can be performed using *BRepOffsetAPI_MakeOffsetShape*. This class provides API to the two different offset algorithms:
 
-The *Form* from *BRepFeat* package is a deferred class used as a root for form features. It inherits  *MakeShape* from *BRepBuilderAPI* and provides implementation of methods keep track of all sub-shapes. 
+Offset algorithm based on computation of the analytical continuation. Meaning of the  parameters can be found in *BRepOffsetAPI_MakeOffsetShape::PerformByJoin* method description. The list below demonstrates principal scheme of this algorithm:
 
-@subsubsection occt_modalg_9_1_1 Prism
+* At the first step, the offsets are computed.
+* After this, the analytical continuations are computed for each offset.
+* Pairwise intersection is computed according to the original topological information (sharing, number of neighbors, etc.).
+* The offset shape is assembled.
 
-The class *BRepFeat_MakePrism* is used to build a prism interacting with a shape. It is created  or initialized from 
-  * a shape (the basic shape),
-  * the base of the prism,
-  * a face (the face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
-  * a direction,
-  * a Boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
-  * another Boolean indicating if  the self-intersections have to be found (not used in every case).
+The second algorithm is based on the fact that the offset computation for a single face without continuation can always be built. The list below shows simple offset algorithm:
+* Each surface is mapped to its geometric offset surface.
+* For each edge, pcurves are mapped to the same pcurves on offset surfaces.
+* For each edge, 3d curve is constructed by re-approximation of pcurve on the first offset face.
+* Position of each vertex in a result shell is computed as average point of all ends of edges sharing that vertex.
+* Tolerances are updated according to the resulting geometry.
+The possible drawback of the simple algorithm is that it leads, in general case, to tolerance increasing. The tolerances have to grow in order to cover the gaps between the neighbor faces in the output. It should be noted that the actual tolerance growth depends on the offset distance and the quality of joints between the input faces. Anyway the good input shell (smooth connections between adjacent faces) will lead to good result.
 
-There are six Perform  methods: 
-| Method | Description |
-| :---------------------- | :------------------------------------- |
-| *Perform(Height)*       | The  resulting prism is of the given length. |
-| *Perform(Until)*        | The  prism is defined between the position of the base and the given face. |
-| *Perform(From, Until)*  | The  prism is defined between the two faces From and Until. |
-| *PerformUntilEnd()*     | The  prism is semi-infinite, limited by the actual position of the base. |
-| *PerformFromEnd(Until)* | The  prism is semi-infinite, limited by the face Until. |
-| *PerformThruAll()*     | The  prism is infinite. In the case of a depression, the result is similar to a cut  with an infinite prism. In the case of a protrusion, infinite parts are not  kept in the result. |
+The snippets below show usage examples:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+    BRepOffsetAPI_MakeOffsetShape OffsetMaker1;
+    // Computes offset shape using analytical continuation mechanism.
+    OffsetMaker1.PerformByJoin(Shape, OffsetValue, Tolerance);
+    if (OffsetMaker1.IsDone())
+      NewShape = OffsetMaker1.Shape();
+    
+    BRepOffsetAPI_MakeOffsetShape OffsetMaker2;
+    // Computes offset shape using simple algorithm.
+    OffsetMaker2.PerformBySimple(Shape, OffsetValue);
+    if (OffsetMaker2.IsDone())
+      NewShape = OffsetMaker2.Shape();
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-**Note** that *Add* method can be used before *Perform* methods to indicate that a face  generated by an edge slides onto a face of the base shape.
+@subsubsection occt_modalg_7_2 Shelling 
 
-In the following  sequence, a protrusion is performed, i.e. a face of the shape is changed into a  prism. 
+Shelling is used to offset given faces of a solid by a specific value. It rounds or intersects adjacent faces along its edges depending on the convexity of the edge. 
+The MakeThickSolidByJoin method of the *BRepOffsetAPI_MakeThickSolid* takes the solid, the list of faces to remove and an offset value as input.
 
 ~~~~~
-TopoDS_Shape Sbase = ...;  // an initial shape 
-TopoDS_Face Fbase = ....; // a base of prism 
-
-gp_Dir Extrusion (.,.,.); 
+TopoDS_Solid SolidInitial = ...;
 
-// An empty face is given as the sketch face 
+Standard_Real                  Of              = ...;
+TopTools_ListOfShape   LCF;
+TopoDS_Shape                   Result;
+Standard_Real                  Tol = Precision::Confusion();
 
-BRepFeat_MakePrism thePrism(Sbase, Fbase, TopoDS_Face(),  Extrusion, Standard_True, Standard_True); 
+for (Standard_Integer i = 1 ;i <= n; i++) {
+       TopoDS_Face SF = ...; // a face from SolidInitial
+       LCF.Append(SF);
+}
 
-thePrism, Perform(100.); 
-if (thePrism.IsDone()) { 
-       TopoDS_Shape  theResult = thePrism; 
-       ... 
-} 
+BRepOffsetAPI_MakeThickSolid SolidMaker;
+SolidMaker.MakeThickSolidByJoin(SolidInitial,
+                                LCF,
+                                Of,
+                                Tol);
+if (SolidMaker.IsDone())
+  Result = SolidMaker.Shape();
 ~~~~~
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image047.png,"Fusion with MakePrism",320}
-
-@figure{/user_guides/modeling_algos/images/modeling_algos_image048.png,"Creating a prism between two faces with Perform()",320}
+@figure{/user_guides/modeling_algos/images/modeling_algos_image042.png,"Shelling",420}
 
-@subsubsection occt_modalg_9_1_2 Draft Prism
+Also it is possible to create solid between shell, offset shell. This functionality can be called using *BRepOffsetAPI_MakeThickSolid::MakeThickSolidBySimple* method. The code below shows usage example:
 
-The class *BRepFeat_MakeDPrism* is used to build draft prism topologies interacting with a basis  shape. These can be depressions or protrusions. A class object is created or  initialized from: 
-  * a shape (basic shape),
-  * the base of the prism,
-  * a face (face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
-  * an angle,
-  * a Boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
-  * another Boolean indicating if  self-intersections have to be found (not used in every case).
-  
-Evidently the input data  for MakeDPrism are the same as for MakePrism except for a new parameter Angle  and a missing parameter Direction: the direction of the prism generation is  determined automatically as the normal to the base of the prism. 
-The semantics of draft  prism feature creation is based on the construction of shapes: 
-  * along a length
-  * up to a limiting face
-  * from a limiting face to a  height.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+    BRepOffsetAPI_MakeThickSolid SolidMaker;
+    SolidMaker.MakeThickSolidBySimple(Shell, OffsetValue);
+    if (myDone.IsDone())
+      Solid = SolidMaker.Shape();
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-The shape defining  construction of the draft prism feature can be either the supporting edge or the concerned area of a face. 
+@subsubsection occt_modalg_7_3  Draft Angle
 
-In case of the  supporting edge, this contour can be attached to a face of the basis shape by  binding. When the contour is bound to this face, the information that the  contour will slide on the face becomes available to the relevant class methods. 
-In case of the  concerned area of a face, it is possible to cut it out and move it to a  different height, which will define the limiting face of a protrusion or depression direction . 
+*BRepOffsetAPI_DraftAngle* class allows modifying a shape by applying draft angles to its planar, cylindrical and conical faces. 
 
-The *Perform* methods are the same as for *MakePrism*. 
 
-~~~~~
-TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.); 
-TopExp_Explorer Ex; 
-Ex.Init(S,TopAbs_FACE); 
-Ex.Next(); 
-Ex.Next(); 
-Ex.Next(); 
-Ex.Next(); 
-Ex.Next(); 
-TopoDS_Face F = TopoDS::Face(Ex.Current()); 
-Handle(Geom_Surface) surf = BRep_Tool::Surface(F); 
-gp_Circ2d 
-c(gp_Ax2d(gp_Pnt2d(200.,130.),gp_Dir2d(1.,0.)),50.); 
-BRepBuilderAPI_MakeWire MW; 
-Handle(Geom2d_Curve) aline = new Geom2d_Circle(c); 
-MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,PI)); 
-MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,PI,2.*PI)); 
-BRepBuilderAPI_MakeFace MKF; 
-MKF.Init(surf,Standard_False); 
-MKF.Add(MW.Wire()); 
-TopoDS_Face FP = MKF.Face(); 
-BRepLib::BuildCurves3d(FP); 
-BRepFeat_MakeDPrism MKDP (S,FP,F,10*PI180,Standard_True, 
-                                                       Standard_True); 
-MKDP.Perform(200); 
-TopoDS_Shape res1 = MKDP.Shape(); 
-~~~~~
+The class is created or  initialized from a shape, then faces to be modified are added; for each face,  three arguments are used: 
+  * Direction: the direction with  which the draft angle is measured
+  * Angle: value of the angle
+  * Neutral plane: intersection  between the face and the neutral plane is invariant.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image049.png,"A tapered prism",320}
+The following code  places a draft angle on several faces of a shape; the same direction, angle and  neutral plane are used for each face: 
 
-@subsubsection occt_modalg_9_1_3 Revolution
+~~~~~
+TopoDS_Shape myShape = ... 
+// The original shape 
+TopTools_ListOfShape ListOfFace; 
+// Creation of the list of faces to be modified 
+... 
 
-The class *BRepFeat_MakeRevol* is used to build a revolution interacting with a shape. It is created or initialized from:
-  * a shape (the basic shape,)
-  * the base of the revolution,
-  * a face (the face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
-  * an axis of revolution,
-  * a boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
-  * another boolean indicating  whether the self-intersections have to be found (not used in every case).
+gp_Dir Direc(0.,0.,1.); 
+// Z direction 
+Standard_Real Angle = 5.*PI/180.; 
+// 5 degree angle 
+gp_Pln Neutral(gp_Pnt(0.,0.,5.), Direc); 
+// Neutral plane Z=5 
+BRepOffsetAPI_DraftAngle theDraft(myShape); 
+TopTools_ListIteratorOfListOfShape itl; 
+for (itl.Initialize(ListOfFace); itl.More(); itl.Next())  { 
+       theDraft.Add(TopoDS::Face(itl.Value()),Direc,Angle,Neutral); 
+       if  (!theDraft.AddDone()) { 
+               // An error has occurred. The faulty face is given by //  ProblematicShape 
+               break; 
+               } 
+} 
+if (!theDraft.AddDone()) { 
+       // An error has  occurred 
+       TopoDS_Face guilty =  theDraft.ProblematicShape(); 
+       ... 
+} 
+theDraft.Build(); 
+if (!theDraft.IsDone()) { 
+       // Problem  encountered during reconstruction 
+       ... 
+} 
+else { 
+       TopoDS_Shape  myResult = theDraft.Shape(); 
+       ... 
+} 
+~~~~~
 
-There are four Perform  methods: 
-| Method | Description |
-| :--------------- | :------------ |
-| *Perform(Angle)*       | The  resulting revolution is of the given magnitude. |
-| *Perform(Until)*       | The  revolution is defined between the actual position of the base and the given face. |
-| *Perform(From, Until)* | The  revolution is defined between the two faces, From and Until. |
-| *PerformThruAll()*     |          The  result is similar to Perform(2*PI). |
+@figure{/user_guides/modeling_algos/images/modeling_algos_image043.png,"DraftAngle",420}
 
-**Note** that *Add* method can be used before *Perform* methods to indicate that a face  generated by an edge slides onto a face of the base shape.
+@subsubsection occt_modalg_7_4 Pipe  Constructor
 
+*BRepOffsetAPI_MakePipe* class allows creating a pipe from a Spine,  which is a Wire and a Profile which is a Shape. This implementation is limited  to spines with smooth transitions, sharp transitions are precessed by  *BRepOffsetAPI_MakePipeShell*. To be more precise the continuity must be G1,  which means that the tangent must have the same direction, though not necessarily the same magnitude, at neighboring edges. 
 
-In the following sequence, a face is revolved and  the revolution is limited by a face of the base shape. 
+The angle between the spine and the profile is preserved throughout the pipe. 
 
 ~~~~~
-TopoDS_Shape Sbase = ...;  // an initial shape 
-TopoDS_Face Frevol = ....; // a base of prism 
-TopoDS_Face FUntil = ....; // face limiting the revol 
-
-gp_Dir RevolDir (.,.,.); 
-gp_Ax1 RevolAx(gp_Pnt(.,.,.), RevolDir); 
-
-// An empty face is given as the sketch face 
-
-BRepFeat_MakeRevol theRevol(Sbase, Frevol, TopoDS_Face(), RevolAx,  Standard_True, Standard_True); 
-
-theRevol.Perform(FUntil); 
-if (theRevol.IsDone()) { 
-       TopoDS_Shape  theResult = theRevol; 
-       ... 
-} 
+TopoDS_Wire Spine = ...; 
+TopoDS_Shape Profile = ...; 
+TopoDS_Shape Pipe =  BRepOffsetAPI_MakePipe(Spine,Profile); 
 ~~~~~
 
-@subsubsection occt_modalg_9_1_4 Pipe
+@figure{/user_guides/modeling_algos/images/modeling_algos_image044.png,"Example of a Pipe",320}
 
-The class *BRepFeat_MakePipe* constructs compound  shapes with pipe features: depressions or protrusions. A class object is created or initialized from: 
-  * a shape (basic shape),
-  * a base face (profile of the  pipe)
-  * a face (face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
-  * a spine wire
-  * a Boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
-  * another Boolean indicating if  self-intersections have to be found (not used in every case).
+@subsubsection occt_modalg_7_5 Evolved Solid
 
-There are three Perform  methods: 
-| Method | Description |
-| :-------- | :---------- |
-| *Perform()*            | The  pipe is defined along the entire path (spine wire)   |
-| *Perform(Until)*       | The  pipe is defined along the path until a given face    |
-| *Perform(From, Until)* | The  pipe is defined between the two faces From and Until | 
+*BRepOffsetAPI_MakeEvolved* class allows creating an evolved solid from a Spine (planar face or wire) and a profile (wire). 
 
-Let us have a look at the example:
+The evolved solid is an unlooped sweep generated by the spine and the profile. 
 
-~~~~~
-TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.); 
-TopExp_Explorer Ex; 
-Ex.Init(S,TopAbs_FACE); 
-Ex.Next(); 
-Ex.Next(); 
-TopoDS_Face F1 = TopoDS::Face(Ex.Current()); 
-Handle(Geom_Surface) surf = BRep_Tool::Surface(F1); 
-BRepBuilderAPI_MakeWire MW1; 
-gp_Pnt2d p1,p2; 
-p1 = gp_Pnt2d(100.,100.); 
-p2 = gp_Pnt2d(200.,100.); 
-Handle(Geom2d_Line) aline = GCE2d_MakeLine(p1,p2).Value(); 
+The evolved solid is  created by sweeping the profile’s reference axes on the spine. The origin of  the axes moves to the spine, the X axis and the local tangent coincide and the  Z axis is normal to the face. 
 
-MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); 
-p1 = p2; 
-p2 = gp_Pnt2d(150.,200.); 
-aline = GCE2d_MakeLine(p1,p2).Value(); 
+The reference axes of  the profile can be defined following two distinct modes: 
 
-MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); 
-p1 = p2; 
-p2 = gp_Pnt2d(100.,100.); 
-aline = GCE2d_MakeLine(p1,p2).Value(); 
+* The reference axes of the  profile are the origin axes. 
+* The references axes of  the profile are calculated as follows: 
+  + the origin is given by the  point on the spine which is the closest to the profile
+  + the X axis is given by the  tangent to the spine at the point defined above
+  + the Z axis is the normal to  the plane which contains the spine.
 
-MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); 
-BRepBuilderAPI_MakeFace MKF1; 
-MKF1.Init(surf,Standard_False); 
-MKF1.Add(MW1.Wire()); 
-TopoDS_Face FP = MKF1.Face(); 
-BRepLib::BuildCurves3d(FP); 
-TColgp_Array1OfPnt CurvePoles(1,3); 
-gp_Pnt pt = gp_Pnt(150.,0.,150.); 
-CurvePoles(1) = pt; 
-pt = gp_Pnt(200.,100.,150.); 
-CurvePoles(2) = pt; 
-pt = gp_Pnt(150.,200.,150.); 
-CurvePoles(3) = pt; 
-Handle(Geom_BezierCurve) curve = new Geom_BezierCurve 
-(CurvePoles); 
-TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve); 
-TopoDS_Wire W = BRepBuilderAPI_MakeWire(E); 
-BRepFeat_MakePipe MKPipe (S,FP,F1,W,Standard_False, 
-Standard_True); 
-MKPipe.Perform(); 
-TopoDS_Shape res1 = MKPipe.Shape(); 
+~~~~~
+TopoDS_Face Spine = ...; 
+TopoDS_Wire Profile = ...; 
+TopoDS_Shape Evol = 
+BRepOffsetAPI_MakeEvolved(Spine,Profile); 
 ~~~~~
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image050.png,"Pipe depression",240}
+@subsection occt_modalg_3b Object Modification
 
-@subsection occt_modalg_9_2 Mechanical Features
+@subsubsection occt_modalg_3b_1 Transformation
+*BRepBuilderAPI_Transform* class can be used to apply a transformation to a shape (see class  *gp_Trsf*). The methods have a boolean argument to copy or share the  original shape, as long as the transformation allows (it is only possible for  direct isometric transformations). By default, the original shape is shared. 
 
-Mechanical features include ribs, protrusions and grooves (or slots), depressions along planar (linear) surfaces or revolution surfaces. 
+The following example  deals with the rotation of shapes. 
 
-The semantics of  mechanical features is built around giving thickness to a contour. This  thickness can either be symmetrical -- on one side of the contour -- or  dissymmetrical -- on both sides. As in the semantics of form features, the  thickness is defined by construction of shapes in specific contexts. 
+~~~~~
+
+TopoDS_Shape myShape1 = ...; 
+// The original shape 1 
+TopoDS_Shape myShape2 = ...; 
+// The original shape2 
+gp_Trsf T; 
+T.SetRotation(gp_Ax1(gp_Pnt(0.,0.,0.),gp_Vec(0.,0.,1.)), 
+2.*PI/5.); 
+BRepBuilderAPI_Transformation theTrsf(T); 
+theTrsf.Perform(myShape1); 
+TopoDS_Shape myNewShape1 = theTrsf.Shape() 
+theTrsf.Perform(myShape2,Standard_True); 
+// Here duplication is forced 
+TopoDS_Shape myNewShape2 = theTrsf.Shape() 
+~~~~~
 
-The development contexts  differ, however, in the case of mechanical features. 
-Here they include  extrusion: 
-  * to a limiting face of the  basis shape;
-  * to or from a limiting plane;
-  * to a height.
+@subsubsection occt_modalg_3b_2 Duplication
 
-A class object is  created or initialized from 
-  * a shape (basic shape);
-  * a wire (base of rib or  groove);
-  * a plane (plane of the wire);
-  * direction1 (a vector along  which thickness will be built up);
-  * direction2 (vector opposite  to the previous one along which thickness will be built up, may be null);
-  * a Boolean indicating the type  of operation (fusion=rib or cut=groove) on the basic shape;
-  * another Boolean indicating  if self-intersections have to be found (not used in every case).
-  
-@subsubsection occt_modalg_9_2_1 Linear Form
-  
-Linear form is implemented in *MakeLinearForm* class, which creates a rib or a groove  along a planar surface. There is one *Perform()* method, which performs a  prism from the wire along the *direction1* and *direction2* interacting with base shape *Sbase*. The height of the prism is *Magnitude(Direction1)+Magnitude(direction2)*.  
+Use the  *BRepBuilderAPI_Copy* class to duplicate a shape. A new shape is thus created. 
+In the following example, a  solid is copied: 
 
 ~~~~~
-BRepBuilderAPI_MakeWire mkw; 
-gp_Pnt p1 = gp_Pnt(0.,0.,0.); 
-gp_Pnt p2 = gp_Pnt(200.,0.,0.); 
-mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
-p1 = p2; 
-p2 = gp_Pnt(200.,0.,50.); 
-mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
-p1 = p2; 
-p2 = gp_Pnt(50.,0.,50.); 
-mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
-p1 = p2; 
-p2 = gp_Pnt(50.,0.,200.); 
-mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
-p1 = p2; 
-p2 = gp_Pnt(0.,0.,200.); 
-mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
-p1 = p2; 
-mkw.Add(BRepBuilderAPI_MakeEdge(p2,gp_Pnt(0.,0.,0.))); 
-TopoDS_Shape S = BRepBuilderAPI_MakePrism(BRepBuilderAPI_MakeFace 
-       (mkw.Wire()),gp_Vec(gp_Pnt(0.,0.,0.),gp_P 
-        nt(0.,100.,0.))); 
-TopoDS_Wire W = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(gp_Pnt 
-       (50.,45.,100.), 
-gp_Pnt(100.,45.,50.))); 
-Handle(Geom_Plane) aplane = 
-       new Geom_Plane(gp_Pnt(0.,45.,0.),  gp_Vec(0.,1.,0.)); 
-BRepFeat_MakeLinearForm aform(S, W, aplane, gp_Dir 
-       (0.,5.,0.), gp_Dir(0.,-3.,0.),  1, Standard_True); 
-aform.Perform(); 
-TopoDS_Shape res = aform.Shape(); 
-~~~~~
+TopoDS Solid MySolid; 
+....// Creates a solid 
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image051.png,"Creating a rib",240}
+TopoDS_Solid myCopy = BRepBuilderAPI_Copy(mySolid); 
+~~~~~
 
-@subsubsection occt_modalg_9_2_3 Gluer
+@subsection occt_modalg_3a_1 Error Handling in the Topology API
 
-The class *BRepFeat_Gluer* allows gluing two solids along faces. The contact faces of the glued  shape must not have parts outside the contact faces of the basic shape. Upon completion the algorithm gives the glued shape with cut out parts of faces inside the shape.
+A method can report an  error in the two following situations: 
+  * The data or arguments of the  method are incorrect, i.e. they do not respect the restrictions specified by  the methods in its specifications. Typical example: creating a linear edge from  two identical points is likely to lead to a zero divide when computing the  direction of the line.
+  * Something unexpected  happened. This situation covers every error not included in the first category.  Including: interruption, programming errors in the method or in another method  called by the first method, bad specifications of the arguments (i.e. a set of  arguments that was not expected to fail).
 
-The class is created or  initialized from two shapes: the “glued” shape and the basic shape (on which  the other shape is glued). 
-Two *Bind* methods are  used to bind a face of the glued shape to a face of the basic shape and an edge  of the glued shape to an edge of the basic shape. 
+The second situation is  supposed to become increasingly exceptional as a system is debugged and it is  handled by the **exception mechanism**. Using exceptions avoids handling  error statuses in the call to a method: a very cumbersome style of programming. 
 
-**Note** that every face and edge has to be  bounded, if two edges of two glued faces are  coincident they must be explicitly bounded.
+In the first situation,  an exception is also supposed to be raised because the calling method should  have verified the arguments and if it did not do so, there is a bug. For example, if before calling *MakeEdge* you are not sure that the two points are  non-identical, this situation must be tested. 
 
-~~~~~
-TopoDS_Shape Sbase = ...; // the basic shape 
-TopoDS_Shape Sglued = ...; // the glued shape 
+Making those validity  checks on the arguments can be tedious to program and frustrating as you have  probably correctly surmised that the method will perform the test twice. It  does not trust you. 
+As the test involves a  great deal of computation, performing it twice is also time-consuming. 
 
-TopTools_ListOfShape Lfbase; 
-TopTools_ListOfShape Lfglued; 
-// Determination of the glued faces 
-... 
+Consequently, you might be tempted to adopt the highly inadvisable style of programming  illustrated in the following example: 
 
-BRepFeat_Gluer theGlue(Sglue, Sbase); 
-TopTools_ListIteratorOfListOfShape itlb(Lfbase); 
-TopTools_ListIteratorOfListOfShape itlg(Lfglued); 
-for (; itlb.More(); itlb.Next(), itlg(Next()) { 
-const TopoDS_Face& f1 = TopoDS::Face(itlg.Value()); 
-const TopoDS_Face& f2 = TopoDS::Face(itlb.Value()); 
-theGlue.Bind(f1,f2); 
-// for example, use the class FindEdges from LocOpe to 
-// determine coincident edges 
-LocOpe_FindEdge fined(f1,f2); 
-for (fined.InitIterator(); fined.More(); fined.Next()) { 
-theGlue.Bind(fined.EdgeFrom(),fined.EdgeTo()); 
-} 
+~~~~~
+#include <Standard_ErrorHandler.hxx> 
+try { 
+TopoDS_Edge E = BRepBuilderAPI_MakeEdge(P1,P2); 
+// go on with the edge 
 } 
-theGlue.Build(); 
-if (theGlue.IsDone() { 
-TopoDS_Shape  theResult = theGlue; 
-... 
+catch { 
+// process the error. 
 } 
 ~~~~~
 
-@subsubsection occt_modalg_9_2_4 Split Shape
-
-The class *BRepFeat_SplitShape* is used to split faces of a shape into wires or edges. The shape  containing the new entities is rebuilt, sharing the unmodified ones. 
-
-The class is created or  initialized from a shape (the basic shape). 
-Three Add methods are  available: 
-* *Add(Wire, Face)* -- adds  a new wire on a face of the basic shape. 
-* *Add(Edge, Face)* -- adds  a new edge on a face of the basic shape. 
-* *Add(EdgeNew, EdgeOld)* -- adds  a new edge on an existing one (the old edge must contain the new edge). 
+To help the user, the  Topology API classes only raise the exception *StdFail_NotDone*. Any other  exception means that something happened which was unforeseen in the design of  this API. 
 
-**Note** The added wires and edges must  define closed wires on faces or wires located between two  existing edges. Existing edges must not be intersected. 
+The *NotDone* exception  is only raised when the user tries to access the result of the computation and  the original data is corrupted. At the construction of the class instance, if  the algorithm cannot be completed, the internal flag *NotDone* is set. This flag  can be tested and in some situations a more complete description of the error  can be queried. If the user ignores the *NotDone* status and tries to access the  result, an exception is raised. 
 
 ~~~~~
-TopoDS_Shape Sbase = ...; // basic shape 
-TopoDS_Face Fsplit = ...; // face of Sbase 
-TopoDS_Wire Wsplit = ...; // new wire contained in Fsplit 
-BRepFeat_SplitShape Spls(Sbase); 
-Spls.Add(Wsplit, Fsplit); 
-TopoDS_Shape theResult = Spls; 
-...
+BRepBuilderAPI_MakeEdge ME(P1,P2); 
+if (!ME.IsDone()) { 
+// doing ME.Edge() or E = ME here 
+// would raise StdFail_NotDone 
+Standard_DomainError::Raise 
+(“ProcessPoints::Failed to create an edge”); 
+} 
+TopoDS_Edge E = ME; 
 ~~~~~
 
 
-@section occt_modalg_10 Hidden Line  Removal
+@subsection occt_modalg_8 Sewing
 
-To provide the  precision required in industrial design, drawings need to offer the possibility  of removing lines, which are hidden in a given projection. 
+@subsubsection occt_modalg_8_1 Introduction
 
-For this the Hidden Line Removal component provides two algorithms: *HLRBRep_Algo*  and *HLRBRep_PolyAlgo*
+Sewing allows creation of connected topology (shells and wires) from a set of separate topological elements (faces and edges). For example, Sewing can be used to create of shell from a compound of separate faces
 
-These algorithms are  based on the principle of comparing each edge of the shape to be visualized  with each of its faces, and calculating the visible and the hidden parts of  each edge. Note that these are not the  algorithms used in generating  shading, which calculate the visible and hidden parts of each face in a shape  to be visualized by comparing each face in the shape with every other face in  the same shape. 
-These algorithms operate  on a shape and remove or indicate edges hidden by faces. For a given  projection, they calculate a set of lines characteristic of the object being  represented. They are also used in conjunction with extraction utilities, which  reconstruct a new, simplified shape from a selection of the results of the  calculation. This new shape is made up of edges, which represent the shape  visualized in the projection. 
+@figure{/user_guides/modeling_algos/images/modeling_algos_image045.png,"Shapes with partially shared edges",320}
 
-*HLRBRep_Algo* allows working with the shape itself, whereas *HLRBRep_PolyAlgo* works with a polyhedral simplification of the shape. When you use *HLRBRep_Algo*, you obtain an exact result, whereas, when you use *HLRBRep_PolyAlgo*, you reduce the computation time, but obtain polygonal segments.
+It is important to distinguish between sewing and other procedures, which modify the geometry, such as filling holes or gaps, gluing, bending curves and surfaces, etc.
 
-No smoothing algorithm  is provided. Consequently, a polyhedron will be treated as such and the  algorithms will give the results in  form of line segments conforming to the  mathematical definition of the polyhedron. This is always the case with *HLRBRep_PolyAlgo*. 
+Sewing does not change geometrical representation of the shapes. Sewing applies to topological elements (faces, edges) which are not connected but can be connected because they are geometrically coincident : it adds the information about topological connectivity. Already connected elements are left untouched in case of manifold sewing.
 
-*HLRBRep_Algo* and *HLRBRep_PolyAlgo* can deal with any kind of object, for example, assemblies of  volumes, surfaces, and lines, as long as there are no unfinished  objects or points within it. 
+Let us define several terms:
+* **Floating edges** do not belong to any face;
+* **Free boundaries** belong to one face only;
+* **Shared edges** belong to several faces, (i.e. two faces in a manifold topology).
+* **Sewn faces** should have edges shared with each other.
+* **Sewn edges** should have vertices shared with each other.
 
-However, there some restrictions in HLR use:
-  * Points are not processed;
-  * Infinite faces or lines are not processed.
+@subsubsection occt_modalg_8_2 Sewing Algorithm
 
-  
-@figure{/user_guides/modeling_algos/images/modeling_algos_image052.png,"Sharp, smooth and sewn edges  in a simple screw shape",320}
+The sewing algorithm is one of the basic algorithms used for shape processing, therefore its quality is very important.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image053.png,"Outline edges  and isoparameters in the same shape",320}
+Sewing algorithm is implemented in the class *BRepBuilder_Sewing*. This class provides the following methods: 
+* loading initial data for global or local sewing; 
+* setting customization parameters, such as special operation modes, tolerances and output results;
+* applying analysis methods that can be used to obtain connectivity data required by external algorithms;
+* sewing of the loaded shapes. 
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image054.png,"A simple screw shape seen with shading",320}
+Sewing supports working mode with big value tolerance. It is not necessary to repeat sewing step by step while smoothly increasing tolerance.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image055.png,"An extraction  showing hidden sharp edges",320}
+It is also possible to sew edges to wire and to sew locally separate faces and edges from a shape.
 
+The Sewing algorithm can be subdivided into several independent stages, some of which can be turned on or off using Boolean or other flags. 
 
-The following services are related to Hidden Lines Removal : 
+In brief, the algorithm should find a set of merge candidates for each free boundary, filter them according to certain criteria, and finally merge the found candidates and  build the resulting sewn shape.
 
-### Loading Shapes
+Each stage of the algorithm or the whole algorithm can be adjusted with the following parameters: 
+* **Working tolerance** defines the maximal distance between topological elements which can be sewn. It is not ultimate that such elements will  be actually sewn as many other criteria are applied to make the final decision.
+* **Minimal tolerance** defines the size of the smallest element (edge) in the resulting shape. It is declared that no edges with size less than this value are created after sewing. If encountered, such topology becomes degenerated.
+* **Non-manifold mode** enables sewing of non-manifold topology. 
 
-To pass a *TopoDS_Shape* to an *HLRBRep_Algo*  object, use *HLRBRep_Algo::Add*. With an *HLRBRep_PolyAlgo* object, use *HLRBRep_PolyAlgo::Load*. If you wish to add several shapes, use Add or Load as often  as necessary. 
+#### Example
 
-### Setting view parameters
+To connect a set of *n* contiguous but independent faces, do the following: 
 
-*HLRBRep_Algo::Projector* and *HLRBRep_PolyAlgo::Projector* set a projector object which defines the  parameters of the view. This object is an *HLRAlgo_Projector*. 
+~~~~~
+    BRepBuilderAPI_Sewing Sew;
+    Sew.Add(Face1); 
+    Sew.Add(Face2); 
+    ...
+    Sew.Add(Facen); 
+    Sew.Perform();
+    TopoDS_Shape result= Sew.SewedShape();
+~~~~~
 
-### Computing the projections
+If all faces have been sewn correctly, the result is a shell. Otherwise, it is a compound. After a successful sewing operation all faces have a coherent orientation.
 
-*HLRBRep_PolyAlgo::Update* launches the calculation of outlines of the shape visualized by the *HLRBRep_PolyAlgo* framework. 
+@subsubsection occt_modalg_8_3 Tolerance Management
 
-In the case of *HLRBRep_Algo*, use *HLRBRep_Algo::Update*. With this algorithm, you must also call the method *HLRBRep_Algo::Hide* to calculate visible and hidden lines of the  shape to be visualized. With an *HLRBRep_PolyAlgo* object, visible and hidden lines are computed by *HLRBRep_PolyHLRToShape*. 
+To produce a closed shell, Sewing allows specifying the value of working tolerance, exceeding the size of small faces belonging to the shape.
 
-### Extracting edges
+However, if we produce an open shell, it is possible to get incorrect sewing results if the value of working tolerance is too large (i.e. it exceeds the size of faces lying on an open boundary).
 
-The classes *HLRBRep_HLRToShape* and *HLRBRep_PolyHLRToShape* present a range of extraction filters for an *HLRBRep_Algo object* and an *HLRBRep_PolyAlgo* object, respectively. They highlight the type of  edge from the results calculated by the algorithm on a shape. With  both extraction classes, you can highlight the following types of output: 
-  * visible/hidden sharp edges;
-  * visible/hidden smooth edges;
-  * visible/hidden sewn edges;
-  * visible/hidden outline edges. 
+The following recommendations can be proposed for tuning-up the sewing process:
+- Use as small working tolerance as possible. This will reduce the sewing time and, consequently, the number of incorrectly sewn edges for shells with free boundaries.
+- Use as large minimal tolerance as possible. This will reduce the number of small geometry in the shape, both original and appearing after cutting.
+- If it is expected to obtain a shell with holes (free boundaries) as a result of sewing, the working tolerance should be set to a value not greater than the size of the smallest element (edge) or smallest distance between elements of such free boundary. Otherwise the free boundary may be sewn only partially.
+- It should  be mentioned that the Sewing algorithm is unable to understand which small (less than working tolerance) free boundary should be kept and which should be sewn.
 
-To perform extraction on an *HLRBRep_PolyHLRToShape* object, use *HLRBRep_PolyHLRToShape::Update*  function. 
+@subsubsection occt_modalg_8_4 Manifold and Non-manifold Sewing
 
-For an *HLRBRep_HLRToShape* object built from an *HLRBRepAlgo* object you can also highlight: 
-  * visible isoparameters and
-  * hidden isoparameters.
+To create one or several shells from a set of faces, sewing merges edges, which belong to different faces or one closed face. 
 
-@subsection occt_modalg_10_1 Examples
+Face sewing supports manifold and non manifold modes. Manifold mode can produce only a manifold shell. Sewing should be used in the non manifold mode to create non manifold shells.
 
-### HLRBRep_Algo
+Manifold sewing of faces merges only two nearest edges belonging to different faces or one closed face with each other. Non manifold sewing of faces merges all edges at a distance less than the specified tolerance.
 
-~~~~~
-// Build The algorithm object 
-myAlgo = new HLRBRep_Algo(); 
+For a complex topology it is advisable to apply first the manifold sewing and then the non manifold sewing a minimum possible working tolerance. However, this is not necessary for a easy topology. 
 
-// Add Shapes into the algorithm 
-TopTools_ListIteratorOfListOfShape anIterator(myListOfShape); 
-for (;anIterator.More();anIterator.Next()) 
-myAlgo-Add(anIterator.Value(),myNbIsos); 
+Giving a large tolerance value to non manifold sewing will cause a lot of incorrectness since all nearby geometry will be sewn.
 
-// Set The Projector (myProjector is a 
-HLRAlgo_Projector) 
-myAlgo-Projector(myProjector); 
+@subsubsection occt_modalg_8_5 Local Sewing
 
-// Build HLR 
-myAlgo->Update(); 
+If a shape still has some non-sewn faces or edges after sewing, it is possible to use local sewing with a greater tolerance.
 
-// Set The Edge Status 
-myAlgo->Hide(); 
+Local sewing is especially good for open shells. It allows sewing an unwanted hole in one part of the shape and keeping a required hole, which is smaller than the working tolerance specified for the local sewing in the other part of the shape. Local sewing is much faster than sewing on the whole shape.
 
-// Build the extraction object : 
-HLRBRep_HLRToShape aHLRToShape(myAlgo); 
+All preexisting connections of the whole shape are kept after local sewing. 
 
-// extract the results : 
-TopoDS_Shape VCompound           = aHLRToShape.VCompound(); 
-TopoDS_Shape Rg1LineVCompound                            = 
-aHLRToShape.Rg1LineVCompound(); 
-TopoDS_Shape RgNLineVCompound                            = 
-aHLRToShape.RgNLineVCompound(); 
-TopoDS_Shape OutLineVCompound                            = 
-aHLRToShape.OutLineVCompound(); 
-TopoDS_Shape IsoLineVCompound                            = 
-aHLRToShape.IsoLineVCompound(); 
-TopoDS_Shape HCompound           = aHLRToShape.HCompound(); 
-TopoDS_Shape Rg1LineHCompound                            = 
-aHLRToShape.Rg1LineHCompound(); 
-TopoDS_Shape RgNLineHCompound                            = 
-aHLRToShape.RgNLineHCompound(); 
-TopoDS_Shape OutLineHCompound                            = 
-aHLRToShape.OutLineHCompound(); 
-TopoDS_Shape IsoLineHCompound                            = 
-aHLRToShape.IsoLineHCompound(); 
-~~~~~
+For example, if you want to sew two open shells having coincided free edges using local sewing, it is necessary to create a compound from two shells then load the full compound using method *BRepBuilderAPI_Sewing::Load()*. After that it is necessary to add local sub-shapes, which should be sewn using method *BRepBuilderAPI_Sewing::Add()*. The result of sewing can be obtained using method *BRepBuilderAPI_Sewing::SewedShape()*.
+
+See the example:
+
+~~~~
 
-### HLRBRep_PolyAlgo
+//initial sewn shapes
+TopoDS_Shape aS1, aS2;  // these shapes are expected to be well sewn shells
+TopoDS_Shape aComp;
+BRep_Builder aB;
+aB.MakeCompound(aComp);
+aB.Add(aComp, aS1);
+aB.Add(aComp, aS2);
+................................
+aSewing.Load(aComp);
 
+//sub shapes which should be locally sewed
+aSewing.Add(aF1);
+aSewing.Add(aF2);
+//performing sewing
+aSewing.Perform();
+//result shape
+TopoDS_Shape aRes = aSewing.SewedShape();
 
-~~~~~
+~~~~
 
-// Build The algorithm object 
-myPolyAlgo = new HLRBRep_PolyAlgo(); 
+@subsection occt_modalg_9 Features
 
-// Add Shapes into the algorithm 
-TopTools_ListIteratorOfListOfShape 
-anIterator(myListOfShape); 
-for (;anIterator.More();anIterator.Next()) 
-myPolyAlgo-Load(anIterator.Value()); 
+This library contained in *BRepFeat* package is necessary for creation and manipulation of form and mechanical features that go beyond the classical boundary representation of shapes. In that sense, *BRepFeat* is an extension of *BRepBuilderAPI* package. 
 
-// Set The Projector (myProjector is a 
-HLRAlgo_Projector) 
-myPolyAlgo->Projector(myProjector); 
+@subsubsection occt_modalg_9_1 Form Features
 
-// Build HLR 
-myPolyAlgo->Update(); 
+The form features are depressions or protrusions including the following types:
 
-// Build the extraction object : 
-HLRBRep_PolyHLRToShape aPolyHLRToShape; 
-aPolyHLRToShape.Update(myPolyAlgo); 
+  * Cylinder;
+  * Draft Prism;
+  * Prism;
+  * Revolved feature;
+  * Pipe.
 
-// extract the results : 
-TopoDS_Shape VCompound = 
-aPolyHLRToShape.VCompound(); 
-TopoDS_Shape Rg1LineVCompound = 
-aPolyHLRToShape.Rg1LineVCompound(); 
-TopoDS_Shape RgNLineVCompound = 
-aPolyHLRToShape.RgNLineVCompound(); 
-TopoDS_Shape OutLineVCompound = 
-aPolyHLRToShape.OutLineVCompound(); 
-TopoDS_Shape HCompound = 
-aPolyHLRToShape.HCompound(); 
-TopoDS_Shape Rg1LineHCompound = 
-aPolyHLRToShape.Rg1LineHCompound(); 
-TopoDS_Shape RgNLineHCompound = 
-aPolyHLRToShape.RgNLineHCompound(); 
-TopoDS_Shape OutLineHCompound = 
-aPolyHLRToShape.OutLineHCompound(); 
-~~~~~
+Depending on whether you wish to make a depression or a protrusion, 
+you can choose either to remove matter (Boolean cut: Fuse equal to 0) or to add it (Boolean fusion: Fuse equal to 1).
 
-@section occt_modalg_11 Meshing 
+The semantics of form feature creation is based on the construction of shapes:
 
-@subsection occt_modalg_11_1 Mesh presentations
+  * for a certain length in a certain direction;
+  * up to the limiting face;
+  * from the limiting face at a height;
+  * above and/or below a plane.
 
-In addition to support of exact geometrical representation of 3D objects Open CASCADE Technology provides functionality to work with tessellated  representations of objects in form of meshes.
+The shape defining the construction of a feature can be either a supporting edge or a concerned area of a face.
 
-Open CASCADE Technology mesh functionality provides:
-- data structures to store surface mesh data associated to shapes, and some basic algorithms to handle these data
-- data structures and algorithms to build surface triangular mesh from *BRep* objects (shapes).
-- tools to extend 3D visualization capabilities of Open CASCADE Technology with displaying meshes along with associated pre- and post-processor data.
+In case of supporting edge, this contour can be attached to a face of the basis shape by binding. When the contour is bound to this face, the information that the contour will slide on the face becomes available 
+to the relevant class methods. In case of the concerned area of a face, you can, for example, cut it out and move it at a different height, which defines the limiting face of a protrusion or depression.
 
-Open CASCADE Technology includes two mesh converters:
-- VRML converter translates Open CASCADE shapes to VRML 1.0 files (Virtual Reality Modeling Language). Open CASCADE shapes may be translated in two representations: shaded or wireframe. A shaded representation present shapes as sets of triangles computed by a mesh algorithm while a wireframe representation present shapes as sets of curves.
-- STL converter translates Open CASCADE shapes to STL files. STL (STtereoLithography) format is widely used for rapid prototyping.
+Topological definition with local operations of this sort makes calculations simpler 
+and faster than a global operation. The latter would entail a second phase 
+of removing unwanted matter to get the same result.
 
-Open CASCADE SAS also offers Advanced Mesh Products:
-- <a href="https://www.opencascade.com/content/mesh-framework">Open CASCADE Mesh Framework (OMF)</a>
-- <a href="https://www.opencascade.com/content/express-mesh">Express Mesh</a>
+The *Form* from *BRepFeat* package is a deferred class used as a root for form features. It inherits  *MakeShape* from *BRepBuilderAPI* and provides implementation of methods keep track of all sub-shapes. 
 
-Besides, we can efficiently help you in the fields of surface and volume meshing algorithms, mesh optimization algorithms etc. If you require a qualified advice about meshing algorithms, do not hesitate to benefit from the expertise of our team in that domain.
+**Prism**
 
-The projects dealing with numerical simulation can benefit from using SALOME - an Open Source Framework for CAE with CAD data interfaces, generic Pre- and Post- F.E. processors and API for integrating F.E. solvers.
+The class *BRepFeat_MakePrism* is used to build a prism interacting with a shape. It is created  or initialized from 
+  * a shape (the basic shape),
+  * the base of the prism,
+  * a face (the face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
+  * a direction,
+  * a Boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
+  * another Boolean indicating if  the self-intersections have to be found (not used in every case).
 
-Learn more about SALOME platform on https://www.salome-platform.org
+There are six Perform  methods: 
+| Method | Description |
+| :---------------------- | :------------------------------------- |
+| *Perform(Height)*       | The  resulting prism is of the given length. |
+| *Perform(Until)*        | The  prism is defined between the position of the base and the given face. |
+| *Perform(From, Until)*  | The  prism is defined between the two faces From and Until. |
+| *PerformUntilEnd()*     | The  prism is semi-infinite, limited by the actual position of the base. |
+| *PerformFromEnd(Until)* | The  prism is semi-infinite, limited by the face Until. |
+| *PerformThruAll()*     | The  prism is infinite. In the case of a depression, the result is similar to a cut  with an infinite prism. In the case of a protrusion, infinite parts are not  kept in the result. |
 
-@subsection occt_modalg_11_2 Meshing algorithm
+**Note** that *Add* method can be used before *Perform* methods to indicate that a face  generated by an edge slides onto a face of the base shape.
 
-The algorithm of shape triangulation is provided by the functionality of *BRepMesh_IncrementalMesh* class, which adds a triangulation of the shape to its topological data structure. This triangulation is used to visualize the shape in shaded mode.
+In the following  sequence, a protrusion is performed, i.e. a face of the shape is changed into a  prism. 
 
 ~~~~~
-#include <IMeshData_Status.hxx>
-#include <IMeshTools_Parameters.hxx>
-#include <BRepMesh_IncrementalMesh.hxx>
+TopoDS_Shape Sbase = ...;  // an initial shape 
+TopoDS_Face Fbase = ....; // a base of prism 
 
-Standard_Boolean meshing_explicit_parameters()
-{
-  const Standard_Real aRadius = 10.0; 
-  const Standard_Real aHeight = 25.0; 
-  BRepPrimAPI_MakeCylinder aCylinder(aRadius, aHeight); 
-  TopoDS_Shape aShape = aCylinder.Shape();
-
-  const Standard_Real aLinearDeflection   = 0.01;
-  const Standard_Real anAngularDeflection = 0.5;
-  BRepMesh_IncrementalMesh aMesher (aShape, aLinearDeflection, Standard_False, anAngularDeflection, Standard_True);
-  const Standard_Integer aStatus = aMesher.GetStatusFlags();
-  return !aStatus;
-}
+gp_Dir Extrusion (.,.,.); 
 
-Standard_Boolean meshing_imeshtools_parameters()
-{
-  const Standard_Real aRadius = 10.0; 
-  const Standard_Real aHeight = 25.0; 
-  BRepPrimAPI_MakeCylinder aCylinder(aRadius, aHeight); 
-  TopoDS_Shape aShape = aCylinder.Shape();
-  
-  IMeshTools_Parameters aMeshParams;
-  aMeshParams.Deflection               = 0.01;
-  aMeshParams.Angle                    = 0.5;
-  aMeshParams.Relative                 = Standard_False;
-  aMeshParams.InParallel               = Standard_True;
-  aMeshParams.MinSize                  = Precision::Confusion();
-  aMeshParams.InternalVerticesMode     = Standard_True;
-  aMeshParams.ControlSurfaceDeflection = Standard_True;
-
-  BRepMesh_IncrementalMesh aMesher (aShape, aMeshParams);
-  const Standard_Integer aStatus = aMesher.GetStatusFlags();
-  return !aStatus;
-}
-~~~~~
+// An empty face is given as the sketch face 
+
+BRepFeat_MakePrism thePrism(Sbase, Fbase, TopoDS_Face(),  Extrusion, Standard_True, Standard_True); 
 
-The default meshing algorithm *BRepMesh_IncrementalMesh* has two major options to define triangulation -- linear and angular deflections. 
+thePrism, Perform(100.); 
+if (thePrism.IsDone()) { 
+       TopoDS_Shape  theResult = thePrism; 
+       ... 
+} 
+~~~~~
 
-At the first step all edges from a face are discretized according to the specified parameters. 
+@figure{/user_guides/modeling_algos/images/modeling_algos_image047.png,"Fusion with MakePrism",320}
 
-At the second step, the faces are tessellated. Linear deflection limits the distance between a curve and its tessellation, whereas angular deflection limits the angle between subsequent segments in a polyline.
+@figure{/user_guides/modeling_algos/images/modeling_algos_image048.png,"Creating a prism between two faces with Perform()",320}
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image056.png,"Deflection parameters of BRepMesh_IncrementalMesh algorithm",420}
+**Draft Prism**
 
-There are additional options to control behavior of the meshing of face interior: *DeflectionInterior* and *AngleInterior*. *DeflectionInterior* limits the distance between triangles and the face interior. *AngleInterior* (used for tessellation of B-spline faces only) limits the angle between normals (N1, N2 and N3 in the picture) in the nodes of every link of the triangle. There is an exception for the links along the face boundary edges, "Angular Deflection" is used for them during edges discretization.
+The class *BRepFeat_MakeDPrism* is used to build draft prism topologies interacting with a basis  shape. These can be depressions or protrusions. A class object is created or  initialized from: 
+  * a shape (basic shape),
+  * the base of the prism,
+  * a face (face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
+  * an angle,
+  * a Boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
+  * another Boolean indicating if  self-intersections have to be found (not used in every case).
+  
+Evidently the input data  for MakeDPrism are the same as for MakePrism except for a new parameter Angle  and a missing parameter Direction: the direction of the prism generation is  determined automatically as the normal to the base of the prism. 
+The semantics of draft  prism feature creation is based on the construction of shapes: 
+  * along a length
+  * up to a limiting face
+  * from a limiting face to a  height.
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_image057.png,"Linear and angular interior deflections",420}
+The shape defining  construction of the draft prism feature can be either the supporting edge or the concerned area of a face. 
 
-Note that if a given value of linear deflection is less than shape tolerance then the algorithm will skip this value and will take into account the shape tolerance.
+In case of the  supporting edge, this contour can be attached to a face of the basis shape by  binding. When the contour is bound to this face, the information that the  contour will slide on the face becomes available to the relevant class methods. 
+In case of the  concerned area of a face, it is possible to cut it out and move it to a  different height, which will define the limiting face of a protrusion or depression direction . 
 
-The application should provide deflection parameters to compute a satisfactory mesh. Angular deflection is relatively simple and allows using a default value (12-20 degrees). Linear deflection has an absolute meaning and the application should provide the correct value for its models. Giving small values may result in a too huge mesh (consuming a lot of memory, which results in a  long computation time and slow rendering) while big values result in an ugly mesh.
+The *Perform* methods are the same as for *MakePrism*. 
 
-For an application working in dimensions known in advance it can be reasonable to use the absolute linear deflection for all models. This provides meshes according to metrics and precision used in the application (for example, it it is known that the model will be stored in meters, 0.004 m is enough for most tasks).
+~~~~~
+TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.); 
+TopExp_Explorer Ex; 
+Ex.Init(S,TopAbs_FACE); 
+Ex.Next(); 
+Ex.Next(); 
+Ex.Next(); 
+Ex.Next(); 
+Ex.Next(); 
+TopoDS_Face F = TopoDS::Face(Ex.Current()); 
+Handle(Geom_Surface) surf = BRep_Tool::Surface(F); 
+gp_Circ2d 
+c(gp_Ax2d(gp_Pnt2d(200.,130.),gp_Dir2d(1.,0.)),50.); 
+BRepBuilderAPI_MakeWire MW; 
+Handle(Geom2d_Curve) aline = new Geom2d_Circle(c); 
+MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,PI)); 
+MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,PI,2.*PI)); 
+BRepBuilderAPI_MakeFace MKF; 
+MKF.Init(surf,Standard_False); 
+MKF.Add(MW.Wire()); 
+TopoDS_Face FP = MKF.Face(); 
+BRepLib::BuildCurves3d(FP); 
+BRepFeat_MakeDPrism MKDP (S,FP,F,10*PI180,Standard_True, 
+                                                       Standard_True); 
+MKDP.Perform(200); 
+TopoDS_Shape res1 = MKDP.Shape(); 
+~~~~~
 
-However, an application that imports models created in other applications may not use the same deflection for all models. Note that actually this is an abnormal situation and this application is probably just a viewer for CAD models with  dimensions varying by an order of magnitude. This problem can be solved by introducing the concept of a relative linear deflection with some  LOD (level of detail). The level of detail is a scale factor for absolute deflection, which is applied to model dimensions.
+@figure{/user_guides/modeling_algos/images/modeling_algos_image049.png,"A tapered prism",320}
 
-Meshing covers a shape with a triangular mesh. Other than hidden line removal, you can use meshing to transfer the shape to another tool: a manufacturing tool, a shading algorithm, a finite element algorithm, or a collision algorithm. 
+**Revolution**
 
-You can obtain information on the shape by first exploring it. To access triangulation of a face in the shape later, use *BRepTool::Triangulation*. To access a polygon, which is the approximation of an edge of the face, use *BRepTool::PolygonOnTriangulation*.
+The class *BRepFeat_MakeRevol* is used to build a revolution interacting with a shape. It is created or initialized from:
+  * a shape (the basic shape,)
+  * the base of the revolution,
+  * a face (the face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
+  * an axis of revolution,
+  * a boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
+  * another boolean indicating  whether the self-intersections have to be found (not used in every case).
 
-@subsection occt_modalg_11_3 BRepMesh Architecture
-@subsubsection occt_modalg_11_3_1 Goals
+There are four Perform  methods: 
+| Method | Description |
+| :--------------- | :------------ |
+| *Perform(Angle)*       | The  resulting revolution is of the given magnitude. |
+| *Perform(Until)*       | The  revolution is defined between the actual position of the base and the given face. |
+| *Perform(From, Until)* | The  revolution is defined between the two faces, From and Until. |
+| *PerformThruAll()*     |          The  result is similar to Perform(2*PI). |
 
-The main goals of the chosen architecture are:
-  * Remove tight connections between data structures, auxiliary tools and algorithms to create an extensible solution, easy for maintenance and improvements;
-  * Separate the code among several functional units responsible for specific operation for the sake of simplification of debugging and readability;
-  * Introduce new data structures enabling the possibility to manipulate a discrete model of a particular entity (edge, wire, face) in order to perform computations locally instead of processing the entire model;
-  * Implement a new triangulation algorithm replacing the existing functionality that contains overcomplicated solutions that need to be moved to the upper level. In addition, provide the possibility to change the algorithm depending on surface type (initially to speed up meshing of planes).
+**Note** that *Add* method can be used before *Perform* methods to indicate that a face  generated by an edge slides onto a face of the base shape.
 
-@subsubsection occt_modalg_11_3_2 General workflow
-@figure{/user_guides/modeling_algos/images/modeling_algos_mesh_001.svg,"General workflow of BRepMesh component",500}
 
-Generally, the workflow of the component can be divided into six parts:
-  * **Creation of model data structure**: source *TopoDS_Shape* passed to algorithm is analyzed and exploded into faces and edges. The reflection corresponding to each topological entity is created in the data model. Note that underlying algorithms use the data model as input and access it via a common interface which allows creating a custom data model with necessary dependencies between particular entities (see the paragraph "Data model interface");
-  * **Discretize edges 3D & 2D curves**: 3D curve as well as an associated set of 2D curves of each model edge is discretized in order to create a coherent skeleton used as a base in face meshing process. If an edge of the source shape already contains polygonal data which suits the specified parameters, it is extracted from the shape and stored in the model as is. Each edge is processed separately, the adjacency is not taken into account;
-  * **Heal discrete model**: the source *TopoDS_Shape* can contain problems, such as open wires or self-intersections, introduced during design, exchange or modification of model. In addition, some problems like self-intersections can be introduced by roughly discretized edges. This stage is responsible for analysis of a discrete model in order to detect and repair problems or to refuse further processing of a model part in case if a problem cannot be solved;
-  * **Preprocess discrete model**: defines actions specific to the implemented approach to be performed before meshing of faces. By default, this operation iterates over model faces, checks the consistency of existing triangulations and cleans topological faces and adjacent edges from polygonal data in case of inconsistency or marks a face of the discrete model as not required for the computation;
-  * **Discretize faces**: represents the core part performing mesh generation for a particular face based on 2D discrete data. This operation caches polygonal data associated with face edges in the data model for further processing and stores the generated mesh to *TopoDS_Face*;
-  * **Postprocess discrete model**: defines actions specific for the implemented approach to be performed after meshing of faces. By default, this operation stores polygonal data obtained at the previous stage to *TopoDS_Edge* objects of the source model.
+In the following sequence, a face is revolved and  the revolution is limited by a face of the base shape. 
 
-@subsubsection occt_modalg_11_3_3 Common interfaces
-The component structure contains two units: <i>IMeshData</i> (see Data model interface) and <i>IMeshTools</i>, defining common interfaces for the data model and algorithmic tools correspondingly. Class *IMeshTools_Context* represents a connector between these units. The context class caches the data model as well as the tools corresponding to each of six stages of the workflow mentioned above and provides methods to call the corresponding tool safely (designed similarly to *IntTools_Context* in order to keep consistency with OCCT core tools). All stages, except for the first one, use the data model as input and perform a specific action on the entire structure. Thus, API class *IMeshTools_ModelAlgo* is defined in order to unify the interface of tools manipulating the data model. Each tool supposed to process the data model should inherit this interface enabling the possibility to cache it in context. In contrast to others, the model builder interface is defined by another class *IMeshTools_ModelBuilder* due to a different meaning of the stage. The entry point starting the entire workflow is represented by *IMeshTools_MeshBuilder*.
+~~~~~
+TopoDS_Shape Sbase = ...;  // an initial shape 
+TopoDS_Face Frevol = ....; // a base of prism 
+TopoDS_Face FUntil = ....; // face limiting the revol 
 
-The default implementation of *IMeshTools_Context* is given in *BRepMesh_Context* class initializing the context by instances of default algorithmic tools.
+gp_Dir RevolDir (.,.,.); 
+gp_Ax1 RevolAx(gp_Pnt(.,.,.), RevolDir); 
 
-The factory interface *IMeshTools_MeshAlgoFactory* gives the possibility to change the triangulation algorithm for a specific surface. The factory returns an instance of the triangulation algorithm via *IMeshTools_MeshAlgo* interface depending on the type of surface passed as parameter. It is supposed to be used at the face discretization stage.
+// An empty face is given as the sketch face 
 
-The default implementation of AlgoFactory is given in *BRepMesh_MeshAlgoFactory* returning algorithms of different complexity chosen according to the passed surface type. In its turn, it is used as the initializer of *BRepMesh_FaceDiscret* algorithm representing the starter of face discretization stage.
+BRepFeat_MakeRevol theRevol(Sbase, Frevol, TopoDS_Face(), RevolAx,  Standard_True, Standard_True); 
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_mesh_002.svg,"Interface describing entry point to meshing workflow",500}
+theRevol.Perform(FUntil); 
+if (theRevol.IsDone()) { 
+       TopoDS_Shape  theResult = theRevol; 
+       ... 
+} 
+~~~~~
 
-Remaining interfaces describe auxiliary tools:
-  * *IMeshTools_CurveTessellator*: provides a common interface to the algorithms responsible for creation of discrete polygons on 3D and 2D curves as well as tools for extraction of existing polygons from *TopoDS_Edge* allowing to obtain discrete points and the corresponding parameters on curve regardless of the implementation details (see examples of usage of derived classes *BRepMesh_CurveTessellator*, *BRepMesh_EdgeTessellationExtractor* in *BRepMesh_EdgeDiscret*);
-  * *IMeshTools_ShapeExplorer*: the last two interfaces represent visitor design pattern and are intended to separate iteration over elements of topological shape (edges and faces) from the operations performed on a particular element;
-  * *IMeshTools_ShapeVisitor*: provides a common interface for operations on edges and faces of the target topological shape. It can be used in couple with *IMeshTools_ShapeExplorer*. The default implementation available in *BRepMesh_ShapeVisitor* performs initialization of the data model. The advantage of such approach is that the implementation of *IMeshTools_ShapeVisitor* can be changed according to the specific data model whereas the shape explorer implementation remains the same.
+**Pipe**
 
-@subsubsection occt_modalg_11_3_4 Create model data structure
-The data structures intended to keep discrete and temporary data required by underlying algorithms are created at the first stage of the meshing procedure. Generally, the model represents dependencies between entities of the source topological shape suitable for the target task.
+The class *BRepFeat_MakePipe* constructs compound  shapes with pipe features: depressions or protrusions. A class object is created or initialized from: 
+  * a shape (basic shape),
+  * a base face (profile of the  pipe)
+  * a face (face of sketch on  which the base has been defined and used to determine whether the base has been  defined on the basic shape or not),
+  * a spine wire
+  * a Boolean indicating the type  of operation (fusion=protrusion or cut=depression) on the basic shape,
+  * another Boolean indicating if  self-intersections have to be found (not used in every case).
 
-#### Data model interface
-Unit <i>IMeshData</i> provides common interfaces specifying the data model API used on different stages of the entire workflow. Dependencies and references of the designed interfaces are given in the figure below. A specific interface implementation depends on the target application which allows the developer to implement different models and use custom low-level data structures, e.g. different collections, either <i>NCollection</i> or STL. *IMeshData_Shape* is used as the base class for all data structures and tools keeping the topological shape in order to avoid possible copy-paste.
+There are three Perform  methods: 
+| Method | Description |
+| :-------- | :---------- |
+| *Perform()*            | The  pipe is defined along the entire path (spine wire)   |
+| *Perform(Until)*       | The  pipe is defined along the path until a given face    |
+| *Perform(From, Until)* | The  pipe is defined between the two faces From and Until | 
 
-The default implementation of interfaces is given in <i>BRepMeshData</i> unit. The main aim of the default data model is to provide features performing discretization of edges in a parallel mode. Thus, curve, pcurve and other classes are based on STL containers and smart-pointers as far as <i>NCollection</i> does not provide thread-safety for some cases (e.g. *NCollection_Sequence*). In addition, it closely reflects topology of the source shape, i.e. the number of edges in the data model is equal to the number of edges in the source model; each edge contains a set of pcurves associated with its adjacent faces which allows creation of discrete polygons for all pcurves or the 3D curve of a particular edge in a separate thread.
+Let us have a look at the example:
 
-**Advantages**:
-In case of necessity, the data model (probably with algorithms for its processing) can be easily substituted by another implementation supporting another kind of dependencies between elements.
+~~~~~
+TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.); 
+TopExp_Explorer Ex; 
+Ex.Init(S,TopAbs_FACE); 
+Ex.Next(); 
+Ex.Next(); 
+TopoDS_Face F1 = TopoDS::Face(Ex.Current()); 
+Handle(Geom_Surface) surf = BRep_Tool::Surface(F1); 
+BRepBuilderAPI_MakeWire MW1; 
+gp_Pnt2d p1,p2; 
+p1 = gp_Pnt2d(100.,100.); 
+p2 = gp_Pnt2d(200.,100.); 
+Handle(Geom2d_Line) aline = GCE2d_MakeLine(p1,p2).Value(); 
 
-An additional example of a different data model is the case when it is not required to create a mesh with discrete polygons synchronized between adjacent faces, i.e. in case of necessity to speed up creation of a rough per-face tessellation used for visualization or quick computation only (the approach used in *XDEDRAW_Props*).
+MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); 
+p1 = p2; 
+p2 = gp_Pnt2d(150.,200.); 
+aline = GCE2d_MakeLine(p1,p2).Value(); 
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_mesh_003.svg,"Common API of data model",500}
+MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); 
+p1 = p2; 
+p2 = gp_Pnt2d(100.,100.); 
+aline = GCE2d_MakeLine(p1,p2).Value(); 
 
-#### Collecting data model
-At this stage the data model is filled by entities according to the topological structure of the source shape. A default implementation of the data model is given in <i>BRepMeshData</i> unit and represents the model as two sets: a set of edges and a set of faces. Each face consists of one or several wires, the first of which always represents the outer wire, while others are internal. In its turn, each wire depicts the ordered sequence of oriented edges. Each edge is characterized by a single 3D curve and zero (in case of free edge) or more 2D curves associated with faces adjacent to this edge. Both 3D and 2D curves represent a set of pairs point-parameter defined in 3D and 2D space of the reference face correspondingly. An additional difference between a curve and a pcurve is that the latter has a reference to the face it is defined for.
+MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); 
+BRepBuilderAPI_MakeFace MKF1; 
+MKF1.Init(surf,Standard_False); 
+MKF1.Add(MW1.Wire()); 
+TopoDS_Face FP = MKF1.Face(); 
+BRepLib::BuildCurves3d(FP); 
+TColgp_Array1OfPnt CurvePoles(1,3); 
+gp_Pnt pt = gp_Pnt(150.,0.,150.); 
+CurvePoles(1) = pt; 
+pt = gp_Pnt(200.,100.,150.); 
+CurvePoles(2) = pt; 
+pt = gp_Pnt(150.,200.,150.); 
+CurvePoles(3) = pt; 
+Handle(Geom_BezierCurve) curve = new Geom_BezierCurve 
+(CurvePoles); 
+TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve); 
+TopoDS_Wire W = BRepBuilderAPI_MakeWire(E); 
+BRepFeat_MakePipe MKPipe (S,FP,F1,W,Standard_False, 
+Standard_True); 
+MKPipe.Perform(); 
+TopoDS_Shape res1 = MKPipe.Shape(); 
+~~~~~
 
-Model filler algorithm is represented by *BRepMesh_ShapeVisitor* class creating the model as a reflection to topological shape with help of *BRepMesh_ShapeExplorer* performing iteration over edges and faces of the target shape. Note that the algorithm operates on a common interface of the data model and creates a structure without any knowledge about the implementation details and underlying data structures. The entry point to collecting functionality is *BRepMesh_ModelBuilder* class.
+@figure{/user_guides/modeling_algos/images/modeling_algos_image050.png,"Pipe depression",240}
 
-@subsubsection occt_modalg_11_3_5 Discretize edges 3D & 2D curves
-At this stage only the edges of the data model are considered. Each edge is processed separately (with the possibility to run processing in multiple threads). The edge is checked for existing polygonal data. In case if at least one representation exists and suits the meshing parameters, it is recuperated and used as reference data for tessellation of the whole set of pcurves as well as 3D curve assigned to the edge (see *BRepMesh_EdgeTessellationExtractor*). Otherwise, a new tessellation algorithm is created and used to generate the initial polygon (see *BRepMesh_CurveTessellator*) and the edge is marked as outdated. In addition, the model edge is updated by deflection as well as recomputed same range, same parameter and degeneracy parameters. See *BRepMesh_EdgeDiscret* for implementation details.
+@subsubsection occt_modalg_9_2 Mechanical Features
 
-<i>IMeshData</i> unit defines interface *IMeshData_ParametersListArrayAdaptor*, which is intended to adapt arbitrary data structures to the *NCollection_Array1* container API. This solution is made to use both *NCollection_Array1* and *IMeshData_Curve* as the source for *BRepMesh_EdgeParameterProvider* tool intended to generate a consistent parametrization taking into account the same parameter property.
+Mechanical features include ribs, protrusions and grooves (or slots), depressions along planar (linear) surfaces or revolution surfaces. 
 
-@subsubsection occt_modalg_11_3_6 Heal discrete model
-In general, this stage represents a set of operations performed on the entire discrete model in order to resolve inconsistencies due to the problems caused by design, translation or rough discretization. A different sequence of operations can be performed depending on the target triangulation algorithm, e.g. there are different approaches to process self-intersections – either to amplify edges discretization by decreasing the target precision or to split links at the intersection points. At this stage the whole set of edges is considered in aggregate and their adjacency is taken into account. A default implementation of the model healer is given in *BRepMesh_ModelHealer* which performs the following actions:
-  * Iterates over model faces and checks their wires for consistency, i.e. whether the wires are closed and do not contain self-intersections. The data structures are designed free of collisions, thus it is possible to run processing in a parallel mode;
-  * Forcibly connects the ends of adjacent edges in the parametric space, closing gaps between possible disconnected parts. The aim of this operation is to create a correct discrete model defined relatively to the parametric space of the target face taking into account connectivity and tolerances of 3D space only. This means that no specific computations are made to determine U and V tolerance;
-  * Registers intersections on edges forming the face shape. Two solutions are possible in order to resolve self-intersection: 
-    * Decrease deflection of a particular edge and update its discrete model. After that the workflow "intersection check – amplification" is repeated up to 5 times. As the result, target edges contain a finer tessellation and meshing continues or the face is marked by *IMeshData_SelfIntersectingWire* status and refused from further processing;
-    * Split target edges by intersection point and synchronize the updated polygon with curve and remaining pcurves associated to each edge. This operation presents a more robust solution comparing to the amplification procedure with a guaranteed result, but it is more difficult for implementation from the point of view of synchronization functionality.
+The semantics of  mechanical features is built around giving thickness to a contour. This  thickness can either be symmetrical -- on one side of the contour -- or  dissymmetrical -- on both sides. As in the semantics of form features, the  thickness is defined by construction of shapes in specific contexts. 
 
-@subsubsection occt_modalg_11_3_7 Preprocess discrete model
-This stage implements actions to be performed before meshing of faces. Depending on target goals it can be changed or omitted. By default, *BRepMesh_ModelPreProcessor* implements the functionality checking topological faces for consistency of existing triangulation, i.e.: consistency with the target deflection parameter; indices of nodes referenced by triangles do not exceed the number of nodes stored in a triangulation. If the face fails some checks, it is cleaned from triangulation and its adjacent edges are cleaned from existing polygons. This does not affect a discrete model and does not require any recomputation as the model keeps tessellations for the whole set of edges despite consistency of their polygons.
+The development contexts  differ, however, in the case of mechanical features. 
+Here they include  extrusion: 
+  * to a limiting face of the  basis shape;
+  * to or from a limiting plane;
+  * to a height.
 
-@subsubsection occt_modalg_11_3_8 Discretize faces
-Discretization of faces is the general part of meshing algorithm. At this stage edges tessellation data obtained and processed on previous steps is used to form contours of target faces and passed as input to the triangulation algorithm. Default implementation is provided by *BRepMesh_FaceDiscret* class which represents a starter for triangulation algorithm. It iterates over faces available in the data model, creates an instance of the triangulation algorithm according to the type of surface associated with each face via *IMeshTools_MeshAlgoFactory* and executes it. Each face is processed separately, thus it is possible to process faces in a parallel mode. The class diagram of face discretization is given in the figure below.
-@figure{/user_guides/modeling_algos/images/modeling_algos_mesh_004.svg,"Class diagram of face discrete stage",300}
+A class object is  created or initialized from 
+  * a shape (basic shape);
+  * a wire (base of rib or  groove);
+  * a plane (plane of the wire);
+  * direction1 (a vector along  which thickness will be built up);
+  * direction2 (vector opposite  to the previous one along which thickness will be built up, may be null);
+  * a Boolean indicating the type  of operation (fusion=rib or cut=groove) on the basic shape;
+  * another Boolean indicating  if self-intersections have to be found (not used in every case).
+  
+**Linear Form**
+  
+Linear form is implemented in *MakeLinearForm* class, which creates a rib or a groove  along a planar surface. There is one *Perform()* method, which performs a  prism from the wire along the *direction1* and *direction2* interacting with base shape *Sbase*. The height of the prism is *Magnitude(Direction1)+Magnitude(direction2)*.  
 
-In general, face meshing algorithms have the following structure:
-  * *BRepMesh_BaseMeshAlgo* implements *IMeshTools_MeshAlgo* interface and the base functionality for inherited algorithms. The main goal of this class is to initialize an instance of *BRepMesh_DataStructureOfDelaun* as well as auxiliary data structures suitable for nested algorithms using face model data passed as input parameter. Despite implementation of triangulation algorithm this structure is currently supposed as common for OCCT. However, the user is free to implement a custom algorithm and supporting data structure accessible via *IMeshTools_MeshAlgo* interface, e.g. to connect a 3-rd party meshing tool that does not support *TopoDS_Shape* out of box. For this, such structure provides the possibility to distribute connectors to various algorithms in the form of plugins;
-  * *BRepMesh_DelaunayBaseMeshAlgo* and *BRepMesh_SweepLineMeshAlgo* classes implement core meshing functionality operating directly on an instance of *BRepMesh_DataStructureOfDelaun*. The algorithms represent mesh generation tools adding new points from the data structure to the final mesh;
-  * *BRepMesh_NodeInsertionMeshAlgo* class represents a wrapper intended to extend the algorithm inherited from *BRepMesh_BaseMeshAlgo* to enable the functionality generating surface nodes and inserting them into the structure. On this level, an instance of the classification tool is created and can be used to accept-reject internal nodes. In addition, computations necessary for scaling UV coordinates of points relatively to the range specified for the corresponding direction are performed. As far as both triangulation algorithms work on static data provided by the structure, new nodes are added at the initialization stage. Surface nodes are generated by an auxiliary tool called range splitter and passed as template parameter (see Range splitter);
-  * Classes *BRepMesh_DelaunayNodeInsertionMeshAlgo* and *BRepMesh_SweepLineNodeInsertionMeshAlgo* implement algorithm-specific functionality related to addition of internal nodes supplementing functionality provided by *BRepMesh_NodeInsertionMeshAlgo*;
-  * *BRepMesh_DelaunayDeflectionControlMeshAlgo* extends functionality of *BRepMesh_DelaunayNodeInsertionMeshAlgo* by additional procedure controlling deflection of generated triangles.
+~~~~~
+BRepBuilderAPI_MakeWire mkw; 
+gp_Pnt p1 = gp_Pnt(0.,0.,0.); 
+gp_Pnt p2 = gp_Pnt(200.,0.,0.); 
+mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
+p1 = p2; 
+p2 = gp_Pnt(200.,0.,50.); 
+mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
+p1 = p2; 
+p2 = gp_Pnt(50.,0.,50.); 
+mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
+p1 = p2; 
+p2 = gp_Pnt(50.,0.,200.); 
+mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
+p1 = p2; 
+p2 = gp_Pnt(0.,0.,200.); 
+mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); 
+p1 = p2; 
+mkw.Add(BRepBuilderAPI_MakeEdge(p2,gp_Pnt(0.,0.,0.))); 
+TopoDS_Shape S = BRepBuilderAPI_MakePrism(BRepBuilderAPI_MakeFace 
+       (mkw.Wire()),gp_Vec(gp_Pnt(0.,0.,0.),gp_P 
+        nt(0.,100.,0.))); 
+TopoDS_Wire W = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(gp_Pnt 
+       (50.,45.,100.), 
+gp_Pnt(100.,45.,50.))); 
+Handle(Geom_Plane) aplane = 
+       new Geom_Plane(gp_Pnt(0.,45.,0.),  gp_Vec(0.,1.,0.)); 
+BRepFeat_MakeLinearForm aform(S, W, aplane, gp_Dir 
+       (0.,5.,0.), gp_Dir(0.,-3.,0.),  1, Standard_True); 
+aform.Perform(); 
+TopoDS_Shape res = aform.Shape(); 
+~~~~~
 
-BRepMesh provides user a way to switch default triangulation algorithm to a custom one, either implemented by user or available worldwide.
-There are three base classes that can be currently used to integrate 3rd-party algorithms:
-  * *BRepMesh_ConstrainedBaseMeshAlgo* base class for tools providing generation of triangulations with constraints requiring no common processing by BRepMesh;
-  * *BRepMesh_CustomBaseMeshAlgo* provides the entry point for generic algorithms without support of constraints and supposed for generation of base mesh only.
-    Constraint edges are processed using standard functionality provided by the component itself upon background mesh produced by 3rd-party solver;
-  * *BRepMesh_CustomDelaunayBaseMeshAlgo* contains initialization part for tools used by BRepMesh for checks or optimizations using results of 3rd-party algorithm.
+@figure{/user_guides/modeling_algos/images/modeling_algos_image051.png,"Creating a rib",240}
 
-Meshing algorithms could be provided by implemeting IMeshTools_MeshAlgoFactory with related interfaces and passing it to BRepMesh_Context::SetFaceDiscret().
-OCCT comes with two base 2D meshing algorithms: BRepMesh_MeshAlgoFactory (used by default) and BRepMesh_DelabellaMeshAlgoFactory.
+**Gluer**
 
-The following example demonstrates how it could be done from Draw environment:
-~~~~~
-psphere s 10
+The class *BRepFeat_Gluer* allows gluing two solids along faces. The contact faces of the glued  shape must not have parts outside the contact faces of the basic shape. Upon completion the algorithm gives the glued shape with cut out parts of faces inside the shape.
 
-### Default Algo ###
-incmesh s 0.0001 -algo default
+The class is created or  initialized from two shapes: the “glued” shape and the basic shape (on which  the other shape is glued). 
+Two *Bind* methods are  used to bind a face of the glued shape to a face of the basic shape and an edge  of the glued shape to an edge of the basic shape. 
 
-### Delabella Algo ###
-incmesh s 0.0001 -algo delabella
-~~~~~
+**Note** that every face and edge has to be  bounded, if two edges of two glued faces are  coincident they must be explicitly bounded.
 
-The code snippet below shows passing a custom mesh factory to BRepMesh_IncrementalMesh:
 ~~~~~
-IMeshTools_Parameters aMeshParams;
-Handle(IMeshTools_Context) aContext = new BRepMesh_Context();
-aContext->SetFaceDiscret (new BRepMesh_FaceDiscret (new BRepMesh_DelabellaMeshAlgoFactory()));
+TopoDS_Shape Sbase = ...; // the basic shape 
+TopoDS_Shape Sglued = ...; // the glued shape 
 
-BRepMesh_IncrementalMesh aMesher;
-aMesher.SetShape (aShape);
-aMesher.ChangeParameters() = aMeshParams;
+TopTools_ListOfShape Lfbase; 
+TopTools_ListOfShape Lfglued; 
+// Determination of the glued faces 
+... 
 
-aMesher.Perform (aContext);
+BRepFeat_Gluer theGlue(Sglue, Sbase); 
+TopTools_ListIteratorOfListOfShape itlb(Lfbase); 
+TopTools_ListIteratorOfListOfShape itlg(Lfglued); 
+for (; itlb.More(); itlb.Next(), itlg(Next()) { 
+const TopoDS_Face& f1 = TopoDS::Face(itlg.Value()); 
+const TopoDS_Face& f2 = TopoDS::Face(itlb.Value()); 
+theGlue.Bind(f1,f2); 
+// for example, use the class FindEdges from LocOpe to 
+// determine coincident edges 
+LocOpe_FindEdge fined(f1,f2); 
+for (fined.InitIterator(); fined.More(); fined.Next()) { 
+theGlue.Bind(fined.EdgeFrom(),fined.EdgeTo()); 
+} 
+} 
+theGlue.Build(); 
+if (theGlue.IsDone() { 
+TopoDS_Shape  theResult = theGlue; 
+... 
+} 
 ~~~~~
 
-#### Range splitter
-Range splitter tools provide functionality to generate internal surface nodes defined within the range computed using discrete model data. The base functionality is provided by *BRepMesh_DefaultRangeSplitter* which can be used without modifications in case of planar surface. The default splitter does not generate any internal node.
+@subsubsection occt_modalg_9_2_4 Split Shape
 
-*BRepMesh_ConeRangeSplitter*, *BRepMesh_CylinderRangeSplitter* and *BRepMesh_SphereRangeSplitter* are specializations of the default splitter intended for quick generation of internal nodes for the corresponding type of analytical surface.
+The class *BRepFeat_SplitShape* is used to split faces of a shape into wires or edges. The shape  containing the new entities is rebuilt, sharing the unmodified ones. 
 
-*BRepMesh_UVParamRangeSplitter* implements base functionality taking discretization points of face border into account for node generation. Its successors BRepMesh_TorusRangeSplitter and *BRepMesh_NURBSRangeSplitter* extend the base functionality for toroidal and NURBS surfaces correspondingly.
+The class is created or  initialized from a shape (the basic shape). 
+Three Add methods are  available: 
+* *Add(Wire, Face)* -- adds  a new wire on a face of the basic shape. 
+* *Add(Edge, Face)* -- adds  a new edge on a face of the basic shape. 
+* *Add(EdgeNew, EdgeOld)* -- adds  a new edge on an existing one (the old edge must contain the new edge). 
 
-@subsubsection occt_modalg_11_3_9 Postprocess discrete model
-This stage implements actions to be performed after meshing of faces. Depending on target goals it can be changed or omitted. By default, *BRepMesh_ModelPostProcessor* commits polygonal data stored in the data model to *TopoDS_Edge*. 
+**Note** The added wires and edges must  define closed wires on faces or wires located between two  existing edges. Existing edges must not be intersected. 
 
+~~~~~
+TopoDS_Shape Sbase = ...; // basic shape 
+TopoDS_Face Fsplit = ...; // face of Sbase 
+TopoDS_Wire Wsplit = ...; // new wire contained in Fsplit 
+BRepFeat_SplitShape Spls(Sbase); 
+Spls.Add(Wsplit, Fsplit); 
+TopoDS_Shape theResult = Spls; 
+...
+~~~~~
 
-@section occt_modalg_defeaturing 3D Model Defeaturing
+@subsection occt_modalg_defeaturing 3D Model Defeaturing
 
 The Open CASCADE Technology Defeaturing algorithm is intended for removal of the unwanted parts or features from the model. These parts can be holes, protrusions, gaps, chamfers, fillets, etc.
 
@@ -3353,14 +2978,11 @@ Take a look at the simple shape on the image below:
 
 Removal of all three faces of the gap is not going to work, because there will be no face to fill the transverse part of the step.
 Although, removal of only two faces, keeping one of the transverse faces, will fill the gap with the kept face:
-<table align="center">
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im002.png,"Keeping the right transverse face",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im003.png,"Keeping the left transverse face",220}</td>
-</tr>
-</table>
 
-@subsection occt_modalg_defeaturing_usage Usage
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im002.png,"Keeping the right transverse face",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im003.png,"Keeping the left transverse face",220}
+
+@subsubsection occt_modalg_defeaturing_usage Usage
 
 Here is the example of usage of the *BRepAlgoAPI_Defeaturing* algorithm on the C++ level:
 ~~~~
@@ -3409,72 +3031,55 @@ The @ref occt_draw_hist "standard history commands" can be used to track the his
 
 For more details on commands above, refer to the @ref occt_draw_defeaturing "Defeaturing commands" of the Draw test harness user guide.
 
-@subsection occt_modalg_defeaturing_examples Examples
+@subsubsection occt_modalg_defeaturing_examples Examples
 
 Here are the examples of defeaturing of the ANC101 model:
 
 @figure{/user_guides/modeling_algos/images/modeling_algos_rf_im004.png,"ANC101 model",220}</td>
 
-<table align="center">
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im005.png,"Removing the cylindrical protrusion",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im006.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im007.png,"Removing the cylindrical holes",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im008.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im009.png,"Removing the cylindrical holes",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im010.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im011.png,"Removing the small gaps in the front",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im012.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im013.png,"Removing the gaps in the front completely",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im014.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im015.png,"Removing the cylindrical protrusion",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im016.png,"Result",220}</td></td>
-</tr>
-</table>
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im005.png,"Removing the cylindrical protrusion",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im006.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im007.png,"Removing the cylindrical holes",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im008.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im009.png,"Removing the cylindrical holes",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im010.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im011.png,"Removing the small gaps in the front",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im012.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im013.png,"Removing the gaps in the front completely",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im014.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im015.png,"Removing the cylindrical protrusion",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im016.png,"Result",220}
 
 Here are the few examples of defeaturing of the model containing boxes with blends:
 
-@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im017.png,"Box blend model",220}</td>
-
-<table align="center">
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im018.png,"Removing the blend",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im019.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im020.png,"Removing the blend",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im021.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im022.png,"Removing the blend",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im023.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im024.png,"Removing the blend",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im025.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im026.png,"Removing the blend",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im027.png,"Result",220}</td></td>
-</tr>
-<tr>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im028.png,"Removing the blend",220}</td>
-  <td>@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im029.png,"Result",220}</td></td>
-</tr>
-</table>
-
-
-@section occt_modalg_makeperiodic 3D Model Periodicity
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im017.png,"Box blend model",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im018.png,"Removing the blend",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im019.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im020.png,"Removing the blend",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im021.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im022.png,"Removing the blend",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im023.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im024.png,"Removing the blend",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im025.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im026.png,"Removing the blend",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im027.png,"Result",220}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im028.png,"Removing the blend",220}
+@figure{/user_guides/modeling_algos/images/modeling_algos_rf_im029.png,"Result",220}
+
+
+@subsection occt_modalg_makeperiodic 3D Model Periodicity
 
 Open CASCADE Technology provides tools for making an arbitrary 3D model (or just shape) periodic in 3D space in the specified directions.
 
@@ -3508,7 +3113,7 @@ If necessary the algorithm will trim the shape to fit into the requested period
 E.g. let's make the L-shape periodic only in X direction with the period 2 starting at X parameter 4:
 @figure{/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im005.png,"Periodic trimmed shape",220}
 
-@subsection occt_modalg_makeperiodic_how_it_works How the shape is made periodic
+@subsubsection occt_modalg_makeperiodic_how_it_works How the shape is made periodic
 
 For making the shape periodic in certain direction the algorithm performs the following steps:
 * Creates the copy of the shape and moves it on the period into negative side of the requested direction;
@@ -3520,12 +3125,12 @@ Repeated copying of the geometry ensures that the corner edges of the periodic s
 
 Thus, in the periodic shape the geometry from positive side of the shape is always copied on the negative side of periodic directions.
 
-@subsection occt_modalg_makeperiodic_association Opposite shapes association
+@subsubsection occt_modalg_makeperiodic_association Opposite shapes association
 
 The algorithm also associates the identical (or twin) shapes located on the opposite sides of the periodic shape. By the construction, the twin shapes should always have the same geometry and distanced from each other on the period.
 It is possible that the shape does not have any twins. It means that when repeating this shape will not touch the opposite side of the shape. In the example when the periods of the shape are grater than its extensions, non of the sub-shapes has a twin.
 
-@subsection occt_modalg_makeperiodic_repetition Periodic shape repetition
+@subsubsection occt_modalg_makeperiodic_repetition Periodic shape repetition
 
 The algorithm also provides the methods to repeat the periodic shape in periodic directions. To repeat shape the algorithm makes the requested number of copies of the shape and translates them one by one on the time * period value.
 After all copies are made and translated they are glued to have valid shape.
@@ -3534,7 +3139,7 @@ Single subsequent repetition in any direction will result already in 6 shapes.
 
 The repetitions can be cleared and started over.
 
-@subsection occt_modalg_makeperiodic_history History support
+@subsubsection occt_modalg_makeperiodic_history History support
 
 The algorithm supports the history of shapes modifications, thus it is possible to track how the shapes have been changed to make it periodic and what new shapes have been created during repetitions.
 Both split history and history of periodic shape repetition are available here. Note, that all repeated shapes are stored as generated into the history.
@@ -3542,7 +3147,7 @@ Both split history and history of periodic shape repetition are available here.
 
 *BRepTools_History* is used for history support.
 
-@subsection occt_modalg_makeperiodic_errors Errors/Warnings
+@subsubsection occt_modalg_makeperiodic_errors Errors/Warnings
 
 The algorithm supports the Error/Warning reporting system which allows obtaining the extended overview of the errors and warning occurred during the operation.
 As soon as any error appears the algorithm stops working. The warnings allow continuing the job, informing the user that something went wrong.
@@ -3554,7 +3159,7 @@ The algorithm returns the following alerts:
 
 For more information on the error/warning reporting system please see the chapter @ref specification__boolean_ers "Errors and warnings reporting system" of Boolean operations user guide.
 
-@subsection occt_modalg_makeperiodic_usage Usage
+@subsubsection occt_modalg_makeperiodic_usage Usage
 
 The algorithm is implemented in the class *BOPAlgo_MakePeriodic*.
 Here is the example of its usage on the API level:
@@ -3618,7 +3223,7 @@ To track the history of a shape modification during MakePeriodic operation the @
 
 To have possibility to access the error/warning shapes of the operation use the *bdrawwarnshapes* command before running the algorithm (see command usage in the @ref specification__boolean_ers "Errors and warnings reporting system" of Boolean operations user guide).
 
-@subsection occt_modalg_makeperiodic_examples Examples
+@subsubsection occt_modalg_makeperiodic_examples Examples
 
 Imagine that you need to make the drills in the plate on the same distance from each other. To model this process it is necessary to make a lot of cylinders (simulating the drills) and cut these cylinders from the plate.
 With the periodicity tool, the process looks very simple:
@@ -3639,6 +3244,158 @@ bcut result plate drills
 @figure{/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im006.png,"Plate with drills",220}
 
 
+@section occt_modalg_10 Hidden Line  Removal
+
+To provide the  precision required in industrial design, drawings need to offer the possibility  of removing lines, which are hidden in a given projection. 
+
+For this the Hidden Line Removal component provides two algorithms: *HLRBRep_Algo*  and *HLRBRep_PolyAlgo*. 
+
+These algorithms are  based on the principle of comparing each edge of the shape to be visualized  with each of its faces, and calculating the visible and the hidden parts of  each edge. Note that these are not the  algorithms used in generating  shading, which calculate the visible and hidden parts of each face in a shape  to be visualized by comparing each face in the shape with every other face in  the same shape. 
+These algorithms operate  on a shape and remove or indicate edges hidden by faces. For a given  projection, they calculate a set of lines characteristic of the object being  represented. They are also used in conjunction with extraction utilities, which  reconstruct a new, simplified shape from a selection of the results of the  calculation. This new shape is made up of edges, which represent the shape  visualized in the projection. 
+
+*HLRBRep_Algo* allows working with the shape itself, whereas *HLRBRep_PolyAlgo* works with a polyhedral simplification of the shape. When you use *HLRBRep_Algo*, you obtain an exact result, whereas, when you use *HLRBRep_PolyAlgo*, you reduce the computation time, but obtain polygonal segments.
+
+No smoothing algorithm  is provided. Consequently, a polyhedron will be treated as such and the  algorithms will give the results in  form of line segments conforming to the  mathematical definition of the polyhedron. This is always the case with *HLRBRep_PolyAlgo*. 
+
+*HLRBRep_Algo* and *HLRBRep_PolyAlgo* can deal with any kind of object, for example, assemblies of  volumes, surfaces, and lines, as long as there are no unfinished  objects or points within it. 
+
+However, there some restrictions in HLR use:
+  * Points are not processed;
+  * Infinite faces or lines are not processed.
+
+  
+@figure{/user_guides/modeling_algos/images/modeling_algos_image052.png,"Sharp, smooth and sewn edges  in a simple screw shape",320}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_image053.png,"Outline edges  and isoparameters in the same shape",320}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_image054.png,"A simple screw shape seen with shading",320}
+
+@figure{/user_guides/modeling_algos/images/modeling_algos_image055.png,"An extraction  showing hidden sharp edges",320}
+
+
+The following services are related to Hidden Lines Removal : 
+
+### Loading Shapes
+
+To pass a *TopoDS_Shape* to an *HLRBRep_Algo*  object, use *HLRBRep_Algo::Add*. With an *HLRBRep_PolyAlgo* object, use *HLRBRep_PolyAlgo::Load*. If you wish to add several shapes, use Add or Load as often  as necessary. 
+
+### Setting view parameters
+
+*HLRBRep_Algo::Projector* and *HLRBRep_PolyAlgo::Projector* set a projector object which defines the  parameters of the view. This object is an *HLRAlgo_Projector*. 
+
+### Computing the projections
+
+*HLRBRep_PolyAlgo::Update* launches the calculation of outlines of the shape visualized by the *HLRBRep_PolyAlgo* framework. 
+
+In the case of *HLRBRep_Algo*, use *HLRBRep_Algo::Update*. With this algorithm, you must also call the method *HLRBRep_Algo::Hide* to calculate visible and hidden lines of the  shape to be visualized. With an *HLRBRep_PolyAlgo* object, visible and hidden lines are computed by *HLRBRep_PolyHLRToShape*. 
+
+### Extracting edges
+
+The classes *HLRBRep_HLRToShape* and *HLRBRep_PolyHLRToShape* present a range of extraction filters for an *HLRBRep_Algo object* and an *HLRBRep_PolyAlgo* object, respectively. They highlight the type of  edge from the results calculated by the algorithm on a shape. With  both extraction classes, you can highlight the following types of output: 
+  * visible/hidden sharp edges;
+  * visible/hidden smooth edges;
+  * visible/hidden sewn edges;
+  * visible/hidden outline edges. 
+
+To perform extraction on an *HLRBRep_PolyHLRToShape* object, use *HLRBRep_PolyHLRToShape::Update*  function. 
+
+For an *HLRBRep_HLRToShape* object built from an *HLRBRepAlgo* object you can also highlight: 
+  * visible isoparameters and
+  * hidden isoparameters.
+
+@subsection occt_modalg_10_1 Examples
+
+### HLRBRep_Algo
+
+~~~~~
+// Build The algorithm object 
+myAlgo = new HLRBRep_Algo(); 
+
+// Add Shapes into the algorithm 
+TopTools_ListIteratorOfListOfShape anIterator(myListOfShape); 
+for (;anIterator.More();anIterator.Next()) 
+myAlgo-Add(anIterator.Value(),myNbIsos); 
+
+// Set The Projector (myProjector is a 
+HLRAlgo_Projector) 
+myAlgo-Projector(myProjector); 
+
+// Build HLR 
+myAlgo->Update(); 
+
+// Set The Edge Status 
+myAlgo->Hide(); 
+
+// Build the extraction object : 
+HLRBRep_HLRToShape aHLRToShape(myAlgo); 
+
+// extract the results : 
+TopoDS_Shape VCompound           = aHLRToShape.VCompound(); 
+TopoDS_Shape Rg1LineVCompound                            = 
+aHLRToShape.Rg1LineVCompound(); 
+TopoDS_Shape RgNLineVCompound                            = 
+aHLRToShape.RgNLineVCompound(); 
+TopoDS_Shape OutLineVCompound                            = 
+aHLRToShape.OutLineVCompound(); 
+TopoDS_Shape IsoLineVCompound                            = 
+aHLRToShape.IsoLineVCompound(); 
+TopoDS_Shape HCompound           = aHLRToShape.HCompound(); 
+TopoDS_Shape Rg1LineHCompound                            = 
+aHLRToShape.Rg1LineHCompound(); 
+TopoDS_Shape RgNLineHCompound                            = 
+aHLRToShape.RgNLineHCompound(); 
+TopoDS_Shape OutLineHCompound                            = 
+aHLRToShape.OutLineHCompound(); 
+TopoDS_Shape IsoLineHCompound                            = 
+aHLRToShape.IsoLineHCompound(); 
+~~~~~
+
+### HLRBRep_PolyAlgo
+
+
+~~~~~
+
+// Build The algorithm object 
+myPolyAlgo = new HLRBRep_PolyAlgo(); 
+
+// Add Shapes into the algorithm 
+TopTools_ListIteratorOfListOfShape 
+anIterator(myListOfShape); 
+for (;anIterator.More();anIterator.Next()) 
+myPolyAlgo-Load(anIterator.Value()); 
+
+// Set The Projector (myProjector is a 
+HLRAlgo_Projector) 
+myPolyAlgo->Projector(myProjector); 
+
+// Build HLR 
+myPolyAlgo->Update(); 
+
+// Build the extraction object : 
+HLRBRep_PolyHLRToShape aPolyHLRToShape; 
+aPolyHLRToShape.Update(myPolyAlgo); 
+
+// extract the results : 
+TopoDS_Shape VCompound = 
+aPolyHLRToShape.VCompound(); 
+TopoDS_Shape Rg1LineVCompound = 
+aPolyHLRToShape.Rg1LineVCompound(); 
+TopoDS_Shape RgNLineVCompound = 
+aPolyHLRToShape.RgNLineVCompound(); 
+TopoDS_Shape OutLineVCompound = 
+aPolyHLRToShape.OutLineVCompound(); 
+TopoDS_Shape HCompound = 
+aPolyHLRToShape.HCompound(); 
+TopoDS_Shape Rg1LineHCompound = 
+aPolyHLRToShape.Rg1LineHCompound(); 
+TopoDS_Shape RgNLineHCompound = 
+aPolyHLRToShape.RgNLineHCompound(); 
+TopoDS_Shape OutLineHCompound = 
+aPolyHLRToShape.OutLineHCompound(); 
+~~~~~
+
+
+
 @section occt_modalg_makeconnected Making touching shapes connected
 
 Open CASCADE Technology provides tools for making the same-dimensional touching shapes connected (or glued), i.e. for making the coinciding geometries topologically shared among shapes.
index df9682b59668becb583d0d99a8dd8c3cae91c6ed..593342d5912637a81b87ebac9b7b413e2c2d36ff 100644 (file)
Binary files a/dox/user_guides/modeling_data/images/modeling_data_image003.png and b/dox/user_guides/modeling_data/images/modeling_data_image003.png differ
index 48cfa12d3db6f0bcfa6ef98df0fa0485ae533352..801244f8e0a1e01cd54844618d6f552d14a8d517 100644 (file)
Binary files a/dox/user_guides/modeling_data/images/modeling_data_image014.png and b/dox/user_guides/modeling_data/images/modeling_data_image014.png differ
index 277cbb6ffa791b82addabdb467fdf5db6ad2c3b3..6f98d72fe3ae934beec6a74047d63d0e8a4f41dc 100644 (file)
Binary files a/dox/user_guides/modeling_data/images/modeling_data_image015.png and b/dox/user_guides/modeling_data/images/modeling_data_image015.png differ
index 0de514e7d029f35b9b3d0a5e7c7b3b836612e6d9..c8cd9d965c8fecfbc04ddac36b85d2bb2f86ded1 100644 (file)
@@ -7,7 +7,7 @@ Modeling Data {#occt_user_guides__modeling_data}
 
 Modeling Data supplies data structures to represent 2D and 3D geometric models. 
 
-This manual explains how to use Modeling Data. For advanced information on modeling data, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
+This manual explains how to use Modeling Data.
 
 @section occt_modat_1 Geometry Utilities
 
@@ -548,181 +548,6 @@ However, the Geom package essentially provides data structures, not algorithms.
 You can refer to the <i> GC</i> package to find more evolved construction algorithms for
 Geom objects.
 
-@section occt_modat_4 Properties of Shapes
-
-@subsection occt_modat_4_1 Local Properties of Shapes
-
-<i>BRepLProp</i> package provides the Local Properties of Shapes component, 
-which contains algorithms computing various local properties on edges and faces in a BRep model.
-
-The local properties which may be queried are:
-
-  * for a point of parameter u on a curve which supports an edge :
-    * the point,
-    * the derivative vectors, up to the third degree,
-    * the tangent vector,
-    * the normal,
-    * the curvature, and the center of curvature;
-  * for a point of parameter (u, v) on a surface which supports a face :
-    * the point,
-    * the derivative vectors, up to the second degree,
-    * the tangent vectors to the u and v isoparametric curves,
-    * the normal vector,
-    * the minimum or maximum curvature, and the corresponding directions of curvature;
-  * the degree of continuity of a curve which supports an edge, built by the concatenation of two other edges, at their junction point.
-
-Analyzed edges and faces are described as <i> BRepAdaptor</i> curves and surfaces, 
-which provide shapes with an interface for the description of their geometric support. 
-The base point for local properties is defined by its u parameter value on a curve, or its (u, v) parameter values on a surface.
-
-@subsection occt_modat_4_2 Local Properties of Curves and Surfaces
-
-The "Local Properties of Curves and Surfaces" component provides algorithms for computing various local properties on a Geom curve (in 2D or 3D space) or a surface. It is composed of:
-
-  * <i> Geom2dLProp</i> package, which allows computing Derivative and Tangent vectors (normal and curvature) of a parametric point on a 2D curve;
-  * <i> GeomLProp </i> package, which provides local properties on 3D curves and surfaces
-  * <i> LProp </i> package, which provides an enumeration used to characterize a particular point on a 2D curve.
-
-Curves are either <i> Geom_Curve </i> curves (in 3D space) or <i> Geom2d_Curve </i> curves (in the plane). 
-Surfaces are <i> Geom_Surface </i> surfaces. The point on which local properties are calculated 
-is defined by its u parameter value on a curve, and its (u,v) parameter values on a surface.
-
-It is possible to query the same local properties for points as mentioned above, and additionally for 2D curves:
-
-  * the points corresponding to a minimum or a maximum of curvature;
-  * the inflection points.
-  
-  
-#### Example: How to check the surface concavity
-
-To check the concavity of a surface, proceed as follows:
-
-  1. Sample the surface and compute at each point the Gaussian curvature.
-  2. If the value of the curvature changes of sign, the surface is concave or convex depending on the point of view.
-  3. To compute a Gaussian curvature, use the class <i> SLprops</i> from <i> GeomLProp</i>, which instantiates the generic class <i> SLProps </i>from <i> LProp</i> and use the method <i> GaussianCurvature</i>.
-
-@subsection occt_modat_4_2a Continuity of Curves and Surfaces
-
-Types of supported continuities for curves and surfaces are described in *GeomAbs_Shape* enumeration.
-
-In respect of curves, the following types of continuity are supported (see the figure below):
-  * C0 (*GeomAbs_C0*) - parametric continuity. It is the same as G0 (geometric continuity), so the last one is not represented by separate variable.
-  * G1 (*GeomAbs_G1*) - tangent vectors on left and on right are parallel.
-  * C1 (*GeomAbs_C1*) - indicates the continuity of the first derivative.
-  * G2 (*GeomAbs_G2*) - in addition to G1 continuity, the centers of curvature on left and on right are the same.
-  * C2 (*GeomAbs_C2*) - continuity of all derivatives till the second order.
-  * C3 (*GeomAbs_C3*) - continuity of all derivatives till the third order.
-  * CN (*GeomAbs_CN*) - continuity of all derivatives till the N-th order (infinite order of continuity).
-
-*Note:* Geometric continuity (G1, G2) means that the curve can be reparametrized to have parametric (C1, C2) continuity.
-
-@figure{/user_guides/modeling_data/images/modeling_data_continuity_curves.svg,"Continuity of Curves",420}
-
-The following types of surface continuity are supported:
-  * C0 (*GeomAbs_C0*) - parametric continuity (the surface has no points or curves of discontinuity).
-  * G1 (*GeomAbs_G1*) - surface has single tangent plane in each point.
-  * C1 (*GeomAbs_C1*) - indicates the continuity of the first derivatives.
-  * G2 (*GeomAbs_G2*) - in addition to G1 continuity, principal curvatures and directions are continuous.
-  * C2 (*GeomAbs_C2*) - continuity of all derivatives till the second order.
-  * C3 (*GeomAbs_C3*) - continuity of all derivatives till the third order.
-  * CN (*GeomAbs_CN*) - continuity of all derivatives till the N-th order (infinite order of continuity).
-
-@figure{/user_guides/modeling_data/images/modeling_data_continuity_surfaces.svg,"Continuity of Surfaces",420}
-
-Against single surface, the connection of two surfaces (see the figure above) defines its continuity in each intersection point only. Smoothness of connection is a minimal value of continuities on the intersection curve.
-
-
-@subsection occt_modat_4_2b Regularity of Shared Edges
-
-Regularity of an edge is a smoothness of connection of two faces sharing this edge. In other words, regularity is a minimal continuity between connected faces in each point on edge.
-
-Edge's regularity can be set by *BRep_Builder::Continuity* method. To get the regularity use *BRep_Tool::Continuity* method.
-
-Some algorithms like @ref occt_modalg_6 "Fillet" set regularity of produced edges by their own algorithms. On the other hand, some other algorithms (like @ref specification__boolean_operations "Boolean Operations", @ref occt_user_guides__shape_healing "Shape Healing", etc.) do not set regularity. If the regularity is needed to be set correctly on a shape, the method *BRepLib::EncodeRegularity* can be used. It calculates and sets correct values for all edges of the shape.
-
-The regularity flag is extensively used by the following high level algorithms: @ref occt_modalg_6_1_2 "Chamfer", @ref occt_modalg_7_3 "Draft Angle", @ref occt_modalg_10 "Hidden Line Removal", @ref occt_modalg_9_2_3 "Gluer".
-
-  
-@subsection occt_modat_4_3 Global Properties of Shapes
-
-The Global Properties of Shapes component provides algorithms for computing the global 
-properties of a composite geometric system in 3D space, and frameworks to query the computed results.
-
-The global properties computed for a system are :
-  * mass,
-  * mass center,
-  * matrix of inertia,
-  * moment about an axis,
-  * radius of gyration about an axis,
-  * principal properties of inertia such as principal axis, principal moments, and principal radius of gyration.
-
-Geometric systems are generally defined as shapes. Depending on the way they are analyzed, these shapes will give properties of:
-
-  * lines induced from the edges of the shape,
-  * surfaces induced from the faces of the shape, or
-  * volumes induced from the solid bounded by the shape.
-
-The global properties of several systems may be brought together to give the global properties of the system composed of the sum of all individual systems.
-
-The Global Properties of Shapes component is composed of:
-* seven functions for computing global properties of a shape: one function for lines, two functions for surfaces and four functions for volumes. The choice of functions depends on input parameters and algorithms used for computation (<i>BRepGProp</i> global functions),
-* a framework for computing global properties for a set of points (<i>GProp_PGProps</i>),
-* a general framework to bring together the global properties retained by several more elementary frameworks, and provide a general programming interface to consult computed global properties.
-
-Packages *GeomLProp* and *Geom2dLProp*  provide algorithms calculating the local properties of curves and surfaces
-
-A curve (for one parameter) has the following local properties: 
-- Point 
-- Derivative
-- Tangent 
-- Normal
-- Curvature
-- Center of curvature. 
-
-A surface (for two parameters U and V) has the following local properties: 
-- point
-- derivative for U and V)
-- tangent line (for U and V)
-- normal
-- max curvature 
-- min curvature 
-- main directions of curvature
-- mean curvature
-- Gaussian curvature
-
-The following methods are available:
-* *CLProps* -- calculates the local properties of a curve (tangency, curvature,normal); 
-* *CurAndInf2d* -- calculates the maximum and minimum curvatures and the inflection points of 2d curves; 
-* *SLProps* -- calculates the local properties of a surface (tangency, the normal and curvature). 
-* *Continuity* -- calculates regularity at the junction of two curves. 
-
-Note that the B-spline curve and surface are accepted but they are not cut into pieces of the desired continuity. It is the global continuity, which is seen. 
-
-@subsection occt_modat_4_4 Adaptors for Curves and Surfaces
-
-Some Open CASCADE Technology general algorithms may work theoretically on numerous types of curves or surfaces. 
-
-To do this, they simply get the services required of the analyzed  curve or surface through an interface so as to a single API,  whatever the type of curve or surface. These interfaces are called adaptors.
-
-For example, <i> Adaptor3d_Curve </i> is the abstract class which provides  the required services by an algorithm which uses any 3d curve.
-
-<i> GeomAdaptor </i> package provides interfaces:
-  * On a Geom curve;
-  * On a curve lying on a Geom surface;
-  * On a Geom surface;
-
-<i> Geom2dAdaptor</i> package provides interfaces :
-  * On a <i>Geom2d</i> curve.
-
-<i> BRepAdaptor </i> package provides interfaces:
-  * On a Face
-  * On an Edge
-
-When you write an algorithm which operates on geometric objects, use <i> Adaptor3d</i> (or <i> Adaptor2d</i>) objects. 
-
-As a result, you can use the algorithm with any kind of object, if you provide for this object an interface derived from *Adaptor3d* or *Adaptor2d*.
-These interfaces are easy to use: simply create an adapted curve or surface from a *Geom2d* curve, and then use this adapted curve as an argument for the algorithm? which requires it.
-
 
 @section occt_modat_5 Topology
 
@@ -763,39 +588,9 @@ Three additional packages provide tools to access and manipulate this abstract t
   * <i> TopTools</i> package provides basic tools to use on topological data structures.
   * <i> TopExp</i> package provides classes to explore and manipulate the topological data structures described in the TopoDS package.
   * <i> BRepTools </i> package provides classes to explore, manipulate, read and write BRep data structures. These more complex data structures combine topological descriptions with additional geometric information, and include rules for evaluating equivalence of different possible representations of the same object, for example, a point.
 
-@subsection occt_modat_5_1  Shape Location
-
-A local coordinate system can be viewed as either of the following: 
-- A right-handed trihedron with an origin and three orthonormal vectors. The *gp_Ax2* package corresponds to this definition. 
-- A transformation of a +1 determinant, allowing the transformation of coordinates between local and global references frames. This corresponds to the *gp_Trsf*. 
-
-*TopLoc* package distinguishes two notions: 
-- *TopLoc_Datum3D* class provides the elementary reference coordinate, represented by a right-handed orthonormal system of axes or by a right-handed unitary transformation. 
-- *TopLoc_Location* class provides the composite reference coordinate made from elementary ones. It is a marker composed of a chain of references to elementary markers. The resulting cumulative transformation is stored in order to avoid recalculating the sum of the transformations for the whole list. 
-
-@figure{/user_guides/modeling_data/images/modeling_data_image005.png,"Structure of TopLoc_Location",420}
-
-Two reference coordinates are equal if they are made up of the same elementary coordinates in the same order. There is no numerical comparison. Two coordinates can thus correspond to the same transformation without being equal if they were not built from the same elementary coordinates. 
-
-For example, consider three elementary coordinates: 
-R1, R2, R3 
-The composite coordinates are: 
-C1 = R1  * R2, 
-C2 = R2  * R3 
-C3 = C1  * R3 
-C4 = R1  * C2 
-
-**NOTE** C3 and C4 are equal because they are both R1 * R2 * R3.  
-
-The *TopLoc* package is chiefly targeted at the topological data structure, but it can be used for other purposes. 
-
-Change of coordinates
----------------------
-
-*TopLoc_Datum3D* class represents a change of elementary coordinates. Such changes must be shared so this class inherits from *Standard_Transient*. The coordinate is represented by a transformation *gp_Trsfpackage*. This transformation has no scaling factor. 
-
-@subsection occt_modat_5_2 Naming shapes, sub-shapes, their orientation and state
+@subsection occt_modat_5_2 Shape content
 
 The **TopAbs** package provides general enumerations describing the basic concepts of topology and methods to handle these enumerations. It contains no classes. This package has been separated from the rest of the topology because the notions it contains are sufficiently general to be used by all topological tools. This avoids redefinition of enumerations by remaining independent of modeling resources. The TopAbs package defines three notions: 
 - **Type** *TopAbs_ShapeEnum*;
@@ -879,6 +674,37 @@ The State enumeration can also be used to specify various parts of an object. Th
 
 @figure{/user_guides/modeling_data/images/modeling_data_image010.png,"State specifies the parts of an edge intersecting a face",420}
 
+@subsubsection occt_modat_5_1  Shape Location
+
+A local coordinate system can be viewed as either of the following: 
+- A right-handed trihedron with an origin and three orthonormal vectors. The *gp_Ax2* package corresponds to this definition. 
+- A transformation of a +1 determinant, allowing the transformation of coordinates between local and global references frames. This corresponds to the *gp_Trsf*. 
+
+*TopLoc* package distinguishes two notions: 
+- *TopLoc_Datum3D* class provides the elementary reference coordinate, represented by a right-handed orthonormal system of axes or by a right-handed unitary transformation. 
+- *TopLoc_Location* class provides the composite reference coordinate made from elementary ones. It is a marker composed of a chain of references to elementary markers. The resulting cumulative transformation is stored in order to avoid recalculating the sum of the transformations for the whole list. 
+
+@figure{/user_guides/modeling_data/images/modeling_data_image005.png,"Structure of TopLoc_Location",420}
+
+Two reference coordinates are equal if they are made up of the same elementary coordinates in the same order. There is no numerical comparison. Two coordinates can thus correspond to the same transformation without being equal if they were not built from the same elementary coordinates. 
+
+For example, consider three elementary coordinates: 
+R1, R2, R3 
+The composite coordinates are: 
+C1 = R1  * R2, 
+C2 = R2  * R3 
+C3 = C1  * R3 
+C4 = R1  * C2 
+
+**NOTE** C3 and C4 are equal because they are both R1 * R2 * R3.  
+
+The *TopLoc* package is chiefly targeted at the topological data structure, but it can be used for other purposes. 
+
+Change of coordinates
+---------------------
+
+*TopLoc_Datum3D* class represents a change of elementary coordinates. Such changes must be shared so this class inherits from *Standard_Transient*. The coordinate is represented by a transformation *gp_Trsfpackage*. This transformation has no scaling factor.
+
 @subsection occt_modat_5_3 Manipulating shapes and sub-shapes
 
 The *TopoDS* package describes the topological data structure with the following characteristics: 
@@ -1106,7 +932,7 @@ The following steps are performed:
   } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsection occt_modat_5_5 Lists and Maps of Shapes
+@subsubsection occt_modat_5_5 Lists and Maps of Shapes
 
 **TopTools** package contains tools for exploiting the *TopoDS* data structure. It is an instantiation of the tools from *TCollection* package with the Shape classes of *TopoDS*. 
 
@@ -1257,7 +1083,7 @@ Below is the auxiliary function, which copies the element of rank *i* from the m
   }
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_modat_5_5_1 Wire Explorer
+**Wire Explorer**
 
 *BRepTools_WireExplorer* class can access edges of a wire in their order of connection. 
 
@@ -1277,22 +1103,180 @@ For example, in the wire in the image we want to recuperate the edges in the ord
   } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsection occt_modat_5_6 Storage of shapes
+@section occt_modat_4 Properties of Shapes
 
-*BRepTools* and *BinTools* packages contain methods *Read* and *Write* allowing to read and write a Shape to/from a stream or a file.
-The methods provided by *BRepTools* package use ASCII storage format; *BinTools* package uses binary format.
-Each of these methods has two arguments:
-- a *TopoDS_Shape* object to be read/written;
-- a stream object or a file name to read from/write to.
+@subsection occt_modat_4_1 Local Properties of Shapes
 
-The following sample code reads a shape from ASCII file and writes it to a binary one:
+<i>BRepLProp</i> package provides the Local Properties of Shapes component, 
+which contains algorithms computing various local properties on edges and faces in a BRep model.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-  TopoDS_Shape aShape;
-  if (BRepTools::Read (aShape, "source_file.txt")) {
-    BinTools::Write (aShape, "result_file.bin");
-  }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The local properties which may be queried are:
+
+  * for a point of parameter u on a curve which supports an edge :
+    * the point,
+    * the derivative vectors, up to the third degree,
+    * the tangent vector,
+    * the normal,
+    * the curvature, and the center of curvature;
+  * for a point of parameter (u, v) on a surface which supports a face :
+    * the point,
+    * the derivative vectors, up to the second degree,
+    * the tangent vectors to the u and v isoparametric curves,
+    * the normal vector,
+    * the minimum or maximum curvature, and the corresponding directions of curvature;
+  * the degree of continuity of a curve which supports an edge, built by the concatenation of two other edges, at their junction point.
+
+Analyzed edges and faces are described as <i> BRepAdaptor</i> curves and surfaces, 
+which provide shapes with an interface for the description of their geometric support. 
+The base point for local properties is defined by its u parameter value on a curve, or its (u, v) parameter values on a surface.
+
+@subsection occt_modat_4_2 Local Properties of Curves and Surfaces
+
+The "Local Properties of Curves and Surfaces" component provides algorithms for computing various local properties on a Geom curve (in 2D or 3D space) or a surface. It is composed of:
+
+  * <i> Geom2dLProp</i> package, which allows computing Derivative and Tangent vectors (normal and curvature) of a parametric point on a 2D curve;
+  * <i> GeomLProp </i> package, which provides local properties on 3D curves and surfaces
+  * <i> LProp </i> package, which provides an enumeration used to characterize a particular point on a 2D curve.
+
+Curves are either <i> Geom_Curve </i> curves (in 3D space) or <i> Geom2d_Curve </i> curves (in the plane). 
+Surfaces are <i> Geom_Surface </i> surfaces. The point on which local properties are calculated 
+is defined by its u parameter value on a curve, and its (u,v) parameter values on a surface.
+
+It is possible to query the same local properties for points as mentioned above, and additionally for 2D curves:
+
+  * the points corresponding to a minimum or a maximum of curvature;
+  * the inflection points.
+  
+  
+#### Example: How to check the surface concavity
+
+To check the concavity of a surface, proceed as follows:
+
+  1. Sample the surface and compute at each point the Gaussian curvature.
+  2. If the value of the curvature changes of sign, the surface is concave or convex depending on the point of view.
+  3. To compute a Gaussian curvature, use the class <i> SLprops</i> from <i> GeomLProp</i>, which instantiates the generic class <i> SLProps </i>from <i> LProp</i> and use the method <i> GaussianCurvature</i>.
+
+@subsection occt_modat_4_2a Continuity of Curves and Surfaces
+
+Types of supported continuities for curves and surfaces are described in *GeomAbs_Shape* enumeration.
+
+In respect of curves, the following types of continuity are supported (see the figure below):
+  * C0 (*GeomAbs_C0*) - parametric continuity. It is the same as G0 (geometric continuity), so the last one is not represented by separate variable.
+  * G1 (*GeomAbs_G1*) - tangent vectors on left and on right are parallel.
+  * C1 (*GeomAbs_C1*) - indicates the continuity of the first derivative.
+  * G2 (*GeomAbs_G2*) - in addition to G1 continuity, the centers of curvature on left and on right are the same.
+  * C2 (*GeomAbs_C2*) - continuity of all derivatives till the second order.
+  * C3 (*GeomAbs_C3*) - continuity of all derivatives till the third order.
+  * CN (*GeomAbs_CN*) - continuity of all derivatives till the N-th order (infinite order of continuity).
+
+*Note:* Geometric continuity (G1, G2) means that the curve can be reparametrized to have parametric (C1, C2) continuity.
+
+@figure{/user_guides/modeling_data/images/modeling_data_continuity_curves.svg,"Continuity of Curves",420}
+
+The following types of surface continuity are supported:
+  * C0 (*GeomAbs_C0*) - parametric continuity (the surface has no points or curves of discontinuity).
+  * G1 (*GeomAbs_G1*) - surface has single tangent plane in each point.
+  * C1 (*GeomAbs_C1*) - indicates the continuity of the first derivatives.
+  * G2 (*GeomAbs_G2*) - in addition to G1 continuity, principal curvatures and directions are continuous.
+  * C2 (*GeomAbs_C2*) - continuity of all derivatives till the second order.
+  * C3 (*GeomAbs_C3*) - continuity of all derivatives till the third order.
+  * CN (*GeomAbs_CN*) - continuity of all derivatives till the N-th order (infinite order of continuity).
+
+@figure{/user_guides/modeling_data/images/modeling_data_continuity_surfaces.svg,"Continuity of Surfaces",420}
+
+Against single surface, the connection of two surfaces (see the figure above) defines its continuity in each intersection point only. Smoothness of connection is a minimal value of continuities on the intersection curve.
+
+
+@subsection occt_modat_4_2b Regularity of Shared Edges
+
+Regularity of an edge is a smoothness of connection of two faces sharing this edge. In other words, regularity is a minimal continuity between connected faces in each point on edge.
+
+Edge's regularity can be set by *BRep_Builder::Continuity* method. To get the regularity use *BRep_Tool::Continuity* method.
+
+Some algorithms like @ref occt_modalg_6 "Fillet" set regularity of produced edges by their own algorithms. On the other hand, some other algorithms (like @ref specification__boolean_operations "Boolean Operations", @ref occt_user_guides__shape_healing "Shape Healing", etc.) do not set regularity. If the regularity is needed to be set correctly on a shape, the method *BRepLib::EncodeRegularity* can be used. It calculates and sets correct values for all edges of the shape.
+
+The regularity flag is extensively used by the following high level algorithms: @ref occt_modalg_6_1_2 "Chamfer", @ref occt_modalg_7_3 "Draft Angle", @ref occt_modalg_10 "Hidden Line Removal", @ref occt_modalg_9_2 "Gluer".
+
+  
+@subsection occt_modat_4_3 Global Properties of Shapes
+
+The Global Properties of Shapes component provides algorithms for computing the global 
+properties of a composite geometric system in 3D space, and frameworks to query the computed results.
+
+The global properties computed for a system are :
+  * mass,
+  * mass center,
+  * matrix of inertia,
+  * moment about an axis,
+  * radius of gyration about an axis,
+  * principal properties of inertia such as principal axis, principal moments, and principal radius of gyration.
+
+Geometric systems are generally defined as shapes. Depending on the way they are analyzed, these shapes will give properties of:
+
+  * lines induced from the edges of the shape,
+  * surfaces induced from the faces of the shape, or
+  * volumes induced from the solid bounded by the shape.
+
+The global properties of several systems may be brought together to give the global properties of the system composed of the sum of all individual systems.
+
+The Global Properties of Shapes component is composed of:
+* seven functions for computing global properties of a shape: one function for lines, two functions for surfaces and four functions for volumes. The choice of functions depends on input parameters and algorithms used for computation (<i>BRepGProp</i> global functions),
+* a framework for computing global properties for a set of points (<i>GProp_PGProps</i>),
+* a general framework to bring together the global properties retained by several more elementary frameworks, and provide a general programming interface to consult computed global properties.
+
+Packages *GeomLProp* and *Geom2dLProp*  provide algorithms calculating the local properties of curves and surfaces
+
+A curve (for one parameter) has the following local properties: 
+- Point 
+- Derivative
+- Tangent 
+- Normal
+- Curvature
+- Center of curvature. 
+
+A surface (for two parameters U and V) has the following local properties: 
+- point
+- derivative for U and V)
+- tangent line (for U and V)
+- normal
+- max curvature 
+- min curvature 
+- main directions of curvature
+- mean curvature
+- Gaussian curvature
+
+The following methods are available:
+* *CLProps* -- calculates the local properties of a curve (tangency, curvature,normal); 
+* *CurAndInf2d* -- calculates the maximum and minimum curvatures and the inflection points of 2d curves; 
+* *SLProps* -- calculates the local properties of a surface (tangency, the normal and curvature). 
+* *Continuity* -- calculates regularity at the junction of two curves. 
+
+Note that the B-spline curve and surface are accepted but they are not cut into pieces of the desired continuity. It is the global continuity, which is seen. 
+
+@subsection occt_modat_4_4 Adaptors for Curves and Surfaces
+
+Some Open CASCADE Technology general algorithms may work theoretically on numerous types of curves or surfaces. 
+
+To do this, they simply get the services required of the analyzed  curve or surface through an interface so as to a single API,  whatever the type of curve or surface. These interfaces are called adaptors.
+
+For example, <i> Adaptor3d_Curve </i> is the abstract class which provides  the required services by an algorithm which uses any 3d curve.
+
+<i> GeomAdaptor </i> package provides interfaces:
+  * On a Geom curve;
+  * On a curve lying on a Geom surface;
+  * On a Geom surface;
+
+<i> Geom2dAdaptor</i> package provides interfaces :
+  * On a <i>Geom2d</i> curve.
+
+<i> BRepAdaptor </i> package provides interfaces:
+  * On a Face
+  * On an Edge
+
+When you write an algorithm which operates on geometric objects, use <i> Adaptor3d</i> (or <i> Adaptor2d</i>) objects. 
+
+As a result, you can use the algorithm with any kind of object, if you provide for this object an interface derived from *Adaptor3d* or *Adaptor2d*.
+These interfaces are easy to use: simply create an adapted curve or surface from a *Geom2d* curve, and then use this adapted curve as an argument for the algorithm? which requires it.
 
 @section occt_modat_6 Bounding boxes
 
diff --git a/dox/user_guides/ocaf/images/tobj_image003.png b/dox/user_guides/ocaf/images/tobj_image003.png
new file mode 100644 (file)
index 0000000..ffb6b11
Binary files /dev/null and b/dox/user_guides/ocaf/images/tobj_image003.png differ
diff --git a/dox/user_guides/ocaf/images/tobj_image004.png b/dox/user_guides/ocaf/images/tobj_image004.png
new file mode 100644 (file)
index 0000000..264cca7
Binary files /dev/null and b/dox/user_guides/ocaf/images/tobj_image004.png differ
diff --git a/dox/user_guides/ocaf/images/tobj_image005.png b/dox/user_guides/ocaf/images/tobj_image005.png
new file mode 100644 (file)
index 0000000..cf79264
Binary files /dev/null and b/dox/user_guides/ocaf/images/tobj_image005.png differ
diff --git a/dox/user_guides/ocaf/images/tobj_image006.png b/dox/user_guides/ocaf/images/tobj_image006.png
new file mode 100644 (file)
index 0000000..6b1343b
Binary files /dev/null and b/dox/user_guides/ocaf/images/tobj_image006.png differ
diff --git a/dox/user_guides/ocaf/images/tobj_image007.png b/dox/user_guides/ocaf/images/tobj_image007.png
new file mode 100644 (file)
index 0000000..3919188
Binary files /dev/null and b/dox/user_guides/ocaf/images/tobj_image007.png differ
diff --git a/dox/user_guides/ocaf/images/tobj_image008.png b/dox/user_guides/ocaf/images/tobj_image008.png
new file mode 100644 (file)
index 0000000..970d9b1
Binary files /dev/null and b/dox/user_guides/ocaf/images/tobj_image008.png differ
index e5694279e3cff33f814e8e91ce122df16f4bdccd..80dc90e74fd9e47677e7441ca6cff07b1b7dd101 100644 (file)
@@ -6,8 +6,7 @@ OCAF  {#occt_user_guides__ocaf}
 @section occt_ocaf_1 Introduction
 
 This manual explains how to use the Open CASCADE Application Framework (OCAF).
-It provides basic documentation on using OCAF. For advanced information on OCAF 
-and its applications, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
+It provides basic documentation on using OCAF.
 
 @subsection occt_ocaf_1_1 Purpose of OCAF
 
@@ -512,7 +511,7 @@ Choosing the alternative way of implementation of new data types allows to forge
 
 Let’s study the implementation of the same data type in both ways by the example of transformation represented by *gp_Trsf* class. The class *gp_Trsf* defines the transformation according to the type (*gp_TrsfForm*) and a set of parameters of the particular type of transformation (two points or a vector for translation, an axis and an angle for rotation, and so on). 
 
-1. The first way: creation of a new attribute. The implementation of the transformation by creation of a new attribute is represented in the @ref occt_ocaf_11 "Samples". 
+1. The first way: creation of a new attribute. The implementation of the transformation by creation of a new attribute is represented in the @ref samples__ocaf "Samples". 
 
 2. The second way: creation of a new data type by means of combination of standard attributes. Depending on the type of transformation it may be kept in data framework by different standard attributes. For example, a translation is defined by two points. Therefore the data tree for translation looks like this: 
   * Type of transformation <i>(gp_Translation)</i> as *TDataStd_Integer*;
@@ -1820,554 +1819,957 @@ Both the XML format and the XML OCAF persistence code are extensible in the sens
 * Add (in the new *DocumentStorageDriver*) the *targetNamespace* accompanied with its prefix, using method *XmlDrivers_DocumentStorageDriver::AddNamespace*. The same is done for all namespaces objects which are used by the new persistence, with the exception of the "ocaf" namespace. 
 * Pass (in every OCAF attribute driver) the namespace prefix of the *targetNamespace* to the constructor of *XmlMDF_ADriver*. 
 
-@section occt_ocaf_10 GLOSSARY
+@section occt_tobj TObj Package
 
-* **Application** -- a document container holding all documents containing all application data. 
-* **Application data** -- the data produced by an application, as opposed to data referring to it. 
-* **Associativity of data** -- the ability to propagate modifications made to one document to other documents, which refer to such document. Modification propagation is: 
-  * unidirectional, that is, from the referenced to the referencing document(s), or
-  * bi-directional, from the referencing to the referenced document and vice-versa.
-* **Attribute** -- a container for application data. An attribute is attached to a label in the hierarchy of the data framework. 
-* **Child** -- a label created from another label, which by definition, is the father label. 
-* **Compound document** -- a set of interdependent documents, linked to each other by means of external references. These references provide the associativity of data. 
-* **Data framework** -- a tree-like data structure which in OCAF, is a tree of labels with data attached to them in the form of attributes. This tree of labels is accessible through the services of the *TDocStd_Document* class. 
-* **Document** -- a container for a data framework which grants access to the data, and is, in its turn, contained  by an application. A document also allows you to: 
-       * Manage modifications, providing Undo and Redo functions 
-       * Manage command transactions 
-       * Update external links 
-       * Manage save and restore options 
-       * Store the names of software extensions. 
-* **Driver** -- an abstract class, which defines the communications protocol with a system. 
-* **Entry** -- an ASCII character string containing the tag list of a label. For example:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-0:3:24:7:2:7 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@subsection occt_tobj_1 Introduction
 
-* **External links** -- references from one data structure to another data structure in another document. 
-To store these references properly, a label must also contain an external link attribute. 
-* **Father** -- a label, from which other labels have been created. The other labels are, by definition, the children of this label. 
-* **Framework** -- a group of co-operating classes which enable a design to be re-used for a given category of problem. The framework guides the architecture of the application by breaking it up into abstract  classes, each of which has different responsibilities and collaborates in a predefined way. Application developer creates a specialized framework by: 
-  * defining new classes which inherit from these abstract classes
-  * composing framework class instances
-  * implementing the services required by the framework.
+This document describes the package TObj, which is an add-on 
+to the Open CASCADE Application Framework (OCAF).
 
-In C++, the application behavior is implemented in virtual functions redefined in these derived classes. This is known as overriding. 
+This package provides a set of classes and auxiliary tools facilitating 
+the creation of object-oriented data models on top of low-level OCAF data structures. 
+This includes: 
 
-* **GUID** -- Global Universal ID. A string of 37 characters intended to uniquely identify an object. For example:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-2a96b602-ec8b-11d0-bee7-080009dc3333 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  * Definition of classes representing data objects. Data objects store their data using primitive OCAF attributes, taking advantage of OCAF mechanisms for Undo/Redo and persistence. At the same time they provide a higher level abstraction over the pure OCAF document structure (labels / attributes).
+  * Organization of the data model as a hierarchical (tree-like) structure of objects.
+  * Support of cross-references between objects within one model or among different models. In case of cross-model references the models should depend hierarchically.
+  * Persistence mechanism for storing *TObj* objects in OCAF files, which allows storing and retrieving objects of derived types without writing additional code to support persistence. 
 
-* **Label** -- a point in the data framework, which allows data to be attached to it by means of attributes. It has a name in the form of an entry, which identifies its place in the data framework. 
-* **Modified label** -- containing attributes whose data has been modified. 
-* **Reference key** -- an invariant reference, which may refer to any type of data used in an application. In its transient form, it is a label in the data framework, and the data is attached to it in the form of attributes. In its persistent form, it is an entry of the label. It allows an application to recover any entity in the current session or in a previous session. 
-* **Resource file** -- a file containing a list of each document’s schema name and the storage and retrieval plug-ins for that document. 
-* **Root** -- the starting point of the data framework. This point is the top label in the framework. It is represented by the [0] entry and is created at the same time with the document you are working on. 
-* **Scope** -- the set of all the attributes and labels which depend on a given label. 
-* **Tag list** -- a list of integers, which identify the place of a label in the data framework.  This list is displayed in an entry. 
-* **Topological naming** -- systematic referencing of topological entities so that these entities can still be identified after the models they belong to have gone through several steps in modeling. In other words, topological naming allows you to track entities through the steps in the modeling process. This referencing is needed when a model is edited and regenerated, and can be seen as a mapping of labels and name attributes of the entities in the old version of a model to those of the corresponding entities in its new version. Note that if the topology of a model changes during the modeling, this mapping may not fully coincide. A Boolean operation, for example, may split edges. 
-* **Topological tracking** -- following a topological entity in a model through the steps taken to edit and regenerate that model. 
-* **Valid label** -- in a data framework, this is a label, which is already recomputed in the scope of regeneration sequence and includes the label containing a feature which is to be recalculated. Consider the case of a box to which you first add a fillet, then a protrusion feature. For recalculation purposes, only valid labels of each construction stage are used. In recalculating a fillet, they are only those of the box and the fillet, not the protrusion feature which was added afterwards.   
+This document describes basic principles of logical and physical organization 
+of TObj-based data models and typical approaches to implementation of classes representing model objects.
 
-@section occt_ocaf_11 Samples
+@subsubsection occt_tobj_1_1 Applicability
 
-@subsection occt_ocaf_11_a Getting  Started
+The main purpose of the *TObj* data model is rapid development 
+of the object-oriented data models for applications, using the existing 
+functionality provided by OCAF (Undo/Redo and persistence) 
+without the necessity to redevelop such functionality from scratch.
 
-  At the beginning of your development, you first define  an application class by inheriting from the Application abstract class. 
-  You only have to create and determine the resources of the application 
-  for specifying the format of your documents (you generally use the standard one)  and their file extension.  
-   
-  Then, you design the application data model by  organizing attributes you choose among those provided with OCAF. 
-  You can specialize these attributes using the User attribute. For example, if you need  a reflection coefficient, 
-  you aggregate a User attribute identified as a  reflection coefficient 
-  with a Real attribute containing the value of the  coefficient (as such, you don't define a new class).  
-   
-  If you need application specific data not provided with  OCAF, for example, 
-  to incorporate a finite element model in the data structure,  
-  you define a new attribute class containing the mesh, 
-  and you include its persistent homologue in a new file format.  
-   
-  Once you have implemented the commands which create and modify the data structure 
-  according to your specification, OCAF provides you, without any additional programming:  
-   
-  * Persistent  reference to any data, including geometric elements — several documents can be  linked with such reference;
-  * Document-View  association;
-  * Ready-to-use  functions such as :
-    * Undo-redo;  
-    * Save and open application data.  
-  Finally, you  develop the application's graphical user interface using the toolkit of your  choice, for example:
-  * KDE Qt or  GNOME GTK+ on Linux;
-  * Microsoft  Foundation Classes (MFC) on Windows Motif on Sun;
-  * Other  commercial products such as Ilog Views.
+As opposed to using bare OCAF (at the level of labels and attributes), 
+TObj facilitates dealing with higher level abstracts, which are closer 
+to the application domain. It works best when the application data are naturally 
+organized in hierarchical structures, and is especially useful for complex data 
+models with dependencies between objects belonging to different parts of the model.
+
+It should be noted that *TObj* is efficient for representing data structures containing 
+a limited number of objects at each level of the data structure (typically less than 1000).
+A greater number of objects causes performance problems due to list-based organization of OCAF documents. Therefore, other methods of storage, such as arrays, are advisable for data models or their sub-parts containing a great number of uniform objects. However, these methods 
+can be combined with the usage of *TObj* to represent the high-level structure of the model.
+
+@subsection occt_tobj_2 TObj Model
+
+@subsubsection occt_tobj_2_1 TObj Model structure
+
+In the *TObj* data model the data are separated from the interfaces that manage them.
+
+It should be emphasized that *TObj* package defines only the interfaces and the basic structure of the model and objects, while the actual contents and structure of the model of a particular application are defined by its specific classes inherited from *TObj* classes. The implementation can add its own features or even change the default behaviour and the data layout, though this is not recommended. 
+
+Logically the *TObj* data model is represented as a tree of model objects, with upper-level objects typically being collections of other objects (called *partitions*, represented by the class *TObj_Partition*). The root object of the model is called the *Main partition* and is maintained by the model itself. This partition contains a list of sub-objects called its *children* each sub-object may contain its own children (according to its type), etc. 
+
+@figure{/user_guides/ocaf/images/tobj_image003.png,"TObj Data Model",240}
+
+As the *TObj* Data Model is based on OCAF (Open CASCADE Application Framework) technology, 
+it stores its data in the underlying OCAF document. The OCAF document consists of a tree of 
+items called *labels*. Each label has some data attached to it in the form of *attributes*, 
+and may contain an arbitrary number of sub-labels. Each sub-label is identified by its sequential 
+number called the *tag*. The complete sequence of tag numbers of the label 
+and its parents starting from the document root constitutes the complete *entry* 
+of the label, which uniquely identifies its position in the document.
+
+Generally the structure of the OCAF tree of the *TObj* data 
+model corresponds to the logical structure of the model and can be presented as in the following picture: 
+
+@figure{/user_guides/ocaf/images/tobj_image004.png,"TObj Data Model mapped on OCAF document",360}
+
+All data of the model are stored in the root label (0:1) of the OCAF document. 
+An attribute *TObj_TModel* is located in this root label. It 
+stores the object of type *TObj_Model*. This object serves as a main interface tool 
+to access all data and functionalities of the data model.
+
+In simple cases all data needed by the application may be 
+contained in a single data model. Moreover, *TObj* gives the possibility to 
+distribute the data between several interconnected data models. This can be 
+especially useful for the applications dealing with great amounts of data. because 
+only the data required for the current operation is loaded in the memory at one time. 
+It is presumed that the models have a hierarchical (tree-like) structure, 
+where the objects of the child models can refer to the objects of the parent 
+models, not vice-versa. Provided that the correct order of loading and closing 
+of the models is ensured, the *TObj* classes will maintain references between the objects automatically.
+
+@subsubsection occt_tobj_2_2 Data Model basic features
+
+The class *TObj_Model* describing the data model provides the following functionalities: 
+
+  * Loading and saving of the model from or in a file (methods *Load* and *Save*)
+  * Closing and removal of the model from memory (method *Close*)
+  * Definition of the full file name of the persistence storage for this model (method *GetFile*)
+  * Tools to organize data objects in partitions and iterate on objects (methods *GetObjects*, *GetMainPartition*, *GetChildren*, *getPartition*, *getElementPartition*)
+  * Mechanism to give unique names to model objects 
+  * Copy (*clone*) of the model (methods *NewEmpty* and *Paste*)
+  * Support of earlier model formats for proper conversion of a model loaded from a file written by a previous version of the application (methods *GetFormatVersion* and *SetFormatVersion*)
+  * Interface to check and update the model if necessary (method *Update*)
+  * Support of several data models in one application. For this feature use OCAF multi-transaction manager, unique names and GUIDs of the data model (methods *GetModelName*, *GetGUID*)
+
+@subsubsection occt_tobj_2_3 Model Persistence
+
+The persistent representation of any OCAF model is contained in an XML or a binary file, 
+which is defined by the format string returned by the method *GetFormat*. 
+The default implementation works with a binary OCAF document format (*BinOcaf*). 
+The other available format is *XmlOcaf*. The class **TObj_Model** declares and provides a default 
+implementation of two virtual methods: 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean Load (const char* theFile); 
+    virtual Standard_Boolean SaveAs (const char* theFile); 
+~~~~~
+
+which retrieve and store the model from or 
+in the OCAF file. The descendants 
+should define the following protected method to support Load and Save operations:
+
+~~~~~{.cpp}
+    virtual Standard_Boolean initNewModel (const Standard_Boolean IsNew); 
+~~~~~
+
+This method is called by *Load* after creation of a new model 
+or after its loading from the file; its purpose is to perform 
+the necessary initialization of the model (such as creation of necessary top-level 
+partitions, model update due to version changes etc.). Note that if 
+the specified file does not exist, method *Load* will create 
+a new document and call *initNewModel* with the argument **True**. 
+If the file has been normally loaded, the argument **False** is passed. 
+Thus, a new empty *TObj* model is created by calling *Load* with an empty 
+string or the path to a nonexistent file as argument. 
+
+The method *Load* returns **True** if the model has been retrieved successfully 
+(or created a new), or **False** if the model could not be loaded. 
+If no errors have been detected during initialization (model retrieval or creation),
+the virtual method *AfterRetrieval* is invoked for all objects of the model. 
+This method initializes or updates the objects immediately after the model initialization. 
+It could be useful when some object data should be imported from an OCAF attribute into transient 
+fields which could be changed outside of the OCAF transaction mechanism. 
+Such fields can be stored into OCAF attributes for saving into persistent storage during the save operation.
+
+To avoid memory leaks, the *TObj_Model* class destructor invokes *Close* method 
+which clears the OCAF document and removes all data from memory before the model is destroyed.
+
+For XML and binary persistence of the *TObj* data model the corresponding drivers are implemented 
+in *BinLDrivers*, *BinMObj* and *XmlLDrivers*, *XmlMObj* packages. 
+These packages contain retrieval and storage drivers for the model, model objects and custom attributes 
+from the *TObj* package. The schemas support persistence for the standard OCAF and *TObj* attributes. 
+This is sufficient for the implementation of simple data models, but 
+in some cases it can be reasonable to add specific OCAF attributes to 
+facilitate the storage of the data specific to the application. 
+In this case the schema should be extended using the standard OCAF mechanism. 
+
+@subsubsection occt_tobj_2_4 Access to the objects in the model
+
+All objects in the model are stored in the main partition and accessed by iterators.
+To access all model objects use: 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_ObjectIterator) GetObjects () const; 
+~~~~~
+
+This method returns a recursive iterator on all objects stored in the model.
+
+~~~~~{.cpp}
+    virtual Handle(TObj_ObjectIterator) GetChildren () const; 
+~~~~~
+
+This method returns an iterator on child objects of the main partition.
+Use the following method to get the main partition: 
+
+~~~~~{.cpp}
+    Handle(TObj_Partition) GetMainPartition() const; 
+~~~~~
+
+To receive the iterator on objects of a specific type *AType* use the following call: 
+
+~~~~~{.cpp}
+    GetMainPartition()-&gt;GetChildren(STANDARD_TYPE(AType) ); 
+~~~~~
+
+The set of protected methods is provided for descendant classes to deal with partitions: 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_Partition) getPartition (const TDF_Label, const Standard_Boolean  theHidden) const; 
+~~~~~
+
+This method returns (creating if necessary) a partition in the specified label of the document. 
+The partition can be created as hidden (*TObj_HiddenPartition* class). 
+A hidden partition can be useful to distinguish the data that 
+should not be visible to the user when browsing the model in the application. 
+
+The following two methods allow getting (creating) a partition 
+in the sub-label of the specified label in the document 
+(the label of the main partition for the second method) and with the given name: 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_Partition) getPartition (const TDF_Label, const Standard_Integer theIndex, const TCollection_ExtendedString& theName, const Standard_Boolean  theHidden) const; 
+    virtual Handle(TObj_Partition) getPartition (const Standard_Integer theIndex, const TCollection_ExtendedString& theName, const Standard_Boolean  theHidden) const; 
+~~~~~
+
+If the default object naming and the name register mechanism 
+is turned on, the object can be found in the model by its unique name: 
+
+~~~~~{.cpp}
+    Handle(TObj_Object) FindObject (const Handle(TCollection_HExtendedString)& theName, const Handle(TObj_TNameContainer)& theDictionary) const; 
+~~~~~
+
+@subsubsection occt_tobj_2_5 Own model data
+
+The model object can store its own data in the Data label 
+of its main partition, however, there is no standard API for 
+setting and getting these data types. The descendants can add 
+their own data using standard OCAF methods. The enumeration DataTag is defined 
+in *TObj_Model* to avoid conflict of data labels used by this class 
+and its descendants, similarly to objects (see below). 
+
+@subsubsection occt_tobj_2_6 Object naming
+
+The basic implementation of *TObj_Model* provides the default 
+naming mechanism: all objects must have unique names, 
+which are registered automatically in the data model dictionary. 
+The dictionary is a *TObj_TNameContainer* 
+attribute whose instance is located in the model root label.
+If necessary, the developer can add several dictionaries into 
+the specific partitions, providing the name registration in the 
+correct name dictionary and restoring the name map after document is loaded from file.
+To ignore name registering it is necessary to redefine the methods *SetName*, 
+*AfterRetrieval* of the *TObj_Object* class and skip the registration of the object name. 
+Use the following methods for the naming mechanism: 
+
+~~~~~{.cpp}
+    Standard_Boolean IsRegisteredName (const Handle(TCollection_HExtendedString)& theName, const Handle(TObj_TNameContainer)& theDictionary ) const; 
+~~~~~
+
+Returns **True** if the object name is already registered in the indicated (or model) dictionary. 
+
+~~~~~{.cpp}
+    void RegisterName (const Handle(TCollection_HExtendedString)& theName, const TDF_Label& theLabel, const Handle(TObj_TNameContainer)& theDictionary ) const; 
+~~~~~
+
+Registers the object name with the indicated label where the object 
+is located in the OCAF document. Note that the default implementation 
+of the method *SetName* of the object registers the new name automatically 
+(if the name is not yet registered for any other object) 
+
+~~~~~{.cpp}
+    void UnRegisterName (const Handle(TCollection_HExtendedString)& theName, const Handle(TObj_TNameContainer)& theDictionary ) const; 
+~~~~~
+
+Unregisters the name from the dictionary. Ther names of *TObj* model 
+objects are removed from the dictionary when the objects are deleted from the model. 
+
+~~~~~{.cpp}
+    Handle(TObj_TNameContainer) GetDictionary() const;
+~~~~~
+
+Returns a default instance of the model dictionary (located at the model root label). 
+The default implementation works only with one dictionary. 
+If there are a necessity to have more than one dictionary for the model objects, 
+it is recommended to redefine the corresponding virtual method of TObj_Object 
+that returns the dictionary where names of objects should be registered.
+
+@subsubsection occt_tobj_2_7 API for transaction mechanism
+
+Class *TObj_Model* provides the API for transaction mechanism (supported by OCAF): 
+
+~~~~~{.cpp}
+    Standard_Boolean HasOpenCommand() const; 
+~~~~~
+
+Returns True if a Command transaction is open 
+
+~~~~~{.cpp}
+    void OpenCommand() const; 
+~~~~~
+
+Opens a new command transaction. 
+
+~~~~~{.cpp}
+    void CommitCommand() const; 
+~~~~~
+
+Commits the Command transaction. Does nothing If there is no open Command transaction. 
+
+~~~~~{.cpp}
+    void AbortCommand() const; 
+~~~~~
+
+Aborts the Command transaction. Does nothing if there is no open Command transaction. 
+
+~~~~~{.cpp}
+    Standard_Boolean IsModified() const; 
+~~~~~
+
+Returns True if the model document has a modified status (has changes after the last save) 
+
+~~~~~{.cpp}
+    void SetModified( const Standard_Boolean ); 
+~~~~~
+
+Changes the modified status by force. For synchronization of transactions 
+within several *TObj_Model* documents use class *TDocStd_MultiTransactionManager*. 
+
+@subsubsection occt_tobj_28 Model format and version
+
+Class *TObj_Model* provides the descendant classes with a means to control 
+the format of the persistent file by choosing the schema used to store or retrieve operations. 
+
+~~~~~{.cpp}
+    virtual TCollection_ExtendedString GetFormat () const; 
+~~~~~
+
+Returns the string *TObjBin* or *TObjXml* indicating 
+the current persistent mechanism. The default value is *TObjBin*. 
+Due to the evolution of functionality of the developed application, 
+the contents and the structure of its data model vary from version to version. 
+*TObj* package provides a basic mechanism supporting backward versions compatibility, 
+which means that newer versions of the application will be able to read 
+Data Model files created by previous versions (but not vice-versa) with a minimum loss of data. 
+For each type of Data Model, all known versions of the data format 
+should be enumerated in increasing order, incremented with every change 
+of the model format. The current version of the model 
+format is stored in the model file and can be checked upon retrieval. 
+
+~~~~~{.cpp}
+    Standard_Integer GetFormatVersion() const; 
+~~~~~
+
+Returns the format version stored in the model file 
+
+~~~~~{.cpp}
+    void SetFormatVersion(const Standard_Integer theVersion); 
+~~~~~
+
+Defines the format version used for save. 
+
+Upon loading a model, the method *initNewModel()*, called immediately 
+after opening a model from disk (on the level of the OCAF document), 
+provides a specific code that checks the format version stored in that model. 
+If it is older than the current version of the application, the data update can be performed. 
+Each model can have its own specific conversion code 
+that performs the necessary data conversion to make them compliant with the current version. 
+
+When the conversion ends the user is advised of that by the messenger interface 
+provided by the model (see messaging chapter for more details), 
+and the model version is updated. If the version of data model is not supported 
+(it is newer than the current or too old), the load operation should fail. 
+The program updating the model after version change can be implemented as static 
+methods directly in C++ files of the corresponding Data Model classes, 
+not exposing it to the other parts of the application. 
+These codes can use direct access to the model and objects data (attributes) 
+not using objects interfaces, because the data model API and object classes 
+could have already been changed. 
+
+Note that this mechanism has been designed to maintain version compatibility 
+for the changes of data stored in the model, not for the changes of 
+low-level format of data files (such as the storage format of a specific OCAF attribute). 
+If the format of data files changes, a specific treatment on a case-by-case basis will be required. 
+
+@subsubsection occt_tobj_2_9 Model update
+
+The following methods are used for model update to ensure its consistency 
+with respect to the other models in case of cross-model dependencies: 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean Update(); 
+~~~~~
+
+This method is usually called after loading of the model. 
+The default implementation does nothing and returns **True**. 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean initNewModel( const Standard_Boolean IsNew); 
+~~~~~
+
+This method performs model initialization, check and updates (as described above). 
+
+~~~~~{.cpp}
+    virtual void updateBackReferences( const Handle(TObj_Object)& theObj); 
+~~~~~
+
+This method is called from the previous method to update back references 
+of the indicated object after the retrieval of the model from file 
+(see data model - object relationship chapter for more details) 
+
+@subsubsection occt_tobj_2_10 Model copying
+
+To copy the model between OCAF documents use the following methods: 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean Paste (Handle(TObj_Model) theModel, Handle(TDF_RelocationTable) theRelocTable = 0 ); 
+~~~~~
+
+Pastes the current model to the new model. The relocation table 
+ensures correct copying of the sub-data shared by several parts of the model. 
+It stores a map of processed original objects of relevant types in their copies. 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_Model) NewEmpty() = 0; 
+~~~~~
+
+Redefines a pure virtual method to create a new empty instance of the model. 
+
+~~~~~{.cpp}
+    void CopyReferences ( const Handle(TObj_Model)& theTarget, const Handle(TDF_RelocationTable)& theRelocTable); 
+~~~~~
+
+Copies the references from the current model to the target model. 
+
+@subsubsection occt_tobj_2_11 Messaging
+
+The messaging is organised using Open CASCADE Messenger from the package Message. 
+The messenger is stored as the field of the model instance 
+and can be set and retrieved by the following methods: 
+
+~~~~~{.cpp}
+    void SetMessenger( const Handle(Message_Messenger)& ); 
+    Handle(Message_Messenger) Messenger() const; 
+~~~~~
+
+A developer should create his own instance of the Messenger 
+bound to the application user interface, and attribute it to the model 
+for future usage. In particular the messenger is used for reporting 
+errors and warnings in the persistence mechanism. 
+Each message has a unique string identifier (key). 
+All message keys are stored in a special resource file TObj.msg. 
+This file should be loaded at the start of the application 
+by call to the appropriate method of the class *Message_MsgFile*. 
+
+@subsection occt_tobj_3 Model object
+
+Class *TObj_Object* provides basic interface and default implementation 
+of important features of *TObj* model objects. This implementation defines 
+basic approaches that are recommended for all descendants, 
+and provides tools to facilitate their usage. 
+
+@figure{/user_guides/ocaf/images/tobj_image005.png,"TObj objects hierarchy",170}
+
+@subsubsection occt_tobj_3_1 Separation of data and interface
+
+In the *TObj* data model, the data are separated from the interfaces that manage them. 
+The data belonging to a model object are stored in its root label and sub-labels 
+in the form of standard OCAF attributes. This allows using standard OCAF mechanisms 
+for work with these data, and eases the implementation of the persistence mechanism. 
+
+The instance of the interface which serves as an API for managing object data 
+(e.g. represents the model object) is stored in the root label of the object, 
+and typically does not bring its own data. The interface classes are organized in a hierarchy 
+corresponding to the natural hierarchy of the model objects according to the application. 
+
+In the text below the term 'object' is used to denote either the instance 
+of the interface class or the object itself (both interface and data stored in OCAF). 
+
+The special type of attribute *TObj_TObject* is used for storing instances of objects interfaces 
+in the OCAF tree. *TObj_TObject* is a simple container for the object of type *TObj_Object*. 
+All objects (interfaces) of the data model  inherit this class. 
+
+@figure{/user_guides/ocaf/images/tobj_image006.png,"TObj object stored on OCAF label",360}
+
+
+@subsubsection occt_tobj_3_2 Basic features
+
+The *TObj_Object* class provides some basic features that can be inherited (or, if necessary, redefined) by the descendants: 
+
+  * Gives access to the model to which the object belongs (method *GetModel*) and to the OCAF label in which the object is stored (method *GetLabel*). 
+  * Supports references (and back references) to other objects in the same or in another model (methods *getReference*, *setReference*, *addReference*, *GetReferences*, *GetBackReferences*, *AddBackReference*, *RemoveBackReference*, *ReplaceReference*)
+  * Provides the ability to contain child objects, as it is actual for partition objects (methods *GetChildren*, *GetFatherObject*)
+  * Organizes its data in the OCAF structure by separating the sub-labels of the main label intended for various kinds of data and providing tools to organize these data (see <a href="../../../../Documents%20and%20Settings/TEMP/obj-inher">below</a>). The kinds of data stored separately are: 
+         * Child objects stored in the label returned by the method *GetChildLabel* 
+         * References to other objects stored in the label returned by the method *GetReferenceLabel* 
+         * Other data, both common to all objects and specific for each subtype of the model object, are stored in the label returned by the method *GetDataLabel* 
+  * Provides unique names of all objects in the model (methods *GetDictionary*, *GetName*, *SetName*)
+  * Provides unified means to maintain persistence (implemented in descendants with the help of macros *DECLARE_TOBJOCAF_PERSISTENCE* and *IMPLEMENT_TOBJOCAF_PERSISTENCE*)
+  * Allows an object to remove itself from the OCAF document and check the depending objects can be deleted according to the  back references (method *Detach*)
+  * Implements methods for identification and versioning of objects 
+  * Manages the object interaction with OCAF Undo/Redo mechanism (method *IsAlive*, *AfterRetrieval*, *BeforeStoring*)
+  * Allows make a clone (methods *Clone*, *CopyReferences*, *CopyChildren*, *copyData*)
+  * Contains additional word of bit flags (methods *GetFlags*, *SetFlags*, *TestFlags*, *ClearFlags*)
+  * Defines the interface to sort the objects by rank (methods *GetOrder*, *SetOrder*)
+  * Provides a number of auxiliary methods for descendants to set/get the standard attribute values, such as int, double, string, arrays etc.
+
+An object can be received from the model by the following methods: 
+
+~~~~~{.cpp}
+    static Standard_Boolean GetObj ( const TDF_Label& theLabel, Handle(TObj_Object)& theResObject, const Standard_Boolean isSuper = Standard_False ); 
+~~~~~
+
+Returns *True* if the object has been found in the indicated label (or in the upper level label if *isSuper* is *True*). 
+
+~~~~~{.cpp}
+    Handle(TObj_Object) GetFatherObject ( const Handle(Standard_Type)& theType = NULL ) const; 
+~~~~~
+
+Returns the father object of the indicated type 
+for the current object (the direct father object if the type is NULL). 
+
+@subsubsection occt_tobj_3_3 Data layout and inheritance
+
+As far as the data objects are separated from the interfaces and stored in the OCAF tree, 
+the functionality to support inheritance is required. Each object has its own data 
+and references stored in the labels in the OCAF tree. All data are stored in the sub-tree 
+of the main object label. If it is necessary to inherit a class from the base class, 
+the descendant class should use different labels for data and references than its ancestor. 
+
+Therefore each *TObj* class can reserve the range of tags in each of 
+*Data*, *References*, and *Child* sub-labels. 
+The reserved range is declared by the enumeration defined 
+in the class scope (called DataTag, RefTag, and ChildTag, respectively). 
+The item *First* of the enumeration of each type is defined via the *Last* item 
+of the corresponding enumeration of the parent class, thus ensuring that the tag numbers 
+do not overlap. The item *Last* of the enumeration defines the last tag reserved by this class. 
+Other items of the enumeration define the tags used for storing particular data items of the object. 
+See the declaration of the TObj_Partition class for the example. 
+
+*TObj_Object* class provides a set of auxiliary methods for descendants 
+to access the data stored in sub-labels by their tag numbers: 
+
+~~~~~{.cpp}
+    TDF_Label getDataLabel (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
+    TDF_Label getReferenceLabel (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
+~~~~~
+
+Returns the label in *Data* or *References* sub-labels at a given tag number (theRank1). 
+The second argument, theRank2, allows accessing the next level of hierarchy 
+(theRank2-th sub-label of theRank1-th data label). 
+This is useful when the data to be stored are represented by multiple OCAF attributes 
+of the same type (e.g. sequences of homogeneous data or references). 
+
+The get/set methods allow easily accessing the data located in the specified data label 
+for the most widely used data types (*Standard_Real*, *Standard_Integer*, *TCollection_HExtendedString*,
+ *TColStd_HArray1OfReal*, *TColStd_HArray1OfInteger*, *TColStd_HArray1OfExtendedString*). 
+For instance, methods provided for real numbers are: 
+
+~~~~~{.cpp}
+    Standard_Real getReal (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
+    Standard_Boolean setReal (const Standard_Real theValue, const Standard_Integer theRank1, const Standard_Integer theRank2 = 0, const Standard_Real theTolerance = 0.) const; 
+~~~~~
+
+Similar methods are provided to access references to other objects: 
+
+~~~~~{.cpp}
+    Handle(TObj_Object) getReference (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
+    Standard_Boolean setReference (const Handle(TObj_Object) &theObject, const Standard_Integer theRank1, const Standard_Integer theRank2 = 0); 
+~~~~~
+
+The method *addReference* gives an easy way to store a sequence of homogeneous references in one label. 
+
+~~~~~{.cpp}
+    TDF_Label addReference (const Standard_Integer theRank1, const Handle(TObj_Object) &theObject); 
+~~~~~
+
+Note that while references to other objects should be defined by descendant classes 
+individually according to the type of object, *TObj_Object* provides methods 
+to manipulate (check, remove, iterate) the existing references in the uniform way, as described below. 
+
+@subsubsection occt_tobj_3_4 Persistence
+
+The persistence of the *TObj* Data Model is implemented with the help 
+of standard OCAF mechanisms (a schema defining necessary plugins, drivers, etc.). 
+This implies the possibility to store/retrieve all data that are stored 
+as standard OCAF attributes., The corresponding handlers are added 
+to the drivers for *TObj*-specific attributes. 
+
+The special tool is provided for classes inheriting from *TObj_Object* 
+to add the new types of persistence without regeneration of the OCAF schema. 
+The class *TObj_Persistence* provides basic means for that: 
+
+  * automatic run-time registration of object types
+  * creation of a new object of the specified type (one of the registered types) 
+
+Two macros defined in the file TObj_Persistence.hxx have to be included in the definition 
+of each model object class inheriting TObj_Object to activate the persistence mechanism: 
+
+~~~~~{.cpp}
+    DECLARE_TOBJOCAF_PERSISTENCE (classname, ancestorname) 
+~~~~~
+
+Should be included in the private section of declaration of each class inheriting 
+*TObj_Object* (hxx file). This macro adds an additional constructor to the object class, 
+and declares an auxiliary (private) class inheriting *TObj_Persistence* 
+that provides a tool to create a new object of the proper type. 
+
+~~~~~{.cpp}
+    IMPLEMENT_TOBJOCAF_PERSISTENCE (classname) 
+~~~~~
+
+Should be included in .cxx file of each object class that should be saved and restored. 
+This is not needed for abstract types of objects. This macro implements the functions 
+declared by the previous macro and creates a static member 
+that automatically registers that type for persistence. 
+
+When the attribute *TObj_TObject* that contains the interface object is saved, 
+its persistence handler stores the runtime type of the object class. 
+When the type is restored the handler dynamically recognizes the type 
+and creates the corresponding object using mechanisms provided by *TObj_Persistence*. 
+
+@subsubsection occt_tobj_3_5 Names of objects
+
+All *TObj* model objects  have names by which the user can refer to the object. 
+Upon creation, each object receives a default name, constructed 
+from the prefix corresponding to the object type (more precisely, the prefix is defined 
+by the partition to which the object belongs), and the index of the object in the current partition. 
+The user has the possibility to change this name. The uniqueness of the name in the model is ensured 
+by the naming mechanism (if the name is already used, it cannot be attributed to another object). 
+This default implementation of *TObj* package works with a single instance of the name container (dictionary) 
+for name registration of objects and it is enough in most simple projects. 
+If necessary, it is easy to redefine a couple of object methods 
+(for instance *GetDictionary*()) and to take care of  construction and initialization of containers. 
+
+This functionality is provided by the following methods: 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_TNameContainer) GetDictionary() const; 
+~~~~~
+
+Returns the name container where the name of object should be registered. 
+The default implementation returns the model name container. 
+
+~~~~~{.cpp}
+    Handle(TCollection_HExtendedString) GetName() const; 
+    Standard_Boolean GetName( TCollection_ExtendedString& theName ) const; 
+    Standard_Boolean GetName( TCollection_AsciiString& theName ) const; 
+~~~~~
+
+Returns the object name. The methods with in / out argument return False if the object name is not defined. 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean SetName ( const Handle(TCollection_HExtendedString)& theName ) const; 
+    Standard_Boolean SetName         ( const Handle(TCollection_HAsciiString)& theName ) const; 
+    Standard_Boolean SetName         ( const Standard_CString theName ) const; 
+~~~~~
+
+Attributes a new name to the object and returns **True** if the name has been attributed successfully. 
+Returns False if the name has been already attributed to another object. 
+The last two methods are short-cuts to the first one. 
+
+@subsubsection occt_tobj_3_6 References between objects 
+
+Class *TObj_Object* allows creating references to other objects in the model. 
+Such references describe relations among objects which are not adequately reflected 
+by the hierarchical objects structure in the model (parent-child relationship). 
+
+The references are stored internally using the attribute TObj_TReference. 
+This attribute is located in the sub-label of the referring object (called *master*) 
+and keeps reference to the main label of the referred object. 
+At the same time the referred object can maintain the back reference to the master object. 
+
+@figure{/user_guides/ocaf/images/tobj_image007.png,"Objects relationship",360}
+
+
+
+The back references are stored not in the OCAF document but as a transient field 
+of the object; they are created when the model is restored from file, 
+and updated automatically when the references are manipulated. 
+The class *TObj_TReference* allows storing references between objects 
+from different *TObj* models, facilitating the construction of complex relations between objects. 
+
+The most used methods for work with references are: 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean HasReference( const Handle(TObj_Object)& theObject) const; 
+~~~~~
+
+Returns True if the current object refers to the indicated object. 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_ObjectIterator) GetReferences ( const Handle(Standard_Type)& theType = NULL ) const; 
+~~~~~
+
+Returns an iterator on the object references. The optional argument *theType* 
+restricts the types of referred objects, or does not if it is NULL. 
+
+~~~~~{.cpp}
+    virtual void RemoveAllReferences(); 
+~~~~~
+
+Removes all references from the current object. 
+
+~~~~~{.cpp}
+    virtual void RemoveReference( const Handle(TObj_Object)& theObject ); 
+~~~~~
+
+Removes the reference to the indicated object. 
+
+~~~~~{.cpp}
+    virtual Handle(TObj_ObjectIterator) GetBackReferences ( const Handle(Standard_Type)& theType = NULL ) const; 
+~~~~~
+
+Returns an iterator on the object back references. 
+The argument theType restricts the types of master objects, or does not if it is NULL. 
+
+~~~~~{.cpp}
+    virtual void ReplaceReference  ( const Handle(TObj_Object)& theOldObject,  const Handle(TObj_Object)& theNewObject ); 
+~~~~~
+
+Replaces the reference to theOldObject by the reference to *theNewObject*. 
+The handle theNewObject may be NULL to remove the reference. 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean RelocateReferences  ( const TDF_Label& theFromRoot,  const TDF_Label& theToRoot, const Standard_Boolean theUpdateackRefs = Standard_True ); 
+~~~~~
+
+Replaces all references to a descendant label of *theFromRoot* 
+by the references to an equivalent label under *theToRoot*. 
+Returns **False** if the resulting reference does not point at a *TObj_Object*. 
+Updates back references if theUpdateackRefs is **True**. 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean CanRemoveReference ( const Handle(TObj_Object)& theObj) const; 
+~~~~~
+
+Returns **True** if the reference can be removed and the master object 
+will remain valid (*weak* reference). 
+Returns **False** if the master object cannot be valid without the referred object (*strong* reference). 
+This affects the behaviour of objects removal from the model -- if the reference cannot be removed, 
+either the referred object will not be removed, or both the referred 
+and the master objects will be removed (depends on the deletion mode in the method **Detach**) 
+
+@subsubsection occt_tobj_3_7 Creation and deletion of objects
+
+It is recommended that all objects inheriting from *TObj_Object*
+ should implement the same approach to creation and deletion. 
  
-  You can also implement the user interface in the Java language using 
-  the Swing-based Java Application Desktop component (JAD)  provided with OCAF.  
-  
-@subsection occt_ocaf_11_1 Implementation of Attribute Transformation in a HXX file
+The object of the *TObj* data model cannot be created independently 
+of the model instance, as far as it stores the object data in OCAF data structures. 
+Therefore an object class cannot be created directly as its constructor is protected. 
+
+Instead, each object should provide a static method *Create*(), which accepts the model, 
+with the label, which stores the object and other type-dependent parameters 
+necessary for proper definition of the object. This method creates a new object with its data 
+(a set of OCAF attributes) in the specified label, and returns a handle to the object's interface. 
+
+The method *Detach*() is provided for deletion of objects from OCAF model. 
+Object data are deleted from the corresponding OCAF label; however, 
+the handle on object remains valid. The only operation available after object deletion 
+is the method *IsAlive*()  checking whether the object has been deleted or not, 
+which returns False if the object has been deleted. 
+
+When the object is deleted from the data model, the method checks 
+whether there are any alive references to the object. 
+Iterating on references the object asks each referring (master) object 
+whether the reference can be removed. If the master object can be unlinked, 
+the reference is removed, otherwise the master object will be removed too 
+or the referred object will be kept alive. This check is performed by the method *Detach* , 
+but the behavior depends on the deletion mode *TObj_DeletingMode*: 
+
+  * **TObj_FreeOnly** -- the object will be destroyed only if it is free, i.e. there are no references to it from other objects
+  * **TObj_KeepDepending** -- the object will be destroyed if there are no strong references to it from master objects (all references can be unlinked)
+  * **TObj_Force** -- the object and all depending master objects that have strong references to it will be destroyed.
+
+The most used methods for object removing are: 
+
+~~~~~{.cpp}
+    virtual Standard_Boolean CanDetachObject (const TObj_DeletingMode theMode = TObj_FreeOnly ); 
+~~~~~
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-#include <TDF_Attribute.hxx>
+Returns **True** if the object can be deleted with the indicated deletion mode. 
 
-#include <gp_Ax3.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Vec.hxx>
-#include <gp_Trsf.hxx>
+~~~~~{.cpp}
+    virtual Standard_Boolean Detach ( const TObj_DeletingMode theMode = TObj_FreeOnly ); 
+~~~~~
 
-// This attribute implements a transformation data container
-class MyPackage_Transformation : public TDF_Attribute
-{
-public:
-  //!@ name Static methods 
+Removes the object from the document if possible 
+(according to the indicated deletion mode). 
+Unlinks references from removed objects. 
+Returns **True** if the objects have been successfully deleted. 
 
-  //! The method returns a unique GUID of this attribute. 
-  //! By means of this GUID this attribute may be identified   
-  //! among other attributes attached to the same label. 
-  Standard_EXPORT static const Standard_GUID& GetID ();
+@subsubsection occt_tobj_3_8 Transformation and replication of object data
 
-  //! Finds or creates the attribute attached to <theLabel>. 
-  //! The found or created attribute is returned. 
-  Standard_EXPORT static Handle(MyPackage_Transformation) Set (const TDF_Label theLabel);
+*TObj_Object* provides a number of special virtual methods  to support replications of objects. These methods should be redefined by descendants when necessary. 
 
-  //!@ name Methods for access to the attribute data 
-      
-  //! The method returns the transformation. 
-  Standard_EXPORT gp_Trsf Get () const; 
+~~~~~{.cpp}
+    virtual Handle(TObj_Object) Clone (const TDF_Label& theTargetLabel, Handle(TDF_RelocationTable) theRelocTable = 0); 
+~~~~~
 
-  //!@ name Methods for setting the data of transformation 
+Copies the object to theTargetLabel. The new object will have all references of its original. 
+Returns a handle to the new object (null handle if fail). The data are copied directly, 
+but the name is changed by adding the postfix *_copy*. 
+To assign different names to the copies redefine the method: 
 
-  //! The method defines a rotation type of transformation. 
-  Standard_EXPORT void SetRotation (const gp_Ax1& theAxis, Standard_Real theAngle); 
+~~~~~{.cpp}
+    virtual Handle(TCollection_HExtendedString) GetNameForClone ( const Handle(TObj_Object)& ) const; 
+~~~~~
 
-  //! The method defines a translation type of transformation. 
-  Standard_EXPORT void SetTranslation (const gp_Vec& theVector); 
+Returns the name for a new object copy. It could be useful to return the same object name 
+if the copy will be in the other model or in the other partition with its own dictionary. 
+The method *Clone* uses the following public methods for object data replications: 
 
-  //! The method defines a point mirror type of transformation (point symmetry). 
-  Standard_EXPORT void SetMirror (const gp_Pnt& thePoint); 
+~~~~~{.cpp}
+    virtual void CopyReferences (const const Handle(TObj_Object)& theTargetObject, const Handle(TDF_RelocationTable) theRelocTable); 
+~~~~~
 
-  //! The method defines an axis mirror type of transformation (axial symmetry). 
-  Standard_EXPORT void SetMirror (const gp_Ax1& theAxis); 
+Adds to the copy of the original object its references. 
 
-  //! The method defines a point mirror type of transformation (planar symmetry). 
-  Standard_EXPORT void SetMirror (const gp_Ax2& thePlane); 
+~~~~~{.cpp}
+    virtual void CopyChildren (TDF_Label& theTargetLabel, const Handle(TDF_RelocationTable) theRelocTable); 
+~~~~~
 
-  //! The method defines a scale type of transformation. 
-  Standard_EXPORT void SetScale (const gp_Pnt& thePoint, Standard_Real theScale); 
+Copies the children of an object to the target child label. 
 
-  //! The method defines a complex type of transformation from one co-ordinate system to another. 
-  Standard_EXPORT void SetTransformation (const gp_Ax3& theCoordinateSystem1, const gp_Ax3& theCoordinateSystem2); 
+@subsubsection occt_tobj_3_9 Object flags
 
-  //!@ name Overridden methods from TDF_Attribute 
-      
-  //! The method returns a unique GUID of the attribute. 
-  //! By means of this GUID this attribute may be identified among other attributes attached to the same label. 
-  Standard_EXPORT const Standard_GUID& ID () const; 
+Each instance of *TObj_Object* stores a set of bit flags, 
+which facilitate the storage of auxiliary logical information assigned to the objects 
+(object state). Several typical state flags are defined in the enumeration *ObjectState*: 
 
-  //! The method is called on Undo / Redo. 
-  //! It copies the content of theAttribute into this attribute (copies the fields). 
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& theAttribute); 
+  * *ObjectState_Hidden* -- the object is marked as hidden
+  * *ObjectState_Saved* -- the object has (or should have) the corresponding saved file on disk
+  * *ObjectState_Imported* -- the object is imported from somewhere
+  * *ObjectState_ImportedByFile* -- the object has been imported from file and should be updated to have correct relations with other objects
+  * *ObjectState_Ordered* -- the partition contains objects that can be ordered.
 
-  //! It creates a new instance of this attribute. 
-  //! It is called on Copy / Paste, Undo / Redo. 
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty () const;
+The user (developer) can define any new flags in descendant classes. 
+To set/get an object, the flags use the following methods: 
 
-  //! The method is called on Copy / Paste. 
-  //! It copies the content of this attribute into theAttribute (copies the fields). 
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& theAttribute, const Handle(TDF_RelocationTable)& theRelocationTable); 
+~~~~~{.cpp}
+    Standard_Integer GetFlags() const; 
+    void SetFlags( const Standard_Integer theMask ); 
+    Stadnard_Boolean TestFlags( const Standard_Integer theMask ) const; 
+    void ClearFlags( const Standard_Integer theMask = 0 ); 
+~~~~~
 
-  //! Prints the content of this attribute into the stream. 
-  Standard_EXPORT Standard_OStream& Dump(Standard_OStream& theOS);
+In addition, the generic virtual interface stores the logical properties 
+of the object class in the form of a set of bit flags. 
+Type flags can be received by the method: 
 
-  //!@ name Constructor 
+~~~~~{.cpp}
+    virtual Standard_Integer GetTypeFlags() const; 
+~~~~~
 
-  //! The C++ constructor of this atribute class. 
-  //! Usually it is never called outside this class. 
-  Standard_EXPORT MyPackage_Transformation();
+The default implementation returns the flag **Visible** 
+defined in the enumeration *TypeFlags*. This flag is used to define visibility 
+of the object for the user browsing the model (see class *TObj_HiddenPartition*). 
+Other flags can be added by the applications. 
 
-private:
-  gp_TrsfForm myType;
+@subsubsection occt_tobj_310 Partitions
 
-  // Axes (Ax1, Ax2, Ax3) 
-  gp_Ax1 myAx1;
-  gp_Ax2 myAx2;
-  gp_Ax3 myFirstAx3;
-  gp_Ax3 mySecondAx3;
+The special kind of objects defined by the class *TObj_Partition* 
+(and its descendant *TObj_HiddenPartition*) is provided for partitioning 
+the model into a hierarchical structure. This object represents the container 
+of other objects. Each *TObj* model contains the main partition that is placed 
+in the same OCAF label as the model object, and serves as a root of the object's tree. 
+A hidden partition is a simple partition with a predefined hidden flag. 
 
-  // Scalar values 
-  Standard_Real myAngle;
-  Standard_Real myScale;
+The main partition object methods: 
 
-  // Points 
-  gp_Pnt myFirstPoint;
-  gp_Pnt mySecondPoint;
-}; 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~{.cpp}
+    TDF_Label NewLabel() const; 
+~~~~~
 
-@subsection occt_ocaf_11_2 Implementation of Attribute Transformation in a CPP file
+Allocates and returns a new label for creation of a new child object. 
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-#include <MyPackage_Transformation.hxx> 
-
-//======================================================================= 
-//function : GetID 
-//purpose  : The method returns a unique GUID of this attribute. 
-//           By means of this GUID this attribute may be identified   
-//           among other attributes attached to the same label. 
-//======================================================================= 
-const Standard_GUID& MyPackage_Transformation::GetID()   
-{ 
-  static Standard_GUID ID("4443368E-C808-4468-984D-B26906BA8573"); 
-  return ID; 
-} 
+~~~~~{.cpp}
+    void SetNamePrefix  ( const Handle(TCollection_HExtendedString)& thePrefix); 
+~~~~~
 
-//======================================================================= 
-//function : Set 
-//purpose  : Finds or creates the attribute attached to <theLabel>. 
-//           The found or created attribute is returned. 
-//======================================================================= 
-Handle(MyPackage_Transformation) MyPackage_Transformation::Set(const TDF_Label& theLabel)   
-{ 
-  Handle(MyPackage_Transformation) T; 
-  if (!theLabel.FindAttribute(MyPackage_Transformation::GetID(), T))   
-  { 
-    T = new MyPackage_Transformation();   
-    theLabel.AddAttribute(T); 
-  } 
-  return T; 
-} 
+Defines the prefix for automatic generation of names of the newly created objects. 
 
-//======================================================================= 
-//function : Get 
-//purpose  : The method returns the transformation. 
-//======================================================================= 
-gp_Trsf MyPackage_Transformation::Get() const 
-{ 
-  gp_Trsf transformation; 
-  switch (myType) 
-  { 
-    case gp_Identity: 
-    { 
-      break; 
-    } 
-    case gp_Rotation: 
-    { 
-      transformation.SetRotation(myAx1, myAngle); 
-      break; 
-    } 
-    case gp_Translation: 
-    { 
-      transformation.SetTranslation(myFirstPoint, mySecondPoint); 
-      break; 
-    } 
-    case gp_PntMirror: 
-    { 
-      transformation.SetMirror(myFirstPoint); 
-      break; 
-    } 
-    case gp_Ax1Mirror: 
-    { 
-      transformation.SetMirror(myAx1); 
-      break; 
-    } 
-    case gp_Ax2Mirror: 
-    { 
-      transformation.SetMirror(myAx2); 
-      break; 
-    } 
-    case gp_Scale: 
-    { 
-      transformation.SetScale(myFirstPoint, myScale); 
-      break; 
-    } 
-    case gp_CompoundTrsf: 
-    { 
-      transformation.SetTransformation(myFirstAx3, mySecondAx3); 
-      break; 
-    } 
-    case gp_Other: 
-    { 
-      break; 
-    } 
-  } 
-  return transformation; 
-} 
+~~~~~{.cpp}
+    Handle(TCollection_HExtendedString) GetNamePrefix() const; 
+~~~~~
 
-//======================================================================= 
-//function : SetRotation 
-//purpose  : The method defines a rotation type of transformation. 
-//======================================================================= 
-void MyPackage_Transformation::SetRotation(const gp_Ax1& theAxis, const Standard_Real theAngle) 
-{ 
-  Backup(); 
-  myType = gp_Rotation; 
-  myAx1 = theAxis; 
-  myAngle = theAngle; 
-} 
+Returns the current name prefix. 
 
-//======================================================================= 
-//function : SetTranslation 
-//purpose  : The method defines a translation type of transformation. 
-//======================================================================= 
-void MyPackage_Transformation::SetTranslation(const gp_Vec& theVector) 
-{ 
-  Backup(); 
-  myType = gp_Translation; 
-  myFirstPoint.SetCoord(0, 0, 0); 
-  mySecondPoint.SetCoord(theVector.X(), theVector.Y(), theVector.Z()); 
-} 
+~~~~~{.cpp}
+    Handle(TCollection_HExtendedString) GetNewName ( const Standard_Boolean theIsToChangeCount) const; 
+~~~~~
 
-//======================================================================= 
-//function : SetMirror 
-//purpose  : The method defines a point mirror type of transformation 
-//           (point symmetry). 
-//======================================================================= 
-void MyPackage_Transformation::SetMirror(const gp_Pnt& thePoint) 
-{ 
-  Backup(); 
-  myType = gp_PntMirror; 
-  myFirstPoint = thePoint; 
-} 
+Generates the new name and increases the internal counter of child objects if theIsToChangeCount is **True**. 
 
-//======================================================================= 
-//function : SetMirror 
-//purpose  : The method defines an axis mirror type of transformation 
-//           (axial symmetry). 
-//======================================================================= 
-void MyPackage_Transformation::SetMirror(const gp_Ax1& theAxis) 
-{ 
-  Backup(); 
-  myType = gp_Ax1Mirror; 
-  myAx1 = theAxis; 
-} 
+~~~~~{.cpp}
+    Standard_Integer GetLastIndex() const; 
+~~~~~
 
-//======================================================================= 
-//function : SetMirror 
-//purpose  : The method defines a point mirror type of transformation 
-//           (planar symmetry). 
-//======================================================================= 
-void MyPackage_Transformation::SetMirror(const gp_Ax2& thePlane) 
-{ 
-  Backup(); 
-  myType = gp_Ax2Mirror; 
-  myAx2 = thePlane; 
-} 
+Returns the last reserved child index. 
 
-//======================================================================= 
-//function : SetScale 
-//purpose  : The method defines a scale type of transformation. 
-//======================================================================= 
-void MyPackage_Transformation::SetScale(const gp_Pnt& thePoint, const Standard_Real theScale) 
-{ 
-  Backup(); 
-  myType = gp_Scale; 
-  myFirstPoint = thePoint; 
-  myScale = theScale; 
-} 
+~~~~~{.cpp}
+    void SetLastIndex( const Standard_Integer theIndex ); 
+~~~~~
 
-//======================================================================= 
-//function : SetTransformation 
-//purpose  : The method defines a complex type of transformation 
-//           from one co-ordinate system to another. 
-//======================================================================= 
-void MyPackage_Transformation::SetTransformation(const gp_Ax3& theCoordinateSystem1,   
-                                                                         const gp_Ax3& theCoordinateSystem2) 
-{ 
-  Backup(); 
-  myFirstAx3 = theCoordinateSystem1; 
-  mySecondAx3 = theCoordinateSystem2; 
-} 
+Sets the last reserved index. 
 
-//======================================================================= 
-//function : ID 
-//purpose  : The method returns a unique GUID of the attribute. 
-//           By means of this GUID this attribute may be identified   
-//           among other attributes attached to the same label. 
-//======================================================================= 
-const Standard_GUID& MyPackage_Transformation::ID() const   
-{   
-  return GetID();   
-} 
+@subsection occt_tobj_4 Auxiliary classes
 
-//======================================================================= 
-//function : Restore 
-//purpose  : The method is called on Undo / Redo. 
-//           It copies the content of <theAttribute> 
-//           into this attribute (copies the fields). 
-//======================================================================= 
-void MyPackage_Transformation::Restore(const Handle(TDF_Attribute)& theAttribute)   
-{ 
-  Handle(MyPackage_Transformation) theTransformation = Handle(MyPackage_Transformation)::DownCast(theAttribute); 
-  myType = theTransformation->myType; 
-  myAx1 = theTransformation->myAx1; 
-  myAx2 = theTransformation->myAx2; 
-  myFirstAx3 = theTransformation->myFirstAx3; 
-  mySecondAx3 = theTransformation->mySecondAx3; 
-  myAngle = theTransformation->myAngle; 
-  myScale = theTransformation->myScale; 
-  myFirstPoint = theTransformation->myFirstPoint; 
-  mySecondPoint = theTransformation->mySecondPoint; 
-} 
+Apart from the model and the object, package *TObj* provides a set of auxiliary classes: 
 
-//======================================================================= 
-//function : NewEmpty 
-//purpose  : It creates a new instance of this attribute. 
-//           It is called on Copy / Paste, Undo / Redo. 
-//======================================================================= 
-Handle(TDF_Attribute) MyPackage_Transformation::NewEmpty() const 
-{    
-  return new MyPackage_Transformation();   
-} 
+  * *TObj_Application* -- defines OCAF application supporting existence and operation with *TObj* documents.
+  * *TObj_Assistant* -- class provides an interface to the static data to be used during save and load operations on models. In particular, in case of cross-model dependencies it allows passing information on the parent model to the OCAF loader to correctly resolve the references when loading a dependent model.
+  * *TObj_TReference* -- OCAF attribute describes the references between objects in the *TObj* model(s). This attribute stores the label of the referred model object, and provides transparent cross-model references. At runtime, these references are simple Handles; in persistence mode, the cross-model references are automatically detected and processed by the persistence mechanism of *TObj_TReference* attribute. 
+  * Other classes starting with *TObj_T...* -- define OCAF attributes used to store TObj-specific classes and some types of data on OCAF labels. 
+  * Iterators -- a set of classes implementing *TObj_ObjectIterator* interface, used for iterations on *TObj* objects:
+         * *TObj_ObjectIterator* -- a basic abstract class for other *TObj* iterators. Iterates on *TObj_Object* instances. 
+         * *TObj_LabelIterator* -- iterates on object labels in the *TObj* model document 
+         * *TObj_ModelIterator* -- iterates on all objects in the model. Works with sequences of other iterators. 
+         * *TObj_OcafObjectIterator* -- Iterates on *TObj* data model objects. Can iterate on objects of a specific type. 
+         * *TObj_ReferenceIterator* -- iterates on object references. 
+         * *TObj_SequenceIterator* -- iterates on a sequence of *TObj* objects. 
+         * *TObj_CheckModel* -- a tool that checks the internal consistency of the model. The basic implementation checks only the consistency of references between objects.
 
-//======================================================================= 
-//function : Paste 
-//purpose  : The method is called on Copy / Paste. 
-//           It copies the content of this attribute into 
-//           <theAttribute> (copies the fields). 
-//======================================================================= 
-void MyPackage_Transformation::Paste(const Handle(TDF_Attribute)& theAttribute, 
-                                                     const Handle(TDF_RelocationTable)& ) const 
-{ 
-  Handle(MyPackage_Transformation) theTransformation = Handle(MyPackage_Transformation)::DownCast(theAttribute); 
-  theTransformation->myType = myType; 
-  theTransformation->myAx1 = myAx1; 
-  theTransformation->myAx2 = myAx2; 
-  theTransformation->myFirstAx3 = myFirstAx3; 
-  theTransformation->mySecondAx3 = mySecondAx3; 
-  theTransformation->myAngle = myAngle; 
-  theTransformation->myScale = myScale; 
-  theTransformation->myFirstPoint = myFirstPoint; 
-  theTransformation->mySecondPoint = mySecondPoint; 
-} 
+The structure of *TObj* iterators hierarchy is presented below: 
 
-//======================================================================= 
-//function : Dump 
-//purpose  : Prints the content of this attribute into the stream. 
-//======================================================================= 
-Standard_OStream& MyPackage_Transformation::Dump(Standard_OStream& anOS) const 
-{    
-  anOS = "Transformation: "; 
-  switch (myType) 
-  { 
-    case gp_Identity: 
-    { 
-      anOS = "gp_Identity"; 
-      break; 
-    } 
-    case gp_Rotation: 
-    { 
-      anOS = "gp_Rotation"; 
-      break; 
-    } 
-    case gp_Translation: 
-    { 
-      anOS = "gp_Translation"; 
-      break; 
-    } 
-    case gp_PntMirror: 
-    { 
-      anOS = "gp_PntMirror"; 
-      break; 
-    } 
-    case gp_Ax1Mirror: 
-    { 
-      anOS = "gp_Ax1Mirror"; 
-      break; 
-    } 
-    case gp_Ax2Mirror: 
-    { 
-      anOS = "gp_Ax2Mirror"; 
-      break; 
-    } 
-    case gp_Scale: 
-    { 
-      anOS = "gp_Scale"; 
-      break; 
-    } 
-    case gp_CompoundTrsf: 
-    { 
-      anOS = "gp_CompoundTrsf"; 
-      break; 
-    } 
-    case gp_Other: 
-    { 
-      anOS = "gp_Other"; 
-      break; 
-    } 
-  } 
-  return anOS; 
-} 
+@figure{/user_guides/ocaf/images/tobj_image008.png,"Hierarchy of iterators",420}
+
+
+@subsection occt_tobj_5 Packaging
+
+The *TObj* sources are distributed in the following packages: 
 
-//=======================================================================
-//function : MyPackage_Transformation 
-//purpose  : A constructor. 
-//=======================================================================
-MyPackage_Transformation::MyPackage_Transformation():myType(gp_Identity){ 
+  * *TObj* -- defines basic classes that implement *TObj* interfaces for OCAF-based modelers.
+  * *BinLDrivers, XmlLDrivers* -- binary and XML driver of *TObj* package
+  * *BinLPlugin, XmlLPlugin* -- plug-in for binary and XML persistence
+  * *BinMObj, XmlMObj* -- binary and XML drivers to store and retrieve specific *TObj* data to or from OCAF document
+  * *TKBinL, TKXmlL* -- toolkits of binary and XML persistence
 
-}
+
+@section occt_ocaf_10 GLOSSARY
+
+* **Application** -- a document container holding all documents containing all application data. 
+* **Application data** -- the data produced by an application, as opposed to data referring to it. 
+* **Associativity of data** -- the ability to propagate modifications made to one document to other documents, which refer to such document. Modification propagation is: 
+  * unidirectional, that is, from the referenced to the referencing document(s), or
+  * bi-directional, from the referencing to the referenced document and vice-versa.
+* **Attribute** -- a container for application data. An attribute is attached to a label in the hierarchy of the data framework. 
+* **Child** -- a label created from another label, which by definition, is the father label. 
+* **Compound document** -- a set of interdependent documents, linked to each other by means of external references. These references provide the associativity of data. 
+* **Data framework** -- a tree-like data structure which in OCAF, is a tree of labels with data attached to them in the form of attributes. This tree of labels is accessible through the services of the *TDocStd_Document* class. 
+* **Document** -- a container for a data framework which grants access to the data, and is, in its turn, contained  by an application. A document also allows you to: 
+       * Manage modifications, providing Undo and Redo functions 
+       * Manage command transactions 
+       * Update external links 
+       * Manage save and restore options 
+       * Store the names of software extensions. 
+* **Driver** -- an abstract class, which defines the communications protocol with a system. 
+* **Entry** -- an ASCII character string containing the tag list of a label. For example:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+0:3:24:7:2:7 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsection occt_ocaf_11_3  Implementation of typical actions with standard OCAF attributes.
-
-There are four sample files provided in the directory 'OpenCasCade/ros/samples/ocafsamples'. They present typical actions with OCAF services (mainly for newcomers). 
-The method *Sample()* of each file is not dedicated for execution 'as is', it is rather a set of logical actions using some OCAF services.
-
-### TDataStd_Sample.cxx
-This sample contains templates for typical actions with the following standard OCAF attributes:
-- Starting with data framework;
-- TDataStd_Integer attribute management;
-- TDataStd_RealArray attribute management;
-- TDataStd_Comment attribute management;
-- TDataStd_Name attribute management;
-- TDataStd_UAttribute attribute management;
-- TDF_Reference attribute management;
-- TDataXtd_Point attribute management;
-- TDataXtd_Plane attribute management;
-- TDataXtd_Axis attribute management;
-- TDataXtd_Geometry attribute management;
-- TDataXtd_Constraint attribute management;
-- TDataStd_Directory attribute management;
-- TDataStd_TreeNode attribute management.
-  
-### TDocStd_Sample.cxx
-This sample contains template for the following typical actions:
-- creating application;
-- creating the new document (document contains a framework);
-- retrieving the document from a label of its framework;
-- filling a document with data;
-- saving a document in the file;
-- closing a document;
-- opening the document stored in the file;
-- copying content of a document to another document with possibility to update the copy in the future.
-### TPrsStd_Sample.cxx
-This sample contains template for the following typical actions:
-- starting with data framework;
-- setting the TPrsStd_AISViewer in the framework;
-- initialization of aViewer;
-- finding TPrsStd_AISViewer attribute in the DataFramework;
-- getting AIS_InteractiveContext from TPrsStd_AISViewer;
-- adding driver to the map of drivers;
-- getting driver from the map of drivers;
-- setting TNaming_NamedShape to \<ShapeLabel\>;
-- setting the new  TPrsStd_AISPresentation to \<ShapeLabel\>;
-- displaying;
-- erasing;
-- updating and displaying presentation of the attribute to be displayed;
-- setting a color to the displayed attribute;
-- getting transparency of the displayed attribute;
--  modify attribute;
-- updating presentation of the attribute in viewer.
-
-### TNaming_Sample.cxx
-This sample contains template for typical actions with OCAF Topological Naming services.
-The following scenario is used:
-- data framework initialization;
-- creating Box1 and pushing it as PRIMITIVE in DF;
-- creating Box2 and pushing it as PRIMITIVE in DF;
-- moving Box2 (applying a transformation);
-- pushing the selected edges of the top face of Box1 in DF;
-- creating a Fillet (using the selected edges) and pushing the result as a modification of Box1;
-- creating a Cut (Box1, Box2) as a modification of Box1 and push it in DF;
-- recovering the result from DF.
+* **External links** -- references from one data structure to another data structure in another document. 
+To store these references properly, a label must also contain an external link attribute. 
+* **Father** -- a label, from which other labels have been created. The other labels are, by definition, the children of this label. 
+* **Framework** -- a group of co-operating classes which enable a design to be re-used for a given category of problem. The framework guides the architecture of the application by breaking it up into abstract  classes, each of which has different responsibilities and collaborates in a predefined way. Application developer creates a specialized framework by: 
+  * defining new classes which inherit from these abstract classes
+  * composing framework class instances
+  * implementing the services required by the framework.
 
+In C++, the application behavior is implemented in virtual functions redefined in these derived classes. This is known as overriding. 
+
+* **GUID** -- Global Universal ID. A string of 37 characters intended to uniquely identify an object. For example:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+2a96b602-ec8b-11d0-bee7-080009dc3333 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* **Label** -- a point in the data framework, which allows data to be attached to it by means of attributes. It has a name in the form of an entry, which identifies its place in the data framework. 
+* **Modified label** -- containing attributes whose data has been modified. 
+* **Reference key** -- an invariant reference, which may refer to any type of data used in an application. In its transient form, it is a label in the data framework, and the data is attached to it in the form of attributes. In its persistent form, it is an entry of the label. It allows an application to recover any entity in the current session or in a previous session. 
+* **Resource file** -- a file containing a list of each document’s schema name and the storage and retrieval plug-ins for that document. 
+* **Root** -- the starting point of the data framework. This point is the top label in the framework. It is represented by the [0] entry and is created at the same time with the document you are working on. 
+* **Scope** -- the set of all the attributes and labels which depend on a given label. 
+* **Tag list** -- a list of integers, which identify the place of a label in the data framework.  This list is displayed in an entry. 
+* **Topological naming** -- systematic referencing of topological entities so that these entities can still be identified after the models they belong to have gone through several steps in modeling. In other words, topological naming allows you to track entities through the steps in the modeling process. This referencing is needed when a model is edited and regenerated, and can be seen as a mapping of labels and name attributes of the entities in the old version of a model to those of the corresponding entities in its new version. Note that if the topology of a model changes during the modeling, this mapping may not fully coincide. A Boolean operation, for example, may split edges. 
+* **Topological tracking** -- following a topological entity in a model through the steps taken to edit and regenerate that model. 
+* **Valid label** -- in a data framework, this is a label, which is already recomputed in the scope of regeneration sequence and includes the label containing a feature which is to be recalculated. Consider the case of a box to which you first add a fillet, then a protrusion feature. For recalculation purposes, only valid labels of each construction stage are used. In recalculating a fillet, they are only those of the box and the fillet, not the protrusion feature which was added afterwards.   
index e65953f7a1d31f6b00ad9e2f4ccee282a380a69a..8328a914fb8bfe4306da315e6acd979c91989b9f 100644 (file)
@@ -1,4 +1,4 @@
-STEP processor  {#occt_user_guides__step}
+STEP Translator  {#occt_user_guides__step}
 ========================
 
 @tableofcontents
@@ -22,9 +22,7 @@ File translation is performed in the programming mode, via C++ calls.
 
 @ref occt_user_guides__shape_healing "Shape Healing" toolkit provides tools to heal various problems, which may be encountered in translated shapes, and to make them valid in Open CASCADE. The Shape Healing is smoothly connected to STEP translator using the same API, only the names of API packages change.
 
-For testing the STEP component in DRAW Test Harness, a set of commands for reading and writing STEP files and analysis of relevant data are provided by the *TKXSDRAW* plugin. 
-
-See also our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
+For testing the STEP component in DRAW Test Harness, a set of commands for reading and writing STEP files and analysis of relevant data are provided by the *TKXSDRAW* plugin.
 
 @subsection occt_step_1_1 STEP Exchanges in Open Cascade technology
 
diff --git a/dox/user_guides/tobj/images/tobj_image003.png b/dox/user_guides/tobj/images/tobj_image003.png
deleted file mode 100644 (file)
index ffb6b11..0000000
Binary files a/dox/user_guides/tobj/images/tobj_image003.png and /dev/null differ
diff --git a/dox/user_guides/tobj/images/tobj_image004.png b/dox/user_guides/tobj/images/tobj_image004.png
deleted file mode 100644 (file)
index 264cca7..0000000
Binary files a/dox/user_guides/tobj/images/tobj_image004.png and /dev/null differ
diff --git a/dox/user_guides/tobj/images/tobj_image005.png b/dox/user_guides/tobj/images/tobj_image005.png
deleted file mode 100644 (file)
index cf79264..0000000
Binary files a/dox/user_guides/tobj/images/tobj_image005.png and /dev/null differ
diff --git a/dox/user_guides/tobj/images/tobj_image006.png b/dox/user_guides/tobj/images/tobj_image006.png
deleted file mode 100644 (file)
index 6b1343b..0000000
Binary files a/dox/user_guides/tobj/images/tobj_image006.png and /dev/null differ
diff --git a/dox/user_guides/tobj/images/tobj_image007.png b/dox/user_guides/tobj/images/tobj_image007.png
deleted file mode 100644 (file)
index 3919188..0000000
Binary files a/dox/user_guides/tobj/images/tobj_image007.png and /dev/null differ
diff --git a/dox/user_guides/tobj/images/tobj_image008.png b/dox/user_guides/tobj/images/tobj_image008.png
deleted file mode 100644 (file)
index 970d9b1..0000000
Binary files a/dox/user_guides/tobj/images/tobj_image008.png and /dev/null differ
diff --git a/dox/user_guides/tobj/tobj.md b/dox/user_guides/tobj/tobj.md
deleted file mode 100644 (file)
index 155091b..0000000
+++ /dev/null
@@ -1,910 +0,0 @@
-TObj Package  {#occt_user_guides__tobj}
-==================
-
-@tableofcontents
-
-@section occt_tobj_1 Introduction
-
-This document describes the package TObj, which is an add-on 
-to the Open CASCADE Application Framework (OCAF).
-
-This package provides a set of classes and auxiliary tools facilitating 
-the creation of object-oriented data models on top of low-level OCAF data structures. 
-This includes: 
-
-  * Definition of classes representing data objects. Data objects store their data using primitive OCAF attributes, taking advantage of OCAF mechanisms for Undo/Redo and persistence. At the same time they provide a higher level abstraction over the pure OCAF document structure (labels / attributes).
-  * Organization of the data model as a hierarchical (tree-like) structure of objects.
-  * Support of cross-references between objects within one model or among different models. In case of cross-model references the models should depend hierarchically.
-  * Persistence mechanism for storing *TObj* objects in OCAF files, which allows storing and retrieving objects of derived types without writing additional code to support persistence. 
-
-This document describes basic principles of logical and physical organization 
-of TObj-based data models and typical approaches to implementation of classes representing model objects.
-
-@subsection occt_tobj_1_1 Applicability
-
-The main purpose of the *TObj* data model is rapid development 
-of the object-oriented data models for applications, using the existing 
-functionality provided by OCAF (Undo/Redo and persistence) 
-without the necessity to redevelop such functionality from scratch.
-
-As opposed to using bare OCAF (at the level of labels and attributes), 
-TObj facilitates dealing with higher level abstracts, which are closer 
-to the application domain. It works best when the application data are naturally 
-organized in hierarchical structures, and is especially useful for complex data 
-models with dependencies between objects belonging to different parts of the model.
-
-It should be noted that *TObj* is efficient for representing data structures containing 
-a limited number of objects at each level of the data structure (typically less than 1000).
-A greater number of objects causes performance problems due to list-based organization of OCAF documents. Therefore, other methods of storage, such as arrays, are advisable for data models or their sub-parts containing a great number of uniform objects. However, these methods 
-can be combined with the usage of *TObj* to represent the high-level structure of the model.
-
-@section occt_tobj_2 TObj Model
-
-@subsection occt_tobj_2_1 TObj Model structure
-
-In the *TObj* data model the data are separated from the interfaces that manage them.
-
-It should be emphasized that *TObj* package defines only the interfaces and the basic structure of the model and objects, while the actual contents and structure of the model of a particular application are defined by its specific classes inherited from *TObj* classes. The implementation can add its own features or even change the default behaviour and the data layout, though this is not recommended. 
-
-Logically the *TObj* data model is represented as a tree of model objects, with upper-level objects typically being collections of other objects (called *partitions*, represented by the class *TObj_Partition*). The root object of the model is called the *Main partition* and is maintained by the model itself. This partition contains a list of sub-objects called its *children* each sub-object may contain its own children (according to its type), etc. 
-
-@figure{/user_guides/tobj/images/tobj_image003.png,"TObj Data Model",240}
-
-As the *TObj* Data Model is based on OCAF (Open CASCADE Application Framework) technology, 
-it stores its data in the underlying OCAF document. The OCAF document consists of a tree of 
-items called *labels*. Each label has some data attached to it in the form of *attributes*, 
-and may contain an arbitrary number of sub-labels. Each sub-label is identified by its sequential 
-number called the *tag*. The complete sequence of tag numbers of the label 
-and its parents starting from the document root constitutes the complete *entry* 
-of the label, which uniquely identifies its position in the document.
-
-Generally the structure of the OCAF tree of the *TObj* data 
-model corresponds to the logical structure of the model and can be presented as in the following picture: 
-
-@figure{/user_guides/tobj/images/tobj_image004.png,"TObj Data Model mapped on OCAF document",360}
-
-All data of the model are stored in the root label (0:1) of the OCAF document. 
-An attribute *TObj_TModel* is located in this root label. It 
-stores the object of type *TObj_Model*. This object serves as a main interface tool 
-to access all data and functionalities of the data model.
-
-In simple cases all data needed by the application may be 
-contained in a single data model. Moreover, *TObj* gives the possibility to 
-distribute the data between several interconnected data models. This can be 
-especially useful for the applications dealing with great amounts of data. because 
-only the data required for the current operation is loaded in the memory at one time. 
-It is presumed that the models have a hierarchical (tree-like) structure, 
-where the objects of the child models can refer to the objects of the parent 
-models, not vice-versa. Provided that the correct order of loading and closing 
-of the models is ensured, the *TObj* classes will maintain references between the objects automatically.
-
-@subsection occt_tobj_2_2 Data Model basic features
-
-The class *TObj_Model* describing the data model provides the following functionalities: 
-
-  * Loading and saving of the model from or in a file (methods *Load* and *Save*)
-  * Closing and removal of the model from memory (method *Close*)
-  * Definition of the full file name of the persistence storage for this model (method *GetFile*)
-  * Tools to organize data objects in partitions and iterate on objects (methods *GetObjects*, *GetMainPartition*, *GetChildren*, *getPartition*, *getElementPartition*)
-  * Mechanism to give unique names to model objects 
-  * Copy (*clone*) of the model (methods *NewEmpty* and *Paste*)
-  * Support of earlier model formats for proper conversion of a model loaded from a file written by a previous version of the application (methods *GetFormatVersion* and *SetFormatVersion*)
-  * Interface to check and update the model if necessary (method *Update*)
-  * Support of several data models in one application. For this feature use OCAF multi-transaction manager, unique names and GUIDs of the data model (methods *GetModelName*, *GetGUID*)
-
-@subsection occt_tobj_2_3 Model Persistence
-
-The persistent representation of any OCAF model is contained in an XML or a binary file, 
-which is defined by the format string returned by the method *GetFormat*. 
-The default implementation works with a binary OCAF document format (*BinOcaf*). 
-The other available format is *XmlOcaf*. The class **TObj_Model** declares and provides a default 
-implementation of two virtual methods: 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean Load (const char* theFile); 
-    virtual Standard_Boolean SaveAs (const char* theFile); 
-~~~~~
-
-which retrieve and store the model from or 
-in the OCAF file. The descendants 
-should define the following protected method to support Load and Save operations:
-
-~~~~~{.cpp}
-    virtual Standard_Boolean initNewModel (const Standard_Boolean IsNew); 
-~~~~~
-
-This method is called by *Load* after creation of a new model 
-or after its loading from the file; its purpose is to perform 
-the necessary initialization of the model (such as creation of necessary top-level 
-partitions, model update due to version changes etc.). Note that if 
-the specified file does not exist, method *Load* will create 
-a new document and call *initNewModel* with the argument **True**. 
-If the file has been normally loaded, the argument **False** is passed. 
-Thus, a new empty *TObj* model is created by calling *Load* with an empty 
-string or the path to a nonexistent file as argument. 
-
-The method *Load* returns **True** if the model has been retrieved successfully 
-(or created a new), or **False** if the model could not be loaded. 
-If no errors have been detected during initialization (model retrieval or creation),
-the virtual method *AfterRetrieval* is invoked for all objects of the model. 
-This method initializes or updates the objects immediately after the model initialization. 
-It could be useful when some object data should be imported from an OCAF attribute into transient 
-fields which could be changed outside of the OCAF transaction mechanism. 
-Such fields can be stored into OCAF attributes for saving into persistent storage during the save operation.
-
-To avoid memory leaks, the *TObj_Model* class destructor invokes *Close* method 
-which clears the OCAF document and removes all data from memory before the model is destroyed.
-
-For XML and binary persistence of the *TObj* data model the corresponding drivers are implemented 
-in *BinLDrivers*, *BinMObj* and *XmlLDrivers*, *XmlMObj* packages. 
-These packages contain retrieval and storage drivers for the model, model objects and custom attributes 
-from the *TObj* package. The schemas support persistence for the standard OCAF and *TObj* attributes. 
-This is sufficient for the implementation of simple data models, but 
-in some cases it can be reasonable to add specific OCAF attributes to 
-facilitate the storage of the data specific to the application. 
-In this case the schema should be extended using the standard OCAF mechanism. 
-
-@subsection occt_tobj_2_4 Access to the objects in the model
-
-All objects in the model are stored in the main partition and accessed by iterators.
-To access all model objects use: 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_ObjectIterator) GetObjects () const; 
-~~~~~
-
-This method returns a recursive iterator on all objects stored in the model.
-
-~~~~~{.cpp}
-    virtual Handle(TObj_ObjectIterator) GetChildren () const; 
-~~~~~
-
-This method returns an iterator on child objects of the main partition.
-Use the following method to get the main partition: 
-
-~~~~~{.cpp}
-    Handle(TObj_Partition) GetMainPartition() const; 
-~~~~~
-
-To receive the iterator on objects of a specific type *AType* use the following call: 
-
-~~~~~{.cpp}
-    GetMainPartition()-&gt;GetChildren(STANDARD_TYPE(AType) ); 
-~~~~~
-
-The set of protected methods is provided for descendant classes to deal with partitions: 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_Partition) getPartition (const TDF_Label, const Standard_Boolean  theHidden) const; 
-~~~~~
-
-This method returns (creating if necessary) a partition in the specified label of the document. 
-The partition can be created as hidden (*TObj_HiddenPartition* class). 
-A hidden partition can be useful to distinguish the data that 
-should not be visible to the user when browsing the model in the application. 
-
-The following two methods allow getting (creating) a partition 
-in the sub-label of the specified label in the document 
-(the label of the main partition for the second method) and with the given name: 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_Partition) getPartition (const TDF_Label, const Standard_Integer theIndex, const TCollection_ExtendedString& theName, const Standard_Boolean  theHidden) const; 
-    virtual Handle(TObj_Partition) getPartition (const Standard_Integer theIndex, const TCollection_ExtendedString& theName, const Standard_Boolean  theHidden) const; 
-~~~~~
-
-If the default object naming and the name register mechanism 
-is turned on, the object can be found in the model by its unique name: 
-
-~~~~~{.cpp}
-    Handle(TObj_Object) FindObject (const Handle(TCollection_HExtendedString)& theName, const Handle(TObj_TNameContainer)& theDictionary) const; 
-~~~~~
-
-@subsection occt_tobj_2_5 Own model data
-
-The model object can store its own data in the Data label 
-of its main partition, however, there is no standard API for 
-setting and getting these data types. The descendants can add 
-their own data using standard OCAF methods. The enumeration DataTag is defined 
-in *TObj_Model* to avoid conflict of data labels used by this class 
-and its descendants, similarly to objects (see below). 
-
-@subsection occt_tobj_2_6 Object naming
-
-The basic implementation of *TObj_Model* provides the default 
-naming mechanism: all objects must have unique names, 
-which are registered automatically in the data model dictionary. 
-The dictionary is a *TObj_TNameContainer* 
-attribute whose instance is located in the model root label.
-If necessary, the developer can add several dictionaries into 
-the specific partitions, providing the name registration in the 
-correct name dictionary and restoring the name map after document is loaded from file.
-To ignore name registering it is necessary to redefine the methods *SetName*, 
-*AfterRetrieval* of the *TObj_Object* class and skip the registration of the object name. 
-Use the following methods for the naming mechanism: 
-
-~~~~~{.cpp}
-    Standard_Boolean IsRegisteredName (const Handle(TCollection_HExtendedString)& theName, const Handle(TObj_TNameContainer)& theDictionary ) const; 
-~~~~~
-
-Returns **True** if the object name is already registered in the indicated (or model) dictionary. 
-
-~~~~~{.cpp}
-    void RegisterName (const Handle(TCollection_HExtendedString)& theName, const TDF_Label& theLabel, const Handle(TObj_TNameContainer)& theDictionary ) const; 
-~~~~~
-
-Registers the object name with the indicated label where the object 
-is located in the OCAF document. Note that the default implementation 
-of the method *SetName* of the object registers the new name automatically 
-(if the name is not yet registered for any other object) 
-
-~~~~~{.cpp}
-    void UnRegisterName (const Handle(TCollection_HExtendedString)& theName, const Handle(TObj_TNameContainer)& theDictionary ) const; 
-~~~~~
-
-Unregisters the name from the dictionary. Ther names of *TObj* model 
-objects are removed from the dictionary when the objects are deleted from the model. 
-
-~~~~~{.cpp}
-    Handle(TObj_TNameContainer) GetDictionary() const;
-~~~~~
-
-Returns a default instance of the model dictionary (located at the model root label). 
-The default implementation works only with one dictionary. 
-If there are a necessity to have more than one dictionary for the model objects, 
-it is recommended to redefine the corresponding virtual method of TObj_Object 
-that returns the dictionary where names of objects should be registered.
-
-@subsection occt_tobj_2_7 API for transaction mechanism
-
-Class *TObj_Model* provides the API for transaction mechanism (supported by OCAF): 
-
-~~~~~{.cpp}
-    Standard_Boolean HasOpenCommand() const; 
-~~~~~
-
-Returns True if a Command transaction is open 
-
-~~~~~{.cpp}
-    void OpenCommand() const; 
-~~~~~
-
-Opens a new command transaction. 
-
-~~~~~{.cpp}
-    void CommitCommand() const; 
-~~~~~
-
-Commits the Command transaction. Does nothing If there is no open Command transaction. 
-
-~~~~~{.cpp}
-    void AbortCommand() const; 
-~~~~~
-
-Aborts the Command transaction. Does nothing if there is no open Command transaction. 
-
-~~~~~{.cpp}
-    Standard_Boolean IsModified() const; 
-~~~~~
-
-Returns True if the model document has a modified status (has changes after the last save) 
-
-~~~~~{.cpp}
-    void SetModified( const Standard_Boolean ); 
-~~~~~
-
-Changes the modified status by force. For synchronization of transactions 
-within several *TObj_Model* documents use class *TDocStd_MultiTransactionManager*. 
-
-@subsection occt_tobj_28 Model format and version
-
-Class *TObj_Model* provides the descendant classes with a means to control 
-the format of the persistent file by choosing the schema used to store or retrieve operations. 
-
-~~~~~{.cpp}
-    virtual TCollection_ExtendedString GetFormat () const; 
-~~~~~
-
-Returns the string *TObjBin* or *TObjXml* indicating 
-the current persistent mechanism. The default value is *TObjBin*. 
-Due to the evolution of functionality of the developed application, 
-the contents and the structure of its data model vary from version to version. 
-*TObj* package provides a basic mechanism supporting backward versions compatibility, 
-which means that newer versions of the application will be able to read 
-Data Model files created by previous versions (but not vice-versa) with a minimum loss of data. 
-For each type of Data Model, all known versions of the data format 
-should be enumerated in increasing order, incremented with every change 
-of the model format. The current version of the model 
-format is stored in the model file and can be checked upon retrieval. 
-
-~~~~~{.cpp}
-    Standard_Integer GetFormatVersion() const; 
-~~~~~
-
-Returns the format version stored in the model file 
-
-~~~~~{.cpp}
-    void SetFormatVersion(const Standard_Integer theVersion); 
-~~~~~
-
-Defines the format version used for save. 
-
-Upon loading a model, the method *initNewModel()*, called immediately 
-after opening a model from disk (on the level of the OCAF document), 
-provides a specific code that checks the format version stored in that model. 
-If it is older than the current version of the application, the data update can be performed. 
-Each model can have its own specific conversion code 
-that performs the necessary data conversion to make them compliant with the current version. 
-
-When the conversion ends the user is advised of that by the messenger interface 
-provided by the model (see messaging chapter for more details), 
-and the model version is updated. If the version of data model is not supported 
-(it is newer than the current or too old), the load operation should fail. 
-The program updating the model after version change can be implemented as static 
-methods directly in C++ files of the corresponding Data Model classes, 
-not exposing it to the other parts of the application. 
-These codes can use direct access to the model and objects data (attributes) 
-not using objects interfaces, because the data model API and object classes 
-could have already been changed. 
-
-Note that this mechanism has been designed to maintain version compatibility 
-for the changes of data stored in the model, not for the changes of 
-low-level format of data files (such as the storage format of a specific OCAF attribute). 
-If the format of data files changes, a specific treatment on a case-by-case basis will be required. 
-
-@subsection occt_tobj_2_9 Model update
-
-The following methods are used for model update to ensure its consistency 
-with respect to the other models in case of cross-model dependencies: 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean Update(); 
-~~~~~
-
-This method is usually called after loading of the model. 
-The default implementation does nothing and returns **True**. 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean initNewModel( const Standard_Boolean IsNew); 
-~~~~~
-
-This method performs model initialization, check and updates (as described above). 
-
-~~~~~{.cpp}
-    virtual void updateBackReferences( const Handle(TObj_Object)& theObj); 
-~~~~~
-
-This method is called from the previous method to update back references 
-of the indicated object after the retrieval of the model from file 
-(see data model - object relationship chapter for more details) 
-
-@subsection occt_tobj_2_10 Model copying
-
-To copy the model between OCAF documents use the following methods: 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean Paste (Handle(TObj_Model) theModel, Handle(TDF_RelocationTable) theRelocTable = 0 ); 
-~~~~~
-
-Pastes the current model to the new model. The relocation table 
-ensures correct copying of the sub-data shared by several parts of the model. 
-It stores a map of processed original objects of relevant types in their copies. 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_Model) NewEmpty() = 0; 
-~~~~~
-
-Redefines a pure virtual method to create a new empty instance of the model. 
-
-~~~~~{.cpp}
-    void CopyReferences ( const Handle(TObj_Model)& theTarget, const Handle(TDF_RelocationTable)& theRelocTable); 
-~~~~~
-
-Copies the references from the current model to the target model. 
-
-@subsection occt_tobj_2_11 Messaging
-
-The messaging is organised using Open CASCADE Messenger from the package Message. 
-The messenger is stored as the field of the model instance 
-and can be set and retrieved by the following methods: 
-
-~~~~~{.cpp}
-    void SetMessenger( const Handle(Message_Messenger)& ); 
-    Handle(Message_Messenger) Messenger() const; 
-~~~~~
-
-A developer should create his own instance of the Messenger 
-bound to the application user interface, and attribute it to the model 
-for future usage. In particular the messenger is used for reporting 
-errors and warnings in the persistence mechanism. 
-Each message has a unique string identifier (key). 
-All message keys are stored in a special resource file TObj.msg. 
-This file should be loaded at the start of the application 
-by call to the appropriate method of the class *Message_MsgFile*. 
-
-@section occt_tobj_3 Model object
-
-Class *TObj_Object* provides basic interface and default implementation 
-of important features of *TObj* model objects. This implementation defines 
-basic approaches that are recommended for all descendants, 
-and provides tools to facilitate their usage. 
-
-@figure{/user_guides/tobj/images/tobj_image005.png,"TObj objects hierarchy",170}
-
-@subsection occt_tobj_3_1 Separation of data and interface
-
-In the *TObj* data model, the data are separated from the interfaces that manage them. 
-The data belonging to a model object are stored in its root label and sub-labels 
-in the form of standard OCAF attributes. This allows using standard OCAF mechanisms 
-for work with these data, and eases the implementation of the persistence mechanism. 
-
-The instance of the interface which serves as an API for managing object data 
-(e.g. represents the model object) is stored in the root label of the object, 
-and typically does not bring its own data. The interface classes are organized in a hierarchy 
-corresponding to the natural hierarchy of the model objects according to the application. 
-
-In the text below the term 'object' is used to denote either the instance 
-of the interface class or the object itself (both interface and data stored in OCAF). 
-
-The special type of attribute *TObj_TObject* is used for storing instances of objects interfaces 
-in the OCAF tree. *TObj_TObject* is a simple container for the object of type *TObj_Object*. 
-All objects (interfaces) of the data model  inherit this class. 
-
-@figure{/user_guides/tobj/images/tobj_image006.png,"TObj object stored on OCAF label",360}
-
-
-@subsection occt_tobj_3_2 Basic features
-
-The *TObj_Object* class provides some basic features that can be inherited (or, if necessary, redefined) by the descendants: 
-
-  * Gives access to the model to which the object belongs (method *GetModel*) and to the OCAF label in which the object is stored (method *GetLabel*). 
-  * Supports references (and back references) to other objects in the same or in another model (methods *getReference*, *setReference*, *addReference*, *GetReferences*, *GetBackReferences*, *AddBackReference*, *RemoveBackReference*, *ReplaceReference*)
-  * Provides the ability to contain child objects, as it is actual for partition objects (methods *GetChildren*, *GetFatherObject*)
-  * Organizes its data in the OCAF structure by separating the sub-labels of the main label intended for various kinds of data and providing tools to organize these data (see <a href="../../../../Documents%20and%20Settings/TEMP/obj-inher">below</a>). The kinds of data stored separately are: 
-         * Child objects stored in the label returned by the method *GetChildLabel* 
-         * References to other objects stored in the label returned by the method *GetReferenceLabel* 
-         * Other data, both common to all objects and specific for each subtype of the model object, are stored in the label returned by the method *GetDataLabel* 
-  * Provides unique names of all objects in the model (methods *GetDictionary*, *GetName*, *SetName*)
-  * Provides unified means to maintain persistence (implemented in descendants with the help of macros *DECLARE_TOBJOCAF_PERSISTENCE* and *IMPLEMENT_TOBJOCAF_PERSISTENCE*)
-  * Allows an object to remove itself from the OCAF document and check the depending objects can be deleted according to the  back references (method *Detach*)
-  * Implements methods for identification and versioning of objects 
-  * Manages the object interaction with OCAF Undo/Redo mechanism (method *IsAlive*, *AfterRetrieval*, *BeforeStoring*)
-  * Allows make a clone (methods *Clone*, *CopyReferences*, *CopyChildren*, *copyData*)
-  * Contains additional word of bit flags (methods *GetFlags*, *SetFlags*, *TestFlags*, *ClearFlags*)
-  * Defines the interface to sort the objects by rank (methods *GetOrder*, *SetOrder*)
-  * Provides a number of auxiliary methods for descendants to set/get the standard attribute values, such as int, double, string, arrays etc.
-
-An object can be received from the model by the following methods: 
-
-~~~~~{.cpp}
-    static Standard_Boolean GetObj ( const TDF_Label& theLabel, Handle(TObj_Object)& theResObject, const Standard_Boolean isSuper = Standard_False ); 
-~~~~~
-
-Returns *True* if the object has been found in the indicated label (or in the upper level label if *isSuper* is *True*). 
-
-~~~~~{.cpp}
-    Handle(TObj_Object) GetFatherObject ( const Handle(Standard_Type)& theType = NULL ) const; 
-~~~~~
-
-Returns the father object of the indicated type 
-for the current object (the direct father object if the type is NULL). 
-
-@subsection occt_tobj_3_3 Data layout and inheritance
-
-As far as the data objects are separated from the interfaces and stored in the OCAF tree, 
-the functionality to support inheritance is required. Each object has its own data 
-and references stored in the labels in the OCAF tree. All data are stored in the sub-tree 
-of the main object label. If it is necessary to inherit a class from the base class, 
-the descendant class should use different labels for data and references than its ancestor. 
-
-Therefore each *TObj* class can reserve the range of tags in each of 
-*Data*, *References*, and *Child* sub-labels. 
-The reserved range is declared by the enumeration defined 
-in the class scope (called DataTag, RefTag, and ChildTag, respectively). 
-The item *First* of the enumeration of each type is defined via the *Last* item 
-of the corresponding enumeration of the parent class, thus ensuring that the tag numbers 
-do not overlap. The item *Last* of the enumeration defines the last tag reserved by this class. 
-Other items of the enumeration define the tags used for storing particular data items of the object. 
-See the declaration of the TObj_Partition class for the example. 
-
-*TObj_Object* class provides a set of auxiliary methods for descendants 
-to access the data stored in sub-labels by their tag numbers: 
-
-~~~~~{.cpp}
-    TDF_Label getDataLabel (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
-    TDF_Label getReferenceLabel (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
-~~~~~
-
-Returns the label in *Data* or *References* sub-labels at a given tag number (theRank1). 
-The second argument, theRank2, allows accessing the next level of hierarchy 
-(theRank2-th sub-label of theRank1-th data label). 
-This is useful when the data to be stored are represented by multiple OCAF attributes 
-of the same type (e.g. sequences of homogeneous data or references). 
-
-The get/set methods allow easily accessing the data located in the specified data label 
-for the most widely used data types (*Standard_Real*, *Standard_Integer*, *TCollection_HExtendedString*,
- *TColStd_HArray1OfReal*, *TColStd_HArray1OfInteger*, *TColStd_HArray1OfExtendedString*). 
-For instance, methods provided for real numbers are: 
-
-~~~~~{.cpp}
-    Standard_Real getReal (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
-    Standard_Boolean setReal (const Standard_Real theValue, const Standard_Integer theRank1, const Standard_Integer theRank2 = 0, const Standard_Real theTolerance = 0.) const; 
-~~~~~
-
-Similar methods are provided to access references to other objects: 
-
-~~~~~{.cpp}
-    Handle(TObj_Object) getReference (const Standard_Integer theRank1, const Standard_Integer theRank2 = 0) const; 
-    Standard_Boolean setReference (const Handle(TObj_Object) &theObject, const Standard_Integer theRank1, const Standard_Integer theRank2 = 0); 
-~~~~~
-
-The method *addReference* gives an easy way to store a sequence of homogeneous references in one label. 
-
-~~~~~{.cpp}
-    TDF_Label addReference (const Standard_Integer theRank1, const Handle(TObj_Object) &theObject); 
-~~~~~
-
-Note that while references to other objects should be defined by descendant classes 
-individually according to the type of object, *TObj_Object* provides methods 
-to manipulate (check, remove, iterate) the existing references in the uniform way, as described below. 
-
-@subsection occt_tobj_3_4 Persistence
-
-The persistence of the *TObj* Data Model is implemented with the help 
-of standard OCAF mechanisms (a schema defining necessary plugins, drivers, etc.). 
-This implies the possibility to store/retrieve all data that are stored 
-as standard OCAF attributes., The corresponding handlers are added 
-to the drivers for *TObj*-specific attributes. 
-
-The special tool is provided for classes inheriting from *TObj_Object* 
-to add the new types of persistence without regeneration of the OCAF schema. 
-The class *TObj_Persistence* provides basic means for that: 
-
-  * automatic run-time registration of object types
-  * creation of a new object of the specified type (one of the registered types) 
-
-Two macros defined in the file TObj_Persistence.hxx have to be included in the definition 
-of each model object class inheriting TObj_Object to activate the persistence mechanism: 
-
-~~~~~{.cpp}
-    DECLARE_TOBJOCAF_PERSISTENCE (classname, ancestorname) 
-~~~~~
-
-Should be included in the private section of declaration of each class inheriting 
-*TObj_Object* (hxx file). This macro adds an additional constructor to the object class, 
-and declares an auxiliary (private) class inheriting *TObj_Persistence* 
-that provides a tool to create a new object of the proper type. 
-
-~~~~~{.cpp}
-    IMPLEMENT_TOBJOCAF_PERSISTENCE (classname) 
-~~~~~
-
-Should be included in .cxx file of each object class that should be saved and restored. 
-This is not needed for abstract types of objects. This macro implements the functions 
-declared by the previous macro and creates a static member 
-that automatically registers that type for persistence. 
-
-When the attribute *TObj_TObject* that contains the interface object is saved, 
-its persistence handler stores the runtime type of the object class. 
-When the type is restored the handler dynamically recognizes the type 
-and creates the corresponding object using mechanisms provided by *TObj_Persistence*. 
-
-@subsection occt_tobj_3_5 Names of objects
-
-All *TObj* model objects  have names by which the user can refer to the object. 
-Upon creation, each object receives a default name, constructed 
-from the prefix corresponding to the object type (more precisely, the prefix is defined 
-by the partition to which the object belongs), and the index of the object in the current partition. 
-The user has the possibility to change this name. The uniqueness of the name in the model is ensured 
-by the naming mechanism (if the name is already used, it cannot be attributed to another object). 
-This default implementation of *TObj* package works with a single instance of the name container (dictionary) 
-for name registration of objects and it is enough in most simple projects. 
-If necessary, it is easy to redefine a couple of object methods 
-(for instance *GetDictionary*()) and to take care of  construction and initialization of containers. 
-
-This functionality is provided by the following methods: 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_TNameContainer) GetDictionary() const; 
-~~~~~
-
-Returns the name container where the name of object should be registered. 
-The default implementation returns the model name container. 
-
-~~~~~{.cpp}
-    Handle(TCollection_HExtendedString) GetName() const; 
-    Standard_Boolean GetName( TCollection_ExtendedString& theName ) const; 
-    Standard_Boolean GetName( TCollection_AsciiString& theName ) const; 
-~~~~~
-
-Returns the object name. The methods with in / out argument return False if the object name is not defined. 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean SetName ( const Handle(TCollection_HExtendedString)& theName ) const; 
-    Standard_Boolean SetName         ( const Handle(TCollection_HAsciiString)& theName ) const; 
-    Standard_Boolean SetName         ( const Standard_CString theName ) const; 
-~~~~~
-
-Attributes a new name to the object and returns **True** if the name has been attributed successfully. 
-Returns False if the name has been already attributed to another object. 
-The last two methods are short-cuts to the first one. 
-
-@subsection occt_tobj_3_6 References between objects 
-
-Class *TObj_Object* allows creating references to other objects in the model. 
-Such references describe relations among objects which are not adequately reflected 
-by the hierarchical objects structure in the model (parent-child relationship). 
-
-The references are stored internally using the attribute TObj_TReference. 
-This attribute is located in the sub-label of the referring object (called *master*) 
-and keeps reference to the main label of the referred object. 
-At the same time the referred object can maintain the back reference to the master object. 
-
-@figure{/user_guides/tobj/images/tobj_image007.png,"Objects relationship",360}
-
-
-
-The back references are stored not in the OCAF document but as a transient field 
-of the object; they are created when the model is restored from file, 
-and updated automatically when the references are manipulated. 
-The class *TObj_TReference* allows storing references between objects 
-from different *TObj* models, facilitating the construction of complex relations between objects. 
-
-The most used methods for work with references are: 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean HasReference( const Handle(TObj_Object)& theObject) const; 
-~~~~~
-
-Returns True if the current object refers to the indicated object. 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_ObjectIterator) GetReferences ( const Handle(Standard_Type)& theType = NULL ) const; 
-~~~~~
-
-Returns an iterator on the object references. The optional argument *theType* 
-restricts the types of referred objects, or does not if it is NULL. 
-
-~~~~~{.cpp}
-    virtual void RemoveAllReferences(); 
-~~~~~
-
-Removes all references from the current object. 
-
-~~~~~{.cpp}
-    virtual void RemoveReference( const Handle(TObj_Object)& theObject ); 
-~~~~~
-
-Removes the reference to the indicated object. 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_ObjectIterator) GetBackReferences ( const Handle(Standard_Type)& theType = NULL ) const; 
-~~~~~
-
-Returns an iterator on the object back references. 
-The argument theType restricts the types of master objects, or does not if it is NULL. 
-
-~~~~~{.cpp}
-    virtual void ReplaceReference  ( const Handle(TObj_Object)& theOldObject,  const Handle(TObj_Object)& theNewObject ); 
-~~~~~
-
-Replaces the reference to theOldObject by the reference to *theNewObject*. 
-The handle theNewObject may be NULL to remove the reference. 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean RelocateReferences  ( const TDF_Label& theFromRoot,  const TDF_Label& theToRoot, const Standard_Boolean theUpdateackRefs = Standard_True ); 
-~~~~~
-
-Replaces all references to a descendant label of *theFromRoot* 
-by the references to an equivalent label under *theToRoot*. 
-Returns **False** if the resulting reference does not point at a *TObj_Object*. 
-Updates back references if theUpdateackRefs is **True**. 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean CanRemoveReference ( const Handle(TObj_Object)& theObj) const; 
-~~~~~
-
-Returns **True** if the reference can be removed and the master object 
-will remain valid (*weak* reference). 
-Returns **False** if the master object cannot be valid without the referred object (*strong* reference). 
-This affects the behaviour of objects removal from the model -- if the reference cannot be removed, 
-either the referred object will not be removed, or both the referred 
-and the master objects will be removed (depends on the deletion mode in the method **Detach**) 
-
-@subsection occt_tobj_3_7 Creation and deletion of objects
-
-It is recommended that all objects inheriting from *TObj_Object*
- should implement the same approach to creation and deletion. 
-The object of the *TObj* data model cannot be created independently 
-of the model instance, as far as it stores the object data in OCAF data structures. 
-Therefore an object class cannot be created directly as its constructor is protected. 
-
-Instead, each object should provide a static method *Create*(), which accepts the model, 
-with the label, which stores the object and other type-dependent parameters 
-necessary for proper definition of the object. This method creates a new object with its data 
-(a set of OCAF attributes) in the specified label, and returns a handle to the object's interface. 
-
-The method *Detach*() is provided for deletion of objects from OCAF model. 
-Object data are deleted from the corresponding OCAF label; however, 
-the handle on object remains valid. The only operation available after object deletion 
-is the method *IsAlive*()  checking whether the object has been deleted or not, 
-which returns False if the object has been deleted. 
-
-When the object is deleted from the data model, the method checks 
-whether there are any alive references to the object. 
-Iterating on references the object asks each referring (master) object 
-whether the reference can be removed. If the master object can be unlinked, 
-the reference is removed, otherwise the master object will be removed too 
-or the referred object will be kept alive. This check is performed by the method *Detach* , 
-but the behavior depends on the deletion mode *TObj_DeletingMode*: 
-
-  * **TObj_FreeOnly** -- the object will be destroyed only if it is free, i.e. there are no references to it from other objects
-  * **TObj_KeepDepending** -- the object will be destroyed if there are no strong references to it from master objects (all references can be unlinked)
-  * **TObj_Force** -- the object and all depending master objects that have strong references to it will be destroyed.
-
-The most used methods for object removing are: 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean CanDetachObject (const TObj_DeletingMode theMode = TObj_FreeOnly ); 
-~~~~~
-
-Returns **True** if the object can be deleted with the indicated deletion mode. 
-
-~~~~~{.cpp}
-    virtual Standard_Boolean Detach ( const TObj_DeletingMode theMode = TObj_FreeOnly ); 
-~~~~~
-
-Removes the object from the document if possible 
-(according to the indicated deletion mode). 
-Unlinks references from removed objects. 
-Returns **True** if the objects have been successfully deleted. 
-
-@subsection occt_tobj_3_8 Transformation and replication of object data
-
-*TObj_Object* provides a number of special virtual methods  to support replications of objects. These methods should be redefined by descendants when necessary. 
-
-~~~~~{.cpp}
-    virtual Handle(TObj_Object) Clone (const TDF_Label& theTargetLabel, Handle(TDF_RelocationTable) theRelocTable = 0); 
-~~~~~
-
-Copies the object to theTargetLabel. The new object will have all references of its original. 
-Returns a handle to the new object (null handle if fail). The data are copied directly, 
-but the name is changed by adding the postfix *_copy*. 
-To assign different names to the copies redefine the method: 
-
-~~~~~{.cpp}
-    virtual Handle(TCollection_HExtendedString) GetNameForClone ( const Handle(TObj_Object)& ) const; 
-~~~~~
-
-Returns the name for a new object copy. It could be useful to return the same object name 
-if the copy will be in the other model or in the other partition with its own dictionary. 
-The method *Clone* uses the following public methods for object data replications: 
-
-~~~~~{.cpp}
-    virtual void CopyReferences (const const Handle(TObj_Object)& theTargetObject, const Handle(TDF_RelocationTable) theRelocTable); 
-~~~~~
-
-Adds to the copy of the original object its references. 
-
-~~~~~{.cpp}
-    virtual void CopyChildren (TDF_Label& theTargetLabel, const Handle(TDF_RelocationTable) theRelocTable); 
-~~~~~
-
-Copies the children of an object to the target child label. 
-
-@subsection occt_tobj_3_9 Object flags
-
-Each instance of *TObj_Object* stores a set of bit flags, 
-which facilitate the storage of auxiliary logical information assigned to the objects 
-(object state). Several typical state flags are defined in the enumeration *ObjectState*: 
-
-  * *ObjectState_Hidden* -- the object is marked as hidden
-  * *ObjectState_Saved* -- the object has (or should have) the corresponding saved file on disk
-  * *ObjectState_Imported* -- the object is imported from somewhere
-  * *ObjectState_ImportedByFile* -- the object has been imported from file and should be updated to have correct relations with other objects
-  * *ObjectState_Ordered* -- the partition contains objects that can be ordered.
-
-The user (developer) can define any new flags in descendant classes. 
-To set/get an object, the flags use the following methods: 
-
-~~~~~{.cpp}
-    Standard_Integer GetFlags() const; 
-    void SetFlags( const Standard_Integer theMask ); 
-    Stadnard_Boolean TestFlags( const Standard_Integer theMask ) const; 
-    void ClearFlags( const Standard_Integer theMask = 0 ); 
-~~~~~
-
-In addition, the generic virtual interface stores the logical properties 
-of the object class in the form of a set of bit flags. 
-Type flags can be received by the method: 
-
-~~~~~{.cpp}
-    virtual Standard_Integer GetTypeFlags() const; 
-~~~~~
-
-The default implementation returns the flag **Visible** 
-defined in the enumeration *TypeFlags*. This flag is used to define visibility 
-of the object for the user browsing the model (see class *TObj_HiddenPartition*). 
-Other flags can be added by the applications. 
-
-@subsection occt_tobj_310 Partitions
-
-The special kind of objects defined by the class *TObj_Partition* 
-(and its descendant *TObj_HiddenPartition*) is provided for partitioning 
-the model into a hierarchical structure. This object represents the container 
-of other objects. Each *TObj* model contains the main partition that is placed 
-in the same OCAF label as the model object, and serves as a root of the object's tree. 
-A hidden partition is a simple partition with a predefined hidden flag. 
-
-The main partition object methods: 
-
-~~~~~{.cpp}
-    TDF_Label NewLabel() const; 
-~~~~~
-
-Allocates and returns a new label for creation of a new child object. 
-
-~~~~~{.cpp}
-    void SetNamePrefix  ( const Handle(TCollection_HExtendedString)& thePrefix); 
-~~~~~
-
-Defines the prefix for automatic generation of names of the newly created objects. 
-
-~~~~~{.cpp}
-    Handle(TCollection_HExtendedString) GetNamePrefix() const; 
-~~~~~
-
-Returns the current name prefix. 
-
-~~~~~{.cpp}
-    Handle(TCollection_HExtendedString) GetNewName ( const Standard_Boolean theIsToChangeCount) const; 
-~~~~~
-
-Generates the new name and increases the internal counter of child objects if theIsToChangeCount is **True**. 
-
-~~~~~{.cpp}
-    Standard_Integer GetLastIndex() const; 
-~~~~~
-
-Returns the last reserved child index. 
-
-~~~~~{.cpp}
-    void SetLastIndex( const Standard_Integer theIndex ); 
-~~~~~
-
-Sets the last reserved index. 
-
-@section occt_tobj_4 Auxiliary classes
-
-Apart from the model and the object, package *TObj* provides a set of auxiliary classes: 
-
-  * *TObj_Application* -- defines OCAF application supporting existence and operation with *TObj* documents.
-  * *TObj_Assistant* -- class provides an interface to the static data to be used during save and load operations on models. In particular, in case of cross-model dependencies it allows passing information on the parent model to the OCAF loader to correctly resolve the references when loading a dependent model.
-  * *TObj_TReference* -- OCAF attribute describes the references between objects in the *TObj* model(s). This attribute stores the label of the referred model object, and provides transparent cross-model references. At runtime, these references are simple Handles; in persistence mode, the cross-model references are automatically detected and processed by the persistence mechanism of *TObj_TReference* attribute. 
-  * Other classes starting with *TObj_T...* -- define OCAF attributes used to store TObj-specific classes and some types of data on OCAF labels. 
-  * Iterators -- a set of classes implementing *TObj_ObjectIterator* interface, used for iterations on *TObj* objects:
-         * *TObj_ObjectIterator* -- a basic abstract class for other *TObj* iterators. Iterates on *TObj_Object* instances. 
-         * *TObj_LabelIterator* -- iterates on object labels in the *TObj* model document 
-         * *TObj_ModelIterator* -- iterates on all objects in the model. Works with sequences of other iterators. 
-         * *TObj_OcafObjectIterator* -- Iterates on *TObj* data model objects. Can iterate on objects of a specific type. 
-         * *TObj_ReferenceIterator* -- iterates on object references. 
-         * *TObj_SequenceIterator* -- iterates on a sequence of *TObj* objects. 
-         * *TObj_CheckModel* -- a tool that checks the internal consistency of the model. The basic implementation checks only the consistency of references between objects.
-
-The structure of *TObj* iterators hierarchy is presented below: 
-
-@figure{/user_guides/tobj/images/tobj_image008.png,"Hierarchy of iterators",420}
-
-
-@section occt_tobj_5 Packaging
-
-The *TObj* sources are distributed in the following packages: 
-
-  * *TObj* -- defines basic classes that implement *TObj* interfaces for OCAF-based modelers.
-  * *BinLDrivers, XmlLDrivers* -- binary and XML driver of *TObj* package
-  * *BinLPlugin, XmlLPlugin* -- plug-in for binary and XML persistence
-  * *BinMObj, XmlMObj* -- binary and XML drivers to store and retrieve specific *TObj* data to or from OCAF document
-  * *TKBinL, TKXmlL* -- toolkits of binary and XML persistence
-
-
-
index 57d88f2e9ec9627d6c7878d1ee0edf2435f76b4f..bf8192f0b70d96d203af7637fb42c51c073538c4 100644 (file)
@@ -6,14 +6,13 @@ OCCT User Guides are organized by OCCT modules:
 * @subpage occt_user_guides__foundation_classes "Foundation Classes"
 * @subpage occt_user_guides__modeling_data "Modeling Data"
 * @subpage occt_user_guides__modeling_algos "Modeling Algorithms"
-  * @subpage occt_user_guides__shape_healing "Shape Healing"
+* @subpage occt_user_guides__mesh "Mesh"
+* @subpage occt_user_guides__shape_healing "Shape Healing"
 * @subpage occt_user_guides__visualization "Visualization"
-  * @subpage occt_user_guides__vis "VTK Integration Services"
-* Data Exchange
-  * @subpage occt_user_guides__iges "IGES translator"
-  * @subpage occt_user_guides__step "STEP translator"
-  * @subpage occt_user_guides__xde  "Extended Data Exchange (XDE)"
+* @subpage occt_user_guides__vis "VTK Integration Services"
+* @subpage occt_user_guides__iges "IGES Translator"
+* @subpage occt_user_guides__step "STEP Translator"
+* @subpage occt_user_guides__xde "Extended Data Exchange (XDE)"
 * @subpage occt_user_guides__ocaf "Open CASCADE Application Framework (OCAF)"
-  * @subpage occt_user_guides__tobj "TObj package"
 * @subpage occt_user_guides__test_harness "DRAW Test Harness"
 * @subpage occt_user_guides__inspector "Inspector"
index fdb948d80731d4781776bd42c4ba5601fb4949c1..df6545eed3033c59e2688b9de3f612a8d7e32058 100644 (file)
@@ -42,8 +42,6 @@ To answer different needs of CASCADE users, this User's Guide offers the followi
     chapter 2 @ref occt_visu_2 "Fundamental Concepts", chapter 3 @ref occt_visu_3 "AIS: Application Interactive Services", and 4 @ref occt_visu_4 "3D Presentations".
     You may want to begin with the chapter presenting AIS.
 
-For advanced information on visualization algorithms, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
-
 @section occt_visu_2 Fundamental Concepts
 
 @subsection occt_visu_2_1 Presentation
@@ -1545,28 +1543,34 @@ aViewer->SetDefaultBackgroundColor (Quantity_NOC_DARKVIOLET);
 // Create a structure in this Viewer
 Handle(Graphic3d_Structure) aStruct = new Graphic3d_Structure (aViewer->StructureManager());
 aStruct->SetVisual (Graphic3d_TOS_SHADING); // Type of structure
+
 // Create a group of primitives  in this structure
 Handle(Graphic3d_Group) aPrsGroup = aStruct->NewGroup();
+
 // Fill this group with one quad of size 100
 Handle(Graphic3d_ArrayOfTriangleStrips) aTriangles = new Graphic3d_ArrayOfTriangleStrips (4);
 aTriangles->AddVertex (-100./2., -100./2., 0.0);
 aTriangles->AddVertex (-100./2.,  100./2., 0.0);
 aTriangles->AddVertex ( 100./2., -100./2., 0.0);
 aTriangles->AddVertex ( 100./2.,  100./2., 0.0);
+
 Handle(Graphic3d_AspectFillArea3d) anAspects = new Graphic3d_AspectFillArea3d (Aspect_IS_SOLID, Quantity_NOC_RED,
                                                                                Quantity_NOC_RED, Aspect_TOL_SOLID, 1.0f,
                                                                                Graphic3d_NOM_GOLD, Graphic3d_NOM_GOLD);
 aPrsGroup->SetGroupPrimitivesAspect (anAspects);
 aPrsGroup->AddPrimitiveArray (aTriangles);
+
 // Create Ambient and Infinite Lights in this Viewer
 Handle(V3d_AmbientLight)     aLight1 = new V3d_AmbientLight (Quantity_NOC_GRAY50);
 Handle(V3d_DirectionalLight) aLight2 = new V3d_DirectionalLight (V3d_Zneg, Quantity_NOC_WHITE, true);
 aViewer->AddLight (aLight1);
 aViewer->AddLight (aLight2);
 aViewer->SetLightOn();
+
 // Create a 3D quality  Window with the same DisplayConnection
 Handle(Xw_Window) aWindow = new Xw_Window (aDispConnection, "Test V3d", 100, 100, 500, 500);
 aWindow->Map(); // Map this Window to this screen
+
 // Create a Perspective  View in this Viewer
 Handle(V3d_View) aView = new V3d_View (aViewer);
 aView->Camera()->SetProjectionType (Graphic3d_Camera::Projection_Perspective);
@@ -1622,7 +1626,7 @@ aView->Update(); // update the Visualization in this View
 
 @subsubsection occt_visu_4_4_5 Perspective Projection
 
-**Field of view (FOVy)** -- defines the field of camera view by y axis in degrees (45° is default).
+**Field of view (FOVy)** -- defines the field of camera view by y axis in degrees (45° is default).
 
 @figure{camera_perspective.png,"Perspective frustum",420}
 
@@ -1643,7 +1647,7 @@ There are two types of IOD:
 * _Graphic3d_Camera::IODType_Absolute_ : Intraocular distance is defined as an absolute value.
 * _Graphic3d_Camera::IODType_Relative_ : Intraocular distance is defined relative to the camera focal length (as its coefficient).
 
-**Field of view (FOV)** -- defines the field of camera view by y axis in degrees (45° is default).
+**Field of view (FOV)** -- defines the field of camera view by y axis in degrees (45° is default).
 
 **ZFocus** -- defines the distance to the point of stereographic focus.
 
index e2a92615a969913a1bf5fe10013adc0dde4c6d96..04a4389153dfcc258514d5f541cc4a4a21799f44 100644 (file)
@@ -5,7 +5,7 @@
 
 @section occt_xde_1 Introduction
 
-This manual explains how to use the Extended Data Exchange (XDE). It provides basic documentation on setting up and using XDE. For advanced information on XDE and its applications, see our <a href="https://www.opencascade.com/content/tutorial-learning">E-learning & Training</a> offerings.
+This manual explains how to use the Extended Data Exchange (XDE). It provides basic documentation on setting up and using XDE.
 
 The Extended Data Exchange (XDE) module allows extending the scope of exchange by translating  additional data attached to geometric BREP data, thereby improving the interoperability with external software.