From e6c8fcfed4845eef3e08754cb2e9b222e6363f42 Mon Sep 17 00:00:00 2001 From: Vera Sdobnova Date: Thu, 1 Oct 2020 15:34:55 +0300 Subject: [PATCH] 0027191: Documentation - redesign of information architecture -- revision (user guides) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. --- dox/FILES_HTML.txt | 2 +- dox/FILES_PDF.txt | 24 +- dox/introduction/introduction.md | 2 +- .../draw_test_harness/draw_test_harness.md | 3 +- .../foundation_classes/foundation_classes.md | 1 - .../images/foundation_classes_image004.png | Bin 34516 -> 7950 bytes .../images/foundation_classes_image005.png | Bin 46084 -> 9633 bytes .../images/foundation_classes_image006.png | Bin 51445 -> 8695 bytes dox/user_guides/iges/iges.md | 4 +- .../images/modeling_algos_image056.png | Bin .../images/modeling_algos_image057.png | Bin .../images/modeling_algos_mesh_001.svg | 0 .../images/modeling_algos_mesh_002.svg | 0 .../images/modeling_algos_mesh_003.svg | 0 .../images/modeling_algos_mesh_004.svg | 0 dox/user_guides/mesh/mesh.md | 228 ++ .../images/modeling_algos_image003.png | Bin 28580 -> 8857 bytes .../images/modeling_algos_image004.png | Bin 13613 -> 9627 bytes .../images/modeling_algos_image014.png | Bin 8611 -> 12682 bytes .../images/modeling_algos_image015.png | Bin 8433 -> 14072 bytes .../images/modeling_algos_image016.png | Bin 10807 -> 14888 bytes .../images/modeling_algos_image017.png | Bin 9473 -> 14995 bytes .../images/modeling_algos_image021.png | Bin 14338 -> 33119 bytes .../images/modeling_algos_image023.png | Bin 13595 -> 10627 bytes .../images/modeling_algos_image028.png | Bin 14515 -> 11060 bytes .../images/modeling_algos_image030.png | Bin 12444 -> 11497 bytes .../images/modeling_algos_image035.png | Bin 21339 -> 10831 bytes .../images/modeling_algos_image037.gif | Bin 0 -> 499880 bytes .../images/modeling_algos_image040.png | Bin 28905 -> 5697 bytes .../images/modeling_algos_image041.png | Bin 10900 -> 7483 bytes .../images/modeling_algos_image043.png | Bin 15762 -> 15354 bytes .../images/modeling_algos_image045.png | Bin 9391 -> 3114 bytes .../images/modeling_algos_image047.png | Bin 10479 -> 6885 bytes .../images/modeling_algos_image048.png | Bin 21247 -> 14439 bytes .../images/modeling_algos_image049.png | Bin 17819 -> 8487 bytes .../images/modeling_algos_image051.png | Bin 12880 -> 4990 bytes .../images/modeling_algos_image058.png | Bin 1984 -> 17328 bytes .../images/modeling_data_image003.png | Bin 0 -> 5640 bytes .../images/modeling_data_image014.png | Bin 0 -> 4270 bytes .../images/modeling_data_image015.png | Bin 0 -> 11844 bytes .../modeling_algos/modeling_algos.md | 3063 ++++++++--------- .../images/modeling_data_image003.png | Bin 14826 -> 5640 bytes .../images/modeling_data_image014.png | Bin 5318 -> 4270 bytes .../images/modeling_data_image015.png | Bin 30774 -> 11844 bytes .../modeling_data/modeling_data.md | 430 ++- .../{tobj => ocaf}/images/tobj_image003.png | Bin .../{tobj => ocaf}/images/tobj_image004.png | Bin .../{tobj => ocaf}/images/tobj_image005.png | Bin .../{tobj => ocaf}/images/tobj_image006.png | Bin .../{tobj => ocaf}/images/tobj_image007.png | Bin .../{tobj => ocaf}/images/tobj_image008.png | Bin dox/user_guides/ocaf/ocaf.md | 1398 +++++--- dox/user_guides/step/step.md | 6 +- dox/user_guides/tobj/tobj.md | 910 ----- dox/user_guides/user_guides.md | 13 +- .../visualization/visualization.md | 12 +- dox/user_guides/xde/xde.md | 2 +- 57 files changed, 2779 insertions(+), 3319 deletions(-) rename dox/user_guides/{modeling_algos => mesh}/images/modeling_algos_image056.png (100%) rename dox/user_guides/{modeling_algos => mesh}/images/modeling_algos_image057.png (100%) rename dox/user_guides/{modeling_algos => mesh}/images/modeling_algos_mesh_001.svg (100%) rename dox/user_guides/{modeling_algos => mesh}/images/modeling_algos_mesh_002.svg (100%) rename dox/user_guides/{modeling_algos => mesh}/images/modeling_algos_mesh_003.svg (100%) rename dox/user_guides/{modeling_algos => mesh}/images/modeling_algos_mesh_004.svg (100%) create mode 100644 dox/user_guides/mesh/mesh.md create mode 100644 dox/user_guides/modeling_algos/images/modeling_algos_image037.gif create mode 100644 dox/user_guides/modeling_algos/images/modeling_data_image003.png create mode 100644 dox/user_guides/modeling_algos/images/modeling_data_image014.png create mode 100644 dox/user_guides/modeling_algos/images/modeling_data_image015.png rename dox/user_guides/{tobj => ocaf}/images/tobj_image003.png (100%) rename dox/user_guides/{tobj => ocaf}/images/tobj_image004.png (100%) rename dox/user_guides/{tobj => ocaf}/images/tobj_image005.png (100%) rename dox/user_guides/{tobj => ocaf}/images/tobj_image006.png (100%) rename dox/user_guides/{tobj => ocaf}/images/tobj_image007.png (100%) rename dox/user_guides/{tobj => ocaf}/images/tobj_image008.png (100%) delete mode 100644 dox/user_guides/tobj/tobj.md diff --git a/dox/FILES_HTML.txt b/dox/FILES_HTML.txt index 46e89cb7a2..5fbca28ed3 100644 --- a/dox/FILES_HTML.txt +++ b/dox/FILES_HTML.txt @@ -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 diff --git a/dox/FILES_PDF.txt b/dox/FILES_PDF.txt index a26c0f7464..c7850a7006 100644 --- a/dox/FILES_PDF.txt +++ b/dox/FILES_PDF.txt @@ -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 diff --git a/dox/introduction/introduction.md b/dox/introduction/introduction.md index e1b9c43f4a..d2df5501b6 100644 --- a/dox/introduction/introduction.md +++ b/dox/introduction/introduction.md @@ -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 diff --git a/dox/user_guides/draw_test_harness/draw_test_harness.md b/dox/user_guides/draw_test_harness/draw_test_harness.md index 5104cfe955..255352e87c 100644 --- a/dox/user_guides/draw_test_harness/draw_test_harness.md +++ b/dox/user_guides/draw_test_harness/draw_test_harness.md @@ -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 ~~~~ - diff --git a/dox/user_guides/foundation_classes/foundation_classes.md b/dox/user_guides/foundation_classes/foundation_classes.md index 9a144a9080..45844ef7eb 100644 --- a/dox/user_guides/foundation_classes/foundation_classes.md +++ b/dox/user_guides/foundation_classes/foundation_classes.md @@ -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 E-learning & Training 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. diff --git a/dox/user_guides/foundation_classes/images/foundation_classes_image004.png b/dox/user_guides/foundation_classes/images/foundation_classes_image004.png index 6d00d38d4a8407081e17421f9d045a4915129073..9dfe2ac521b0e1e115b0703a9f58d19e19a9f0dd 100644 GIT binary patch literal 7950 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 diff --git a/dox/user_guides/foundation_classes/images/foundation_classes_image005.png b/dox/user_guides/foundation_classes/images/foundation_classes_image005.png index 6ad4232577627a1ace929a7381ae818d2051deb6..a11addb082ef59dfec9040cf8a955c31d189ab3e 100644 GIT binary patch literal 9633 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 literal 46084 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 diff --git a/dox/user_guides/foundation_classes/images/foundation_classes_image006.png b/dox/user_guides/foundation_classes/images/foundation_classes_image006.png index 6e920054acecf6c077f366833140fe45f2968835..a57756d0a8b10a11c7205f806f8dd53c134c9c5e 100644 GIT binary patch literal 8695 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 NqpNA4QL1K3`5$jXWg!3n diff --git a/dox/user_guides/iges/iges.md b/dox/user_guides/iges/iges.md index 76654aa7d9..3e09800e06 100644 --- a/dox/user_guides/iges/iges.md +++ b/dox/user_guides/iges/iges.md @@ -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 E-learning & Training 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/modeling_algos/images/modeling_algos_image056.png b/dox/user_guides/mesh/images/modeling_algos_image056.png similarity index 100% rename from dox/user_guides/modeling_algos/images/modeling_algos_image056.png rename to dox/user_guides/mesh/images/modeling_algos_image056.png diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image057.png b/dox/user_guides/mesh/images/modeling_algos_image057.png similarity index 100% rename from dox/user_guides/modeling_algos/images/modeling_algos_image057.png rename to dox/user_guides/mesh/images/modeling_algos_image057.png diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_001.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_001.svg similarity index 100% rename from dox/user_guides/modeling_algos/images/modeling_algos_mesh_001.svg rename to dox/user_guides/mesh/images/modeling_algos_mesh_001.svg diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_002.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_002.svg similarity index 100% rename from dox/user_guides/modeling_algos/images/modeling_algos_mesh_002.svg rename to dox/user_guides/mesh/images/modeling_algos_mesh_002.svg diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_003.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_003.svg similarity index 100% rename from dox/user_guides/modeling_algos/images/modeling_algos_mesh_003.svg rename to dox/user_guides/mesh/images/modeling_algos_mesh_003.svg diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_mesh_004.svg b/dox/user_guides/mesh/images/modeling_algos_mesh_004.svg similarity index 100% rename from dox/user_guides/modeling_algos/images/modeling_algos_mesh_004.svg rename to dox/user_guides/mesh/images/modeling_algos_mesh_004.svg diff --git a/dox/user_guides/mesh/mesh.md b/dox/user_guides/mesh/mesh.md new file mode 100644 index 0000000000..43976aae64 --- /dev/null +++ b/dox/user_guides/mesh/mesh.md @@ -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: +- Open CASCADE Mesh Framework (OMF) +- Express Mesh + +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 +#include +#include + +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: IMeshData (see Data model interface) and IMeshTools, 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 IMeshData 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 NCollection 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 BRepMeshData 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 NCollection 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 BRepMeshData 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. + +IMeshData 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 diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image003.png b/dox/user_guides/modeling_algos/images/modeling_algos_image003.png index d3ee059e526cbac080f1e6673f856c103a4ca81c..6d51f6e72b05842b42a6d2abd710e2c4807b1e9e 100644 GIT binary patch literal 8857 zcmeHt2Uk;D)Gh4_UMXG#r3olqssW@06p<1T5CrK>14u8@LRC~yI-wa#kPcEp?@bZu zL}~~TAqI#TdgvkWj^Fnu-W%g(jGUCS_u1>Lb@p0w&b{A1GSX%Fm*-y^8X6Xe-UCw_ z8afji8d^6dI^ZAq#Xr-)$3%#k}OXBJzFJ?AGRREtambsyvN zv$JjY+}q2Gx;rAv+hs~qeU17Fx3N2=kQg^=0EdDQKS*~|dvOa3U9F8REy2FNk3@gu zDEY9mvVLl_q>;`P9y(l%GH%PQTSs>aL)sT=NbQFwsK}GGGAfmtCF?NU(;c$&3+L05 zF-kcm=CiS~9vmK4w%OBoWt6T#K~_>%8IXVbDi{jX!Vg!+awIDbc2^9JGrGFE$YioB z8tJtMqHVM>;Yb_$dPrrgD*kxq08?A+7P_d3Bq+m>K0ZDUl&Fo34X-(q6s=h zf=ows*`sHE_LDpz@E8#C4oQmj=X->p8r zJs#E@<`*1%xKG0LobJZ2qr=Y6s3Z)^YKXozDeq$Sv#71QYH4Ze49zse{Y#%*@uLRq z^?clVfT~;eF2@D48-`P2#z^K^tpPusqEtT2ihVsLvO&I}1aQe`$44A*X|K^)K9}QK zh9OJcf+P&5l#`|us7E``P?#5X!E#&y9d;FY&80+XwJY-m+R1JpwsIqGHw(S%&)~w^ zCJdU7IQrMt+{&gT7^Cmsud}-=5G2}|MfI@T75qlva*Xy@w&ZwwO5VV=BoX!~5kp3Z z>lsnm$5+T;;~>#TdnXKxcts}3TH^rG0pMHfTV+)U zYK_)QSW~>AXt!qsJF)*1G4G@n%8pZw!~_xawjg^^}hMu?R;- zPK4N{aVM_7v*VTtE8~bBSWPVr=#F3NLq<5azw2#y88@1yRb4M756qM4vfS&^T047t z(|);l-&PH^P;$(DEJBWpS$w+jWhTE!4JpPcWN~V8!u0iLLBq$9p{=tKuDZHKsa46o zYSJG?$mKuH-p0HLdAa|T8zH2wrbY@-6}TJ8mpt&=!1*5urPh+ha77Mne7iT_fLXm| za)qa-{$+;U)=qoPQ0E{s;|@i&^51rm`^i?mHRVhYwDw(eGS z+DoMgL$Kb4F1jO6xzmDYD@&gLTQ2@@MdwpX8EA(}kKrst|Ax9-y&?X-Ro;qowy;;liU%r`BR)6GMy)d5_RT+ zH6`tJ!VZ=`KKK#uoKF>oEWiEk_2LT^8$o3rNl7ImxQ8*G_LCb|13T z?hO|P%@a(zAFNVi)^TYNwoq83o(TuazUwC0S90;tSx0v$AwM@?O01&70Z)lKOJ3jT zZNGbdjCP3F&mh9isasJM@1MVoqLLhTPiv?;OFAYT*RNlvQWnpj%tW7#$o8CWc5Lwt z9FI7hO>PAB9Ix`y%Y3>$T^pY1`6Cq~pS{Ox^e1@`{NrBsNQ>Xrap_>&OVhTZ=GwPy zV`z8Y%Nll})3H*C49@{`Zp4J13q81O$9#u~y<@?mqbg zxTXgRWfq_*F@7v(CL0gf~(8u%G9dlf(Fr=8n z@HnEk2?|QV+}MaX+Q$F-^{YSrS`wiXD2%`h+u#}&7Iy90HK4pmM%DSn_ZLpBNo5(3 z7Hy$FpGjwp*rSyASS>2eI~*W5=GeZzKCO*l+I%@YiSqmR^RO_=>1pR_1`(YvaQ(X7 zu@`Wy{IjQzm%FXb)pb_A?jeZ{*aTXKJg#NDbxeXqcUJ&;3r0O@A}FIAdTL08-eQDj zS89q?tB79rT5uWFr1~}Bpy(*VmJcfHutXAZIGoaHOqp>$KOf&ZP-izcXG82-Qbg1j z569Yy6NSikbed~|JM1ulDz%?X{rFt1Tn@#q9EvRTf00vgYQb)9dLxOz6#y_`Z)>~0 zxp}tT$EIkH+4!ZLsgBaIn-RsTzV!OOv*TAb#hpAb+G&0RO}0n1SW2yjxrNlO_+!@s zMqw6zy)_()tlEw^!7-n*Bhkbzd-Tgo6%2&Vu{8QhsJsAucjBeK?}2tFdIe_9Qwl`8 zopo#jVDRhLuN@+f`~7nBqt1?jsD+=Mwh@&7xAbQ$9-L7r02nBhJ-B71SQ|u&eyifm z%)M<`_V_}0PQ9(n^?`{;CW&frzjMz!@*6Qg01HO{UbS9>+!xCRczc&bp-@QAG+*c? zet325AS5^6qPkEVj5e53h`X7T9|2y=(_`dgYL7P`n3b16;Holnf8Z%+P|!|9K74$D z>2J2AV~g&sOeeygG<&<|TBJ#h6mzrFcgI4e_J-2LMpjJ8hJhWHL5U!l~ z8^EuT=hVaS&zhG*0_%50(_o3IwE0AsF%s<58!V0W=(Low{Pvo`o^OD`-m6MVO_0p9 zN;&gyTRy@Xb86p4JgoY0;|*iVolOS&yyb$a`fJ*&ipG=PAcWkKBt)cLAsw^~|Nc=t zE?Q6y-^*YQ7q0UxqN9*U;iYa?ud0t5#_XR}$rIlQn%7I=u-GB;kNQ`N1n_IQr8Hxn zSF!A`FzJF!rBf9V@9zHxTY5C67xhx)U<+~aWXX+-|>*{5~C1628V%;noQ`tZI@*4PuC zq0XzyU~m8*aeMpwutgT}I6!q{KlFcmvTsxUqz_+`z)|%PIL}vtOr8sUVwXa! zG9hfH^fgQ@&-5Ey{53G+yw)8p*nrQ)WmO>8SKZFA*vAgj5{a8 ztC-{)fjQF8bRlKAEa}4Ur>nVqwVwl(%oB_EW;6e}H9D95~3_}*0Ix7hY4(TEK@3`^f5;(`m% zpqh6(gHbHQjU|16-sG!UlhlZ4R(f*TP-l>bHZXX~qsY1SAHU-$l5zKcws71wmu8Co z?6}lkBSpYcpZe&mHX-r!-Ezz#%SW|Nd7h6`3pMFbs=MhD19ESj2CH3++tnX>%mY)% zIg2zj^qw}0{J^{KlCq8pnh@?LX_DZ`&k<|&A2P( z896T`$;$p%@NWy?ixn$2OeGp2Mms6`Z|YFa8u3l9R)_e)=kVQp9$ammhSSe2`gNH-c}ubOqqT#b+HStRYVvaxNQ zRo7ceeIxj3XFXWOD{YPR04V8DdW~V&O5*38WU(}a*E#brr2s=xcl-gQwZJA(DAK-i zMql6TgnD*D*`4RqSaM;b1of#7y>IqmgiBy`y9EZpo|8K}J0ajq?GE%mxSgH4>Duk( zB%A-K)&mitA7cn#(+jD5=lP1Kj zpT-rY5MDJds{Ig8A`C&lsJEkpA);wRZ*2X?j3)Rv{COCNiqCTfo(?je-lA_wq04`aTi{{BEnvOzK7JXX^(O^ zu|*wbN1f&)O4odqe|(*>BLs6&+vGG)CAo3hCVMYsMY#c}Lu{{siruwYa$2TUVAfLE zF5YnUf%N5lcC59oz7rz#v?Nvv4!dfdtcoT>HORMRfg&wRilE< z)Ht>Ov*%&Hpj0K%s0|nXOMI>l?0j=DfD3bKu$VO(y~|#K$!vr}MZ)jon46qr5RXH^ zrB)g>mNHp+MzJ0K)%CH9A>ihZSFKNMgH`k5PHabX-u}@i4t53s*_M248z)Dho`q|m zoYdN;Zzc~sYpyApKFIF7mHrQ6Hb4>X@+l+oKyo3)Xtiku2$Sa>(thafSw~YI`dbD% z6zET3qt9A~yvvjR(w!#iL3&}g-**Lp;h9XZExqb|P`?9%17TA;p?xY8(}(xG^Egtr z8f;-@Z^BaTrjf8!GQ#q@l-r^vJsUNj4@FgZ^1Bx{*2Jd~T{ypX0KM_%Be=o)eleT@B+vQ#wlXetrbv)FPZrH+`X zB^>PrCNgh*#pCh5%2jyTn`9nGkLhZU?LPV|dg}2RY6sBd?1)MX`M9$}cV_+q3~FD! z{4yNt_WjSr(T-=mWr*oK97ov5N(Zej6zu+xf_Ezf3zL4U>!^%~8y z-p&Y?z7Ve3bo)SR6A(%pMHygYKz|>3uDOLv^cs0ko@&lI*PU${G}&duyvFt+)h=wX zQ&$Cuj~yfP`li8!@Ts+QT?TakP#jBJ7ylU^#xDTon+UY8m1Lirg0^n#g7eWt(>RrU z^zm#Ym(fS_!R5V;`1gI8{H?B<}3?}cePg+(C$reiEO;@pwhmMUPS=GW34<9 zQ72~X2;kQ4i@Zgv@&<~01-{j?d_N4~!bKB+%A=f=R_X>91~5U`VMyAL@CazY&lY1i z)wm(c*aA>0-=SQA;Ox>BU7NF5MYyn^tO(@kxB)P&k_duKJVza*WbAC}uffRjGrclUP5;2#4f$?zVR#pVs(s``{kzZtw!YqkL z?{_Y~D|{X>6u1DSy>s{P`x1ij>Qx!H@PGMt(M0)bQ&*w5PLT;fFIHr7yo2}#fV%}D zgdqS2Woa#3WQy($1k?eZj_A@av*IfXrJlDik!snZWhh0{skb`Q;Q2IqfhzD%(7(Y-GNhK`_7QMjt{{Rp!pb?(p5OsD6I|jHyfBcwT>&o(;qG;y6 zrPS4ZGaJ1nE3Bh4n4dTDB}6FaJL*w3j6|e>BOf16Or#Q&b#-+C5=JBv0ZiY~(E)sy zb?62l-$F+)dt4GB-RhmqP{Z9zVWES@os)A7TY7hITndTt@z0QvOGF|640nRjmCB0% zm$RWW)?1I@@nPQI^a!u8!z2upE2Md{fY<&wMs9tG?D6@c?LO2=AP{yFcE_4uMILV2 zseI`89LpxKxr?hEe}j#heh7CXRJJu=K<-s5o(Do2bm(Qi9*m~hG3FWR2Bllvu8O3d z?AwV-A08ZZQx9;7=Nq%~#G>f=!G{YMu0?vXbOOXP&c#hfy>lJ`TPd%>kj7jZ^cSxL zbN8x;9eDcqpxQlZZ5ldY-m1RR^zG+NS3@LWsU4aW@wa`{X(eD!&zq+hP(6 z2a~>4Yny~1vz)E?2E5i-tvTL?I~r0(dD3AJxZe210Y9MfzR3-Et+>Q9!KLB^*K$@g zm@;b@(=`bod!>}e6Xv2j%$xg?2(8)&XU!~ciehk2W&A-$xvGu|E^^rt?O$!fY z46Fz;!4156%nz-56yoq#MtUlLqsQv23h#2ex7FBi{Bt)-Pk1nOoK*3MLz^q+suUqY zW@7A`cB+&GcUXzJGe3>lFd2*qbY2i=1{Clwa_R7vgP%wKtFxp1wK;%*N9o2l-ErXZ zWue)=Tr{EQ0um7`6nDo=VmM7d%x?sx3A@=X4aNMsc*qj93apDY&N<4Z%&1*_f55s6 z7f#LN+L%v!1b-Vu&Q}=(H(rQ`wPvo{rLFu7n%T?xA_vHyPF&3axjcY9_W%{TMUecR z2Sn~eU&5%WtFuJ+&aoe(QzbsjF$3eQoy92__MD$lnwgDVJk4Q$QqrH2S)a_ey9 zr@-saA2}Q7tTF*=?e=|QQhj(*)I}q|Wd)W#s-^bTPbx3;2!?-L&m~$J3Kys$@pQXs z)>{qxTF--Y=#1}-^ZKd;-(M}b4v>{12f0s=T#zXXVWv9ISE;Pg_pWY3v$PF{HoP!A zpW2AGXiB6;f`WpcRB{r)wjLfHq^Xuz1!B6a^9vW&5iRzF_D_`I`cZNxuWB!MydS@{ zAXD^Ofc_HR+A1?pHP3jFAB2`r&t~B^${+=Kt=HX*E8LEVa&;{$X{d+tKg=qv;1m98 z{4Zv>em&+ig*A7wyb9Y;{zWc)clrHsp1${GhF7F^tIX;rm4Zz3N4EyST-BbNy@G7{ zFFbN;K06BX+9AO(b_PwVNZzE06muV--%N_GnQ*k#(ONf0C0%50)=dU>1;?gBYcr${+TRz?Q83TBE17LrubmE#I^pL7gr zFj(n&PJ}6sfVgP~{P?s}zc$linji^eM?N~Xz-(LiPGX}>+9>5{hv2K6{@dT~Fo|So z8YuE&SK9gnZb40sI(?>^H&2}qB0FBCV>=XK99KVU21H@Ruk@%f8Axb}TWC;_=)#up zKPyTO$5(zSAApTljcjg<^=Krn!H_Y{Y$>-I;VmlaA3H7N(A>zh1c%A)dCm;uvo!rT7I1Ctup(A+}RO;AFg>3 z6a;Wmz%eej7rZfDdq>I-;l&B66;r8NQFF&ys|8L#FJtSv=_j`&B;T=zC7<#-ONmF7 zCJeeG}$ za>{vM#p;*1-NKFcU0r=?NFcP{`iJ4VB*9;#7Jq&&X;5OvpHDsW%9SXb}1)om_4 zndCubzD|c0O&~uK03MrLl}5!{jq4^I_$}ipvrKx%*P23VKTPOBY>KG|9Sr<`t_{?! zk87x_XRsnxl9X;pE5sM3knLdc)(N9phRgTdo31B2zN;7cupV-yz9G@ei|2nf1C%?_ n{{NN#|ChExlrJfdpZ_DZT~3RqBp(8MO=uw6Mh|N4J4XK>e_~;e literal 28580 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 T##q>P4@X1g-W`;ZMacgF0*}#8 diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image004.png b/dox/user_guides/modeling_algos/images/modeling_algos_image004.png index 6b371fb255cbec9765aa06beaee3364fde741eca..de827453c35361571d7c2104fc3d631a57008c13 100644 GIT binary patch literal 9627 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 Y^OLY#e;fe5wt_skucuyq*Czab01FMh_5c6? literal 13613 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 diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image014.png b/dox/user_guides/modeling_algos/images/modeling_algos_image014.png index 42bf360518c793641e088e123de6f1b366245823..2820ffa0930e37093793704361138e53dc3dbf2b 100644 GIT binary patch literal 12682 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

M%NUVe>mxxLWK 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 Q&uIq8NhwSI6gLg~AG!f&`Tzg` diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image015.png b/dox/user_guides/modeling_algos/images/modeling_algos_image015.png index 7ff604a603c2c5f660f46ed8ee55f3f93a57328b..ea9bebb18d0ec9315a0c7ee2578df952f8c4a16e 100644 GIT binary patch literal 14072 zcmdUWhc{eL*#BzLyRf<>S`txL39AQ*8iI&K@1h1_^)9-QsL?yYSM(mlBDy7l=-sMW zy}l#w`$znKImgL4d+(k5%*-=0&!^n*=juwNL<~d_2!!<6(=b+m&#daoY*j+3olH&Qy~vrKJxiW3eDlmo6@v^~-j4 zcga24-@bh-At6!cQ#ZX`UQt2r5!%wy^7->^@4O$u{Wy?UTf4gz<>h1;Q#x8&GIDa4 zhChdnk9c`AzI-9^JsBJvoSI^gdWkJJ#|e3A;_fcW;PLR`!|Cbimz1DU6&00(nS_Ld zm6a8ASiWxQ{`c3fUrR_yt;WvH&aToow6;o_v)=EYx($(;VrFHGqPQ&DWfAy3*?$3>*+zSPQGMjN_(Hg zwIU~VWcYf0K@M%7GzTseQast+j1E2yiTU)2Uub)0tV9` z7CHMe?fq(cW+vv`FFBKo6J%fBE7$pz^xT)6)s2nHZ4UPK_ET-d$e^3M(sttwCbOSymO-oeU4Z;jOEyb6?7_V8i~`0?fCdngvSUtjg));qieo?XEoNa;gHl z*`}Y`$iQIbHVd|fcMll0syDpdF4lSdO@7zDHTq@awsn^>b<+lhh6TNZG#<&BY*IJv zF~#PzPp>MBjHcFPFeZ728 z>mG?AAt9eLrsei$TfFYIJRd`Vl#)%=%)pcV4$YPBy1x?7>UC0NV6#NZYo8@yU1%uM@9GKQUMYVd9 zJ(>fb%+><)fi+A?$!24@O=?L=<+ULMdRve@K3Z<@_>zr)mzS4&q1rK5*};(eq9{b0 zGEtc$LdIZXZCV8K_zs2*5y-X&A3DC&E&V*Sc3*+}=@Z{apZsV7npYaj8AAguaFR*Q zS=i;Fp{=_w#ztlY-a%fqG_ilZV)(t{>qh zGYOIh%d8z+4P|`pvk>oE^0{LI6^~g$7;+{Ec<~dn7~A#0lev(|OJe0{OF{a+Z(4{7 zUfz*D?7nZ$kFcV!Qt&a9xB*LI8ktgE^xo_j>QC_q#M1+(##r@(d9Rx-HHC?f}6 zjHfKo#6==M#^F5TmTtXg^KP0)MU}Od>yB>+G>6H{r&xU^-n}VB`J51JVm-P6YP6>-bW=a7m0zvACbP zqRPgG(bWx`4a0WJ1PX$fu0=PF<%i}zAnW^P&0knj60_9fD<m5k-n=@(xfTlYM|F3ZX0=|r-s6{ru-hohA}pW z-M*7;r8@OVc-^LM`qbM{M~8?%q8ckU|2avZzrZisns1X|3v3$8QJLY9GSjup-Iey! z-*~W6arlXQ;LvDvV|9^p;7*o8CDYrqUbt<0(qdv1Lfbjw>0}yG?XgxZhC`NBcUe{aD?uEV zt~eTd)CU_I_uW`HS8!)GT#MQR-DyPA)HYdZvmQa5JH&aMa2PtQUL~R%P036ONtswA zJ@ahz18X1V2-n-diVJKy%CQuu1y5RIKNsJzcf!N+vHlU!^O-ujmYX&*ymh;}rsi|6 z`4g50DW3-I{TH$agLdUG0~^>z{rBWo(oLY%Q-zR63<>trg@uI~YnsImjEQe6WCulA z6yFh!L+mjZ*o=O)6{rdpC_p!Y>CLNwJW8c;a~xGgn25p(Z?95##gX;EPo%+p4?daR zViAsd$%0+YEfTY|cYEfCT{gP$cQC;ySn}6xzB%P``Y~GHaTXhSA6caQvbaOqnI&*9 z)a1is%O5bcA1ry0U(=tM-JqidSRJ=AEMCPdv0FH;{@yc$s7|YhbqG>lv#XrX5O_rj z7>>ETP32U(O|i$EUF3CfB5=*X_G-B9KHol0>=}xk5FUe!B9QPJf(@}t#Pi5Ro#_Y}A#B}Bta z{t|4M<+~n)UCd#e0q}a;@n%x=0Hk(ozA=D@dxlBnA#YcjmO;Z=VM7(3Id4&^$Se>bDq8& z+4zpy;adBt5Xw$5S(%<@SZ;#@NS3=suB9ap{{C{#$$njRH+CVf>|@a?HR!+`-Z4fi z(qU;F?e-BT7Ae8D7h1?2u_Tsg5#At1>}()PfKAelhm}33@~D%aMu8Gh&iI)pV{PP! zj33^jv`iTvzHSB~1eduQ!?;dDYL~>SGx8wz&!AJf&zH3{P}QC-yj!)qY>&ne_dk75 zv7L$T*xz__pNunau zZ|{StrRqJBc}>Mf(uq&b;@V`eUjpQ+nOGgK=!s+QLRO6;Nn`x>8g?I>(tcySDeN*}eHUYJSBVMqvu$4Z1TCc33 zWhgI|DJ?0P-d7S$#{Tif;CLg(e>WxI53Q&UrY{qODfVTi&1g$T(EVw9cy z@!xWyOG+3S8I#NLF@gOmBB|?%pZ4ckcZV!k&USWoHa8z!qksPVd35yt;LHu+0vns~ zRtfX?kyz4{7*qk;Gf>w#_w=^jd$LuW8n1W44AI_FnOUnzeJh?VQcFfZn^=WXRR0fV zaDg)VRO2YbG&4Otz4f{bvpwD1*!a`3ig1%3?EK&)@(=ZQeZIz#Jd==hgfGi~9y0)d zhtcx8hNUGl!y$vZN%`wHrQ;4?7mAvf?&%VRbdVT!@Wa$pp07N~6{QyVL!)&oB}qGG zsi-71>-=t1Wn^R|{jojE;qU~&NbZVbtE-lv%rY1J2S)04n_TPo&Vu3h*3>5s*$8lL z`uVBcyKZgx_p7iY^{677wTfY&3;1O;L?NJnmGF~F>MJ|6b95vxA^`9VRKZ<@@Dfb? zX9Ua8@%PTOAlv zswdNrA$mKZE=*j`mvSc1K`~6D2DfY%d3YVC8qs4WRolHkvH{`N#Q{g;Eo*F|sq zSn}DQ4{s*i{)`8`l3V47LN|iTf+?z{S+#sc0jfy zRE{w(+Rg#dE+*ntuZk&4f;!ePei(r@9ZMQ+IrVY>NY#JxKYPY|uZ%_F5YHAH9pt2vb;H#9XPF6&R8|HJg6ng0a~;8Kk;&WjEvPan__HIJ3*mb%B77mwR|6K*UdJ*0j@fg8Sai(id81s@gKuX1bi zx2nUrj*fkezRT&jcSVy!9plXHg+~1{q$rC%SeO4HtCLr2@O|D`|0-TX^!gA2JZFfF z3t)=M0Zqtb-6DXB`50%m-zRyUAq&TBYr47=SUdpKJuCl@9|zitjSBU-O~tmMF#Bhu zKpH-3{X+6;LJC~p+oN#*yV}7YB|7JwAP`!q&(BeWq56(#b~T@6Qo8Nn;K0JdGTR{7 zH#If2zwazZ=k%;SOG!tkZ$%Ky6^nVsI@q9egh!5To)&AT?rv4)=jT^dRRN{}%~-(4 z!vj(nEWz!qE%v$&;!gf>;>sfd5`dCWL9J>d`2{`HxY5X{w~;PW+6Hk+iGO+#nxQ6o ziNfbIw6au1m?vupLvh;QV=&T46*Zlv8FkroaFm!pp)G_j0{f{M-0TXL0$*y z&Mfn)N!MmtSI3S6HcW70L5vzG*%2t}P!l4DGpbJh4i-uVoclrj)cUsKBE^m_hNw{s z3S3!R!PxS+;TA%ae?N878X_VmZ&kfDhx^o9s)6{L7=SaF1&hN*`zJQckCk)ZpS59K z{D~Wcfoymv(0Yv3rL4C!hpZqB&!irOn#>asnuhgLYd;W* zRhCq3iJ&w4I&Pc)mnd8yl%AM^&pabb3$YSIR%){cuh8Quc$d%X8Y&Nf+TEPD(=bxW zHIh!_sBAAG#ruXIZ>Qi_%CClVmocZ|K2+)YAaJxbS#>~ad?)!2_P+}=DORbRf_%K? z=)}I2Y6saY^jTLIp5=yY6lhO*Qe4Z&)!-!!UL_rIxAUm}@<*-WU@daf;C^Z{Galx& z4ie*6w1STBU<}+d(+@WrW18A1?wMye1+sz4bHg{fz~+{$Kl+&PaZJM5Ww5gf`C>>v zwfaw5;?|Ej+}wwp%jdonxQP}VXF7kLp=pEi3c)(L%4wbrMC$rr~HUeuL&SK;NwknRG2AeF! zCuI&BBaqpKI`1BM6nWn4bO7yh9MkPZGpt9JT++wnl#>v)8if z!fiyA#9(4PgE2GVmeXbj!!v1 zz8sxeu+hlk^TB>PzB|JvHDm3x)lYH{)Xp5DK68a;MK^@a7_qWsfDeB3@of}cIePT{ zMVINvS*a^Mf7i|_Gi*u(wk`!O%%yq8;l*=JUA0kq6}-C~+>(#fUe0qF`OYRiIx25- zLPAORvT2sP{W|W+Pw*bl4x@-9%${UiDjGMI%RuwBHs*2?*x~WfMI=_D1C{NHqg^MIVhA?Gdo5dCytagy);B9psGzP zlY7m@(+B^!$BC*XAp1^QHCRbhq5gUDtFocHYsRUZ`RQWB{`Vu~)I67>MQ4v&kA3zd zjV_8a&x${(%~aW+A5IuexLvNVe;8FSvOroN@UXrJ+U8>$i9>wL^{E4#M;^NIxec8{ z?}S60-_Dxv&c($Am)~D5R3$IrK+i>$^m!HQ)dDM7XWTCXYL`I>N2dKWz^h6M{)$*p zBq?0Njqk_R89*)=CZ53A9%-YINt>h)_%$1 z&b-{R%9QrIYCUcla{fZ@chdRn)yH_xSkg|9)0L#_6{D+s{W4B;U{EgUwl%X54*?lr zV1EMHZThkNl=VY35X+k1m6a!98%Cl{Ui1sD^~3fz4ESsjbLi~Xzu!Q?iwY1`GRVKx{dNtu$tLxTssySR)BTwrfYdhC+!Nh4wf5t zUOTqbR8?V`+RmF2EhcLp0fKc1L(&NX!WxkI&;A_5yH?zxjw;XuYk#!3z6HSD)!q)6 zTDP&n9+izS z8RUIpsI93HZkgi^T=&eb6vclVD+|;k?3B@K+u~Zz^+-v%1tqjDU1XPX{-`yKQ<@FX zKa+NV;U5uN!<@DjMT!&~R%o1{<4u(-!}^2tj8z^4tT(E=teV=zFNxLKtJL77uOTuo zmbuafR-;?$uj)n$Y5*qD(U~HMW6f#x!8*NK^5%OtmHLH6opE+_aCgFw*-TYuyur0{ zkoeF^%h4)I?Kw?|r4l>Z`bIy%4)+<-n{c!F*Y zi23h;lSW%7+QK1WNz4SQ{5$_w7+;L=l2%Z}7C`$Z74KO4zPTF2=1(P_Zerb3Abraz zbhzzlj;$Mwyn~e5w!`1_s=jcmN%SvB(Pj_qaJ`A6#{9X%3nk*9xH+2B08f;r_w0{} zm8Uhyg559KBY3Rh@O)|z#wQa=9W9AsJGwJ)!zf^QxbDIseab_ zl8p@9$Qk~SfiLbSM;@2bG>@v=8x3fvMh3iH{hg>5jYa%rDAcSzK1dHxK6-#@sp>2$ zBkJ6155iAZ$Bz`6LAn{F3W?@d6;=xkhbei%qd$7<1>-FSf*K*fzu#5bGM~JuTR+s_!;OIK?NUEU~|tR1KpTRAwq?MnQhG;z+>O1r>iZ! z_zoM;Efv1#`J`JKq9P7z6b-R^7A)frM;)Lr78DG0hGAlq<@a3&?T8%h2cPfYQ-_!& z4_JQuH$P5_Kj9N@lpeWSIyHJco*AO2FG5UyJJjvdM*ZZEx)Up{YaHNl2NRr&_H3GA z`KD8yQ~5-Ri!;%pD;|-t21E@WO2G$H+K$O@CFYKuh5psNBXOk;XRQ_7MCF0qpir)| z8sglYeUdII(#ap%P#Pirue|*T6e9DCHH6qgOjx5R7t_rsb+7&=>4dJH)air#x+!u$ zguaQ!n~_R@UL}s&d(ZLFMy~&6B0pRp=dJOX8(PDNb^N=_)u0VSl^j80KKmQ_di7C6 zt=#R!F7~(_Zg5=htuYB<*xvWRDT_-y*Y29jQmAT~Z|&>=hTdz=-p#E>w-jiR8XL(x ze0-?g(sA2L_(EqG`3)n~)Fgp43o917h4EpnOXYO7VwLg~ylF~y=GA7jkNEGoxi-J+ ztFtrD8vT~5GTWLnK?9cRk5kc}rcRV@Uo6-m& z)Aw`bUG509W&?01^1i`D||Rdrn(xZJOE7v$&)sBp5dWl9G~uW{9KTR97de=miQ8{};o-O3-=5 zA`GrV&<1|BeN>2haa3*vP`&}@G}qv0Wfhh=1@!iivLhft9^Q2$NiB$O5uN@`%Wqzz zJq=qMEH4`vP&?~=!%Mfckn*3Si=$%&UtaHTpR}O!U$-76^&NWpj46TfBt>lj-Vo^O zXO)0;+Sm7(f%>F@?!m_$yeEJK;Dp@H!69ZUZ<_3$8$YNtH8UxU`Nt584EzB+B%PW{ zB!5*7<%Z^2SKZSZXL$YQnKb?80gYF|espx?5g211|2dN0%#37eSu*%$DjYU6hg|05 zR~JDkw`gTz5@1BAaGMBkb`01h4=& zMX6j#04fcT7@eJ+66mpo8C|PC8;gsk9pOaoS0sMK4#Yix*#usU>#NIpPVzV1O%KCZ z_a&$dCMv90%mB)^f_}%oArz+k-8_`Gk6!8N%}*?i+q(Jq_-t(gH--CNoH~OG)NBh> zPhcLPeNBi3$96!126tP5dz_ss^~)6JK7g0l)_8)KygK^u_tu|R&1AipX4A?Kk{Dx# zIE0)K$-S-c{Es6lhch!b>3M#@X+mQ0wjT93==D>Qe?;ab{!#jmjqWe zhupzWvj(eX4x61XNEwyQ{?)iW@AM0@hwWsq_$7PbBWkTQf_4A>=j7qhqck~k+p{KY zF1o48Dhl6_Hz_yZu({CL!~}>MYkPbAXUpM|d#Grw*(_$-gXL4^B=_`p18`Wj|X>Fu1b9aox*U zDDcM6P_aTTXO6*(IT4HV%Zm{^5tV$c10$f+Rq92RA|O7`*TNl6nDfIv^{rSNcg)Tj zRx3w}i;L?U8X6iHv|Q~TC}cl}I%&4m)*?$uM=Wb1{eRuQF|6z_25l~Zp}jG>q<3C; zC~^@#0pkda3uj>o85=F8zAsN|kx}g!c;B~z3ClPpK|U;16qBXWhGyBEKcKc0uF2(U-GhB*SqjpL9=|ImvSS)(E2tvMz>odC^FdfY_ZuYFYF01o}uKQ zQ}&D67d&-{g0-$lx}|M5DP+`!Nuo<6!v!q~?|di^zS6sQ@4nU7KgCk*bTTd8JNf8p zK!^JKkBQB?Aq-=dp1;-6VJ;qgt*7^4HivQb4tzX^Yv7KO;*+EgQO@cA{Z3Y@(CRxaF&Nn%zBPXwmy`bT0^R-^thttQ6sJkM!UPabGn-fLc)nl8l?jx6JVfx9x|#1?ot58J725a(~RFO`M+ege64Ut zk;I`jrBqesnTF_{A0#IW>-DFtnaggs$~xa&R(dnjiZ3X(aZG(V@N5AKw%f}tcVsCxvlJYk3u4zrOLCpPZ!kizNz?J9xb`@GQ3WF>>JIDQCiltN4tA zXxczbofzc1HS1%ha@_FpUM=1v#%SbI``t9*=IZL|mKJ8o?a?Qd){e`ERkjBtVje96 zs+=ggh#ZSqBog_%ZxWU^fJQHo;;enQkVx-}N(7fY_etz2>@$05C| zBF1~~sl10~_j%bMNFazLdrN6(*45OwP4jNzL{;l48hu8Rp0ZEmKCSL&^jZ)QJW`zP zJQkfjq9wtQOpyPDrig+wC+M8~jERZq`PjaO@b~HkU&D^ywQBcXxf-y#eTCm9mEVz8 zI_$RB5cHTKWf@nJ}vL< zr$6<}(1Cu&)rIN`g@eVQvr@aDm!_2`VSXoJwf23!JjS6wivY$Yi&xqUT{Y=n?Vx7c z?_W8*UOmmYE=+5D*MIri4$B-D zzDQ7kMmK)5`%J^z)1hXW*B5I>K8HI0cdHPIyw12>w!h2H)5V#p0>?D2dX$y)`J|&S zCM~yo4;zqFLn^gw1X5S~u{TtVQX#56^`O(qASo6SLCnEj4i7zOC->dE$9mc`cR4f1 zky8^VScHjJLsc7{gczL+he-v$z9*m4A9?)Pe%kl!;J)HFl3c@z>j}Th3A)xjy!|wy z;$U&UeW)4h)n1t9CTZufPbdG0RK9>9Nl;=J<=G)ITTf-n6)7bX$pQWAgX9+ zej4}sU`V*lZ=TAqhT-*Z3m#4KfvF@DuA^SwkHfu2h9y}Ng3=J{IwkJ5_PGxF;_ za_+-hKnI2m*w7$;@RKNLI=$Q#iK=A1XlK1RG`c>NK24COtO@~E8bf8=f9?cuTD4uF z+Y&GJ{>bU*r1nVXuaW=5mGxWo1Km?Xr7$G=LXi`$*U}tAMI2kQ<+%SYE`(IPjL*r?g2Su3CAOS_jJm4+->C4ml8XB5f zfXEPC$QgAvjVdl-nCP%9ZijjScFG8`@|n-?wC@`$akA(bVk4XTCm6ku3cpKqqD3!w zHf>U9`+IJkKWDQUzseY+WAlEQqYt{`YO~^p4b@ZPl%xlZ<=0acms5Z<3K^gk>vjgp z-(;3zK5;+$L%V%f1ZqE1bGNFS@Ai;25iX30t#b2-87SR^02tq2{fO53Z`gl|h zi+ZTQbZs*2HBJj5QWhYd6O3{`zIgN|*NN4uA^yS?5_>#YS#VpZ4UH?A=YXlTFak+VcFU?%O=%j!!$h! zWPi}E-}U(oXJ?R+MDi@)9AQ&nqn|r+vU`2CYjpbA=;Ja{ivl;)1aSYdmLa7jo9C_5 z_heiw7sg*2U9O6@g>Uc6sP;5}5>mq?`EDe&9@SKAG-jN&G}~APS|{Mb)PRle8xOtd zZlT{fbUa9mjfpGXs zvH;R|)ykKXAW-^hNgDa%IR(9-1`$lqcIwW%egc%wgBS$Q}ZO&Hakh? zetcF6RNE!3;1oEBo@f|n<58P0b~>4v-Afzz zg+63&y(%j!Q{_w;Mkf5jy`Z?Qo4%bbdGE2LWIj^b_d+alh-;t2|4SS~utfVomucnn zHVYFI5Ja_#$2MF6DV;iCS-Ey_pzXh^nm4@-bh5=5RXqF%j z|4hVUxv{*!#*_RJO^!{f{d6Gt*Q`NUE*C){%~u}z%P-|<@tA}UcWQuTC%p$4-gI;n z^yW#8VfC#aX)BJ3Jb-EB)Vme<<2>L16uR|-m*IZS>&&GCGQfk+5y^aUQg+eWT zqZY%=rQgBoh4Q&}=1-f7tp5%ihlnynw^qx~%Z>t9UFh$o#zt{5G49XGuB(z_V#$-5 zo9~;V6?5P4MmmjV=7J~jc!4hRZ3~zu^GiufPR`52C_Lh*NA@+<+V3kfAiEEJb}e z`rH?IY(Fc*Ruc+>V|^et*&vixb_XzWoPESi5Gn|u@t z{hy393I@b3R7?B)KjFHK**Y)5I5U88#{p^hx@3qJ@bU+f(`j`;IcG z*(XFD>1wcc&Yje9^sJaaHQUJZwe~XWx8e*VVKXD^b4VXe~{Sy2-9hiagexEwb9FI z#QNOhJMH?W5Mb|KR1!TZYJRRW?##rroRVD)O0EevS4(VQhHkHZUXeNxwD3qshOiq& zCjSkq93-pjM&r)8)FXYx-muxh-y^@Iy|W_hr|aGDo$i^l^vfCjU63+*N^{4?Sle4;k%G5R@9nI?!9_?$>CcMk&xROe@9j#Q`gZxLYvNUq(75porjn)v*r zJ@BWuHjnZS`=MsuTKaOB*mp6&&s>dse52CD!KN@uM z3H`g+6=_;o#7$&Da!K#?7>bK!#uGK)rmv$zi4BDifZJkrt~Gf^7Wv9_BMsjbYv=HV zlCxj2!&+CthaCyM%Qu?}u>8XEYcf7MLBJOf0eLwa3gKeQ&hs#`15O&ZC1Y#Z_ zT!00U0g?g)5_j_z2>1njM+A8Vz8m>}^yj>|Uh^wD8N1e$H;VZB;2SZ>GX?c0<#NV> F{{tiyx?cbQ literal 8433 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

CyHAVdY zn_+a5a#Q}ulp(j~OAy*%qn-TD^S~>cy5;iR`Nubwt@?oPIC0$b7kAjGx9N`ZU}1TX zH6ujNp6P3al2cj^Ayd2;3428boW|q~!vbgS|27G~O-}sJEtVFRI(hDB*(%tCR)Q|p m)jeZ)==S~S!RYA|W)GfV<|lT~=zs1vC@C>{QIN1<@c#iguzyYf diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image017.png b/dox/user_guides/modeling_algos/images/modeling_algos_image017.png index 88e0101e4900cb852cee81651d7219727ea85fa0..c56ae77fd20caf841bfaaf8c8ad624cc6f25ff33 100644 GIT binary patch literal 14995 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℘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 MxPn-Xh+)wG02D%YcK`qY diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image021.png b/dox/user_guides/modeling_algos/images/modeling_algos_image021.png index d390c72d9861131f066e9a8a9b9b3cb0996a00d4..54bd1b6457cf350a81021cc34755bff06ac39962 100644 GIT binary patch literal 33119 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 NT3lYNTEsB${{Wj-PaOaN diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image023.png b/dox/user_guides/modeling_algos/images/modeling_algos_image023.png index 505d403a5f8f8bf83d3a6d83b923e5e66ca2affa..42061ea6d90631772e375e085bda52122e0731d6 100644 GIT binary patch literal 10627 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 diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image028.png b/dox/user_guides/modeling_algos/images/modeling_algos_image028.png index d93ccea4471765e1c235de9fcc7bd13d70863f30..072eb71babca00de27c67efbe971528fae46fc72 100644 GIT binary patch literal 11060 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 literal 14515 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 RSLPL%w77y;jfi3J{{hk)5C8xG diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image030.png b/dox/user_guides/modeling_algos/images/modeling_algos_image030.png index 7ce050d43782f13c33d4422ff05c64ca764df056..bd23d61bb98ed640b6a85a3feaca76a76624583e 100644 GIT binary patch literal 11497 zcmeIYX*iVO`!}vdWQihV&zfDbM3z*@I*BYH2leVSTde?MSrJ+!nesHjsX)ylxd8yb2H{(Pv@*LGQaZ#gu! z>Dv)&)~(MQs^Zt)GMB{OMX39{qSA_!bdBj8x2tMqtMm1~*dH+Ie1~&KLTn#pN8f3 zg!r_ywD?~hG(US{;hzzuOn9?BYAPx!8fpu_{b}VlPT&x72i@G=qc~K3e2xdQHFG(P zo+7-CPq)#++QtPkOLMNZ)ufaLMfGZoj2?s9l){C=mw8Bx(~jxL$ho82@7+;1GfVQj zNxn;Z(Xe>eV!83_;IhGYqq~xl@yRjC$;n>^mm^fO6wSr_jmyU6&(NFuM~^dOj!X9) z(8o_; z$0xzRCVM)SmwYED=l02hlpAL<5C|)YlnpaqbgNb7b<*;WJuML(vL3h|7B+SW1QIgl}+HONTKlRD4PF_gqjmCp8n7xW77BdV0&&+?m?t# z7ICBQ-aUyH=M8OuIez3~2w+T^K7w8eAT`@JQ-X#kn5C{(I4yz+YljaTS^Oxwu zd+1Wjnv6{h?IfA2Zqg&%@$?kI*D$Vm*kvEfxwe&pw-Y)K13KiDfp-2wAOe~$sHyP2 zVN^Y7vUD&j8eR3xajfdK9qf63Vd5b!v}1V8XgP1H{*B%%<;*3Q>$kvMQ3Zm?;jTcM zXY>+~`_V7t_jYDmq#z2tJEC77Wj-S+IiB^x{9NW2T7I#Ap|wF7g=vO~nb+#$T_g7# zQD3#93JUhI{?TKX=mYKAD1Hr(dE$Cfe7!Tcx4yRN8WR)5{1=)w6?i(fFH)%CLb-mA z8XA}znCNu}d*~V%yp$6c{|j}Za2xs{@y8+TUr4J;#z~LeSosY)b95Edn^;o@8*sW< z+A0SjNAR%8I@=6Z$%HCiziTCp)O-GXs;KA@yTTVv8x*aNV#YW$XE-7=Lh2SQ4gPqn zWwaz9;KHBWhc6UwA71`EJ671PNKjJD#y)ndn+8&jRywWr%CL?}OWR$;+8rGowKp2Q zSgxME&g-j4`~<`97e1uN+VBNk?MCLUerCPa-mP}6-(NgZTRT!aa?YZ&ySKZ$7c=|7 z+Mq-Jc3Pv;ZF-9Q?Werzf`Wq1b<@&F?O~b?V&fSxqw#2ZlO0>>aIB<=h-<+IJ&=Qa z&1<@|`1$l?<_xp?FIy#?p%?GVrxbtx&6P86%gPS<^*Em8VGeG5qO-+eqT@aay&5oeIHdu9bH{3OH03d`c5BG!v+4kz?i8l*} zRWbRucCIiG?TuFQNmFuPJD0vGd)XfK$3`Mu{{2omevy&`n-f#Wn5JW=q7ppq=)Ybu zN-v&PlJ7C{prD|Q3{@`!8!mV;gq#ppTpVlr3Z$7BDJI9J1GaW2$E5?Yg|l@a8@YyOTbsbVi)bNoprU35&@@d+D*X*|D$6S8(FXp+2Ru zs3uF#`orx-mOU9sN$AmO%b&(inORxfA|mTeWE}D6Zd7OXc)@QDD!GCJ3J&aEWaCkt z9>0zb{5q!hEs)R^2}opzd~d2LRL8Q^2rKXH-aB*ZFuu3b98#qsLNpZ}ZHr_{5;4h1 zNl$T}7#UNF+s(dpaUS-)44(ALu^ z_3TG=b@g_Z_X%Ni(O-t)33E!Wu?fEFWl?3yOqK!S+ni%nSrdGrD`5@hWBqvVO4c8y z;?Ap=FRG}h1U&pwR;I^7$4(KPYVtCQ?On~lOhyvY@YyqQJd2t-BEGiAwWhm$Zg;4# zsA&D2#nHsU>?RgdS6ywi3)hve)pn?TRVtg(WLdJfkS_OrXQ3@e>2y0fmVlP69s*jKdgC9NjoN%+_SAa`3J`+Nm3U@uI9&kBg9V zMN2WDT|nW*U-rQX$%UxiTM{W+{cC=zesonwp0h2JR99N2{ark4Z9fq=YUDqP(UQj} zBqSsy6?zn$`1ym-Vd7mkvuS}$a63EM-}K!ZCw?DL6&+&1@S7Tigf892>xVh&A#F{d zI{kCotR8g_(}Q_Z@2kGsWQQYXV7!P7aKY-ng$==up`4vU`I^qpKKcrh|Fyc8~k zRuYyOG>s_KSF|fk8hnVsl#G0=mz8u9qI(9vbeza1@Z`75$-3aE`^U?iPjA6Eh`g=# zlE_|b|K4?X#+x^nU27G*_www~VKbYX+tH^x;TE14Y-?!vrm&-AF=0wFPiA=4%fswy zchD}at_|vn+2-@zlClV9Z^MlK#X6swswxlS%&|5n?Sa>buUxug@c425!9n~VkuSJ9 zwUNN9p`oEyul`Bddv=FsvuSzz2yI450BH&bY0wGxS?5(d4Q;d1W~hc#idN1Y{_@_p zA|gTwJfU8CZhaX_jW(SKF`rpV;DZ@OO=FZ8e4pzFI_kZncl-Jj!IRN1bARXE= zHYeAC4?p>WMvKwLDD9c;sUvo`+aK2|opG-%w1i~;c9mJuz|36>I)#M52l*WbmR+Nd z(Hs#c%Lk-+R=Ti@x~jN0+CyQzL``;M?~^yM&w^ZnYk4vOcji)EwNqNMmps_aMRc0CAk`?^Ho(o^jo!W{6cYgf%v9h|_Zr<75UFStuIS?AWOE-jk zC>aZ%xW2%KteSG}9xgOoi1yf+f)iGT`7?Z;AC<9Q0FMmC{Pz(KpRFd5swpo2w1fn= zoq6@he%P;PU`vm2Z=S?^KpiKgcT5Rv58OK%d%L;@4vtlC5cp`NY*4CCYR7uIyIC4N z@I(1}M|rKpT8E57&&86jmn*4QruzhwuNuxEa>JKm=o5Hk zX~w#&v~)Ys#BsdR0cpD^xdQaqp18B{6%sHJ1215V^M?8@Yg$Z{TDOyN_&i(-rUZ*6 zl{Zu-faTzDI2~e4D_a&{{lSO{?2Ut8)@L=!3$bl-5Q6^h7N=G;Sh}PHWZKg+CJ~4r zRuz|z{E7;TB9^^$07;A%5AAImRIM)bZA9-|V8_reXvl6T30F{$-rX?m_1INy(Vfi_)#gv)h`H&}bv-ro49S}0< zeHn(h&x`0?*=M1ktl*t?2H`>uB6%KvgcFa8h+iR>#bMv^`axEDMqu7*a74WTk z(++tz%l4d(G0fGElqtE_=#hb0*vrjRhXhV&H-g zORs|0g*)W4v&KF~c+n**NkEqGNZ`w5LZV|Fo?D6S=731eja-_)1OGB?h4TK1M;&wJD zXI-e3#(!^gsg#Ba=)we>ip}c&oeqHOlMH$(PJDd06`kH!tbQP{5~{OoaQ&<(@b)22 zfWDP4M;UXqhdL$q8JO=17*WOs^$3i}3`U%afosq&tx{gT_&@i^Y*05qD&Szi@;~n> zPi<|9<8vfep(6u`=OgfBEL+YHT@gPb4w1}n`N?Qe;94u6?Psua5edlqc`LnL);Md$Jm?142UmmaM1-io&6Cm{SUV`GflHwdF3 zETFfP+i3syR~>Xwk#_E2EPN1Xv~6HdxI$Pj3t~`5N70mqz~}VX#(Yf|ij7Hwf5+zl zOPHcfVf3a)%JAe)|NYB3X>>04^WUuLk@w!uHj@%zr9((m@7s6w_Rn_61I7+7<2g*| zk>H!7>?teOF>PR8dBOs1BP&31osQM!r>LC`vujB*Q>8d zh_x{zQ#CX-q~P|}>bSZ!7FJf)L(iq1y3K1EK`kvUw*`i#2Nm{Y=;&_HG4ijt*3Rns zZ+lrai}@3q#)MAU&sK&DgPQ*S!Qr+o-ZcfrwsG;OEBKv_g@@CrorVuC|6>p~s@P#S zGo8|w5h?l3e6=-pNK!jJwZOLQrKW}^sNDFXuK~RmODxxg9{O+>-t9N;Z$I0dD_g{} zGBbPaPkW%v>KHgU8eNwMGBa<>*1F1>d3kwRJqkQFwk?C_Y|bpO936}{p1QqKo~2SM zRbryr+wbP^p4p4~Xmw{-tPW*L%Q!m2u|^Yhto!oiOHV z%92r7l}!LS6m-a23fhM*`@_R?r87eXHV2&APpDNJkr?we&Cq)IC^dt%zgscC6Y ziR@w>i}e5CRrDK|sA+(zGuxQ=+$kIT-=r(aH>u9MRxhG$5+=jP$7eKJJV}@r#h7y} zY#;bETt&OOxs5|(%~(Okh|ggBWUahJ@HztEP2*x`t~(rqJvcZR8X9s9f9-boHhVY| zSRo+>em5(|N)PevTJ&O1ij0rqOiiCo)*t(N-+9K>3AcMn3k?gs$JD34!228&5|EO@Q3BWc*Q=vGITR%3i7x-ah59=n_`1!$?(XnT z4M(rIQFxq1XlQI)@c6j(b+9_`<5R<^hUdD*cbz+b33jgxFB=q!@ZG!vY)rw%9Qy0q z`R489`l?M#>gwti(u71rb(^gmnZZD16Kyx7aJont2j-eD&71z+tG<|`qMS#deXqZ-b!I~m=%d3`EKe4=`OX-=H&(N$iODPWyiS>KHEvS8XJ=mTLas4A+wM_ zsGB*#A{>dY-v5aog-*rvzGaKQa?|;y(wECN=K8%w=W=+V4@yk8e(z0;#gS`o1E&AA ztxbWSsO{tOo;Y4Up8JAA7XIsY=SUg*#33fKhNkB>ao+3RBks%kAwA&*pFVvuzKPtK za9ppgINRnpd%x8hG?aXCV3oifyeOo$S&Q$J<>3ILV^3jxQB+iPPgokjIz@$MV1FKc z8A*dt)G1uZ7#}5J(bQSEBG4^)2{A8V$zLSz$61w?=D%65b<6cX#ZTnEdz(>wd!3U- zvq97a$vG>)5Wyt6627I&c;bc$lCZKpM@Ca`Wc2J#$4&C&#-4~CoMDvTa=3+QonsL| z4KVv4C$q6JkJr+Jj*JYy9G#RH`7Z1ES7lh?kmPRe=xVn{H`q@;8tuR2J%ik#0y5&{ z#(%ZxI`?Nl%&gvo7jSs)c#ztBN-r)*jQzNUv)iOq1qcZZ zyJu-bLqqj9&*Qr1ut%P95@H&B^vJ#|xmjJMKmx!$4IIRBGeoG)H8Ikd*Snq{hIQ`# zd}@FfT_87}%kfdEvFUSD6T|ijkI#27=8fPbi_@JX7xuCH4BiHX3E;6gBK*2c!c%c^*q{BRQubj{OHjmV`F1Dyk1^2r`GX!ClnB}MJfnVog zM2gjz0^wRE@mXm$SYZlky;LSBR(j#75?J6(hu!F{xbR$gfDJ&O9ir#v=4#MP@jvY) z6BFZ6{)_SioV<2leceW_rkmPrJ_)hFRFhP+Y0YzE-TZOxj}uUA`SQJtlZam!nMH?Y zX@)Ru0ON7BF5*u{{ZB?cs-Uw1i?hwq%O!V&1WwjB{q~P3```UFva)~F5et8-j8o}C zot?}<{C48XQ(sBmzn_<49eNu?RpZxh9N%1bzj9t_2uO%M*GZQn^it0Z;YyVkfEPYH zYCJo#Q#!ge(;Q2jetGE< zP*5;lcdJ{iet1*EAlc&g+&*3;HM-P6m>wwz4&WCkMYoh12_n?&OyySV6BQsw47tYk z?}411wJs>oz}tRmNMuMz2ylVlD=r09PPr|nqa`^OkaC~`VUC5*dMppLdK;ogCUmcM zN@*01K7|TR?S;&onP0f1D+F*!Pe1bm%s%$W;_T4(8geyiVl{O$p z*O{W=&P6&py2FbXBw&4sVir2Md`ci5d491Q^6U@;gG7mT9Lw<7*qyUVOMNiY_jb2S zk6T*8*fai#STv*+BESSe1L_EUeSIF99Z;uNOs>n!__!Fg`LvK4tEjY6$&}>nLM`sl zcU3HEdzNk*1}rNHE#qbSoP+B-sb^lHV2G3y0W=<`gs7c%bF1@+_RlW=_O1Mz>tTO0 zw3Ql9gK^S4^w}|49Alj_bu<|a~Tdj*dX8AkAvfN_4MXkTi)(-i3v>U>y+&+HXzX<8#V=_SOD2Sk=(jrhuuD8Xh^Q9~V_sQU7WGP{22x+hk! z(|U8X20Dif7tuqh1P{8TiMd5_`67^1YinzFq6l)B|Asey$nS91Ytril$3<}y8}lb) z-z$UUvtQeqiYD=>17@bU*v*T6n1qBX`n(sQ7`485!`o$K1S`F_dG8^sX$IrhP=ExU8C!79spbuOGg7S2ejXZ2t0PssV?iA|&%!hpyR+g*>h;&U23ltgcH#lWq7#piCNo>nkcM zNJ&Xw3ExAjMJcEwfa!e3bgrZmIy*b}>O=dVlU!D=y7eA}`f3nK`qU=NrKP2(>^C#TBvVYCnW;W; zt3{Qt`D>YYBeM!t=0oGAU{uXk>5T8i*8ES?J+Pq@3trLkJ5Qa`4i66ju-4rChzMDC zKl=OE(!;|;oay*awBPP8I>_-nzf$Ng@hQiB-~H+RzdzDfl=U@>G}LoGRxK5Y^!E0qVZHx*a`GsM>4Zi(PzLOvU@FMzV1#u+09jo94@Exo&(zdV|{^WQZ@12U?GCyv!a9;vlgFT zLRLXRt=uOW9#F4O{dlb@&SY9<+dCGnnJB!xzRt$VO0_u($OfRDezU=hR&~08V{u?8 zhZ%oQH!nGp&lf;q0XXp}jrPh-CDxO%IBsq8No}X?f33WliCRRpvIRU5z_DOCw`HO9 z&Uh;;$hG+m$4CX>$<3C=X zTC^^^+P;2$i|SL!l%{a~lPHCYG|3-)k$-S+p|1L}0CbSCu?yMPw1CavvZ58`7I0dH z!?l1ZOzM_86Eo8X74rCxHz-d=mx~+oJX;?+jTTjq3Suyi>5Yln3G(%M*2yYk3yVgl z*=DJCBR>0eGwH{p^ZXx1M@RdKl>c$M`g(fYGuzKQ13WOpsO|+sJ6gf7@eDaroAL7! zA1B@lpl0ljUNu0p`{GabXJ+R2AkZ5M5>^W6SA{FaT0$=<;s-RBbw2Tpy>{pcMUlT%FQ5Z#LXM9mTw9=^aB z9u{V$Q0(Na{{qx|4JBuA$I6RZs<_q&z+=My{Q?ZjNnhfoWL5bSd!}f`!zG}|M4+Um z^`50wRWh*MMN4bzxhVrro!qjltjD>7gxy_zzyxihBHinJ@wnc`lXY0T`8LsK!v6k= z-x*G11`b#z2X{0Q3%nX$`2)@rcqwv1+W9;k)aWXhlGERxz&v2E zP0-{**H+`X{f~O)+kXhiBET@OLss6`n3B=3r)_}-7OKk^?=tIpvdX*K;}bWJrw~!-?QP>dO{@Vet>-b(7Z+TSb{s#{LM81tMWwoa}~^Rha!mmxUhxHoQewFu_qM}M4GP!Q&= zda3LYP9Uj$PC!tAot;@wc#5F{RQNu8aq5U~#l@mUIn&7xIiKn4OJ=V400#h-Hi444 zD}cHyqYS&b&p5y6(qeCU4Pc)D&Mzn`Vq<0(6uuK-zoU-e5%Y~deynsOO=t1oB=1U4 zCZJW{B)y8rHai_D0tNBgdX3A^E=oYyKno3^MPp6yfLu*Xc&05$ZBfhn;wS%u!CZUvO1WFR@Dae60|y*7AG<9ZH~6L!zRk%kKOma zi!KASnnq#wcgM)@9}=XByP}n#G6)L`8$nxGn3=Kl29#G+NdXqJs%mk59{R%{c@%Qt zoP#j8)*IZOL!;!~1i87b!BAANxf|q{fgKO|StNAC^5i!(_?;XQbgRokXEtGuZyaUa zwa}wL=#%)hq2z}jW8lo!msVZsq93p@gD#u4)QFy*2!WRVb$8&pltAt_^-U0W7}Nw% zhQ}e-J{6ml85fZfNqzJ_Jmtoh+s=17MMiEI?0?*1nM}1W8{bEj zF+4nSFevP;M6GrOp(6z4BR( zlkdFoYQxvYQccnJvheqdmHfS#!U6o>@k}h<>^tScUa{|~r;3;Bg zcDs7IT>(`VH1PN7#8%C&dt~ScXK>iR<{A3qF$C_bo?&Npry>BEMk8!gQ;(5t% zEjl+hm%r7%{=^;BK3aE~Lw^bo$b$U*0j<5?pzz!j;D>3csi`PO^{Q`iE*}uF@Z^rU zZC7F~sP{m7KwYj$)X!hPF5{4q~y_m9^W zfa={%{O~dcUVY&|$n5I+I)UhuG~>Gus6L?{T)(gA?YnoI>?K#`2+SswhbO1c?#%m6 zvQPvcHy)@!ApL;#OUx10mdX|-9xo1xEUR~Req{af+=ks&4Z$<>^pIG5dRVa7TQ=|o z!0T)P-InBC(A(Y?$eMiB;}QMs?^CWmoV&d)j^O1cXBIuQHkmJ4$~S35%&Jy zzt(U%(1iC@B^)HTSAqg+Z~Uf`pm{|Ld>K$`U*E>V7n^_oegQn&?Cfk`pH8}t%#9Gu zBv2{?;4fYYMw{?hmtoI7zD0{qZKC5=^&feY5=-T?gjgCkx#@xU>?=Wju747Jx<$f4 zlixq;-|`YPvAk%?v-oh|fatTCcDeM8wHlcaHP8d#p>{N|Z5?Cn%$K#Yv4PsEaZX;Q zKD?hU>ev+68qUZsrt{KiFc7dJsn4}{xL;kBerROF9uE$t$3{Qxkf>(}dY4JmRdk*dKe7z`{{a4L4Z{Ec literal 12444 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 diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image035.png b/dox/user_guides/modeling_algos/images/modeling_algos_image035.png index df85effd0c6f7c42eff79958746e1e4143bbf4d4..1a5f60f6b1562f12e5e4e0fe21574d0bd0b3b2bb 100644 GIT binary patch literal 10831 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 Bxa9x< 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 index 0000000000000000000000000000000000000000..4693c9cbf017ec36cc3f59770ca607cd972aa6f8 GIT binary patch literal 499880 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%0Do`vj%c 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%0D&N9 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�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­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 ZI#PQ}rRHNpz?m?gsgb#1`8lV%{{?9XB6a`( literal 28905 zcmZ6Tc{r5q`~M@$WNYkW%@#vwXp-!E$TpaY>_x~nLbk}x*d=OY8=5qVEZO&cNs}f? zlbtBZmMz=w()0QL^Lvh?BS(*8X72mGuJd}I@AvDR1T&K>%nZB?Cr+GTHqh5GKXHQk z+KCfX91v>oFD|VsmEf;aKKfSoPMl!rI{riT_#6x0i4#I640JRt1Hb-yFm{jcPQXFj z1YfhmSq<|~F8wtwQfp*O;(A(>*wcYYm6vnE=$Dh7md^>|7uEvxYR;zP^_}R0?ZZz? zG;P#tYGvx&%BCa`v~q zi&Mxa-SoGuwU+6{bRaxxDH#4yf0<}A^y6~wDDcZ+3h+U52vy5H+xt~xuDYnj1~046 z+mqp~wY9Zl9{jy14%!^~;}5X5af13;>B!I3RRkomQu?M<)@E=sf=T%BA%aPucY3KC zym3-K^Sa9U!H<=%u9Z5&^f+{_^A-qhUu&AjJn(Sd)ZPNar>s2xF6K+&QZRpSP##|_ zilf{8?cY|L0w^BN5Z{GhQYFnM{`X?+@U~N*OP8!~N^>m-C}Ty?=ql+8OegnyrPBUg zro@e`v(bH(Mi57sUWVA~hBDTzS45)pRaqM6P>wGxx}Bc3I0BJ4VEfwN_SP+3)aqR{ z8jJtnImIWyUEa{Y`)eYv-Jz-cdC`cwl-NO>fZ#{^H-| zqVF)}*S+@CTW17Zuw+_$pv3o5A~uXccxqYV&R*JT&xX4G$)sA1YEZ9ZJ1V3uBBQda7bn_2Y8LV9<)8zCRvxB)@hBpq?;TZY4Aj}` zdl1V78{1LgDShfJX9KE_m!4~&(fw*^EWHkhC)7Mi`4El~F{A<>H$x1K?#3h?lw?m~E&g5n z4yJ<}CoVhtl;h{CC0>>*t4%V4Y*J9Bg}oN2lR}PF*4r@;6_Pf)Y8``tTKwSnE%UUy zUDGP0t7N}syFq5y{*V9ePO2;o>(5Wfsx4h=AQDRwspd>{z{-x8 zFxoil5L(>!jotm1cKd=Wl1)pRE3s1Ab~JhRi@)utza|!v--G!TWCx3FS&6EySyCxy zk8CL8){TgeBDiHa2Ze=|5q}1%cySQqkL3QXi&U<5GY;4D#cOS*kZ3OjKDbKV40Wa= zjq%?Wd-UV7rOGI{l8XR9n{EdE(uo^{qH>1dyHbTE1J8g7{7j3WqRAQ!DhFMi3~S!u}3 zD_dF)xCxPaY7`9}_qsG#DQ4h7$#P3Y3q^s|?65CpKQoxY)mJG!sF6%?3p+a4HqBGn z-QOTxFC78fKNaOzvXC?jYl_JfhNnGqE>q@OkJs0*v$6TLvLaznc|%&?OCGGlGpvC( z*k*6(<}G0HQ+$k^5J8;Di_U4NXyM9uM_vSHP~*eUHSH(9~K-1=K1)k9f_zls;IcLauX6Ck-E%@1h;rJk!Xn0`4$&Z(&m}i zP2Kzewyly+Y8>|}9bxGF;6Fa^JGLCKRwX?+=0PC-bU=KeP;yLO6465A{JQCmFdTta^9{I) ztt~&>D=&xropp#rI!&`I=NIIsM&cnMA-br!Ad@o(L!;*}|1!$&OS#GQ30`Q&O=?r1 zqFRPyiA48WO6WF8Dh(|(`vPn>WJ4iQsuKaN<;YlgTbFd!$?g3H|D-t@{etY)I$2J1 zSIYgpvN9W^2~|wFkZZEk5MVosdDgm{)4JPv=J3r8>4tHyyagO#oPqXZX{1nJ<*(B6 z79~~HX0Lx(P+nbiOQY9S zrL%^AYpi9kS=_q9snEi5ktnd*Fnew8F)S)LO5Ef0SEVnn3!M98f4H74VVY-SW5X1u zE!^d!*d_nf{q2Y6wRYvLe}9&adAQ)jJ2L!jNiJ1(*0um$#&OV24ERjMVkj8dZmD1YQEaw`f51}7Ae?DEP zFI!6N24&W+{JyX6`r@$YE32|4u=|C(JQOZ4-Kw{7#|8NK_+T)OR#_{19KjFnbHZht zZ?%ohaa4_YKpn(3_3)nb*Gj?DjtCqFt9i&Js$HYSwm>$-tmW0?805|m!=LVurPwBd zfjLKTv#&bAjo@ZIdXZMW^31c7LfE_o`iL&`Wzgy7Z$VtWgRo zPi=jHNqewzpfcLvW!aLDb#PQMru>^}-a^ZYw*p@YrBa$cit43O!?|t-7Om&a=}r@v zymd~ln~w??8CJ>;49I_`rcR6^j4h1GET>OTpEAoj+jpKxyDR@bjTnZg2?gtB?jdVu zXky6kYo#O00oO}8y%_y$Q}K%p&qN-OT@@fsD>rC_4?hTRaCJW7c?Ax^O9W_OxyDn? zI7hjd=P!=$+Q2zUqQskr9SgdjwF5a_Pd#UDSrNS$KV;Swabxmzi3a9JrfRMU3WHte zw;g5fteZAu*rgted*TU;HOTN&5{QPsyhi(TS;;sk7aOVn+$uqAk2k_Xq;=_VZLm_u z@wFQ+u^V5uWb&fQ`nAm{t!Rz)YdH2zoWQ)gv(?`gQ2H=kiYcs}G^`W+7=C(9gkb8A zXw2F2TWffD!O=>uz-Jy&0^!>WoJBCC!LWi4$|%f$|BIaClreU>eMZlC&#gArLpU0q#KF@6?Si26mv%vKwC*r)Q?dCaT!^y$;x&wnsQ z)5gfgWPWP$RYzDyy?*C_(3oEGQ=+{$Tb3yw-u1_lMbwV_F70JUzFq#ZTZ>C2SJ5M3 zt!H9|6*)PcECfMm(!RRkcw;qR)ZX$#NH3+NruNRtA*-KRH3|FK-sh*^HeFa)*xTC! zhw}a3-|BxW4UWde2F4E>h!WiJ{INSZZ>L_+5j1*2>S(nW6U@)+v-DHCFiqC4BZcb1 zj}8M>6pYz*3tgi%oJF%_jHrs=t59mlNao14%2(Y^7(YM1#tLT0l|@00d%Up`675Sq zvfUvxW#3M7$Y5_p326juOn1gnN)caZo8W_!=g_%EoXmwrmv!qGGe1qIJbX1tB_V@-fJ1N^)6pa&%d4{6v{;)FP9&oll^ z#p2^<6-oC<8;i?ThkLi%Bg}d@-5naAC;hz8?d+fb?#7KjKL(@h=QFrOnjSrRR8&-i zVCqEhC+kgy?JXBwNgb$6!t0|)0vZqYcQ^L7S7zgv1Nh{68p=?rtTdWXn#Gv5kFguV zLDAo-u)ckp7i(bqDQslJDM!fturM!5 z%~C`1+!)JGJTn4{8ukC5~>6~H`h-AAA zRkAcD2cB0quTWmLnrMC15THX_-gK=m<6|k})8Th#tS{vxoa$iZkC+W)icN@pH)Z2n zVOiQ<7c(-W@lw!>4Yt*Bog(_Kl?M!I+xTnhb(2N5ewo!9Wbd+yRePqIldEIHyTxu;K9d}ny;wHrQT+1?_l2dha$`0J3wRC=yb5vYj+}i(x+MO zVKC`pr@qqIjyiMQ2FDKPm#=n3wYn4j`x0dp16?NTDyA7Ux42q%W*CWwu5Ybhym&z* zT4&LAnqtN@Y|$g3YTQ~5(_Gmpf?7XUvd|8>PYIQ>KQq7ecc1xXsjy#krX20q zFEh7fA!1tahVyz+SD~|&Z(?C!Zc%Nh!Mqasjd)Xct#^)BTA)qF1J}8Q|MXU;lY>RSR>RfbI04yLrdzc zc={gCUsx~m`8M9zAg_GRRBFPD(#kdky5N$lY}b6;a1CY3`6N$@o|%B$$zAiJP``Sc z0Hs_!{P$#QcyO>adc^&0$KyMv`hZye#jst-ug4-9|N3WF51U?j#*+F)<0?7^WWJsY^CfRzJ#ikjF!#UyyWQV5G`DY#ea$FPNCVPwkKP_3 z+!d%o2-9)$GA5gtnqtIP9l5hd?2=3w_#w{UAUB%k{;)-QR2ymE?$aavkqCZV_v)&R zG*`(_X>5o8I2`LRCI8eYbaG`g7!)FzuOzo2trmKjhb=1>L{pnAiUa2aOZj-#`FCDz zyo7fCOVV*;6*Hp2O`^R4&P&4Sa<*BqT}_t<2W;6X$y>?Wb$bT`T}gbRe`}B;Un+y# zPUZ~JUBIqAXcOT4wPr-Nd3|k%2oYvsVeygnyZhn64IIHLs~htQY|tPKzrBr3{25;N z3&$!$9U5r>Hb}ra2VpZ?zoPKyjXvrJ1JPQAbW=7PjduJw6sktr;1^b|YjZfj*QjGI zOD62smIT`V#y3`~ZAcVpG_Wx5hCKRWJ&W&W+xos#$$zz&Hg_jABk{UmChoWQ`ysz; z>o+IX!rY*uUl(4wLhhyT*7pnK<2)%if~NxCU}XnFXHElx!C>TglM5hw2Zy0*_OjWl zLL>eHwCA-TIJ5MH%SwjEWSxW`9tw@N+_ZG18a*V<{fJJD2o#60ID4j>G#BF=p)r@d z;b`OsYyLrS6eyfTEFXAenLWF-t<^D_#$&O!T9bJf1+rj5P@otxaa z=kU5HtFUUA#UW*)bI3no-=)^RPJrWa_ycmKQT;aRJ@xOv*2=iL(7_Dnrv$gv0klc0UdQl@mg%-g)tXq>PH?mbF2zT_x+XVtBQFXPC-BZEaO>At6#eO`1+5~gOF70b z$ig{R#$>gJZWWqM-&dl)$>^+(E0+({$T83o43)4~{}Kwf^ndf@5_O>ff1N2GB^7v`DCi<3u9 zai`C8xHu~1b~FtkjfK0Wr-hrM!7bEtPTzW7k+^S#I9$2ep8c?**#t#P^Y*DI?vwjl z#NF4&-DRxW1?0m!R&?6ur8S_5$YNz<3(^LM?(R(D`42fv*JX4Rhe<38GB`q`=Vr&w z8@8oD?X>gzyb~k*c!QR-;MdDXoBL1FYl<&Kfg(0W8U+QKdh84oak$hgUDm?;2xBX z-u=WR>SgdiAlHPRic~4xJG7u*2CE8XtTNkC6Qe`9Cy1zb%G$tc;L%6c|s_kMN0|Ns~h(AH)d;&V2&bZUv z&Z*q^m!F0L9;Nv9^zJ;z8}W^to*mTSvAUf*9T&%<4!@jPA)O5x3zervv7OVqyY)~f zMSeY0rr0UoJxg@%kPD9Rmg4!#La_DQj@O1n$4;xaKz1i0z)a|IXH)Rzu^oxUgZ05h zo7v`YDr$t0plbG7;2V~?^PzUD8?K;d#NFBI8jb*|#=8g`u+h9M$yt6IH9Yyp7<2hu z$dP$}^6DRzWb5KR8AG}_NATf?hlf2BfEWfxDMBGiRG}rV+^(6IiEi@2_V^MXdue(EE+dLxw*Y)&4N0_pAqU?35pK{<7o?TNkwy=!&s9}Ag(-OsKIEgT7 zf9tvT>({S|=8!j+7(1agqxx`sk3d!08`ElcTdU8coiDAH>l&wAALyb!2wS5$^$@{% zcdWQF`57GjY{UQl`El$?waxO~OX)!HGtrTMaNJ_dR|#V4m20^Gc^@V2Jll|8ryaY7 zdU&0uhf^aY3aUj$Dtc+KWHfRrbV61TOc#v@fm6!bE61hG5!!=c+TdP%4end?nXR;i z%Z7p<%!Flg7W>BoYdyhYfMy#z-1sqP80Xo^su<;9e%ks&*XcW-`U4Yh4vzl5k_Z1o z=+(_XAt;)zXJCcf`jBRGU2E&l*a4gT8Sae1h%}qE8vFQ_hx=kyZEdGCNBuKvg>Kp$ z8@=+zWX!V#QhpBM6d(5|(})c$epMw^{K(N8UTm1rwV}e1uBGUd<_Ox~Ie*%JK!llK zR#zRhRTii2uvaY_&D?2bV}0sT6-SF|&X713eI;ZrN`ug{Ctm!BA&2hl%Y54 z)#A?vhIIqm41Ss8%5KkKVwp|sR+0mvio9iclmT-=`n6FF^1J|NwQcz*u+4TNH80|` z>DJy!4}Oq|a_iTM2OSD%*LQ+MtW7RjF!w%Hdv8)ND=UMYRoC7d{P!#B z$0|dF2A|Jo3H2G&0jisxjNp={GV6j8Xf1d zfu7|1u>*K?Y7i26wlk`G42GQxGP3ZAAY7nhawAjJ`H6#pV}>jGyEYl zlj8jNpfprv69Lb-hP|bdBE33G&E83xE(q27*=T%C#lxpsUzp~rh3&)k)*c+~ZY*r< z?t=@|-e*6hWoaUef9Uu-9=#RZ?D_N@#oe2+rDsc;o@Xd0tc8Y&=f=a^a^PTy&}&mn zky~yi5`mjWbkA~j!+j4*c>=8D5_h*+N@hmHJbjkiqOL9~Ee)JPz|8Nx%5rD;^+Ad+ z?B}(2mB04)zimID)S$G5A2FL~5Zd@s{KB(8!g%1f3e6CYE1J3&KKAVov$f`a3|YSH z9pbNGsa#(_BlF=T#0-C_p{Y`cq6QV5omgC(?bU+xVz#!nJ}>##QdE_cBAeK?rc&q~ z&A$yzU1*js6B@i5P@txpgu*woXchZ|Q;vO>qK0j0Eu}d4imS`VeIzVq$ zBSfm=RF`fnS^C?Z$i2NX*(;Qzm@>V6T2*s^?j5jE75({+jUFuYY1vZi-uQ~3O5h32 z1nz-`M+1xpmyb)+j0Ig|Ct`xG&QydfPt(#(}uh4%vQ)}Ozd4^`{^vZkl@W8mHw)uB-O`48$hvz+5U z;D4e8yM!&qAMZtU=yAK`Ex?I1j|VPRXFhNIty1yS4F{Xt+26gVSf>?l@%I{wqN(^J zP<%-)7bdsm_^xIp%~W=P) z(tyt%oYeNb?Hu(b`x~z2W^F%}s?imZAEMdz3R^zo<|#J=yG}?v>IV+^jG`VlJuM&V zHN#tXio&mzau8m1Y3xvqNG zQh+>46;x%@5}FV4_4W1h(;47Qx0^W>$fur=uigQ#uK!dsaUm$hl}IF}J%n6kp^NIj z4T9uIA^nWvvb#3T*Ge~c)@~tHUR^t9bMKQ6Fh`Fw91w;q2Q;EM9HDGllOJLhtJ5WT zmLbB&>0i<|-Q@zEEXzx$W-d|(`_O6P=!a`!gBuO#SSG%?;j~%`unWKzy75iY10oj@ zB`6>Ox)C@Q{1bQY8tC2bEu^gM`ECj&oaPY0mik(IZ=EK%K{&{n_jUr?Wtd{^;Mttz zOSX+6+rQV=n9y%m}Ief!Ei+IJV$*laFY3C;ZR@ixerX8S)DpwNvs z$%%Ygs(!f%J$&Wy zre>n?{^`?Zi7SdGMLB}SDcIhdJM?6v4Sa554%4OOyVGPatI%-8W^@F(JU7?1{h$}) z+Tl~g;!I!A+;VidH|(m@d|wmVw<+F7B)IX?Xf}?kDJkLAOrlj^USn4;g8$s!i@y*x zG6lWKLHq7iT&J*2ob~I^hlgriCBXdem)ISAsd!w+v}uf=6*>#>ZxHr0-=MaVb$G6J z8qK|pIkoyd_D22v6~VV278N2fo|+$H9iKgW)}~QE;@)ocsZ#ofVCRgFk;bq7E$4o`C`o;Tgpq4|S#|G@iha(ouZrD9)sftnPbI z^5^0$;l7=O$eT8-19c{4{hWn!UkoO*E>+HEP#Ly;y^@kCpEFSmr%MdWau&K!yuDc6 z?QE(P&FxA;BuNh<4C2OL1wBMH~ zE&vW8x@(n2I3~2e~8`U0;vxyIO8EQ#^yA(s6Ta>v-d3{9g6A1I9^@r zK22|y7T*;maE4hvs30HgkmkTOEy(Z>KM>U7xC{)X*$V*nu$gGTFJh1(JqWBHp|jo2 zwz2_~rOkm#;C~BQuAaf2S^WG$`YNU7qH$EE4wP?_suQu8yqc^CV#3)@^9b*TKjE(T z$to8Q8yX$L%WFxRVasXQ?Hv~@TKTfQ!+UFT z#~_Ou>X?i8kF@|O3TR#dH1m&tI0jCR^Ys7kf38hv$QJ#1mttV>P~{?bYe$)L$PE3E zO>sK*lk^wZJz@1UQgH)KxOviP_FpWW4x!(^UvSai!48u={s zowc`q1+!8yL`rA+Za?}OR+@?j5G8c8Tj(hkuC6rZAboO*Ta52an!cAZ6x%hu6&8Rv zw{hl}CUN*CZdXcOC0$B1+@fza_-t0@PPOcKqsa|dxsA+gm3L<_b^k|RIP7!S)ZGko zRH7kBIhhTo9DFz-IddIb6e%R9e>aYyE3+i_&s=K4F%y9BvWM7hU++Y?GF?M)Jeig# zJJ0Z#B8*@;MM@(US*03e9AiaYumpB)ydAp10r#BNG3fIa)h&w0{1GI>qCywI=jS zP3}TahS(PwI!Unfg}c_)DrOY{(coiP^@}z5vFWCFO@#weLJRia4KW2Dcs6 zrw8ddjIIuW6=@P<(iYai5sHT4DYxq3)kGp5j&S@^v%DPtoJfRK%E(d{5-6+Z1af%= z=R952`5B$x950F5lQUwgSb`gKBvmbF@b3fjE6aJTMxYmy2lnw@T-HK8ktnvgYHd4e zO#bu0Ue<-m9t2-l3kWL9IYZ3Zs-cVm@x6A;W!R27+^r{Meo6mtv3VzeWO7mNl5thp z64E#kFC^>=i(P8K@Gmt8_F`%&w6#D@i5WDGfA+VP7(xX#suZoub{s*WqPHtxp&I8AsJF$CsINjN*vN-CR1^S{f zSqPFL)}HTYD{!eCBkss*x*wfCNhwp^=HmkKdisWG1-%Y*0Hs`U4O5>sR);xw&WJ zYVKrqb}|ZYrb&ub!7x7(lZEc&EePogM-$xo&PQep2kU!s!r+>(qxWC_3#5}Mb@^xx zxB`Yp=rvIai^s#wzTk;J#~bfgNrRBQ3?$o)cICjQea6lyTjLp3Rw>=Nv9YUy6`@gJ zT?LCw7X^~;HqfyX+>}y8WykMWqIK`YIKl!yxK5;9&S^hR^$}iASvnCklCs%XdokBa zIrSmqOIq=YDWgmNr6XFLN$*T8w@&pr8W9y=6B(*`doeh|?PeD%uCG!*8}#lJLbbR; z<6l-9D;#qV?R6K;-mtzc$a0R@-`d`efi~ND*V|k}kF0E0G<#C6T)Co)(n0AMvsiX& zEyv;rg{)>NkqpA?DpzuvJSjVm8-BgEnB9lQ!Pmb8m~syH<_ew));68~pR4F=OP3J7-Cm4tHUoZ=;LCFbWdzgqmn{t_jGcu9w>tDz}s^bvpt00V)Eap4={f=E*3f%Y0{6W2$w;UH8zv zY)L6)HfX{D(PjgY;`isj!h#1t6@b{7dSomdqS_p2egZ%-Yh%}jTpbk^r9x`A1NXJ! zhQrBEDdq*{HcG8X{yVNDA(LY(T$A?4G0G%yw7;M}`>Mp4`t~>2$3)xyabV~Dt6H}_ z&Ji2RUXXwIDFF*a3t~H}sX)q8UE1CQvGrwDRa!

_24){~wxI4gXCItB{jTK?Fc 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 UQXB{OF1(^B`%tD_$~55r0K^lEr~m)} diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image041.png b/dox/user_guides/modeling_algos/images/modeling_algos_image041.png index 281438243a51b1d9837e3a48d02bbe5b176828e8..263b4b33786b28d0af78f4ab95df6934c2f2d25d 100644 GIT binary patch literal 7483 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 cSaTqt(2524e>{XBLDyZ literal 10900 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 b$CtF8PT((Rp|#hebubFDsxlQ)CZGNv>%KvR diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image043.png b/dox/user_guides/modeling_algos/images/modeling_algos_image043.png index 31c47f92f705e9f8b9e36168e2610e31ff3503b9..504d71726cf019b0cc7065973db6c24018d52c3b 100644 GIT binary patch literal 15354 zcmeHuWmJ}3*X=Dxh$u*RN_RI%Bi$vXlr++ffRuDM2uOE#OW%M93haG7*Btm{aN(6gFwh2?*hz4hYGA4HB{5&1W=b(Y!(Nxwv+eBT?F zmYUSQI&sZFg{X=YNvNaeJ@t{52bkwIb(3{zUxpy=zE-n&*CE*-*2BShCjDApf z2&Deq<}(Q70~rhg`N|aS4uN#y3ZYeF@A5AWPPfHJpR55=Q#^?7D>?KnA zvTzT9YUnE)_~G@$+}zyw_(%2>s2NAk=y!krpe4gOZMwqW|g3$R;GeJL{}w9$;CItirp+#U;QX z^3<4Ny*fHNFE_`O6yE1`ZWF zX9DO+!`LW+OG`^oUZNkwCM3!T3^|7q3K~=Ag>l0hc)G+KQZXt2b&d!Dpqhtg`SbzjQH=7!#eZOodaSL6E$^o zsx}r!!c&%j{q5OINE*e=&CR8yr9C|ba%`iAhKDsP3^Gz;29tM$fc>?^HvKSTRLuY5 zZLrZA=ShVOehun4K9=25i#pvv3R}(f(#d!%vxO}Q@IHJK5?&HmZuw^Onnr(aPR>A~ z;};tyf3nzEO+3^faE3>%Fh#BQIv6l^BZM7|Cgq(UWRlM46pevoxEHuA33h3mwi zT8MqaFkP`95Zp#v%Pr5(H#>Upj);f=c4gnCWi9tBDJ_+elk@c2`GXzGu;LXk!wT{Z zH-+P<2|L@-ER#zAh657=D;+Cy19=+y^=p`ZTH0{j5j`2CBv=dJohK7uC7j={Dw?5WYih$4h=4Zcko~l5J+QF2x)C?y}Q4! zDn{53gc>sXAE+OlW+aNf*=Ee`J$7eBFO&AwEvo$ zo4M^glAcX?0_VLD+hlv5^V&M;KW^C-PAvgq%SCi^eExrjuE4GYMT|PVB7!n71&iw=l#;U%bPQrz^D*1y;0r<8x`2`;ROq7_y)~=mM^7mWo31K zUedg$f=fW~z0fgff4{W4n%#_(T&zQ9o0L7O8Qpn>ef@0d50zZ3=G*c6Qpcu+uU{c7 zEG#JD2((Bk(tIKO_Ai6D$i+h0w=vnH=)v>gt?x(-0MDfrJEX3k!??$!@n*Mr<_N;+sual)2?aMMZ6G_oM|%MNbq8}$x}T^C}~)58mm zF{)q0$T~ax&*RIC(SnA)_s;1kG&}qIoGJ3pMQiKp4Zy`wQWAD3J^A;q$JOy_nWW@n z((Md~p)awM`ESxJUjy1RO5}eFO^%dO;mHC?FT5?kayo4*r^xqhI6U6{&4P!Q{w;LD z&(9x(itk?{l-T2(xyE)>tXME%Vaerrc_83=sJ9Ls2niVkNl<6VqE+d07!VBJ+1+J7H=3=EXX&^(O-W#&QOay} z8vG-?=fvo77IV48fD_jHT=Xq9_1*3Aqd~)A84{`2Z{h$1bMk`AX8soL4!PSW_Z&96 znnVfEos zB@e3%0mPT16d0keNd%pazP$(|@s=o<7{3uTY;h@TYD#gJwCchcXnj^4$sf@5dwg7U zxTjLV$Y^C*m~pXcEw^;P6kG>;Tj^6f`HC5q_X*+QP+-6K_;^~ZFOvdTc<~@6p-?DI zX83Z0uSnV0&pGRd>#eMmOG5eu4E8bM((n9MpLHZ9^SX?Z+1C8zl9-#Upev|VRj2Ssugk{_v+nx{+kBqoBpn_eGH8`2%Ts%$ zRidzuQI|&WTX_k0*uxS-2H!;Wi>PSmD?Ehd*Vm6}mQ%zOmX_W<+!l;x-mkQK-!5>O z*&|kI-(7Ff_}*L>Y{hEnJiNGh(mwMhm;&;jVs=wDrRr~9SN zxtdR3w6mhHke`E^iI0zOOe8BkHTB=p#{lCO&*AbMw$64YvfS7W)Jn3?=WML3IPg%h z@Q@qfrfn{=OG@^3r%H&0XnA;(CMGTGaj>y%mpK`1<Io3krxlhXRL!(+#aZ7T$5ct+{!4ctE|kMh@dm zEWBL}Ce_u|Wi7Cw6wW%@+atu8?l)PA@URV}TU%SxD)X>i z*Qj0UGvZFG&}(uy_{#89S8#Gt@ktNJ2bv8ILGBzn^`dAqkeIx8SqFtdk= zi3t|wa`fknqZv+g^n_#|JbqWN;fh{5UU z>5>;LVt=0z>=Um_yHx#f{iO9@mPhRLgeP@eQBxCsRX?lzXzRs=i$n%2UBGv#4}p;f zlaPUhW!ZUmvS@po)}L(K6=j9`Ih-h{9=>BUfZY+5mBgovY-ah~ya?k<`8JrcwYJ6q zatsRUw-hJ-#Sxd>c|}GXQhxO}M1q^Z2si)2SY~|`Q>e(vs|vT<&ad}iFHyEVjn<2C z_VqrYZdQC`!$Z{$+^{bzE2|;(+3pTRly0*Z74`Y}@uQg7zhRaR`HY@#UEmV_@8v4D zM=c?i{ky+E7!KY~^y7n9W+f5=VmEEGWApFd%19(Cva*)%2XBu$3^8zN%x?!xabjeC zsvn|~a0DGHgrEx1vZCW*X_n5Pot(TtMO}Aj!oqtgJ~=(TG^_YA`YpzL5TxUu)A^lu z8uzFle4p*XPgbp%&3EVRA~Rz>XtD@MMWeeB_#OX9yGAAu>(iI z@Ox)}yprvCl<^K6B*+a(EQWpmc=QCIai-5uxQG`^kJWhlSDpc9Pp#JlC&NXc7{&biH_Z(NLSRJHb z(TPANvzqJEjbZI6v6t3I_^vA-xC(D~0tFFXP6-R6;dDL(51=kaN5c{z(L1cWXMYQL>)9!L=Q%$@?l@pEr` z`-Xb|RRSDye*PBq?_H8WikBScAxGbeL`bg{CDa&QIwFt*8CmS1^hlgh` zahdn8&mKL4)5$^_mUJ83CtBXTiPP%1t2SG@0~bclB0dF!V~zxVZ`D2jm>3y4Yqf-q ztn5$^nuwmdy3@%&$>7$NCfHV6#@9^77F#`N9{oxwy=Co~zw~q`s{m@>Ibpb(LO(N#xX+k2&zBgZnPar&`)o@zU)M zlaoo^j1}+L=Dq1a>+;j5K~blw`e!hXra&=cH~M%YgHV0GmGJ4hQl(3f#s1znG=%aY zQ_R*lnfHsT$-2C?@ei^#gRIO4c6?{uGMB@JCLxuALu_XpkY4MMn(~{$4XYDVqbYp3 z4{p+Jx2uDL112UWU||L5QHc>t&73tS!45kyF&37|ZQF==2L|$UHa0etKnlkFX;(U~ zx>Qh$1*SDb``-UI*Q5Rrx?$4L)cl#3H@I;c9xhLqRc-U(3s|@A-(8W1lc?9EXtQz^ zGadIAL2)!n2JK$gM)0jpy)9WcD@lI19f4aYE z9TUF2``3FE5Dk^@hRc>blQG@`{Bbp@R!kYtroYFf7#-} zv9YlWS1Hl=X7KRvRqW}i_8G2f)}LFo3=J#P>CuS!CD0|H6*um8kx?$`*UjyPg#+&5 z6vz||402_f*w}66YgBNe=r3Ljv*dV5^R)Sqny!C{gEBG>$uUbaNrqSXcj33M)#_H{l%TX zsomzr#s;yV+wnjQCD!#%z>oZwuxf0WV=*)|L_fc=-$Sgc(l>n5a$UJ<~j1ad9!q%LaZ&Cu<3*#Uw+Yyorpqz48_! z;L3XC(jPqMrvo3?lzBxgd>>GqmlhUA z51LHmE2Oa*_r(ooHrr?W!R5Blm1(A>rv90myFTe}VQb@YGnp(>->ot4AQtgy?a3Ye zo6Oer$UEhUeb`wJJM4J$X)`c1FtA;dsIzkWAI>ezb9H~2KtL`&f<%a)j;`qE&z}X^ zN>H#S^RY|?yl^|a+28i7a0rOAJPw3C-j@pL{O3N_#(1p$WCp%MYSeLo!AiL3Qp zv%C#dR8oLZes-?e^8)te^$xQH`t!Nm#`gB5H){@f;I4pMn6G`IlM_ycjN<|Yf%%<; zaCy${rgk&S&^sX`0b9@vnnMCUBIC#QfL2|ZqD~(g76-C~> ze`L!_@u3vO_;!9D_2_z6`{<0Jufl_$Ws3O@Pgrld?KfymLU3@fGVR&%@ehm8>aN>| zf4$#+eVf&GXA1^tD^p42dOdrtCQxj(TQV$>>4Q|=G3CoNs<(_4B_%!FK@V@9tEj4~ z>gcE#8XnCSPFU7$Y?xBS3?w=$ef;>3)aUNYv0brh(SV3{ca-XYPYtcgCUawh1!;aF zZB3wa-iTxv4t7$!o~o_X#wsCYwOl8J$fcl=hxSdce^DA^9==g`P9sY?cjzC zj1sK=JWj#$>Vn7QV~xN6U2hoaFx1O?FqX=eGP?5$#bR1w>9vb@o{kv?PuB23kbI)_n^Cl-p2q>BrGXuPIR+l_H_>|khW`N_W5y%(~{-a*T1!-;&3KO27hr>g(^_b(_+ zer4_m`I9}ZMMvigh~mP+&nb+5t5mdfbjZ<>5%HaIz{!8OomuFz8_!kQ{K88FYDfT! zN-e*HIyI=Zxoet8ZG(?D2%p@iHxUCPwz_!MuB_&xt)I(LYoZCVqa>hhNc8-%0WT`;i zmxhhMbF7um3*L@zk_mrxbK~LRL4b;wzeL;aa!zn<90_Oq1p<=5ckEEhx|;wrVUtd8 z#WsTuiwOZPF0LeIePAP>i#hWQEay=`I(`1jF-DGx7%*qu*G^E--KNlgd~soB(4iAH zT|fQIaJ?y9w=9!`rmt^f=Tp_y@9gjMwuGSeBD%3P{=IkZdoxj@TD0zmlyBJXMa9K6 zRmH=qe{@stbg?*J3+nUHAgCiAViGMV8C8qCVq{F%Qw~O^5#U6X1b;Cb+|Bky z5YqWLO?yb{>*}V8=R}f)oSs(y{Q0)pKIwzZ+gOkVn)epza&mKXp8(d@+s1|+8F?lZ zGxn6X7<34T4lhAI{8ZIgFxULIk18Mhu-3Pjk@-+9<#=<@z@vJ78q(^gqoDyX2NpJV zMq=V-G-2{{(P#!%G}3a^SFaL=7ri0|wqVZu8RE?hzj1Fy_|e$Mx&|;zGcz+moQCri z0vaQ@bja};VOrVVxksIDo@&vQ4`_f0JTG`LPkwZj18e9&&(Sbski zCGxN`SqQ56pWX3g+Kjd~;(oEqnsq;xOO454>HcF|X!z{E0L)y`KEpj14?@izzl+vp z)TDPcGu5x~&Qm|E{pnnhp2n|1ks!N%dX5n)k*y549^~gf*Vos*y}eHnTjg*`5=ga+ z+|BEH*a{#{WMty22U9viXB>d_Kvchpqa0v~&cI>xHBA6SNMa%ma2rOG%o^5w2_29V zw6tbOA6QK<50$p7o#GbaDs9r-4j1@dym%o+nXOrZ{Lf=mT5eQFL2H!>b-mL|o)t9IjgBpNFlDLUOh=nC8wWA;SElbDUpHr=f{KUEx zX+T5vi*51&%BAI?ejecU&-yw0hb>1B_P0nSnM#r2=_yGK4>8gt*_}VEW22*KV`R2Q zGbVfwr0aBv2?#7-Ktd(Ns0{(l4v!`u_5FL|urV=);QepQIsi-^K-83IRrLLWUJn~S z{F`-Uq#fvRQ&HL|tU(X!c}>LoE~ZQQ+n~wr{yw1mgWnyn6&Oo}R!>h)$0wCQ}yB_>*<_&}bLizAjbbZ?lY=3+Z12hWn^7 zOt#v9`1E;p;VeVFGlM(K69Jcfx9#k?vtj{9K%KN1R4D&CZ$dH5Q(Z1CO?^iuBO?Q9 zp5I*o!QI{Eu108RS*+%Y@}TG7?mh?MzKF>{0@V({ZZFWXqO-D=YfS&OahSLJJl#GJ6jqoF*kkI1r za7n8dE)$MpBtE9ssu;Yxkd~fadQ#HNUi~UK8)s*8>kbb!!-C?98OyqJkWUD>EaPQ3 zb;;1b1)h6z@9xz-7u`O`9YhN21y1-WRDvES%(IP-FBYJ+;h~{@n_oR||67YwZykeL zmNK4}5EZ)B6d4tTmNcB_8Cs1$L0TxNPOkL}AkOM2ktKy(f0M*TPmK3Xrn)6FCYelc zg&5H$Ei0r`H9z>)gmI)WrlR(KFq@q$!YI>}i&V=F*)v~z-b9^O3MejlYpt4>y6B-& zR-AR#1`U5i0=kX?1#*1tMUNI+9qrC6nMiA8VF5VdpGPXk*LUK8KJ>QAkjK&2YaLng zd1;G9%yfI_XrZh77qE8h92~~R8=jXw^a-ymTZB?fUh};?wB?h}l#eWS`1*>A_Y|t+ny}+fxnT1D+8)oz^1YeEuV}TH$WKov8aBjb z)K=Ek9$2*p_}+8$K-beSqG$Cj4UJshpY`?it1CAe)FwNV4jsRDz)%<6*A83&c7OVX zj3_TrP~qe5{CD@)uW#Uh=~#&b1~#hLQ>;f)xs3as``+vnOb+f>vR0Y)#VnZ0pnns4 zQ!r%-i2B?dl842kK9CX@zw{GRQ60q*d*P{F&8JFG2$eW$B2?pZm~mc!n(@`ESBbSX zJjc95iV6y^u8|UCH-;3%0gXAL*IOB` zOGPCm!-Io#jEs6ME;fpaie6rK;rJZWr8;rx>GHx~0N4PL7{Q>a%mfD)|Mg^u)$lfm!~kEwiY^O#fO`{ik3FZq+X=?hK~4De!HbReNx|r zE%-^xDR?x&=vW8uB4q4xHQ%e%V6}otOzH&&jL>xlcS}op_dRw2f%yYt$EqT=g5A*_ z3To-umQRkyX3*rWRr_6!Z$Ux21}wb1$?0(G_PpLpgQZ19DI&hY*OgaSS8bk`qafAZ z97JEk_=rZKDI83fV#J`yc;F9poNDs(`^LtO%uL&2 z^6AOx3rshY6ouV0neUN_0CaxdRe!-D8;AA>L@(&03>Mj`fR+;oV1$=ASJ&5z zR~4(PtH95IIizygsHuTPgInJ;yB--hBu1vE*F033jixu*Ew=}efTz~aa~MDjou#!= znUGMqd3Yc`f6n^DVgOiN2V4qYJM8~*7JbOSd~!ZDY9$g(BCoUAsuecl8~1gH%Vx}( zM;i>|e&zthng%B-a5$S#zPGqPBQ%bnb%`~)*F-N?^P)X0rt-(fwiXT6T3-P#u26=EJ%E_s(lT$v3fk}4%hoK(W4RRnhs16sMa~*qzA!lX z_5#zSdK<83=B>RV9XGoG&GHdN>iZRFmUvoXcE{>X#xMn`AR%c&tDsEr{d;nn5~9yQOMo_#*#@AZev9jTo$QA)O%?Or ze6CY!`wBUsJk^~Gza|6iX24Tu)`6C3;qZT{ZfGN=i0@KsPIp<0 z>ye95LiK)W>9399FgaOkovJ@!vU!QJbRH)XE?Pf2-z~^9;#hH}=982PzX@;wTo5?G zcv?zwSYaeS)zH9BTkJoZZ{z5gl!WVJP61t&SL4!``*V)KV?UH@@6;qx=eca2`yZgZ z_3NytD*AHN?hUA=+-|qeK-~l6X`G-g2^1qw8aD0pYpprS=qK^!Mr zDVFNHfnoN(3CUn{3tZa!w-}6zPCr0B3)nagV}?m1GT3%ke?JW?YxJ|K{#E-#p*m~t zr4N9%f~VaRTzMgA6`uj61XSkUA&ND(FG1!{vUdn2%MHVWN`(a-D9{w*rz^4O%))wFd zLc8s6Y~Up5OxQ*Zm%w~`oD&L*te0G|tTQv2`U_RaOv7sPHn zfNDm7dzLUC7H8a(N8(No^4WXsc{`jGX*oE*uWSn9I4lNt4QO&aHh<$26J6HOZgzKf zLk8mjpB6bTeV%{(*)6jmM-j8aKUOp_lwPU}4Ta{iRZHM=Xx4!m zsv{|J3D+k}kK}`nj;P{FTieF~aq8pJ@qheE^!HgdJ1CMz2RQqpF6w3nt1UsMOoY(`TByLS2frdiKIyH*6I5N%ISj3RaRCO z(3gu-Q(REj%Q)S;NpU%S~5k*jg>C!eFNCP)f2Z4LXOQHQzZbw=WhAI{pvUhNht;B zv!;fFjO^=NRj_9oDmfO4{_ot;Ie?`>PZe|pM|O8Dm6W2kw+p*iHb8Ewx=X={b6@w6 zEUV9iga49oc9zup?>B&qpE*;PBk<#3eQ8-)SNnE(zJ%{qy1xFm{}(zJ#y3urp(0Nm zH~#tOnz<~xgp^btpnyThVdGpZ3zr;OdzjxMk@8l~-F$m-Nh0VLg5%m&>Y2;YsN`X4 z3drY;Y;mLtE&UfL1hX2%yeLV-=NA_w+}6oSNw{iC^oKU=-$9wpx204u3uFyd{Um?_ zH1s+NJfGTy4UQ>g3E%g|VF&|frN%5hH41e|FfN4!Tz)SpFfHCowk7nG4VyK&)qr8V?)_blk3w0 z(27injphH^pjM)h62PE%Ad9+PuB@Yzt$tWqUQQtFbrl~%N66C}QRv75q=XXzK%M9Z zHD(8}YVCx!asJE<)9qePyWQ*0&(NKUR#n4_k>TMQs|@-!YS?y*z8_f#;Ky>Mqe%E1 ze%91X^z^Jfh%98aT58D1AR|citC~!@dwP0$cvRo(k-_ky{7ZCivO4#c!2t?0FQ1DI zg@Iej$Hz~bvHm3VEESr&=z_q$D|~G-W}cOS$G(1}lyLiK|Ck#k%+J6c3zut5C!wEJ zspW?aHLC&MG*FxvhRZTNGt>X;7wV?u(ttY*$WMT@klWT+Mpia|`O;S7yHRxt3$> z(`b4!6gorKsP7lve1D5ZB;peu-VD@$%(|7V?Ch~)TWUsM0nMHPe2@d>m>=!XraCY< zSQ=?mK6xm1*YXH(y&?Ko+X?SABDsP43z*gS>ABGeHqQ z(c1&D3gJfrWZVVF+@IvvgjB7p_9k8odwY46mc&QkV?wuJW9ip_4|-~n3@Wk!J;y~! zlY6+*6#(3eD%W;SZ5Z9zR(dlX9Q5#50DN{5x+e$$#K#UbMa9Urh*m-Z0)KyhBA?A` zuZQyL)0l>c_`w_o1_nmMf|*glmoYLx54AhlK!%*t+R8}&(H-D8rnCmsOX7ze8c$h~ zyW=S>1Id*pu*(Kz+SdDv`TP6(H*S%Eo@u3g7N`a{@?%64)IS6tuEp zM4t{lcXuDk7{WF58duE=kBoDFOXI8sctp#(-A+IF{z&2$&xOU09~=GNzp!Qw*kK16 zO7+lcfEcL7N9AA8qMYym|ExVm|*y2U}o;>z0~Cz~Rh}G_hP!P8|4MK|w)9#Zkx`N~uVq_loH? z7wXE-%V9sz#Io(Te`nuUSdwd1XxmEOTwgP3SANy&ncIsQ92^Avw`vh5FYoM);r-oR zz3pOZW+n+1*80{~gUf;Lmj3a{_1(x(dzzv06Tzl3?uo^?us~C#z3}LQFs!k7x$GG9sUqG)m2QLV@qn^tihTfCG{72LVj7@QQr=@ak5+U;>BS-{fCDFvrfQ{%{LUQ}B< zSuIN?EW8xq2P#?$bE!jcQa++xfP=!o#9TD!x=xhH83*he1?d#SZaGWX{fam}S|$}x zocr$yHX>{$&{6^g;t@734;NQne!gl`lC_J=G{~v!?CdW4vtPg+4I(mB!oP(7JDHXd z#qQ_lDM$^|Q&W=Y&y5L=bmklE3{_4%^_Y|V2LWRQbSa<+G36xak0OmK%zX`900{AC zivh`8Ru&OcV72^kFL{LhrD@^UuV1s;O`coV1BE4pg=EN|fZ7@WO~gfaa~YWs!rW)AwZ&yxrE)Q!xwiiR^+(s06{31Gnsg0ghW4tKP)#)19@)0qSC61+zToi4P= z-7-Ku{lVP4Kp%XnxVX7FKVM3%WYwVwBNT+O%v)8t5A9vbB~!XKZL)cqB^qABzM3ZM ztxYid%UB9@XJ`;Kz;7GqFbN{SoP;&6Cx3>b+K1bXB*V<I14DNeK!0OkO$)3OGqsT7Sl5|3YIy6B5*PfU4I&jrwdmHTUJ` zgCvzPwF8jED3FIwzsH~Ixp4;-8NziikmbRGVc@()K+h2fNXak1{ZK@4{$YeNPX;qm zPHrpib>Yt_uRHMl{*8RT5LKmL7o^KltC?~x9-cMA7ll!b$zb{*tk9SVNZh~9S(A8$ zvO{P@ZCEScZTcCr)=A+1#?5&RU@^S(r`2MdA7l>YuT_wEfP6lHtx*DBnaDDriwVf^ zPySPn{%XK!LwXVyE6^sH%l+vppDh3w9 z2ZJw70OcMko(^m8%nYsy(rcjp*LoMqUis28zz>X#bV@4cpxVArK?1EJ_!+je5vkla zCAvRwtBr;#KlT8HsJ(4x5qPC4&^qH3zCtVq-{&>Wk6 z%gf7a)`z0g8$8baq<{pEPlC_60!cHX_~bJL@c2k&ap1=Re>yNz6T<(449pUc%Eq%n zECZe~fq@PB{}hS+{h}=3FLA*H1hQ=WI08yOM1dUkRaZGDd#VMv7LXCtzPeW?;}s6{^iZ<0q9X___z!P@iJq(5+hsts0-+s~ zUxV|WCUa8B_~(I+a=j*Y9-f&*n!es%Pz<}?3zG5hxNZz3v@H$z-xU-V76Qif^$pqA z?@u!yV%f@M=qvCJujs*)3}|ug*;lLR=%lnMxdX1Q#S`F3AWb9YbNF?F1RoD}E(<$9 zKL?XX4oz3d>HYKbA84^6iTGksRLtMJdBXY^^yO4Ai`H26H5!?HVE!O!=Qu>+luLRwG7+=vj^~4s$S#oEsYg`#s?M%cx==4n4>~M$T}VtU6-+Oa9mtn zMPN{lL>bS`6!Yem7EnBV0L|F6G|)|%1+M`acWZMqHs%Eu@EC%X6E{lf$X_|4!62pN zfDtNS4_q7^-9vky8Ok5Q`O+d|-rx)eMQUqn&r*q7Phu83=ouMneV*iX;I7;g1S2q@ z?%1ELS`Rb=XTE__{dfYA1WrTpU%XOTY}yItq27_<@j1M0;tgT$W!-SNo~<$-94@Ug z?w68~h@R(Rnz1(_ShU7a%pGsN*)16pgvmQPa^S1i14f=uz{MK;kmAVm9c+{3RwgkX z;c4#3#?8$QIZzA;T)a%`fmjCIdS2e%JKE%>m6g%y#*}t~fIEy%(jZ@IgAEzDQ!LnFHx2J;nA$DjiSvjRY-Df>-W_ob>c4m)sW5Zed@2 zlmRy?C?w?V?X7}{`Q-k;F$j*%Um&PKZom;XgD83_LHsoW7}uDQMFj}pgI^H_6~b2% zv!i_;GhziA>kF?)+JG0VMqoS&j=R)Sbn+Q02^fz8z1tqp={&tnNiP9$`1HHv9x#*! zsyQ&cv=%ZT*9_p_AJa!($TOX0 zAx|Y1>I@i1`}61Dk_HpV5bxfA4+y&^(1MjIzhXz5?KTBOjz3*{dwU2!q*!$GSs1Ug z2FO;=lu5zgKE*jug}uJ3m!5p~8<`zVyI%!7pAI`Y>1sfS=mUp{Kvc^CnGmx5G6iYh zbfy?bf*1mBysuNXKvDy8^4eNJA-oX;Oqyi?(FQ?8+k^Bw8&-&v7?@kr%t2K_>IAbx zkk{bh(scitXPw|UpGG(3hrwVcV4D8_NGIC=)AXw5iaqZmY1B_wL9dQiiU=Uj*gCjfq{vMiG_uQjg5_igM*8Ui-(7YkB?74KtM=HNJK>R`}c2RVqy{! z5>ir9GBPr9a&ig^3Q9^!Dk>^!YHAu98d_RfIyyRfdU^&121Z6kCMG6kW@Z)^7FJeP zHa0ePc6JU94o*%^E-o%^Zf+hP9$sEvK0ZEvetrP~0YO1QAt51QVPO#w5m8Z5F)=Z5 zad8O=2}wyw001B*B_%B_Eh8f%D=RA}Cnqm2ub`lysHmuC#4Z(v|xXlQ6;WMph?Y+_D3@8ICz=;-L=gwv|=H~A1?&0C_=g%Kc zPfsr|FK=&eA0HoIU*Erf|N8m)`TP3^1Ox;I1_lKM1qTO*goK2KhK7ZOg@=bnL_|bJ zMn*+NMMp=+#KgqL#>U0P#mC1dBqSszCMG2%B_}7Rq@<*#rlzH(rKhK7WMpJ!W@cq& zWoKvS%)Y6ciK|78Vs16&Dwml$4Z~mX?*30fE5s^74v`ipt8$s;a8$ z>gt-Bn%dghy1Kgh`uc{3hQ`LmrlzLm=H`}`me$tRwzjtR_V$jBj?T``uCA``?(UwR zp5ETxzP`Tx{{Dae{tXNa3=R$s4Gj$s508wDjE;_ujg5_uk55cYOioTtO-)TtPtVNE z%+Aiv&CSiv&o3-2EG{lCEiElCFR!eutgf!Et*x!EuWxK@Y;JCDZEbCDZ}05v?C$RF z?d|RF?;ji-93CDX9UUDXAD^6@oSvSZot>SZpI=;DTwY#YU0q#YU*Fu^+}_^a-QC^a z-#4mEBh_yfvJ3R$Mj*1%82qn6hipjwo7>B`E`MOfVlBIjUSzN zPK~}UwqpE{{Oblu7g|4GC~>{%G_~=@ZT0+!jhYq-x6>^IbE5Y{Dop`j0U+yFE(94w z9ReyEp2?n=u3Qg{6@nzJha-Ck?tcZ86@*}E2B9*6D4bp^6shYCSTaqEH2udygez6K zc9z96kqQ+xTaYLq_HVDVbMgaP*+?J-wQ6Ck;7@SMG-K{m;~}(#hzAN|c|~#;9;L*x zkp_9SAUIirq6A=%3K2vV45ht_gkL$BS`carRpI{@74|HY0z~49dwzL{xCUVJedWnE zeOGyhO~9d}998m@Q=xEzHGQ|aCufxsB$j5)Z5%9pP0T}EtND)^ZFy#6-=&Hdj3m^S zyi4Ie`nP8ShlB2115C{_(jsj+#tQ%cHm)53ROGCiJKUURzVFX#@93e;UbU(2l&D$k zV$v8|1R&=$0ARJzW@9kf0^nhW&`7P{4Ug$twEh!%mPAC!EyctSKD5V@=MW;=oVNFy zW?lD>ce&xgedcSh*%|6_9@LgoDNP;~u^5u|as^6A6V`Gj7%Kk;GZRXRmq9Ts!(Uv=DpD!-|1s->F=Y)#O3@#CsSH zx$FF|iDUL?466q-O75Zq`ta9MY2D->1HqM@*|J?T+iT!6Qu{uEnQ)9AA~TPxZqgoZ};t zq|_nbR-#KR&zjqDF&C4ck;`#GjEj2~dQo-Llmp6MA4iiQHq57#TnJ+*wRBB0!t27p z)Swa#LD$KsQBQCg9>C6t7hzJo7#zL@XANcquJRsq3r8XVxObW*kSm9{Ov ze4J7qV#i?mk-jL8$~vq{_+IE`33!qySS3HHU6Q^O^H1M(Zq{C!0+50l?}8uO(wvYoYQHrM#y3@<#{V zlwOoMfiM&@oomQ0f+a@1#6>-5W_NuDH1b4JwgB!sN>*FjTV=LWD_|Nd?XiGKR;O6i zW$KX^p}g#IRtEM_ppRdb1&{N<@if$QtnpJ)>Q|$q`^JY}12k^M%304hC&f;&!hb@*JO%b!>QA4wfkKM@mIx z9S0kpj+&DMV-=;at)t?$WnedvJ20_pIhH|6yec>U^R>{QdZC;IQahOhvJ{DjTMB2MEhT28fL7VrWOkEF4a(<5>o15EhLHvH{ zSVu364qEv6FkL9Uy{!fFz}Qn-Yp?a~it(o~z4WYXe*X__R+p4&fdwwxylSz`5*Q(% z;xPASP4b7cpqg)q_q2c&;m^~!26Drg@CuJUTScRY0jCl7r2yQOLFZh8vzjFppwGVY zlM7CP8lD<$cK8M^-t@@}L1sIaV1P-OaP89FAZw2?pux?@;Dl*+SRRlfIZC-}w*8cV zxQtK&;=ahoCxY+Y!~VP^m1vFX^HzGN+(%PJuMsX{;yye*_rZ{hZmb5JPc809w1+2? zAEF!3im_t~?<@6*_jb!VM&OhA89bDX9i3%rb&A@8ZId0YfR-7mUWTa|b&?Yb43ky! zo?D?J_@6l*K zL3&=fG;K&-p|xPARSPq?Y-0#-9#!aN!+a`8IE?>gZ0hZX8{J$`fAXG5q&H`#5VM); zZ@z`S8Rbgv#AsR7y1CN}z7L+CyB|>!EscjtHMa6Ti#6I(PIO)ys+A^kM0=NCopBbh zW4X&CzgZQ_tA5m^VdELu*a$9S{hG+q{};4eDC8g0`1VAhG_X19R$qr>vYWAtRvYr{p*SmC*%xncLnf z=}v^xSaa{K4eT`8Jm;?i$Vw29e6MuXS)5TnEgN1BbxkOSePIwsn_Xyv#Iy&zHC#yB;`~< zX~OETw+EYbo2GMZK&>{?>~&P!-*nM;MyJpSNXseb^Cj3%xK#5tQB}(7@spi?Vm5F~ zz0hOTnk(!q%sH!#LvA!)IIktU;p}lACvi<0G=%$ME)Vr#q&>w2 z^L0uMZ?xYR)r3(swbe!pE9ViRF?aTGn;G~rx0GBxP#91#cegtU&w4z6aJB1D>e^Rs zlbw;nwRg}VCM<2_SDqJoHlSECJ}5;mM+DLE+e;vkdqSNB9jb6RWMnpy}o+c2!s@un*4RSbhT>vrt{DOnrl7B z_1;Exxab81LAB8njI6<84=PH&+#2)aM2Cpb#Y!HOygP0@dJA?k%k=4ZHpa-l@`AN0+NYez$eJk%Dw4y0>}cWKvVjOo6M4Pz z@v4nEdpI@smYsyjZ%+l=V4Sk7p6U&=3l1jck<*`lP(dG&!KNgq-9uj>0_Jw~%r1gW z%UD0Zd3BT#783dp(Y0TcV%8R6wc0eWpig(aof#PMO z^H7k&$*D|VGb-dGD65=+-0?QFEbntAdTJNk8?tww_>2#oggF>=G?n<}A=M`D9 zOIV~+x7th)iH|q;yuaBF%rNV4BNwzM=VEr-jX?V;hXV2M7&;^hkuw_*Fx zaT!EVfz?7r`YPXByi90(75wp@UA-7>Ms3V6C?lc%a1NGw4MGs0*;kZJA} z*Im1iMqz`8+wAfq$r72*a&O!yr}L2-ZDqCy#U;{X3Qv45%&MiBzIzY+5=h7owQL*mjM% zbIvE9PTe9u7P?_<>g+W&?#ljY(s)6m=9FovF3sceY!51nB06yzVv<{sY&x z_Drt6bh~(3Nu9{(K}tg5#-+0dI-<`x+dv^z0CzPGbvv^CJlZS!8JL<4nis2F8V;u1 zLxoab_viiW{ivu{e11uM67|5#afK{ef9mL?0KXH1`oEuU} zf)n7B1;pmG8}?%V^&ao61d-g_n|<`N2?`61TO9?g7YkLcaRNNML(2KV79LFt`D6~t z8udT1q^I-|`aN8A%6MF{Huo$bG$ZY}(_rGtJ#;jWVLPl`+m6Tg6KuODdL%|Kh=oF( zMyG&jM4n8yR?)wgr-;wE%JVElDCUt)G$kh`fhpC32B^Q?4qppw+$xqGNn(1gSUQSd zbC`+P7k#j_y=C~?+vDcT`*Q*52?(F%TV6T67{hc-&H{N#gfI5!8FdaH<}GUFZPw~!kL^xrhnuHDgk)}@g}=g&Er zewTACJpT$Tc_aKdGOF_9eq-{r9fU08x@e> z<$_e0px#L_w*HV0%H+*+0`by!e#*p&{9L~~O5^ceO}AZgwVtURoDSe@BRns)9B=uQ z!^q!u$IjzAw=lXOe6c&1^CugA*<~->)dhS~z|r9%X{VJ_qe=T=dTqSUaY(hP5XdmA zYA?`Eaa#o|TcISNyl=Bq;>5laZ<~3X?N9hh#8==pZKR5@EL?p_)YaZ5Pe4>r}V zWRCxRv*zjak@!;BQ$lWOK9k#1s7$}$qh@0#9WE%ndT1)t6f03h3pzGg>GgU=-TdsY z22Q#|;crH$`dm?-T<9(?9ogTsRcW=J#l^GI>A4tUPGErDq_YfyxcI&)* zfFQKlP>n)!n^i5dHnS}zez49t9>4wQD+9SXWF0ZSb5?e(0R>Z#M*o2oYqq@-a^IW9 z-}@`06J2Toq4hMYBB29Ik7>hWBiU}5gx0?CK&)>#8_RubpyaKPUUDRGxyL->gB4$g z?E%sTlk?(*JM;9Mv&uiR({ISS5Up(Q0D*1ry8OnSFR={0tw+U4<2Od9Cm+6Z&a#X; zW7XuH?L-?LucrVkQ$*nlt46@5^?tbmA?6MR-qBk)T9*5~u1+3nxLB{KDAR8k?M8fg zi|dN$MX*&qz)!86eu#Io|uNR==u;Y=ToF(NI5bg0}c(D zi3L*&?p|l|peI+)WcaIv{E4w{yl!8V=T8U!zs z6q!Gr*@&a4IYbRkd(9k<7CL!f!UlBJgO)3KMX}qJ@P(^DHi-CjHO{63c5A$b_VS{6 zfq};+*azpDIu#9yO01y$!H~xYjPIr#`aV6eLPJU{H>mlfXT5^>(EHO;u#B4{7z6vYmwk6VffU^qB^QY@&O41Z9OLte_(tG}i z!MPs+zhO%sdU42pOrz~6)@&wrsP3-*3p;fw?s}fw1DA>HpMQz_0#KTLvB)+Sg$^!BN6UvlbshAE<9={Q^s}3*JlO(0ix3H2MG2nfCGb8_+slrT zh&a34kYqqhxS7Hz)J_%*qCzG<)AAnV=h3Kjfc1^z*{=`h7L>Ub$;K2ARI0uj6Qz2F z0mqHLo4A}%VD$XP__p2K;Y{p5PhcNa&$1FfibDzJ2rcxd>&MQ#)yoRRNsudArlFV` zN)yCr)n5tgwyCUW0TVg;6+!!u-W=Bm(f9A`#tF~dsT1ipU)p}{4$B>l9b@}tIU`rE zMTET=4K@GH%gs((xX9X;oVTxtvf(V2dDeY;lgJU8dqK)0xi~^XGtx)E`NNky&9l7^ z*Mqp-x_plkaV?gg<(GRe>s4+kH8Fg8``5dvKA$&&J~NCpT$9nKvUJ3vI>6Tf)(YT` zb>wcFUyCMQ(_6%dTb^XHI$E88rh6%*gUb1i^T+%)NANCHC?hY0P!Y3~;EDbV9PcDC z+yom;ensUcE(y5D+%yKnAN6gxjvD;l!32DN-5B|bbO{QSCQkiReCeXMw{=qBkOyyq zA!j8l#$St{8XVZ%lm3-1d4y3LDvU`8r@XliFvLsq8e{s|Zrx&rJ?H@ZngXLt$V_6B zDD~tQbiKoaUzLGt!K2@OYcFWol5MSx-RiM@Xk~tlg^vC7$blPW1#0+|!uyPC{hFdM z;WqDxk$Ys=LRS508B5H>AM^M&>RBE4hgP3Bcv1`WJ~t`u$ZH}D`utD0aJh(c{6_i| zjH-7T7K7%-IR{};P~648nitMa25WrVt!FjbwY-ztsA0o@ww*C;E!b}(N5{KaPnWuF z_q`{c`OStTai+ILdc{Lj=q@}R+;>O%dIt|XlP_}i)5s|PnvEKp$DC3}Rk|Iuzb97i zoH|KHLKMhhpC&imbQNs_)|gk2V}tRX$Z}Fsqg^ULzh1R{LMJA_stUVfUOS)(;+{DI z{^m^j08{YW8@3_&z}m$d{6gb+Q*z>^JsCcuqt&p71r|xF;oFn{?pJwu9Hm{{<|tB( ziIJVq6qbYaKCs6e0&Ve%tJ16MOcN`0c(9~4qu0>YW;duvPSMnk-v(@nvnRY>&+H)U-ico9Ty1&W9XM z(O)gWTfNB&(6&_HI6?)Y*EvLw|HaCy{_dQNr42*6UkD4jopd-Vc!~JB^W7{U%@u*FcnI)7)u6Oc&BCFB_6pL$P zIj;XzR*aXMMBu5~PS5{KsTKFW%7@=Tk!iEL6Xz~EtKBb5_<3vF*U0X4rQTUq=7rh{ zfgR?=Jps!i(*%EaXhz1kvOb5Kn0!~|KoPkI^`g#6E(k*0flUm#76u zbmo-oyUyJkH5b{+72|)+>Uu@E27ES;y?f&E1QOIO0{_mD6E*J{A06?`MJ#P`Hs0fH zuAWy<{o2TMhay@aI-tFJH8&BVo>V!b5jbcEC5pc2VFha+cM<}}E zd@}fK&hk@1gOnLSmZUXqrCsCvf?kh*Jzaa}OBuz!Q{304Oq|1JwQ?*bkuG92fDwg2 z7S52pSJ@mYW7qabEaKn>JYde&OZ$}Rp^HVolgdLTfZ7+ zKESjnl$ZC&gl}xH1Vw3nke`Y%u7FH9-*uB z*{4k?f@s}mhfF#wG-R4VHL0w&zQ_sLIlAKFxek?H5ZV1rOI{*3il1FrH{-+l9g&IW zlLT=>c?3rfE1Q0a6+h&L2t+oAxXA2{aqj>qA4nlE6b{b4If>Z)i~kwUwBaX=z7E;n z`47dRS>aRP2iv)3@@%&NuI+7j@-(mj_k}q)Dq^GjH|ovoQ25?-WE652@5TEowKCSj zUU7e$nh4aUJr^0)*A1 z)|X*yo;8BZY?K1S*zjEMQW=|c#gXm58lyv9mMVu6+%XS44qsh^bh%rkGF}{1`1loU|KC`Zl5$QKIKeM{!ud>_Ow$; zj*7=dua3M}iInqsSI$Q6CA*ZT{|+iKWL9Gz802hChWw;z{j3n5OPF;=wrjARcDhWC zQ*Gnk4ex9_h0N+9FwJRU;VhWH!3wM%MtLZj3hPtmaRGnfU`S!fx`m1I?B<-5bpykTB1c3I zs5k0=ay$KecX7G1q-~fcKHy22lz^?eL_91+rG(pBok7s->P=#HFp?Gs*e2>oqXL`~ zypZoSD_x{If4m_$jt(xbfzwJmh*5V#+HLoom5Xgcf}iGR9~QL!A(4oaAD2yT(jY&P zA}X>R9PDUc*>~P-8YguTiW=I7LbZOqAPG23mgb8qehC{TWC+z83sx;KCjE{mnn0koBB%!g@sS`5X~ra#ByXWi|2WrA&DCpSz*{hZ`sk z!HBtcCL&)sl(41{nYfLFbw6Lf$|m-hYM-P`%(mbhf_Ls}l~q{rDTTZTXG{W_MRtjJ z%m~3+d`r6M)XKEkOBu04G1LmXUGZZzE+Bh4*FGuKF7K3)+xOfl7z$5qxPE*M>Oh#= zbuz$``V5yr!4sbxbT5mjl5P_$L4@iy!CY$n8IC_F<#ZNjMc^T+<}9EW?aZqwB+AZM zcU}$uvfQ6KY9q0VdK+igyo9Ip(NofF1-bI zVOM(oQY@V*R1o#ONTK8Qx@K~o!E5dw)tESR@jWwcGD(9GzA_Xfnvbm(euy_V{Y+kd zNa?T#wi;wvN7+CG-;^9BjrB9^XKvS1i#|(U?@2kZMHMu95P$I`cMn)bBF`AZz_(J1 zsO)Jlrs}wM!=X7_T=NV)(KVg7W1(|=hp=gIjdhvl=WP>2SMb~+`0{(G}=S{Vt-B*t8dH$SJ*+{cv{W%vwdnAHlYW9t+=B{ZiMstxd-x1 zw@uh#7Yck%t#}1%`FTaJibVOC+5kINnef2>O8XOu_jZU zXWbQ>r}tMrtn_+Ypb>46;i6XkR$a1fOVroL*)BmnG)yz1&uL;=r*)ox7Qs2Wq?O|L)3cgOSqFt+j-Se^3gfUrjqd|&t+ z{5aRG1nhN9l8UqgOMQb#=a8wp%qcJiKJr9;j+b*65nVnS0J4tS>BL14Rcs$}_2(SJ zquLi2Jin98R283^+78mJEyL*U2z*~k{^C=Y)A8xUrJJ~bkdrVfG5`xz^D=cBKpF2} zw(pbRWUEKtJ4O>gZO46@1Gw_``y-N5$cpe`E|6rHd`6ugSRT*Hx}Z@|uDgBi_XM1S z3jYr3c=b$BZwkx~WxVNrJWH?=kmJL1{26n=nI5n*hU6fy%h>}W$d-wrAgGd0v_-=T zhKw{1MnyM+ZP+US(6W3Im+%5a|%(XvtA zt4MVTNMRCSHN}*!_rHO^1Pu}_FuT3WeC0>q?&o~Kh;{_cNZvzoDO`+xFrXYlXF0!q z`M2tMTL=%R3C}f}UWgpAlti!_f3yqI;u97@tM%!e;4(3^Jy6Ev%{Wiy(AYn`8XAVRgs3CdFD8x&XV`44dJXjkAGjgK2ex&BwsK&=^{tF#V+=XTh z{L!(vE=>DEWYsF{mtUYUt`h~TZ39OAu?gXjzy#NM>SK`Z^d_rkQ1ArH0LO$I}`z&UUX0DqGv1X>Kp;!e=IV5r|DACtB=2 z@U*?>0x(p%NZL2}&ruF#*fO4DiepEQVZG%>HfUUg#GrgqgLedP^Fi(RfyH5)$C!V<8PAUky{TSE-^0?{f*C}US+KoE=cwt;A!l3hxrln6G6 zt~IR9F}}X_pg}ie-uSQr@RP68PY<9glXz~>xOkD>61}5VnxmFa$q?7Vtkm- ze;N<*`Evh=$VlOky>ldL=pp8M_fz{*PjDy94C=r+k+7d&t7ka9S!aIVfmlF)h>_ff zPoHHB63bX%>}fGm5uA=9AkRZ+I`$}ace(GNG<#Gi7Lee32~U?eAx_cL=#bSTjclEA z_Q8HxO065$L5e>5ylcp9<#RU6@i_5xc`Q9s?3tq|sm8D<{@cUjA3n~)b93XNK`Ssn zh%!Je?cYIkdXIE5<9Uu+$@JtXz8i^PYA6z^rN)c;J`>$1YJk0ZcdO;xXdbbgxTse~ za8fh??>{#Ai!&jwAtn;L^a7S<9{+w4?GVbCj=JNeD3f=Ttgc-;_N!3aXxpRjJD=vi z2~wu%{wxrSON7ibHuWqheSp*}6x`n$+PzkBHple$@#__~2K_3_-(3uJ-o3lpg6^Qp z**&h2kqzGP@}u|RXl|$pg!~n6eNlkY0w)L;66?N{>4_;h1Y_|kCK%c+;akvW=c|j2 zN&zZddBWGc7m@umH~b=DZ6H*O3oF^5ga7((R(b>Y$de@2&+04}aal$rz5d6q#B!4N zoR#170ioUl7J|waj(qM`TghH*}YtD!mj!C*$uATLb~U&llMC4 zKvI&Q25N_sQbG2--4F)vSHIS=TL^(Kg4FAo8H%%7g-_!dE?8n6)!m=@=#sV%{MyHO zuk_^n~<(c~LAZC2G^;ZQ)I)(8Cyu+UW%|{Ws*J~H)i4)aCTyK4yfmWF` z4>ft0^tO9?yi-c8Oth>Pli>s%cwYbWEgJPkdmq*UynNx(s3V$a_3nRz5<+PDv6%xW zP4CH5F6LfZHcF{SCuy}U#+34Sxd(AHkAVj6+*3Eo-}8+3$&IV#75LI9pI{PQl>fWQ zAZWJ(MlOC)%@J%(geTyxM%eRA8bAJ@hG^?L9K4u*G z)@=UQVME?-I(W3P)8&rsjWQIRT6{lh(q&D`KcbJO!Z-kY-`gEpe zixtm;V803#-5Ej75v}w(#?k3=AYJst*COJ=l>$Qok&!zXrxIMF!&`NAhm%#fv3%az z-#Z@zB#7|ix8)noEN8l`Sqj-?qPfx}1U??Orwf)?zwm$*uE?v?!}b1+-7H{>V=Tjw2uFm}bJ`NO%(}lU-0Y zz32%e4&`Qu!^5Ja^Gd{wJxW@4SA!FL#&iCy6)?j!3@wo@nwZ2hK?c~bR#v2fHKTcv zUr}Pjh_8ZNpu6>d8DM%shX;BouI;}-aBRpKjnJF35i)sTD+1!T(L+;E`?CjBPyH8& z)^5O{<#upo22o*><0#Zn*2dlERuS^#XmAIY{3re=L=J5mAO3vb_Z!O5oR!Tb_J7;+ zzMg`BVSD!qlZsBC!Mu8Zqmi1Jlh?G?nE8+1_9(GBi;8sx4Ii@z?q>U|bMKIM1zcBha|FWB8xkvbZqvA;A=<^)Wvjm1Fwb)x!(pP)Jvv=N#GGI*HH+whwf@R zwyNxb4WEY!pUi7Zyg%O%XsS4Z6I$21@4#K#KlsjL?262OXSLmZaJ$jbs5>es)^ZL7 z%Ea=zojtbJM=a54zYxrR(BZ>Od~j5XH>Afeg-WXyyo}u~ZBQT&Sj>T`wUZpzq*$HA0C*$Gky_<2pWx| zT`>Rx7$hUVw+a{0>L-nkgoyqWAlW3;CHnJO`G;1}*8tl~$VAy_r4~qGgNFD$ZcZ~afq0ov`>HaBlKs%CWBF$frPRqu_ z&tSnIkAyD|i3+8HBoC$i0t^;@W+H!P{s?9;*g$LR7eMoBB1$uc?4Fmd5XY=F4p%jkxz%DkO$ zml#NKg77M4gQ#-Vb3x*LH-T!>!Ha!SnV&q$+I9atS$wJ6an@A98(ID(3T;NYSY;u7rQ*BS zp73Z0L|LBH*4ju#q57zS zcF@_LZcLr(tfaD~=g-!=rz4lFPIi+LXj?bILGVLXrjj)WWTHI$0j&&|sgEj!xU5*}EKL z8!+S0{9jw7ut@ijDZG{F>l{g<+x!GU7R|`eLpnvmYn~TX3oCRStv#zVrJMw2jy^!! z=;}6Ek+2y1pb{lJ^aUjw=9i@6C)So`Bf>U+a{Mt|x2P@x6)JS{i!b!Ta_JYbbmwG! z{WM*oix!@}=&Y3yxDmQr!XsC1i(~0zPdJd|pr^s@^9}nzr*e;pb9-D! zCNEEk-AGd$kLf~ZGagB}W3onq5+>zPi$^6DN7UuQX0+sTvh(ZFMYD5^|D)dSV|QKg z*1_=+>R|B6j%Mgj<}75l9_hJzlu@a(iN(qJ)!?R0o6o0F@aaY~MwQX9U_-{%?cZIh zz|n9s0wXykJ9@kws<4D+vCVno^d@(zNX-W+mWforMI;J!gAT_gW(nZocNAmfH0(Nl zxxr)4e(>_RaK#nNm-8yFU%29X{10&W!s17YRrY^HU~2t~C}D`!GKqJl(4H90?Z$k< zrXqMwauilK%JC!=;Jt&VC+<~sz&)11Q5S^mID&s=f+^5NI;l>q#nIHSoRke}GWiaR zI)(KeM^)vSa4z4{fQ6cYqo13`%_+wQN@nL1I-xe29nUjSc48jF^XPI(^0_DGA~Pvi z!UrdJS6+5IfP>H~*2}qy1*YKWs?GL~3CZmtqoXe?{4;8wkFeDbf^40Zf(rkz566nC ziJW$)EU+^-B{i*Wpm_J-5VP$~hd9wi9+9)bEH))B;XD?b2k@}Q;)IB?%CHw<0utp} zLrITynAYHJfw(g)WsVU|cJO8(sG z>st^=({D3x;)MSjmtXz|W7?aLAU@yLWnD01`d82+9p*KiJm z2goTV8tFu$&RNi`N{7&j*}L7W{6az+h9Y?b#!wE_1_I=)5RrU8->Ai{GF=ow^8^zf z#sP0IZ{91L4Q~3~uN7=DH0PorV}bZjxEJ{{6;Npqlp`#X*~AsiMNH=^X%J!pg54t* z3`}h0ZOasgfo{G%z2-?IUhGY$?~Pm4X73>XBH6fHoXaNNOAvC#BF{hV1QnB5O5Wa& zAdAn_TvLk4AsCkDl%$=|UdUO{vwTnuKMO>>#Zr-P-LXv^x|-r6>j8p>fnQ0TqPFS5 zJ$t+XJ&5o)S>RtHS;=acakOR;`YZ%hZiO;uh1F(7`$wGb)J#Fu?{q@`Ygh}Ca~RE3 zeDsNeb&R0XO`*7D@EdUervRnI4XhD8A!ZOKW_R9s#%+Sd9?g$oe-p_`3n;AlR+xRH z0i9_MgGv|P+GOc;In93XM7|e%r4R!F-wsi?%ny~Fu@dd|v?naHXNM=n zr;)%P+XVrCpjrkDfVdJR{&$2?P}%13n$F%Ox6n^;)9+c3K;>zc_%8vVqHnxr-|N zxwqNM-0WkHT&Mg!S&xeFnR3)z{O>IzXtt61%YY z%5&iLn_p9y^!pdinBqok+AUSEpg~zw0Kg3HHT@j^QJ7h@FS8Y{Pbkc(EGcVg2CnTCNR3Im2N;~ICoWF zPdB~4Sg=;$+uvRF^c`V4Yf3(b@6WA`!OB9Df{2H2_RL8lv^6M)$J$km{+lNx6j;dA zQXhSDMxCazXT`Lbq)kNWrJ-5;CItSXs`526)I)<;$g4qAL6S_g2KD_l4a(8owiKwz zpCBU7puPUa6j?*j`qqVHYPBl9nMprMCtHK}`>Fq*TKqqt@qfX_;d1}-)pPZ@clBWq zQp}7>LA|oH{{H}$Bq3&~XXP+ul&oc@gD{lFAWZ%G>57HJJ`jW%l-cz{kVIgG)#^zv nyE+SXLNHi=_lbwzzYs5mwBV)2xuUZ|S&=FsegFRlP3~N? diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image045.png b/dox/user_guides/modeling_algos/images/modeling_algos_image045.png index 8ab7eba802cf141095b920399aeb0580bfed2f00..d9c5dfb7d2b7e2edfa55eb0a72eb415194a81837 100644 GIT binary patch literal 3114 zcmdUx|67vx8plz0q?KQ4$FeU5+trq>nzlx2N!UuWu2Sa;T~iWG^BahV5>OLbp0Y_D z&Q>Q)MW%E`!$i}>M1`1#TzW_i5e>iKmog*;MHGDG;XJgRKjCz3KRnm-T=(a>KA-z@ z-|zc%-`{@~9_qSs<4PC|=6du<@YgVyVJ}=aeYVNl=TKD0N>69)*a3cR{m-!hKm230K_S0Gltm$Pd?ARHGY-Zx-4Au zt(QtowHFe}DKF2E7YDxv#5+5yq%j*MPgtk z(A~{&sHAH$G&D4Qq?W%u#(_Gy;g)GhjJ$rhJU;%|%_Pf`N#}od)@2o;qd{(R&i_(@ zY8y37Rb6UVKS#+y5LEid<(+$Szt5i!EBS!={gX{e1v)BWXsWtP=2 z+E%$u3@)X!1dkUrXuZGL(B{spr0H81-(xk-%+0Vh(nancLKttZi3HKy(;&QdjXZyI zw{SWIm18!Hru7!MBg41e5bLKm6M~I+HI#3x(qgeF_j)ozu-FARD1o)pQzH5n+770y zk{F|gQ+bd@Bxp`O=)Zv9@>b{hME{M~GfKKY+uwinl~h>8PYdumjU=NHMMI`zUoN+hV#iS$6-&MJQ0_Qq~>zXMK%#hM^RDeuAI@bTG4 z0-Y3(2Yz9fm9@}j$H=Z%+Tw94`X{3A(@Sfe1kR+S2j7^lm-}Ce_K-o5PTZ{pFmz&{ z0^LtBT9&VCs^2P}77t6#fG!9%Mra3a&+EJIOTdAV>~BAcQdxVfzQ~&WIh;c1k9=Y@R+$;lf|;P97r37d zq@ea;Fk&$*H#gVY+uMGE9LnQ*7kjdE0RSk9Q*G%Z_-$gfN3-Z85(&c@Arn6=vtOd4 zj-VC_blfgRq=(FtMc>B`Cwk>ef3o~b8`O%n%`j|B5jMlX2zZ@D96o5o`@1;jYtQG* zFHs9Ci^FY$g1@EizI}~uxnZ<{97!?wKr{5LA?(i#&;JAV@%|5qf$VUmFVZs(Qy$L4 zsRjZHD_;ZP#KeRt$ZiCI2)EL^54JbblGDANeB_fxE|=RGB)(t?!>Pg)HDOR&X;MfpjAymEUSIX(b>C8<1 zeye?1nbk`91tNNK5MU`_ESv}|)=I$fBBm^1x}s~+_%!iH@c~^5g3v71lS&KldVFgH2ZIZokbrI6o|HuR3F}il zXkN0mRBi)pYvTIsd~SZ4NT$(fdB1u`l&?7bNTE>ZR@F)*HQD|UCmf)9F`LcgXRWQR zlU&^->_2_}6#QzVnB=QDInYRU|}9b>9=|T_{qIFJKr3jkGGd zCWVSKMB%*V&$o|flo)OmUDVkjoVa^08Vv!!IN8OXlpg;5#JP#5!^6XAy`z~l3WY)@ zC+O{)G{^gu;^<#g=tP}*o)ZN9cQxPW{pttajI)A#3KJfDa}ui*PA@#`VBv78q*DU7 zIzInyDq$~SYFH+_91@ehj}57PZfXYvu`op}IQSj%KLo$rrFrcp{esLh?l|v6DGc&m z_gih~d|eCL1Ug|taKd>U)dpI1q0Nnrsw}8G86qzR=CmKI#;Qy&Btbzzwuu`N!+DEC zjhK)2W{9pe#ro((6u!Or=}dVH#W4;8w8S9X=yEI^>Uq`FPE%zl3$eFryr35)ha3m4 zaC?4@dOO*a1K9+Ykm&B_CSZ-z5rhuv+P>0oUO_>DDh?V`Vm?P6?WjXTET%u^@pzZu zn=I7>gtM|fK0hr>lGqfxF646rOD6&~`R>BZlk|Da(rc(*dWF+diboQOZ6KLbEk>^# sWT%(H?qt3j@xGhE_Ucz2GMmGj8y6DQ$JSOu!$0h3NO-W|ApX*S0lfRRmH+?% literal 9391 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 X1*6l62RUcEE-17$^)--cRxkboLxKNT diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image047.png b/dox/user_guides/modeling_algos/images/modeling_algos_image047.png index 784681e85ec666b1f78fb153d957c3e9d1f509a6..f0c0b1472f87f65f18916b3d9299f2b02dab7840 100644 GIT binary patch literal 6885 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 literal 10479 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 I-c(yDT9)Dccx~T^PzB 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 literal 21247 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 MLsz}-iEa4*0AH|yp#T5? diff --git a/dox/user_guides/modeling_algos/images/modeling_algos_image049.png b/dox/user_guides/modeling_algos/images/modeling_algos_image049.png index 746e721f0a5077ad6fd9eaeab794f5f766278a69..ec330cc88dd2b69430f3776066092d7f67aa900b 100644 GIT binary patch literal 8487 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 literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..6f98d72fe3ae934beec6a74047d63d0e8a4f41dc GIT binary patch literal 11844 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 literal 0 HcmV?d00001 diff --git a/dox/user_guides/modeling_algos/modeling_algos.md b/dox/user_guides/modeling_algos/modeling_algos.md index 20734055b0..b763132d32 100644 --- a/dox/user_guides/modeling_algos/modeling_algos.md +++ b/dox/user_guides/modeling_algos/modeling_algos.md @@ -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 E-learning & Training 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: - - - - - -
@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}
+@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: - - - - - - -
@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}
+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 -#include -#include -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 E = ME 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 -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 +#include +#include +#include +#include +#include +#include -~~~~~ -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 +#include +#include -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 +#include +#include +#include -**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 -#include -#include -#include #include -#include #include -// 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 BRepPrimAPI 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 -#include -#include + * 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 BRepOffsetAPI 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 [0,dx] [0,dy] [0,dz] . +* 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 -#include -#include -#include - -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 -#include - -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 BRepPrimAPI 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 BRepOffsetAPI 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 [0,dx] [0,dy] [0,dz] . -* 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 -#include -#include -#include -#include -#include +@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 +#include +#include +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 E = ME 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 +#include +#include +#include +#include +#include -@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 +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: -- Open CASCADE Mesh Framework (OMF) -- Express Mesh +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 -#include -#include +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: IMeshData (see Data model interface) and IMeshTools, 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 IMeshData 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 NCollection 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 BRepMeshData 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 NCollection 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 BRepMeshData 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 -IMeshData 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: - - - - - -
@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}
-@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} - - - - - - - - - - - - - - - - - - - - - - - - - -
@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}
+ +@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} - - - - - - - - - - - - - - - - - - - - - - - - - - -
@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}
- - -@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. diff --git a/dox/user_guides/modeling_data/images/modeling_data_image003.png b/dox/user_guides/modeling_data/images/modeling_data_image003.png index df9682b59668becb583d0d99a8dd8c3cae91c6ed..593342d5912637a81b87ebac9b7b413e2c2d36ff 100644 GIT binary patch literal 5640 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 literal 5318 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 diff --git a/dox/user_guides/modeling_data/images/modeling_data_image015.png b/dox/user_guides/modeling_data/images/modeling_data_image015.png index 277cbb6ffa791b82addabdb467fdf5db6ad2c3b3..6f98d72fe3ae934beec6a74047d63d0e8a4f41dc 100644 GIT binary patch literal 11844 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 literal 30774 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≠F266f^S4(5P?@o?Qjoy6j?5do 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≧nxeE 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 diff --git a/dox/user_guides/modeling_data/modeling_data.md b/dox/user_guides/modeling_data/modeling_data.md index 0de514e7d0..c8cd9d965c 100644 --- a/dox/user_guides/modeling_data/modeling_data.md +++ b/dox/user_guides/modeling_data/modeling_data.md @@ -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 E-learning & Training 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 GC 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 - -BRepLProp 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 BRepAdaptor 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: - - * Geom2dLProp package, which allows computing Derivative and Tangent vectors (normal and curvature) of a parametric point on a 2D curve; - * GeomLProp package, which provides local properties on 3D curves and surfaces - * LProp package, which provides an enumeration used to characterize a particular point on a 2D curve. - -Curves are either Geom_Curve curves (in 3D space) or Geom2d_Curve curves (in the plane). -Surfaces are Geom_Surface 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 SLprops from GeomLProp, which instantiates the generic class SLProps from LProp and use the method GaussianCurvature. - -@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 (BRepGProp global functions), -* a framework for computing global properties for a set of points (GProp_PGProps), -* 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, Adaptor3d_Curve is the abstract class which provides the required services by an algorithm which uses any 3d curve. - - GeomAdaptor package provides interfaces: - * On a Geom curve; - * On a curve lying on a Geom surface; - * On a Geom surface; - - Geom2dAdaptor package provides interfaces : - * On a Geom2d curve. - - BRepAdaptor package provides interfaces: - * On a Face - * On an Edge - -When you write an algorithm which operates on geometric objects, use Adaptor3d (or Adaptor2d) 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 * TopTools package provides basic tools to use on topological data structures. * TopExp package provides classes to explore and manipulate the topological data structures described in the TopoDS package. * BRepTools 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: +BRepLProp 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 BRepAdaptor 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: + + * Geom2dLProp package, which allows computing Derivative and Tangent vectors (normal and curvature) of a parametric point on a 2D curve; + * GeomLProp package, which provides local properties on 3D curves and surfaces + * LProp package, which provides an enumeration used to characterize a particular point on a 2D curve. + +Curves are either Geom_Curve curves (in 3D space) or Geom2d_Curve curves (in the plane). +Surfaces are Geom_Surface 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 SLprops from GeomLProp, which instantiates the generic class SLProps from LProp and use the method GaussianCurvature. + +@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 (BRepGProp global functions), +* a framework for computing global properties for a set of points (GProp_PGProps), +* 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, Adaptor3d_Curve is the abstract class which provides the required services by an algorithm which uses any 3d curve. + + GeomAdaptor package provides interfaces: + * On a Geom curve; + * On a curve lying on a Geom surface; + * On a Geom surface; + + Geom2dAdaptor package provides interfaces : + * On a Geom2d curve. + + BRepAdaptor package provides interfaces: + * On a Face + * On an Edge + +When you write an algorithm which operates on geometric objects, use Adaptor3d (or Adaptor2d) 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/tobj/images/tobj_image003.png b/dox/user_guides/ocaf/images/tobj_image003.png similarity index 100% rename from dox/user_guides/tobj/images/tobj_image003.png rename to dox/user_guides/ocaf/images/tobj_image003.png diff --git a/dox/user_guides/tobj/images/tobj_image004.png b/dox/user_guides/ocaf/images/tobj_image004.png similarity index 100% rename from dox/user_guides/tobj/images/tobj_image004.png rename to dox/user_guides/ocaf/images/tobj_image004.png diff --git a/dox/user_guides/tobj/images/tobj_image005.png b/dox/user_guides/ocaf/images/tobj_image005.png similarity index 100% rename from dox/user_guides/tobj/images/tobj_image005.png rename to dox/user_guides/ocaf/images/tobj_image005.png diff --git a/dox/user_guides/tobj/images/tobj_image006.png b/dox/user_guides/ocaf/images/tobj_image006.png similarity index 100% rename from dox/user_guides/tobj/images/tobj_image006.png rename to dox/user_guides/ocaf/images/tobj_image006.png diff --git a/dox/user_guides/tobj/images/tobj_image007.png b/dox/user_guides/ocaf/images/tobj_image007.png similarity index 100% rename from dox/user_guides/tobj/images/tobj_image007.png rename to dox/user_guides/ocaf/images/tobj_image007.png diff --git a/dox/user_guides/tobj/images/tobj_image008.png b/dox/user_guides/ocaf/images/tobj_image008.png similarity index 100% rename from dox/user_guides/tobj/images/tobj_image008.png rename to dox/user_guides/ocaf/images/tobj_image008.png diff --git a/dox/user_guides/ocaf/ocaf.md b/dox/user_guides/ocaf/ocaf.md index e5694279e3..80dc90e74f 100644 --- a/dox/user_guides/ocaf/ocaf.md +++ b/dox/user_guides/ocaf/ocaf.md @@ -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 E-learning & Training 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 (gp_Translation) 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()->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 below). 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 +Returns **True** if the object can be deleted with the indicated deletion mode. -#include -#include -#include -#include +~~~~~{.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 . - //! 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 - -//======================================================================= -//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 . -// 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 -// 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 -// (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 \; -- setting the new TPrsStd_AISPresentation to \; -- 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. diff --git a/dox/user_guides/step/step.md b/dox/user_guides/step/step.md index e65953f7a1..8328a914fb 100644 --- a/dox/user_guides/step/step.md +++ b/dox/user_guides/step/step.md @@ -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 E-learning & Training 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/tobj.md b/dox/user_guides/tobj/tobj.md deleted file mode 100644 index 155091b738..0000000000 --- a/dox/user_guides/tobj/tobj.md +++ /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()->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 below). 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 - - - diff --git a/dox/user_guides/user_guides.md b/dox/user_guides/user_guides.md index 57d88f2e9e..bf8192f0b7 100644 --- a/dox/user_guides/user_guides.md +++ b/dox/user_guides/user_guides.md @@ -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" diff --git a/dox/user_guides/visualization/visualization.md b/dox/user_guides/visualization/visualization.md index fdb948d807..df6545eed3 100644 --- a/dox/user_guides/visualization/visualization.md +++ b/dox/user_guides/visualization/visualization.md @@ -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 E-learning & Training 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. diff --git a/dox/user_guides/xde/xde.md b/dox/user_guides/xde/xde.md index e2a92615a9..04a4389153 100644 --- a/dox/user_guides/xde/xde.md +++ b/dox/user_guides/xde/xde.md @@ -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 E-learning & Training 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. -- 2.39.5

RQzln!Z*Qx_uWN8_n`X!CHnX-KS!@yH-L~1{QtkOxjSNFn-g&)z2(coWQQV*j zeNA-roKpSq&J=SaO~NRP@$XziXlUrI)k(uQm9?+R;S^c;9sfnzxrp0kM_6@Mp>&`M zY+%{8fX#C^XCC#x(Ylua`iK)H4*C@RZL%M1C*e}PCSz%;QF4N$7ptqQPczHz-=JGI z+y_2noeN^G%aeaQm0wi&Q>uX(7XLUSMN?%=uA)YX>lA!mL)+N&-w35XK z=K8EyLUh-t86U}BO-$%|=e?5;#lB9KMisP8OctoLjbLsptDnxL*!f+yMW(3)SY^d$ z?|gr`w&8OwXei!tYeF=E{K-wIqtZvVfPpKPzK&kv0HJz8m_iSbO3;g!I??<&@w@gv zh{j%AP50XiL~v;f1IISnLOO-bJ8PZ7ydz@Ty!f{6=X2_Q%bh}LEhl;4pn#S@A(at; z>PPjv`;kqT-#xvJ3JDF}ocv?HGi2$LQ>8|(#jMum8N10eyE=$b=;Ej$tQv(0Lx2$5 za0QU-4xBbPcxKJ(E0VkF@JZ-R?X0-E&R-Zq<>uhso$!TsM*xMeDkit|57+s%Y)oZk z7L7KAuBF-Cuz80fyH@sKx0mQ0t_msZ?Qlx?SWEcksz$_80;o*{jZd17LTETf;%VAC zNp|P=ufey}1NGRs@6_T;p-Z^!-!b|l|2OX1jXbJrE zi>=17?S zbm2;b%py5?yxA<;t8b>kceBwYpOrP`B(Yx@f!Nhr5!2rE?$-_FYui4GAVgu{o>H*7 z>N5O9(s6Tt`F<)EMYN)N-{euxG@f#io`oligE#h#6ruTxV)%{U^az5)Z##i|=X9|i zl&)w_JDbBGj)UD~w6%UQ0;n)q{Rp-9(WSGC_jW_|Ppl|`{3iJrSMokGrU&2z%c$4( z-x4&Mbvm8F=>k+OUuII1)SA<=yWXK6vAa2zK5lgNADQIc)w-5HbVt9Wd^&j(MglOtDoGsXo( zfq^4h0`oI;K}VA2->+AL?%f*;km5b@;uJK$y`~dhO$;&ilI}R8qmwdjRQ{Op?`6N` z@(+TJYGzaU9NTwgKu9m|u8fS0=}SLLqUPJVNK_G$-gd%+3dJe($q!N;xZmUVyYzMG zI<(>8oA1`o0JElUG7Wv{^3{{EO`PJl0ed7@{UWy(5E|)ao%VC2EU8FG5=t+rA<;6{viLDgM6tUeJ-pO-A9!2D3i!LoMbI z!G*4)^xHRHzFLkcC;ln7qkTNq_gchLcl2;=`5Y(hu7uHREiD19R2)y4S8f^Far3Oz zYvO*AW)fY&LXCWjc~Jmr?3IR{+h77@%;EmfMS|0?rFj_Sr}JA@tBO;&=B>FRv~Dh? zn2M(IS%0pwq*fDEDa;_0--`Duz;&IrXYD9C=Qe*lxpbvP{PTLl>}kmDy⪼xM*gh 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