1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-06-30 12:14:08 +03:00

4045 Commits

Author SHA1 Message Date
emv
bbb7f3fa94 0031604: Wrong result of Boolean Operation Cut
BOPAlgo_WireSplitter::Path - continue building the next loop with the last edge not included into found loop.
2020-07-23 13:22:52 +03:00
jgv
fb343bc09d 0031485: Data Exchange - Export STEP in nonmanifold mode looses all faces except one
Small correction in STEPControl_ActorWrite::TransferCompound - take into account the case when a subshape has type TopAbs_FACE.
2020-07-23 13:18:58 +03:00
jgv
aba38db503 0031558: BRepOffsetAPI_MakeFilling algorithm makes turned inside out face
1. Modification in method BRepFill_Filling::Build - correction of building the wire.
2. Create new subgroup "filling" in the group "bugs".
2020-07-23 13:13:33 +03:00
azv
781c69588c 0031016: Projection of an ellipse is a B-spline in some cases
Improve projection of ellipse and circle on a plane in case of the same parametrization of the original curve and the projected one is not necessary. Now the projection is a canonical curve instead on B-spline.
2020-07-07 23:10:12 +03:00
jfa
12dbdf5483 0031565: Visualization - SIGFPE, Arithmetic exception if SelectMgr_TriangularFrustumSet::Build() is called with single point 2020-05-18 13:13:21 +03:00
mzernova
7904c7361f 0031440: Visualization - Impossible to make common behaviour for multi-selection in viewer
A special mode for the selecting by polygon is added to select only completely overlapping objects.

In order to track the sensitives that were included completely by defined polygon, the boundary points of the polygonal frustrum are stored in the variable myBoundaryPoints.

If an sensitive intersects with at least one of the frustrums from myFrustums, then checking whether this object intersects with borders using the isIntersectBoundary method; if not, then the sensitive were included completely by defined polygon.

Because the polygon can be concave, then to check the sensitive were included completely by defined polygon, it is not enough to check of all its points, it is necessary that the edges of the sensitive do not intersect polygonal frustrum. To do this, for polygonal selection, a call to the Overlaps method for a point was replaced by a call to a segment where necessary.

bugs/vis/bug31440: test case added
2020-04-30 16:33:31 +03:00
kgv
613213f3b7 0031425: Visualization - free Edge has selection sensitivity inconsistent to presentation
BRepTools::Triangulation() has been extended with a new parameter for checking Poly_Polygon3D presense within free Edges.
StdPrs_WFShape::Add() now performs auto-triangulation in the same way as StdPrs_ShadedShape::Add().
StdSelect_BRepSelectionTool::GetEdgeSensitive() now creates Select3D_SensitiveSegment instead of Select3D_SensitiveCurve for tessellated segment.
Select3D_SensitiveSegment default sensitivity factor has been changed to 3 pixels to match Select3D_SensitiveCurve.

Test case bug23625_1, added workaround for out-of-range crash in HLRBRep_PolyAlgo on re-triangulated shape.
2020-04-30 16:15:57 +03:00
jgv
e44cf1e4da 0031470: Modeling Algorithms - Regression: BOP common produces empty result (box and holed sphere)
Approx_ComputeCLine.gxx : new class field is added to manage hang checking.
ProjLib/ProjLib_ComputeApprox.cxx : unset hang checking for analytical surfaces and curves
2020-04-23 16:46:36 +03:00
jfa
a28d897290 Revert "0031470: Modeling Algorithms - Regression: BOP common produces empty result (box and holed sphere)"
This reverts commit b90477afe33ec585fec43fe5286bd2e2b93e21de.
2020-04-23 16:46:09 +03:00
jgv
e5f648be49 0031464: BRepOffsetAPI_MakeFilling algorithm increases tolerances of vertices in input edges
Modify history in BRepFill_Filling: now vertices are also stored in the map.
2020-04-23 15:39:31 +03:00
mpv
4c0aa1bc46 0031207: Regression in Boolean Operations: fuse gives wrong result
ForceInterfEE, ForceInterfEF - Use normalized vectors for angle computation. Increase the criteria angle.
2020-04-16 10:47:53 +03:00
emv
33d9a6fa21 0031462: Modeling Algorithms - BOP result depends on the arguments order
Eliminate numerical instability by ensuring that the tolerance of intersection entities is slightly grater than the actual distance to the shapes creating the entity.
2020-04-01 16:52:54 +03:00
jgv
b90477afe3 0031470: Modeling Algorithms - Regression: BOP common produces empty result (box and holed sphere)
Approx_ComputeCLine.gxx : number of possible cuttings is increased, tolerance in U parameter is reduced.
2020-03-31 15:50:47 +03:00
jgv
b3f078f474 0031441: UnifySameDomain corrupts the shape
Local function TransformPCurves is modified to process correctly same-domain elementary surfaces with different local coordinate systems.
2020-03-27 17:19:24 +03:00
ifv
1af716b9f3 0031415: Modeling Algorithms - Solid classifier works incorrectly on a cylinder
BRepClass3d_SClassifier.cxx : revert integration for CR29712

Test case added
2020-03-27 17:18:20 +03:00
ifv
87859c5534 0031460: Modeling Algorithms - Regression: Revolution not done.
BRepPrimAPI_MakeRevol.cxx: check of intersection of edge with rotation axis is improved.
Test case added
2020-03-27 17:16:57 +03:00
ifv
8c645a3f5d 0031404: Modeling Algorithms - BOP Fuse produces a self-interfering or a good shape depending on the order of arguments
Approx_ComputeCLine.gxx : number of possible cuttings is increased

tests/bugs/modalg_7/bug31404 : test case added
2020-03-27 17:15:43 +03:00
azv
bdeea0a897 0031407: [Regression to 7.3.0] Extrema does not process parallel circles correctly
Use correct ranges of circles when processing the concentric case. Repeat the range comparison 3 times shifting each time for a half-period to process the extrema between boundary points of arcs.
2020-03-06 14:57:11 +03:00
emv
08c8ef725c 0030386: Modeling Algorithms - Unable to perform Cut operation 2020-03-06 14:49:22 +03:00
jgv
8ce6d4990b 0031187: Modeling Algorithms - Regression relatively 7.3.0. Unify same domain algorithm produces invalid shape.
Modify the local function ReconstructMissedSeam to build new seam edges correctly.
2020-03-05 19:39:54 +03:00
ifv
4f9985be61 0031242: Scaling with different coefficients along axes produces invalid shape
GeomConvert_1.cxx:
Creation periodic BSpline surfaces from trimmed periodic surface if trim is boundaries of periodic domain is allowed

BRepTools_NurbsConvertModification.cxx:
Checking domain of 2dCurves if surfaces are periodic is added

Test case tests/bugs/mesh/bug30008_2 is modified according to current behavior

Test case tests/bugs/modalg_7/bug31242 is added
2020-03-05 17:40:29 +03:00
ifv
d2676fb8f3 0031294: Modeling Algorithms - Regression relatively 7.3.0. Crash in method BRepPrimAPI_MakePrism::Generated(...)
BRepSweep_NumLinearRegularSweep.cxx: raising exeption is removed

Test case is added

QABugs_20.cxx - test command is added
2020-01-14 15:43:59 +03:00
ifv
6b3be99225 0031031: Incorrect result is returned from BRepPrimAPI_MakePrism::Generated()
1. src\BRepSweep\BRepSweep_NumLinearRegularSweep.cxx

Fix bug by adding result in list of generated shapes, if initial shape is vertex, edge or face.

2. src\BRepLib\BRepLib.cxx

Add protection against treatment not geometric edge in BRepLib::UpdateInnerTolerances(...)

3. Add test case for bug and correct test for bug 30346 according to new behavior of algorithm
2020-01-14 15:42:38 +03:00
jgv
de7da66916 0030597: Result of BRepOffsetAPI_MakePipeShell doesn't match the given profiles
Modify the local function EdgeToBSpline of BRepFill_NSections to build a BSpline curve of general type for each curve of profile.
2019-12-26 15:48:36 +03:00
vsv
a130d492e0 0031153: Visualization - Non clear highlighting of selected trihedron elements
AIS_Trihedron - removed extra fields holding highlight styles; standard styles are now used instead;
fixed unexpected modification of global aspects;
fixed unhighligting of selected plane within Shaded trihedron.

AIS_InteractiveContext now sets highlight color to highlight aspects, not only base color to drawer itself.
2019-12-26 13:48:10 +03:00
jgv
a2ac649fd1 0026071: BRepOffsetAPI_MakePipeShell produces rough result
1. Correct building history: the case of closed spine.
2. Rollback method GeomFill_CorrectedFrenet::InitInterval - correct processing singularities on spine.
3. Correct test cases.
2019-12-26 13:48:02 +03:00
jgv
f160ca4ef7 0031066: Infinite loop in ShapeUpgrade_UnifySameDomain
Modification in local static method TransformPCurves - compute real U And V bounds of a face and use them in further computations.
2019-12-26 13:47:54 +03:00
emv
7e8a88210c 0029843: Modeling Algorithms - Boolean FUSE produces incorrect result
When splitting the shell/face with internal faces/edges use the 'internal' criteria of the face to choose the way to create loops.

Side effect changes:
- When performing Boolean operation - move the objects located far from Origin to the Origin to increase the accuracy of intersections.
2019-12-26 13:47:46 +03:00
bugmaster
fd47711d68 Increment OCCT version up to 7.4.0 2019-09-29 12:12:58 +03:00
kgv
c61c864f73 0031006: Draw Harness - locate_data_file fails on path containing spaces 2019-09-29 12:12:58 +03:00
kgv
7863dabb54 0031002: Documentation - update Overview for 7.4.0
Updated OCC logo.
Replaced some external links to https.
Added references to VS2019 support.
Added glTF, OBJ, IFC, JT into listing within appropriate sections.
Replaced dead URLs.

Fixed misleading information.
2019-09-26 17:01:58 +03:00
emv
92686513a2 0030994: Test cases of group sat/read_parallel_1/_2 are crashed with exception
Revert changes by #30518
2019-09-25 17:49:04 +03:00
drazmyslovich
8c186dad9b 0025044: BRepMesh tweaks - treatments for degenerated and tiny faces
BRepMesh_ModelHealer - recognize a small face with 1 wire and 2 small edges as a face for refinement.
BRepMesh_DefaultRangeSplinner - reduce tolerance on tiny faces to improve the meshing results.

Added new test cases: bugs mesh bug25044_*.
Existing test cases updated to reflect improvements.
2019-09-25 17:46:57 +03:00
nds
3de0f78449 0030997: Foundation Classes - name correction of dump macros 2019-09-25 17:35:15 +03:00
tiv
467e864adf 0030720: Coding - fix HashCode() function problems that are not resolved with 30550
Undefined behavior caused by left shift operations in TopLoc_Location::HashCode() function is fixed.
HashCode() function overload for Standard_Size type is made available only if Standard_Size and "unsigned int" are different types (it is usually true for 64-bit platforms). The overload for "unsigned int" is made simple non-templated function (so it behaves the same on 32-bit and 64-bit platforms).
HashCode() function overload for Standard_Utf32Char type is made available only if Standard_Utf32Char and "unsigned int" are different types (it is needed for some old compilers).
2019-09-25 15:58:08 +03:00
abv
0a5ec5f380 0030990: Foundation Classes - unexpected change in numerical results on bsplines after 0029769
Added DRAW command and test case for detection of inconsistent update of B-Spline surface cache
2019-09-24 14:15:18 +03:00
kgv
9196ea9d5a 0030991: Draw Harness - ViewerTest::ParseColor() defines out-of-range alpha component
ViewerTest::ParseColor() - fixed alpha component defined as 255 for RGB-only input.
Quantity_Color::ColorToHex() now rounds-up float values to closest integer.
Quantity_ColorRGBA::ColorToHex() - added method formatting color into hex with alpha component consistent to Quantity_Color::ColorToHex() for RGB.

vdrawtext command now uses ViewerTest::ParseColor() for parsing color argument, so that it accepts hex.
vreadpixel command now has been extended with -hex argument for printing color in hex format.

Commands XSetColor, XGetColor, XGetShapeColor, XGetAllColors, XAddColor, XRemoveColor, XFindColor,
XUnsetColor, XGetInstanceColor, XSetInstanceColor have been corrected to properly report syntax input errors
and to accept color names and hex (by reusing ViewerTest::ParseColor()).
2019-09-24 13:52:45 +03:00
abv
d537c5e67d 0029705: Foundation Classes - ShapeAnalysis_FreeBounds intention documentation is misleading
Description of the purpose of the class is corrected (wording improved)
2019-09-24 13:45:19 +03:00
ifv
e774a5534c 0030907: Visualization Algorithms - failure on attempt to compute iso-lines for an offset face made by a face of linear extrusion
The visualization code drawing iso-lines has been protected against getting iso-lines of infinite offset surface. In such case the surface is trimmed by UV bounds of the face.
Test case added
2019-09-24 13:18:28 +03:00
gka
258a844b63 0029780: [REGRESSION] Shape Healing - Operator FixShape failed with exception
Method ShapeFix_Wire::FixNotchedEdges() is corrected to handle the case of closed notched edges: on such edges split parameter may fall to wrong end of the curve due to projection.
2019-09-20 19:40:47 +03:00
abv
cbaac5de6d 0030985: Modeling Algorithms - heap-use-after-free reported by Clang address sanitizer in TopOpeBRepTool_REGUW::InitBlock()
Code is corrected to avoid use of reference to a shape removed from the list after that removal
2019-09-20 19:39:33 +03:00
abv
eb62cbc494 0030518: Foundation Classes - NCollection_IndexedDataMap array out of bounds
Implementation of NCollection_IndexedDataMap::Iterator is revised to avoid unintended access to the element out of array bounds
2019-09-20 19:39:30 +03:00
abv
1e0a1fc9cb 0030981: Foundation Classes - heap-buffer-overflow reported by Clang address sanitizer in TCollection_ExtendedString
Avoid using memcmp on null-terminated extended (16-bit) strings.
Plain zero is used instead of one-byte null char literal for 16-bit chars.
2019-09-20 19:39:29 +03:00
abv
25093c3f54 0030980: Data Exchange - global-buffer-overflow reported by Clang address sanitizer in iges_newchar()
Avoid unnecessary copying of characters with zero-length string literal as source
2019-09-20 19:39:28 +03:00
nds
0904aa6395 0030949: Foundation Classes - Dump improvement for OCCT classes
1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects
2. some presentations cover the proposed dump functionality.
3. 'bounding', 'vaspects' has '-dumpJson' field to see the DumpJson result
4. Bnd_Box constructor with min/max points is implemented to use Dump of this class in Dump BVH_Box
5. Limitation (some classes of Graphic3d, Prs3d has not full filling for DumpJson)
2019-09-20 19:39:28 +03:00
mzernova
c42ef16585 0030180: Data Exchange - VrmlAPI_Writer is expected to return export state
The VrmlAPI_Writer::WriteDoc() and VrmlAPI_Writer::Write() methods now return the export state.
2019-09-20 19:39:27 +03:00
abv
1f44d29a0f 0030978: Visualization - stack-use-after-scope reported by Clang address sanitizer in OpenGl_Text.cxx
Implementation of auxiliary class in OpenGl_Text.cxx is corrected to avoid storing reference to temporary object.

Off-topic: test parse rules are corrected to recognize situation when test is killed by elapsed time, and report it as such.
2019-09-20 19:39:27 +03:00
mzernova
8b037fe4ea 0030866: Visualization - remove map of AIS_Manipulator from ViewerText
ViewerTest_MapOfAISManipulators and ViewerTest_AISManipulator have been removed from ViewerTest
2019-09-16 19:38:33 +03:00
gka
5859be3886 0030302: XCAF - Typo in XCAFDoc_GeomTolerance
Typo in the XCAFDoc_GeomTolerance.cxx where Loc is used instead of aPnt was corrected.
2019-09-14 11:45:37 +03:00
gka
d45b7860a5 0030113: Data Exchange - STL file in text format with "Facet" keywords can't be imported
Case-sensitive method strncmp used in the REStl_Reader cosidered register of letter was replaced on the method _strnicmp for Windows and strncasecmp for Linux and MacOs
Test script for case 0030113
2019-09-14 11:45:36 +03:00