3 years ago0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- automatic
abv [Fri, 4 Dec 2015 11:15:06 +0000]
0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- automatic

Automatic restore of IMPLEMENT_STANDARD_RTTIEXT macro (upgrade -rtti)

3 years ago0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- manual
abv [Mon, 30 Nov 2015 04:49:48 +0000]
0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- manual

Restored possibility to have out-of-line implementation of DynamicCast() and STANDART_TYPE():
- Macro STANDARD_TYPE() now resolves to function get_type_descriptor() of the class
- Macro DEFINE_STANDARD_RTTI is replaced by two variants:
  - DEFINE_STANDARD_RTTI_INLINE works as before, defining DynamicCast() and get_type_descriptor() as inline functions
  - DEFINE_STANDARD_RTTIEXT declares DynamicCast() and get_type_descriptor() as exported
- Macro IMPLEMENT_STANDARD_RTTIEXT provides definition of DynamicCast() and get_type_descriptor() for a class

Upgrade script amended to replace DEFINE_STANDARD_RTTI by pair of DEFINE_STANDARD_RTTIEXT / IMPLEMENT_STANDARD_RTTIEXT if source file with the same name as header is found in the same folder, and by DEFINE_STANDARD_RTTI_INLINE if either source is not found or class is defined in the source (i.e. not in header)

Upgrade tool improved to recognize include statements with path prefix, like #include <occt/gp_Pnt.hxx>
Code corrected to eliminate warnings reported by upgrade tool.
Template of CXX file for testing upgrade tool added.

Documentation of upgrade procedure updated.

3 years ago0026859: Export of GDT from XCAF to STEP
ika [Tue, 10 Nov 2015 08:58:29 +0000]
0026859: Export of GDT from XCAF to STEP

Add export of dimensions, geometric tolerances and datums, according to AP242.
Add missing STEP entities.

Add new attributes to Datum object: DatumTargetNumber.
Supplement enum XCAFDimTolObjects_GeomToleranceZoneModif.

Test cases:
gdt export A1
gdt export A2
gdt export A3
gdt export A4
gdt export A5

3 years ago0026431: Can't cut a sphere from a cylinder
nbv [Tue, 10 Nov 2015 07:31:19 +0000]
0026431: Can't cut a sphere from a cylinder

This branch contains fixes for 26675 and 26431 bugs.

1. Normalization has been eliminated.
2. Interfaces of AppDef_Compute::Parametrization(...) and BRepAlgo_BooleanOperations::SetApproxParameters() methods have been changed.
3. Overloaded methods for ApproxInt_Approx::SetParameters(...), TopOpeBRepTool_GeomTool::GetTolerances(...) and TopOpeBRepTool_GeomTool::SetTolerances(...) have been removed (because some fields of these classes are not used more).
4. Comments for some methods have been changed in BRepApprox_TheMultiLineOfApprox.hxx and GeomInt_TheMultiLineOfWLApprox.hxx files.
5. Some fields have been deleted from ApproxInt_MultiLine class. Kept members have become constant.
6. Interface of ksection DRAW-command has been changed.
7. Now, 2dintersect DRAW-command prints information about found segments.
8. Some code fragments have been rewritten to make them easier.
9. Algorithm of splitting WLine, which goes through pole of sphere has been improved.
10. Improve approximation algorithm in order to it will compute correct 2D- and 3D-tangent at the end of bezier constraints (including case when curve goes through or finishes on singular points).
11. Interface of IntPatch_WLine::Dump(...) method has been corrected.
12. Some methods for working with Walking-line are made more universal (available for both GeomInt and IntTools packages).
13. Problem in BRepLib::SameParameter(...) method has been fixed (see corresponding comment).
14. Small correction in Draft package.
15. Any outputs in IntPatch_Intersection::Dump(...) method have become disabled because they are useless. If anybody need in this outputs he/she will correct this method himself/herself.

Adjusting some test cases according to their new behavior.
Creation of new test cases.


Some explanation of new behavior of some test cases:

 1. Regressions:

a) blend simple X4
The problem is described in the issue #0026740. According to this description,  the result on the current MASTER seems to be wrong indeed.

b) boolean bcommon_complex C7 and boolean bcut_complex Q1
These test case use same shapes with different Boolean operation (COMMON and CUT). They are already BAD (on the MASTER). Now, some sub-shapes have become not-shared, simply. In my opinion, we shall apply new behavior of these tests.

c) boolean bsection M3
The problem described in the issue #0026777 exists even on the current MASTER.

d) boolean bsection M9
The problem is described in the message http://tracker.dev.opencascade.org/view.php?id=26815#c47546. Here, we have really regression in the picture.

e) boolean bsection N2

The problem is described in issue #0026814.

f) boolean volumemaker G1

The problem is described in issue #26020.

g) bugs modalg_1 bug1255 (and bug1255_1)

The problem is described in issue #26815.

h) bugs modalg_2 bug5805_18, bugs modalg_2 bug5805_42, bugs modalg_2 bug5805_46

The problem is described in issue #25925.

i) bugs modalg_3 bug602

The problem is describes in issue #602.

j) bugs modalg_5 bug24915

The problem is described in the message http://tracker.dev.opencascade.org/view.php?id=25929#c48565. It is not fixed by this issue.

k) bugs modalg_5 bug25838

The main reason is described in issue #0026816.

2. Improvements:

a) boolean volumemaker F9
b) bugs modalg_1 bug10160_3
c) bugs modalg_2 bug22557
d) bugs modalg_5 bug25319_1 (_2)
e) draft angle G2
f) offset shape A1
g) offset with_intersect_80 N7

3 years ago0025929: Make Approx_ComputeLine algorithm adaptive
aml [Tue, 10 Nov 2015 06:57:03 +0000]
0025929: Make Approx_ComputeLine algorithm adaptive

Adaptive partition algorithm of WLine is implemented and used in ApproxInt_Approx.gxx file.
Refactoring of ApproxInt_Approx class.
Test cases are updated to the new behaviour.

Filtering algorithm improved.

3 years agoCSF_TBB added for toolkits that need to link to TBB
abv [Thu, 3 Dec 2015 14:58:57 +0000]
CSF_TBB added for toolkits that need to link to TBB

3 years ago0026902: Configuration, CMake - tests is not installed after definition INSTALL_OCCT_...
ski [Thu, 3 Dec 2015 09:28:58 +0000]
0026902: Configuration, CMake - tests is not installed after definition INSTALL_OCCT_TEST_CASES option

Variables responsible for installation of tests and samples were renamed

3 years ago0026922: Huge performance issue writing data to the output stream
mgn [Wed, 2 Dec 2015 13:39:55 +0000]
0026922: Huge performance issue writing data to the output stream

Test case for issue CR26922

Correction of literal (char to string)

3 years ago0026940: Visualization, TKOpenGl - capping plane should be applied to connected struc...
kgv [Tue, 1 Dec 2015 10:53:51 +0000]
0026940: Visualization, TKOpenGl - capping plane should be applied to connected structures

OpenGl_Structure::Render(), OpenGl_CappingAlgo::RenderCapping() - render
groups of instanced and this structure in the same manner
using ::renderGeometry() and ::renderClosedGeometry() instead of ::DrawGroups().
Skip capping algo for structures without groups of closed primitives.

3 years ago0026838: Using GeomEvaluators for calculation of values of curves
azv [Fri, 6 Nov 2015 05:49:50 +0000]
0026838: Using GeomEvaluators for calculation of values of curves

1. Implemented evaluators for 2D and 3D offset curves
2. Removed obsolete namespace CSLib_Offset

Update of UDLIST (adding no-cdl-pack Geom2dEvaluator)

Update TKG2d/CMakeLists.txt after rebase

Correction compilation in debug mode

3 years ago0026658: Unexpected selection in the context using a selection filter.
apl [Tue, 17 Nov 2015 15:54:25 +0000]
0026658: Unexpected selection in the context using a selection filter.

Method AIS_LocalContext::ClearOutdatedSelection() fixed. Now it chooses "mylastindex" value from list of filtered detected owners. The topmost detected owner will be highlighted if the current detected owner was cleared as outdated.

BUC26658 command to check the bug fix in DRAW.

append a test script to automatically check the bug in DRAW.

warnings correction.

3 years ago0026792: Visualization, Graphic3d - Z-fit support for transform persistence is missin...
apl [Thu, 19 Nov 2015 08:16:14 +0000]
0026792: Visualization, Graphic3d - Z-fit support for transform persistence is missing after removing Visual3d_View

Add missing code for z-fit support for zoom, rotate persistent object.
Fixed wrong statement that should enable frustum culling optimization for zoom, rotate persistent object.
Fixed BVH_LinearBuilder.lxx to correctly control number of items in leaf node for a case of items with equal bounding boxes.
Added non-regression test case for z-clipping of transform persistent objects.

3 years ago0023620: Follow up of 0022939 - make Bezier curve/surface evaluation thread-safe
azv [Mon, 2 Nov 2015 06:33:04 +0000]
0023620: Follow up of 0022939 - make Bezier curve/surface evaluation thread-safe

1. Remove cache from Geom_BezierCurve, Geom2d_BezierCurve and Geom_BezierSurface
2. Add cache for Bezier curves into GeomAdaptor_Curve, Geom2dAdaptor_Curve and GeomAdaptor_Surface
3. Update comments in corresponding cache classes
4. Avoid frequent down-casting to B-splines in adaptors

3 years ago0026914: [Regression 7.0alpha] Hang in surface approximation
azv [Tue, 24 Nov 2015 11:42:20 +0000]
0026914: [Regression 7.0alpha] Hang in surface approximation

Change a constructor of evaluator for offset surfaces

Test-case for issue #26914

3 years ago0026451: Crash importing STeP file
ika [Fri, 6 Nov 2015 08:47:53 +0000]
0026451: Crash importing STeP file

Add check for NULL.

3 years ago0026915: Visualization - return Handle from Graphic3d_CView::FBOCreate() instead...
kgv [Mon, 23 Nov 2015 11:16:08 +0000]
0026915: Visualization - return Handle from Graphic3d_CView::FBOCreate() instead of a pointer

OpenGl_View::FBO() - use copy Handle constructor for compatibility.

3 years ago0026348: Visualization, TKOpenGl - eliminate invalid NULL checks for transformation...
osa [Tue, 24 Nov 2015 12:26:34 +0000]
0026348: Visualization, TKOpenGl - eliminate invalid NULL checks for transformation matrix

Graphic3d_CStructure::Transformation - use Graphic3d_Mat4 instead of plain arrays.
Drop duplicating field OpenGl_Structure::myTransformation (copy of Graphic3d_CStructure::Transformation).
Drop unused property Graphic3d_CStructure::Composition and Graphic3d_Structure::Composition().

3 years ago0026005: Problem with transient TFunction_Logbook
vro [Tue, 24 Nov 2015 05:56:17 +0000]
0026005: Problem with transient TFunction_Logbook

3 years ago0026897: BRepBuilderAPI_Copy does not copy polygons
azv [Fri, 20 Nov 2015 13:00:06 +0000]
0026897: BRepBuilderAPI_Copy does not copy polygons

1. Implemented copying for 3D polygons and polygons on surfaces
2. Added test case bugs/modalg_6/bug26897

3 years ago0026891: Visualization, TKOpenGl - define more texture types within OpenGl_TextureFor...
isk [Thu, 19 Nov 2015 12:31:24 +0000]
0026891: Visualization, TKOpenGl - define more texture types within OpenGl_TextureFormatSelector

3 years ago0026905: Visualization - cosmetic fixes in selection methods of AIS_InteractiveContext
vpa [Fri, 20 Nov 2015 11:10:52 +0000]
0026905: Visualization - cosmetic fixes in selection methods of AIS_InteractiveContext

- selection mode in AIS_InteractiveContext::AddOrRemoveSelected is corrected;
- AIS_InteractiveContext::IsSelected returns object's state instead of global status.

3 years ago0026871: [Regression in 6.9.0] Projecting a curve hangs inside Approx_FitAndDivide2d
azv [Tue, 17 Nov 2015 13:46:32 +0000]
0026871: [Regression in 6.9.0] Projecting a curve hangs inside Approx_FitAndDivide2d

Fix checking of B-spline parametrization speed

Test case for issue CR26871

3 years ago0026884: Cylinder/Cylinder intersection algorithm throws an exception
nbv [Wed, 18 Nov 2015 08:01:12 +0000]
0026884: Cylinder/Cylinder intersection algorithm throws an exception

Check, if cylinder axes are parallel is made more carefully.
This check is brought to conformity with check if axes are parallel (see constructor AxeOperator::AxeOperator(...) in IntAna_QuadQuadGeo.cxx file)

Test case for issue CR26884

3 years ago0026625: Possible wrong use of vtkSmartPointer<T> in IVtkVTK_ShapeData.cxx
rkv [Mon, 9 Nov 2015 14:49:42 +0000]
0026625: Possible wrong use of vtkSmartPointer<T> in IVtkVTK_ShapeData.cxx

Use vtkSmartPointer<XXX>::New() instead of XXX::New() when initializing fields of vtkSmartPointer<XXX> types.

3 years ago0025549: Visualization - do not crash on attempt to display the Angle dimension betwe...
aba [Tue, 10 Nov 2015 06:49:39 +0000]
0025549: Visualization - do not crash on attempt to display the Angle dimension between two parallel lines

- Handle cases of 0 and Pi angle depending on lines in edges and end points

Draw arcs in accordance with input normal for minimum angle, check correctness of input circle parameters

3 years agoRedirection of generation reference documentation from source files CR0-inv
bugmaster [Tue, 24 Nov 2015 13:36:34 +0000]
Redirection of generation reference documentation from source files

3 years agoCopy env.bat file from adm/templates
bugmaster [Tue, 24 Nov 2015 12:25:47 +0000]
Copy env.bat file from adm/templates

3 years ago0026912: CLang 3.6.2 compiler warning [-Winconsistent-missing-override]
abv [Fri, 20 Nov 2015 18:04:11 +0000]
0026912: CLang 3.6.2 compiler warning [-Winconsistent-missing-override]

3 years ago0026911: Configuration, CMake - strips symbol information from the binary in release...
ibs [Sat, 21 Nov 2015 10:46:04 +0000]
0026911: Configuration, CMake - strips symbol information from the binary in release configuration if the compiler is a variant of gcc

add strip flag when the compiler is a variant of gcc

3 years ago0026861: Configuration, CMake - enable -Wall warnings when using CLang
ibs [Wed, 11 Nov 2015 14:48:18 +0000]
0026861: Configuration, CMake - enable -Wall warnings when using CLang

-Wall warning option added for CLang compiler

3 years ago0026903: Configuration, CMake - 3rdparty search algorithms should have the same logic
ibs [Mon, 16 Nov 2015 11:05:54 +0000]
0026903: Configuration, CMake - 3rdparty search algorithms should have the same logic

the search algorithms fitted with one logic.

3rdparty_dir is not specified by-default
3rdparty_<name>_dir has higher priority than 3rdparty_dir

frameworks are considered on Mac OS;

CMake - continue method (cmake version >= 3.2) removed

vtk installation disabled

Mac OS X - link /usr/X11/lib if X11 library is linked

FILES parsing optimized

search X11 package for every time when it used on MAC

CSF_XwLibs used by a toolkit using Tk

break a package processing if all the files from FILES file have been processed

3 years ago0026865: Configuration, CMake - ensure consistency between FILES and actual content...
ibs [Tue, 10 Nov 2015 08:49:08 +0000]
0026865: Configuration, CMake - ensure consistency between FILES and actual content of inc and src folders

headers from inc folder are being checked for using in further building process
parse FILES file to collect header files for inc folder

during cleaning inc folder, do not remove the headers with name not containing their package name

FILES is parsed not only for headers files

Warning is emitted when a file in folder is not involved to corresponding FILES file
lex and yacc file added StepFile/FILES file

Small correction

3 years ago0026880: Configuration, CMake - platform dependent code is not generated
ibs [Thu, 12 Nov 2015 12:28:34 +0000]
0026880: Configuration, CMake - platform dependent code is not generated

several misprints fixed (upper case, sorting of empty list, empty parent directory)

CMake should consider CSF_ variables from EXTERNLIB file for each toolkit

CSF_ variables are defined in occt_csf for each OS
redundant CSF removed


3 years ago0026858: Configuration - cmake wrong detected TK folder
ibs [Thu, 12 Nov 2015 09:55:22 +0000]
0026858: Configuration - cmake wrong detected TK folder

regex template for 3rdparty folder changed
the sensitive case of comparison of two folders fixed

3 years ago0000670: Problem with the Print method.
abv [Thu, 19 Nov 2015 12:20:39 +0000]
0000670: Problem with the Print method.

Test for issue #670 corrected to avoid unpredictable behavior

3 years ago0026179: Coding rules - eliminate -Wdeprecated-declarations CLang warnings on tmpnam...
rkv [Mon, 16 Nov 2015 14:43:25 +0000]
0026179: Coding rules - eliminate -Wdeprecated-declarations CLang warnings on tmpnam() usage

Make a temporary file using BuildTemporary() in "/tmp" folder on Linux or using "TEMP" environment variable on Windows.
Use the new OSD_File::Capture() method for standard output redirection.

3 years ago0025926: 3D offset in mode "Complete" with Join type "Intersection"
emv [Fri, 30 Oct 2015 13:27:02 +0000]
0025926: 3D offset in mode "Complete" with Join type "Intersection"

Extension for colliding cases (Limited to work on planar cases only).

Test cases for issue CR25926

Update of test-cases according to the new behavior

3 years ago0026890: Foundation Classes, TKernel - define OSD_OpenStream for std::ifstream
isk [Wed, 18 Nov 2015 12:49:08 +0000]
0026890: Foundation Classes, TKernel - define OSD_OpenStream for std::ifstream

3 years ago0026664: Triangulating a very small polygon fails
pdn [Tue, 8 Sep 2015 15:51:33 +0000]
0026664: Triangulating a very small polygon fails

Parameter for adaptive computation of minimal 2D meshing precision added in BRepMesh_IncrementalMesh API.
Corresponding option -adaptive added in DRAW command

All meshing parameters are collected in structure, BRepMesh_FastDiscret::Parameters, which is now used to define and manipulate parameters of the algorithm.

3 years ago0026252: GeomAdaptor_Surface should use inner adaptor to calculate values of complex...
azv [Mon, 16 Nov 2015 12:48:07 +0000]
0026252: GeomAdaptor_Surface should use inner adaptor to calculate values of complex surfaces

* Implement GeomEvaluator package
* Inject evaluators to GeomAdaptor_Surface to calculate values of complex surfaces
* Inject evaluators to Geom_Surface classes to calculate values for offset surfaces, surfaces of revolution and surfaces of extrusion
* Move Adaptor3d_SurfaceOfLinearExtrusion and Adaptor3d_SurfaceOfRevolution to GeomAdaptor and unify calculation of their values and derivatives
* Code optimizations
* Update test cases

Update of test-cases according to the new behavior

3 years ago0026869: Documentation - simplify "Building with CMake and ADT on Android" article
ibs [Fri, 13 Nov 2015 13:51:47 +0000]
0026869: Documentation - simplify "Building with CMake and ADT on Android" article

ADT using removed. GNU make using added

Small corrections of title and image in documentation.

3 years ago0026247: Too huge binaries are produced for Android platform using MinGW
ski [Fri, 10 Jul 2015 07:52:53 +0000]
0026247: Too huge binaries are produced for Android platform using MinGW

Parameter "-s" was added to CMAKE_CXX_FLAGS_RELEASE and CMAKE_C_FLAGS_RELEASE to optimize size of binaries

3 years ago0026872: Coding - pointless instantiations of local variables in BinTools
abv [Sun, 15 Nov 2015 06:11:52 +0000]
0026872: Coding - pointless instantiations of local variables in BinTools

Instantiations of local stringstream variables used in error handling moved from upper function scope to places where they are actually needed

3 years ago0026870: Visualization - deactivated selections are not updated after object's re...
vpa [Fri, 13 Nov 2015 17:35:30 +0000]
0026870: Visualization - deactivated selections are not updated after object's re-computation

- update status in SelectMgr_SelectionManager::RecomputeSelection:
  1) is set to full for all selections;
  2) is switched to none only if selection was actually recomputed;
- test case for issue #26870

3 years ago0026790: Visualization, TKOpenGl - apply view resolution to the line width in OpenGl_...
isk [Wed, 11 Nov 2015 05:50:04 +0000]
0026790: Visualization, TKOpenGl - apply view resolution to the line width in OpenGl_Context::SetLineWidth()
Add ResolutionRatio() method in the Graphic3d_RenderingParams.
Add SetResolutionRatio() method in the OpenGl_Context.

3 years ago0026867: Configuration - update any comparison including __cplusplus macro to remove one
ibs [Mon, 9 Nov 2015 07:47:45 +0000]
0026867: Configuration - update any comparison including __cplusplus macro to remove one

__cplusplus >= 201103L replaced with __QNX__ macro

3 years ago0026681: BRepPrimAPI_MakeRevol creates faulty shape
jgv [Tue, 10 Nov 2015 11:25:56 +0000]
0026681: BRepPrimAPI_MakeRevol creates faulty shape

Correction according to remarks

More precise processing of non-SameParameter edges

Correction of mistake

Test cases for issue CR26681

3 years ago0026862: Configuration - avoid usage of 3rd-party headers within OpenGl_View and...
kgv [Thu, 12 Nov 2015 09:47:26 +0000]
0026862: Configuration - avoid usage of 3rd-party headers within OpenGl_View and D3DHost_View

Move Font_FTFont::Rect structure into dedicated header Font_FTFont.
D3DHost_View, OpenGl_Font, Font_TextFormatter - use forward declarations.

Fix regressions after #0024776

OpenGl_View::IsInvalidated() - fix misprint.
D3DHost_View::Redraw() - assign myFBO before rendering.
D3DHost_FrameBuffer::Init() - fix always zero viewport.

3 years ago0024890: Result of uniform scaling is invalid
ifv [Thu, 29 Oct 2015 12:39:20 +0000]
0024890: Result of uniform scaling is invalid

Test case for issue CR24890

3 years agoCurrent MASTER is not built if OCCT_DEBUG macros is enabled CR0_BuildProblem
nbv [Fri, 13 Nov 2015 11:49:25 +0000]
Current MASTER is not built if OCCT_DEBUG macros is enabled

3 years agoCosmetic correction
bugmaster [Thu, 12 Nov 2015 11:43:38 +0000]
Cosmetic correction

3 years ago0026056: AIS_LengthDimension can not build dimension for face-edge or edge-face
aba [Wed, 11 Nov 2015 10:41:59 +0000]
0026056: AIS_LengthDimension can not build dimension for face-edge or edge-face

- Correct AIS_LengthDimension::InitEdgeFaceLength() method to support face-edge and edge-face cases
- Correct test command to support face-edge and edge-face input geomerty without custom plane

3 years ago0026857: Documentation for methods Geom_BSplineSurface::SetU(V)NotPeriodic is wrong
ifv [Tue, 10 Nov 2015 15:12:55 +0000]
0026857: Documentation for methods Geom_BSplineSurface::SetU(V)NotPeriodic is wrong

3 years ago0026855: Draw commands to debug Boolean Operations Algorithm
emv [Mon, 9 Nov 2015 15:50:15 +0000]
0026855: Draw commands to debug Boolean Operations Algorithm

The commands to debug BOA.
These commands should serve only debug purposes and should not be used in tests.

Removing old implementation of the duplicated bopnews command.

3 years ago0026821: Visualization - define default Rendering Parameters for Interactive Context
isk [Tue, 10 Nov 2015 10:14:17 +0000]
0026821: Visualization - define default Rendering Parameters for Interactive Context

Define default Rendering Parameters within V3d_Viewer.
New instances of V3d_View use default Rendering Parameters.

3 years ago0026798: Boolean operations: keep desired cells and boundaries in the result
emv [Fri, 30 Oct 2015 12:30:38 +0000]
0026798: Boolean operations: keep desired cells and boundaries in the result

The algorithm is based on the General Fuse algorithm (GFA). The result of
GFA is all split parts of the Arguments.

The purpose of this algorithm is to provide the result with the content of:
1. Cells (parts) defined by the user;
2. Internal boundaries defined by the user.

In other words the algorithm should provide the possibility for the user
to add or remove any part to (from) result and remove any internal boundaries
between parts.

Requirements for the Data:
All the requirements of GFA for the DATA are inherited in this algorithm.
Plus all the arguments should have the same dimension.

The result of the algorithm is compound containing selected parts of
the basic type (VERTEX, EDGE, FACE or SOLID). The default result
is empty compound. It is possible to add any split part to the result
by using the methods AddToRessult() and AddAllToResult().
It is also possible to remove any part from the result by using methods
RemoveFromResult() and RemoveAllFromResult().
The method RemoveAllFromResult() is also suitable for clearing the result.

To remove Internal boundaries it is necessary to set the same material to the
parts between which the boundaries should be removed and call the method
RemoveInternalBoundaries(). The material should not be equal to 0, as this is
default material value. The boundaries between parts with this value
will not be removed.
One part cannot be added with the different materials.
It is also possible to remove the boundaries during combining the result.
To do this it is necessary to set the material for parts (not equal to 0)
and set the flag bUpdate to TRUE.
BUT for the arguments of the types FACE or EDGE it is recommended
to remove the boundaries in the end when the result is completely built.
It will help to avoid self-intersections in the result.

It is possible to create typed Containers from the parts added to result by using
method MakeContainers(). The type of the containers will depend on the type of
the arguments: WIRES for EEDGE, SHELLS for FACES and COMPSOLIDS for SOLIDS.
The result will be compound containing containers.
Adding of the parts to such result will not update containers. The result
compound will contain the containers and new added parts (of basic type).
Removing of the parts from such result may affect some containers if the
the parts that should be removed is in container. In this case this container
will be rebuilt without that part.

The algorithm supports history information. This information available through
the methods IsDeleted() and Modified(). In DRAW Test Harness it is available
through the same commands as for Boolean Operations (bmodified and bisdeleted).

1. API
BOPAlgo_CellsBuilder aCBuilder;
BOPCol_ListOfShape aLS = ...; // arguments
/* parallel or single mode (the default value is FALSE)*/
Standard_Boolean bRunParallel = Standard_False;
/* fuzzy option (default value is 0)*/
Standard_Real aTol = 0.0;
if (aCBuilder.ErrorStatus()) { // check error status
/* empty compound, as nothing has been added yet */
const TopoDS_Shape& aRes = aCBuilder.Shape();
/* all split parts */
const TopoDS_Shape& aRes = aCBuilder.GetAllParts();
BOPCol_ListOfShape aLSToTake = ...; // parts of these arguments will be taken into result
BOPCol_ListOfShape aLSToAvoid = ...; // parts of these arguments will not be taken into result
/* defines the material common for the cells, i.e.
   the boundaries between cells with the same material
   will be removed.
   By default it is set to 0. Thus, to remove some boundary
   the value of this variable should not be equal to 0 */
Standard_Integer iMaterial = ...;
/* defines whether to update the result right now or not */
Standard_Boolean bUpdate = ...;
// adding to result
aCBuilder.AddToResult(aLSToTake, aLSToAvoid, iMaterial, bUpdate);
aR = aCBuilder.Shape(); // the result
// removing of the boundaries

// removing from result
aCBuilder.RemoveFromResult(aLSToTake, aLSToAvoid);
aR = aCBuilder.Shape(); // the result

2. DRAW Test Harness
psphere s1 15
psphere s2 15
psphere s3 15
ttranslate s1 0 0 10
ttranslate s2 20 0 10
ttranslate s3 10 0 0

bclearobjects; bcleartools
baddobjects s1 s2 s3
# rx will contain all split parts
bcbuild rx
# add to result the part that is common for all three spheres
bcadd res s1 1 s2 1 s3 1 -m 1
# add to result the part that is common only for first and third shperes
bcadd res s1 1 s2 0 s3 1 -m 1
# remove internal boundaries
bcremoveint res

Added history support for Generated shapes (created in ShapeUpgrade_UnifySameDomain).

Methods AddToResult and RemoveFromResult have been documented in more details to clarify the procedure of adding and removing parts.

Adding external library to use ShapeUpgrade_UnifySameDomain.

Test-cases for issue #26798

3 years ago0026255: Adaptor3d_OffsetCurve is misleading
azv [Mon, 2 Nov 2015 09:03:23 +0000]
0026255: Adaptor3d_OffsetCurve is misleading

1. Rename Adaptor3d_OffsetCurve to Adaptor2d_OffsetCurve and relative classes
2. Remove redundant class Geom2dGcc_CurveToolGeo

3 years ago0026603: Problem with maximization and normalization document windows in Qt samples...
afv [Mon, 19 Oct 2015 13:02:23 +0000]
0026603: Problem with maximization and normalization document windows in Qt samples with Qt 5.x

3 years ago0026780: Coding rules - eliminate warnings on Linux and Mac
abv [Wed, 11 Nov 2015 06:32:41 +0000]
0026780: Coding rules - eliminate warnings on Linux and Mac

Fixed a few remaining warnings found by GCC, CLang, and VC++ 14 (recent changes)

3 years ago0026854: Use -Wextra with GCC
abv [Mon, 9 Nov 2015 04:47:29 +0000]
0026854: Use -Wextra with GCC

Added option -Wextra for GCC compilation

3 years ago0025078: Coding rules - eliminate GCC warning -Wclobbered
abv [Sun, 8 Nov 2015 17:17:47 +0000]
0025078: Coding rules - eliminate GCC warning -Wclobbered

GCC warning -Wclobbered suppressed in Standard_ErrorHandler.hxx when OCC_CONVERT_SIGNALS or NO_CXX_EXCEPTIONS are used

3 years ago0026852: Coding - compiler warnings issued by GCC 5.2.1
abv [Sun, 8 Nov 2015 16:29:24 +0000]
0026852: Coding - compiler warnings issued by GCC 5.2.1

Compiler warnings eliminated:
- BRepAlgo_DSAccess: avoid copying of local list
- IntPatch, IntTools: initialize "possibly used uninitialized" variables by zeros
- Intf: slight refactoring
- OSD_signal: suppress unused argument
- OpenGL: add missing initializers in structures
- STEPConstruct_GDTProperty: correct function signature to pass output parameters by reference

3 years ago0026783: Coding rules - eliminate GCC warning -Wunused-but-set-parameter
rkv [Thu, 5 Nov 2015 13:07:37 +0000]
0026783: Coding rules - eliminate GCC warning -Wunused-but-set-parameter

TestTopOpeDraw_Displayer::GetTol(), GetPar() - pass assigned parameters by reference.
TopOpeBRep_vprdeg.cxx, TopOpeBRep_FacesFiller::ProcessVPondgE() - remove commented code, comment inactive code.

3 years ago0026850: Replace nested instantiations of TCollection generic classes by NCollection...
abv [Sat, 7 Nov 2015 21:12:47 +0000]
0026850: Replace nested instantiations of TCollection generic classes by NCollection templates

Remaining instantiations of NCollection generics are converted to NCollection templates; unused and duplicates removed

3 years ago0024567: Coding rules - eliminate GCC warning -Wignored-qualifiers
abv [Sat, 7 Nov 2015 18:19:03 +0000]
0024567: Coding rules - eliminate GCC warning -Wignored-qualifiers

Redundant const qualifiers of return types of functions returning values are removed

3 years ago0026843: New warning during compilation OCCT on MacOS
abv [Sat, 7 Nov 2015 12:28:24 +0000]
0026843: New warning during compilation OCCT on MacOS

Remove unused (and not implemented) methods in OSD package: IsDivisible(), GetExponent(), GetMantissa(), AvailableMemory()

3 years ago0026780: Coding rules - eliminate warnings on Linux and Mac
rkv [Fri, 6 Nov 2015 11:22:16 +0000]
0026780: Coding rules - eliminate warnings on Linux and Mac

Avoid warnings by means of ifdef/ifndef or removing unused code.

3 years ago0026178: Coding rules - eliminate -Wtautological-pointer-compare CLang warnings in...
abv [Fri, 6 Nov 2015 04:54:57 +0000]
0026178: Coding rules - eliminate -Wtautological-pointer-compare CLang warnings in Standard_ErrorHandler

Tautological comparisons removed; buffer initialized by zeros; LXX files merged to HXX; descriptions added

3 years ago0026844: Visualization, OpenGl_Flipper - fix issues within Core Profile and OpenGL ES
kgv [Thu, 5 Nov 2015 08:49:30 +0000]
0026844: Visualization, OpenGl_Flipper - fix issues within Core Profile and OpenGL ES

Remove outdated code lines.

3 years ago0022325: Patch to fix a build failure on GNU/kFreeBSD
abv [Sun, 1 Nov 2015 08:57:26 +0000]
0022325: Patch to fix a build failure on GNU/kFreeBSD

3 years ago0026757: Wrong history of a fillet
jgv [Fri, 30 Oct 2015 13:23:53 +0000]
0026757: Wrong history of a fillet

Small correction

Test case for issue CR26757

3 years ago0026744: Boolean Cut builds incorrect result
apn [Mon, 2 Nov 2015 10:45:17 +0000]
0026744: Boolean Cut builds incorrect result

Added test case bugs/modalg_6/bug26744

3 years ago0026823: Configuration - use EGL on another platform without GLX
ibs [Wed, 28 Oct 2015 15:24:34 +0000]
0026823: Configuration - use EGL on another platform without GLX

3 years ago0026784: Coding rules - eliminate GCC warning -Wunused-parameter
rkv [Thu, 29 Oct 2015 07:43:23 +0000]
0026784: Coding rules - eliminate GCC warning -Wunused-parameter

OSD_Thread - use pthread_timedjoin_np() instead of pthread_join() when available (glibc extension).
Suppress unused parameter warning in OSD_Signal, NCollection_WinHeapAllocator, OpenGl_Text, OpenGl_View, V3d_View and ViewerTest.

3 years ago0026689: Necessary to improve STEPCAFControl_Reader to read GD&T data from STEP model...
ink [Tue, 15 Sep 2015 11:58:17 +0000]
0026689: Necessary to improve STEPCAFControl_Reader to read GD&T data from STEP model(AP242).

Small corrections
added tests, corrected remarks
corrected remarks
Fix compilation errors.
Update test case (direction can be exist only for Oriented dimension).
fix compilation warning

3 years ago0026763: CMake configuration process does not allow setup paths for TK library if...
ski [Mon, 2 Nov 2015 14:45:26 +0000]
0026763: CMake configuration process does not allow setup paths for TK library if it separated from TCL

It is possible now to use standalone TCL and TK.
Behavior of 3RDPARTY_TK_DIR specifying extended
TCL/TK searching works correctly with installed ActiveTcl
TCL/TK searching works correctly with latest versions of CMake

Small update of compilation for android

3 years ago0026831: Configuration - define HashCode for pthread_t on Android
ibs [Mon, 2 Nov 2015 14:41:04 +0000]
0026831: Configuration - define HashCode for pthread_t on Android

explicit cast Standard_ThreadId to Standard_Size

3 years ago0026834: Visualization, OpenGl_FrameBuffer - use GL_DEPTH_COMPONENT instead of GL_DEP...
ibs [Mon, 2 Nov 2015 14:41:25 +0000]
0026834: Visualization, OpenGl_FrameBuffer - use GL_DEPTH_COMPONENT instead of GL_DEPTH for texture initialization

getDepthDataFormat method uses correct enumeration for GL_DEPTH_COMPONENT texture now

3 years ago0026830: TKernel should not be linked with pthread and rt
ibs [Mon, 2 Nov 2015 11:40:15 +0000]
0026830: TKernel should not be linked with pthread and rt

pthread and rt are not linked on android and qnx

3 years ago0026822: Visualization, OpenGl_Texture - fix compilation issue on Android due to...
kgv [Wed, 28 Oct 2015 15:19:59 +0000]
0026822: Visualization, OpenGl_Texture - fix compilation issue on Android due to usage of undefined macros GL_DEBUG_TYPE_ERROR

Drop _ARB prefix from GL_DEBUG_ enumeration.

3 years ago0026810: Visualization, TKOpenGl - line is shown without stipple aspect with FFP...
kgv [Sat, 24 Oct 2015 14:32:36 +0000]
0026810: Visualization, TKOpenGl - line is shown without stipple aspect with FFP turned off on OpenGL before 3.2

OpenGl_ShaderManager::prepareStdProgramFlat() enable stipple line GLSL program
within OpenGL 3.0+, OpenGL ES 3.0+ and OpenGL 2.0+ with GL_EXT_gpu_shader4 extension.

3 years ago0026808: Visualization, TKOpenGl - specify GLSL 120 for point sprites program
kgv [Sat, 24 Oct 2015 11:40:09 +0000]
0026808: Visualization, TKOpenGl - specify GLSL 120 for point sprites program

3 years ago0026781: Coding rules - eliminate GCC warning -Wunused-result
rkv [Wed, 28 Oct 2015 07:13:28 +0000]
0026781: Coding rules - eliminate GCC warning -Wunused-result

Check return code of fgets() and system() within FSD_BinaryFile::ReadChar(),
IFSelect_SessionFile::ReadFile(), IFSelect_SessionPilot::ReadScript(),
OSD_File::Print(), OSD_Process::Spawn(), RWStl::ReadAscii(), iges_lire().

3 years ago0026699: Wrong section curves
nbv [Wed, 28 Oct 2015 07:10:37 +0000]
0026699: Wrong section curves

1. Algorithm of Restriction line processing has been improved in IntTools_FaceFace.cxx file.
2. Algorithm of checking, if Restriction line and Walking line are coincided has been improved in IntPatch_ImpPrmIntersection.cxx file.
3. Algorithm of extending check if starting point of Walking line is a tangent point has been added.

Small correction of some test cases.
Creation of test case for issue #0026699.

Small correction of test case for issue CR26699

3 years ago0024658: fixshape changes source shape
aml [Tue, 29 Sep 2015 07:34:24 +0000]
0024658: fixshape changes source shape

Context usage extended in method ShapeFix_Wire::FixSelfIntersection() to avoid modification of original shape by shape healing.
Added check for subshape modification in XSAlgo/XSAlgo_AlgoContainer::MergeTransferInfo().
Test cases are updated to the new behaviour.

Test case for issue CR24658

3 years ago0026426: Draft angle algorithm modifies input argument + the result of the operation...
ifv [Fri, 17 Jul 2015 06:43:21 +0000]
0026426: Draft angle algorithm modifies input argument + the result of the operation have very large tolerance values

Test-case for issue #26426

3 years ago0026811: Coding rules - drop unused Draw Harness command deboucle
rkv [Mon, 26 Oct 2015 06:58:47 +0000]
0026811: Coding rules - drop unused Draw Harness command deboucle

3 years ago0026805: Visualization, Graphic3d_GraphicDriver - drop outdated unsupported methods...
kgv [Fri, 23 Oct 2015 18:45:27 +0000]
0026805: Visualization, Graphic3d_GraphicDriver - drop outdated unsupported methods for debugging

Drop methods PrintBoolean(), PrintCLight(), PrintCStructure(), PrintCView(), PrintFunction(), PrintInteger(),
PrintIResult(), PrintShortReal(), PrintMatrix(), PrintString(), SetTrace(), Trace().

3 years ago0026711: Visualization, TKOpenGl - support creation of multisampling off-screen FBOs
kgv [Wed, 21 Oct 2015 16:06:02 +0000]
0026711: Visualization, TKOpenGl - support creation of multisampling off-screen FBOs

OpenGl_Texture::Init2DMultisample() - new method to initialize multisampled texture.
Graphic3d_RenderingParams::NbMsaaSamples - add option defining MSAA samples number.

RayTracing will keep using FBO without MSAA, however it is possible to combine
MSAA for rasterization and FSAA for RayTracing.

OpenGl_FrameBuffer constructor has been changed to do not take arguments.
OpenGl_FrameBuffer::Init() method has been extended with mandatory parameters
defining Color and Depth attachment formats
and optional parameter defining number of MSAA parameters.

Draw Harness, add option -msaa to vrenderparams.

3 years ago0026799: NCollection_Array2's RowLength and ColLength return wrong value.
abv [Sat, 24 Oct 2015 05:00:58 +0000]
0026799: NCollection_Array2's RowLength and ColLength return wrong value.

Comments to methods RowLength() and ColLength() improved to avoid possible misinterpretation

3 years ago26785: Coding rules - eliminate GCC warning -Wempty-body in LDOM_DeclareSequence.hxx
rkv [Fri, 23 Oct 2015 11:14:28 +0000]
26785: Coding rules - eliminate GCC warning -Wempty-body in LDOM_DeclareSequence.hxx

3 years ago0021107: The computed section is incomplete
apn [Fri, 23 Oct 2015 11:19:54 +0000]
0021107: The computed section is incomplete

Added test case bugs/modalg_6/bug21107

3 years ago0026807: Documentation - describe dropping of Visual3d and UserDraw within porting...
kgv [Sat, 24 Oct 2015 11:09:41 +0000]
0026807: Documentation - describe dropping of Visual3d and UserDraw within porting notes

3 years ago0026787: Do not declare redundant macros WNT, LIN, WIN32, WIN64 within samples projec...
ski [Fri, 23 Oct 2015 13:12:34 +0000]
0026787: Do not declare redundant macros WNT, LIN, WIN32, WIN64 within samples project files

Redundant macros were removed.

Defines _WIN32, __linux__ and LININTEL were removed from qt samples *.pro files

3 years ago0026561: Porting CSharp wrapper to OCCT 7.0.0
abv [Fri, 23 Oct 2015 04:20:32 +0000]
0026561: Porting CSharp wrapper to OCCT 7.0.0

Added missing Standard_EXPORT for public methods; declaration of unimplemented method removed.

Restoring some changes made for #26788 but omitted in its commit.

OpenGl_View::ReadDepths() - drop obsolete and broken method; V3d_View::ToPixMap() should be used instead

3 years ago0026470: BRepFill_Evolved: exception and invalid result
ifv [Tue, 20 Oct 2015 09:18:26 +0000]
0026470: BRepFill_Evolved: exception and invalid result

Test-cases for issue #26470

3 years ago0026620: Shape healing unreasonably downgrades tolerance of a face
aml [Thu, 22 Oct 2015 11:54:59 +0000]
0026620: Shape healing unreasonably downgrades tolerance of a face

Added face support in SameParameter in classes ShapeAnalysis_Edge, ShapeFix_Edge.

Test case for issue CR26620

Minor correction.

3 years ago0026788: Compiler warnings when OCCT_DEBUG is enabled
abv [Tue, 20 Oct 2015 11:04:55 +0000]
0026788: Compiler warnings when OCCT_DEBUG is enabled

Clean-up in code causing warnings when OCCT_DEBUG is enabled

Minor corrections:
- new compiler warnings on VC++ 14
- rename of "PPC" variables that are said to caused conflicts on PowerPC
- removal of unused header TopOpeBRep/TopOpeBRep_tools.hxx

3 years ago0026216: New functionality. Converting the compound to assembly.
ink [Wed, 19 Aug 2015 09:37:28 +0000]
0026216: New functionality. Converting the compound to assembly.

Added new functionality for converting the compound to assembly.
Added new drw command XExpand.
Changed DumpShape and DumpAssembly
Added test.

test changed

3 years ago0026775: Bad result of section algorithm
aml [Thu, 22 Oct 2015 08:06:37 +0000]
0026775: Bad result of section algorithm

Walking line method extraction into separate class IntTools_WLineTool.
New purging method of walking line had been added. Now point which are out of bounds are deleted.

Minor corrections.

Test case for issue CR26775