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.
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
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.
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.
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
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.
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.
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
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().
- selection mode in AIS_InteractiveContext::AddOrRemoveSelected is corrected;
- AIS_InteractiveContext::IsSelected returns object's state instead of global status.
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
- 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
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
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
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
Conflicts:
src/TKG3d/CMakeLists.txt
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.
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.
* 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
- 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