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

394 Commits

Author SHA1 Message Date
nbv
ecc4f1489d 0024915: Wrong intersection curves between two cylinders
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.
2014-08-21 15:54:02 +04:00
jgv
73920cd481 0024949: Segmentation Violation during pipe creation
Test cases for issue 0024949

Correction of test case for issue CR24949
2014-08-21 15:51:12 +04:00
emv
a967f10410 0025043: there is no possibility to know what exactly subshape of source shape has detected problems by BRepAlgoAPI_Check
Since there is a possibility to run the check on self-intersection (BOPAlgo_CheckerSI algorithm) in non-destructive mode (source shape will not be modified)
there is no need to make copies of the arguments of BRepAlgoAPI_Check.

Test case added
2014-08-21 15:51:09 +04:00
pkv
fc88faf18a 0025163: Wrong result of common operation for faces.
Changes:
class BOPAlgo_WireSplitter
static function:
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)
The contents of Domain 2D for the straight line has been changed.

class BOPTools_AlgoTools2D
method:
void BOPTools_AlgoTools2D::AdjustPCurveOnFace
  (const TopoDS_Face& aF,
   const Standard_Real aFirst,
   const Standard_Real aLast,
   const Handle(Geom2d_Curve)& aC2D,
   Handle(Geom2d_Curve)& aC2DA)
The treatment of cylindrical surfaces has been changed taking into account
existing values of tolerances of the edges.

Test cases for issue CR25163
2014-08-21 15:51:08 +04:00
jgv
10ee997695 0025111: Incomplete section curve between Conical and Toroidal surfaces
Correction of test cases for CR25111

Test cases for issue CR25111
2014-08-21 15:51:05 +04:00
jgv
21678ea94a 0025106: Command "splitshape" does not split attached face by attached edge
Test cases for issue CR25106
2014-08-21 15:51:03 +04:00
emv
5b98e25d8e 0025127: Wrong result done by General Fuse algorithm
class BOPTools_AlgoTools
method
  Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
    (const TopoDS_Face& theFSp,
     const TopoDS_Face& theFSr,
     Handle(IntTools_Context)& theContext)

Reverse normal direction for REVERSED faces.

Test case for issue CR25127
2014-08-14 12:17:03 +04:00
jgv
6a442250c4 0025021: New option of BRepOffsetAPI_MakeOffset algorithm: open result for open wire
Test cases for issue CR25021
2014-07-31 13:06:44 +04:00
kgv
9cc773b5ad 0025090: Visualization - drop Graphic3d_Group::MyIsEmpty flag
Small correction for issue CR25090
2014-07-24 13:03:59 +04:00
aml
797d11c6f5 0025058: Regression of performance of BRepExtrema_ExtCC (1000 times slower)
Added initial values approximation to improve performance.
Local optimization start coefficient fixed.

Test case for issue CR25058
2014-07-17 13:51:44 +04:00
ifv
0272e74033 0025028: BRepAlgo::ConcatenateWire raises an exception
Test case for issue CR25028
2014-07-17 11:27:43 +04:00
mkv
a987c2f484 0022978: Shading for a pipe shape is wrong
Test case for issue CR22978
2014-07-10 14:52:44 +04:00
aml
5493d33411 0025004: Extrema curve/curve incorrect result
Fixed bug in extrema clustering algorithm.
Tolerances changing is available now.
Testcase with Branin function added.

Test cases for issue CR25004
2014-07-03 17:11:20 +04:00
aml
5b14f80036 0024817: Can not sew two circular faces in non-manifold mode
IndRef parameter usage fixed. Obsolete code deleted.
Test case for issue CR24817
2014-07-03 17:11:18 +04:00
mkv
c9fb852983 Adjusting testing cases for debug mode 2014-06-27 15:21:44 +04:00
emv
b1574471ff 0025002: Wrong result done by Boolean Operation algorithm
class IntTools_FaceFace
method
  static Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
                                      const Handle(GeomAdaptor_HSurface)&            theSurface1,
                                      const Handle(GeomAdaptor_HSurface)&            theSurface2,
                                      const TopoDS_Face&                             theFace1,
                                      const TopoDS_Face&                             theFace2,
                                      const IntTools_LineConstructor&                theLConstructor,
                                      const Standard_Boolean                         theAvoidLConstructor,
                                      IntPatch_SequenceOfLine&                       theNewLines,
                                      Standard_Real&                                 theReachedTol3d,
                                      const Handle(IntTools_Context)& aContext)

Correct treatment of WLines with only one point before or after the boundary point.

Test case for issue CR25002
2014-06-26 13:04:04 +04:00
pkv
465d1fba7c 0024157: Parallelization of assembly part of BO
The branch CR24157_12 deals with the parallelization of building the solids in case of lot internal faces.
Test case for issue CR24157
2014-06-26 13:00:50 +04:00
emv
2d2aa6f1a6 0025019: Command "bsection" in Test Harness with flag build pcurve on second shape works slowly.
class IntTools_FaceFace
method
  void IntTools_FaceFace::Perform(const TopoDS_Face& aF1,
                                  const TopoDS_Face& aF2)
Change the approximation flags according to the order of faces.

Test case for issue CR25019
2014-06-26 12:59:15 +04:00
apn
7bbe90f2a7 Modified TPS in test cases bugs/modalg_5/bug24157_8 bug24157_9 2014-06-20 11:42:59 +04:00
jgv
e01907f12a 0024964: ThruSections crashes the DRAW.exe
Test case for issue CR24964
2014-06-19 13:27:59 +04:00
apn
f49c31097c Modified CPU limit in test cases inDebug mode. 2014-06-17 17:18:18 +04:00
emv
655fddc854 0024981: IntTools_FaceFace enters to infinite loop on the attached case
class IntTools_Tools
method
  Standard_Boolean IntTools_Tools::AdjustPeriodic
      (const Standard_Real thePar,
       const Standard_Real theParMin,
       const Standard_Real theParMax,
       const Standard_Real thePeriod,
       Standard_Real &theNewPar,
       Standard_Real &theOffset,
       const Standard_Real theEps)
The new function has been implemented for fast adjustment of pcurves to the range of surface.
Test case correction for issue CR24981
2014-06-11 10:41:58 +04:00
emv
a4e383e1b8 0024939: Incorrect result of Fuse operation
Modification:
class IntTools_EdgeEdge
For correct computation of resolution for curves of type Hyperbola and Parabola two new static functions have been implemented:
static
  Standard_Real ResolutionCoeff(const BRepAdaptor_Curve& theBAC,
                                const IntTools_Range& theRange);
static
  Standard_Real Resolution(const Handle(Geom_Curve)& theCurve,
                           const GeomAbs_CurveType theCurveType,
                           const Standard_Real theResCoeff,
                           const Standard_Real theR3D);

bugs moddata_2 bug26_2 - improvement.
Test case for issue CR24939
Test case correction for issue CR24939
2014-06-05 14:24:03 +04:00
pkv
f284355851 0024973: Incorrect PCurve construction
class: BOPTools_AlgoTools2D
method:
void BOPTools_AlgoTools2D::MakePCurveOnFace
  (const TopoDS_Face& aF,
   const Handle(Geom_Curve)& aC3D,
   const Standard_Real aFirst,
   const Standard_Real aLast,
   Handle(Geom2d_Curve)& aC2D,
   Standard_Real& TolReached2d)
has been modified to provide the conformity with the location of the surface

Test case for issue CR24973
2014-06-05 14:22:21 +04:00
nbv
8696d65d2c 0024889: Geom2dAPI_InterCurveCurve produces result with parameter outside the curve limits
1. DRAW-command for testing was created (see QABugs_19.cxx)
2. Alignments were changed in other files.

Main Changes are into IntCurve_IntConicConic_1.cxx file (variable isOutOfRange was added).
If found intersection point is out of range, minimal distance between corresponding ends of interval is taken. If this distance is less than tolerance, this point replaces found intersection point. Otherwise, found intersection point is ignored.
Modified QA command OCC24889 and added test case bugs/modalg_5/bug24889
2014-05-29 16:40:04 +04:00
aml
2fe0e897e3 0024946: Wrong result obtained by Extrema Curve/Curve
Fixes in Extrema Curve/Curve algorithm and in corresponding testcase.
Added test case bugs/modalg_5/bug24946
2014-05-29 16:23:18 +04:00
nbv
69b43824ac 0024807: Exception in ShapeAnalysis_FreeBounds::ConnectEdgesToWires
The reason for the exception was that given compound contains only edges with INTERNAL orientation (there are not any wires or faces). Consequently, given shape is non-manifold a priory.
New fix handles some cases.
Added test case bugs/modalg_5/bug24807
2014-05-29 15:37:42 +04:00
jgv
d92035598f 0024920: Invalid result of Pipe construction
Added test case bugs/modalg_5/bug24920
2014-05-29 15:12:29 +04:00
emv
b6a21c7e6d 0024950: Wrong result of Boolean CUT operation
Modification:
class BOPAlgo_PaveFiller
method BOPAlgo_PaveFiller::PutBoundPaveOnCurve().
Create bounding paves for each section curve separately.
Added test case bugs/modalg_5/bug24950
2014-05-29 15:02:07 +04:00
apn
c7ac7603b0 Increased cpulimits in test cases. 2014-05-23 12:38:03 +04:00
emv
f56518cdbe 0024879: Wrong result of General Fuse operation
Modifications:
1. class BOPAlgo_WireSplitter
  1.1. Removed static method RecomputeAngles(...).
  1.2. Minor corrections.
2. class BOPTools_AlgoTools
  2.1 method GetFaceOff
  For definition of an angles between faces the same step in 3D space has been used for all faces in the list.
  To define that step new static function MinStep3D has been implemented.

Added test case bugs/modalg_5/bug24879
Deleted unnecessary TODOs in test case bugs/modalg_2/bug497_3
2014-05-22 18:13:24 +04:00
nbv
59495dbe8a 0023511: The function BRepTools::UVBounds provides icorrect result for a face
Range of changing of some analytic curves is computed by other methods. It allows computing face's boundaries with more precise.
Tolerance was increased to provide successful work of some algorithms.
Functions BRepOffsetAPI_MiddlePath::Build() and ApproxWithPCurves(...) (file IntTools_FaceFace.cxx) were changed according to new result of algorithm's work.
It is possibly for "outboundaried faces" (see bug#23675) to compute incorrect UV-Bounds, when first parameter is more than last. To avoid it, extended control of computed bounds was added.
Function for fail sameparameter fixing was added to HLRAppli_ReflectLines to avoid creation bad shapes after algorithm's work.

In file ShapeFix_ComposeShell.cxx only text formatting was changed.

Some test cases are changed according to their new behavior.
Added test case bugs/moddata_3/bug23511
2014-05-22 17:55:31 +04:00
pkv
f1baf495b6 0024157: Parallelization of assembly part of BO
The modifications deal with the parallelization of P-curves computations.
Added test cases bugs/modalg_5/bug24157_1 ... bug24157_9
2014-05-22 17:50:46 +04:00
pkv
63def8e679 0024933: Inconsistent results of self-interferences checker in SALOME and DRAW Applications.
class BOPAlgo_CheckerSI
   - methods:
void BOPAlgo_CheckerSI::Perform()

class BOPAlgo_ArgumentAnalyzer
   - methods:
void BOPAlgo_ArgumentAnalyzer::TestSelfInterferences()

The changes have been done to provide the consistence
between results in SALOME Application and DRAW Application

The sytax of the command "bopcheck" has been changed:
bopcheck Shape [level of check: 0 - 9] [-t -s]
The options:
 -t - display elapsed CPU time
 -s - run in serial (non-parallel) mode. The default mode is parallel.

Modified test cases bugs/modalg_5/bug24029 and bugs/modalg_5/bug24764 according to changed output format of the "bopcheck" command.
2014-05-22 17:25:13 +04:00
jgv
8e81749770 0024880: Invalid result of pipe creation
Modified test case bugs/modalg_5/bug24840 according to new behavior. Added checkshape.
2014-05-22 17:04:11 +04:00
apn
7b3ce7dc84 Increase cpulimits in test cases (for debug mode). 2014-05-16 14:14:27 +04:00
ifv
29d778bf16 0024896: BRepExtrema is giving wrong intersection point between curve and planar face
Added test case bugs/moddata_3/bug24896. Modified unstable test cases and increased cpu limit in bugs/modalg_5/bug24190.
2014-05-15 17:54:30 +04:00
gka
004e846676 0024899: Time of computation of intersection points with help of class BRepIntCurveSurface_Inter is big.
Sorting by intersection of bounding boxes of faces with line or box built for curve was added.
Recursive call method Find() was replaced on sequential call.
Added method Init  to initialize algorithm by separate curve for intersection of shape by multiple curves.
Added possibility to intersect shape by multiple curves in DRAW command.

Added test case bugs/modalg_5/bug24899
2014-05-15 17:53:14 +04:00
aml
4bbaf12b67 0024608: Development of methods of global optimization of multivariable function
math_GlobOptMin - new global optimization minimization algorithm
Extrema_GlobOptFuncCC, Extrema_ExtCC, Extrema_ExtCC2d - implementation of GlobOptMin algorithm to extrema curve / curve
Extrema_CurveCache - deleted as obsolete code
ChFi3d_Builder.cxx  - fixed processing of extrema
math_NewtonMinimum.cxx - fixed step to avoid incorrect behavior
Test cases modification to meet new behavior.
2014-05-15 17:51:44 +04:00
pkv
a34f083b8c 0024914: Micro edge is created during Boolean Operations
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
2014-05-15 17:46:34 +04:00
nbv
e97a6598fe 0024829: sprops with precision throws an exception
Reason of exception is reading nonexistent element of array.

Test case for issue CR24829
2014-05-08 11:55:10 +04:00
apn
21761b6feb 0024347: problem by tolerance of the distance of Face and Vertex
Added test case bugs/modalg_5/bug24347
2014-04-30 13:07:06 +04:00
apn
1a25084d99 0024811: Intersection is insufficient
Added test case bugs/modalg_5/bug24811
2014-04-30 13:07:04 +04:00
apn
242da3e5ef 0024496: Crash on BRepAlgoAPI_Section
Added test case bugs/modalg_5/bug24496
2014-04-30 13:07:03 +04:00
mkv
74be04cbbf Update of testing cases for debug mode and MacOS 2014-04-25 14:32:32 +04:00
jgv
5ec5d80d0e 0024842: Crash on change of HLR-algo in top and bottom views of customer's shape
Test cases for issues CR24842
2014-04-24 15:43:34 +04:00
pkv
69b558c435 0024861: Extra solid is in the result of General Fuse Operation
I. New features:
No new features.

II. Changes:
II.1. class BOPAlgo_ShellSplitter
   - statc function:
void RefineShell(TopoDS_Shell& theShell);
has been addded.
The function provides splitting connexity block of faces when the block begins with
the face that is intended to be internal.

II.2. class BOPAlgo_ShellSplitter
   - statc function:
Standard_Boolean IsClosedShell(const TopoDS_Shell& theShell);
has been modified to process empty shells.

II.3. class BOPAlgo_ShellSplitter
   - method:
void BOPAlgo_ShellSplitter::SplitBlock(BOPTools_ConnexityBlock& aCB);
has been modified to process connexity blocks of faces when the block
begins with the face that is intended to be internal [ II.1 ].

III. Modified entities:
packages:
BOPAlgo

Test case for issue CR24861
2014-04-24 15:43:33 +04:00
emv
d8a24e8394 0024798: Boolean operation CUT produces incorrect result
Face classifier has been used to check adjustment of 2d curve for the face.

Test case for issue CR24798
2014-04-24 15:43:30 +04:00
jgv
475604b446 0024840: Exception in BRepOffsetAPI_MakePipe
Test cases for issues CR24840 and CR24849
2014-04-24 15:43:26 +04:00
emv
a743e2e5e8 0024823: Hang up in "bopcheck" command
Modifications:
class IntTools_EdgeEdge
 1. method
   Standard_Boolean IntTools_EdgeEdge::FindParameters(
      const BRepAdaptor_Curve& theB
      const Standard_Real aT1,
      const Standard_Real aT2,
      const Standard_Real theRes,
      const Standard_Real thePTol,
      const Bnd_Box& theCBox,
      Standard_Real& aTB1,
      Standard_Real& aTB2)

   Added protection for large values of parameters of the edges.

 2. methods
    static Standard_Boolean BndCommon(const Bnd_Box& theB1,
                                      const Bnd_Box& theB2,
                                      Bnd_Box& theBOut)
   and
    IntTools_EdgeEdge::FindSolutions()

   have been removed as redundant.

Test case for issue CR24823
2014-04-21 19:58:54 +04:00