1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

58 Commits

Author SHA1 Message Date
emv
0f04f1e11d 0026379: Wrong result produced by the volume maker algorithm
1. class BOPAlgo_ShellSplitter
static method void RefineShell(TopoDS_Shell& theShell,
                               BOPCol_ListOfShape& aLShX)
Added protection from INTERNAL edges.

2. class BOPAlgo_MakerVolume
method void BOPAlgo_MakerVolume::MakeBox(BOPCol_MapOfShape& theBoxFaces)
Creation of the overlapping box of proper size.

Test-cases for issue #26379
2015-07-09 14:20:02 +03:00
aml
e93e42300a 0026356: Wrong result done by projection algorithm
Changed internal one dimension search algorithm in case of fast changing curve.

Test-case for issue #26356
2015-07-09 14:14:55 +03:00
nbv
769fb6a4ab 0025613: Wrong distance found by xdistef command for attached shapes
1. Divide B-spline curve on sub-intervals (bounded by knots values).
2. Class BRepLib_CheckCurveOnSurface_TargetFunc has been optimized for future implementation to checkshape algorithm (Adaptors are used instead of Geom_Curve(Surface)).
3. Parallelization of new algorithm.

The algorithm is based on math_PSO class.

Test cases for issue 25613 have been created.

Changes in accordance with the last remarks
2015-07-03 13:39:37 +03:00
mkv
c7283baaaf 0026352: Wrong intersection points found
Small correction of test case for issue CR26352
2015-07-02 14:28:55 +03:00
jgv
f0e3a4bac7 0026332: BRepOffsetAPI_ThruSections algorithm fails on two wires with different number of edges
Correction according to remark.

Correction of mistake.

Test case for issue CR26332
2015-07-02 13:47:37 +03:00
jgv
1867dc32f5 0026296: Errors in BRepOffsetAPI_MakeOffset: failure because of wrong direction of bisector.
Test cases for issue CR26296

Fix of regressions.

Small correction of test cases for issue CR26296
2015-07-02 13:40:52 +03:00
ifv
b77233473a 0026330: BRepOffsetAPI_ThruSections creates invalid shape
Test case for issue CR26330
2015-06-25 13:10:30 +03:00
emv
e9e644edf4 0026316: Infinite modification of the shapes in General Fuse operation
Check the validity of the intersection point between Faces.

Test case for issue CR26316

Correction of the test case for the issue.

Small correction of test case for issue CR26316
2015-06-25 12:51:30 +03:00
ika
93937391be 0026241: Sewing algorithm computes tolerance of joint vertex too rough
Upgrade method of computing vertex tolerance.
Update function, which used the old method.
Test case for issue CR26241
Delete obsolete variables.
Small correction of test cases for issue CR26241
2015-06-18 14:04:52 +03:00
ifv
d7988ee19f 0026305: BRepFeat_MakePrism returns inconsistent results && 026315: BRepFeat_MakeRevol fails to create revol from shape
Test-cases for issues #26305 and #26315
2015-06-18 13:37:13 +03:00
nbv
c0e32b3c3d 0025820: No Intersection Curves between surface of revolution and planes
Thin shapes processing has been improved.

Test-cases for issue #25820

Comment has been changed
2015-06-18 13:31:42 +03:00
nbv
d0820f2e56 0026151: Wrong result obtained by intersection algorithm.
1. Methods IntPolyh_MaillageAffinage::GetMinDeflection() and IntPolyh_MaillageAffinage::GetMaxDeflection() have been created (see cdl-file for more detail information).
2. Extended check, if starting point of WLine is a tangent point, has been implemented in IntWalk_PWalking::Perform(...) method.

Test cases for issue CR26151
2015-06-10 10:39:34 +03:00
msv
645ff3b1e7 0026206: BRepClass_FaceClassifier returns TopAbs_OUT for internal point
Classifier has been corrected to not take into account a probing point if the probing line appears to be tangent to the boundary at this point.

But allow to use tangent point if all points on the edge are tangent.
Modify bad test cases.

Test case for issue CR26206
2015-06-04 14:35:36 +03:00
gka
2a739b6d66 0024357: BRepBuilderAPI_Sewing returns result with too high tolerance.
In method Approx_SameParameter::Build() for case when 2D and 3D curves is not same parameter calculation of maximal deviation is modified by following way :

Projection is considered as done only if parameter projected point falls within the current interval of parameters.

In the Approx_SameParameter considering tolerance after static method ProjectPointOnCurve was added.

In BRepAlgoAPI_Sewing catch of exception was added and computation of tolerance of edge if same parameter was changed in according to check in BRepCheck_Analyzer

In method Approx_SameParameter::Build() for case when 2D and 3D curves is not same parameter calculation of maximal deviation is modified by following way :

Modification in order to avoid warning

Test case for issue CR24357
2015-06-04 14:27:22 +03:00
aml
20a216fe6f 0026075: Make Extrema_GenExtCC return IsParallel flag in case of parallel curves
1) Added check for parallel curves.
2) Changed unefficient o(n^2) duplicates deleting algorithm to o(n) algorithm.
3) Deleted useless upper level duplicates deleting algorithm.

Test-case for issue #26075
2015-06-04 14:14:52 +03:00
nbv
5b9e184288 0026193: Incomplete intersection curve
1. Conditions for adjusting and for breaking Walking-lines have been amended.
2. Processing of case when WLine should be broken has been changed.

Test cases for issues 26193 and 26208 have been added

Cosmetic correction of test-cases

Modification of test-case according to the new behavior.
2015-06-04 14:06:34 +03:00
nbv
b26415fbb1 0026281: BRepCheck_Edge::Tolerance() raises exception on the given shapes
The reason of the exception has been eliminated

Test-cases for issue #26281
2015-06-04 14:03:08 +03:00
ifv
db2f149828 0026233: BRepOffset_MakeOffset makes incorrect result
Test-case for issue #26233
2015-06-04 12:41:48 +03:00
jgv
9eb68d382f 0026185: BRepOffsetAPI_MakeOffset: regressions on some customer's cases
Minor correction.

Test-cases for issue #26185

Modifications in test-cases according to developer's notes
2015-05-28 15:26:35 +03:00
pkv
a2ab27029b 0026253: Wrong result obtained by General Fuse operator.
Replace BOPCol_MapOfShape by BOPCol_IndexedMapOfShape to provide
the same order of shells in the result

Test case for issue CR26253

Correction of test case for issue CR26253
2015-05-28 15:23:03 +03:00
azv
94f71cad33 0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache
1. B-spline cache was moved into separated classes: BSplCLib_Cache for 2D and 3D curves and BSplSLib_Cache for surfaces.

2. The cache is used now in corresponding adaptor classes (Geom2dAdaptor_Curve, GeomAdaptor_Curve and GeomAdaptor_Surface) when the curve or surface is a B-spline.

3. Algorithms were changed to use adaptors for B-spline calculations instead of curves or surfaces.

4. Precised calculation of derivatives of surface of revolution is implemented for the points of surface placed on the axis of revolution (Geom_SurfaceOfRevolution.cxx)

5. Small modifications are made to adjust algorithms to new behavior of B-spline calculation.

6. Test cases were modified according to the modern behavior.

7. Changes in BOPAlgo_WireSplitter, BOPTools_AlgoTools, BRepLib_CheckCurveOnSurface and ShapeAnalysis_Wire to use adaptors instead of geometric entities

8. Allow Geom2dAdaptor and GeomAdaptor in case of offset curve to use corresponding adaptor for basis curve

Modification of test-cases according to the new behavior.
2015-05-28 13:38:22 +03:00
aml
9176540c64 0026063: GeomAPI_ExtremaCurveSurface have inexact API
Reason of exception was eliminated.

Test-case for issue #26063
2015-05-28 12:45:17 +03:00
dbp
ae9a414af0 0026180: Modeling Algorithms - Provide shape self-intersection detector
Small correction of test case for issue CR26180

Fix GCC compilation warnings.
2015-05-28 12:19:25 +03:00
jgv
6552f07823 0026201: Wrong processing of dissymetric chamfer: order of chords unjustly changes
Test-case for issue #26201
2015-05-21 13:57:51 +03:00
nbv
4753a6fc1f 0026197: Incomplete intersection curve
Correct the algorithm to get right Start point for extension of the walking line.

Test case for issue CR26197

Correction of test case bugs/modalg_6/bug26197
2015-05-21 13:48:48 +03:00
pkv
b6ec1ef98c 0026224: Wrong result obtained by Common operator.
Changes:
class BOPTools_AlgoTools2D
 - method:
Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
(const TopoDS_Edge& aE2,
const TopoDS_Edge& aE1,
const TopoDS_Face& aF,
const Handle(IntTools_Context)& aCtx)
has been changed.
The treatment of the curves that need to be reversed has been modified
taking into account reversed parameter

Test case for issue CR26224
2015-05-21 12:57:19 +03:00
emv
3285a59aa0 0026218: Wrong result done by General Fuse algorithm
class BOPAlgo_PaveFiller
1. method
  void BOPAlgo_PaveFiller::MakeBlocks()
 Update of FaceInfo IN information before filling the maps.

2. methods
  void BOPAlgo_PaveFiller::UpdateFaceInfo
    (BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME,
     const BOPCol_DataMapOfIntegerInteger& theDMV)

  void BOPAlgo_PaveFiller::ProcessExistingPaveBlocks
    (const Standard_Integer theInt,
     const BOPDS_IndexedMapOfPaveBlock& aMPBOnIn,
     const BOPCol_DataMapOfIntegerListOfInteger& aDMBV,
     BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& aMSCPB,
     BOPCol_DataMapOfShapeInteger& aMVI,
     BOPDS_MapOfPaveBlock& aMPB)

  Small changes in treatment of existing pave blocks when making new ones from intersection curves.

Test case for issue CR26218

Correction of test case for issue CR26218
2015-05-21 12:52:49 +03:00
jgv
12945d7720 0026202: Wrong result of chamfer on cylindrical surface: wrong value of chord
Test case for issue CR26202
2015-05-14 17:05:38 +03:00
mkv
2ff806d1ab 0025271: Wrong result obtained by solid classifier algorithm
Shape name was corrected
2015-05-08 08:51:46 +03:00
nbv
9d32c463ad 0025890: Intersection algorithm produces curves overlaped
1. Function IntImp_Int2S::ChangePoint() has been added (see cdl for detail information).
2. Attempt to forbidden break WLine if it goes along surface boundary.

Code optimization.

2nd optimization

Test case for issue CR25890
2015-05-08 08:51:43 +03:00
mkv
97f3106c05 0026010: [OCCT 6.8.0 regression] BRepFeat_SplitShape returns invalid shapes 2015-05-06 16:48:29 +03:00
mkv
63073e35ce 0025844: Command checkshape does not detect error for case when degenerated edge does not contain geometric representation. 2015-05-06 16:44:28 +03:00
pkv
905522eef8 0025880: fuzzy booleans with multiple tools
New features:
class BOPTools_AlgoTools2D
method:
 Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
   (const TopoDS_Edge& aEold,
    const TopoDS_Edge& aEnew,
    const TopoDS_Face& aF,
    const Handle(IntTools_Context)& aCtx)
has been added.

Purpose:
  To attach P-Curve on surface of the face <aF>  from the edge <aEold>
   to the edge <aEnew>
   It returns 0 in case of success.

Changes:
1. class BOPTools_AlgoTools
method:
 Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
  (const TopoDS_Face& theFSp,
   const TopoDS_Face& theFSr,
   Handle(IntTools_Context)& theContext)

The condition for a point on the surface of a face has been changed.

2. class BOPAlgo_PaveFiller
method:
 void BOPAlgo_PaveFiller::MakePCurves()

The treatment of E/E common bocks has been changed
to use mechanism of attacment P-Curves [ I.1 ]

Test case for issue CR25880
2015-04-30 14:42:59 +03:00
mkv
76a2b7d1fb 0026152: Wrong result obtained by projection algorithm.
Test cases for issue CR26152
2015-04-30 14:37:40 +03:00
mkv
6ab722979b 0026130: PCurve creation failure 2015-04-30 14:34:11 +03:00
msv
46b2b6afa0 0025908: BSpline (U2 < U1) in HLRBRep_HLRToShape
Test case for issue CR25908
2015-04-30 14:26:06 +03:00
ink
062d7dfd62 0021727: BRepBuilderAPI_Copy (and possibly other similar tools) create new shape in Frozen state
Set the value of flag Frozen to false for shape created in BRepTools_Modifier. If shape is not newly created then value of flag Frozen don't changed.

Test-case for issue #21727
2015-04-30 14:11:07 +03:00
nbv
6b5b88d707 0024161: boolean operation hanging
The reason of hanging has been eliminated.

Test case for issue CR24161

Small correction of test case for this issue
2015-04-30 13:58:51 +03:00
pkv
f47b8d2b37 0025937: Failed Cut Edge or Face by HalfSpace.
Addressing the causes of warnings.

Test cases for issue CR25937
2015-04-30 13:51:04 +03:00
emv
5e18f91719 0026112: Exception is raised during perform of General Fuse operation
class BOPAlgo_WireSplitter
method
Standard_Boolean RefineAngle2D(const TopoDS_Vertex& aV,
                               const TopoDS_Edge& aE,
                               const TopoDS_Face& myFace,
                               const Standard_Real aA1,
                               const Standard_Real aA2,
                               Standard_Real& aA)

Protection from null vector.

Test case for issue CR26112
2015-04-30 13:33:11 +03:00
abv
6ca1fa7070 0026064: distmini of two edges locks up
Method Extrema_GenExtCC::Perform() refactored to avoid very inefficient (O(N^2)) algorithm of removal of duplicate points at the end. Instead, duplications are checked when new points are added.

Fields are initialized in constructors of the class Extrema_GenExtCC; unused instances of generic classes (duplications) ELCC and ELCC2d removed.

Test case bugs/modalg_6/bug26064 added.
2015-04-30 13:19:23 +03:00
mkv
ecd58be64a Correction of test-cases according to OCC23150 requirements (new format of checknbshapes command). 2015-04-24 14:56:15 +03:00
pkv
b85b0b0731 0026080: Wrong result obtained by General Fuse operator.
Changes:
class IntTools_FClass2d
- method:
 TopAbs_State IntTools_FClass2d::Perform
 (const gp_Pnt2d& _Puv,
 const Standard_Boolean RecadreOnPeriodic) const
 has been changed.
 The value of tolerance
For the value of tolerance for classification,
the minimum (among UResolution, VResolution) value is used.

Test case for issue CR26080
2015-04-23 18:22:59 +03:00
emv
681cfe76b0 0026098: The result of General Fuse operation is self-interfered shape
class BOPTools_AlgoTools
method static Standard_Real IntersectCurves2d(const gp_Pnt& aPV,
                                const TopoDS_Face& aF,
                                const Handle(Geom_Surface)& aS,
                                const TopoDS_Edge& aE1,
                                const TopoDS_Edge& aE2)
Check the validity of the 2d intersection before applying the result.

Test case for issue CR26098
2015-04-23 17:00:57 +03:00
apn
032158d63d 0024011: Can't offset a wire on face
Added test case bugs/modalg_6/bug24011
2015-04-23 16:38:53 +03:00
apn
b0deeecfba 0021624: BRepFeat_SplitShape produce invalid shape
Added test case bugs/modalg_6/bug21624
2015-04-23 16:34:15 +03:00
apn
35d1221827 0021351: Fail to compute derivatives of offset surface on trimmed surfaces on offsets on CN surfaces
Added test case bugs/modalg_6/bug21351
2015-04-23 16:29:58 +03:00
mkv
f3981c67c3 0022793: Boolean cut operation hangs computer
Test case for issue CR22793
2015-04-23 16:24:37 +03:00
apn
3eac3f55a5 0022644: Incorrect result of Boolean operations (Fuse, Cut, Common)
Added test cases bugs/modalg_6/bug22644_1 bug22644_2 bug22644_3
2015-04-16 16:37:34 +03:00
apn
cc2b0ec0e3 0023138: BRepAlgoAPI_Fuse produce invalid result
Added test case bugs/modalg_6/bug23138
2015-04-16 16:34:01 +03:00