Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
1. Cylinders are tangent to each other indeed. Fix processes this case.
2. Algorithm of intersection line computing (in case of cylinders with two parallel axes) has been changed.
Test cases for issue CR25782
Macros ending on "DEB" are replaced by OCCT_DEBUG across OCCT code; new macros described in documentation.
Macros starting with DEB are changed to start with "OCCT_DEBUG_".
Some code cleaned.
Existing method of Cylinder-Cylinder intersection computing is based on finding the analytic line (as a function of one argument) and converting one into the walking-line with set of equidistant (along the line parameter) points.
The main advantage of applied method is using adaptively computed step. Necessary step is computed into every point of the obtained walking-line. At that we receive final walking-line directly (without preliminary analytic line) and we determine moments more precisely, when it should be split (see IntPatch_ImpImpIntersection_4.gxx).
The main disadvantages is bad working this method for non-trimmed cylinders (with infinite bounds), because step value is depend on the boundaries values.
More over, new method always returns walking-line, while intersection result can be an analytic curve (lines, circle, ellipse). That is NO good. Therefore, analytic curve is computed by existing method.
In conclusion, in spite of covering almost all more often meeting cases, new method has limited application. Then we should use the existing old method.
Additionally, method MinMax() is added (see Standard_Real.hxx file). It uses into new algorithm.
Some test cases is changed according to their new behavior.
Test case for issue CR24915 is added.
Into GeometryTest_APICommands.cxx only tabulations were chaged.
"Extending" of isolines (see Geom2dHatch_Hatcher.cxx).
Small correction of test case for issue CR24915.
class IntAna_QuadQuadGeo
The changes have been done to provide the treatment the cases
when the value of the angle between the planes is small and
the origin of intersection line should be refined.
class IntTools_FaceFace
The changes have been done to provide the treatment of faces
in cases when both are based on planar surfaces.
The UV-bounds have been extended to provide correct solutions
as it has been done for all other cases with plane-based faces.
Added test case bugs/modalg_5/bug24914
Modified length of result shape in test case bugs/modalg_1/bug10232
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast
Wrong license statements corrected in several files.
Copyright and license statements added in XSD and GLSL files.
Copyright year updated in some files.
Obsolete documentation files removed from DrawResources.
When warnings are enabled, compilers report lots of occurrences
of unused local variables, which makes it harder to find other
meaningful warnings.
This commit does not fix all unused local variables.
Fix new type conversion warning
Code cleaned to avoid MSVC compiler warnings on unused function arguments.
Several useless pieces of code are removed.
Changes in IntTools_EdgeFace.cxx, Blend_Walking_1.gxx, Bnd_BoundSortBox.cxx, ProjLib_ProjectedCurve.cxx are reverted (separated to specific issue for more in-depth analysis).
Modifications:
1. The validity of the intersection point between edge and face is checked with sum of the tolerance values of the edge and face.
2. The intersection between toroidal surface and one of the following surfaces: Plane, Cylinder, Sphere, Cone or Torus
is treated as analytical in the following cases:
1) Torus and Plane: a. Axes of the surfaces are parallel;
b. Axes of the surfaces are perpendicular and location of the torus is lying on the plane;
2) Torus and Sphere: The location of the sphere is lying on the line made from toruses axis;
3) Torus and Cone, Cylinder or Torus: The axis of the surfaces are collinear.
In all cases the intersection line(s) is(are) circle(s).
Added test cases bugs/modalg_5/bug24470
The intersection between torus with minor radius more than (or equal to) the major radius and any other surface is considered as parametric.
Added new parameter for checking whether the plane and cylinder are parallel - the height of the cylinder.
This parameter is needed for the cases when angle between AXIS and plane's normal is very close to PI,
but the "height" is big enough that point, translated from intersection point between cylinder's axis and plane
on the "height" distance in the direction of cylinder's axis, does not belong to the plane.
Such plane and cylinder cannot be considered as parallel.
Add test case for this fix