1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

0024431: Using svg-images in the documentation

Documentation generator improved to automatically convert SVG images to PDF when PDF documents are generated. This is done with Inkscape thus it becomes necessary for generation of PDF documents.

Doxygen alias "figure" added for easy insertion of images with single command for both HTML and PDF output.

Documentation is updated.

Reviewed documentation.md and added more recommendations on Document Syntax.
Introduced existing svg images in the documentation.

Description of formatting of plain text, code blocks, and references revised.
Snapshot of structure of dox folder is updated.
Copyright year is corrected in PDF documents to be always the current one.

Some grammar corrections.
This commit is contained in:
abv 2014-03-13 13:20:08 +04:00 committed by bugmaster
parent 67335dfc1e
commit 3d68eaf52b
16 changed files with 1722 additions and 197 deletions

View File

@ -5,119 +5,123 @@
@section OCCT_DM_SECTION_1 Introduction
This document provides practical guidenes for generation and editing of OCCT user documentation.
This document provides practical guidelines for generation and editing of OCCT user documentation.
@section OCCT_DM_SECTION_2 Prerequisites
In order to generate documentation, you need to have the following software installed.
You need to have the following software installed to generate the documentation.
<b>Tcl/Tk</b>
**Tcl/Tk**
Version 8.5 or 8.6: http://www.tcl.tk/software/tcltk/download.html
<b>Doxygen</b>
**Doxygen**
Version 1.8.4 or above: http://www.stack.nl/~dimitri/doxygen/download.html
<b>MiKTeX</b> or equivalent tool (only needed for PDF document creation): http://miktex.org/download
**MiKTeX** or other package providing **pdflatex** command (only needed for generation of PDF documents): http://miktex.org/download
**Note**: to generate pdf documentation with MiKTeX you should execute gendoc.bat within MiKTeX environment
(run gendoc.bat in MiKTeX command promt or update PATH for MiKTeX bin folder). Also in process of pdf generation
MiKTeX can request you to download missing packages if MiKTeX was installed with option below:
**Inkscape** (only needed for generation of PDF documents containing SVG images): http://www.inkscape.org/download
@image html /dev_guides/documentation/images/documentation_image002.png
@image latex /dev_guides/documentation/images/documentation_image002.png
When generating PDF documentation, **pdflatex** and **inkscape** executables should be accessible by PATH variable.
You can use *custom.bat* file to add necessary paths to the *PATH* variable.
If this option is set to "Yes", MiKTeX will download missing packages automatically.
Note that in the process of PDF generation MiKTeX may need some packages not installed by default.
We recommend setting option "Install missing packages on-the-fly" to "Ask me first" (default) during MiKTeX installation:
<b>MathJax</b> is used for rendering math formulas in browser (HTML and CHM outputs): http://www.mathjax.org.
@figure{/dev_guides/documentation/images/documentation_miktex.png}
By default MathJAX scripts and fonts are taken from http://cdn.mathjax.org/mathjax/latest and no instalation of MathJAX is necessary if Internet is accessible.
If you need to use OCCT documentation while offline, you can install local copy of MatJAX, see http://www.mathjax.org/download/.
See \ref OCCT_DM_SECTION_A_9 paragraph for more details on inserting math.
On the first run of **pdflatex** it will open a dialog window prompting for installation of missing packages.
Follow the instructions to proceed (define proxy settings if needed, select a mirror site to download from, etc.).
**MathJax** is used for rendering math formulas in browser (HTML and CHM outputs): http://www.mathjax.org.
By default MathJAX scripts and fonts are taken from http://cdn.mathjax.org/mathjax/latest and no installation of MathJAX is necessary if Internet is accessible.
If you need to use OCCT documentation while off-line, you can install a local copy of MatJAX, see http://www.mathjax.org/download/.
See \ref OCCT_DM_SECTION_A_9 for more details on inserting mathematical expressions.
@section OCCT_DM_SECTION_2_1 Documentation Generation
Run gendoc.bat from OCCT directory to generate all articles are defined in FILES.txt:
Run *gendoc.bat* from OCCT directory to generate all documents defined in *FILES.txt*:
gendoc.bat options:
*gendoc.bat* can be started with the following options:
* -html : To generate HTML files (cannot be used with -pdf);
* -pdf : To generate PDF files (cannot be used with -html);
* -m=\<modules_list\> : Specifies list of articles to generate. If it is not specified, all files, mentioned in FILES.txt are processed;
* -l=\<document_name\> : Specifies the article caption for a single document;
* -mathjax=\<path\> : Specifies path to non-default MathJAX installation
* -h : Prints help message;
* -v : Specifies the Verbose mode (info on all script actions is shown).
* <i>-html</i> : Generates HTML files (cannot be used with -pdf);
* <i>-pdf</i> : Generates PDF files (cannot be used with -html);
* <i>-m=\<modules_list\></i> : Specifies the list of documents to generate. If it is not specified, all files mentioned in *FILES.txt* are processed;
* <i>-l=\<document_name\></i> : Specifies the output document title;
* <i>-mathjax=\<path\></i> : Specifies the path to a non-default location of MathJAX;
* <i>-h</i> : Prints a help message;
* <i>-v</i> : Toggles the Verbose mode (info on all script actions is shown).
If you run the command without arguments (like example above) it will generate HTML documentation for all articles defined in FILES.txt.
If you run the command without arguments (like in the example above) it will generate HTML documentation for all documents defined in *FILES.txt*.
**Note**: the generation process generates PDF files for each article,
but in html case it generates common Html page with references to the ones.
**Note**
For generation of specific article specify path to corresponding MarkDown file (paths relative to *dox* subfolder can be given), for instance:
* In case of a PDF output the utility generates a separate PDF file for each document;
* In case of an HTML output the utility generates a common Table of contents containing references to all documents.
To generate the output for a specific document specify the path to the corresponding MarkDown file (paths relative to *dox* sub-folder can be given), for instance:
~~~~
% gendoc.bat -html -m=dev_guides/documentation/documentation.md
~~~~
Multiple files can be separated with comma:
Multiple files can be separated with commas:
~~~~
% gendoc.bat -html -m=MD_FILE_1,MD_FILE_2
~~~~
To specify an article name with -l option, use quotes to prevent incorrect interpretation of whitespaces:
Use quotes to specify an article name with <i>-l</i> option, which helps to prevent incorrect interpretation of white spaces:
~~~~
% gendoc.bat -pdf -m=MD_FILE_1 -l="Label of MD_FILE_1 document"
~~~~
@section OCCT_DM_SECTION_3 Documentation Conventions
This section contains information about conventions in the field of OCCT documentation file format,
structure of documentation directories, etc.
This section contains information about file format conventions, directories structure, etc.
@subsection OCCT_DM_SECTION_3_1 File Format
The format used for documentation is MarkDown with Doxygen extensions.
The MarkDown files have a "*.md" extension and are based on rules desribed in
\ref OCCT_DM_SECTION_A section.
The MarkDown files have a <i>*.md</i> extension and are based on rules described in \ref OCCT_DM_SECTION_A section.
@subsection OCCT_DM_SECTION_3_2 Directory Structure
@image html /dev_guides/documentation/images/documentation_image001.png
@image latex /dev_guides/documentation/images/documentation_image001.png
@figure{/dev_guides/documentation/images/documentation_folders.png}
Every separate article has own folder if images are used in it. These images
are stored into "images" subfolder.
Each document has its own folder if there are any images used in it. These images are stored in *images* subfolder.
If you want to use the same image for several documents, you can place it in *dox/resources* folder.
**Note**: To avoid incorrect image display, use a relative path to the image (starting from *dox* folder). For instance:
If you want to use the same image for several articles, you can place the one into "dox/resources" folder.
**Note**: Every article can use any image that is used by others articles. To avoid incorrect image
displaying, use relative path to the image (starting from dox folder). For instance
@verbatim
@image html /dev_guides/snv/images/snv_image001.svg
@figure{/dev_guides/documentation/images/documentation_test_image.svg}
@endverbatim
Result of generation of the documentation is:
%OCCT_DIR% / doc - a folder for generated articles;
* html/ - a directory for generated HTML pages;
* pdf/ - a directory for generated PDF files.
The documentation is generated in subfolder *doc* :
* *html* - a directory for generated HTML pages;
* *pdf* - a directory for generated PDF files.
@section OCCT_DM_SECTION_4 Adding a New Article
@section OCCT_DM_SECTION_4 Adding a New Document
- Place a new article into folder that is chosen taking into account the place of the article
at the hierarchy of the documentation. For instance the article about "using SVN working with OCCT
source code" (svn.md - the file of the article) might be placed into /dox/dev_guides/ . If the article has images then you may create
the own folder of the article and subfolder in it for images. For instance
*/dox/dev_guides/svn/ - for svn.md file
*/dox/dev_guides/svn/images/ - for images
Place a new document in the folder taking into account its logical position in the documentation hierarchy. For instance, the document *svn.md* about the use of SVN to work with OCCT source code can be placed into <i>/dox/dev_guides/</i>.
If there are images in the document, it should be placed in its own folder containing a subfolder for images. For instance:
* <i> /dox/dev_guides/svn/ </i> - for *svn.md* file;
* <i> /dox/dev_guides/svn/images/ </i> - for images.
Add a relative path to *svn.md* in file <i>dox/FILES.txt</i>. For instance
- Update dox/FILES.txt to add relative path to svn.md. For instance
@verbatim
dev_guides/snv/svn.md
dev_guides/svn/svn.md
@endverbatim
**Note**: the place of the relative path to an article is connected with the place
into treeview of html version.
**Note** that the order of paths to documents in *FILES.txt* is reproduced in the Table of Contents in the HTML output. Please, place them logically.
Note, that you should specify a file tag, not the document name.
See <a href="#OCCT_DM_SECTION_A_1">Header section</a> for details.
**Note** that you should specify a file tag, not the document name. See <a href="#OCCT_DM_SECTION_A_1">Header section</a> for details.
@section OCCT_DOC_SECTION_5 Additional Resources
@ -131,69 +135,60 @@ http://www.stack.nl/~dimitri/doxygen/manual
@section OCCT_DM_SECTION_A Appendix 1: Document Syntax
Each OCCT document file in *.md format has a simple structure.
It can contain:
| Content type | Obligation |
| :---------------- | :-------------------: |
| Header | M |
| Footer | M |
| Plain text | O |
| List | O |
| Table | O |
| Code | O |
| Formula | O |
| Image | O |
| Page numbers | M (auto generation) |
| Table of contents | M (auto generation) |
The legend:
* M is for Mandatory
* O is for Optional
@subsection OCCT_DM_SECTION_A_1 Text Caption (a header)
headings of different levels can be specified with the following code:
A document file in *.md format must start with a proper header defining a caption and a unique tag.
@verbatim
Header 1 {#header1}
=======
Documentation System {#dev_guides__documentation}
=====================
@endverbatim
to get
The document structure is formed by sections that must be defined consistently.
Header 1
=========
The document can contain plain text, lists, tables, code snippets, images, math, etc.
Any specific text elements can be introduced by Markdown language tags or by usual HTML tags.
and with the following code:
The table of contents, page numbers (in PDF), and figure numbers (in PDF) are generated automatically.
@subsection OCCT_DM_SECTION_A_1 Headers and hierarchic document structure
Headers of different levels can be specified with the following tags:
* <i>\@section</i> - for the first-level headers;
* <i>\@subsection</i> - for the second level headers;
* <i>\@subsubsection</i> - for the third level headers.
For example:
@verbatim
Header 2 {#header2}
--------
@section occt_ocaf_1 Basic Concepts
@subsection occt_ocaf_1_1 Applications and Documents
@subsubsection occt_ocaf_1_1_1 The document and the data framework
@endverbatim
to get
Please, note that section names can be used for references within the document and in other documents, so it is necessary to use the common prefix indicative of the document name for all section names in the given document.
For example, *occt_ocaf* for sections in Open CASCADE Application Framework manual.
Header 2
---------
The remaining part of section names in most documents consists only of numbers, for example *1_1*. Actually, the hierarchical structure of the output table of contents is not based on these numbers and is generated automatically.
Where a word in curly braces is a MarkDown-style reference, which can be used in table of contents.
If you would like to have the table of contents, it is recommended to use \@section,
\@subsection and \@subsubsection pages instead of MarkDown headers as follows:
The numbers are only indicative of a section location in the body of the document. However, duplicate section names in a document inevitably cause errors during generation.
@verbatim
@section Section_Name Section Header
@subsection SubSection_Name SubSection Header
@subsubsection SubSubSection_Name SubSubSection Header
@endverbatim
If you insert a section in the middle of a big document, do not renumber the document to the end (which is inefficient and error prone), but choose an arbitrary number or letter, not yet used in the document section naming, and base the naming in this section on it.
The section hierarchy is limited to three levels and further levels cannot be presented in the Table of Contents.
However, the fourth and fifth level headers can be tagged with <i>####</i> and <i>#####</i> correspondingly.
It is also possible to use tags <i>##</i> and <i>###</i> for second and third level headers if you do not wish to show them in the table of contents or make references to them.
@subsection OCCT_DM_SECTION_A_2 Plain Text
Plain text is a text in a notepad-like format. To insert special symbols,
like \< , \> or \\, prepend them with \\ character: \\\<, \\\>, \\\\
To emphasize some words, write one pair of asterisks ( * ) or underscores ( _ ) across the word
to make it *italic* and two pairs of these symbols to make a word **Bold**.
A plain text is organized in paragraphs, separated by empty lines in MarkDown source.
The length of lines is not restricted; it is recommended to put each sentence on a separate line -- this is optimal for easier comparison of different versions of the same document.
To insert special symbols, like \< , \> or \\, prepend them with \\ character: \\\<, \\\>, \\\\, etc.
To emphasize a word or a group of words, wrap the text with one pair of asterisks (*) or underscores (_) to make it *italic* and two pairs of these symbols to make it **Bold**.
**Note** that if your emphasized text starts or ends with a special symbol, the asterisks may not work. Use explicit HTML tags \<i\>\</i\> and \<b\>\</b\> instead.
@subsection OCCT_DM_SECTION_A_3 Lists
@ -224,7 +219,7 @@ then a space. Numbered lists can also be nested. Thus this code
1. Sub-item 1
2. Sub-item 2
2. List item 2
3. List item 3
4. List item 3
@endverbatim
produces this list:
@ -235,6 +230,11 @@ produces this list:
2. List item 2
3. List item 3
**Note** that numbers of list items in the output are generated so they do not necessarily follow the numbering of source items.
In some cases automatic generation adversely restarts the numbering, i.e. you get list items 1. 1. 1. instead of 1. 2. 3. in the output.
The use of explicit HTML tags \<ol\>\</ol\> and \<li\>\</li\> can help in this case.
Each list item can contain several paragraphs of text; these paragraphs must
have the same indentation as text after bullet or number in the numbered list
item (otherwise numbering will be broken).
@ -244,29 +244,7 @@ Code blocks can be inserted as paragraphs with additional indentation
and their use may cause numeration to be reset.
Example of complex nested list:
@verbatim
1. ListItem_1
Additional paragraph
code fragment
One more paragraph
1. Sub-item 1
code fragment for sub-item 1
2. Sub-item 2
Paragraph for sub-item 2
Yet one more paragraph for list item 1
2. ListItem_2
@endverbatim
Example of a complex nested list:
1. List item 1
@ -288,8 +266,6 @@ Example of complex nested list:
2. List item 2
Note that numbers of paragraphs are regenerated so they do not necessarily
follow numbering of source items.
@subsection OCCT_DM_SECTION_A_4 Tables
@ -326,19 +302,19 @@ which will looks as follows:
| 10 | 10 | 10 |
| 1000 | 1000 | 1000 |
Note that each table raw should be contained in one line of text; complex
tables can be created using HTML tags.
Note that each table row should be contained in one line of text; complex tables can be created using HTML tags.
@subsection OCCT_DM_SECTION_A_5 Code Blocks
It is recommended to indent a code lines with 4 spaces.
Paragraphs indented with 4 or more spaces are considered as code fragments and rendered using Courier font.
Example:
This line is indented by 4 spaces and rendered as a code block.
A fenced code block does not require indentation, and is defined by a pair of "fence lines".
Such line consists of 3 or more tilde (~) characters on a line.
The end of the block should have the same number of tildes. Here is an example:
~~~~~~~~~~~~~~~~~~~~~~~
a one-line code block
~~~~~~~~~~~~~~~~~~~~~~~
The end of the block should have the same number of tildes.
Thus it is strongly advised to use only three or four tildes.
By default the output is the same as for a normal code block.
To highlight the code, the developer has to indicate the typical file extension,
@ -346,68 +322,79 @@ which corresponds to the programming language, after the opening fence.
For highlighting according to the C++ language, for instance, write the following code (the curly braces and dot are optional):
@verbatim
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
~~~{.cpp}
int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
@endverbatim
which will produce:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
~~~{.cpp}
int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
Verbatim content can be written by using framing \@verbatim \@endverbatim . For instance
verbatim text
Smaller code blocks can be inserted by wrapping with tags <i>\@code</i> and <i>\@endcode</i>.
Verbatim content (same as code but without syntax highlighting) can be inserted by wrapping with tags <i>\@verbatim</i> and <i>\@endverbatim</i>.
@subsection OCCT_DM_SECTION_A_6 References
To insert a reference to a website, it is proposed to write a URL. For example: http://en.wikipedia.org
To insert a reference to another part of the same document, the developer can write:
To insert a reference to a website, it is sufficient to write an URL.
For example: http://en.wikipedia.org
@verbatim
@htmlonly
<a href="#OCCT_DOC_SECTION_5">Doxygen Configuration file</a>
@endhtmlonly
@endverbatim
To insert a reference to a document or its subsection, use command <i>\@ref</i> followed by the document or section tag name.
For instance, @code @ref OCCT_DM_SECTION_A @endcode will be rendered as @ref OCCT_DM_SECTION_A.
to get a link to paragraph : @htmlonly <a href="#OCCT_DOC_SECTION_5">Doxygen configuration</a> @endhtmlonly
Note that links between documents will not work in PDF output if each document is generated independently.
Hence it is recommended to add a name of the referenced section after the tag name in the <i>\@ref</i> command (in quotes): this will guarantee that the reference is recognizable for the reader even if the cross-link is not instantiated.
For instance: @code @ref occt_modat_1 "Geometry Utilities" @endcode will be rendered as @ref occt_modat_1 "Geometry Utilities".
@subsection OCCT_DM_SECTION_A_7 Images
To insert image into document the developer can write the following code(in Doxygen-style):
For inserting images into the document use the command <i>\@figure</i>, as follows:
For HTML document:
@verbatim
@image html /relative/path/to/image/image001.png "Image caption"
@figure{/relative/path/to/image/image_file_name.png,"Image caption"}
@endverbatim
For latex document:
The first argument is a path to the image file, relative to the *dox* folder.
The supported formats for images are PNG, JPG, and SVG.
The file extension must be lowercase and correspond to the file format.
The image file name should have no dots except for the one before extension (names with more than one dot confuse **pdflatex**).
The second argument is optional, it defines the caption for the image to be inserted.
The caption argument, if given, should be quoted, even if it is a single word.
Captions are included below the image; in PDF output the images with caption are numbered automatically.
Example:
@verbatim
@image latex /relative/path/to/image/image001.png "Image caption"
@figure{/dev_guides/documentation/images/documentation_test_image.svg,"Test SVG image"}
@endverbatim
*Note*: When markdown document is used to generate html document the latex insertion is ignored (and vice versa)
due to this fact you can use image insertions in the pair, like example below:
is rendered as:
@figure{/dev_guides/documentation/images/documentation_test_image.svg,"Test SVG image"}
We recommend using **Inkscape** for creation and edition of vector graphics.
The graphics created in MS Word Draw and some other vector editors can be copy-pasted to Inkscape and saved as SVG images.
Note that the image that will be included in documentation is the whole page of the Inkscape document; use option "Resize page to content" in menu **File -> Document properties** of Inkscape to fit page dimensions to the picture (adding margins as necessary).
Note that the *figure* command is an alias to the standard Doxygen command *image* repeated twice: once for HTML and then for Latex output (used for PDF generation). Thus if HTML and PDF outputs should include different images or captions, command "image" can be used:
@verbatim
@image html /relative/path/to/image/image001.png "Image caption"
@image latex /relative/path/to/image/image001.png "Image caption"
@image html /relative/path/to/image/occ_logo.png
@image latex /relative/path/to/image/occ_logo.png "OCC logo"
@endverbatim
The code below tells Doxygen to insert a picture right in the place this code was written:
@verbatim
@image html /resources/occ_logo.png "OCCT logo"
@image latex /resources/occ_logo.png "OCCT logo"
@endverbatim
@image html /resources/occ_logo.png "OCCT logo"
@image latex /resources/occ_logo.png "OCCT logo"
@image html /resources/occ_logo.png
@image latex /resources/occ_logo.png "OCC logo"
@subsection OCCT_DM_SECTION_A_8 Table Of Contents
To get the table of contents at the beginning of the document, write \@tableofcontents tag.
But it is not needed now because TreeView option for HTML is used.
Use \@tableofcontents tag to get the table of contents at the beginning of the document.
Actually, it is not strictly necessary now because TreeView option for HTML is used.
The TOC in the PDF document will be generated automatically.
@subsection OCCT_DM_SECTION_A_9 Formulas
@ -445,8 +432,10 @@ gives the following result:
\right|
@f$
2.Formulas can also be put between @verbatim \begin{align} @endverbatim and @verbatim \end{align} @endverbatim tags. An example:
2.Formulas can also be put between @verbatim \begin{align} @endverbatim and @verbatim \end{align} @endverbatim tags.
For example:
@verbatim
\begin{align}
\dot{x} & = \sigma(y-x) \\

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="443.5307"
height="187.48862"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="test_image.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="295.90235"
inkscape:cy="-323.77532"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1366"
inkscape:window-height="716"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:snap-page="false"
borderlayer="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-79.097656,-21.098232)">
<path
sodipodi:type="spiral"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path2985"
sodipodi:cx="142.85715"
sodipodi:cy="126.6479"
sodipodi:expansion="1"
sodipodi:revolution="3"
sodipodi:radius="73.178566"
sodipodi:argument="-18.174814"
sodipodi:t0="0"
d="m 142.85715,126.6479 c 2.86505,2.29205 -1.67612,4.99285 -3.80953,4.76191 -5.78142,-0.62584 -7.49143,-7.75205 -5.71428,-12.38096 3.17892,-8.28004 13.59119,-10.36558 20.95239,-6.66665 10.80286,5.42832 13.31404,19.50561 7.61903,29.52381 -7.59056,13.35269 -25.44626,16.29352 -38.09525,8.5714 -15.91746,-9.71749 -19.28891,-31.39926 -9.52378,-46.66667 11.82689,-18.490884 37.35922,-22.29349 55.23811,-10.476151 21.06966,13.926321 25.30383,43.323481 11.42852,63.809531 -16.01959,23.65196 -49.29063,28.31803 -72.38096,12.3809 C 82.334702,151.39625 77.236493,114.2452 95.238126,88.552628 115.43324,59.729444 156.46861,54.198885 184.76195,74.26698 c 31.41097,22.27939 37.37404,67.20227 15.23802,98.09525" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="225.71429"
y="55.219326"
id="text2987"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2989"
x="225.71429"
y="55.219326">Test SVG image</tspan></text>
<path
style="fill:#d40000"
id="path2996"
d="m 225.93253,80.077991 c 3.24312,6.556366 8.29882,11.800272 13.5792,16.763957 4.5107,4.980932 7.56994,10.929012 10.6621,16.828992 2.61039,5.79272 3.86714,11.94331 7.08009,17.44901 3.75425,6.35398 6.70021,13.19689 8.79217,20.27197 4.84784,15.88966 11.74851,2.45314 -37.25143,18.61001 -0.78487,0.2588 0.15562,-1.64589 0.20424,-2.47091 0.0536,-0.90872 0.0682,-1.81932 0.10224,-2.72899 0.17911,-6.50471 -0.15488,-13.01656 0.28271,-19.50992 0.46019,-6.30504 2.24023,-12.34988 4.0286,-18.37582 2.36519,-5.44796 6.30711,-10.00347 9.73908,-14.79837 3.98599,-5.97976 8.02146,-11.96839 13.10341,-17.072556 4.37574,-4.432922 8.35123,-9.243914 12.37764,-13.99199 4.43478,-4.829914 10.15101,-8.139537 15.06208,-12.425011 14.95925,-12.429871 35.2123,-18.385688 51.95332,-26.62658 11.5059,-5.663868 -23.27039,10.786567 -34.90558,16.179851 17.6228,-9.547136 35.52389,-19.290175 55.17352,-23.555822 4.29932,-0.713125 2.15416,-0.406331 6.43505,-0.923403 0,0 -35.68459,22.595324 -35.68459,22.595324 l 0,0 c -4.12774,0.727408 -2.06126,0.312559 -6.19873,1.248113 -3.11612,0.864072 -6.22731,1.766121 -9.25625,2.908329 -0.8427,0.317783 -3.30812,1.424428 -2.49421,1.03881 40.69568,-19.281166 46.47137,-22.237336 32.54467,-15.189227 -79.1837,37.555094 -31.13152,14.703661 -6.06008,3.03043 4.62777,-2.154687 -15.27783,7.276298 -11.28272,6.532336 -1.75524,1.522667 -3.27126,3.31763 -5.09432,4.758404 -3.18452,2.516733 -7.13492,4.190007 -9.93487,7.239896 -4.62518,4.303389 -8.28044,9.606276 -12.50569,14.296007 -0.80437,0.69437 -4.493,3.820284 -5.21444,4.670532 -2.98505,3.518007 -5.33483,7.691189 -8.08882,11.393589 -2.92337,4.905278 -6.62131,9.277358 -10.15131,13.755678 -2.01215,5.68475 -3.56944,11.57461 -4.40544,17.54154 -0.83081,6.35553 -0.13439,12.77693 -0.29528,19.17264 -0.0102,1.50844 -0.0276,5.46288 -0.0732,5.48876 -34.08891,19.36365 -36.17581,33.13461 -40.63381,14.4297 -1.84609,-6.79718 -4.68694,-13.28977 -8.31428,-19.32972 -3.24304,-5.58446 -4.82126,-11.64528 -7.31615,-17.57296 -2.8174,-5.54315 -5.55105,-11.15816 -9.9264,-15.68612 -5.41001,-5.49645 -10.6705,-11.1173 -14.41843,-17.919019 0,0 38.38591,-18.02746 38.38591,-18.02746 z"
inkscape:connector-curvature="0"
transform="translate(84.097656,26.098232)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -83,6 +83,10 @@ proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generato
# Keep doxygen comments within code blocks
puts $doxyFile "STRIP_CODE_COMMENTS = NO"
# Define alias for inserting images to both HRML and PDF at once
puts $doxyFile "ALIASES += figure\{1\}=\"\\image html \\1 \\n \\image latex \\1\""
puts $doxyFile "ALIASES += figure\{2\}=\"\\image html \\1 \\2 \\n \\image latex \\1 \\2\""
set PARAM_INPUT "INPUT ="
set PARAM_IMAGEPATH "IMAGE_PATH = $inputDir/resources/ "
@ -311,6 +315,9 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
if {[file exists $DOCNAME] == 1} {
file delete -force $DOCNAME
}
set year [clock format [clock seconds] -format {%Y}]
set texfile [open $DOCNAME w]
puts $texfile "\\batchmode"
@ -385,8 +392,8 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
puts $texfile "\\fancyhead\[RO\]{\\fancyplain{}{\\bfseries\\thepage}}"
puts $texfile "\\fancyfoot\[LE\]{\\fancyplain{}{}}"
puts $texfile "\\fancyfoot\[CE\]{\\fancyplain{}{}}"
puts $texfile "\\fancyfoot\[RE\]{\\fancyplain{}{\\bfseries\\scriptsize (c) Open CASCADE 2001\-2013}}"
puts $texfile "\\fancyfoot\[LO\]{\\fancyplain{}{\\bfseries\\scriptsize (c) Open CASCADE 2001\-2013}}"
puts $texfile "\\fancyfoot\[RE\]{\\fancyplain{}{\\bfseries\\scriptsize Copyright (c) Open CASCADE $year}}"
puts $texfile "\\fancyfoot\[LO\]{\\fancyplain{}{\\bfseries\\scriptsize Copyright (c) Open CASCADE $year}}"
puts $texfile "\\fancyfoot\[CO\]{\\fancyplain{}{}}"
puts $texfile "\\fancyfoot\[RO\]{\\fancyplain{}{}}"
puts $texfile "\\renewcommand{\\footrulewidth}{0.4pt}"
@ -484,6 +491,8 @@ proc OverviewDoc_ProcessTex {{texFiles {}} {latexDir} verboseMode} {
while {1} {
set line [gets $IN_F]
if { [string first "\\includegraphics" $line] != -1 } {
# replace svg extension by pdf
set line [regsub {[.]svg} $line ".pdf"]
# Center images in TeX files
set line "\\begin{center}\n $line\n\\end{center}"
} elseif { [string first "\\subsection" $line] != -1 } {
@ -509,6 +518,25 @@ proc OverviewDoc_ProcessTex {{texFiles {}} {latexDir} verboseMode} {
}
}
# Convert SVG files to PDF format to allow including them to PDF
# (requires InkScape to be in PATH)
proc OverviewDoc_ProcessSvg {latexDir verboseMode} {
foreach file [glob -nocomplain $latexDir/*.svg] {
if {$verboseMode == "YES"} {
puts "INFO: Converting file $file"
}
set pdffile "[file rootname $file].pdf"
if { [catch {exec inkscape -z -D --file=$file --export-pdf=$pdffile} res] } {
puts "Error: $res"
puts "Conversion failed; check that Inkscape is in PATH!"
puts "SVG images will be lost in PDF documents"
return
}
}
}
# Main procedure for documents compilation
proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchMode hhcPath mathjaxLocation} {
@ -556,16 +584,17 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchM
OverviewDoc_MakeDoxyfile $CASROOT "$OUTDIR/overview" $TAGFILEDIR $DOXYFILE $generatorMode $docfiles $verboseMode $searchMode $hhcPath $mathjax_relative_location
# Run doxygen tool
set starttimestamp [clock format [clock seconds] -format {%Y-%m-%d %H:%M}]
if { $generatorMode == "HTML_ONLY"} {
puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generating HTML files..."
puts "$starttimestamp Generating HTML files..."
} elseif { $generatorMode == "CHM_ONLY" } {
puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generating CHM file..."
puts "$starttimestamp Generating CHM file..."
}
set RESULT [catch {exec doxygen $DOXYFILE > $OUTDIR/doxygen_out.log} DOX_ERROR]
if {$RESULT != 0} {
if {[llength [split $DOX_ERROR "\n"]] > 1} {
if {$verboseMode == "YES"} {
puts "See Doxygen log in $OUTDIR/doxygen_warnings_and_errors.log"
puts "Error running Doxygen; see log in\n$OUTDIR/doxygen_warnings_and_errors.log"
}
set DOX_ERROR_FILE [open "$OUTDIR/doxygen_warnings_and_errors.log" "w"]
puts $DOX_ERROR_FILE $DOX_ERROR
@ -607,6 +636,11 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchM
}
OverviewDoc_ProcessTex $TEXFILES $LATEXDIR $verboseMode
if {$verboseMode == "YES"} {
puts "Converting SVG images to PNG format..."
}
OverviewDoc_ProcessSvg $LATEXDIR $verboseMode
if {$verboseMode == "YES"} {
puts "Generating PDF files from TeX files..."
}
@ -624,7 +658,7 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchM
if {$RESULT != 0} {
if {[llength [split $LaTeX_ERROR "\n"]] > 1} {
if {$verboseMode == "YES"} {
puts "See Latex log in $OUTDIR/pdflatex_warnings_and_errors.log"
puts "Errors running Latex; see log in \n$OUTDIR/pdflatex_warnings_and_errors.log"
}
set LaTeX_ERROR_FILE [open "$OUTDIR/pdflatex_warnings_and_errors.log" "w"]
puts $LaTeX_ERROR_FILE $LaTeX_ERROR
@ -640,7 +674,7 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchM
}
if {![file exists "$LATEXDIR/refman.pdf"]} {
puts "Error: file $LATEXDIR/refman.pdf does not exist"
puts "Error: Latex failed to create $LATEXDIR/refman.pdf"
return
}
@ -651,13 +685,12 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchM
cd $INDIR
puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generation completed"
if { $generatorMode == "HTML_ONLY" } {
puts "View generated HTML documentation by opening: "
set RESFILE $OUTDIR/overview/html/index.html
puts "$RESFILE"
puts "View generated HTML documentation by opening:"
puts "$OUTDIR/overview/html/index.html"
}
if { $generatorMode == "PDF_ONLY" } {
puts "PDF files are generated in: "
puts "$OUTDIR/overview/pdf folder"
puts "PDF files are generated in folder:"
puts "$OUTDIR/overview/pdf"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -0,0 +1,512 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="ocaf.svg">
<defs
id="defs4">
<clipPath
id="clipEmfPath1"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3001"
height="22.583204"
width="33.706238"
y="12.49604"
x="23.173038" />
</clipPath>
<clipPath
id="clipEmfPath2"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3004"
height="22.583204"
width="33.856712"
y="193.16167"
x="176.50632" />
</clipPath>
<clipPath
id="clipEmfPath3"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3007"
height="22.583204"
width="33.706238"
y="12.49604"
x="316.59788" />
</clipPath>
<clipPath
id="clipEmfPath4"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3010"
height="22.583204"
width="33.856712"
y="193.16167"
x="469.93116" />
</clipPath>
<clipPath
id="clipEmfPath5"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3013"
height="22.583204"
width="33.856712"
y="97.258332"
x="382.35513" />
</clipPath>
<clipPath
id="clipEmfPath1-1"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3132"
height="44.154422"
width="125.37695"
y="131.71234"
x="271.49972" />
</clipPath>
<clipPath
id="clipEmfPath2-7"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3135"
height="44.154422"
width="125.37695"
y="212.8123"
x="271.49972" />
</clipPath>
<clipPath
id="clipEmfPath3-4"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3138"
height="44.154422"
width="107.3371"
y="212.8123"
x="433.85835" />
</clipPath>
<clipPath
id="clipEmfPath4-0"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3141"
height="17.121102"
width="549.31338"
y="293.91226"
x="0.90199242" />
</clipPath>
<clipPath
id="clipEmfPath5-9"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3144"
height="18.022213"
width="333.7372"
y="338.51723"
x="72.61039" />
</clipPath>
<clipPath
id="clipEmfPath6"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3147"
height="18.022213"
width="342.75712"
y="374.56166"
x="72.61039" />
</clipPath>
<clipPath
id="clipEmfPath7"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3150"
height="18.022213"
width="243.53795"
y="410.60608"
x="135.74986" />
</clipPath>
<clipPath
id="clipEmfPath1-4"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3337"
height="188.43307"
width="602.36218"
y="0"
x="0" />
</clipPath>
<clipPath
id="clipEmfPath2-8"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3340"
height="168.77963"
width="461.37103"
y="13.50237"
x="1.4999058" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="375"
inkscape:cy="845.71429"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1065"
inkscape:window-height="932"
inkscape:window-x="113"
inkscape:window-y="14"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g2989" />
<g
id="g3120" />
<g
id="g3342"
transform="translate(13.4445,5.5890899)">
<text
id="text3344"
style="font-size:12.44921875px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
y="188.43307"
x="464.07086"
xml:space="preserve"> </text>
<path
id="path3346"
d="m 0.93744115,8.4389813 0,178.7188687 462.40221885,0 0,-178.7188687 -462.40221885,0 z"
clip-path="url(#clipEmfPath1-4)"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path3348"
d="m 0.93744115,8.4389813 0,178.7188687 462.40221885,0 0,-178.7188687 z"
style="fill:none;stroke:#000000;stroke-width:0.93744117px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<text
id="text3350"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Wingdings 2"
y="49.958771"
x="10.499341"
xml:space="preserve"></text>
<text
id="text3352"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="36.156345"
x="17.248917"
xml:space="preserve">(</text>
<text
id="text3354"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="36.156345"
x="20.54871"
xml:space="preserve">-</text>
<text
id="text3356"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="36.156345"
x="23.848503"
xml:space="preserve">myWidth / 2., 0 , 0)</text>
<text
id="text3358"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="39.907005"
x="107.84323"
xml:space="preserve"> </text>
<text
id="text3360"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="39.907005"
x="124.49218"
xml:space="preserve"> </text>
<text
id="text3362"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="39.907005"
x="128.54193"
xml:space="preserve"> </text>
<text
id="text3364"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="39.907005"
x="143.24101"
xml:space="preserve"> </text>
<text
id="text3366"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="39.907005"
x="187.48824"
xml:space="preserve"> </text>
<text
id="text3368"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="39.907005"
x="231.73544"
xml:space="preserve"> </text>
<text
id="text3370"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Wingdings 2"
y="49.958771"
x="275.98267"
xml:space="preserve"></text>
<text
id="text3372"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="282.73224"
xml:space="preserve">(myWidth / </text>
<text
id="text3374"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="333.42908"
xml:space="preserve">2</text>
<text
id="text3376"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="338.82874"
xml:space="preserve">., </text>
<text
id="text3378"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="347.22821"
xml:space="preserve">0</text>
<text
id="text3380"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="352.77786"
xml:space="preserve"> </text>
<text
id="text3382"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="355.47769"
xml:space="preserve">, </text>
<text
id="text3384"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="361.17731"
xml:space="preserve">0</text>
<text
id="text3386"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="366.72699"
xml:space="preserve">)</text>
<text
id="text3388"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="61.210743"
x="369.87677"
xml:space="preserve"> </text>
<text
id="text3390"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Wingdings 2"
y="103.6682"
x="10.499341"
xml:space="preserve"></text>
<text
id="text3392"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="17.248917"
xml:space="preserve">(</text>
<text
id="text3394"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="20.54871"
xml:space="preserve">-</text>
<text
id="text3396"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="23.848503"
xml:space="preserve">myWidth / 2., </text>
<text
id="text3398"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="85.044662"
xml:space="preserve">-</text>
<text
id="text3400"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="88.344452"
xml:space="preserve">myThickness / 4.</text>
<text
id="text3402"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="163.33975"
xml:space="preserve"> </text>
<text
id="text3404"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="89.865776"
x="166.18958"
xml:space="preserve">, 0)</text>
<text
id="text3406"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="93.616432"
x="180.58865"
xml:space="preserve"> </text>
<text
id="text3408"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="93.616432"
x="187.48824"
xml:space="preserve"> </text>
<text
id="text3410"
style="font-size:14.99905872px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="93.616432"
x="231.73544"
xml:space="preserve"> </text>
<text
id="text3412"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Wingdings 2"
y="103.6682"
x="275.98267"
xml:space="preserve"></text>
<text
id="text3414"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="114.92017"
x="282.73224"
xml:space="preserve">(myWidth / 2., </text>
<text
id="text3416"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="114.92017"
x="347.22821"
xml:space="preserve">myThickne</text>
<text
id="text3418"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="114.92017"
x="395.52518"
xml:space="preserve">ss / 4.</text>
<text
id="text3420"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="114.92017"
x="422.22348"
xml:space="preserve"> </text>
<text
id="text3422"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="114.92017"
x="424.92331"
xml:space="preserve">, 0)</text>
<text
id="text3424"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="114.92017"
x="439.32242"
xml:space="preserve"> </text>
<text
id="text3426"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Wingdings 2"
y="137.27409"
x="145.49088"
xml:space="preserve"></text>
<text
id="text3428"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="137.27409"
x="152.24043"
xml:space="preserve"> </text>
<text
id="text3430"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="148.52608"
x="156.44019"
xml:space="preserve">(0 , </text>
<text
id="text3432"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="148.52608"
x="173.6891"
xml:space="preserve">-</text>
<text
id="text3434"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="148.52608"
x="176.98889"
xml:space="preserve">myThickness / 2. , 0)</text>
<text
id="text3436"
style="font-size:7.49952936px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="137.27409"
x="269.0831"
xml:space="preserve"> </text>
<text
id="text3438"
style="font-size:10.04936886px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial Unicode MS"
y="174.63065"
x="100.49369"
xml:space="preserve"> </text>
</g>
<g
id="g3501"
transform="translate(16.56497,18.45006)">
<text
id="text3503"
style="font-size:13.83647633px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
y="11.821392"
x="-0.15039648"
xml:space="preserve"> </text>
<path
id="path3505"
d="m 144.22083,160.60232 0,-153.7065083 c 0,-0.3410016 0.28199,-0.6251697 0.62978,-0.6251697 0.34779,0 0.62039,0.2841681 0.62039,0.6251697 l 0,153.7065083 c 0,0.35047 -0.2726,0.63464 -0.62039,0.63464 -0.34779,0 -0.62978,-0.28417 -0.62978,-0.63464 z M 141.0907,8.1650958 l 3.75991,-7.57781513 3.75991,7.57781513 z"
clip-path="url(#clipEmfPath0)"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15039648px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
id="path3507"
d="m 0.52638768,36.581902 418.17741232,0 c 0.33839,0 0.62039,0.284168 0.62039,0.62517 0,0.359946 -0.282,0.644114 -0.62039,0.644114 l -418.17741232,0 c -0.33839208,0 -0.62038548,-0.284168 -0.62038548,-0.644114 0,-0.341002 0.2819934,-0.62517 0.62038548,-0.62517 z M 417.44423,33.418165 l 7.51983,3.788907 -7.51983,3.788908 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15039648px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -52,8 +52,7 @@ This modeling requires four steps:
To create the bottle's profile, you first create characteristic points with their coordinates as shown below in the (XOY) plane. These points will be the supports that define the geometry of the profile.
@image html /tutorial/images/tutorial_image003.png
@image latex /tutorial/images/tutorial_image003.png
@figure{/tutorial/images/tutorial_image003.svg}
There are two classes to describe a 3D Cartesian point from its X, Y and Z coordinates in Open CASCADE Technology:
@ -67,7 +66,7 @@ To choose the best class for this application, consider the following:
* *Geom_CartesianPoint* is manipulated by handle and may have multiple references and a long lifetime.
Since all the points you will define are only used to create the profile's curves, an object with a limited lifetime will do. Choose the *gp_Pnt* class.
To instantiate a *gp_Pnt* object, just specify the X, Y, and Z coordinates of the points in the global cartesian coordinate system:
To instantiate a *gp_Pnt* object, just specify the X, Y, and Z coordinates of the points in the global Cartesian coordinate system:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
gp_Pnt aPnt1(-myWidth / 2., 0, 0);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,504 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="549.58691"
height="442.80087"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="ocaf3.svg">
<defs
id="defs4">
<clipPath
id="clipEmfPath1"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3001"
height="22.583204"
width="33.706238"
y="12.49604"
x="23.173038" />
</clipPath>
<clipPath
id="clipEmfPath2"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3004"
height="22.583204"
width="33.856712"
y="193.16167"
x="176.50632" />
</clipPath>
<clipPath
id="clipEmfPath3"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3007"
height="22.583204"
width="33.706238"
y="12.49604"
x="316.59787" />
</clipPath>
<clipPath
id="clipEmfPath4"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3010"
height="22.583204"
width="33.856712"
y="193.16167"
x="469.93115" />
</clipPath>
<clipPath
id="clipEmfPath5"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3013"
height="22.583204"
width="33.856712"
y="97.258331"
x="382.35513" />
</clipPath>
<clipPath
id="clipEmfPath1-1"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3132"
height="44.154423"
width="125.37695"
y="131.71234"
x="271.49973" />
</clipPath>
<clipPath
id="clipEmfPath2-7"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3135"
height="44.154423"
width="125.37695"
y="212.8123"
x="271.49973" />
</clipPath>
<clipPath
id="clipEmfPath3-4"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3138"
height="44.154423"
width="107.3371"
y="212.8123"
x="433.85834" />
</clipPath>
<clipPath
id="clipEmfPath4-0"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3141"
height="17.121101"
width="549.31335"
y="293.91226"
x="0.90199244" />
</clipPath>
<clipPath
id="clipEmfPath5-9"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3144"
height="18.022213"
width="333.73721"
y="338.51724"
x="72.61039" />
</clipPath>
<clipPath
id="clipEmfPath6"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3147"
height="18.022213"
width="342.75711"
y="374.56165"
x="72.61039" />
</clipPath>
<clipPath
id="clipEmfPath7"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3150"
height="18.022213"
width="243.53795"
y="410.60608"
x="135.74986" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70698094"
inkscape:cx="287.00859"
inkscape:cy="22.17673"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1065"
inkscape:window-height="932"
inkscape:window-x="22"
inkscape:window-y="22"
inkscape:window-maximized="0"
inkscape:snap-page="false"
inkscape:snap-bbox="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-63.736307,-64.65625)">
<g
id="g2989" />
<g
id="g3120" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath1-1)"
d="m 270.99235,207.81864 0,54.06664 126.27894,0 0,-54.06664 -126.27894,0 z"
id="path3166"
transform="matrix(1.0333295,0,0,1.0465218,64.357675,64.546499)" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath2-7)"
d="m 433.35098,207.81864 0,54.06664 108.23909,0 0,-54.06664 -108.23909,0 z"
id="path3178"
transform="matrix(1.0333295,0,0,1.0465218,64.357675,64.546499)" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath3-4)"
d="m 0.39462168,288.9186 0,27.03332 550.21537832,0 0,-27.03332 -550.21537832,0 z"
id="path3188"
transform="matrix(1.0333295,0,0,1.0465218,64.357675,64.546499)" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15033206px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
clip-path="url(#clipEmfPath4-0)"
d="m 325.73201,63.640939 0,56.826291 c 0,0.35669 -0.26308,0.61951 -0.62012,0.61951 -0.33824,0 -0.62012,-0.26282 -0.62012,-0.61951 l 0,-56.826291 c 0,-0.337916 0.28188,-0.619513 0.62012,-0.619513 0.35704,0 0.62012,0.281597 0.62012,0.619513 z m 3.13818,55.568491 -3.7583,7.50925 -3.7583,-7.50925 z"
id="path3198"
transform="matrix(1.0333295,0,0,1.0465218,64.357675,64.546499)" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath5-9)"
d="m 18.43447,370.01856 0,18.02221 45.099621,0 0,-18.02221 -45.099621,0 z"
id="path3240"
transform="matrix(1.0333295,0,0,1.0465218,64.357675,64.546499)" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath6)"
d="m 135.69348,406.06298 0,27.03332 243.53796,0 0,-27.03332 -243.53796,0 z"
id="path3254"
transform="matrix(1.0333295,0,0,1.0465218,64.357675,64.546499)" />
<text
xml:space="preserve"
x="215.31396"
y="504.24854"
style="font-size:14.38245487px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3256"
transform="scale(0.99367708,1.0063631)" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 490.93507,282.03324 0,56.58191 113.26111,0 0,-56.58191 z"
id="path3180" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:1.06878722px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 64.811308,366.95197 0,33.8571 548.659552,0 0,-33.8571 z"
id="path3190" />
<text
xml:space="preserve"
x="64.141869"
y="77.413521"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
id="text3154"
transform="scale(0.99367712,1.0063631)"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 344.38206,197.16036 0,56.58192 130.48776,0 0,-56.58192 -130.48776,0 z"
id="path3156" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:1.11373937px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 344.4504,197.2287 0,56.44524 169.95611,0 0,-56.44524 z"
id="path3158" />
<text
xml:space="preserve"
x="356.4809"
y="214.69417"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
id="text3160"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="463.68921"
y="186.10809"
style="font-size:31.02789688px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3162"
transform="scale(0.78359294,1.2761728)">Visualization</text>
<text
xml:space="preserve"
x="448.87256"
y="246.24217"
style="font-size:12.97547531px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3164"
transform="scale(0.99367712,1.0063631)"> </text>
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 344.38206,282.03324 0,56.58191 130.48776,0 0,-56.58191 z"
id="path3168" />
<text
xml:space="preserve"
x="356.4809"
y="299.0304"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000"
id="text3170"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="459.00015"
y="261.70831"
style="font-size:34.08923721px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3172"
transform="scale(0.82314176,1.2148576)">Shape</text>
<text
xml:space="preserve"
x="429.33118"
y="330.5784"
style="font-size:12.97547531px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3176"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="525.31842"
y="299.0304"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
id="text3182"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="628.04413"
y="255.03328"
style="font-size:31.91677094px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3184"
transform="scale(0.79737332,1.2541177)">Graphic</text>
<text
xml:space="preserve"
x="594.88574"
y="330.5784"
style="font-size:12.97547531px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3186"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="309.66422"
y="358.04483"
style="font-size:38.11062622px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3192"
transform="scale(0.89965906,1.1115322)">Kernel</text>
<text
xml:space="preserve"
x="370.39435"
y="381.80484"
style="font-size:12.97547531px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Times New Roman"
id="text3194"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="351.32196"
y="398.35971"
style="font-size:14.38245487px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
id="text3196"
transform="scale(0.99367712,1.0063631)"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15633102px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 270.30308,196.72815 70.26338,79.98089 c 0.23301,0.26523 0.21359,0.68762 -0.0583,0.92338 -0.26213,0.23576 -0.66991,0.21611 -0.91263,-0.0589 l -70.26338,-79.97107 c -0.23302,-0.27505 -0.2136,-0.68763 0.0583,-0.92339 0.26214,-0.24557 0.66992,-0.2161 0.91264,0.0491 z m 71.81681,76.82762 2.26217,8.47747 -8.0681,-3.26132 z"
id="path3200" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15633102px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 409.43296,253.74228 0,21.74868 c 0,0.37328 -0.27185,0.64833 -0.64079,0.64833 -0.34951,0 -0.64079,-0.27505 -0.64079,-0.64833 l 0,-21.74868 c 0,-0.35363 0.29128,-0.64833 0.64079,-0.64833 0.36894,0 0.64079,0.2947 0.64079,0.64833 z m 3.24277,20.43236 -3.88356,7.8586 -3.88356,-7.8586 z"
id="path3202" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.11878665px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 491.26208,253.69332 25.41321,24.57851 c 0.19618,0.18973 0.19618,0.49624 0,0.68598 -0.19618,0.18974 -0.51311,0.18974 -0.70929,0 l -25.4132,-24.5785 c -0.19618,-0.18974 -0.19618,-0.49624 0,-0.68599 0.19619,-0.18974 0.5131,-0.18974 0.70928,0 z m 26.48466,22.17028 2.12784,6.18842 -6.39858,-2.05795 z"
id="path3204" />
<path
inkscape:connector-curvature="0"
style="fill:#1c1c1c;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 157.97099,65.135894 0,66.012236 335.53993,0 0,-66.012236 -335.53993,0 z"
id="path3206" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 157.97099,65.135894 0,66.012236 335.53993,0 0,-66.012236 z"
id="path3208" />
<path
inkscape:connector-curvature="0"
style="fill:#1c1c1c;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 157.97099,131.14813 0,132.02447 139.80831,0 0,-132.02447 -139.80831,0 z"
id="path3210" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 157.97099,131.14813 0,132.02447 139.80831,0 0,-132.02447 z"
id="path3212" />
<path
inkscape:connector-curvature="0"
style="fill:#1c1c1c;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 167.29154,263.1726 0,75.44255 130.48776,0 0,-75.44255 -130.48776,0 z"
id="path3214" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 167.29154,263.1726 0,75.44255 130.48776,0 0,-75.44255 z"
id="path3216" />
<path
inkscape:connector-curvature="0"
style="fill:#1c1c1c;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 64.765449,263.1726 0,75.44255 102.526091,0 0,-75.44255 -102.526091,0 z"
id="path3218" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 64.765449,263.1726 0,75.44255 102.526091,0 0,-75.44255 z"
id="path3220" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15633102px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 112.00901,338.61515 0,21.74868 c 0,0.36346 -0.28156,0.64833 -0.64079,0.64833 -0.35923,0 -0.6505,-0.28487 -0.6505,-0.64833 l 0,-21.74868 c 0,-0.35364 0.29127,-0.64833 0.6505,-0.64833 0.35923,0 0.64079,0.29469 0.64079,0.64833 z m 3.24277,20.43237 -3.88356,7.85859 -3.88357,-7.85859 z"
id="path3222" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15633102px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 233.17621,338.61515 0,21.74868 c 0,0.36346 -0.28156,0.64833 -0.64079,0.64833 -0.35924,0 -0.6505,-0.28487 -0.6505,-0.64833 l 0,-21.74868 c 0,-0.35364 0.29126,-0.64833 0.6505,-0.64833 0.35923,0 0.64079,0.29469 0.64079,0.64833 z m 3.24277,20.43237 -3.88356,7.85859 -3.88356,-7.85859 z"
id="path3224" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15633102px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 409.43296,338.61515 0,21.74868 c 0,0.37329 -0.27185,0.64833 -0.64079,0.64833 -0.34951,0 -0.64079,-0.27504 -0.64079,-0.64833 l 0,-21.74868 c 0,-0.35364 0.29128,-0.64833 0.64079,-0.64833 0.36894,0 0.64079,0.29469 0.64079,0.64833 z m 3.24277,20.43237 -3.88356,7.85859 -3.88356,-7.85859 z"
id="path3226" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15633102px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 550.32809,340.02962 0,21.74868 c 0,0.37329 -0.27185,0.64833 -0.64079,0.64833 -0.34952,0 -0.64078,-0.27504 -0.64078,-0.64833 l 0,-21.74868 c 0,-0.35364 0.29126,-0.64833 0.64078,-0.64833 0.36894,0 0.64079,0.29469 0.64079,0.64833 z m 3.24278,20.43237 -3.88357,7.85859 -3.88356,-7.85859 z"
id="path3228" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 83.406557,414.05771 0,18.86064 46.602773,0 0,-18.86064 -46.602773,0 z"
id="path3230" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 83.406557,414.05771 0,18.86064 46.602773,0 0,-18.86064 z"
id="path3232" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 139.32988,414.05771 0,28.29096 344.86049,0 0,-28.29096 -344.86049,0 z"
id="path3234" />
<text
xml:space="preserve"
x="149.65495"
y="429.43918"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3236"
transform="scale(0.99367712,1.0063631)">OCAF (Open CASCADE Application Framework)</text>
<text
xml:space="preserve"
x="461.06635"
y="429.43918"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3238"
transform="scale(0.99367712,1.0063631)"> </text>
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.97706896px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 83.406557,451.77899 0,18.86063 46.602773,0 0,-18.86063 z"
id="path3242" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 139.32988,451.77899 0,28.29096 354.18104,0 0,-28.29096 -354.18104,0 z"
id="path3244" />
<text
xml:space="preserve"
x="149.65495"
y="466.92197"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3246"
transform="scale(0.99367712,1.0063631)">OCCT</text>
<text
xml:space="preserve"
x="190.30101"
y="466.92197"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3248"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="194.20929"
y="466.92197"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3250"
transform="scale(0.99367712,1.0063631)">Object Libraries required by OCAF</text>
<text
xml:space="preserve"
x="414.01071"
y="466.92197"
style="font-size:14.38245487px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3252"
transform="scale(0.99367712,1.0063631)"> </text>
<text
xml:space="preserve"
x="425.57922"
y="504.24854"
style="font-size:14.38245487px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3258"
transform="scale(0.99367712,1.0063631)"> </text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -44,8 +44,7 @@ The table below contrasts the design of a modeling application using object libr
The relationship between OCAF and the Open CASCADE Technology (**OCCT**) Object Libraries can be seen in the image below.
@image html /user_guides/ocaf/images/ocaf_image003.png "OCAF Architecture"
@image latex /user_guides/ocaf/images/ocaf_image003.png "OCAF Architecture"
@figure{/user_guides/ocaf/images/ocaf_image003.svg, "OCAF Architecture"}
In the image, the OCAF (Open CASCADE Application Framework) is shown with black rectangles and OCCT Object Libraries required by OCAF are shown with white rectangles.
@ -80,7 +79,7 @@ OCAF documents are in turn managed by an OCAF application, which is in charge of
Apart from their role as a container of application data, documents can refer to each other; Document A, for example, can refer to a specific label in Document B. This functionality is made possible by means of the reference key.
@subsection occt_ocaf_23 The document and the data framework
@subsection occt_ocaf_2_3 The document and the data framework
Inside a document, there is a data framework, a model, for example. This is a set of labels organized in a tree structure characterized by the following features:
* The first label in a framework is the root of the tree;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,398 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="492.48849"
height="306.85541"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="shape_heal.svg">
<defs
id="defs4">
<clipPath
id="clipEmfPath1"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3045"
height="188.43307"
width="602.36218"
y="0"
x="0" />
</clipPath>
<clipPath
id="clipEmfPath2"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3048"
height="168.77963"
width="461.37103"
y="13.50237"
x="1.4999058" />
</clipPath>
<clipPath
id="clipEmfPath1-1"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3221"
height="352.24017"
width="546.80316"
y="0"
x="0" />
</clipPath>
<clipPath
id="clipEmfPath2-7"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3224"
height="11.251283"
width="140.71368"
y="141.16611"
x="0.60005832" />
</clipPath>
<clipPath
id="clipEmfPath3"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3227"
height="11.251283"
width="140.86369"
y="141.16611"
x="177.31725" />
</clipPath>
<clipPath
id="clipEmfPath4"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3230"
height="11.251283"
width="140.86369"
y="140.86607"
x="350.28406" />
</clipPath>
<clipPath
id="clipEmfPath5"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3233"
height="11.251283"
width="140.71368"
y="276.48154"
x="175.06702" />
</clipPath>
<clipPath
id="clipEmfPath6"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3236"
height="11.251283"
width="140.71368"
y="214.07442"
x="175.96712" />
</clipPath>
<clipPath
id="clipEmfPath7"
clipPathUnits="userSpaceOnUse">
<rect
id="rect3239"
height="11.251283"
width="140.86369"
y="336.18835"
x="174.01692" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="346.95854"
inkscape:cy="41.972723"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="915"
inkscape:window-height="838"
inkscape:window-x="132"
inkscape:window-y="132"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-28.041461,-50.336628)">
<g
id="g2989" />
<g
id="g3000" />
<g
id="g3011" />
<g
id="g3022" />
<g
id="g3033" />
<g
id="g3209" />
<text
xml:space="preserve"
x="77.124359"
y="50.336628"
style="font-size:19.95194054px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3245"> </text>
<text
xml:space="preserve"
x="384.65424"
y="50.336628"
style="font-size:19.95194054px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3249"> </text>
<text
xml:space="preserve"
x="384.35422"
y="74.039337"
style="font-size:12.45121098px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3253"> </text>
<text
xml:space="preserve"
x="43.821121"
y="95.941833"
style="font-size:12.45121098px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3255"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath1-1)"
d="m -0.00937591,136.00926 0,21.24618 141.76378591,0 0,-21.24618 -141.76378591,0 z"
id="path3257"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 28.510257,137.89036 0,21.24618 141.763783,0 0,-21.24618 z"
id="path3259" />
<text
xml:space="preserve"
x="74.574112"
y="153.24837"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3261">ShapeFix</text>
<text
xml:space="preserve"
x="124.52896"
y="153.24837"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3263"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath2-7)"
d="m 176.82969,136.00926 0,21.24618 141.76378,0 0,-21.24618 -141.76378,0 z"
id="path3265"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 205.34932,137.89036 0,21.24618 141.76378,0 0,-21.24618 z"
id="path3267" />
<text
xml:space="preserve"
x="236.58987"
y="153.24837"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3269">ShapeUpgrade</text>
<text
xml:space="preserve"
x="315.94757"
y="153.24837"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3271"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath3)"
d="m 349.77776,135.82174 0,21.24617 141.76378,0 0,-21.24617 -141.76378,0 z"
id="path3273"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 378.29739,137.70284 0,21.24617 141.76378,0 0,-21.24617 z"
id="path3275" />
<text
xml:space="preserve"
x="411.35684"
y="152.94833"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3277">ShapeCustom</text>
<text
xml:space="preserve"
x="486.9642"
y="152.94833"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3279"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath4)"
d="m 174.44821,271.3997 0,21.24618 141.76378,0 0,-21.24618 -141.76378,0 z"
id="path3281"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 202.96784,273.2808 0,21.24618 141.76378,0 0,-21.24618 z"
id="path3283" />
<text
xml:space="preserve"
x="238.39005"
y="288.56381"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3285">ShapeExtend</text>
<text
xml:space="preserve"
x="309.64694"
y="288.56381"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3287"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
clip-path="url(#clipEmfPath5)"
d="m 175.3858,208.95508 0,21.24617 141.76378,0 0,-21.24617 -141.76378,0 z"
id="path3289"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 203.90543,210.83618 0,21.24617 141.76378,0 0,-21.24617 z"
id="path3291" />
<text
xml:space="preserve"
x="234.78969"
y="226.15668"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3293">ShapeAnalysis</text>
<text
xml:space="preserve"
x="314.89746"
y="226.15668"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3295"> </text>
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
clip-path="url(#clipEmfPath6)"
d="m 74.257219,158.83061 0,182.75835"
id="path3297"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 103.83926,342.96989 92.18396,0 c 0.35629,0 0.63756,0.28128 0.63756,0.63757 0,0.33754 -0.28127,0.61882 -0.63756,0.61882 l -92.18396,0 c -0.35628,0 -0.63756,-0.28128 -0.63756,-0.61882 0,-0.35629 0.28128,-0.63757 0.63756,-0.63757 z m 90.94634,-3.11286 7.50073,3.75043 -7.50073,3.75043 z"
id="path3299" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 103.70507,285.15091 94.06852,0 c 0.3469,0 0.62818,0.28128 0.62818,0.62819 0,0.34692 -0.28128,0.6282 -0.62818,0.6282 l -94.06852,0 c -0.34691,0 -0.62819,-0.28128 -0.62819,-0.6282 0,-0.34691 0.28128,-0.62819 0.62819,-0.62819 z m 92.82152,-3.12223 7.50073,3.75042 -7.50073,3.75043 z"
id="path3301" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 104.38951,221.9562 91.26512,0 c 0.34691,0 0.61881,0.28128 0.61881,0.6282 0,0.34691 -0.2719,0.62819 -0.61881,0.62819 l -91.26512,0 c -0.33753,0 -0.61881,-0.28128 -0.61881,-0.62819 0,-0.34692 0.28128,-0.6282 0.61881,-0.6282 z m 90.00875,-3.12223 7.50073,3.75043 -7.50073,3.75042 z"
id="path3303" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 276.34372,233.58253 0,33.00376 c 0,0.34691 -0.2719,0.6282 -0.61881,0.6282 -0.3469,0 -0.62818,-0.28129 -0.62818,-0.6282 l 0,-33.00376 c 0,-0.33754 0.28128,-0.61882 0.62818,-0.61882 0.34691,0 0.61881,0.28128 0.61881,0.61882 z m 3.13156,31.75674 -3.75037,7.50086 -3.75036,-7.50086 z"
id="path3305" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
d="m 453.74242,160.71171 0,59.06924"
id="path3307" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 452.98619,220.39977 -100.62228,0 c -0.35629,0 -0.63757,-0.28128 -0.63757,-0.61882 0,-0.35629 0.28128,-0.63757 0.63757,-0.63757 l 100.62228,0 c 0.35628,0 0.63756,0.28128 0.63756,0.63757 0,0.33754 -0.28128,0.61882 -0.63756,0.61882 z m -99.38466,3.13161 -7.50073,-3.75043 7.50073,-3.75043 z"
id="path3309" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 275.65928,158.82712 0,47.18976 c 0,0.34692 -0.28127,0.6282 -0.62818,0.6282 -0.33754,0 -0.61881,-0.28128 -0.61881,-0.6282 l 0,-47.18976 c 0,-0.34691 0.28127,-0.62819 0.61881,-0.62819 0.34691,0 0.62818,0.28128 0.62818,0.62819 z m 3.12218,45.94274 -3.75036,7.50086 -3.75037,-7.50086 z"
id="path3311" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 202.03025,332.9126 0,21.24618 141.76378,0 0,-21.24618 -141.76378,0 z"
id="path3313" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 202.03025,332.9126 0,21.24618 141.76378,0 0,-21.24618 z"
id="path3315" />
<text
xml:space="preserve"
x="249.19109"
y="348.2706"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3317">Message</text>
<text
xml:space="preserve"
x="296.7457"
y="348.2706"
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
id="text3319"> </text>
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
clip-path="url(#clipEmfPath7)"
d="m 174.31695,148.19815 -25.62437,0 c -0.34691,0 -0.62818,-0.28128 -0.62818,-0.62819 0,-0.34692 0.28127,-0.6282 0.62818,-0.6282 l 25.62437,0 c 0.34691,0 0.62818,0.28128 0.62818,0.6282 0,0.34691 -0.28127,0.62819 -0.62818,0.62819 z m -24.37737,3.12223 -7.50073,-3.75042 7.50073,-3.75043 z"
id="path3321"
transform="translate(28.519633,1.8811043)" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
d="m 277.91888,297.09602 0,33.00376 c 0,0.35629 -0.28128,0.61882 -0.63756,0.61882 -0.33754,0 -0.61881,-0.26253 -0.61881,-0.61882 l 0,-33.00376 c 0,-0.33754 0.28127,-0.61882 0.61881,-0.61882 0.35628,0 0.63756,0.28128 0.63756,0.61882 z m 3.1128,31.74737 -3.75036,7.50086 -3.75037,-7.50086 z"
id="path3323" />
<g
id="g3389"
transform="translate(103.61121,159.85132)">
<text
id="text3391"
style="font-size:21.59645653px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
y="197.34073"
x="-0.70423234"
xml:space="preserve"> </text>
<path
id="path3393"
d="m 0.74824682,0.41458137 0,183.67838863"
style="fill:none;stroke:#000000;stroke-width:1.46715069px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -14,8 +14,8 @@ The **Shape Healing** toolkit provides a set of tools to work on the geometry an
* upgrade shape characteristics for users needs, for example a C0 supporting surface can be upgraded so that it becomes C1 continuous.
The following diagram shows dependencies of API packages:
@image html /user_guides/shape_healing/images/shape_healing_image009.png "Shape Healing packages"
@image latex /user_guides/shape_healing/images/shape_healing_image009.png "Shape Healing packages"
@figure{/user_guides/shape_healing/images/shape_healing_image009.svg, "Shape Healing packages"}
Each sub-domain has its own scope of functionality:
* analysis - exploring shape properties, computing shape features, detecting violation of OCCT requirements (shape itself is not modified);