]> OCCT Git - occt.git/log
occt.git
3 years ago0032446: BRepOffsetAPI_MakePipeShell crash when using -DT mode and DT_ShapeDivide...
akaftasev [Wed, 29 Jun 2022 07:33:37 +0000 (10:33 +0300)]
0032446: BRepOffsetAPI_MakePipeShell crash when using -DT mode and DT_ShapeDivide on the spine

Added test case

3 years ago0032445: BRepOffsetAPI_MakePipeShell crash when using -DT mode and DT_ShapeDivide...
akaftasev [Wed, 29 Jun 2022 07:32:52 +0000 (10:32 +0300)]
0032445: BRepOffsetAPI_MakePipeShell crash when using -DT mode and DT_ShapeDivide on the spine

Added test case

3 years ago0032999: Modeling Algorithms - New option in ShapeUpgrade_ShapeDivide algorithm:...
jgv [Sat, 30 Apr 2022 20:05:07 +0000 (23:05 +0300)]
0032999: Modeling Algorithms - New option in ShapeUpgrade_ShapeDivide algorithm: splitting into N parts, into N*M parts

1. Multiple changes in ShapeUpgrade_ShapeDivideArea, ShapeUpgrade_FaceDivide, ShapeUpgrade_FaceDivideArea, ShapeUpgrade_SplitSurface, ShapeUpgrade_SplitSurfaceArea: new methods NbParts and SetSplittingByNumber, changes in ShapeUpgrade_FaceDivideArea::Perform and ShapeUpgrade_SplitSurfaceArea::Compute concerning new modes of splitting.
2. New Draw command "DT_SplitByNumber" for testing new modes of splitting.
3. New subgroups "split_number" and "split_two_numbers" in the group of tests "heal" for testing new modes of splitting.

3 years ago0033041: Coding - get rid of unused headers [TopTools to Xw]
aml [Mon, 27 Jun 2022 16:46:53 +0000 (19:46 +0300)]
0033041: Coding - get rid of unused headers [TopTools to Xw]

3 years ago0032692: Mesh - In BRepMesh_ModelPreProcessor avoid crashes with problematic topology
oan [Tue, 28 Jun 2022 08:43:49 +0000 (11:43 +0300)]
0032692: Mesh - In BRepMesh_ModelPreProcessor avoid crashes with problematic topology

Improved the processing for the case where Failure flag for the meshing face is set. Specific tests added.
Check triangulation consistency even for shapes with problematic topology given that they are suitable for keeping it.

3 years ago0033029: Warning on Windows 32 and 64 with VC14 after the integration of ticket 32821
atychini [Sun, 26 Jun 2022 17:03:59 +0000 (20:03 +0300)]
0033029: Warning on Windows 32 and 64 with VC14 after the integration of ticket 32821

Warning has been fixed by adding condition.

3 years ago0033039: Coding - get rid of unused headers [StepData to StlAPI]
aml [Mon, 27 Jun 2022 16:15:13 +0000 (19:15 +0300)]
0033039: Coding - get rid of unused headers [StepData to StlAPI]

3 years ago0033028: Standard_ConstructionError while using ShapeUpgrade_UnifySameDomain
azv [Mon, 27 Jun 2022 06:57:42 +0000 (09:57 +0300)]
0033028: Standard_ConstructionError while using ShapeUpgrade_UnifySameDomain

Additional check if the sequence of circular edges is a closed chain.

3 years ago0033025: Coding - get rid of unused Standard_TooManyUsers class
aml [Wed, 22 Jun 2022 15:59:47 +0000 (18:59 +0300)]
0033025: Coding - get rid of unused Standard_TooManyUsers class

3 years ago0032915: Geom2dAPI_InterCurveCurve, The algorithm lost an intersection point. CR0-WEEK-25 IR-2022-06-24
azv [Fri, 8 Apr 2022 08:03:53 +0000 (11:03 +0300)]
0032915: Geom2dAPI_InterCurveCurve, The algorithm lost an intersection point.

Get rid of strange code: preliminary check of self-intersections is made on a polygonal representation of a curve, it is able to find possible intersections, but after that it filter out segments neighbor to the pair of non-intersected segments.

Test case de step_4 I1 has been marked BAD, because the self-intersection is treated correctly, but the projection algorithm generates such crooked 2D curve.

Reference data in test cases heal split_angle_advanced ZA5 and ZA6 has been updated, because those shapes have self-intersected edges, which are being detected now.

3 years ago0032877: Modeling algorithms - Sweeping issue
mgerus [Thu, 23 Jun 2022 05:35:33 +0000 (08:35 +0300)]
0032877: Modeling algorithms - Sweeping issue

Add fix at sweeping algorithm: sweeping happens in the opposite direction as expected
Add test case tests/bugs/modalg_7/bug32877

3 years ago0032821: DEWrapper - Implementation of a common toolkit for importing and exporting...
atychini [Wed, 16 Feb 2022 10:22:23 +0000 (13:22 +0300)]
0032821: DEWrapper - Implementation of a common toolkit for importing and exporting CAD files

Implementing DE_Wrapper and its formats

3 years ago0033022: Coding - get rid of unused headers [ShapeBuild to STEPControl]
aml [Tue, 21 Jun 2022 14:03:20 +0000 (17:03 +0300)]
0033022: Coding - get rid of unused headers [ShapeBuild to STEPControl]

3 years ago0032894: Application Framework - Regressions on Ubuntu 20.04
mpv [Mon, 20 Jun 2022 14:45:27 +0000 (17:45 +0300)]
0032894: Application Framework - Regressions on Ubuntu 20.04

Updated corrupted file reading error management, make memory unit-tests more stable.

3 years ago0032653: Modeling Data - misprint in Geom2d_Conic.hxx api SetYAxis(const gp_Ax2d... IR-2022-06-17
aml [Fri, 17 Jun 2022 06:20:51 +0000 (09:20 +0300)]
0032653: Modeling Data - misprint in Geom2d_Conic.hxx api SetYAxis(const gp_Ax2d& theAY)

Fix misprint.

3 years ago0033019: Coding - get rid of unused classes
aml [Tue, 14 Jun 2022 14:02:28 +0000 (17:02 +0300)]
0033019: Coding - get rid of unused classes

3 years ago0033018: Coding - get rid of unused headers [Plugin to ShapeAnalysis]
aml [Tue, 14 Jun 2022 13:21:00 +0000 (16:21 +0300)]
0033018: Coding - get rid of unused headers [Plugin to ShapeAnalysis]

3 years ago0033016: Documentation - Draw Harness User Guide mentions removed commands 'meshdispmode'
kgv [Tue, 14 Jun 2022 06:48:09 +0000 (09:48 +0300)]
0033016: Documentation - Draw Harness User Guide mentions removed commands 'meshdispmode'

Updated description of MeshVS commands in User's Guide.

3 years ago0033009: Foundation Classes - Bnd_OBB::ReBuild() expects point array starting from 0
akondrat [Fri, 10 Jun 2022 11:33:15 +0000 (14:33 +0300)]
0033009: Foundation Classes - Bnd_OBB::ReBuild() expects point array starting from 0

Add test. Update OBBTool constructor for any bounds of array of points.

3 years ago0032954: Tool for applying transformation to OCAF document IR-2022-06-10
snn [Fri, 13 May 2022 09:53:03 +0000 (12:53 +0300)]
0032954: Tool for applying transformation to OCAF document

New XCAFDoc classes:
- XCAFDoc_AssemblyIterator: iterator in depth along the assembly tree
- XCAFDoc_AssemblyGraph: assembly graph with iterator
- XCAFDoc_AssemblyTool: provides generic methods for traversing assembly tree and graph

A method for re-scaling (sub-)assembly geometry is added to XCAFDoc_Editor.

New DRAW commands:
- XDumpAssemblyTree: iterates through the assembly tree in depth up to the specified level, if any
- XDumpAssemblyGraph: prints assembly graph structure
- XDumpNomenclature: prints number of (sub-)assembly/part instances
- XRescaleGeometry: applies geometrical scale to (sub-)assembly

3 years ago0030492: Foundation Classes - math_BFGS fails if starting point is exactly the minimum
aml [Fri, 3 Jun 2022 09:30:22 +0000 (12:30 +0300)]
0030492: Foundation Classes - math_BFGS fails if starting point is exactly the minimum

Fix affects BFGS optimization methods by checking convergence as the first step on each iteration. FRPR works well, but it is updated as well since its logic potentially dangerous.

3 years ago0032929: Modeling Algorithms - Crash in PerformIntersectionAtEnd after deletion of... IR-2022-06-04
Charlemagne Lasse [Wed, 13 Apr 2022 09:54:30 +0000 (11:54 +0200)]
0032929: Modeling Algorithms - Crash in PerformIntersectionAtEnd after deletion of surfdata

When creating a fillet, num is calculated via ChFi3d_IndexOfSurfData. If it
returns just the number of entries in surfdata, it can happen that this
value becomes invalid when handling the case "two faces common to the edge
are found". When both components are on an arc, there will be num removed
from the surfdata.

num would then be larger than the number of entries surfdata. The derived
num1 is therefore also incorrect. The subsequent usage of this
value will either:

* Debug build: cause an out of bounds exception in ChangeValue
  (`SeqFil.ChangeValue(num)`)
* Release build: cause a segfault when retrieving it via index num1
  (`SeqFil(num1)`)

num + num1 must be recalculated after the deletion happens to correctly
calculate the fillet.

Signed-off-by: Charlemagne Lasse <charlemagnelasse@gmail.com>
3 years ago0032930: Modeling Algorithms - Crash in PerformIntersectionAtEnd when no face was...
Charlemagne Lasse [Wed, 13 Apr 2022 09:54:30 +0000 (11:54 +0200)]
0032930: Modeling Algorithms - Crash in PerformIntersectionAtEnd when no face was found

The PerformIntersectionAtEnd code is currently not handling all the faces
correctly. If it retrieves Face[0] as F, it can happen that the previously
ran code didn't actually retrieve any faces in this array at all.

For example when:

* "if (nface==3)" is true
  - "if (!findonf1)" is true (doesn't assign any faces to this array)
  - "if (!findonf2)" is true (doesn't assign any faces to this array)
  - "if (state == ChFiDS_OnSame)" is not true (because it is
    ChFiDS_AllSame)
  - "if (findonf1 && !isOnSame1)" cannot be true (see above, but would
    handle faces)
  - "if (findonf2 && !isOnSame2)" cannot be true (see above, but would
    handle faces)
  - "if (isOnSame2)" is false (but would also handle faces)

Since no faces were assigned here, F would be a NULL face. As result, the
function will crash when trying to access the Surface behind the face via
`BRep_Tool::Surface(F);`.

While the best approach would be to identify the implementation bug in the
algorithm behind PerformIntersectionAtEnd, a check + exception is used
instead because the actual algorithm is not known.

Signed-off-by: Charlemagne Lasse <charlemagnelasse@gmail.com>
3 years ago0032931: Modeling Algorithms - Crash in ChFi3d_IsInFront when no face was found
Charlemagne Lasse [Wed, 13 Apr 2022 09:54:30 +0000 (11:54 +0200)]
0032931: Modeling Algorithms - Crash in ChFi3d_IsInFront when no face was found

The ChFi3d_IsInFront code is currently not handling all the combinations
correctly. For example, if `if(fd1->IndexOfS2() == fd2->IndexOfS2())` is
true, it can happen that the `TopoDS::Face(DStr.Shape(fd1->Index(jf1)))`
returns a Face with entity == NULL. The subsequent usage of this NULL face
in `BRep_Tool::Parameters( Vtx, face )` will then cause a segfault.

While the best approach would be to identify the implementation bug in the
algorithm behind PChFi3d_IsInFron, a check + exception is used instead
because the actual algorithm is not known.

Signed-off-by: Charlemagne Lasse <charlemagnelasse@gmail.com>
3 years ago0030024: Data Exchange - STEP, IGES export support of BRep shapes based on tessellate...
snn [Mon, 4 Apr 2022 15:08:34 +0000 (18:08 +0300)]
0030024: Data Exchange - STEP, IGES export support of BRep shapes based on tessellated geometry

Support of reading and writing tessellated geometry is added for the following STEP entities:
- triangulated face
- complex triangulated face
- tessellated shell
- tessellated solid
- tessellated shape representation

Models without BRep geometry (mesh formats like STL, OBJ and so on) are supported for writing to STEP.

New parameters are added to enable/disable tessellated geometry reading and writing:
- read.step.tessellated (On/Off/OnNoBRep) (On by default)
- write.step.tessellated (On/Off/OnNoBRep) (OnNoBRep by default)

OnNoBRep - tessellation is read/written only for entities for which there is no BRep representation.

Faces with poly triangulation are written in STEP as triangulated face entities with one coordinates list per face.
Only one poly triangulation per face (returned by BRep_Tool::Triangulation) is written to STEP.

3 years ago0032989: Data Exchange, RWGltf_CafReader - fill in metadata map from asset.extras
kgv [Wed, 25 May 2022 18:19:43 +0000 (21:19 +0300)]
0032989: Data Exchange, RWGltf_CafReader - fill in metadata map from asset.extras

3 years ago0032991: Visualization, TKOpenGl - OpenGl_Window::Resize() ignores window virtual...
kgv [Fri, 27 May 2022 22:04:31 +0000 (01:04 +0300)]
0032991: Visualization, TKOpenGl - OpenGl_Window::Resize() ignores window virtual flag on macOS

Added handling of Aspect_Window::IsVirtual() flag on macOS platform.

3 years ago0032990: Configuration - compilation errors since Emscripten 3.1.11 due to time_t...
kgv [Fri, 27 May 2022 06:56:50 +0000 (09:56 +0300)]
0032990: Configuration - compilation errors since Emscripten 3.1.11 due to time_t redefined long->int

Add std::is_same filter to IsEqual(time_t, time_t) definition.

3 years ago0032974: Configuration - update environment for VS2022 IR-2022-05-27
afokin [Wed, 25 May 2022 08:56:13 +0000 (11:56 +0300)]
0032974: Configuration - update environment for VS2022

removing a repeating condition in install.bat

add vc143 in .md files

3 years ago0032447: BRepOffsetAPI_MakePipeShell result in inaccurate shape when using -DT mode...
akaftasev [Wed, 11 May 2022 15:17:31 +0000 (18:17 +0300)]
0032447: BRepOffsetAPI_MakePipeShell result in inaccurate shape when using -DT mode and DT_ShapeDivide on the spine

Added new option '-C' with possibility to set value of Angular and linear tolerances to 'mksweep' command to correct input spine by merging smooth connected neighboring edges

3 years ago0025309: Modeling Algorithms - Check of shape validity for BOP takes too long
akaftasev [Wed, 18 May 2022 09:16:57 +0000 (12:16 +0300)]
0025309: Modeling Algorithms - Check of shape validity for BOP takes too long

Simplified condition to allow sampling for curve/surface data with depth == 0
Changed sorting method in MergeSolutions() method

3 years ago0032922: Data Exchange, STEP - The torus is stored incorrectly in STEP format
atereshi [Fri, 8 Apr 2022 11:16:01 +0000 (14:16 +0300)]
0032922: Data Exchange, STEP - The torus is stored incorrectly in STEP format

Problem: the complete surface of the torus is not stored correctly in STEP format due to the fact that the edges are not properly ordered.
Change: added a mode for reordering edges in the wire with simultaneous use of 2d and 3d information (ShapeAnalysis_WireOrder). The new mode is used for torus-like surfaces before saving to STEP format.
 Result: Torus correctly stored.

3 years ago0032978: Visualization - AIS_ViewController::PickPoint() includes objects invisible...
kgv [Sat, 21 May 2022 14:18:43 +0000 (17:18 +0300)]
0032978: Visualization - AIS_ViewController::PickPoint() includes objects invisible in current View

SelectMgr_ViewerSelector::TraverseSensitives() now takes into account object's view affinity.
AIS_InteractiveContext::moveTo() - dropped code SelectMgr_AndOrFilter::SetDisabledObjects()
as filtering is now done by selector itself.

ViewAffinity property has been moved to PrsMgr_PresentableObject for simplicity.
Removed redundant map Graphic3d_CView::HiddenObjects().

3 years ago0032973: Modeling Algorithms - Regression in BRepExtrema_DistShapeShape compared... IR-2022-05-20
ifv [Mon, 16 May 2022 08:37:40 +0000 (11:37 +0300)]
0032973: Modeling Algorithms - Regression in BRepExtrema_DistShapeShape compared with 7.5

BRepExtrema/BRepExtrema_ExtCF.cxx - set correct using BRepAdaptor_Curve in Extrema
tests/bugs/modalg_8/bug32973 - new test case added

3 years ago0026697: BRepFeat_MakePrism returns empty compound
mgerus [Wed, 18 May 2022 06:45:05 +0000 (09:45 +0300)]
0026697: BRepFeat_MakePrism returns empty compound

Add fix in direction of prism calculation

3 years ago0032976: Visualization - AIS_InteractiveContext::FitSelected() includes objects invis...
kgv [Mon, 16 May 2022 20:02:31 +0000 (23:02 +0300)]
0032976: Visualization - AIS_InteractiveContext::FitSelected() includes objects invisible in current View

3 years ago0032975: Visualization, TKOpenGl - do not blit inactive Subview
kgv [Mon, 16 May 2022 19:28:09 +0000 (22:28 +0300)]
0032975: Visualization, TKOpenGl - do not blit inactive Subview

3 years ago0032969: Coding - get rid of unused headers [IMeshData to PLib]
aml [Fri, 14 Jan 2022 15:56:30 +0000 (18:56 +0300)]
0032969: Coding - get rid of unused headers [IMeshData to PLib]

Removed unused exception classes OSD_Exception_FLT_DIVIDE_BY_ZERO, OSD_Exception_INT_DIVIDE_BY_ZERO, OSD_Exception_FLT_DENORMAL_OPERAND, OSD_Exception_FLT_INEXACT_RESULT, OSD_Exception_FLT_INVALID_OPERATION, OSD_Exception_FLT_OVERFLOW, OSD_Exception_FLT_STACK_CHECK, OSD_Exception_FLT_UNDERFLOW.

3 years ago0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has...
mgerus [Wed, 11 May 2022 13:08:55 +0000 (16:08 +0300)]
0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points

Add choosing the intersect point taking into account the tangentCross when prev UEdge and next UEdge has more than one intersect points;
Add exact correction of edge tolerance (it fix problems with edge tolerance on Linux);
Add exact check of edge tolerance in testcase

3 years ago0032970: Visualization, TKOpenGl - fix compilation on Linux: 'False' was not declared
kgv [Sat, 14 May 2022 22:11:06 +0000 (01:11 +0300)]
0032970: Visualization, TKOpenGl - fix compilation on Linux: 'False' was not declared

3 years ago0032942: Modeling Algorithms - Boolean operation Common has no result in specific... CR0-WEEK-18 IR-2022-05-06
ifv [Mon, 25 Apr 2022 15:14:18 +0000 (18:14 +0300)]
0032942: Modeling Algorithms - Boolean operation Common has no result in specific example

IntTools/IntTools_BeanFaceIntersector.cxx - calculation of deflection for surface bnd box is added
tests/bugs/modalg_8/bug32942,bug32943,bug32944,bug32945 - new test cases added

3 years ago0027081: BRepOffsetAPI_MakeOffsetShape fails on shapes with internal edges
abulyche [Sun, 17 Apr 2022 14:07:01 +0000 (17:07 +0300)]
0027081:  BRepOffsetAPI_MakeOffsetShape fails on shapes with internal edges
Added the test for this problem.
Added new draw command "mkoffsetshape".

3 years ago0032955: Draw Harness, ViewerTest - extend vcolorconvert command to print color in...
kgv [Sat, 30 Apr 2022 19:23:08 +0000 (22:23 +0300)]
0032955: Draw Harness, ViewerTest - extend vcolorconvert command to print color in hex format

3 years ago0032961: Coding - get rid of unused headers [IGESAppli to IGESToBRep]
aml [Fri, 14 Jan 2022 15:05:42 +0000 (18:05 +0300)]
0032961: Coding - get rid of unused headers [IGESAppli to IGESToBRep]

3 years ago0032908: Coding Rules - fix E0349 MSVC compilation error on VS2019/C++20
ddzama [Wed, 30 Mar 2022 08:40:11 +0000 (11:40 +0300)]
0032908: Coding Rules - fix E0349 MSVC compilation error on VS2019/C++20

Get rid of raw C strings in error code to avoid error 0349.
Use std::string instead.

3 years ago0032919: Coding Rules - suppress useless MSVC warning C26812 on VS2019/C++20 (prefer...
ddzama [Thu, 31 Mar 2022 13:18:19 +0000 (16:18 +0300)]
0032919: Coding Rules - suppress useless MSVC warning C26812 on VS2019/C++20 (prefer 'enum class' over 'enum')

CMake and genproj scripts have been updated to suppress this misleading warning that cannot be fixed without breaking existing API.

3 years ago0032958: Coding - problem compile OCCT on Debian80-64 and MacOS-x86_64 with debugging...
aml [Wed, 4 May 2022 08:11:00 +0000 (11:11 +0300)]
0032958: Coding - problem compile OCCT on Debian80-64 and MacOS-x86_64 with debugging mode

Add missing include.

3 years ago0032953: Coding - add missing references where applicable
aml [Fri, 29 Apr 2022 12:21:24 +0000 (15:21 +0300)]
0032953: Coding - add missing references where applicable

3 years ago0032959: Visualization, OpenVR - add Oculus Touch controller bindings
kgv [Wed, 4 May 2022 09:54:52 +0000 (12:54 +0300)]
0032959: Visualization, OpenVR - add Oculus Touch controller bindings

3 years ago0032920: Coding - fix checking of std::stringstream buffer size on VS2019/C++20 CR0-WEEK-17 IR-2022-04-29
ddzama [Mon, 4 Apr 2022 04:29:42 +0000 (07:29 +0300)]
0032920: Coding - fix checking of std::stringstream buffer size on VS2019/C++20

Use tellp() instead of in_avail() for testing non-empty std::stringstream state.

3 years ago0032951: Coding - get rid of unused headers [GeomConvert to IGESBasic]
aml [Fri, 14 Jan 2022 13:37:13 +0000 (16:37 +0300)]
0032951: Coding - get rid of unused headers [GeomConvert to IGESBasic]

3 years ago0032917: Coding Rules - eliminate MSVS warning C26440 on VS2019/C++20 (If your functi...
ddzama [Thu, 31 Mar 2022 06:21:08 +0000 (09:21 +0300)]
0032917: Coding Rules - eliminate MSVS warning C26440 on VS2019/C++20 (If your function may not throw, declare it noexcept)

Microsoft Visual Studio Professional 2019
Version 16.11.11
std=c++20

Get rid of warning C26440: "If your function may not throw, declare it noexcept"

"If code is not supposed to cause any exceptions,
it should be marked as such by using the 'noexcept' specifier.
This would help to simplify error handling on the client code side,
as well as enable compiler to do additional optimizations."

3 years ago0032903: Coding Rules - eliminate MSVC warning C26451 on VS2019/C++20
ddzama [Tue, 29 Mar 2022 13:32:46 +0000 (16:32 +0300)]
0032903: Coding Rules - eliminate MSVC warning C26451 on VS2019/C++20

Put explicit type casting to avoid:
Warning C26451 Arithmetic overflow: Using operator '-' on a 4 byte
value and then casting the result to a 8 byte value.
Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).

3 years ago0032907: Coding Rules - eliminate MSVC warning C5054 on VS2019/C++20 (operator &...
ddzama [Wed, 30 Mar 2022 07:06:01 +0000 (10:06 +0300)]
0032907: Coding Rules - eliminate MSVC warning C5054 on VS2019/C++20 (operator &,|: deprecated between enumerations of different types)

operator `&`,`|`: deprecated between enumerations of different types

3 years ago0032914: Data Exchange - Some parts of compound are lost while writing STEP in nonman...
snn [Wed, 20 Apr 2022 11:56:21 +0000 (14:56 +0300)]
0032914: Data Exchange - Some parts of compound are lost while writing STEP in nonmanifold mode

Code related to supporting of single SDR for a non-manifold group, which prevents writing all translation results except the first one, is removed.
SDRs with null used representation object are excluded from writing.

3 years ago0028866: Modeling Data - Problem with GeomAPI_ProjectPointOnSurf IR-2022-04-22
ifv [Sun, 17 Apr 2022 12:38:34 +0000 (15:38 +0300)]
0028866: Modeling Data - Problem with GeomAPI_ProjectPointOnSurf

Extrema/Extrema_GenExtPS.cxx - adaptive setting of sample points is implemented
bugs/moddata_3/bug28866 - test case added

3 years ago0032864: Modeling Algorithms - Normal projection of a wire on a cylinder produces...
jgv [Thu, 21 Apr 2022 07:02:51 +0000 (10:02 +0300)]
0032864: Modeling Algorithms - Normal projection of a wire on a cylinder produces wrong result

Minor correction in method BRepAlgo_NormalProjection::Build: correct mixed up first and last parameters of the projected curve.

3 years ago0032906: Coding Rules - get rid of std::iterator inheritance (deprecated since C...
ddzama [Wed, 30 Mar 2022 06:24:49 +0000 (09:24 +0300)]
0032906: Coding Rules - get rid of std::iterator inheritance (deprecated since C++17)

3 years ago0032721: Modeling Algorithms - BOP wrong results on a cone and an extrusion
jgv [Wed, 30 Mar 2022 01:28:02 +0000 (04:28 +0300)]
0032721: Modeling Algorithms - BOP wrong results on a cone and an extrusion

1. Modify method IntPatch_ALineToWLine::MakeWLine: add correction of end points of each line on 2 surfaces if an end point is a pole on a surface.
2. Modify method IntPatch_WLine::ComputeVertexParameters: adjust a point on curve to corresponding vertex the following way: set 3D point as the point of the vertex and 2D points as the points of the point on curve.

3 years ago0032882: Modeling Data - Extrema curve/curve cannot find all solutions
ifv [Mon, 21 Mar 2022 13:55:55 +0000 (16:55 +0300)]
0032882: Modeling Data - Extrema curve/curve cannot find all solutions

Extrema/Extrema_GenExtCC.gxx - estimation of Lipchitz constant is improved
Extrema_GlobOptFuncCC.cxx - function value is changed

LocOpe/LocOpe_WiresOnShape.cxx - small correction to fix regression

lowalgos/extcc/bug32882 - new test case is added

some test were updated according new behavior of extrema algo

3 years ago0032935: Visualization, TKOpenGles - use size window within OpenGl_Window::init()
kgv [Mon, 18 Apr 2022 01:27:35 +0000 (04:27 +0300)]
0032935: Visualization, TKOpenGles - use size window within OpenGl_Window::init()

3 years ago0031437: Modeling Data - Offset surface throws exception when trying to evaluate...
azv [Sat, 16 Apr 2022 19:29:47 +0000 (22:29 +0300)]
0031437: Modeling Data - Offset surface throws exception when trying to evaluate at singularity point

Add test case to prove the exception is avoided.

3 years ago0032886: Visualization, V3d_View - introduce interface for creating a subview CR0-WEEK-15 IR-2022-04-15
kgv [Mon, 11 Apr 2022 17:00:39 +0000 (20:00 +0300)]
0032886: Visualization, V3d_View - introduce interface for creating a subview

V3d_View/Graphic3d_CView pair has been extended to define subview within the other V3d_View instance.
The initialization is done in form of V3d_View::SetWindow() taking parent V3d_View instance on input.

Subview definition includes dimensions defined as a fraction of a parent view and offset from a corner.
This scheme allows splitting window into several subviews automatically occupying entire viewport,
like splitting window into two vertial subviews (100%x50% + 100%x50%),
three horizontal subviews (33%x100% + 30%x100% + 30%x100%),
1 + 2 stacked subviews (50%x100% + 50%x50% + 50%x50%),
as well as thumbnail-alike subviews displayed on top of another larger view.

OpenGl_View::Redraw() blits content of subviews into the window within immediate redraw step.

AIS_ViewController::FlushViewEvents() has been extended
to re-calculate mouse input into local subview coordinates.
AIS_ViewController::handleViewRedraw() first redraws subviews and then parent views.
Introduced new callback AIS_ViewController::OnSubviewChanged()
to switch input focus to another subview on mouse click,
implemented by ViewerTest_EventManager (has to be done at application level).

vinit command has been extended with parameters -subview and -parent to create a subview.
In addition, view dimension arguments now can be defined as a fraction of screen size instead of pixels.

3 years ago0029435: Data Exchange - Exporting wires consisting of more than one edge results...
atychini [Fri, 4 Feb 2022 16:14:16 +0000 (19:14 +0300)]
0029435: Data Exchange - Exporting wires consisting of more than one edge results in loss of color data in IGES

Colors wasn't read correctly because of incorrect curve transfers in IGESToBRep_TopoCurve.cxx
I added new calls to SetShapeResult() at the necessary places.
Also in the IGESCAFControl_Writer.cxx I added new condition because of the possible NULL exception.

3 years ago0032924: Configuration, CMake - export INTERFACE_INCLUDE_DIRECTORIES within targets
kgv [Fri, 8 Apr 2022 18:11:59 +0000 (21:11 +0300)]
0032924: Configuration, CMake - export INTERFACE_INCLUDE_DIRECTORIES within targets

Add 'INCLUDES' property within INSTALL targets.

3 years ago0032842: Modeling Data - a regression in conversion of a face to bspline
ifv [Sun, 10 Apr 2022 13:56:46 +0000 (16:56 +0300)]
0032842: Modeling Data - a regression in conversion of a face to bspline

GeomConvert/GeomConvert_1.cxx - forbid using CheckAndSegment if trim is out of base period when converting
                                trimmed torus

tests/bugs/moddata_3/bug32842 - test case added

3 years ago0032926: Coding, StdPrs_ToolTriangulatedShape::Normal() - range of "for" not correspo...
kgv [Sat, 9 Apr 2022 12:04:23 +0000 (15:04 +0300)]
0032926: Coding, StdPrs_ToolTriangulatedShape::Normal() - range of "for" not correspond to the NCollection index which run in "for"

Obsolete method has been removed.

3 years ago0032909: Coding Rules - replace (removed from C++17) `std::random_shuffle` with ... CR0-WEEK-14 IR-2022-04-08
ddzama [Wed, 30 Mar 2022 09:30:01 +0000 (12:30 +0300)]
0032909: Coding Rules - replace (removed from C++17) `std::random_shuffle` with `std::shuffle` for random permutation algorithm

Since C++17 the accessible version of permutation function left the function:

template< class RandomIt, class URBG >
void shuffle( RandomIt first, RandomIt last, URBG&& g );

See details and example of use: https://en.cppreference.com/w/cpp/algorithm/random_shuffle

3 years ago0032918: Coding Rules - suppress MSVS warnings from 3rdparty `rapidjson` on VS2019...
ddzama [Thu, 31 Mar 2022 07:46:02 +0000 (10:46 +0300)]
0032918: Coding Rules - suppress MSVS warnings from 3rdparty `rapidjson` on VS2019/C++20

Microsoft Visual Studio Professional 2019
Version 16.11.11
std=c++20

Disable warning messages, occures in rapidjson library.

3 years ago0032916: Coding Rules - eliminate MSVS warning C26451 on VS2019/C++20 (Arithmetic...
ddzama [Thu, 31 Mar 2022 06:19:35 +0000 (09:19 +0300)]
0032916: Coding Rules - eliminate MSVS warning C26451 on VS2019/C++20 (Arithmetic overflow: Using operator '+' on a 4 byte value...)

Microsoft Visual Studio Professional 2019
Version 16.11.11
std=c++20

Get rid of `Warning C26451 Arithmetic overflow: Using operator '+' on a 4 byte value
and then casting the result to a 8 byte value.
Cast the value to the wider type before calling operator '+' to avoid overflow (io.2)`

3 years ago0032910: Coding Rules - fix uninitialized class fields in constructor initialization...
ddzama [Thu, 31 Mar 2022 04:26:39 +0000 (07:26 +0300)]
0032910: Coding Rules - fix uninitialized class fields in constructor initialization block reported by VS2019/C++20

Microsoft Visual Studio Professional 2019
Version 16.11.11
std=c++20

Get rid of warnings about uninitialized class fields in constructor initialization block.

3 years ago0032874: IsParallel() method of Extrema_ExtCC does not give same results in OCC 7...
azv [Thu, 7 Apr 2022 11:28:03 +0000 (14:28 +0300)]
0032874: IsParallel() method of Extrema_ExtCC does not give same results in OCC 7.6.0 vs OCC 7.5.0

Use precision depending on radii of participating circles.

3 years ago0032870: Tests - bugs/caf/bug31918_1 is unstable
mpv [Wed, 6 Apr 2022 08:08:20 +0000 (11:08 +0300)]
0032870: Tests - bugs/caf/bug31918_1 is unstable

# Make the compared values more stable.

3 years ago0032809: Sweep algorithm with Round Corner mode failed
azv [Wed, 6 Apr 2022 19:49:01 +0000 (22:49 +0300)]
0032809: Sweep algorithm with Round Corner mode failed

Fix indentation within GeomFill_Sweep.cxx

0032809: Sweep algorithm with Round Corner mode failed

Add fix what repair shipping at corner after circle edge at path
Add fix test for bug 24909_3

3 years ago0032912: Visualization - crash when displaying an OBJ file with missing texture file
kgv [Tue, 5 Apr 2022 22:26:00 +0000 (01:26 +0300)]
0032912: Visualization - crash when displaying an OBJ file with missing texture file

Fix NULL dereference within Graphic3d_TextureRoot::convertToCompatible() due to wrong order of checks.

3 years ago0030160: DBRep_IsoBuilder builds wrong isolines for planar faces
azv [Tue, 5 Apr 2022 05:55:29 +0000 (08:55 +0300)]
0030160: DBRep_IsoBuilder builds wrong isolines for planar faces

Add test case

3 years ago0024657: 2dintersect returns different number of intersect points in curve intersecti...
AndreyLA [Thu, 24 Mar 2022 14:36:11 +0000 (17:36 +0300)]
0024657: 2dintersect returns different number of intersect points in curve intersecting the polygon points is never replaced by line

Test for 2d intersection is added

3 years ago0031361: Modeling algorithms - An exception arise when building tube
mgerus [Mon, 4 Apr 2022 07:00:24 +0000 (10:00 +0300)]
0031361: Modeling algorithms - An exception arise when building tube

* Add status flag to GeomFill_Pipe
* Add myIsPerform flag to GeomFill_Pipe
* Add checking vectors in GeomFill_CorrectedFrenet
* Add boolean return to SetCurve virtual methods
* Add test case

3 years ago0032861: Visualization - Separate rotate and move the object behavior in AIS_ViewCont...
sshutina [Mon, 4 Apr 2022 19:53:18 +0000 (22:53 +0300)]
0032861: Visualization - Separate rotate and move the object behavior in AIS_ViewController

Added the flag in Dragging structure that defines perform dragging (ToMove).

3 years ago0031661: Modeling Data - Exception when projecting parabola or hyperbola to plane
ifv [Thu, 3 Mar 2022 12:05:23 +0000 (15:05 +0300)]
0031661: Modeling Data - Exception when projecting parabola or hyperbola to plane

ProjLib/ProjLib_ProjectOnPlane.cxx - formatting

0031661: Modeling Data - Algorithm crashes when projecting parabola or hyperbola to plane

ProjLib/ProjLib_ProjectOnPlane.cxx - building of analytical parabola and hyperbola is added
bugs/moddata_3/bug31661_* - new test cases are added

3 years ago0031009: Modeling Algorithms - leak reported by Clang address sanitizer in IntCurvesF...
AndreyLA [Tue, 8 Feb 2022 15:53:18 +0000 (18:53 +0300)]
0031009: Modeling Algorithms - leak reported by Clang address sanitizer in IntCurvesFace_ShapeIntersector

Refactor IntCurvesFace_ShapeIntersector. Use handles and std::unique_ptr instead of raw pointers.

3 years ago0032897: Tests - include elapsed time into test log IR-2022-04-01
kgv [Wed, 30 Mar 2022 18:38:14 +0000 (21:38 +0300)]
0032897: Tests - include elapsed time into test log

Added "ELAPSED TIME" to test case log.
Improved syntax of chrono/dchrono command:
added -elapsed, -userCPU, -sysCPU options printing individual values in seconds.

OSD_Chronometer::IsThisThreadOnly() - added missing accessors to the property.

3 years ago0029745: Modeling Data - GeomAdaptor_Surface::VIntervals fails on periodic surfaces
abulyche [Tue, 14 Dec 2021 22:58:57 +0000 (01:58 +0300)]
0029745: Modeling Data - GeomAdaptor_Surface::VIntervals fails on periodic surfaces
Fixed GeomAdaptor_Curve::LocalContinuity() for periodic curves.
Fixed GeomAdaptor_Curve::NbIntervals() for periodic curves.
Fixed GeomAdaptor_Curve::Intervals() for periodic curves.
Improved definition of length in tests.
Update Geom2dAdaptor_Curve to the same behavior.

3 years ago0032863: Cone surface returns wrong v derivative IR-2022-03-25
azv [Thu, 24 Mar 2022 19:21:06 +0000 (22:21 +0300)]
0032863: Cone surface returns wrong v derivative

* Fix error on computing V first derivative on a cone (take into account the slope of the conical generatrix).
* Add DRAW command 'sderivative' to compute certain derivative on a surface.

3 years ago0024772: Modeling Algorithms - Intersection of cylinder and cone produces incorrect...
knosulko [Wed, 16 Mar 2022 10:13:15 +0000 (13:13 +0300)]
0024772: Modeling Algorithms - Intersection of cylinder and cone produces incorrect results

GeomInt/GeomInt_IntSS.cxx - handle flat cone case
IntPatch/IntPatch_Intersection.hxx, IntPatch/IntPatch_Intersection.cxx - method for preparing surfaces is added
bugs/lowalgos/intss/bug24772 - test case is changed according new behavior

3 years ago0032874: IsParallel() method of Extrema_ExtCC does not give same results in OCC 7...
azv [Fri, 18 Mar 2022 20:46:44 +0000 (23:46 +0300)]
0032874: IsParallel() method of Extrema_ExtCC does not give same results in OCC 7.6.0 vs OCC 7.5.0

Improve tolerance criteria to check values of extremas for equality: use multiplier, which depends on the value, instead of magic number

3 years ago0023820: Wrong result of projection algorithm when a polygon geometry is projected...
AndreiLA [Thu, 17 Mar 2022 12:10:01 +0000 (15:10 +0300)]
0023820: Wrong result of projection algorithm when a polygon geometry is projected on a set of multiple faces

The tests are added to verify the correctness of the projection algorithm's work in two cases.

3 years ago0032442: Application Framework - Problems of testing on MacOS arm64 platform IR-2022-03-18
mpv [Thu, 10 Mar 2022 08:57:41 +0000 (11:57 +0300)]
0032442: Application Framework - Problems of testing on MacOS arm64 platform

Fixed the problem of reading XML files on MacOS. 'errno' was not reseted
even the 'strtol' function produced a good value. So, now it is erased
forcibly before the call.

3 years ago0032817: Data Exchange - Step export - writing untrimmed Curve
atychini [Mon, 7 Feb 2022 12:57:38 +0000 (15:57 +0300)]
0032817: Data Exchange - Step export - writing untrimmed Curve

Incorrect curve handling.
If curve doesn't have trims and vertexes, we handle it such as trimmed curve, but it should be a simple curve.
Curves with only one vertex and one trim should handle by another way, such as a curve that has trims but doesn't have vertexes.
So I added conditions which handles these cases

3 years ago0032066: Modeling Algorithms - Incorrect result of Boolean CUT operation
azv [Fri, 19 Feb 2021 19:34:56 +0000 (22:34 +0300)]
0032066: Modeling Algorithms - Incorrect result of Boolean CUT operation

Do not limit the normalization factor of the highly anisotropic parametric space when filtering start points in the algorithm of walking line construction.
Additionally check the knots are in the increasing orders when merging two B-spline curves

3 years ago0032870: Tests - bugs/caf/bug31918_1 is unstable
mpv [Mon, 14 Mar 2022 15:03:59 +0000 (18:03 +0300)]
0032870: Tests - bugs/caf/bug31918_1 is unstable

Improved the test stability: created 10 iterations of measurements and take the minimum to
minimize the affect of other processes and threads; increased the compare range of
the quarter and the whole of the document load.

3 years ago0032719: Modelling Algorithms - UnifySameDomain result has incorrect triangulation
jgv [Sat, 12 Mar 2022 19:35:55 +0000 (22:35 +0300)]
0032719: Modelling Algorithms - UnifySameDomain result has incorrect triangulation

Correct method ShapeUpgrade_UnifySameDomain::UnionPCurves: reparametrize unified pcurves to fit the new range of 3D-curve.

3 years ago0032866: Visualization, TKOpenGles - FitAll() is broken when performance counters... IR-2022-03-11
kgv [Sun, 6 Mar 2022 23:13:22 +0000 (02:13 +0300)]
0032866: Visualization, TKOpenGles - FitAll() is broken when performance counters are displayed

OpenGl_View::MinMaxValues() - added missing theToIncludeAuxiliary check.

3 years ago0032796: Modeling Data - Calculation of distance between two circles crashes IR-2022-03-05
vro [Tue, 22 Feb 2022 14:00:09 +0000 (17:00 +0300)]
0032796: Modeling Data - Calculation of distance between two circles crashes

Modified:
- Extrema_ExtCC.cxx, the method PrepareParallelResult() - angular tolerance is increased.

Added:
- A test: lowalgos extcc bug32796

3 years ago0032862: Visualization, Graphic3d_TextureMap - add 3D texture definition
kgv [Wed, 2 Mar 2022 12:21:22 +0000 (15:21 +0300)]
0032862: Visualization, Graphic3d_TextureMap - add 3D texture definition

Image_PixMap has been extended to support definition of 3D bitmap (as an array of 2D slices).

Graphic3d_TypeOfTexture enumeration values have been renamed to include full enum prefix.
Added Graphic3d_TypeOfTexture_3D redirecting to GL_TEXTURE_3D.
OpenGl_Texture::Init() has been extended to allow initialization of 3D texture.

Graphic3d_Texture2Dmanual merged into Graphic3d_Texture2D and marked as deprecated alias.
Graphic3d_TOT_2D_MIPMAP has been deprecated in favor of dedicated Graphic3d_TextureRoot::SetMipMaps().

Added Graphic3d_Texture3D class.
vtexture - added argument -3d for uploading 3D texture.

3 years ago0032837: Documentation, Geom_Surface - add references to GeomLib::NormEstim() for...
kgv [Wed, 2 Mar 2022 05:58:10 +0000 (08:58 +0300)]
0032837: Documentation, Geom_Surface - add references to GeomLib::NormEstim() for Normal computations

References to GeomLib::NormEstim() have been put to Geom_Surface, Adaptor3d_Surface and BRepAdaptor_Surface.
Improved documentation of GeomLib::NormEstim().

3 years ago0032841: Visualization - add 16-bit grayscale pixel format to Image_PixMap
kgv [Tue, 1 Mar 2022 19:34:31 +0000 (22:34 +0300)]
0032841: Visualization - add 16-bit grayscale pixel format to Image_PixMap

Added Image_Format_Gray16 pixel format definition, which could be uploaded into GL_R16 texture.
Added Image_Format_GrayF_half mapped to GL_R16F texture.

3 years ago0032860: Coding Rules, Extrema_GenExtPS - add exported destructor
kgv [Wed, 2 Mar 2022 05:18:29 +0000 (08:18 +0300)]
0032860: Coding Rules, Extrema_GenExtPS - add exported destructor

Added eplicit destructors to classes Extrema_GenExtCS, Extrema_GenExtPS and Extrema_GenExtSS.

3 years ago0032856: Configuration, CMake - SONAME should include minor version in addition to...
kgv [Sat, 26 Feb 2022 16:29:44 +0000 (19:29 +0300)]
0032856: Configuration, CMake - SONAME should include minor version in addition to major to reflect ABI compatibility

Added option BUILD_SOVERSION_NUMBERS to manage SOVERSION length.
Default option value is set to 2 (major.minor) instead of previously used 1 (major),
excluding Android/Emscripten/Windows platforms that use 0 by default.

3 years ago0032849: Modeling Algorithms - Intersection algorithm returns incomplete result.
ifv [Tue, 1 Feb 2022 09:17:52 +0000 (12:17 +0300)]
0032849: Modeling Algorithms - Intersection algorithm returns incomplete result.

GeomInt/GeomInt_IntSS.cxx, IntTools/IntTools_FaceFace.cxx - setting deflection 0.01
for case of two bspline surfaces
IntPolyh/IntPolyh_Intersection.cxx, IntPolyh/IntPolyh_Intersection.hxx - status IsParallel is added

BndLib/BndLib_Add3dCurve.cxx, IntTools/IntTools_TopolTool.cxx - fix small bugs

Correction of test scripts according to current behavior of algorithms

lowalgos/intss/bug32849 - test case added