merge V7_8_BR

This commit is contained in:
Paul RASCLE 2016-05-28 18:16:06 +02:00
commit 683b11f015
1251 changed files with 9503 additions and 2445 deletions

View File

View File

@ -1,4 +1,4 @@
# Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -30,8 +30,8 @@ CMAKE_POLICY(SET CMP0003 NEW)
STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
SET(${PROJECT_NAME_UC}_MINOR_VERSION 7)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
SET(${PROJECT_NAME_UC}_MINOR_VERSION 8)
SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
SET(${PROJECT_NAME_UC}_VERSION
${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
@ -80,7 +80,8 @@ MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_GEOM_USE_OPENCV)
##
# Various
FIND_PACKAGE(SalomePython REQUIRED)
FIND_PACKAGE(SalomePythonInterp REQUIRED)
FIND_PACKAGE(SalomePythonLibs REQUIRED)
FIND_PACKAGE(SalomePThread REQUIRED)
FIND_PACKAGE(SalomeSWIG REQUIRED)
FIND_PACKAGE(SalomeBoost REQUIRED)
@ -127,6 +128,7 @@ IF(SALOME_BUILD_GUI)
# Qt4
FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui QtXml)
FIND_PACKAGE(SalomePyQt4)
ENDIF(SALOME_BUILD_GUI)
##

View File

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1 +0,0 @@
SALOME2 : GEOM module

504
LICENCE
View File

@ -1,504 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

0
NEWS
View File

112
README
View File

@ -0,0 +1,112 @@
*********************
About SALOME Geometry
*********************
SALOME Geometry module implements the CAD modeling services:
- Import and export of geometrical models in IGES, BREP, STEP, STL, XAO and VTK formats;
- Construct geometrical objects using a wide range of functions;
- Display geometrical objects in the 3D viewer;
- Transform geometrical objects using various algorithms;
- Repair geometrical objects (shape healing);
- View information about geometrical objects using measurement tools;
- Design shapes from pictures.
For more information please visit the SALOME platform web site:
<http://www.salome-platform.org/>
=======
License
=======
SALOME platform is distributed under the GNU Lesser General Public License.
See COPYING file for more details.
Also, additional information can be found at SALOME platform web site:
<http://www.salome-platform.org/downloads/license/>
============
Installation
============
--------------
Pre-requisites
--------------
SALOME platform relies on a set of third-party softwares; some of them are needed
at build time only, while other ones are needed in runtime also.
For more information about the pre-requisites please visit SALOME platform web
site:
* Check Release Notes and Software Requirements of the latest SALOME release at
<http://www.salome-platform.org/downloads/current-version/>
* Pre-requisites page at SALOME web site:
<http://www.salome-platform.org/downloads/license/>
Note: SALOME Geometry module needs SALOME KERNEL and SALOME GUI as
pre-requisites.
------------------
Basic Installation
------------------
The build procedure of the SALOME platform is implemented with CMake.
In order to build the module you have to do the following actions:
1. Set up environment for pre-requisites (see "Pre-requisites" section above).
2. Create a build directory:
% mkdir GEOM_BUILD
3. Configure the build procedure:
% cd GEOM_BUILD
% cmake -DCMAKE_BUILD_TYPE=<mode> -DCMAKE_INSTALL_PREFIX=<installation_directory> <path_to_src_dir>
where
- <mode> is either Release or Debug (default: Release);
- <installation_directory> is a destination folder to install SALOME Geometry
module (default: /usr);
- <path_to_src_dir> is a path to the SALOME Geometry sources directory.
Note: by default (if CMAKE_INSTALL_PREFIX option is not given), SALOME Geometry
module will be configured for installation to the /usr directory that requires
root permissions to complete the installation.
4. Build and install:
% make
% make install
This will install SALOME Geometry module to the <installation_directory>
specified to cmake command on the previous step.
-------------------
Custom installation
-------------------
SALOME Geometry module supports a set of advanced configuration options;
for more details learn CMakeLists.txt file in the root source directory.
You can also use other options of cmake command to customize your installation.
Learn more about available options by typing
% cmake --help
=============
Documentation
=============
The directory doc contains additional documentation file of SALOME Geometry module.
===============
Troubleshooting
===============
Please, send a mail to webmaster.salome@opencascade.com.

View File

@ -1,4 +1,4 @@
# Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -69,32 +69,34 @@ IF(SALOME_GEOM_USE_OPENCV)
LIST(APPEND GEOM_DEFINITIONS "-DWITH_OPENCV")
ENDIF()
# For all prerequisites, load the corresponding targets if the package was used
# For all prerequisites, load the corresponding targets if the package was used
# in CONFIG mode. This ensures dependent projects link correctly
# without having to set LD_LIBRARY_PATH:
SET(_PREREQ @_PREREQ_LIST@)
SET(_PREREQ_CONFIG_DIR @_PREREQ_DIR_LIST@)
SET(_PREREQ_COMPONENTS "@_PREREQ_COMPO_LIST@")
LIST(LENGTH _PREREQ_CONFIG_DIR _list_len)
IF(NOT _list_len EQUAL 0)
SET(_PREREQ_@PROJECT_NAME@ @_PREREQ_LIST@)
SET(_PREREQ_@PROJECT_NAME@_CONFIG_DIR @_PREREQ_DIR_LIST@)
SET(_PREREQ_@PROJECT_NAME@_COMPONENTS "@_PREREQ_COMPO_LIST@")
LIST(LENGTH _PREREQ_@PROJECT_NAME@_CONFIG_DIR _list_len_@PROJECT_NAME@)
IF(NOT _list_len_@PROJECT_NAME@ EQUAL 0)
# Another CMake stupidity - FOREACH(... RANGE r) generates r+1 numbers ...
MATH(EXPR _range "${_list_len}-1")
FOREACH(_p RANGE ${_range})
LIST(GET _PREREQ ${_p} _pkg )
LIST(GET _PREREQ_CONFIG_DIR ${_p} _pkg_dir)
LIST(GET _PREREQ_COMPONENTS ${_p} _pkg_compo)
MESSAGE(STATUS "===> Reloading targets from ${_pkg} ...")
IF(NOT _pkg_compo)
FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE
PATHS "${_pkg_dir}"
NO_DEFAULT_PATH)
ELSE()
STRING(REPLACE "," ";" _compo_lst "${_pkg_compo}")
MESSAGE(STATUS "===> (components: ${_pkg_compo})")
FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE
COMPONENTS ${_compo_lst}
PATHS "${_pkg_dir}"
NO_DEFAULT_PATH)
MATH(EXPR _range_@PROJECT_NAME@ "${_list_len_@PROJECT_NAME@}-1")
FOREACH(_p_@PROJECT_NAME@ RANGE ${_range_@PROJECT_NAME@})
LIST(GET _PREREQ_@PROJECT_NAME@ ${_p_@PROJECT_NAME@} _pkg_@PROJECT_NAME@ )
LIST(GET _PREREQ_@PROJECT_NAME@_CONFIG_DIR ${_p_@PROJECT_NAME@} _pkg_dir_@PROJECT_NAME@)
LIST(GET _PREREQ_@PROJECT_NAME@_COMPONENTS ${_p_@PROJECT_NAME@} _pkg_compo_@PROJECT_NAME@)
IF(NOT OMIT_DETECT_PACKAGE_${_pkg_@PROJECT_NAME@})
MESSAGE(STATUS "===> Reloading targets from ${_pkg_@PROJECT_NAME@} ...")
IF(NOT _pkg_compo_@PROJECT_NAME@)
FIND_PACKAGE(${_pkg_@PROJECT_NAME@} REQUIRED NO_MODULE
PATHS "${_pkg_dir_@PROJECT_NAME@}"
NO_DEFAULT_PATH)
ELSE()
STRING(REPLACE "," ";" _compo_lst_@PROJECT_NAME@ "${_pkg_compo_@PROJECT_NAME@}")
MESSAGE(STATUS "===> (components: ${_pkg_compo_@PROJECT_NAME@})")
FIND_PACKAGE(${_pkg_@PROJECT_NAME@} REQUIRED NO_MODULE
COMPONENTS ${_compo_lst_@PROJECT_NAME@}
PATHS "${_pkg_dir_@PROJECT_NAME@}"
NO_DEFAULT_PATH)
ENDIF()
ENDIF()
ENDFOREACH()
ENDIF()

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
dnl
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,6 +1,6 @@
#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -131,6 +131,7 @@ SET(GOOD_TESTS
working_with_groups_ex04.py
working_with_groups_ex05.py
working_with_groups_ex06.py
GEOM_Field.py
)
IF(CAS_VERSION_STR VERSION_GREATER "6.9.0")
LIST(APPEND GOOD_TESTS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2015 CEA/DEN, EDF R&D
# Copyright (C) 2015-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -130,6 +130,7 @@ SET(GOOD_TESTS
working_with_groups_ex04
working_with_groups_ex05
working_with_groups_ex06
GEOM_Field
)
# CAS_VERSION > "6.8.0"
LIST(APPEND GOOD_TESTS fast_intersection)

View File

@ -0,0 +1,56 @@
# Geom Field
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
gg = salome.ImportComponentGUI("GEOM")
# a box
shape = geompy.MakeBoxDXDYDZ( 1, 1, 1, theName="box")
# Create fields holding sub-shape IDs as strings,
# which can be useful to see sub-shape IDs in the Viewer
componentNames = ['ID']
fieldDataType = GEOM.FDT_String
stepID = 0
stamp = 0
dim = 0 # == vertices
values = [str(i) for i in geompy.SubShapeAllIDs( shape, geompy.ShapeType["VERTEX"] )]
f0 = geompy.CreateField( shape, "vertices", fieldDataType, dim, componentNames )
s0 = f0.addStep( stepID, stamp, values )
geompy.addToStudyInFather( shape, f0, f0.GetName() )
s0id = geompy.addToStudyInFather( f0, s0, s0.GetName() )
dim = 1 # == edges
values = [str(i) for i in geompy.SubShapeAllIDs( shape, geompy.ShapeType["EDGE"] )]
f1 = geompy.CreateField( shape, "edges", fieldDataType, dim, componentNames )
s1 = f1.addStep( stepID, stamp, values )
geompy.addToStudyInFather( shape, f1, f1.GetName() )
geompy.addToStudyInFather( f1, s1, s1.GetName() )
dim = 2 # == faces
values = [str(i) for i in geompy.SubShapeAllIDs( shape, geompy.ShapeType["FACE"] )]
f2 = geompy.CreateField( shape, "faces", fieldDataType, dim, componentNames )
s2 = f2.addStep( stepID, stamp, values )
geompy.addToStudyInFather( shape, f2, f2.GetName() )
geompy.addToStudyInFather( f2, s2, s2.GetName() )
dim = 3 # == solids
values = [str(i) for i in geompy.SubShapeAllIDs( shape, geompy.ShapeType["SOLID"] )]
f3 = geompy.CreateField( shape, "solids", fieldDataType, dim, componentNames )
s3 = f3.addStep( stepID, stamp, values )
geompy.addToStudyInFather( shape, f3, f3.GetName() )
geompy.addToStudyInFather( f3, s3, s3.GetName() )
dim = -1 # == whole shape
f_1 = geompy.CreateField( shape, "whole shape", fieldDataType, dim, componentNames )
s_1 = f_1.addStep(stepID, stamp, ["1"])
geompy.addToStudyInFather( shape, f_1, f_1.GetName() )
geompy.addToStudyInFather( f_1, s_1, s_1.GetName() )
# display
gg.createAndDisplayGO( s0id )

View File

@ -1,82 +1,35 @@
# Check Free Boundaries
import os
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
gg = salome.ImportComponentGUI("GEOM")
# create boxes
box1 = geompy.MakeBox(0,0,0,100,50,100)
box2 = geompy.MakeBox(100,0,0,250,50,100)
# create a shape
box1 = geompy.MakeBox(0, 0, 0, 100, 100, 100)
box2 = geompy.MakeBox(20, 20, -20, 80, 80, 120)
cut = geompy.MakeCut(box1, box2)
sid = geompy.addToStudy(cut, "Shape")
# make a compound
compound = geompy.MakeCompound([box1, box2])
# get all faces
faces = geompy.SubShapeAllSortedCentres(cut, geompy.ShapeType["FACE"])
# import from *.brep
ImportFromBREP = geompy.ImportBREP(os.getenv("DATA_DIR")+"/Shapes/Brep/flight_solid.brep")
# get a face
faces = geompy.SubShapeAllSortedCentres(ImportFromBREP, geompy.ShapeType["FACE"])
# get the free boundary for face 32
Res = geompy.GetFreeBoundary(faces[32])
isSuccess = Res[0]
ClosedWires = Res[1]
OpenWires = Res[2]
if isSuccess == 1 :
print "Checking free boudaries is OK."
else :
print "Checking free boudaries is KO!"
print "len(ClosedWires) = ", len(ClosedWires)
i = 0
for wire in ClosedWires :
wire_name = "Face 32 -> Close wires : WIRE %d"%(i+1)
geompy.addToStudy(ClosedWires[i], wire_name)
if i < len(ClosedWires) :
i = i+ 1
print "len(OpenWires) = ", len(OpenWires)
i = 0
for wire in OpenWires :
wire_name = "Face 32 -> Open wires : WIRE %d"%(i+1)
geompy.addToStudy(OpenWires[i], wire_name)
if i < len(OpenWires) :
i = i+ 1
# get the free boundary for face 41
Res = geompy.GetFreeBoundary(faces[41])
isSuccess = Res[0]
ClosedWires = Res[1]
OpenWires = Res[2]
if isSuccess == 1 :
print "Checking free boudaries is OK."
else :
print "Checking free boudaries is KO!"
print "len(ClosedWires) = ", len(ClosedWires)
i = 0
for wire in ClosedWires :
wire_name = "Face 41 -> Close wires : WIRE %d"%(i+1)
geompy.addToStudy(ClosedWires[i], wire_name)
if i < len(ClosedWires) :
i = i+ 1
print "len(OpenWires) = ", len(OpenWires)
i = 0
for wire in OpenWires :
wire_name = "Face 41 -> Open wires : WIRE %d"%(i+1)
geompy.addToStudy(OpenWires[i], wire_name)
if i < len(OpenWires) :
i = i+ 1
# add the imported object to the study
id_ImportFromBREP = geompy.addToStudy(ImportFromBREP, "ImportFromBREP")
salome.sg.updateObjBrowser(1)
# for each face, get free boundaries
for fi in range(len(faces)):
fid = geompy.addToStudyInFather(cut, faces[fi], "Face %d" % (fi+1))
isSuccess, closedWires, openWires = geompy.GetFreeBoundary(faces[fi])
if isSuccess:
print "Check free boudaries in face %d: OK" % (fi+1)
print "-- Nb of closed boundaries = %d" % len(closedWires)
for wi in range(len(closedWires)):
wid = geompy.addToStudyInFather(faces[fi], closedWires[wi], "Closed wire %d" % (wi+1))
pass
print "-- Nb of open boundaries = %d" % len(openWires)
for wi in range(len(openWires)):
wid = geompy.addToStudyInFather(faces[fi], openWires[wi], "Open wire %d" % (wi+1))
pass
pass
else:
print "Check free boudaries in face %d: KO" % (fi+1)
pass
pass

View File

@ -6,38 +6,65 @@ import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
# Example of import from IGES using various formats
import tempfile, os
# get a path to SAMPLES_SRC
import os
thePath = os.getenv("DATA_DIR")
# create filenames
theFileName1 = thePath + "/Shapes/Iges/boite-3Dipsos_m.igs"
theFileName2 = thePath + "/Shapes/Iges/boite-3Dipsos_mm.igs"
#print "thePath = ", thePath
# create a sphere
sphere = geompy.MakeSphereR(100)
# get units from files
UnitName1 = geompy.GetIGESUnit(theFileName1)
UnitName2 = geompy.GetIGESUnit(theFileName2)
print "UnitName1 = ", UnitName1
print "UnitName2 = ", UnitName2
tmpdir = tempfile.mkdtemp()
# import shapes
Shape1 = geompy.ImportIGES(theFileName1)
Shape2 = geompy.ImportIGES(theFileName2)
Shape3 = geompy.ImportIGES(theFileName2, True)
[Xmin1,Xmax1, Ymin1,Ymax1, Zmin1,Zmax1] = geompy.BoundingBox(Shape1)
[Xmin2,Xmax2, Ymin2,Ymax2, Zmin2,Zmax2] = geompy.BoundingBox(Shape2)
[Xmin3,Xmax3, Ymin3,Ymax3, Zmin3,Zmax3] = geompy.BoundingBox(Shape3)
geompy.addToStudy(Shape1, "3Dipsos_m")
geompy.addToStudy(Shape2, "3Dipsos_mm")
geompy.addToStudy(Shape3, "3Dipsos_mm_scaled")
d1 = (Xmax1-Xmin1)*(Xmax1-Xmin1) + (Ymax1-Ymin1)*(Ymax1-Ymin1) + (Zmax1-Zmin1)*(Zmax1-Zmin1)
d2 = (Xmax2-Xmin2)*(Xmax2-Xmin2) + (Ymax2-Ymin2)*(Ymax2-Ymin2) + (Zmax2-Zmin2)*(Zmax2-Zmin2)
d3 = (Xmax3-Xmin3)*(Xmax3-Xmin3) + (Ymax3-Ymin3)*(Ymax3-Ymin3) + (Zmax3-Zmin3)*(Zmax3-Zmin3)
import math
dd32 = math.sqrt(d3/d2)
dd12 = math.sqrt(d1/d2)
dd31 = math.sqrt(d3/d1)
# values dd31, dd12 and dd31 can be using for checking
print "dd32 = ",dd32," dd12 = ",dd12," dd31 = ",dd31
# export sphere to the BREP file
f_brep = os.path.join(tmpdir, "sphere.brep")
geompy.ExportBREP(sphere, f_brep)
# export sphere to the IGES v5.3 file
f_iges = os.path.join(tmpdir, "sphere.iges")
geompy.ExportIGES(sphere, f_iges, "5.3")
# export sphere to the STEP file, using millimeters as length units
f_step = os.path.join(tmpdir, "sphere.step")
geompy.ExportSTEP(sphere, f_step, GEOM.LU_MILLIMETER)
# export sphere to the binary STL file, with default deflection coefficient
f_stl1 = os.path.join(tmpdir, "sphere1.stl")
geompy.ExportSTL(sphere, f_stl1, False)
# export sphere to the ASCII STL file, with custom deflection coefficient
f_stl2 = os.path.join(tmpdir, "sphere2.stl")
geompy.ExportSTL(sphere, f_stl2, True, 0.1)
# export sphere to the VTK file, with default deflection coefficient
f_vtk1 = os.path.join(tmpdir, "sphere1.vtk")
geompy.ExportVTK(sphere, f_vtk1)
# export sphere to the VTK file, with custom deflection coefficient
f_vtk2 = os.path.join(tmpdir, "sphere2.vtk")
geompy.ExportVTK(sphere, f_vtk2, 0.1)
# export sphere to the XAO file
f_xao = os.path.join(tmpdir, "sphere.xao")
geompy.ExportXAO(sphere, [], [], "author", f_xao)
# import BREP file
sphere_brep = geompy.ImportBREP(f_brep)
# import IGES file
sphere_iges = geompy.ImportIGES(f_iges)
# import STEP file, taking units into account
sphere_step1 = geompy.ImportSTEP(f_step)
# import STEP file, ignoring units (result is scaled)
sphere_step2 = geompy.ImportSTEP(f_step, True)
# import STL files
sphere_stl1 = geompy.ImportSTL(f_stl1)
sphere_stl2 = geompy.ImportSTL(f_stl2)
# import XAO file
ok, sphere_xao, sub_shapes, groups, fields = geompy.ImportXAO(f_xao)
# clean up
for f in f_brep, f_iges, f_step, f_stl1, f_stl2, f_vtk1, f_vtk2, f_xao:
os.remove(f)
os.rmdir(tmpdir)

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -24,11 +24,21 @@ import unittest, sys, os
class SalomeSession(object):
def __init__(self, script):
import runSalome
sys.argv = ["runSalome.py"]
run_script = "runSalome.py"
if sys.platform == 'win32':
module_dir = os.getenv("KERNEL_ROOT_DIR")
if module_dir: run_script = os.path.join(module_dir, "bin", "salome", run_script)
pass
sys.argv = [run_script]
sys.argv += ["--terminal"]
sys.argv += ["--modules=GEOM"]
sys.argv += ["%s" % script]
if sys.platform == 'win32':
main_module_path = sys.modules['__main__'].__file__
sys.modules['__main__'].__file__ = ''
clt, d = runSalome.main()
if sys.platform == 'win32':
sys.modules['__main__'].__file__ = main_module_path
return
def __del__(self):

View File

@ -7,7 +7,8 @@ import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
texture = geompy.LoadTexture(os.getenv("DATA_DIR")+"/Textures/texture1.dat")
texture_file = os.path.join(os.getenv("GEOM_ROOT_DIR"), "share", "salome", "resources", "geom", "textures", "texture1.dat")
texture = geompy.LoadTexture(texture_file)
v1 = geompy.MakeVertex(0, 0, 0)
v2 = geompy.MakeVertex(100, 0, 0)

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -66,6 +66,7 @@ INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/GEOM DESTINATION ${SALOME_INSTALL_
INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/GEOM)
INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/GEOM/geompy_doc)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/static/SALOME_BOA_PA.pdf DESTINATION ${SALOME_INSTALL_DOC}/gui/GEOM)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/static/ExtractAndRebuild.pdf DESTINATION ${SALOME_INSTALL_DOC}/gui/GEOM)
INSTALL(FILES input/geompy_migration.doc input/tui_auto_completion_documentation.doc input/tui_execution_distribution.doc DESTINATION ${SALOME_INSTALL_DOC}/gui/GEOM/input)
FILE(GLOB tag_files ${CMAKE_CURRENT_BINARY_DIR}/*.tag)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -3,7 +3,7 @@
\page check_compound_of_blocks_page Check Compound of Blocks
This operation checks whether a shape is a compound of glued blocks
and tries to improve the shape to make it include only valid blocks.
and improves the shape to include only valid blocks.
\image html measures10.png
@ -29,16 +29,15 @@ In this dialog:
- Not connected;
- Extra or degenerated edge.
- <b>Incriminated Sub-shapes</b> field outputs the list of sub-shapes that cause problem.
- \b Apply and <b>Apply and Close</b> buttons launch an improving process
and publish a result shape which includes valid blocks only. The
improving process tries to
- remove seam edges and degenerated edges of surfaces of revolution;
- \b Apply and <b>Apply and Close</b> buttons launch the improvement process
and publish the result shape, which includes valid blocks only. The
algorithm tries to:
- remove seam and degenerated edges from surfaces of revolution;
- re-approximate surfaces to exclude singularities on boundaries;
- unite edges and faces;
- glue faces.
\n <b>TUI Command:</b>
<em>geompy.CheckCompoundOfBlocks(Compound, theIsUseC1 = False, theAngTolerance = 1.e-12).</em> Checks if the shape
is a valid compound of blocks. If it is true, then the validity flag

View File

@ -2,7 +2,7 @@
\page check_self_intersections_page Detect Self-intersections
\n To <b>Detect Self-intersections</b> in the <b>Main Menu</b> select
\n To <b>Detect Self-intersections,</b> select in the <b>Main Menu</b>
<b>Inspection - > Detect Self-intersections</b>.
There are two ways to check self-intersections.
@ -40,24 +40,35 @@ See also a \ref tui_check_self_intersections_page "TUI example".
\anchor check_self_intersections_fast
<br><h3>Fast intersection</h3>
This operations allows to quickly detect self-interferences of the given shape by means of algorithm based on mesh intersections.
This operation allows quickly detecting self-interferences of the given shape using the algorithm based on mesh intersections.
The algorithm works on the face level, i.e. it computes only face-to-face intersections. No additional intersection types are computed.
This can be useful to detect all intersections between subshapes of type "surface" in an assembly.
The result quality will depend on the tesselation quality. However, small deflection values can significantly decrease the performance of the algorithm.
Nevertheless, the performance of Fast Intersect algorithm is much higher than that of the topological intersection.
\image html measures13.png
This algorithm works on the faces level, i.e. it computes only face-to-face intersections. No additional types of intersections is computed.
This case can be useful in order to detect all the intersections between the subshapes of type "surface" inside assembly.
Quality of result will depend on the quality of tesselation (managed via the deflection parameter). However, small values of deflection can
significantly decrease performance of the algorithm.
Nevertheless, performance of Fast Intersect algorithm is much higher than topological intersection.
In this dialog:
- \b Object - the checked object. \b Selection button allows picking it in the viewer or in the object browser.
- <b>Deflection coefficient</b> - a linear deflection coefficient that defines the tesselation quality. If theDeflection <= 0, default deflection 0.001 is used.
- <b>Detect gaps with tolerance</b> specifies the distance between shapes used for detecting gaps:
- if theTolerance <= 0, the algorithm detects intersections;
- if theTolerance > 0, the algorithm detects gapss.
- <b>Compute self-intersections</b> button performs the computation.
- \b Summary section contains the general report about self-intersections of the object and/or errors that occurred during the computation.
- \b Self-intersections list contains the list of detected self-intersections. Select the intersection to show <b>Sub-shapes</b> in the field to the right.
- \b Apply and <b>Apply and Close</b> buttons store the interferences selected in the <b>Self-intersections</b> list box in the study for further analysis.
If no interferences are selected, all of them are published in the study. Each interference is published as a child compound of the source shape and contains a couple of intersecting sub-shapes.
\n <b>Result:</b> Boolean.
\n <b>TUI Command:</b> <em>geompy.CheckSelfIntersectionsFast(theShape, theDeflection, theTolerance),</em> \n
where: \n
\em theShape is the shape checked for validity. \n
\em theDeflection is a linear deflection coefficient that specifies quality of tesselation. If theDeflection <= 0, default deflection 0.001 is used.
\em theTolerance Specifies a distance between shapes used for detecting gaps:
- if theTolerance <= 0, algorithm detects intersections;
- if theTolerance > 0, algorithm detects gaps.
\em theDeflection that specifies the quality of tesselation.
\em theTolerance Specifies the distance between shapes used for detecting gaps.
See also a \ref tui_check_self_intersections_fast_page "TUI example".

View File

@ -28,7 +28,7 @@ It is also possible to select an object(s) directly in the "Dependency Tree" vie
All necessary parameters of Dependency Tree Viewer can be edited in the \ref pref_dependency_tree "Preferences".
\note This functionality is available only if GUI module is builded with Graphics view (set option SALOME_USE_GRAPHICSVIEW to ON when building GUI module).
\note This functionality is available only if the GUI module is built with Graphics view (option SALOME_USE_GRAPHICSVIEW is ON when building GUI module).
<hr>
\anchor dependency_tree_nodes_anchor <h2>Nodes</h2>

View File

@ -0,0 +1,82 @@
/*!
\page extract_and_rebuild_page Extract and Rebuild
This operation allows extraction of sub-shapes from a given
shape.
To use this operation, select in the Main Menu <b>Operations -> Extract and Rebuild</b>.
The following dialog box appears:
\image html extract_rebuild.png "Extract and Rebuild Dialog"
In this dialog:
<ul>
<li> \b Name is a result object name.</li>
<li> <b>Main Object</b> is the main object selected for the operation. It is
possible to select the object in the Object Browser or in the viewer using
"selection" button.</li>
<li> <b>Sub-shape type</b> is the type filter for sub-shapes to be chosen
for the extraction.</li>
<li> <b>Filtered shapes</b> is the list of filtered sub-shape IDs available
for the extraction.</li>
<li> <b>Shapes to extract</b> is the list of sub-shape IDs to be extracted
grouped by shape types.</li>
<li> \b >> is the button to copy object IDs from <b>Filtered shapes</b> to
<b>Shapes to extract</b>.</li>
<li> \b << is the button to copy object IDs from <b>Shapes to extract</b> to
<b>Filtered shapes</b>.</li>
<li> <b>Show Only Selected</b> is the button to show objects selected in the
<b>Filtered shapes</b> list and hide all other objects.</li>
<li> <b>Hide Selected</b> is the button to hide objects selected in the
<b>Filtered shapes</b> list.</li>
<li> <b>Show all sub-shapes</b> is the button to show all objects from the
<b>Filtered shapes</b> list.</li>
<li> \b Rebuild is the button to perform extraction and show the operation
statistics.</li>
<li> The block of \b Statistics shows how many shapes of a certain type
are \b Removed, \b Modified and \b Added.</li>
<li> \b Apply is the button to create the result.</li>
<li> <b>Apply and Close</b> is the button to create the result and close
the dialog.</li>
<li> \b Close is the button to close this dialog.</li>
<li> \b Help is the button to show this help page.</li>
</ul>
<b>TUI Command:</b> <em>geompy.MakeExtraction(theShape, theListOfID),</em>
<br> where \em theShape is the main shape, \em theListOfID is a list of
sub-shape IDs to be extracted.
Our <b>TUI Scripts</b> provide you with useful example of the use of
\ref swig_MakeExtraction "Extract and Rebuild" functionality.
<b>More details</b>
If a sub-shape is extracted, all its ancestors should be modified. An ancestors
of extracted sub-shapes can be either:
- created anew without extracted sub-shapes, or
- extracted if it is not possible to create a valid shape without extracted
sub-shape.
E.g. it is necessary to extract the vertex from the box:
\image html extract_init.png "Extraction of the vertex from the box"
In this case 3 ancestor edges are removed as they can't be valid without
this vertex. 3 faces that contain these edges are also removed. It is because
the wires without edges are not closed and it is not possible to create
a valid face on not closed wire. These wires should contain two remaining
edges, but they are removed as they are the part of the remaining shell.
So these wires become empty that means that they should be removed as well.
The shell is replaced by another one that contains 3 not modified faces. As
It is not possible to construct a valid solid from not closed shell the solid
is removed. So the result of the extraction is a shell that contains 3 faces:
\image html extract_result.png "Result shape"
Please, refer to <a href="ExtractAndRebuild.pdf">this document</a> for a detailed
description of Extract and Rebuild operation.
*/

View File

@ -0,0 +1,93 @@
/*!
\page geom_field_page Working with Fields
A field object allows assigning some values to geometrical
entities. These values can be later transferred to mesh entities
generated on the geometrical entities during export to MED file in
Mesh module. Geometrical fields can be stored in/restored from
\ref io_xao "XAO format" files.
A field object assigns values to either
- all vertices of a GEOM_Object or
- all edges of a GEOM_Object or
- all faces of a GEOM_Object or
- all solids of a GEOM_Object or
- the whole GEOM_Object.
Values can be of one of the following types:
- boolean,
- integer,
- double,
- string.
\note Only integer and double values can be exported into the MED file.
The field can hold several named values (components) per a geometrical entity.
The field can include several sets of data called \a steps, each
dedicated to a certain time moment. A step is described by
- an integer ID,
- a time stamp number,
- values.
To create a field, in the <b>Main Menu</b> select <b>New Entity ->
Field -> Create Field</b>.
\image html create_field_dlg.png "Create Field dialog"
In this dialog you can:
<ul>
<li>Set <b>Field Name</b> with which a field will appear in the Object
Browser.</li>
<li>Select a \b Shape to which the field values will be assigned.</li>
<li>Select a \b Type of field values.</li>
<li>Select a type of \b Sub-shapes to assign values to.</li>
<li>Specify <b>Nb. Components</b> per a shape/sub-shape.
<li>Specify names of components and the values in a table of \b
Values. (To change a component name, double-click a column header).</li>
<li>Push <b>Add Step</b> button to add a new time step. (Specify a
step ID in \b Step field before pushing this button).</li>
<li>Adjust a time stamp number in \b Stamp field.<li>
<li>Push <b>Previous Step</b> and <b>Next Step</b> buttons to
navigate through added steps or use a drop-down list to the right
of the \b Step field to select a step by its ID.</li>
<li>Push <b>Remove Step</b> to delete a current step.</li>
<li>Push \b Apply or <b>Apply and Close</b> button to commit
creation of the field.<li>
</ul>
Later you can modify the values and the time stamp number of a created
field and to add/remove steps to it. To do it, choose <b>Edit
Field</b> in a contextual menu of a field or step in the Object Browser.
<b>Python API</b> for field manipulations includes the following commands:
<pre>
field = geompy.CreateField(shape, name, type, dimension, componentNames)
geompy.RemoveField(field)
shape = field.getShape()
name = field.getName()
field.setName(name)
type = field.getType()
dim = field.getDimension()
componentNames = field.getComponents()
nbFileds = geompy.CountFields(shape)
fields = geompy.GetFields(shape)
field = geompy.GetField(shape, name)
field.addStep(stepID, stamp, values)
field.removeStep(stepID)
nbSteps = field.countSteps()
stepIDs = field.getSteps()
stamp = field.getStamp(stepID)
field.setStamp(stepID, stamp)
values = field.getValues(stepID)
field.setValues(step, values)
</pre>
Our <b>TUI Scripts</b> provide you with examples of
\ref tui_geom_field_page "GEOM fields creation".
*/

View File

@ -43,6 +43,7 @@ provided by Geometry module.
<li>\ref tui_blocks_operations_page</li>
<li>\ref tui_repairing_operations_page</li>
</ul>
<li>\subpage tui_geom_field_page</li>
<li>\subpage tui_measurement_tools_page</li>
<li>\subpage tui_notebook_geom_page</li>
<li>\subpage tui_arranging_study_objects_page</li>

View File

@ -17,6 +17,7 @@
- viewing information about geometrical objects using
\subpage using_measurement_tools_page "measurement tools";
- \subpage pictures_page "designing shapes from pictures";
- \subpage geom_field_page "defining fields".
It is possible to easily set parameters via the variables predefined in
\subpage using_notebook_geom_page "SALOME notebook".

51
doc/salome/gui/GEOM/input/inspect_object_operation.doc Executable file → Normal file
View File

@ -6,12 +6,41 @@ This operation allows browsing the contents of the selected shape.
To <b>Inspect Object</b>, in the <b>Main Menu</b> select <b>Measures - > Inspect Object</b>.
\image html inspect_object.png
The dialog can be used in two modes. The first one is a tree view mode:
\image html inspect_object.png "Dialog in the tree view mode"
In this dialog:
This is a default mode that allows to inspect an object in the form of tree
starting from the shape itself. Its children are its direct sub-shapes that
have they own children as sub-shapes etc. till most very base sub-shapes,
i.e. vertices.
The second mode is a filtering one. It is activated when the user selects
<b>Tolerance filter</b> check box:
\image html inspect_object2.png "Dialog in the filtering mode"
In this mode the user can check the type of sub-shapes to work with using
the radio-buttons. The type can be either \b Vertex, \b Edge or \b Face.
Then the user choses a tolerance criterion to be applied to filter out
sub-shapes. It is possible to chose one of the following values:
- \b > - greater than (default value)
- \b >= - greater than or equal to
- \b < - lower than
- \b <= - lower than or equal to
The last parameter to be chosen is the tolerance value. The result is the shapes
of a certain type that satisfy the defined tolerance criterion. E.g. if the user
chooses \b Face, criterion \b > and tolerance value equal to \b 1.e-6 the faces
with the tolerance greater than \b 1.e-6 are displayed.
It is possible to set maximal and minimal value of the tolerance using the
buttons <b>Max value</b> and <b>Min value</b>. These values are displayed in
the labels <b>Max :</b> and <b>Min :</b>
In this dialog never mind of its mode it is possible to:
- Click on the "selection" button and select an object to inspect in the Object Browser or in the viewer.
- Show/hide sub-shape(s) in the 3D viewer, by pressing “eye” icon in the first column of the tree view.
- Show/hide all sub-shapes in the 3D viewer, by pressing “eye” icon in the first column of the tree view header.
- Show/hide sub-shape(s) in the 3D viewer, by pressing "eye" icon in the first column of the tree view.
- Show/hide all sub-shapes in the tree, by pressing "eye" icon in the first column of the tree view header or
by pressing <b>Show all</b>/<b>Hide all</b> buttons.
- Rename the selected sub-shape by double-clicking on the item or pressing <F2> key.
- Show the selected sub-shape(s) in the 3D viewer by pressing <b>Show Selected</b> button.
- Show the selected sub-shape(s) in the 3D viewer and erase all currently shown objects by pressing <b>Show Only Selected</b> button.
@ -19,4 +48,18 @@ In this dialog:
- Publish the selected sub-shapes in the study, by pressing <b>Publish Selected</b> button.
- Close dialog box, by pressing <b>Close</b> button.
\n <b>TUI Command:</b>
A command to filter sub-shapes is defined:
<em>geompy.GetSubShapesWithTolerance(theShape, theShapeType, theCondition, theTolerance),</em> \n
where \n
\em theShape is the shape to be exploded. \n
\em theShapeType is the type of sub-shapes to be returned. Can have
the values \b GEOM.FACE, \b GEOM.EDGE and \b GEOM.VERTEX only.\n
\em theCondition is the condition type (the value of GEOM.comparison_condition emuneration).\n
\em theTolerance is the tolerance filter.
See also a \ref swig_GetSubShapesWithTolerance "TUI example".
*/

View File

@ -18,14 +18,14 @@ the angle of the projection start.
- <b>Length angle</b> where the total length of
the wire should be projected. If it is unchecked the projection is not scaled and the natural
wire length is kept for the projection.
- <b>Rotation angle</b> the desired angle between the tangent vector to
the first curve at the first point of the theObject's projection in 2D space
and U-direction of cylinder's 2D space.
- <b>Rotation angle</b> the angle between the tangent vector to
the first curve at the first point of the object projection in 2D space
and U-direction of the cylinder in 2D space.
- \ref restore_presentation_parameters_page "Advanced options".
\image html proj_on_cyl_dlg.png
\n The following figure explains meaning of each input angle:
\n The following figure explains the meaning of each input angle:
\image html proj_on_cyl_angles.png "Input angles of projection on the cylinder"

View File

@ -7,4 +7,6 @@ that can be useful for reading.
<a href="SALOME_BOA_PA.pdf">General Fuse Algorithm, Partition
Algorithm, Boolean Operations Algorithm. Backgrounds.</a>
<a href="ExtractAndRebuild.pdf">Extract and Rebuild algorithm specification.</a>
*/

View File

@ -12,19 +12,19 @@ In this dialog:
- "Selected objects" standard selection box allows selecting one or more geometrical objects.
- "Type" combo-box with the following items: "Edges length", "Faces area", "Solids volume".
\note "Type" combo-box includes only parameters applied to the currently selected shape (e.g. "Solids volume" will not be available for face or shell being selected); multiple selection is processed correspondingly (i.e. only types applicable for all selected shapes will be available).
\note "Type" combo-box includes only parameters applied to the currently selected shape (e.g. "Solids volume" will not be available for a selected face or shell); multiple selection is processed correspondingly (i.e. only types applicable for all selected shapes will be available).
- "Number of intervals" spin box is used to specify number of distribution histogram ranges.
- "Scalar range" checkable group box that, when switched ON, allows specifying custom values range used for plotting and creating groups.
\note By default, "Scalar range" controls is empty; pressing "Compute" button allows automatic computing initial range of the chosen parameter. This is needed as computation of the parameters range can be time-consuming for large or complex models. In case of multiple selection, scalar range is computed as common from all selected shapes.
- "Scalar range" checkable group box, when switched ON, allows specifying custom values range used for plotting and creating groups.
\note By default, "Scalar range" controls are empty; pressing "Compute" button allows automatically computing the initial range of the chosen parameter. This is necessary as the computation of the parameters range can be time-consuming for large or complex models. In case of multiple selection, the scalar range is computed for all selected shapes.
- "Plot" button opens or uses an opened Plot2d viewer and plots the distribution histogram for the selected shape(s).
- "Create groups" button allows creating a groups according to the currently specified parameters. The groups names will include numerical values of the range, e.g. "Edges_length_0-20", "Edges_length_20-40", etc. Empty groups are not created.
- "Create groups" button allows creating groups according to the currently specified parameters. The group names will include numerical values of the range, e.g. "Edges_length_0-20", "Edges_length_20-40", etc. Empty groups are not created.
- Close dialog box, by pressing <b>Close</b> button.
\note This functionality is available only if GUI module is builded with Plot 2D Viewer (set option SALOME_USE_PLOT2DVIEWER to ON when building GUI module).
\note This functionality is available only if GUI module is built with Plot 2D Viewer (option SALOME_USE_PLOT2DVIEWER is ON when building GUI module).
*/

View File

@ -27,6 +27,8 @@ special case of \b Explode operation. </li>
special case of \b Explode operation. </li>
<li>\subpage transfer_data_page "Transfer Data" operation, which copies
non-topological data from one shape to another. </li>
<li>\subpage extract_and_rebuild_page "Extract and Rebuild" operation, which
extracts sub-shapes from the main shape. </li>
<li>\subpage restore_presentation_parameters_page "Restore presentation parameters".

View File

@ -0,0 +1,6 @@
/*!
\page tui_geom_field_page Geometrical Fields
\tui_script{GEOM_Field.py}
*/

View File

@ -102,6 +102,12 @@
\until geompy.RestoreSubShapes(Partition1)
\anchor swig_GetSubShapeEdgeSorted
\until geompy.GetSubShapeEdgeSorted(Sketcher3d_2, p3, "OrderedEdges")
\anchor swig_GetSubShapesWithTolerance
\until geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_LE, 1.e-7, "le")
\anchor swig_MakeExtraction
\until print "DONE"
*/

View File

@ -101,8 +101,8 @@ In order to filter out some entities:
The entities, which satisfy the entered filtering parameters, will be automatically highlighted
in the 3D viewer.
\b Plot button into "Filter" group box provides an access
to the \ref shape_statistics_operation_page "Shape Statistics" functionality with simplified look-n-feel:
\b Plot button gives access
to the \ref shape_statistics_operation_page "Shape Statistics" functionality with a simplified look-and-feel:
\image html shape_statistics_simple.png

Binary file not shown.

View File

@ -4,7 +4,7 @@
<ul>
$navpath
<li class="footer">
Copyright &copy; 2007-2015 CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
Copyright &copy; 2007-2016 CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
Copyright &copy; 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D, LEG, PRINCIPIA R&amp;D, BUREAU VERITAS<br>
</li>
</ul>

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -4,7 +4,7 @@
<ul>
$navpath
<li class="footer">
Copyright &copy; 2007-2015 CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
Copyright &copy; 2007-2016 CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
Copyright &copy; 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D, LEG, PRINCIPIA R&amp;D, BUREAU VERITAS<br>
</li>
</ul>

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@ -209,6 +209,17 @@ module GEOM
SI_ALL // all interferences
};
/**
* This enumeration represents comparison conditions.
*/
enum comparison_condition
{
CC_GT, ///< Greater then
CC_GE, ///< Greater then or equal to
CC_LT, ///< Less then
CC_LE ///< Less then or equal to
};
/*!
* \brief Object creation parameters
*
@ -288,7 +299,9 @@ module GEOM
long GetStudyID();
/*!
* \brief Get internal type of the object (POINT, BOX, CYLINDER, EXTRUSION...).
* \brief Get internal type of operation created this object (POINT, BOX, CYLINDER, EXTRUSION...).
* \note To get topological information on the object, use \ref GEOM_IMeasureOperations::WhatIs() "WhatIs()"
* or \ref GEOM_IMeasureOperations::KindOfShape() "KindOfShape()" operation.
*/
long GetType();
@ -2643,7 +2656,8 @@ module GEOM
* coincident with \a theShapeWhat or could be a part of it.
* \param theShapeWhere Shape to find sub-shapes of.
* \param theShapeWhat Shape, specifying what to find.
* \return Group of all found sub-shapes or a single found sub-shape.
* \return Compound which includes all found sub-shapes if they have different types;
* or group of all found shapes of the equal type; or a single found sub-shape.
*/
GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat);
@ -2666,7 +2680,8 @@ module GEOM
*
* \param theShapeWhere Shape to find sub-shapes of.
* \param theShapeWhat Shape, specifying what to find.
* \return Group of all found sub-shapes or a single found sub-shape.
* \return Compound which includes all found sub-shapes if they have different types;
* or group of all found shapes of the equal type; or a single found sub-shape.
*/
GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat);
@ -2747,6 +2762,63 @@ module GEOM
ListOfGO GetSubShapeEdgeSorted (in GEOM_Object theShape,
in GEOM_Object theStartPoint);
/*!
* \brief Return the list of subshapes that satisfies a certain tolerance
* criterion. The user defines the type of shapes to be returned, the
* condition and the tolerance value. The operation is defined for
* faces, edges and vertices only. E.g. for theShapeType FACE, theCondition
* CC_GT and theTolerance 1.e-7 this method returns all faces of theShape
* that have tolerances greater then 1.e7.
*
* \param theShape the shape to be exploded
* \param theShapeType the type of shapes to be returned. Can have the
* values FACE, EDGE and VERTEX only.
* \param theCondition the condition type.
* \param theTolerance the tolerance filter.
* \return the list of shapes that satisfy the conditions.
*/
ListOfGO GetSubShapesWithTolerance(in GEOM_Object theShape,
in short theShapeType,
in comparison_condition theCondition,
in double theTolerance);
/**
* This enumeration represents an extraction statistics type. It is used in
* the interface GEOM_IShapesOperations::MakeExtraction.
*/
enum ExtractionStatType
{
EST_Removed, ///< Removed sub-shapes
EST_Modified, ///< Modified sub-shapes
EST_Added ///< Newly created sub-shapes
};
/*!
* This structure defines a format of extraction statistics. It is used in
* the interface GEOM_IShapesOperations::MakeExtraction.
*/
struct ExtractionStat
{
ExtractionStatType type; ///< Type of extraction statistics.
ListOfLong indices; ///< Shape indices touched by this type of modification.
};
typedef sequence<ExtractionStat> ExtractionStats;
/*!
* \brief Return the shape that is constructed from theShape without
* extracted sub-shapes from the input list.
*
* \param theShape the original shape.
* \param theSubShapeIDs the list of sub-shape IDs to be extracted from
* the original shape.
* \param theStats the operation statistics. Output parameter.
* \return the shape without extracted sub-shapes.
*/
GEOM_Object MakeExtraction(in GEOM_Object theShape,
in ListOfLong theSubShapeIDs,
out ExtractionStats theStats);
};
// # GEOM_IBlocksOperations:

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@ -24,6 +24,23 @@
module GEOM
{
/*!
* \brief Units of length
*/
enum length_unit
{
LU_INCH,
LU_MILLIMETER,
LU_FOOT,
LU_MILE,
LU_METER,
LU_KILOMETER,
LU_MILLIINCH,
LU_MICROMETER,
LU_CENTIMETER,
LU_MICROINCH
};
/*!
* \brief Interface for STEPPlugin modeling functions.
*/
@ -34,9 +51,11 @@ module GEOM
*
* \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in.
* \param theUnit the length unit.
*/
void ExportSTEP( in GEOM::GEOM_Object theObject,
in string theFileName );
in string theFileName,
in GEOM::length_unit theUnit);
/*!
* \brief Import a shape from the STEP file.
@ -45,10 +64,14 @@ module GEOM
* \param theIsIgnoreUnits If True, file length units will be ignored (set to 'meter')
* and result model will be scaled, if its units are not meters.
* If False (default), file length units will be taken into account.
* \param IsCreateAssemblies If True, for each assembly compound is created
* in the result. If False Compounds that contain a
* single shape are eliminated from the result.
* \return List of GEOM_Objects, containing the created shape and propagation groups.
*/
GEOM::ListOfGO ImportSTEP( in string theFileName,
in boolean theIsIgnoreUnits );
in boolean theIsIgnoreUnits,
in boolean IsCreateAssemblies);
/*!
* \brief Read a value of parameter from a file, containing a shape.

View File

@ -1,4 +1,4 @@
// Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@ -94,6 +94,7 @@ SET( _res_files
edgeextension.png
erase.png
eraseall.png
extract.png
extruded_boss.png
extruded_cut.png
facetosurface.png
@ -302,6 +303,13 @@ SET( _res_files
)
INSTALL(FILES ${_res_files} DESTINATION ${SALOME_GEOM_INSTALL_RES_DATA})
SET( _texture_files
texture1.dat
texture2.dat
texture3.dat
)
INSTALL(FILES ${_texture_files} DESTINATION ${SALOME_GEOM_INSTALL_RES_DATA}/textures)
SALOME_CONFIGURE_FILE(GEOMCatalog.xml.in GEOMCatalog.xml INSTALL ${SALOME_GEOM_INSTALL_RES_DATA})
SALOME_CONFIGURE_FILE(SalomeApp.xml.in SalomeApp.xml INSTALL ${SALOME_GEOM_INSTALL_RES_DATA})
SALOME_CONFIGURE_FILE(Plugin.in Plugin INSTALL ${SALOME_GEOM_INSTALL_RES_DATA})

View File

@ -1,6 +1,6 @@
<?xml version='1.0' encoding='us-ascii' ?>
<!--
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE application PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE application PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

View File

@ -1,5 +1,5 @@
<!--
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2014-2015 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright (C) 2014-2016 CEA/DEN, EDF R&D, OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

BIN
resources/extract.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

8
resources/texture1.dat Executable file
View File

@ -0,0 +1,8 @@
11111111
10000001
10011001
10111101
10111101
10011001
10000001
11111111

8
resources/texture2.dat Executable file
View File

@ -0,0 +1,8 @@
00111100
00111100
11111111
11111111
11111111
11111111
00111100
00111100

8
resources/texture3.dat Executable file
View File

@ -0,0 +1,8 @@
00111100
00000000
10111101
10111101
10111101
10111101
00000000
00111100

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

View File

@ -1,4 +1,4 @@
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public

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