1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-09 18:50:54 +03:00

667 Commits

Author SHA1 Message Date
aml
2958244411 0024934: Section: crash for two faces
Added protection from null vertexes.

Test case for issue CR24934
2014-11-05 17:27:09 +03:00
apn
a806787bd6 0025157: Face missing depending the angle of revolution
Added test case bugs/mesh/bug25157
2014-11-05 17:07:33 +03:00
apn
5e5ce65be4 0022125: TCollection_ExtendedString: conversion from UTF-8 to unicode
Added test case bugs/fclasses/bug22125
2014-11-05 17:04:46 +03:00
azv
6fb3418ea1 0025413: Line-Shape intersection algorithm became 400 times slower
Changed the procedure of creating initial samples

Test-case for issue #25413
2014-11-05 17:02:58 +03:00
apn
a507ffd9d7 0025307: Problems resulted from re-triangulation
Added test case bugs/mesh/bug25307
2014-11-05 16:51:08 +03:00
apn
3edc7eea42 0024519: Intersection of a cylinder and a plane does not return
Added test case bugs/modalg_5/bug24519
2014-11-05 16:49:15 +03:00
apn
dbf0485ef0 0025281: BRepMesh_IncrementalMesh does not return
Added test case bugs/mesh/bug25281
2014-11-05 16:48:00 +03:00
ifv
43dbdb15db 0025427: Algorithm of building plane from wire hangs
Test-case for issue #25427
2014-11-05 16:47:36 +03:00
nbv
e98e39903b 0025410: Tool for extended check of validity of the curve on the surface
Modifications:
1. class BOPTools_AlgoTools
1.1. method
 Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
  (const Handle(Geom_Curve)& theCurve3D,
   const Handle(Geom2d_Curve)& theCurve2D,
   const Handle(Geom_Surface)& theSurf,
   const Standard_Real theFirst,
   const Standard_Real theLast,
   Standard_Real& theMaxDist,
   Standard_Real& theMaxPar)
  It computes the max distance between points taken from 3D and 2D curves by the same parameter

1.2. method
 Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
  (const TopoDS_Face& theFace,
   const TopoDS_Edge& theEdge,
   Standard_Real& theMaxDist,
   Standard_Real& theParameter)
  Computes the valid value of the tolerance for the edge using the function above.

2.  Added possibility to check shape on the validity of the curves on the surfaces.
2.1. New status BOPAlgo_InvalidCurveOnSurface has been added to the enumeration BOPAlgo_CheckStatus
2.2. class BOPAlgo_ArgumentAnalyzer
 method
   void BOPAlgo_ArgumentAnalyzer::TestCurveOnSurface()
 It checks each edge/face pair in the shape using the method ComputeTolerance from BOPTools_AlgoTools and stores invalid pairs to myResults.
 Invalid pairs are those which contain the edge with tolerance value less then the value computed by the ComputeTolerance method.

2.3. class BOPAlgo_CheckResult
 Added new fields:
    myMaxDist1 : Real from Standard;
    myMaxDist2 : Real from Standard;
    myMaxPar1  : Real from Standard;
    myMaxPar2  : Real from Standard;
 and corresponding setters and getters.
 These fields are used to store the results of the TestCurveOnSurface() check.

3. Added new option to the bopargcheck command and two new commands.
class BOPTest_CheckCommands
3.1. command bopargcheck
 As it is using the BOPAlgo_ArgumentAnalyzer class to check the shapes
 it checks also the validity of the curves on the surfaces.
 The output for the invalid shapes is following:

Draw[]> bopargcheck b2 /ic #f
Made faulty shape: s1COnS_1 (MaxDist = 0.0013334343378738308, MaxPar = 0.02884285498274167)
Made faulty shape: s1COnS_2 (MaxDist = 0.0013334340648766174, MaxPar = 0.02884285497934707)
Made faulty shape: s1COnS_3 (MaxDist = 0.0013335086668628978, MaxPar = 1.4133051942712607)
Made faulty shape: s1COnS_4 (MaxDist = 0.0013335086525838983, MaxPar = 1.4133051942713901)
Faulties for FIRST  shape found : 4
---------------------------------
Shapes are not suppotrted by BOP: NO
Self-Intersections              : NO
Check for SI has been aborted   : NO
Too small edges                 : NO
Bad faces                       : NO
Too close vertices              : NO
Too close edges                 : NO
Shapes with Continuity C0       : NO
Invalid Curve on Surface        : YES  Cases(4)  Total shapes(8)

Faulties for SECOND  shape found : 0

 The compounds s1COnS_* contain pair of edge and face.
 MaxDist is maximal distance between points taken from 3D curve of the edge and 2D curve of that edge on the face.
 MaxPar is a parameter in which the MaxDist is reached.

 To disable this check it is necessary to use option /S (bopargcheck shape /S).

3.2. command xdistef
 Usage of the command:
   xdistef edge face
 It computes distance between points taken from 3D curve of the edge and 2D curve of that edge on the face.
 Example:
Draw[]> explode s1COnS_1
s1COnS_1_1 s1COnS_1_2
Draw[]> whatis s1COnS_1_1
s1COnS_1_1 is a shape EDGE FORWARD Modified Orientable
Draw[]> whatis s1COnS_1_2
s1COnS_1_2 is a shape FACE FORWARD Modified Orientable
Draw[]> xdistef s1COnS_1_1 s1COnS_1_2
Max Distance = 0.0013334343378738308; Parameter on curve = 0.02884285498274167

3.3. command checkcurveonsurf
 Usage of the command:
  checkcurveonsurf shape.
 It checks each edge/face pair in the shape using the method ComputeTolerance from BOPTools_AlgoTools.
Example:
Draw[]> checkcurveonsurf b2
Invalid curves on surface:
edge e_0 on face f_0 (max dist: 0.0013334343378738, parameter on curve: 0.0288428549827417)
edge e_1 on face f_0 (max dist: 0.0013334340648766, parameter on curve: 0.0288428549793471)
edge e_2 on face f_1 (max dist: 0.0013335086668629, parameter on curve: 1.4133051942712607)
edge e_3 on face f_1 (max dist: 0.0013335086525839, parameter on curve: 1.4133051942713901)

Sugestions to fix the shape:
explode b2 e;
settolerance b2_6 0.0013335086668629;
settolerance b2_7 0.0013334343378738;
settolerance b2_8 0.0013334340648766;
settolerance b2_10 0.0013335086525839;

The command gives suggestions to fix the shape by increasing tolerance values of the invalid edges.
In some cases the tolerance values suggested by the tool can be very large.
Such values should be used very carefully, because setting large tolerance values to the sub-shapes
of the shape can make it non valid (self-interfered) or lead to unexpected result when using
such shapes in some operations (boolean for example).

Test case for issue CR25410
2014-10-30 14:27:29 +03:00
emv
524a5f7aa7 0025337: Regression to version 6.7.1 : boolean operations fail on two planar circular faces lying in the same plane
class IntTools_EdgeEdge
method
  void IntTools_EdgeEdge::FindSolutions(const IntTools_Range& theR1,
                                        const IntTools_Range& theR2,
                                        const Bnd_Box& theBox2,
                                        IntTools_SequenceOfRanges& theRanges1,
                                        IntTools_SequenceOfRanges& theRanges2)
Looking for the solutions of the intersection between edges with greater precision.

Test cases for the issue.
2014-10-30 13:49:30 +03:00
apn
1ccc9700f8 0024404: The function BRepTools::UVBounds gives wrong result for the face
Added test case bugs/modalg_5/bug24404
2014-10-30 13:46:45 +03:00
apn
2b111fe8ba 0022829: Incorrect result of boolean Fuse operation
Added test case bugs/modalg_5/bug22829
2014-10-30 13:45:05 +03:00
aml
db91484119 0025368: BREPExtrma DistShapeShape gives wrong result for Sphere and Line
Changed analytical Sphere/Line and Cylinder/Line extrema algorithms. Now they search perpendicular and intersection points.
Test cases added.
2014-10-30 13:43:04 +03:00
nbv
02effd356b 0025292: Face/Face intersection algorithm gives different results for different order of the arguments
Method of adjusting was corrected.

Test cases for issue CR25292
2014-10-30 13:25:45 +03:00
pkv
b858a6984e 0025184: Non-deterministic order of wires in the result of General Fuse
The source is brought in line with the current version

Test case for issue CR25184
2014-10-30 13:19:31 +03:00
apn
32c3693332 0022872: BRepClass3d_SolidClassifier::PerformInfinitePoint fails
Added test case bugs/modalg_5/bug22872
2014-10-30 13:05:31 +03:00
apn
6e953e43f6 0024746: Bug in BRepAlgoAPI
Added test case bugs/modalg_5/bug24746
2014-10-30 12:59:35 +03:00
apn
3798da68bc 0021898: Empty result of intersection between a surface of revolution and a line
Added test case bugs/modalg_5/bug21898
2014-10-30 12:58:51 +03:00
vro
fcc61cc4c9 0025405: STL reader doesn't keep shared nodes
An improved RWSTL::ReadFile() method + a draw-command returning the number of nodes and triangles for a MeshVS_Mesh object based on STL mesh data source.

An indexed map of points is replaced by a CellFilter of XYZ objects already implemented in BRepBuilderAPI.
Also, BRepBuilderAPI_VertexInspector became exported for TKTopAlgo library (Standard_EXPORT is added for the methods of this class).

Standard_EXPORT is removed for in-line methods of BRepBuilderAPI_VertexInspector

Test-case for issue #25405

Update of test-cases, according to new behavior
2014-10-30 12:19:36 +03:00
apn
db4d439c8f 0023249: BRepFeat_SplitShape could not split a simple face by edge
Added test case bugs/modalg_5/bug23249
2014-10-30 12:10:34 +03:00
aml
1eaf1cc1dc 0025380: Intersection curve cannot reach boundary of surface
Changed next point computation in IntWalk_PWalker.cxx.
Now trying to walk over another isoline if new point is too close to previous.

Test case for issue CR25380
2014-10-30 12:05:56 +03:00
pdn
e1aa24d84b 0025424: Performance regression on step import
Regression was caused by checking of shell closeness on each face add iteration. Fixed.

Test case for issue CR25424
2014-10-30 12:00:28 +03:00
san
a0c202521d 0025400: Visualization, TKOpenGl - Structure disappears if assigned a non-default Z layer
- BVH tree in the target Z layer was not updated when OpenGl_Structure
was moved to another Z layer.
- vpriority DRAW command added to test how BVH tree is updated when
display priority is changed
- Test case for Z layers and display priorities added

Handle -noupdate argument within vpriority command
2014-10-30 11:58:22 +03:00
aml
032d027214 0025407: Exception in extrema operation.
Special handling of curve / surface of extrusion case is deleted.
Corresponding test case fixed.

Test cases for issue CR25407
2014-10-30 11:46:34 +03:00
pkv
67e36f0c7a 0025408: Wrong result obtained by General Fuse operator.
Changes:

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 location of 2D-curve is adjusted to face boubaries if necessary
using the precision value in parametric space

Unnecessary comments are removed

Test case for issue CR25408
2014-10-30 11:43:34 +03:00
aba
1c9d151726 0025403: Wrong storage of model units in AIS_AngleDimension: corrected AIS_Drawer model units setters; added parameters to vdimensin and vdimparam commands. 2014-10-30 11:40:24 +03:00
bugmaster
28746337be Update of testing cases after integration fixes for issue 25354 and 25406 2014-10-24 15:35:41 +04:00
jgv
903f7584b8 0025406: BRepOffset_MakeOffset algorithm fails on the face with two degenerated edges on u-iso null curves
Test cases for issue CR25406
2014-10-23 16:20:56 +04:00
apn
876d1f2a2c 0022196: Problem with puting texture on the bottle.brep shape
Test case bugs/modalg_2/bug22196 was modified to apply texture.
2014-10-23 16:20:48 +04:00
apn
0cc44c4730 0023911: Invalid output of command Xdump
Improved output of Xdump command using Draw_Interpretor.

Improved output of Xdump command using Standard_SStream.

OStream is used instead of SStream.

Test cases for issue CR23911
2014-10-23 16:20:47 +04:00
jgv
0e0f7a7cde 0025334: BRepOffsetAPI_MakeOffset algorithm crashes on some customer's shape
Test cases for issue CR25334
2014-10-23 16:20:45 +04:00
msv
191082ac71 0025344: Draw variables do not follow the scope of TCL level
Use NCollection_Map instead of instantiation of TCollection_Map

Test-cases for issue #25344

Correct error in test script: the shape variable assigned by the command 'restore' must not be referred by '$'.
2014-10-23 16:20:42 +04:00
msv
5e452c37ee 0025348: Method Assign of NCollection containers must not change own allocator of the target
Correct according to remarks of reviewer:
- Assign() and operator=() should implement equal approach to allocators
- Protect all collections against assignment to itself with operator=()

Test-case for issue #25348
2014-10-23 16:20:40 +04:00
kgv
86766b0ee0 0025381: Visualization - XCAFPrs_AISObject ignores visibility flag for sub-shapes
Test case for issue CR25381
2014-10-23 16:20:39 +04:00
apl
bc67757515 0024965: Problem in local selection mode with selected objects staying in the viewer
Added method to clear outdated selection of entity owners on recompute (update) of selection.
Added test case to check selection behavior in local context.

Cosmetic corrections
2014-10-23 16:20:38 +04:00
apn
e1cbc34c5f 0023698: BRepBuilderAPI_Copy creates invalid copy
Added test case bugs/modalg_5/bug23698
2014-10-23 14:00:26 +04:00
apl
ba4feb7629 0025265: Perspective projection - selecting front point of two 2014-10-23 13:23:30 +04:00
mkv
4292bee12a Correction of testing cases 2014-10-17 16:40:22 +04:00
abv
aefdc31bf0 0025266: Debug statements in the source are getting flushed on to the console
Suppress remaining couts in packages explicitly mentioned in the original bug description

Correction of test cases for issue CR25266
2014-10-16 16:45:55 +04:00
apn
a520f6eb9a 0025313: Review of TODOs in test cases for unused platforms
TODOs for unused platforms were deleted. Issue 22988 was closed.
2014-10-16 16:45:27 +04:00
nbv
9e20ed5793 0023547: Tests failures in debug mode
1. DRAW-commands for curve/surface continuity returning were changed.
2. Output of "distmini" DRAW-command is amended.
3. Function MinMax() was moved from Standard_Real to IntPatch_ImpImpIntersection_4.gxx.
4. Incorrect computing of nbcurveC1 in Geom2dConvert::C0BSplineToC1BSplineCurve(...) function was liquidated.

Test cases were changed.
2014-10-16 16:45:13 +04:00
dbv
63c629aa3a 0025266: Debug statements in the source are getting flushed on to the console
Output to cout activated previously in Debug mode by #ifdef DEB is suppressed by using macro <PACKAGE>_DEB instead of DEB
2014-10-16 16:44:56 +04:00
kgv
7aa1b65c2a 0025369: Visualization, Image_AlienPixMap - handle UTF-8 names in image read/save operations on Windows
Test-case for issue #25369
2014-10-16 16:14:06 +04:00
kgv
54a16ee447 0025340: Visualization, AIS_InteractiveContext - properly apply selection filters at Neutral point
Do not use myMainSel->OnePicked() in AIS_InteractiveContext::MoveTo().

Test-case for issue #25340
2014-10-16 16:08:27 +04:00
apl
6262a3032c 0025363: Visualization - add test command for V3d_View::FitAll by view area 2014-10-16 15:38:44 +04:00
dbv
5203f74183 0021802: Not all names are transferred from STEP to IGES via XDE
Method IGESCAFControl_Writer::WriteNames now iterates over all nested assemblies and collects names for shapes.
Regression fix
Test-case for issue #21802
2014-10-16 15:36:14 +04:00
emv
4691b61a72 0025319: Bop Common produces strange results with same shapes.
class BOPAlgo_Builder
method
  void BOPAlgo_Builder::FillIn3DParts
    (BOPCol_DataMapOfShapeListOfShape& theInParts,
     BOPCol_DataMapOfShapeShape& theDraftSolids,
     const BOPCol_BaseAllocator&)
Sort faces before its classification relatively to the solid.

Test cases for issue CR25319

Correction of test cases for issue CR25319
2014-10-16 15:31:11 +04:00
emv
2a2e3ecdc7 0025245: General Fuse operation regression
class BOPDS_DS
method:
  void BOPDS_DS::InitPaveBlocks(const Standard_Integer theI)
Correct treatment of internal edges.

Test cases for the issue.

Correction of test cases for issue CR25245
2014-10-16 15:27:31 +04:00
emv
d46546cdcd 0023753: Test case bugs modalg_2 bug19793_2 works too long on Linux platform
class IntTools_ShrunkRange
method void IntTools_ShrunkRange::Perform()
Fix to avoid creation of small section edges.

Correction of test case for issue CR23753
2014-10-16 15:15:13 +04:00
vro
8e1e79f052 0025317: Failure on attempt to save an Ocaf document with a long double array attribute in a Xml file
A draw-command SetRealArrayValue. It is necessary to reproduce the crash.
A fix + some additional draw-commands
Test cases for issue CR25317
2014-10-16 15:02:30 +04:00