1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-03 17:56:21 +03:00

0024336: Content of OCCT documentation should be updated. Iter 2

Minor corrections in documentation (dev guides)

Finalized brep_wp guide (by DLN); entirely removed non-PNG images to provide smooth PDF generation;  Restored cross-guide links in Technical overview; small improvements and editing in GIT guide.

Resized some images to better fit on PDF pages.
This commit is contained in:
ysn 2013-11-28 12:17:08 +04:00 committed by bugmaster
parent 2e9fd4bc0d
commit dd21889ecf
519 changed files with 1001 additions and 1063 deletions

View File

@ -33,14 +33,13 @@ user_guides/ocaf_wp/ocaf_wp.md
user_guides/voxels_wp/voxels_wp.md
dev_guides/dev_guides.md
dev_guides/contribution/coding_rules.md
dev_guides/cdl/cdl.md
dev_guides/tests/tests.md
dev_guides/documentation/documentation.md
dev_guides/wok/wok.md
dev_guides/contribution/coding_rules.md
dev_guides/contribution_workflow/contribution_workflow.md
dev_guides/git_guide/git_guide.md
dev_guides/tests/tests.md
dev_guides/cdl/cdl.md
dev_guides/wok/wok.md
dev_guides/building/building.md
dev_guides/building/3rdparty/3rdparty_windows.md

View File

@ -1,4 +1,4 @@
Contribution Workflow {#dev_guides_contribution_workflow}
Contribution Workflow {#dev_guides__contribution_workflow}
====================================
@tableofcontents
@ -143,8 +143,8 @@ The definition of the following attributes is obligatory:
This is done to have the master branch history plain and clean.
The following picture illustrates the process:
@image html OCCT_ContributionWorkflow_V3_image002.jpg "Integration of several branches"
@image latex OCCT_ContributionWorkflow_V3_image002.jpg "Integration of several branches"
@image html OCCT_ContributionWorkflow_V3_image002.png "Integration of several branches"
@image latex OCCT_ContributionWorkflow_V3_image002.png "Integration of several branches"
The new master branch is tested against possible regressions that might appear due to interference between separate changes. When the tests are Ok, the new master is pushed to the official repository
and the original branches are removed from it.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View File

@ -6,9 +6,9 @@ The following documents provide information on OCCT building, development and te
* @subpage dev_guides__building "Building OCCT from sources"
* @subpage dev_guides__documentation "Documentation system"
* @subpage dev_guides__coding_rules "Coding Rules"
* Contribution Workflow
* Guide to installing and using Git for OCCT development
@subpage dev_guides__tests "Automatic Testing system"
* @subpage dev_guides__contribution_workflow "Contribution Workflow"
* @subpage dev_guides__git_guide "Guide to installing and using Git for OCCT development"
* @subpage dev_guides__tests "Automatic Testing system"
Two other documents provide details on obsolete technologies used by OCCT,
to be removed in future releases:

View File

@ -460,7 +460,7 @@ Equations can be written by several ways:
These formulas should be put between \@f\[ and \@f\] tags. An example:
@verbatim
@f$[
@f[
|I_2|=\left| \int_{0}^T \psi(t)
\left\{
u(a,t)-
@ -469,7 +469,7 @@ These formulas should be put between \@f\[ and \@f\] tags. An example:
\int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
\right\} dt
\right|
@f$]
@f]
@endverbatim
gives the following result:

View File

@ -1,4 +1,4 @@
Guide to installing and using Git for OCCT development {#dev_guides_git_guide}
Guide to installing and using Git for OCCT development {#dev_guides__git_guide}
=================================
@tableofcontents
@ -28,11 +28,11 @@ Guide to installing and using Git for OCCT development {#dev_guides_git_guide}
URL of the official OCCT source code Git repository (accessed by SSH protocol) is:
gitolite@git.dev.opencascade.org:occt
gitolite@git.dev.opencascade.org:occt
or
ssh://gitolite@git.opencascade.org/occt.git
ssh://gitolite@dev.opencascade.org/occt.git
@subsection occt_gitguide_1_3 Content
@ -136,10 +136,12 @@ The official repository contains:
* Complete the installation.
TortoiseGit integrates to Windows Explorer, thus it is possible to use context menu in Windows Explorer to access its functionality:
@image html OCCT_GitGuide_V2_image005.png
@image latex OCCT_GitGuide_V2_image005.png
TortoiseGit integrates to Windows Explorer, thus it is possible to use popup menu in Windows Explorer to access its functionality:
Note that if you have installed MSysGit or have Git installed in non-default path,
on the first time you use TortoiseGit you may get the message demanding to define path to Git.
@ -247,18 +249,17 @@ The official repository contains:
@subsection occt_gitguide_3_3 Adding public key in your account
Log in on the portal http://dev.opencascade.org and click on 'My account' link to the right.
If you have a Contributor status, you will see 'SSH keys' tab to the right.
Click on that tab, then click 'Add a public key', and paste the text of the public key
(see above sections on how to generate the key) into the text box.
Click "Save" to input the key to the system.
Log in on the portal http://dev.opencascade.org and click on **My account** link to the right. If you have a Contributor status, you will see **SSH keys** tab to the right.
Click on that tab, then click **Add a public key**, and paste the text of the public key (see above sections on how to generate the key) into the text box.
Click **Save** to input the key to the system.
@image html OCCT_GitGuide_V2_image008.png
@image latex OCCT_GitGuide_V2_image008.png
Note that a user can have several SSH keys.
You can distinguish between these keys by the Title field ID; by default it is taken from SSH key comment.
It is typical to use your e-mail address or workstation name for this field; no restrictions are set by the portal.
@image html OCCT_GitGuide_V2_image008.png
@image latex OCCT_GitGuide_V2_image008.png
Please note that some time (5-10 min) is needed for the system
to update the configuration after the new key is added.
@ -308,19 +309,14 @@ The official repository contains:
where <i><path></i> is the path to the new folder which will be created for the repository.
* In TortoiseGit: right-click in the Explorer window, then choose "Git Clone":
* In TortoiseGit: create a new folder, open it and right-click in the Explorer window, then choose **Git Clone** in the context menu:
@image html OCCT_GitGuide_V2_image009.png
@image latex OCCT_GitGuide_V2_image009.png
If you have chosen Putty as SSH client during TortoiseGit installation, check the “Load Putty Key” option and specify the location of the private key file saved by PuttyGen (see 3.2.1). This shall be done for the first time only.
If you have chosen Putty as SSH client during TortoiseGit installation, check the **Load Putty Key** option and specify the location of the private key file saved by PuttyGen (see 3.2.1). This shall be done for the first time only.
Note that on the first connection to the repository server you may be requested to enter a password for your private SSH key; further you can get a message that the authenticity of the host cannot be established and will be asked if you want to continue connecting or not:
@image html OCCT_GitGuide_V2_image010.png
@image latex OCCT_GitGuide_V2_image010.png
Choose “Yes” to continue. Then the hosts key will be stored in $HOME/.ssh/known_hosts file.
Note that on the first connection to the repository server you may be requested to enter a password for your private SSH key; further you can get a message that the authenticity of the host cannot be established and will be asked if you want to continue connecting or not. Choose **Yes** to continue. The hosts key will be stored in <i>$HOME/.ssh/known_hosts</i> file.
@subsection occt_gitguide_4_3 Branch creation
@ -338,17 +334,17 @@ In the console:
In TortoiseGit:
* Go to the local copy of the repository.
* Right-click in the Explorer window, then choose "Git Create Branch".
* Right-click in the Explorer window, then choose **Git Create Branch**.
@image html OCCT_GitGuide_V2_image011.png
@image latex OCCT_GitGuide_V2_image011.png
* Select “Base On” Branch remotes/origin/master
* Select **Base On** Branch *remotes/origin/master*.
@image html OCCT_GitGuide_V2_image012.png
@image latex OCCT_GitGuide_V2_image012.png
Check option Switch to new branch if you are going to start working with the newly created branch immediately.
Check option **Switch to new branch** if you are going to start working with the newly created branch immediately.
@subsection occt_gitguide_4_4 Branch switching
@ -359,14 +355,14 @@ In TortoiseGit:
> git checkout CR12345
~~~~~
In TortoiseGit: right-click, TortoiseGit -> Checkout/switch
In TortoiseGit: right-click in the explorer window and select in the context menu **TortoiseGit** -> **Switch/Checkout**.
@image html OCCT_GitGuide_V2_image013.png
@image latex OCCT_GitGuide_V2_image013.png
Note that in order to work with the branch locally you need to set option
“Create new branch” when you checkout the branch from the remote repository for the first time.
Option “Track” stores association between the local branch and the original branch in a remote repository.
**Create new branch** when you checkout the branch from the remote repository for the first time.
Option **Track** stores association between the local branch and the original branch in a remote repository.
@subsection occt_gitguide_4_5 Committing branch changes
@ -394,7 +390,7 @@ In TortoiseGit:
> git add file1.hxx file2.cxx
~~~~~
* In TortoiseGit: right-click, choose “Git Commit -> CR…”:
* In TortoiseGit: right-click in the explorer window and select in the context menu <b>Git Commit -> CR…</b>:
@image html OCCT_GitGuide_V2_image014.png
@image latex OCCT_GitGuide_V2_image014.png
@ -413,147 +409,109 @@ In TortoiseGit:
> git push "origin" CR12345:CR12345
~~~~~
* In TortoiseGit: right-click, TortoiseGit -> Push
* In TortoiseGit: right-click in the explorer window and select in the context menu, TortoiseGit -> **Push**
@image html OCCT_GitGuide_V2_image015.png
@image latex OCCT_GitGuide_V2_image015.png
Note that Git will forbid pushing a branch if the corresponding remote branch already exists and has some changes, which are not in the history of your local branch. This may happen in different situations:
* You have amended the last commit which is already in the remote repository.
If you are sure that nobody else uses your branch, push again with force option.
* You have rebased your branch, so that now it is completely different
from the branch in the remote repository. In this case, push it under a different name (add a suffix):
Note that Git forbids pushing a branch if the corresponding remote branch already exists and has some changes, which are not in the history of your local branch. This may happen in different situations:
* You have amended the last commit which is already in the remote repository. If you are sure that nobody else uses your branch, push again with **Force** option.
* You have rebased your branch, so that now it is completely different from the branch in the remote repository. In this case, push it under a different name (add a suffix):
@image html OCCT_GitGuide_V2_image016.png
@image latex OCCT_GitGuide_V2_image016.png
Then remove the original remote branch so that other people recognize that it has been replaced by the new one. For that, select TortoiseGit -> Push again, then select an empty line for your local branch name,
and enter the name of the branch to be removed in Remote field:
Then remove the original remote branch so that other people recognize that it has been replaced by the new one. For that, select TortoiseGit -> **Push** again, select an empty line for your local branch name,
and enter the name of the branch to be removed in **Remote** field:
@image html OCCT_GitGuide_V2_image017.png
@image latex OCCT_GitGuide_V2_image017.png
* The other developer has committed some changes in the remote branch.
In this case, pull changes from the remote repository to have them merged
with your version, and push your branch after it is successfully merged.
* The other developer has committed some changes in the remote branch. In this case, **Pull** changes from the remote repository to have them merged with your version, and push your branch after it is successfully merged.
@subsection occt_gitguide_4_7 Synchronizing with remote repository
Maintain your repository synchronized with the remote one and clean unnecessary stuff regularly.
Use Git command fetch with option prune to get update of all branches
from the remote repository and to clean your local repository from the remote branches that have been deleted.
Use Git command *fetch* with option *prune* to get the update of all branches from the remote repository and to clean your local repository from the remote branches that have been deleted.
* In the console:
~~~~~
> git fetch --prune
~~~~~
* In TortoiseGit:
* In TortoiseGit: right-click in the explorer window and select in the context menu **TortoiseGit** -> **Fetch**. Check in **Prune** check-box.
@image html OCCT_GitGuide_V2_image018.png
@image latex OCCT_GitGuide_V2_image018.png
If some changes have been made to the branch you are working with in the remote repository,
use Git command pull to get the remote changes and merge them with your local branch.
If the branch you are working with has been changed in the remote repository, use Git command *pull* to get the remote changes and merge them with your local branch.
This operation is required in particular to update your local master branch when the remote master changes.
* In console:
~~~~~
> git pull
~~~~~
* In TortoiseGit:
* In TortoiseGit: right-click in the explorer window and select in the context menu **TortoiseGit** -> **Pull**.
@image html OCCT_GitGuide_V2_image019.png
@image latex OCCT_GitGuide_V2_image019.png
Note that the local branches of your repository are the primary place
where your changes are stored until they get integrated to the official version
of OCCT (master branch). The branches submitted to official repository
are for collaborative work, review, and integration;
that repository should not be used for long-term storage of incomplete changes.
Note that the local branches of your repository are the primary place, where your changes are stored until they get integrated to the official version of OCCT (master branch). The branches submitted to official repository are for collaborative work, review, and integration - that repository should not be used for long-term storage of incomplete changes.
Remove the local branches that you do not need any more. Note that you cannot delete the current branch, thus you need to switch to another one (e.g. master) if the branch you are going to delete is the current one.
Remove the local branches that you do not need any more. Note that you cannot delete the current branch. It means that you need to switch to another one (e.g. master) if the branch you are going to delete is the current one.
* In the console:
~~~~~
> git branch -d CR12345
~~~~~
* In TortoiseGit: right-click, select TortoiseGit -> Show log
* In TortoiseGit: right-click in the explorer window and select in the context menu **TortoiseGit** -> **Git Show Log**.
@image html OCCT_GitGuide_V2_image020.png
@image latex OCCT_GitGuide_V2_image020.png
Select “All branches” to view all branches.
Right-click on the branch you want to delete and select Delete… menu item corresponding to this branch.
Select **All branches** check-box to view all branches.
Right-click on the branch you want to delete and select **Delete** item in the context menu.
Note that the log view in TortoiseGit is a convenient tool
to visualize and manage branches; it provides short-cuts to many functions described above.
Note that many functions described above can be accessed from the Log View, which is a very convenient tool to visualize and manage branches.
@subsection occt_gitguide_4_8 Applying a fix made on older version of OCCT
If you have a fix made on a previous version of OCCT,
perform the following sequence of operations to prepare it
for testing and integration to the current development version.
* Identify the version of OCCT on which the fix has been made.
In most cases, this will be an OCCT release, e.g. OCCT 6.7.0.;
then just find a tag or a commit corresponding to this version in the Git history log of the master branch.
If you have a fix made on a previous version of OCCT, perform the following sequence of operations to prepare it for testing and integration to the current development version:
* Identify the version of OCCT on which the fix has been made. In most cases, this will be an OCCT release, e.g. OCCT 6.7.0.
* Find a tag or a commit corresponding to this version in the Git history log of the master branch.
* Create a branch basing on this tag or commit. In TortoiseGit history log: right-click on the base commit, then select **Create branch at this version**.
@image html OCCT_GitGuide_V2_image021.png
@image latex OCCT_GitGuide_V2_image021.png
Check option **Switch to the new branch** to start working within the new branch immediately, or switch to it separately afterwards.
* Check option **Switch to the new branch** to start working within the new branch immediately, or switch to it separately afterwards.
* Put your fix in the working copy, build and check that it works, then commit to the branch.
* Rebase the branch on the current master.
In TortoiseGit: right-click on the working directory,
then choose TortoiseGit->Rebase; then select *remotes/origin/master* as UpStream revision, and click **Start**:
* Rebase the branch on the current master. In TortoiseGit: right-click on the working directory, choose **TortoiseGit** -> **Rebase**, select *remotes/origin/master* as UpStream revision, and click **Start**:
@image html OCCT_GitGuide_V2_image022.png
@image latex OCCT_GitGuide_V2_image022.png
Note that you can get some conflicts during rebase.
To resolve the conflicts double-click on each conflicted file
(highlighted by red in the file list) to open visual merge tool.
Switch between conflicting fragments by red arrows, and for each one
decide if the code of one or both conflicting versions is to be taken.
Use the toolbar.
Note that you can get some conflicts during rebase. To resolve them, double-click on each conflicted file (highlighted by red in the file list) to open visual merge tool. Switch between conflicting fragments by red arrows, and for each one decide if the code of one or both conflicting versions is to be taken.
@subsection occt_gitguide_4_9 Rebasing with history clean-up
At some moments you might need to rebase your branch on the latest version of the master.
At some moments you might need to rebase your branch on the latest version of the master.
We recommend rebasing before the first submission of the branch
for review or when the master has diverged substantially from your branch.
We recommend rebasing before the first submission of the branch for review or when the master has diverged substantially from your branch.
Rebasing is a good occasion to clean-up the history of commits in the branch.
Consider collapsing (squashing, in terms of Git) the history of your branch
into a single commit unless you deem that having separate commits is important
for your future work with the branch or its code reviewing.
Git also allows you to change the order of commits, edit commit contents and messages, etc.
Here is the sequence of actions to rebase your branch into a single commit:
Rebasing is a good occasion to clean-up the history of commits in the branch. Consider collapsing (squashing, in terms of Git) the history of your branch into a single commit unless you deem that having separate commits is important for your future work with the branch or its code reviewing. Git also allows changing the order of commits, edit commit contents and messages, etc.
To rebase your branch into a single commit, you need to do the following:
* Switch to your branch (e.g. “CR12345”)
* In TortoiseGit history log, select a branch to rebase on (usually remotes/origin/master)
and in the context menu choose **Rebase “CR12345” onto this**.
* In the Rebase dialog, check **Squash All**.
* In TortoiseGit history log, select a branch to rebase on *(remotes/origin/master)* and in the context menu choose **Rebase “CR12345” onto this**.
* In the **Rebase** dialog, check **Squash All**. You can also change the order of commits and define for each commit whether it should be kept (**Pick**), edited, or just skipped.
@image html OCCT_GitGuide_V2_image023.png
@image latex OCCT_GitGuide_V2_image023.png
**Note** that you can also change the order of commits and define for each commit
whether it should be kept (“pick”), edited, or just skipped.
* Click **Start**.
* The process will stop if a conflict is detected.
In such case, find files with status Conflicted in the list (marked by red),
and double-click on them to resolve the conflict.
When all conflicts are resolved, click Continue.
* The process will stop if a conflict is detected. In that case, find files with status **Conflicted** in the list (marked by red), and double-click on them to resolve the conflict. When all conflicts are resolved, click **Continue**.
@image html OCCT_GitGuide_V2_image024.png
@image latex OCCT_GitGuide_V2_image024.png
@ -570,32 +528,22 @@ Remove the local branches that you do not need any more. Note that you cannot de
The changes made in the branch can be reviewed without direct access to Git, using GitWeb interface:
* Open GitWeb in your web browser: http://git.dev.opencascade.org/gitweb/?p=occt.git
* Locate the branch you want to review among heads (click ‘…’ at the bottom of the page to see the full list).
* Click log (or shortlog) to see the history of the branch.
* Locate the branch you want to review among **heads** (click ‘…’ at the bottom of the page to see the full list).
* Click **log** (or **shortlog**) to see the history of the branch.
**Note** that the branch can contain more than one commit, and you need to distinguish commits
that belong to that branch (those to be reviewed) from the commits
corresponding to the previous state of the master branch.
Normally the first commit in the list that starts from the ID
of the other issue indicates the branching point;
commits above it are the ones to be reviewed.
**Note** that the branch can contain more than one commit, and you need to distinguish commits that belong to that branch (those to be reviewed) from the commits corresponding to the previous state of the master branch. Normally the first commit in the list that starts from the ID of the other issue indicates the branching point; commits above it are the ones to be reviewed.
* Click *commitdiff* on each log entry to review the changes (highlighted with color format).
* Click **commitdiff** on each log entry to review the changes (highlighted with color format).
@subsection occt_gitguide_5_2 Review branch changes with TortoiseGit
Use of TortoiseGit is recommended for convenient code review:
* Fetch the changes from the remote repository as described in 4.7;
* Right-click on the repository, choose TortoiseGit -> Show log;
* Fetch the changes from the remote repository as described in <a href="#occt_gitguide_4_7">Synchronizing with remote repository</a> section.
* Right-click on the repository, choose **TortoiseGit** -> **Show** log;
* Locate the remote branch you need to review;
* To review commits one-by-one, select each commit in the log.
The list of changed files is shown at the bottom of the window;
double-click on the file will open visual compare tool.
* To review all changes made in the branch at once, or to compare
two arbitrary revisions, select the corresponding commits in the log
(e.g. the last commit in the branch and the branching point),
right-click for the context menu, and choose **Compare revisions**.
* To review commits one-by-one, select each commit in the log. The list of changed files is shown at the bottom of the window; double-click on the file will open visual compare tool.
* To review all changes made in the branch at once, or to compare two arbitrary revisions, select the corresponding commits in the log (e.g. the last commit in the branch and the branching point), ight-click for the context menu, and choose **Compare revisions**.
@image html OCCT_GitGuide_V2_image026.png
@image latex OCCT_GitGuide_V2_image026.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

@ -6,7 +6,7 @@
# get OCCT version from file Standard_Version.hxx (if available)
proc OverviewDoc_DetectCasVersion {theCasRoot} {
set occt_ver 16.7.0
set occt_ver 6.7.0
set occt_ver_add ""
if { [file exist $theCasRoot/src/Standard/Standard_Version.hxx] } {
set fh [open $theCasRoot/src/Standard/Standard_Version.hxx]

View File

@ -438,8 +438,7 @@ Declaration of available plug-ins is done through special resource file(s).
The pload command loads the plug-in in accordance with
the specified resource file and activates the commands implemented in the plug-in.
The whole process of using the plug-in mechanism as well as the instructions for extending Test Harness is described in the
@ref user_guides__test_harness.
The whole process of using the plug-in mechanism as well as the instructions for extending Test Harness is described in the @ref user_guides__test_harness.
Draw Test Harness provides an environment for OCCT automated testing system.
Please, consult its @ref dev_guides__tests "Automated Testing System" for details.
@ -562,11 +561,9 @@ The combination of these resources allows creating substantial applications.
Voxel
------
This is a demonstration application showing OCCT voxel models.
It also includes a set of non-regression tests and other commands
for testing this functionality (accessible only through TEST pre-processor definition).
This is a demonstration application showing OCCT voxel models. It also includes a set of non-regression tests and other commands for testing this functionality (accessible only through TEST pre-processor definition).
**See also:** Voxels User's guide (under construction)
**See also:** <a href="occt_voxels_wp.html">Voxels User's guide</a>
**Remarks:**
@ -575,8 +572,7 @@ for testing this functionality (accessible only through TEST pre-processor defin
@subsubsection OCCT_OVW_SECTION_7_3_3 C#
C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality
into .NET applications (using Windows Forms and WPF front ends).
C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality into .NET applications (using Windows Forms and WPF front ends).
@image html /overview/images/overview_c__ie.png
@image latex /overview/images/overview_c__ie.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

@ -75,9 +75,9 @@ These services are organized into the following libraries:
* Math Utilities
* Basic Persistence
The technical overview provides only a basic description of the libraries. Please, refer for more details to Foundation Classes User's guide
The technical overview provides only a basic description of the libraries. Please, refer for more details to <a href="user_guides__foundation_classes.html">Foundation Classes User's guide</a>
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_2_1 Kernel Classes
@ -346,13 +346,12 @@ These services are organized into the following libraries:
* Geometry Utilities
* Topology
The technical overview provides only a basic description of the libraries. Please,
refer for more details to Modeling Data User's guide
The technical overview provides only a basic description of the libraries. Please, refer for more details to <a href="user_guides__modeling_data.html">Modeling Data User's guide</a>
3D geometric models are stored in OCCT native BREP format. It is possible to learn
more about it in BREP Format Description White Paper
more about it in <a href="occt_brep_format.html">BREP Format Description White Paper</a>
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_3_1 2D Geometry Types
@ -952,10 +951,9 @@ These services are organized into the following libraries:
@image html /technical_overview/images/technical_overview_ma.png
@image latex /technical_overview/images/technical_overview_ma.png
The technical overview provides only a basic description of the libraries.
Please, refer for more details to Modeling Algorithms User's guide
The technical overview provides only a basic description of the libraries. Please, refer for more details to <a href="user_guides__modeling_algos.html">Modeling Algorithms User's guide</a>
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_4_1 Geometric Tools
@ -1177,10 +1175,10 @@ to deformation. Then, the algorithm is called to calculate the final surface. It
looks for a solution satisfying constraints and minimizing energy input.
@image html /technical_overview/images/technical_overview_occ_0007.png "Surface generated from four curves and a point"
@image latex /technical_overview/images/technical_overview_occ_0007.png "Surface generated from four curves and a point"
@image latex /technical_overview/images/technical_overview_occ_0007.png "Surface generated from four curves and a point"
@image html /technical_overview/images/technical_overview_occ_0008.png "Surface generated from two curves and a point"
@image latex /technical_overview/images/technical_overview_occ_0008.png "Surface generated from two curves and a point"
@image latex /technical_overview/images/technical_overview_occ_0008.png "Surface generated from two curves and a point"
#### Extension of a 3D curve or surface beyond its original bounds
@ -1395,9 +1393,9 @@ It has several sub-domains, each with its own scope of functionality:
* customization - modifying shape representation to fit specific needs (the shape is not modified, only the form of its representation is modified);
* processing - mechanism of shape modification via a user-editable resource file.
The technical overview provides only a basic description of the libraries. Please, refer for more details to Shape Healing User's guide
The technical overview provides only a basic description of the libraries. Please, refer for more details to <a href="user_guides__shape_healing.html">Shape Healing User's guide</a>
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_4_8 Miscellaneous modelling algorithms.
@ -1496,13 +1494,13 @@ Visualization in Open CASCADE Technology is based on the separation of modeling
For visualizing data structures, OCCT provides ready-to-use algorithms, which create graphic presentations from geometric models. These data structures may be used with the viewers supplied, and can be customized to take the specificity of your application into account.
Displaying is managed through presentation services, and selection in its turn is managed through selection services. With these services, data structures and algorithms are provided to display objects of an application, and to support graphical selection of these objects.
Display is managed through presentation services, and selection in its turn is managed through selection services. With these services, data structures and algorithms are provided to display objects of an application and to support graphical selection of these objects.
Application Interactive Services (AIS) are provided to manage displaying, detection and selection of graphical presentations. These services associate data structures and interactive objects.
Please, refer for more details to Visualization User's guide
The technical overview provides only a basic description of the libraries. Please, refer for more details to <a href="user_guides__visualization.html">Visualization User's guide</a>
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@image html /technical_overview/images/technical_overview_viz.png
@image latex /technical_overview/images/technical_overview_viz.png
@ -1914,7 +1912,8 @@ with fast access to the data and optimal allocation of data in memory.
Also, a special visualization toolkit allows visualizing voxels
as colored or black/white points and cubes, displaying only the voxels visible from the user's point of view.
Please, see for more information Voxels User's Guide white paper.
Please, see for more information <a href="occt_voxels_wp.html">Voxels User's Guide</a>.
@subsection OCCT_TOVW_SECTION_5_11 Examples
@ -2119,9 +2118,10 @@ of the loading operation, you use the following enumerations from the <i> IFSele
To read and write attributes such as names, colors, layers for IGES and STEP
and validation properties and structure of assemblies for STEP, you can use an XDE document.
It is possible to learn more about XDE documents from XDE User's guide
It is possible to learn more about XDE documents from <a href="user_guides__xde.html">XDE User's guide</a>.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
See also: our web site at E-learning and Training.
@subsection OCCT_TOVW_SECTION_6_2 IGES
@ -2144,27 +2144,21 @@ Please, note:
* an IGES entity is an entity in the IGES normal sense.
* a root entity is the highest level entity of any given type, e.g. type 144 for surfaces and type 186 for solids. Roots are not referenced by other entities.
It is possible to learn more about the IGES interface from IGES User's guide
It is possible to learn more about the IGES interface from <a href="user_guides__iges.html">IGES User's guide</a>.
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_6_3 STEP
The STEP interface reads STEP files produced in accordance with STEP Application Protocol 214
(Conformance Class 2 both CD and DIS versions of schema) and translates them
to Open CASCADE Technology models. STEP Application Protocol 203 is also supported.
The STEP interface reads STEP files produced in accordance with STEP Application Protocol 214 (Conformance Class 2 both CD and DIS versions of schema) and translates them to Open CASCADE Technology models. STEP Application Protocol 203 is also supported.
The STEP interface also translates OCCT models to STEP files. STEP files that are produced
by this interface conform to STEP AP 203 or AP 214 (
Conformance Class 2, either CD or DIS version of the schema) depending on the user's option.
The STEP interface also translates OCCT models to STEP files. STEP files that are produced by this interface conform to STEP AP 203 or AP 214 (Conformance Class 2, either CD or DIS version of the schema) depending on the user's option.
Basic interface reads and writes geometrical, topological STEP data and assembly structures.
The interface is able to translate one entity, a group of entities or a whole file.
Other kinds of data such as colors, validation properties, layers, names
and the structure of assemblies can be read or written
with the help of XDE tools - <i> STEPCAFControl_Reader</i> and <i> STEPCAFControl_Writer</i>.
Other kinds of data such as colors, validation properties, layers, names and the structure of assemblies can be read or written with the help of XDE tools - <i> STEPCAFControl_Reader</i> and <i> STEPCAFControl_Writer</i>.
To choose a translation mode when exporting to a STEP format, use <i> STEPControl_STEPModelType</i>.
@ -2175,8 +2169,9 @@ Please, note:
* all references to shapes indicate OCCT shapes unless otherwise explicitly stated;
* a root entity is the highest level entity of any given type, i.e. an entity that is not referenced by any other one.
It is possible to learn more about the STEP interface from STEP User's guide
See also: our web site at E-learning and Training.
It is possible to learn more about the STEP interface from <a href="user_guides__step.html">STEP User's guide</a>.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_6_4 STL
@ -2228,12 +2223,12 @@ in the same way as a number is the value of the Integer attribute and a string i
OCAF documents are in their turn managed by an OCAF application.
Please, refer for more details to OCAF User's guide and the OCAF white papers:
* Application Framework
* Distribution of Data through OCAF Tree
* Application Framework Function Mechanism
Please, refer for more details to <a href="user_guides__ocaf.html">OCAF User's guide</a> and the OCAF white papers:
* <a href="ocaf_wp.html">Application Framework</a>
* <a href="occt_ocaf_tree_wp.html">Distribution of Data through OCAF Tree</a>
* <a href="occt_ocaf_functionmechanism_wp.html">Application Framework Function Mechanism</a>
See also: our web site at E-learning and Training.
See also: our web site at <a href="http://www.opencascade.org/support/training/">E-learning and Training</a>.
@subsection OCCT_TOVW_SECTION_7_1 How to start working with OCAF
@ -2380,23 +2375,11 @@ label depending on necessity:
<i> TNaming_NamedShape </i> may contain a few pairs of hooks with the same evolution. In this
case topology shape, which belongs to the named shape, is a compound of new shapes.
The data model contains both the topology and the hooks, and functions handle both
topological entities and hooks. Consider the case of a box function, which creates
a solid with six faces and six hooks. Each hook is attached to a face. If you want,
you can also have this function create hooks for edges and vertices as well as for
faces.
The data model contains both the topology and the hooks, and functions handle both topological entities and hooks. Consider the case of a box function, which creates a solid with six faces and six hooks. Each hook is attached to a face. If you want, you can also have this function create hooks for edges and vertices as well as for faces.
Not all functions can define explicit hooks for all topological entities they create,
but all topological entities can be turned into hooks when necessary. This is where
topological naming is necessary.
Not all functions can define explicit hooks for all topological entities they create, but all topological entities can be turned into hooks when necessary. This is where topological naming is necessary.
Consider the following example. A box defines six hooks for the six faces, but a
protrusion created on a face of the box can only define two hooks, one for the top
face, and one for all the lateral faces. As the basic wire defining the protrusion
may change in the future the protrusion function cannot designate the lateral faces
without ambiguity, their number may change. Figure 6 illustrates this example, faces
F1 to F6 of the box each have a hook. Faces F7 to F10, the lateral faces of the protrusion,
share a single hook, and face F11, the top face, has one hook.
Consider the following example. A box defines six hooks for the six faces, but a protrusion created on a face of the box can only define two hooks, one for the top face, and one for all the lateral faces. As the basic wire defining the protrusion may change in the future the protrusion function cannot designate the lateral faces without ambiguity, their number may change. Figure 6 illustrates this example, faces F1 to F6 of the box each have a hook. Faces F7 to F10, the lateral faces of the protrusion, share a single hook, and face F11, the top face, has one hook.
@image html /technical_overview/images/technical_overview_occ_0068.png
@image latex /technical_overview/images/technical_overview_occ_0068.png
@ -2434,10 +2417,8 @@ attribute you are looking for. For this, find this information using the method
### Function Attributes
A model consists of data and algorithms manipulating with data. OCAF attributes store
data. A Function attribute stores data corresponding to a Function (see the white
paper OCAF Function Mechanism User's Guide). This mechanism manipulates with algorithms
computing the model in the optimal way following the modifications.
A model consists of data and algorithms manipulating with data. OCAF attributes store data. A Function attribute stores data corresponding to a Function (see the white paper <a href="occt_ocaf_functionmechanism_wp.html"> Application Framework Function Mechanism </a>). This mechanism manipulates with algorithms computing the model in the optimal way following the modifications.
@subsection OCCT_TOVW_SECTION_7_3 Persistent Data Storage
@ -2525,9 +2506,7 @@ The standard procedure for an application in writing a container is as follows:
@subsubsection OCCT_TOVW_SECTION_7_3_2 Persistent Collections
Persistent collections are classes which handle dynamically sized collections of
data that can be stored in the database. These collections provide three categories
of service:
Persistent collections are classes which handle dynamically sized collections of data that can be stored in the database. These collections provide three categories of service:
* persistent strings,
* generic arrays of data,
@ -2536,47 +2515,26 @@ of service:
Persistent strings are concrete classes that handle sequences of characters based
on both ASCII (normal 8-bit) and Unicode (16-bit) character sets.
Arrays are generic classes, that is, they can hold a variety of objects not necessarily
inheriting from a unique root class. These arrays can be instantiated with any kind
of storable or persistent object, and then inserted into the persistent data model
of a user application.
Arrays are generic classes, that is, they can hold a variety of objects not necessarily inheriting from a unique root class. These arrays can be instantiated with any kind of storable or persistent object, and then inserted into the persistent data model of a user application.
The purpose of these data collections is simply to convert transient data into its
persistent equivalent so that it can be stored in the database. To this end, the
collections are used to create the persistent data model and assure the link with
the database. They do not provide editing or query capabilities because it is more
efficient, within the operative data model of the application, to work with transient
data structures (from the <i> TCollection</i> package).
The purpose of these data collections is simply to convert transient data into its persistent equivalent so that it can be stored in the database. To this end, the collections are used to create the persistent data model and assure the link with the database. They do not provide editing or query capabilities because it is more efficient, within the operative data model of the application, to work with transient data structures (from the <i> TCollection</i> package).
For this reason:
* the persistent strings only provide constructors and functions to convert between transient and persistent strings, and
* the persistent data collections are limited to arrays. In other words, <i> PCollection</i> does not include sequences, lists, queues, sets, stacks and so on (unlike <i> TCollection</i>).
Persistent string and array classes are found in the <i> PCollection</i> package.
In addition, <i> PColStd</i> package provides standard,
and frequently used, instantiations of persistent arrays, for very simple objects.
Persistent string and array classes are found in the <i> PCollection</i> package. In addition, <i> PColStd</i> package provides standard, and frequently used, instantiations of persistent arrays, for very simple objects.
@subsubsection OCCT_TOVW_SECTION_7_3_3 Persistent Geometry
The Persistent Geometry component describes geometric data structures which can be
stored in the database. These packages provide a way to convert data from the transient
"world" to the persistent "world".
The Persistent Geometry component describes geometric data structures which can be stored in the database. These packages provide a way to convert data from the transient "world" to the persistent "world".
Persistent Geometry consists of a set of atomic data models parallel to the geometric
data structures described in the geometry packages. Geometric data models, independent
of each other, can appear within the data model of any application. The system provides
the means to convert each atomic transient data model into a persistent one, but
it does not provide a way for these data models to share data.
Persistent Geometry consists of a set of atomic data models parallel to the geometric data structures described in the geometry packages. Geometric data models, independent of each other, can appear within the data model of any application. The system provides the means to convert each atomic transient data model into a persistent one, but it does not provide a way for these data models to share data.
Consequently, you can create a data model using these components, store data in,
and retrieve it from a file or a database, using the geometric components provided
in the transient and persistent "worlds". In other words, you customize the system
by declaring your own objects, and the conversion of the geometric components from
persistent to transient and vice versa is automatically managed for you by the system.
Consequently, you can create a data model using these components, store data in, and retrieve it from a file or a database, using the geometric components provided in the transient and persistent "worlds". In other words, you customize the system by declaring your own objects, and the conversion of the geometric components from persistent to transient and vice versa is automatically managed for you by the system.
However, these simple objects cannot be shared within a more complex data model.
To allow data to be shared, you must provide additional tools.
However, these simple objects cannot be shared within a more complex data model. To allow data to be shared, you must provide additional tools.
Persistent Geometry is provided by several packages.
@ -2924,7 +2882,6 @@ It is recommended to use option *Inherit access rights from parent*.
### Problems with 3D viewer
If the 3D viewer fails to display the scene properly, or works very slowly, or exhibits
another problem, make sure to have the latest version of the graphics card driver
installed. If this is not possible or does not help, try to decrease

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 938 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

Some files were not shown because too many files have changed in this diff Show More