1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00
Commit Graph

2686 Commits

Author SHA1 Message Date
msv
ddafad10ec 0029102: Missing points using GCPnts_QuasiUniformDeflection
Correct the method PerformCurve of GCPnts_QuasiUniformDeflection to get the proper derivative at the end of the current curve.

Improve the Draw commands "crvpoints" and "crvtpoints" so that to work with wires as composite curves.
2017-09-15 10:12:47 +03:00
emv
fedf4bc000 0027441: The method IntTools_Context::IsVertexOnLine incorrectly computes parameter of the point on the curve
Choosing the closest bound to the checking point.

Test cases for the issue.

Updating test cases for the current behavior.
2017-07-03 12:50:43 +03:00
nbv
08bbed78a8 Fix for the issue #28849. 2017-06-16 13:00:42 +03:00
msv
e69d993598 0028830: HalfSpace command chooses the wrong side of the given shell
Improve the algorithm BRepPrimAPI_MakeHalfSpace. Earlier it made projection of the point only on faces. If the nearest point does not conform to normal projection criterion the result is wrong. The fix includes search of projection on edges and vertices. This makes the algorithm robust for half spaces with boundaries.
2017-06-13 15:11:28 +03:00
ifv
a0ae8ca8a0 Commit for #28771 (thickshell produces wrong result, SENR-17-060) 2017-05-29 14:16:52 +03:00
gka
3ab46247a1 Fix for case 180: Error using SnrSplitAlgorithm (691)
Protection to avoid creation of the overlapping edges
2017-05-24 18:30:55 +03:00
emv
fe0a0085cc 0027761: Intersection loops infinitely
The static method CorrectSurfaceBoundaries() in the class IntTools_FaceFace,
which is used for correction of the boundaries of the faces before their intersection,
contains two inconsistent adjustments of the boundaries of the faces based on periodic surfaces.
One of these adjustments has been removed. The remaining adjustment, the one that is based on the
2D bounding boxes of the closed curves, should be sufficient.

Test case for the issue.

(cherry picked from commit 7cb2f40993)
2017-05-23 13:20:30 +03:00
nbv
9c2e67b6da 0028222: Intersection of two cylinders fails
1. The reason of exception has been eliminated.

2. Algorithm in IntPatch_WLineTool::JoinWLines(...) method has been modified in order to forbid join curves in the point where more than two intersection lines meet. More over, joining is forbidden if local curvature in the connection point is too big (see function CheckArgumentsToJoin(...) in the file IntPatch_WLineTool.cxx).

3. Interface of IntPatch_WLineTool::JoinWLines(...) method has been modified in order to reduce number of arguments.

4. Small corrections in IsSeamOrBound(...) static function has been made. Namely, check has been added if two boundaries are in the same period region but are too far each to other (see IntPatch_WLineTool.cxx, IsSeamOrBound(...) function, line # 532).

5. "Reversed" flag has been made local. Now, it is pure local characteristic: the algorithm decides itself, shall we reverse the argument order. This correction makes the algorithm more commutative (see issue #25404). However, IntPatch_WLineTool::JoinWLines(...) method can return non-commutative result.

6. Algorithm of searching small intersection curves has been improved.

7. New methods have been added in Bnd_Range class.

-----------------------------------------

Some test cases have been adjusted according to their new behavior.

1. tests\bugs\modalg_6\bug26310_3
   tests\bugs\modalg_6\bug26310_4
   tests\bugs\moddata_2\bug235
   tests\perf\modalg\bug26310_1
   tests\bugs\modalg_5\bug24915

Logic of these cases has been changed. Mover over, additional check has been added in "bug26310_1" test case. Therefore, its performance will be slower than on the current MASTER.

2. tests\bugs\modalg_5\bug25292*

Scripts have been rewritten in order to make it more readable. Logic of these cases has not been changed.
2017-05-22 17:04:37 +03:00
nbv
1b23c4e0cf 0028009: [Regression vs OCCT7.0.0] Cut produces not valid shape
The algorithm in WorkWithBoundaries::BoundaryEstimation(...) did not take into account opposite directions of cylindrical axes (when the angle between them is obtuse). After the fix it does it.

Small correction of test cases for issue CR28009

(cherry picked from commit c9c7286e56)
2017-05-22 10:14:36 +03:00
nbv
045e1c408a 0027856: Regression vs 6.7.1: General Fuse operation fails to fuse the solids
Method WorkWithBoundaries::BoundaryEstimation(...) has been brought in balance with IsParallel(...) method, which checks if cylinder axes are parallel.

(cherry picked from commit 95f8c6082d)
2017-05-22 10:14:34 +03:00
nbv
493c359ffd Patch including (particular) fixes for the issues #23178, #26586, #27766, #26852 and #24023. 2017-05-22 10:14:33 +03:00
nbv
c31217f83c 0027310: Huge tolerance obtained in the result of intersection of two cylindrical faces
Sometimes start point of the intersection line is in the surface boundary strictly. I.e. the parameter of this point in the surface can be equal to both 0 or 2*PI equivalently. It is important to chose correct parameter value.

The algorithm of prediction is based on monotonicity property (see CylCylMonotonicity(...) function in IntPatch_ImpImpIntersection_4.gxx). Now, this function is used wrongly. The fix improves this situation.

Small optimization in the code.
Creation of test cases .

The logic of returning value by the method BoundariesComputing() has been corrected.

(cherry picked from commit 79997052f1)
2017-05-22 10:14:31 +03:00
nbv
507dd6d579 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

(cherry picked from commit ce48b00930)
2017-05-22 10:14:30 +03:00
nbv
074eb06e7a 0028718: Section result has a break
Fix of the problem.
2017-05-19 15:00:15 +03:00
emv
be81259513 0028683: Wrong result of CUT operation
1. Partial porting of the patches for the issues #0026738 and #0028017:
   Careful treatment of the SD vertices created on the Face/Face intersection stage.

2. Avoid creation of the small section edges.

3. Test case for the issue.

4. Adjusting test cases for current behavior.
2017-04-28 12:08:18 +03:00
ifv
4ea9823777 0028585: Wrong value of area computation
Another processing of NaturalRestriction flag for face in algorithm of BRepGProp* classes.
2017-04-03 11:42:13 +03:00
nbv
4bce57b6e2 Fix for the issue #28491 2017-03-02 12:09:13 +03:00
emv
042532570d 0028189: Result of Boolean operation is non-manifold wire
1. The result of Boolean operation on the arguments of collection type, containers WIRE/SHELL/COMPSOLID, is now also a collection.
The result of Boolean operation on arguments of non-collection types is now a compound containing the splits of arguments directly, without its enclosure into containers.
Thus, if there were no containers, such as WIRE/SHELL/COMPSOLID, in the input arguments there will be no such containers in the result of BOP.

2. The containers of type WIRE included into result should now also (as the SHELLs) have coherent orientation of its sub-shapes.
For that the new method has been implemented (BOPTools_AlgoTools::OrientEdgesOnWire(TopoDS_Shape&)) which reorients edges of the given shape for correct ordering.

3. The duplicating containers, i.e. containers with the contents completely included in other containers, are now avoided in the result of BOP.

4. Documentation has been updated.

5. New test cases for the issue.

6. Adjusting test cases to current behavior.
2016-12-28 15:39:00 +03:00
aml
ac1cbd566d Correction for redmine issue #150 - make wire builder more stable. 2016-10-14 07:34:09 +03:00
emv
9112bc3c6a 0027746: Incomplete result of SECTION operation
1. Partial porting of the fix for the issue #0026560:
Function to compute subshape max tolerance has been added.
Fixed bounding box expanding at Face/Face step of boolean operation.

2. New test cases are created.
2016-08-03 10:58:06 +03:00
azv
239550fbed 0027677: Incorrect CUT of a solid by semi-infinite solid
The problem of incorrect CUT is wrong Pcurve after projection onto cylinder of a small edge orthogonal to cylinder's axis. The result of projection is a line along V direction, but it should be along U.

ProjLib_Cylinder has no specific functionality to build projection in most common case, so it should return "not done" flag to start projection based on curve approximation.

Following changes are done:
1. ProjLib_Cylinder returns isDone=false in the following cases:
  * the projected line is not parallel to cylinder's axis
  * the plane of projected circle is not orthogonal to cylinder's axis
2. Test case added
2016-07-18 15:51:23 +03:00
nbv
f0afe22ee5 Fix for issue #27664 2016-07-14 11:10:36 +03:00
aml
f50f030f2d 0027371: Regression: BRepExtrema works too much slower in 691 (from 670)
Lipschitz constant tuning.
Shubert estimation for minimal value is added.

Test case is added.
2016-04-25 11:44:28 +03:00
gka
c3cb810368 0027151: Exception is raised during performing command "splitshape" in the Test Harness
Tolerance of vertices's of the degenerated edges are increased
to value of tolerance of the splitting vertex for case when splitting vertex was projected on the degenerated edge.
2016-03-11 11:29:21 +03:00
gka
256ac0b9ea 0026619: Tolerances of operands are modified using bop
The fix forces creation of new sub-shapes (vertex, edge) when the tolerance of some sub-shape of an argument is to be increased.

    This new behavior is turned off by default. It can be turned on using two ways:
    1) Setting 'locking' flag of the arguments.
    2) Calling the method SetNonDestructive(Standard_True) of the API classes.
2016-03-11 11:01:47 +03:00
gka
2905f5b657 0027151: Exception is raised during performing command "splitshape" in the Test Harness
Modifications to avoid exception for case overlapped edges was made.
Returned values of the methods LocOpe_SplitShape:AddOpenWire() and LocOpe_SplitShape:AddClosedWire() were modified from void to boolean in order to avoid raising of the exceptions for cases when result wire can not be built.
2016-02-25 16:32:00 +03:00
aml
68d8f06a04 Old signature of method "reset" is restored to avoid problems with backward compatibility. 2016-02-24 13:44:57 +03:00
aml
62f137e4ab 0027162: Draw command "(2d)extrema" incorrectly represent underlying algorithm results
Correct handling of infinity solutions added for Curve / Curve case.
Unused code deleted.
Test cases updated to the new behavior.
2016-02-18 11:58:43 +03:00
aml
6d65d76281 Possibility to freeze Lipchitz constant is added to improve performance. 2016-02-16 07:48:33 +03:00
aml
38c459922e 0027131: [Regression to 6.7] DistShapeShape performance loss
Lipchitz constant approximation and fixes in global optimization algorithm added to improve performance.
Test case added.

Fix backporting:

0026593: Coding rules - revert compatibility of NCollection_CellFilter constructor with old code

Restored old constructor and old behavior where possible.

Minor correction.

0026395: Merge clasees NCollection_CellFilter_NDim and NCollection_CellFilter

Deleted exceed class CellFilterNDim.
Now dimension count used as input parameter in NCollection_CellFilter.

minor corrections.
2016-02-12 07:51:37 +03:00
oan
a6af85dde9 0027119: Regression: Draw command "incmesh" hangs on the attacheced face.
BRepMesh_CircleTool: extend radius of circle by quite small value in order to classify points forming inscribed triangle as lying on it. Do not use PConfusion due to false positive result leading algorithm to hanging.
2016-02-05 15:23:08 +03:00
aml
ff85f6086c 0027114: [Regression to 6.7] DistShapeShape does not find a solution edge-face
Extrema Curve / Surface algorithm changed to perform more accurate search.

test case bug25232_8 - improvement, one additional intersection point is detected now.
test case bug23830 - normal behavior, position of extrema is changed.
Small correction of pro19653 test
test case for original issue added.
2016-02-05 13:35:06 +03:00
apv
8474ba84f8 Small correction of test case bugs/heal/bug26642 due to shape renaming 2016-02-02 12:50:55 +03:00
ifv
72452b111d 0027110: Regression: Draw command "parameters" can not compute parameter on the line.
Useless variable MAXTOLERANCEGEOM is removed in order to allow to place point at any distance from curve/surface.
Algorithm is simplified: particular calculations for analytical geometry are removed, only using of Extrema_... is kept.
2016-02-01 11:02:39 +03:00
nbv
8ebd2632e2 Patch for issue #26841 2015-12-21 13:42:43 +03:00
ski
3b5f0ca372 Small correction of qt samples V6_9_1 2015-09-28 16:04:44 +03:00
gka
6c672f4cd0 0026723: Qt IE sample can not import STEP and IGES files with names containing not ascii symbols
Added conversion of the names of the imported files in the  Utf8 coding
2015-09-25 16:47:56 +03:00
isk
1384cb64c9 Fix samples crash. 2015-09-25 14:16:24 +03:00
bugmaster
d222f955df Changing OCCT version from 6.9.1 beta to 6.9.1 2015-09-24 15:08:19 +03:00
ysn
56b5a03379 0026707: Remove references to "opencascade.org" in documentation
Links to OCC web sites in documentation are updated in accordance with the new site design.
2015-09-23 07:42:55 +03:00
nbv
1a060fcf21 0026632: HLR sample doesn't work with Algo mode
The main reason of the problem is Walking-line contains two equal Walking-points (the segment has null-length both in 3D and 2D).
2015-09-23 07:42:17 +03:00
isn
575e33ceba 0026701: BOPAlgo_Builder::Perform crash.
Data race eliminated (PCurves are stored in edges after paralleled calculation)

Add comments and make minor cosmetic changes.
2015-09-23 07:42:16 +03:00
anv
b9f21bee94 0026522: Exception while copying offset on C0 surface 2015-09-22 22:07:21 +03:00
abv
258faef5fc 0026671: Infinite loop in ShapeFix_Wire::FixSelfIntersection()
Avoid possible infinite loops in ShapeFix_Wire::FixSelfIntersection() -- when needed, fix is repeated once instead of going back in the loop
2015-09-22 22:07:20 +03:00
bugmaster
5add7c09fc Modification of service files for Voxel demo 2015-09-22 13:30:36 +03:00
aba
9ec3668b82 0026705: Visualization - OpenGl_Workspace aspect setters are not exported 2015-09-18 14:35:59 +03:00
bugmaster
05ff38f667 Update samples for VC++ 2013 2015-09-18 14:35:58 +03:00
oan
ee9749a81f 0026532: Meshing of edge with minSize parameter leads to incorrect result
Fix missed parameter.

Test case for issue CR26532
2015-09-18 14:35:57 +03:00
nbv
200a6865ad 0026687: SIGSEGV in BRepBuilderAPI_MakeFace
1. Check face location has been added.
2. Message, if mkplane command fails, has been added.
3. Test case for this issue has been created.

Changes in accordance with the remark.

Small correction of test case for issue CR26687
2015-09-18 14:35:35 +03:00
kgv
a86456de9a 0026688: Visualization, TKOpenGl - apply transparency within GLSL programs
OpenGl_ShaderManager::PushAspectFace(), setup alpha to Diffuse() component as in FFP.
OpenGl_ShaderManager::stdComputeLighting(), take alpha from material Diffuse component.
2015-09-17 16:35:44 +03:00