]> OCCT Git - occt.git/log
occt.git
2 years ago0033006: Modelling Algorithms - UnifySameDomain raises exception IR-2022-07-29
jgv [Sat, 23 Jul 2022 14:22:30 +0000 (17:22 +0300)]
0033006: Modelling Algorithms - UnifySameDomain raises exception

Correct processing cases where a group of faces lies on U-periodic and V-periodic (torus-like) surface.

Add comments according to the remarks

2 years ago0033080: Wrong projection point from ShapeAnalysis_Surface
jgv [Thu, 28 Jul 2022 13:11:45 +0000 (16:11 +0300)]
0033080: Wrong projection point from ShapeAnalysis_Surface

Correct Draw command "projface" so that it really finds only projection points belonging to the face.

2 years ago0033068: Draw Harness, XDEDRAW - improve XGetProperties command to work with all...
dpasukhi [Mon, 20 Jun 2022 13:28:50 +0000 (16:28 +0300)]
0033068: Draw Harness, XDEDRAW - improve XGetProperties command to work with all document labels

Upgrade DRAW function XGetProperties to work with all document labels or sequence of labels

2 years ago0033074: Visualization, TKOpenGl - PBR shader compilation error on Mesa OpenGL 3... IR-2022-07-22
kgv [Fri, 22 Jul 2022 07:55:28 +0000 (10:55 +0300)]
0033074: Visualization, TKOpenGl - PBR shader compilation error on Mesa OpenGL 3.10033074

Graphic3d_ShaderManager::getPBREnvBakingProgram() - fix setting Graphic3d_ShaderProgram::SetPBR()
before defining GLSL version via defaultGlslVersion() that relies on this property.

2 years ago0033073: Coding Rules, RWGltf_CafWriter - suppress CLang warning coming from Draco...
kgv [Fri, 22 Jul 2022 06:53:33 +0000 (09:53 +0300)]
0033073: Coding Rules, RWGltf_CafWriter - suppress CLang warning coming from Draco library

2 years ago0033072: Configuration - ViewerTest_EventManager.cxx compilation error due to missing...
kgv [Thu, 21 Jul 2022 20:30:00 +0000 (23:30 +0300)]
0033072: Configuration - ViewerTest_EventManager.cxx compilation error due to missing header on Emscripten

Added missing `#include <Message.hxx>`.

2 years ago0024049: Modeling Algorithms - crash in BRepOffsetAPI_MakePipe
abulyche [Tue, 5 Jul 2022 23:14:57 +0000 (02:14 +0300)]
0024049: Modeling Algorithms - crash in BRepOffsetAPI_MakePipe

Added the test for this ticket.

2 years ago0033060: [Regression to 7.4.0] Mesh - Sub-precisional links provoke failure on face
oan [Fri, 8 Jul 2022 10:49:11 +0000 (13:49 +0300)]
0033060: [Regression to 7.4.0] Mesh - Sub-precisional links provoke failure on face

Slightly increase exact resolution so to cover links with approximate length equal to resolution itself on sub-resolution differences.

2 years ago0032940: Canonical Recognition: Some surfaces are not recognized as cylindrical surfaces
ifv [Mon, 11 Jul 2022 08:09:33 +0000 (11:09 +0300)]
0032940: Canonical Recognition: Some surfaces are not recognized as cylindrical surfaces

New method for recognizing cylindrical surfaces based on analysis Gaussian field of initial surface is added  in
class GeomConvert_SurfToAnaSurf

3 years ago0033055: Data Exchange, RWPly_Provider - remove dependency from BRepLib_PointCloudShape
atychini [Mon, 11 Jul 2022 13:07:23 +0000 (16:07 +0300)]
0033055: Data Exchange, RWPly_Provider - remove dependency from BRepLib_PointCloudShape

Removing PointCloud writing feature from the RWPly_Provider class.
Getting rid of Pointcloud-related parameters in the RWPly_ConfigurationNode.

3 years ago0033066: Visualization - null pointer dereference in MeshVS_ElementalColorPrsBuilder... CR0-WEEK-28 IR-2022-07-15
kgv [Fri, 15 Jul 2022 13:06:02 +0000 (16:06 +0300)]
0033066: Visualization - null pointer dereference in MeshVS_ElementalColorPrsBuilder::Build() function

Added missing Boolean flag check.

3 years ago0031080: Data Exchange, STL reader - improve API for reading multi-domain STL files
ona [Fri, 1 Jul 2022 08:30:01 +0000 (11:30 +0300)]
0031080: Data Exchange, STL reader - improve API for reading multi-domain STL files

reading of multidomain stl files into separate Poly_Triangulation objects

3 years ago0031479: Modeling Algorithms - exception on geometry transformation of triangulation... IR-2022-07-08
azv [Fri, 1 Jul 2022 13:46:55 +0000 (16:46 +0300)]
0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface)

* Avoid crash in BRepBuilderAPI_GTransform algorithm. The crash in BRepBuilder_Transform has been solved by 0032716.
* Move copying modifier to BRepTools package.
* Implement copying of triangulation in BRepTools_NurbsConvertModification.
* Implement transformation of a triangulation in BRepTools_GTrsfModification.
* Update test case bugs/mesh/bug22778 to clean the triangulation after conversion to NURBS (reproduce the same behavior as before).

3 years ago0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation
abulyche [Wed, 20 Apr 2022 14:14:07 +0000 (17:14 +0300)]
0032716: Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation

* Implement methods for copying tessellation to BRepTools_TrsfModification to keep the triangulation during transformation.
* Add tests to reproduce the problem.

3 years ago0033049: Command 'tclean -geom' does not remove all geometric objects from the shape
azv [Fri, 1 Jul 2022 12:59:40 +0000 (15:59 +0300)]
0033049: Command 'tclean -geom' does not remove all geometric objects from the shape

Remove unused P-curves when cleaning the geometry

3 years ago0032995: Modeling algorithms - Interface for checking canonical geometry
ifv [Sun, 15 May 2022 05:04:58 +0000 (08:04 +0300)]
0032995: Modeling algorithms - Interface for checking canonical geometry

GeomConvert_CurveToAnaCurve, GeomConvert_SurfToAnaSurf - geometrical algorithms
for converting geometrical curve and surfaces in canonical geometry with given tolerance.

ShapeAnalysis_CanonicalRecognition - interface for checking canonical geometry.

3 years ago0032952: Coding Rules, Graphic3d_DisplayPriority - rename inconsistent Below2/Above1...
kgv [Wed, 6 Jul 2022 19:12:52 +0000 (22:12 +0300)]
0032952: Coding Rules, Graphic3d_DisplayPriority - rename inconsistent Below2/Above1 enties

Below/Below2/Below3 triplet has been renamed to Below/Below1/Below2
for consistency with Above/Above1/Above2

3 years ago0033056: Visualization - add front face culling option
kgv [Wed, 6 Jul 2022 20:39:14 +0000 (23:39 +0300)]
0033056: Visualization - add front face culling option

Added Graphic3d_TypeOfBackfacingModel_FrontCulled enumeration value.
OpenGl_Context::SetFaceCulling() now supports GL_FRONT in addition to GL_BACK.

Added -faceCulling option to vaspects Draw command.

3 years ago0033046: Modeling algorithms - improve performance of per-facet shape construction
aml [Thu, 30 Jun 2022 08:47:41 +0000 (11:47 +0300)]
0033046: Modeling algorithms - improve performance of per-facet shape construction

Add new class (BRepBuilderAPI_MakeShapeOnMesh) to reconstruct shape from triangulation on per-facet basis.

3 years ago0028243: Bad result of the canonical recognition
ifv [Tue, 5 Jul 2022 14:30:35 +0000 (17:30 +0300)]
0028243: Bad result of the canonical recognition

LProp/LProp_CLProps.gxx - minor modification to avoid floating overflow because of multiplication of large values

3 years ago0033054: Configuration - link errors due to missing references to new TKXDE toolkit
kgv [Wed, 6 Jul 2022 18:32:46 +0000 (21:32 +0300)]
0033054: Configuration - link errors due to missing references to new TKXDE toolkit

src/OS/DataExchange.tcl - added missing new toolkits.
TKRWMesh - added missing reference to TKTopAlgo (for using BRepLib_PointCloudShape).
Removed redundant dependency from TKBinXCAF.
DRAWEXE - added missing references for a static build.

THE_CONFIGURATION_SCOPE definition has been corrected to postpoine calling constructor till the first variable usage.
Fixed compiler warning at SelectMgr_Frustum<3>::DumpJson() due to misleading Standard_EXPORT for an inline template method definition.

3 years ago0033048: Foundation Classes - math_ComputeKronrodPointsAndWeights indexation goes...
aml [Mon, 4 Jul 2022 09:41:15 +0000 (12:41 +0300)]
0033048: Foundation Classes - math_ComputeKronrodPointsAndWeights indexation goes beyond the limit

Add test and explanatory comment.

3 years ago0032867: Data Exchange - Implement Draco compression for writing glTF
ichesnok [Tue, 29 Mar 2022 14:02:02 +0000 (17:02 +0300)]
0032867: Data Exchange - Implement Draco compression for writing glTF

Draco compression added in RWGltf_CafWriter class.

3 years ago0033011: Data Exchange - Backward compatibility XBF format
dpasukhi [Tue, 28 Jun 2022 13:10:13 +0000 (16:10 +0300)]
0033011: Data Exchange - Backward compatibility XBF format

Fixed problem with moving the attribute position.
Made the same positions as version 7.5 with adding to the end.

3 years ago0029854: XCAF GD&T: Clear contents of reserved labels only IR-2022-07-01
ona [Mon, 27 Jun 2022 14:12:11 +0000 (17:12 +0300)]
0029854: XCAF GD&T: Clear contents of reserved labels only

Clear attributes from reserved child labels only

3 years ago0029415: Data Exchange - Step reader cannot read the surfaces of the main body of...
ona [Wed, 29 Jun 2022 07:14:53 +0000 (10:14 +0300)]
0029415: Data Exchange - Step reader cannot read the surfaces of the main body of the shape

Test for model reading check is added

3 years ago0033040: Coding - get rid of unused headers [Storage to TopOpeBRepTool]
aml [Mon, 27 Jun 2022 16:20:41 +0000 (19:20 +0300)]
0033040: Coding - get rid of unused headers [Storage to TopOpeBRepTool]

3 years ago0030398: Modeling Algorithms - thrusection produces twisted solid
mgerus [Wed, 29 Jun 2022 06:27:09 +0000 (09:27 +0300)]
0030398: Modeling Algorithms - thrusection produces twisted solid

Change FirstBary to PrevBary to correct Offset calculation relative prev wire instead of first wire

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.