0032551: Documentation - Novice user guide for OCCT Documentation
authorbtokarev <btokarev@opencascade.com>
Tue, 26 Oct 2021 11:18:56 +0000 (14:18 +0300)
committersmoskvin <smoskvin@opencascade.com>
Fri, 29 Oct 2021 14:08:16 +0000 (17:08 +0300)
Added novice guide.
Improved structure of Tutorials & Samples.

41 files changed:
dox/FILES_HTML.txt
dox/FILES_PDF.txt
dox/samples/draw_scripts.md
dox/samples/images/sample_ios_uikit.png [deleted file]
dox/samples/images/sample_overview_qt.png [deleted file]
dox/samples/images/sample_overview_qt_geometry.png [new file with mode: 0644]
dox/samples/images/sample_overview_qt_ocaf.png [new file with mode: 0644]
dox/samples/images/sample_overview_qt_topology.png [new file with mode: 0644]
dox/samples/images/sample_overview_qt_triangulation.png [new file with mode: 0644]
dox/samples/images/sample_overview_qt_viewers.png [new file with mode: 0644]
dox/samples/images/sample_overview_qt_xde.png [new file with mode: 0644]
dox/samples/images/sample_webgl.png [deleted file]
dox/samples/images/samples_c__ie.png [deleted file]
dox/samples/images/samples_java_android_occt.jpg [deleted file]
dox/samples/images/samples_mvc.png [deleted file]
dox/samples/images/samples_qml_android_occt.jpg [deleted file]
dox/samples/images/samples_qt.png [deleted file]
dox/samples/novice_guide.md [new file with mode: 0644]
dox/samples/ocaf.md
dox/samples/ocaf_func.md
dox/samples/samples.md
dox/tutorial/tutorial.md
samples/CSharp/ReadMe.md
samples/CSharp/ReadMe_D3D.md
samples/CSharp/images/samples_c__ie.png [new file with mode: 0644]
samples/OCCTOverview/code/OcafSamples.cxx
samples/ios/UIKitSample/ReadMe.md
samples/ios/UIKitSample/images/sample_ios_uikit.png [new file with mode: 0644]
samples/java/jniviewer/ReadMe.md
samples/java/jniviewer/images/samples_java_android_occt.jpg [new file with mode: 0644]
samples/mfc/standard/ReadMe.md
samples/mfc/standard/images/samples_mvc.png [new file with mode: 0644]
samples/qt/AndroidQt/ReadMe.md
samples/qt/AndroidQt/images/samples_qml_android_occt.jpg [new file with mode: 0644]
samples/qt/IESample/ReadMe.md [new file with mode: 0644]
samples/qt/IESample/images/samples_qt.png [new file with mode: 0644]
samples/qt/OCCTOverview/ReadMe.md
samples/qt/OCCTOverview/images/sample_overview_qt.png [new file with mode: 0644]
samples/qt/Tutorial/ReadMe.md [new file with mode: 0644]
samples/webgl/ReadMe.md
samples/webgl/images/sample_webgl.png [new file with mode: 0644]

index b71332f..76f5ea1 100644 (file)
@@ -12,7 +12,9 @@ samples/samples.md
 ../samples/CSharp/ReadMe.md
 ../samples/CSharp/ReadMe_D3D.md
 ../samples/qt/AndroidQt/ReadMe.md
+../samples/qt/IESample/ReadMe.md
 ../samples/qt/OCCTOverview/ReadMe.md
+../samples/qt/Tutorial/ReadMe.md
 ../samples/java/jniviewer/ReadMe.md
 ../samples/ios/UIKitSample/ReadMe.md
 ../samples/webgl/ReadMe.md
@@ -20,6 +22,7 @@ samples/ocaf.md
 samples/ocaf_func.md
 samples/draw_scripts.md
 
+samples/novice_guide.md
 tutorial/tutorial.md
 
 build/build_upgrade.md
index c7850a7..75e3674 100644 (file)
@@ -6,6 +6,8 @@
 
 tutorial/tutorial.md
 
+samples/novice_guide.md
+
 upgrade/upgrade.md
 
 user_guides/foundation_classes/foundation_classes.md
index fa17a33..786e896 100644 (file)
@@ -1,4 +1,4 @@
-Draw Demo Scripts {#samples__draw_scripts}
+Draw: Demo Scripts {#samples__draw_scripts}
 ================
 
 All demo scripts are provided with OCCT sources and locate in <i>CASROOT/samples/tcl</i>. To play around them please 
diff --git a/dox/samples/images/sample_ios_uikit.png b/dox/samples/images/sample_ios_uikit.png
deleted file mode 100644 (file)
index 703e8e5..0000000
Binary files a/dox/samples/images/sample_ios_uikit.png and /dev/null differ
diff --git a/dox/samples/images/sample_overview_qt.png b/dox/samples/images/sample_overview_qt.png
deleted file mode 100644 (file)
index 7685044..0000000
Binary files a/dox/samples/images/sample_overview_qt.png and /dev/null differ
diff --git a/dox/samples/images/sample_overview_qt_geometry.png b/dox/samples/images/sample_overview_qt_geometry.png
new file mode 100644 (file)
index 0000000..946e4d6
Binary files /dev/null and b/dox/samples/images/sample_overview_qt_geometry.png differ
diff --git a/dox/samples/images/sample_overview_qt_ocaf.png b/dox/samples/images/sample_overview_qt_ocaf.png
new file mode 100644 (file)
index 0000000..4b07fc7
Binary files /dev/null and b/dox/samples/images/sample_overview_qt_ocaf.png differ
diff --git a/dox/samples/images/sample_overview_qt_topology.png b/dox/samples/images/sample_overview_qt_topology.png
new file mode 100644 (file)
index 0000000..fbefb8f
Binary files /dev/null and b/dox/samples/images/sample_overview_qt_topology.png differ
diff --git a/dox/samples/images/sample_overview_qt_triangulation.png b/dox/samples/images/sample_overview_qt_triangulation.png
new file mode 100644 (file)
index 0000000..39afb1e
Binary files /dev/null and b/dox/samples/images/sample_overview_qt_triangulation.png differ
diff --git a/dox/samples/images/sample_overview_qt_viewers.png b/dox/samples/images/sample_overview_qt_viewers.png
new file mode 100644 (file)
index 0000000..a7f13f9
Binary files /dev/null and b/dox/samples/images/sample_overview_qt_viewers.png differ
diff --git a/dox/samples/images/sample_overview_qt_xde.png b/dox/samples/images/sample_overview_qt_xde.png
new file mode 100644 (file)
index 0000000..643560e
Binary files /dev/null and b/dox/samples/images/sample_overview_qt_xde.png differ
diff --git a/dox/samples/images/sample_webgl.png b/dox/samples/images/sample_webgl.png
deleted file mode 100644 (file)
index 7d3781f..0000000
Binary files a/dox/samples/images/sample_webgl.png and /dev/null differ
diff --git a/dox/samples/images/samples_c__ie.png b/dox/samples/images/samples_c__ie.png
deleted file mode 100644 (file)
index 3cfc12e..0000000
Binary files a/dox/samples/images/samples_c__ie.png and /dev/null differ
diff --git a/dox/samples/images/samples_java_android_occt.jpg b/dox/samples/images/samples_java_android_occt.jpg
deleted file mode 100644 (file)
index ecba473..0000000
Binary files a/dox/samples/images/samples_java_android_occt.jpg and /dev/null differ
diff --git a/dox/samples/images/samples_mvc.png b/dox/samples/images/samples_mvc.png
deleted file mode 100644 (file)
index f410483..0000000
Binary files a/dox/samples/images/samples_mvc.png and /dev/null differ
diff --git a/dox/samples/images/samples_qml_android_occt.jpg b/dox/samples/images/samples_qml_android_occt.jpg
deleted file mode 100644 (file)
index 3fbdbd3..0000000
Binary files a/dox/samples/images/samples_qml_android_occt.jpg and /dev/null differ
diff --git a/dox/samples/images/samples_qt.png b/dox/samples/images/samples_qt.png
deleted file mode 100644 (file)
index e4c6885..0000000
Binary files a/dox/samples/images/samples_qt.png and /dev/null differ
diff --git a/dox/samples/novice_guide.md b/dox/samples/novice_guide.md
new file mode 100644 (file)
index 0000000..09568ee
--- /dev/null
@@ -0,0 +1,115 @@
+Novice Guide {#samples__novice_guide}
+=======
+
+@tableofcontents
+
+@section diffs Modeling with OCCT: Key differences
+
+Open CASCADE Technology (OCCT) is an object-oriented C++ framework designed for rapid production of sophisticated CAD/CAM/CAE applications.
+In other words, it provides endless possibilities for raw 2D and 3D modeling in C++ environment.
+Unlike end-user software, it is used by the application developers and therefore strongly differs from the most popular CAD/CAM/CAE software packages.
+OCCT provides building blocks enough for modeling, editing, visualization, and data interoperability of 2D and 3D objects.
+
+By using OCCT, users can create the objects of their desire (or edit already existing ones) using raw code commands.
+It is a more complicated process than using GUI-based software, but it provides much more flexibility than even script-based manipulations that are available within existing CAD/CAM/CAE applications.
+However, to fully grasp the possibilities of OCCT it is best for the user to have previous experience in C++ at least at a basic level.
+
+@section basics Understanding the principles
+
+If you don't have any programming skills, grasping the full magnitude of OCCT workflow is still an option.
+The documentation for OCCT contains several entry points for new users.
+It will not explain all OCCT classes but will help to comprehend the workflow and help start thinking in terms of Open CASCADE Technology.
+
+The most basic workflow is described in the @ref occt__tutorial "OCCT Tutorial" - this is an excellent starting point for new users.
+In this tutorial you will create a solid model step-by-step using different classes and methods.
+Each step of the tutorial contains code snippets and images.
+
+The basics involved in the modeling process are explained.
+When the basics of OCCT are clear, the next logical step is to check out @ref samples "sample applications" and examine those that suit your needs.
+For these, the best starting point is **OCCTOverview** located in /samples/qt subfolder of OCCT installation.
+
+This sample provides code examples for several actions as well as visualization of these code snippets output.
+The Overview interface is dynamically changing based on selected **Category** at the menu.
+Additional menu buttons will appear, providing users with subcategories and relevant commands to select one of the actions.
+The result will appear in the viewer window, the code will appear at the top right, and in several cases the output will be produced at the bottom right window.
+
+@figure{sample_overview_qt_viewers.png,"Comparison of 3D and 2D viewer windows",240} height=420px
+
+The 3D viewer window has a row of preset interface buttons to customize the visual output.
+
+Those buttons can be grouped into three types, left to right:
+
+- View controls: **Fit all** and **Isometric**, will center the view and reset the camera angles respectively;
+- Display mode customization: **HLR,** e.g. "Hidden line removal" (works only when shading is disabled) can be turned on and off;
+solid models may be displayed either in **Shading** or **Wireframe** modes. **Transparency** level may be set for models in shading mode;
+- The last four buttons in a row are beautifiers enabling Ray-tracing engine and configuring it's parameters.
+
+At the bottom left of the screen the orientation cube (trihedron) is located.
+The trihedron interactively shows the position of the camera in relation to the XYZ axis of the displayed data.
+The sides of the trihedron are labeled to help with orientation.
+Click on a side of the box to orient the camera view along the preferred axis.
+
+The 2D viewer window lacks most of these elements and only have **Fit all** button.
+
+The **Geometry** category of the Overview focuses on primitive objects like dots, lines (including vectors) or planes.
+These objects will appear in the viewer after the subcategory is selected.
+This section will demonstrate these entities both in 2D and 3D view mode and provide basic examples of parametric creation and data analysis.
+
+@figure{sample_overview_qt_geometry.png,"",240} height=440px
+
+The usage of the functions shown in the Overview is described more thoroughly at the @ref occt_user_guides__modeling_data "Modeling data" section of the documentation.
+Additionally, @ref occt_user_guides__modeling_algos "Modeling Algorithms" are used in more complex cases.
+
+The **Topology** section of the Overview demonstrates the functions used in 3D operations.
+Multiple use cases are provided, including different object intersections, modifying and calculations.
+Some of these use cases are described in the documentation, such as @ref occt_user_guides__inspector "Inspector" usage.
+
+@figure{sample_overview_qt_topology.png,"",240} height=440px
+
+The subsections are grouped as shown on the screenshot before.
+Most shapes and primitive objects are introduced and then followed by a set of operations and interactions.
+
+The **Triangulation** segment allows computing the number of triangles on a shape.
+
+This may be inspected via [Poly_Triangulation Class Reference](https://dev.opencascade.org/doc/refman/html/class_poly___triangulation.html) -
+a part of the [Reference manual](https://dev.opencascade.org/doc/refman/html/index.html),
+an overall Open CASCADE code guide that may be used to inspect the key points in classes and their connections.
+
+@figure{sample_overview_qt_triangulation.png,"",240} height=440px
+
+The triangulation uses some of Mesh-related classes - see full description at @ref occt_user_guides__mesh "Mesh" documentation section.
+
+The **Data exchange** section provides examples of how to export and import files of several different formats.
+
+@figure{sample_overview_qt_xde.png,"",240} height=440px
+
+The **OCAF** section gives an introduction for the @ref intro_overview_ocaf "Open CASCADE Application Framework" functionality.
+To test these functions, create an object first (box or cylinder).
+After that, the object may be modified and saved. Actions are recorded and may be undone or redone.
+
+@figure{sample_overview_qt_ocaf.png,"",240} height=440px
+
+**Viewers** section demonstrates examples of the 2D and 3D visualization outputs.
+Check @ref occt_user_guides__visualization "Visualization" section of the documentation for a detailed description.
+In addition to these two samples, there are much more that might be of use to a new user based on their particular use case.
+
+Check Readme files in the sample directories to learn more about samples compilation.
+
+**Note:** source code for OCCTOverview is stored at 'samples/qt/OCCTOverview/src' folder in your OCCT root,
+and the source code files for examples presented in subsections are stored at 'samples/OCCTOverview/code folder'.
+Several utility classes that are not presented in the example window may be found in example source code files.
+
+The overall classes introduction may be found in the @ref occt_user_guides__foundation_classes "Foundation Classes" section of the documentation.
+The "Introduction" section contains short descriptions of the most massive entries in the documentation.
+
+@section helps Additional assistance
+
+There are several places that may be of use for new users.
+The first one is [Training & E-learning](https://dev.opencascade.org/resources/trainings) page that lists available trainings and describes their specifics.
+
+The second one is the Overview documentation (this document is a part of it) - here you can find information that suits most of the use cases.
+This may seem overwhelming at first, but if you have the clear understanding of what do you seek, you will most likely find the required information.
+
+Aside from the Overview documentation itself, the [Reference manual](https://dev.opencascade.org/doc/refman/html/index.html) is present.
+Use it to check classes descriptions, dependencies and examples.
+Additionally, there is a [Forum](https://dev.opencascade.org/forums) where you can contact the OCCT community and developers.
index 57cf5fb..b839a2b 100644 (file)
@@ -1,4 +1,4 @@
-OCAF Usage {#samples__ocaf}
+OCAF: Usage Tutorial {#samples__ocaf}
 ========
 
 ## Getting  Started
index dec2b81..7f782a2 100644 (file)
@@ -1,4 +1,4 @@
-Function Mechanism Usage {#samples__ocaf_func}
+OCAF: Function Mechanism {#samples__ocaf_func}
 ========================
 
 Let us describe the usage of the "Function Mechanism" of Open CASCADE Application Framework on a simple example.  
index 943db58..bc0a40e 100644 (file)
 Tutorials and Samples {#samples}
 =====================
 
-Tutorial: Modelling a Bottle
-----------------------------
-The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object. 
-The purpose of the tutorial is not to explain all OCCT classes but 
-to help start thinking in terms of the Open CASCADE Technology.
-
-This tutorial assumes that  the user has experience in using and setting up C++. 
-From the viewpoint of programming, Open CASCADE Technology is designed 
-to enhance user's C++ tools with high performance modeling classes, methods and functions. 
-The combination of these resources allows creating substantial applications.
-
-Read more about @subpage occt__tutorial
-
-MFC
----------
-
-Visual C++ programming samples containing 10 Visual C++ projects 
-illustrating how to use a particular module or functionality.
-
-The list of MFC samples:
-
-  * Geometry
-  * Modeling
-  * Viewer2d
-  * Viewer3d
-  * ImportExport
-  * Ocaf
-  * Triangulation
-  * HLR
-  * Animation
-  * Convert
-
-@figure{/samples/images/samples_mvc.png}
-
-**Remarks:**
-
-  * MFC samples are available only on Windows platform;
-  * To start a sample use Open CASCADE Technology\\Samples\\Mfc\\ item of the Start\\Programs menu;
-  * Read carefully readme.txt to learn about launching and compilation options.
-
-See @subpage samples_mfc_standard "Readme" for details.
-
-Qt
----
-
- OCCT includes several samples based on Qt application framework.
-These samples are available on all supported desktop platforms.
-
-To start a sample on Windows use Open CASCADE Technology\\Samples\\Qt\\ item of the Start\\Programs menu.
-
- Import Export
--------------
-
- Import Export programming sample contains 3D Viewer and Import / Export functionality.
-
-@figure{/samples/images/samples_qt.png}
-
- Tutorial
----------
-
-The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object. 
-The purpose of the tutorial is not to explain all OCCT classes but 
-to help start thinking in terms of the Open CASCADE Technology.
-
-This tutorial assumes that  the user has experience in using and setting up C++. 
-From the viewpoint of programming, Open CASCADE Technology is designed 
-to enhance user's C++ tools with high performance modeling classes, methods and functions. 
-The combination of these resources allows creating substantial applications.
-
-**See also:** @ref occt__tutorial "OCCT Tutorial"
-
-Overview
----------
-The Qt application providing samples for basic usage of C++ API of various OCCT functionality.
-
-The samples are organized in several categories according to relevant module of OCCT:
- * Geometry
- * Topology,
- * Triangulation
- * DataExchange
- * OCAF
- * Viewer 2d
- * Viewer 3d
-Each sample presents geometry view, C++ code fragment and sample output window.
-@figure{/samples/images/sample_overview_qt.png}
-See \subpage samples_qt_overview "Readme" for details.
-
-C#
----
-
-C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality into .NET applications (using Windows Forms and WPF front ends).
-
-@figure{/samples/images/samples_c__ie.png}
-
-Import:
-
-  * BRep
-  * Iges
-  * Step
-
-Export: 
-
-  * Brep
-  * Iges
-  * Step
-  * Stl
-  * Vrml
-
-See @subpage samples_csharp_occt "C# sample Readme" for details.
-
-There is also another C# example with the same functionality, which demonstrates the integration of Direct3D Viewer into .NET applications using WPF front end.
-
-See @subpage samples_csharp_direct3d "Direct3D C# sample Readme" for details.
-
-Android
----------
-
-There are two samples are representing usage OCCT framework on Android mobile platform. They represent an OCCT-based 3D-viewer with CAD import support in formats BREP, STEP and IGES: jniviewer (java) and AndroidQt (qt+qml)
-
-jniviewer
-@figure{/samples/images/samples_java_android_occt.jpg}
-Java -- See @subpage samples_java_android_occt "Android Java sample Readme" for details.
-
-AndroidQt
-@figure{/samples/images/samples_qml_android_occt.jpg}
-Qt -- See \subpage samples_qml_android_occt "Android Qt sample Readme" for details.
-
-iOS
----
-
-There is a sample demonstrating usage of OCCT on iOS with Apple UIKit framework.
-
-@figure{/samples/images/sample_ios_uikit.png}
-
-See @subpage occt_samples_ios_uikit "iOS sample Readme" for details.
-
-Web
----------
-
-WebGL Viewer sample demonstrating usage of OCCT 3D Viewer in Web browser with Emscripten SDK can be found in `samples/webgl`.
-
-@figure{/samples/images/sample_webgl.png}
-
-See @subpage occt_samples_webgl "WebGL sample Readme" for details.
-
-OCAF Usage Sample
-------------------
-
-The provided set of samples dedicates to get initial knowledge about typical actions with OCAF services.  It may be 
-useful for newcomers.
-
-Read more about @subpage samples__ocaf
-
-OCAF Function Mechanism Usage
------------------------------
-
-This simple example dedicates to the usage of "Function Mechanism" of OCCT Application Framework. It represents a "nail" 
-composed by a cone and two cylinders of different radius and height.
-Read more about @subpage samples__ocaf_func
-
-Draw Demo Scripts
-------------------
-
-A set of demo scripts demonsrates using OCCT functionality from DRAW. These scripts can be also considered as a 
-tutorials on tcl usage within Draw.
-
-Read more about @subpage samples__draw_scripts
+- @subpage samples__tutorials
+  * @ref samples__novice_guide
+    <br>A document providing an introductory information to newcomers.
+  * @ref samples__draw_scripts
+    <br>A set of demo scripts demonstrating OCCT functionality from DRAW.
+    These scripts can be also considered as a tutorials on **Tcl** usage within @ref occt_user_guides__test_harness "Draw Harness".
+  * @ref occt__tutorial
+    <br>A programming tutorial teaching how to use OCCT services to model a 3D object.
+    See also @ref samples_qt_tutorial
+  * @ref samples__ocaf
+    <br>A set of code snippets performing typical actions with @ref occt_user_guides__ocaf "OCAF" services for newcomers.
+  * @ref samples__ocaf_func
+    <br>A simple example dedicated to the usage of "Function Mechanism" of @ref occt_user_guides__ocaf "OCCT Application Framework".
+- @subpage samples__projects
+  * @ref samples_qt_iesample
+    <br>A cross-platform multi-document 3D Viewer sample with CAD import / export functionality based on **Qt Widgets** framework.
+  * @ref samples_qml_android_occt
+    <br>A cross-platform 3D Viewer sample with CAD import based on **QtQuick** framework.
+  * @ref samples_qt_tutorial
+    <br>A cross-platform sample application based on **Qt Widgets** framework and implementing @ref occt__tutorial.
+  * @ref samples_qt_overview
+    <br>A sample application interactively demonstrating OCCT C++ usage with code snippets for newcomers.
+  * @ref samples_mfc_standard
+    <br>A set of projects for Windows platform demonstrating OCCT usage based on **Microsoft Foundation Class** (**MFC**) library.
+  * @ref samples_csharp_occt
+    <br>A Multi-document 3D Viewer sample with CAD import / export functionality based on .NET and **Windows Forms** or **WPF**.
+  * @ref samples_csharp_direct3d
+    <br>3D Viewer sample wrapped into Direct3D context based on .NET and **Windows Presentation Foundation** (**WPF**).
+  * @ref occt_samples_webgl
+    <br>3D Viewer sample based on **Emscripten SDK** representing a static HTML page to be opened in Web Browser.
+  * @ref samples_java_android_occt
+    <br>3D Viewer sample with CAD import for Android mobile platform based on Android SDK and JNI layer.
+  * @ref occt_samples_ios_uikit
+    <br>3D Viewer sample for iOS platform based on Apple **UIKit** framework.
+
+@page samples__tutorials Tutorials and Demos
+- @subpage samples__novice_guide
+- @subpage samples__draw_scripts
+- @subpage occt__tutorial
+- @subpage samples__ocaf
+- @subpage samples__ocaf_func
+
+@page samples__projects Sample Projects
+- @subpage samples_qt_iesample
+- @subpage samples_qml_android_occt
+- @subpage samples_qt_tutorial
+- @subpage samples_qt_overview
+- @subpage samples_mfc_standard
+- @subpage samples_csharp_occt
+- @subpage samples_csharp_direct3d
+- @subpage occt_samples_webgl
+- @subpage samples_java_android_occt
+- @subpage occt_samples_ios_uikit
index bb7fa66..0825c9b 100644 (file)
@@ -1,4 +1,4 @@
- Tutorial {#occt__tutorial}
+Modeling: Bottle Tutorial {#occt__tutorial}
 =======
 
 @tableofcontents
index 49a9444..a64ca6b 100644 (file)
@@ -1,8 +1,9 @@
-OCCT CSharp sample {#samples_csharp_occt}
+.NET: Import/Export (C#|C++/CLI|WinForms|WPF) {#samples_csharp_occt}
 ================== 
        
 This sample demonstrates how to use OCCT libraries in <b>.Net</b> application
 written using **CSharp** and **Windows Forms** or **Windows Presentation Foundation** (WPF).
+The sample could be found within OCCT repository in folder `/samples/CSharp/`.
 
 The connection between .Net and OCCT (C++) level is provided by proxy library
 **OCCProxy**, written in C++/CLI. The proxy library contains a single *ref* class
@@ -14,6 +15,8 @@ Both applications provide the same functionality as the standard OCCT Import/Exp
 The first project is called *IE_WinForms* and uses Windows Forms for GUI.
 The second application is called *IE_WPF_WinForms* and uses Windows Presentation Foundation.
 
+@figure{samples_c__ie.png}
+
 Note a few important details:
 
 - OCCT template class *NCollection_Haft* is used to encapsulate C++ class into a field of *ref* class; 
index ca22989..7c1649d 100644 (file)
@@ -1,8 +1,9 @@
-Direct3D CSharp sample {#samples_csharp_direct3d}
-================== 
+.NET: D3D/OpenGL Viewer (C#|C++/CLI|WPF) {#samples_csharp_direct3d}
+==================
        
 This sample demonstrates how to use OCCT and DirectX libraries in <b>.Net</b> application
 written using **CSharp** and **Windows Presentation Foundation** (WPF).
+The sample could be found within OCCT repository in folder `/samples/CSharp/`.
 
 The connection between .Net, OCCT (C++) and DirectX level is provided by proxy libraries,
 **OCCProxy** and **D3DProxy**, written in C++/CLI. The proxy library **OCCProxy**  contains a single
diff --git a/samples/CSharp/images/samples_c__ie.png b/samples/CSharp/images/samples_c__ie.png
new file mode 100644 (file)
index 0000000..3cfc12e
Binary files /dev/null and b/samples/CSharp/images/samples_c__ie.png differ
index 5999086..0154f48 100644 (file)
@@ -311,7 +311,7 @@ void OcafSamples::ModifyBoxOcafSample()
     Handle(TFunction_Function) aFunction;
     if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
     {
-      myResult << "Object cannot be modify.";
+      myResult << "Object cannot be modified.";
       return;
     }
     // Get the Standard_GUID of the TFunction_FunctionDriver of the selected object TFunction_Function attribute
@@ -413,7 +413,7 @@ void OcafSamples::ModifyCylinderOcafSample()
     Handle(TFunction_Function) aFunction;
     if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
     {
-      myResult << "Object cannot be modify.";
+      myResult << "Object cannot be modified.";
       return;
     }
     // Get the Standard_GUID of the TFunction_FunctionDriver of the selected object TFunction_Function attribute
index 44d688c..7e4de5d 100644 (file)
@@ -1,12 +1,15 @@
-OCCT sample for iOS {#occt_samples_ios_uikit}
+iOS: 3D Viewer (Objective-C++|UIKit) {#occt_samples_ios_uikit}
 ================== 
 
 UIKitSample consists of the Open CASCADE 3D Viewer which provides import of STEP files and toolbar with three buttons.
+The sample could be found within OCCT repository in folder `/samples/ios/UIKitSample/`.
 
 The first and second buttons serve for import hardcoded STEP files. The third button displays "About" dialog.
 
 The viewer supports zoom, pan and rotate actions. The viewer supports selection of solids as well.
 
+@figure{sample_ios_uikit.png}
+
 Installation and configuration:
     1. Make sure you are running Mac OS version 10.12.1 or above and properly installed XCode version 8.1 or above.
     2. Install Open CASCADE Technology (OCCT) and build static libraries for desired device or/and simulator on your workstation.
diff --git a/samples/ios/UIKitSample/images/sample_ios_uikit.png b/samples/ios/UIKitSample/images/sample_ios_uikit.png
new file mode 100644 (file)
index 0000000..703e8e5
Binary files /dev/null and b/samples/ios/UIKitSample/images/sample_ios_uikit.png differ
index 4019016..d74dd7c 100644 (file)
@@ -1,7 +1,8 @@
-OCCT JniViewer sample for Android {#samples_java_android_occt}
+Android: 3D Viewer (Java|C++|Android SDK|JNI) {#samples_java_android_occt}
 ================== 
 
 This sample demonstrates simple way of using OCCT libraries in Android application written using Java.
+The sample could be found within OCCT repository in folder `/samples/java/jniviewer/`.
 
 The connection between Java and OCCT (C++) level is provided by proxy library, libTKJniSample.so, written in C++ with exported JNI methods of Java class OcctJniRenderer.
 The proxy library contains single C++ class OcctJni_Viewer encapsulating OCCT viewer and providing functionality to manipulate this viewer
@@ -13,6 +14,8 @@ and the code can be programmed on Java level similarly to C++ one.
 See description of OCCT Java Wrapper in Advanced Samples and Tools on OCCT web site at 
 https://www.opencascade.com/content/advanced-samples-and-tools
 
+@figure{samples_java_android_occt.jpg}
+
 Install Android Studio 4.0+ and install building tools (check Tools -> SDK Manager):
 - Android SDK (API level 21 or higher).
 - Android SDK build tools.
diff --git a/samples/java/jniviewer/images/samples_java_android_occt.jpg b/samples/java/jniviewer/images/samples_java_android_occt.jpg
new file mode 100644 (file)
index 0000000..ecba473
Binary files /dev/null and b/samples/java/jniviewer/images/samples_java_android_occt.jpg differ
index af88216..4ab75ed 100644 (file)
@@ -1,6 +1,21 @@
-MFC samples {#samples_mfc_standard}
+MFC: OCCT Samples (C++|MFC) {#samples_mfc_standard}
 ==========
 
+Visual C++ programming samples for Windows platform containing illustrating how to use a particular module or functionality, including the following MFC samples:
+
+  * Geometry
+  * Modeling
+  * Viewer2d
+  * Viewer3d
+  * ImportExport
+  * Ocaf
+  * Triangulation
+  * HLR
+  * Animation
+  * Convert
+
+@figure{samples_mvc.png}
+
 1. Contents 
 -----------------------
 
diff --git a/samples/mfc/standard/images/samples_mvc.png b/samples/mfc/standard/images/samples_mvc.png
new file mode 100644 (file)
index 0000000..f410483
Binary files /dev/null and b/samples/mfc/standard/images/samples_mvc.png differ
index bfdafc5..732d5dc 100644 (file)
@@ -1,12 +1,15 @@
-OCCT AndroidQt sample for Android {#samples_qml_android_occt}
+Qt: 3D Viewer (C++|QtQuick|QML) {#samples_qml_android_occt}
 ================== 
 
 This sample demonstrates a simple way of using OCCT libraries in Android application written using Qt/Qml.
+The sample could be found within OCCT repository in folder `/samples/qt/AndroidQt/`.
 
 The connection between Qt/Qml and OCCT (C++) level is provided by proxy library, libAndroidQt.so, written in C++.
 The proxy library contains single C++ class AndroidQt encapsulating OCCT viewer and providing functionality to manipulate this viewer
 and to import OCCT shapes from supported format of CAD file (BREP).
 
+@figure{samples_qml_android_occt.jpg}
+
 Requirements for building sample:
 * Java Development Kit 1.7 or higher
 * Qt 5.3 or higher
diff --git a/samples/qt/AndroidQt/images/samples_qml_android_occt.jpg b/samples/qt/AndroidQt/images/samples_qml_android_occt.jpg
new file mode 100644 (file)
index 0000000..3fbdbd3
Binary files /dev/null and b/samples/qt/AndroidQt/images/samples_qml_android_occt.jpg differ
diff --git a/samples/qt/IESample/ReadMe.md b/samples/qt/IESample/ReadMe.md
new file mode 100644 (file)
index 0000000..214050f
--- /dev/null
@@ -0,0 +1,10 @@
+Qt: Import/Export (C++|Qt Widgets) {#samples_qt_iesample}
+==========
+
+OCCT includes several samples based on Qt application framework.
+These samples are available on all supported desktop platforms.
+
+This Import Export programming sample contains 3D Viewer and Import / Export functionality.
+The sample could be found within OCCT repository in folder `/samples/qt/IESample/`.
+
+@figure{samples_qt.png}
diff --git a/samples/qt/IESample/images/samples_qt.png b/samples/qt/IESample/images/samples_qt.png
new file mode 100644 (file)
index 0000000..e4c6885
Binary files /dev/null and b/samples/qt/IESample/images/samples_qt.png differ
index 55f7f0a..faa5fb5 100644 (file)
@@ -1,6 +1,22 @@
-Qt OCCT Overview samples {#samples_qt_overview}
+Qt: OCCT Overview (C++|Qt Widgets) {#samples_qt_overview}
 ==========
 
+The Overview Qt application provides code snippets for basic usage of C++ API of various OCCT functionality.
+The samples are organized in several categories according to relevant module of OCCT:
+
+ * Geometry
+ * Topology
+ * Triangulation
+ * DataExchange
+ * OCAF
+ * Viewer 2d
+ * Viewer 3d
+
+Each sample presents geometry view, C++ code fragment and sample output window.
+This sample is described in the @ref samples__novice_guide "Novice guide" for new users.
+
+@figure{sample_overview_qt.png}
+
 1. Contents
 -----------------------
 
diff --git a/samples/qt/OCCTOverview/images/sample_overview_qt.png b/samples/qt/OCCTOverview/images/sample_overview_qt.png
new file mode 100644 (file)
index 0000000..7685044
Binary files /dev/null and b/samples/qt/OCCTOverview/images/sample_overview_qt.png differ
diff --git a/samples/qt/Tutorial/ReadMe.md b/samples/qt/Tutorial/ReadMe.md
new file mode 100644 (file)
index 0000000..7cbdd42
--- /dev/null
@@ -0,0 +1,11 @@
+Qt: Bottle Tutorial (C++|Qt Widgets) {#samples_qt_tutorial}
+==========
+
+The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object.
+The purpose of the tutorial is not to explain all OCCT classes but to help start thinking in terms of the Open CASCADE Technology.
+
+This tutorial assumes that  the user has experience in using and setting up C++.
+From the viewpoint of programming, Open CASCADE Technology is designed to enhance user's C++ tools with high performance modeling classes, methods and functions.
+The combination of these resources allows creating substantial applications.
+
+**See also:** @ref occt__tutorial "OCCT Tutorial"
index 7e748eb..d7f1150 100644 (file)
@@ -1,4 +1,4 @@
-OCCT WebGL Viewer sample {#occt_samples_webgl}
+WebGL: 3D Viewer (JavaScript|C++|WebAssembly) {#occt_samples_webgl}
 ================== 
 
 This sample demonstrates simple way of using OCCT libraries in Web application written in C++ and translated into WebAssembly module using Emscripten SDK (emsdk):
@@ -6,6 +6,9 @@ https://emscripten.org/
 
 Sample consists of the Open CASCADE 3D Viewer with a button for opening a model in BREP format.
 The sample requires a WebGL 2.0 capable browser supporting WebAssembly 1.0 (Wasm).
+The sample could be found within OCCT repository in folder `/samples/webgl/`.
+
+@figure{sample_webgl.png,"",240} height=408px
 
 Installation and configuration:
  1. Install Emscripten SDK and activate minimal configuration (Python, Java and CLang) following *emsdk* documentation. Activate also MinGW when building sample on Windows host.
diff --git a/samples/webgl/images/sample_webgl.png b/samples/webgl/images/sample_webgl.png
new file mode 100644 (file)
index 0000000..7d3781f
Binary files /dev/null and b/samples/webgl/images/sample_webgl.png differ