5 months ago0027919: Visualization - support multiple transformation persistence groups within... IR-2021-07-23 WEEK-29
nds [Mon, 19 Jul 2021 10:31:05 +0000 (13:31 +0300)]
0027919: Visualization - support multiple transformation persistence groups within single presentation

Added transform persistence property to Graphic3d_Group and Select3D_SensitiveEntity.
SelectMgr_ViewerSelector, Graphic3d_Layer and OpenGl_Structure have been updated
to process per-group transform persistence within picking, ZFit and rendering.

Added zoomable state to Prs3d_ArrowAspect supported by PrsDim_Dimension.

Added gp_GTrsf::SetMat4(), opposite to gp_GTrsf::GetMat4().

5 months ago0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultF...
mkrylova [Wed, 14 Jul 2021 12:06:35 +0000 (15:06 +0300)]
0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()

- replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()

5 months ago0027814: Parallelize BRepCheck_Analyzer
asuraven [Mon, 21 Jun 2021 16:15:09 +0000 (19:15 +0300)]
0027814: Parallelize BRepCheck_Analyzer

Change BRepCheck_Analyzer::Perform algorithm from recursion to 'for' loop
Add parallelization to BRepCheck_Analyzer::Perform
Add '-parallel' option to checkshape command to use parallelization. Default mode is single-thread.

mutex as Handle

5 months ago0032471: Mesh - Deflection of the triangulation is not recomputed for planar face
oan [Wed, 21 Jul 2021 11:12:35 +0000 (14:12 +0300)]
0032471: Mesh - Deflection of the triangulation is not recomputed for planar face

Method EstimateDeflection has been added to BRepLib in order to check and update value of deflection provided by Poly_Triangulation;
Introduction of Poly_TriangulationParameters intended to keep info about initial parameters of mesh stored by Poly_Triangulation;
BRepMesh stores user-specified parameters to Poly_Triangulation via Poly_TriangulationParameters;
Prefer initial parameters of mesh generator stored in Poly_Triangulation during check of mesh consistency.

5 months ago0032183: Visualization - implement AIS_LightSource::ProcessDragging() for rotating...
mkrylova [Fri, 26 Mar 2021 09:31:22 +0000 (12:31 +0300)]
0032183: Visualization - implement AIS_LightSource::ProcessDragging() for rotating directional light

- Added sensitive sphere for a light source
- Implemented AIS_LightSource::ProcessDragging() interface for rotating directional light source
- Added possibility to turn on/off directional light source dragging
- Added test

5 months ago0032329: Modeling Algorithms - Refactoring of the BRepOffset_MakeOffset_1.cxx to...
emv [Mon, 12 Jul 2021 11:27:01 +0000 (14:27 +0300)]
0032329: Modeling Algorithms - Refactoring of the BRepOffset_MakeOffset_1.cxx to decrease number of static methods

Refactoring of the BRepOffset_MakeOffset_1.cxx - Introduce local class BRepOffset_BuildOffsetFaces to compute splits of offset faces.

Change of tests is caused by the correction of the misprint in the code (incorrect input parameter for CheckEdgesCreatedByVertex method).

6 months ago0032479: Application Framework - unnecessary API break within TDocStd_Application... IR-2021-07-16 WEEK-28
kgv [Wed, 14 Jul 2021 08:31:16 +0000 (11:31 +0300)]
0032479: Application Framework - unnecessary API break within TDocStd_Application::Open()

Added aliases to Open() without theFilter argument for compatibility with old API.

6 months ago0032424: [Regression] Mesh - Slow triangulation of a simple shape.
oan [Thu, 8 Jul 2021 10:07:05 +0000 (13:07 +0300)]
0032424: [Regression] Mesh - Slow triangulation of a simple shape.

Check links produced by splitting of an initial link by the middle point for MinSize requirement.

6 months ago0032121: Draw Harness, ViewerTest - implement -reset option for vlight command
kgv [Fri, 9 Jul 2021 20:22:29 +0000 (23:22 +0300)]
0032121: Draw Harness, ViewerTest - implement -reset option for vlight command

vlight command has been revised to provide more friendly syntax.
Command now accepts light index or name as first argument.
Added arguments -enable/-disable for managing enabled state.
Added argument -reset to reset light parameters to default values.

V3d_Viewer::SetDefaultLights() now sets names "headlight" and "ambient" to created lights.
Graphic3d_TypeOfLightSource enumeration values have been renamed to avoid shortcuts.
Draw::Atof(), applied corrections to avoid explicit new/delete calls.

6 months ago0031047: Modeling Algorithms - BRepExtrema_DistShapeShape gives wrong result IR-2021-07-09 WEEK-27
abulyche [Mon, 12 Apr 2021 10:13:14 +0000 (13:13 +0300)]
0031047: Modeling Algorithms - BRepExtrema_DistShapeShape gives wrong result

Added map of edges to BrepClass_Edge
Added searching of vertices with high tolerance to BrepClass_Intersector.cxx
Added check for hitting a vertex with high tolerance
Added the creation of a segment for the correct work of the classifier

6 months ago0032473: Visualization, WNT_Window::ProcessMessage() - handle WM_TOUCH
kgv [Mon, 5 Jul 2021 20:34:33 +0000 (23:34 +0300)]
0032473: Visualization, WNT_Window::ProcessMessage() - handle WM_TOUCH

WNT_Window::ProcessMessage() now redirects WM_TOUCH events to AIS_ViewController,
so that it is possible to use multitouch displays in Draw Harness on Windows platform.

_WIN32_WINNT in CMake configuration for MinGW has been raised from 0x0501 to 0x0601.

6 months ago0032475: Configuration, qmake - drop "-z defs" linker flag on macOS
kgv [Thu, 8 Jul 2021 11:02:40 +0000 (14:02 +0300)]
0032475: Configuration, qmake - drop "-z defs" linker flag on macOS

6 months ago0031890: Modeling Algorithms - Invalid result of common fuse BOP. Intersection has...
jgv [Sun, 6 Jun 2021 02:39:55 +0000 (05:39 +0300)]
0031890: Modeling Algorithms - Invalid result of common fuse BOP. Intersection has failed.

Modify the method BOPTools_AlgoTools3D::DoSplitSEAMOnFace: correct processing closed non-periodic surfaces.

6 months ago0031918: Application Framework - New binary format for fast reading part of OCAF...
mpv [Thu, 24 Jun 2021 14:26:52 +0000 (17:26 +0300)]
0031918: Application Framework - New binary format for fast reading part of OCAF document

Implementation of new format for quick reading and writing parts of the documents (sub-set of labels and sub-set of attributes). It consists in writing shapes and all their contents right in the TNaming_NamedShape attribute placement and skipping the shape section. New format 12 for Binary file types is assigned to this version.

Added PCDM_ReaderFilter class that could be used in Open methods of TDocStd_Application. If it is defined, it allows to read:
- into already opened document in append mode AppendMode_Protect (do not overwrite existing attributes) or AppendMode_Overwrite
- only specified sub-trees of the document using AddPath (const TCollection_AsciiString& theEntryToRead)
- only specified attributes using AddRead (const TCollection_AsciiString& theRead) where theRead could be "TDataStd_Name", for example
- to skip specified attributes read using AddSkipped (const TCollection_AsciiString& theSkipped) where theSkipped could be "TDF_Reference", for example

The current limitations:
- only in Bin format
- if shapes have in the document shared topology, loaded in "append" mode in different "load" operations, they will have no shared topology anymore

BinLDrivers and BinDrivers packages - modifications related to the quick part tree format flag usage, skipping shape section writing and adding labels sizes into the document to be able to pass labels during the reading quickly.
BinObjMgt_Persistent and BinObjMgt_Position - to add possibility to write directly into the stream some data just after the attribute. Before this record a data-size is recorded.
BinMXCAFDoc package modifications to write BinMXCAFDoc_LocationDriver location in the same way as shapes write location data right after the attribute (empty) data in this new format.
BinTools package: creation of ShapeReader and ShapeWriter classes with same root class ShapeSetBase with ShapeSet class. These classes allows to write/read shapes directly to the stream. If some object is already in the stream, write a reference - relative position of the duplicated object. The old format of documents is still supported by Bin_ToolsShapeSet class.
PCDM_ReaderFilter - Allows the user to create a reading filter. It contains algorithm to browse labels tree quickly, without usage of referencing by entry-strings.
TDocStd, CDF and some other packages are changed for supporting reading filters API and options.

Tests, documentation and upgrade information are also added for both issues: 31839 and 31918 related to this commit.

6 months ago0032429: Coding - Warnings during compilation on macosx arm64 with option BUILD_Inspe...
kgv [Tue, 6 Jul 2021 13:46:31 +0000 (16:46 +0300)]
0032429: Coding - Warnings during compilation on macosx arm64 with option BUILD_Inspector:BOOL=ON - part 2

6 months ago0032389: Visualization, AIS_Axis - simple ray creation and displaying IR-2021-07-02 WEEK-26
mkrylova [Wed, 16 Jun 2021 13:21:17 +0000 (16:21 +0300)]
0032389: Visualization, AIS_Axis - simple ray creation and displaying

- Added constructor to create axis by gp_Ax1
- Added possibility to display axis as ray
- Added function SetDisplayAspect to set required visualization parameters

6 months ago0032441: Draw Harness - command readstl doesn't print error message on failure
mkrylova [Wed, 23 Jun 2021 14:08:56 +0000 (17:08 +0300)]
0032441: Draw Harness - command readstl doesn't print error message on failure

- added producing error message when passing an invalid file path

6 months ago0032465: Visualization, TKOpenGles - invalid enum on GL_RGBA16F initialization in...
kgv [Mon, 28 Jun 2021 19:58:37 +0000 (22:58 +0300)]
0032465: Visualization, TKOpenGles - invalid enum on GL_RGBA16F initialization in Edge 92

GL_HALF_FLOAT_OES from OpenGL ES 2.0 extension
is now avoided within OpenGL ES 3.0+ context in favor of GL_HALF_FLOAT.

emscripten_webgl_enable_extension() is now called for all extensions
checked by OpenGl_Context::CheckExtension().
So far this doesn't solve any problem, but looks more logical and provisional.

6 months ago0032463: Visualization - implement Image_AlienPixMap::Load() via emscripten_get_prelo...
kgv [Sun, 27 Jun 2021 14:32:27 +0000 (17:32 +0300)]
0032463: Visualization - implement Image_AlienPixMap::Load() via emscripten_get_preloaded_image_data()

6 months ago0032460: Coding Rules - eliminate CLang warning -Wunused-but-set-variable IR-2021-06-25 WEEK-25
kgv [Thu, 24 Jun 2021 20:07:37 +0000 (23:07 +0300)]
0032460: Coding Rules - eliminate CLang warning -Wunused-but-set-variable

Code has been adjusted to suppress -Wunused-but-set-variable warnings.

DRAWEXE.wasm, compiler flags have been moved to linker flags
to eliminiate -Wunused-command-line-argument warnings.

6 months ago0032182: Visualization - add Select3D_SensitiveSphere
mkrylova [Wed, 17 Mar 2021 14:38:00 +0000 (17:38 +0300)]
0032182: Visualization - add Select3D_SensitiveSphere

- created Select3D_SensitiveSphere class
- implemented interfaces for intersection methods
- added tests

6 months ago0032459: Draw Harness, ViewerTest - fix description of vrenderparams -oit
kgv [Wed, 23 Jun 2021 18:33:43 +0000 (21:33 +0300)]
0032459: Draw Harness, ViewerTest - fix description of vrenderparams -oit

6 months ago0032458: Draw Harness, ViewerTest - fix misprint in vaspects -drawSilhouette
kgv [Wed, 23 Jun 2021 18:17:03 +0000 (21:17 +0300)]
0032458: Draw Harness, ViewerTest - fix misprint in vaspects -drawSilhouette

6 months ago0029059: It is necessary to have a unique way of checking of the validity of the...
asuraven [Wed, 28 Apr 2021 09:06:39 +0000 (12:06 +0300)]
0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves

Add new class BRepLib_ValidateEdge to use for edge checking instead of functions:
- Validate() from BOPTools_AlgoTools.cxx
- Validate() from BRepCheck_Edge.cxx
- ShapeAnalysis_Edge::ComputeDeviation()

6 months ago0032390: Visualization, SelectMgr_FrustumBuilder - use camera instead of duplicated...
osa [Fri, 28 May 2021 14:25:04 +0000 (17:25 +0300)]
0032390: Visualization, SelectMgr_FrustumBuilder - use camera instead of duplicated methods

Fix incorrect value of axis intersection with segment inside of SelectMgr_AxisIntersector::raySegmentDistance().
Move camera definition to base intersector (it is not possible to set it for axis intersector, is is not applicable).
Add method Graphic3d_Camera::SetIdentityOrientation() to set camera parameters to make current orientation matrix identity one.
Remove all matrices from selection intersectors and frustum builder and use camera instead of them.
Fix missed axis tests in vselect grid.

6 months ago0032429: Coding - Warnings during compilation on macosx arm64 with option BUILD_Inspe... IR-2021-06-18 WEEK-24
kgv [Thu, 10 Jun 2021 14:46:20 +0000 (17:46 +0300)]
0032429: Coding - Warnings during compilation on macosx arm64 with option BUILD_Inspector:BOOL=ON

6 months ago0032453: Documentation - nested multiline comments within BOPAlgo_CellsBuilder.hxx...
kgv [Thu, 17 Jun 2021 17:11:09 +0000 (20:11 +0300)]
0032453: Documentation - nested multiline comments within BOPAlgo_CellsBuilder.hxx destroy Java wrapping

6 months ago0032400: Visualization, TKIVtk - convert VTK camera to OCC
osa [Fri, 28 May 2021 14:39:11 +0000 (17:39 +0300)]
0032400: Visualization, TKIVtk - convert VTK camera to OCC

Add new interfaces GetEyePosition(), GetClippingRange(), GetAspectRatio() to IVTK_IView
Add ivtkviewparams command to print current parameters of view
Add ivtkcamera comand to print current camera parameters or manages camera parameters (set ortho or persp projection)

6 months ago0032430: Coding Rules - eliminate CLang warning -Wdeprecated-copy
kgv [Fri, 11 Jun 2021 11:52:37 +0000 (14:52 +0300)]
0032430: Coding Rules - eliminate CLang warning -Wdeprecated-copy

Introduced Standard_DELETE alias to C++11 feature "=delete".

6 months ago0032156: Documentation, gendoc.tcl - wrong processing of 'mathjax' option
bugmaster [Wed, 16 Jun 2021 10:52:19 +0000 (13:52 +0300)]
0032156: Documentation, gendoc.tcl - wrong processing of 'mathjax' option

6 months ago0032432: Inspectors - problems with tools test group
Natalia Ermolaeva [Wed, 16 Jun 2021 06:32:52 +0000 (09:32 +0300)]
0032432: Inspectors - problems with tools test group

Adding __APPLE_ definition for libraries

7 months ago0032404: Draw - problems with definition of cpulimit in tests
bugmaster [Fri, 11 Jun 2021 15:00:23 +0000 (18:00 +0300)]
0032404: Draw - problems with definition of cpulimit in tests

- The maximum value of cpulimit in test cases was limited to 1000 seconds (~ 17 minutes)
- cpulimit 1000 has been added to hlr/begin

7 months ago0032438: Configuration - add batch files to build OCCT using Mingw-w64
kgv [Sat, 12 Jun 2021 14:16:37 +0000 (17:16 +0300)]
0032438: Configuration - add batch files to build OCCT using Mingw-w64

7 months ago0032437: Coding Rules - eliminate MinGW warning -Wmaybe-uninitialized
kgv [Sat, 12 Jun 2021 12:35:38 +0000 (15:35 +0300)]
0032437: Coding Rules - eliminate MinGW warning -Wmaybe-uninitialized

7 months ago0032433: Visualization, TKService - introduce Wasm_Window implementing Aspect_Window... IR-2021-06-11 WEEK-23
kgv [Sun, 25 Apr 2021 14:51:49 +0000 (17:51 +0300)]
0032433: Visualization, TKService - introduce Wasm_Window implementing Aspect_Window interface using Emscripten SDK

Introduced Wasm_Window implementing Aspect_Window interface.

Aspect_WindowInputListener has been extended by touch input callbacks (moved from AIS_ViewController),
which now implements redirection of single taps to UpdateMouseClick().

AIS_ViewController::FetchNavigationKeys() now requests more frames even if Delta is zero,
but navigation keys are pressed - indicated by a new flag AIS_WalkDelta::IsDefined().

Fixed missing implementation of Xw_Window::DisplayConnection() getter.
The property has been moved to the base class Aspect_Window.

Removed unused Aspect_Convert.hxx.

DRAWEXE targeting Wasm:
- added exposing of FS interface so that it is possible uploading/downloading files to/from emulated file system on JavaScript level;
- added printer redirecting messages to Module.printMessage callback accepting message gravity;
- Run_Appli() now skips std::cin when Module.noExitRuntime is set.

7 months ago0032299: Application Framework - Loading OCAF document saved with earlier version...
mpv [Tue, 13 Apr 2021 15:31:31 +0000 (18:31 +0300)]
0032299: Application Framework - Loading OCAF document saved with earlier version fails when using OCCT 7.5.1

Keeping information about the file start instead of calling tellg. This fixes problem with not-seekable streams used for XML files reading and improves performance of XML files reading (about 10%), since tellg is quite long operation.

7 months ago0032417: Coding Rules - clean up public headers gp_Mat.hxx/ gp_Mat2d.hxx from interna...
mkrylova [Fri, 4 Jun 2021 08:13:47 +0000 (11:13 +0300)]
0032417: Coding Rules - clean up public headers gp_Mat.hxx/ gp_Mat2d.hxx from internal macros

Deleted internal macros.

7 months ago0032428: Documentation, AIS_InteractiveContext - put cross-references between MoveTo...
kgv [Wed, 9 Jun 2021 10:50:00 +0000 (13:50 +0300)]
0032428: Documentation, AIS_InteractiveContext - put cross-references between MoveTo() and HighlightStyle()

Added more @sa section between methods.
Deprecated Select() methods have been moved to the section with obsolete methods.
Methods delimiter within @sa listing has been changed from '/' to ',' for proper Doxygen generation results.

7 months ago0032419: Coding Rules - revert Overlaps() methods to SelectBasics_SelectingVolumeMana... IR-2021-06-04 WEEK-22
kgv [Fri, 4 Jun 2021 08:28:49 +0000 (11:28 +0300)]
0032419: Coding Rules - revert Overlaps() methods to SelectBasics_SelectingVolumeManager as deprecated aliases

Deprecated Overlaps() methods have been moved from subclass SelectMgr_SelectingVolumeManager
to the base class SelectBasics_SelectingVolumeManager,
so that they are actually accessible within Select3D_SensitiveEntity::Matches() implementations.

Several methods have been marked as pure virtual in the base interface.
Second SelectMgr_BaseIntersector::OverlapsPolygon() has been dropped from virtual interface
as useless (trivially replaceable).

7 months ago0029303: Data Exchange - add RWObj_CafWriter tool for wavefront OBJ file
kgv [Mon, 31 May 2021 17:14:03 +0000 (20:14 +0300)]
0029303: Data Exchange - add RWObj_CafWriter tool for wavefront OBJ file

Unstable test case v3d/memory/bug26538 has been adjusted.

7 months ago0032402: Coding Rules - eliminate msvc warning C4668 (symbol is not defined as a...
zaphod [Sun, 30 May 2021 10:27:19 +0000 (12:27 +0200)]
0032402: Coding Rules - eliminate msvc warning C4668 (symbol is not defined as a preprocessor macro, replacing with '0' for directive)

Make preprocessor expressions consistent with respect to guard expressions.

Fixed usage of macros __QNX__, IRIX, OCCT_DEBUG, DO_INVERSE, DRAW, CHFI3D_DEB by value.
Removed obsolete hack for Sun Workshop 5.0 compiler.

7 months ago0032137: Coding Rules - merge redundant .lxx files into header files within Package gp
mkrylova [Wed, 17 Feb 2021 10:49:32 +0000 (13:49 +0300)]
0032137: Coding Rules - merge redundant .lxx files into header files within Package gp

- merged .lxx files into header files within Package gp
- fixed code style

7 months ago0032406: Configuration, CMake - DRAWEXE build fails on Linux with static libraries
kgv [Mon, 31 May 2021 13:05:43 +0000 (16:05 +0300)]
0032406: Configuration, CMake - DRAWEXE build fails on Linux with static libraries

Add missing CSF_dl, CSF_TclTkLibs to DRAWEXE dependencies (static build).

7 months ago0032279: Draw Harness - protect incmesh from hanging on syntax error IR-2021-05-28 WEEK-21
mkrylova [Tue, 18 May 2021 10:51:22 +0000 (13:51 +0300)]
0032279: Draw Harness - protect incmesh from hanging on syntax error

- improved incmesh to raise exception on invalid input parameters
- added possibility to operate multiple objects
- added checking for too small values in BrepMesh algorithm

7 months ago0032399: Configuration - correct search of VTK bin path by genconf
osa [Thu, 27 May 2021 15:15:36 +0000 (18:15 +0300)]
0032399: Configuration - correct search of VTK bin path by genconf

7 months ago0032385: Coding - New msvc10 warnings after integration fix for 32338
osa [Mon, 24 May 2021 06:59:39 +0000 (09:59 +0300)]
0032385: Coding - New msvc10 warnings after integration fix for 32338

7 months ago0026365: Optimization of work of OSD_Parallel class members for GeomLib_CheckCurveOnS...
kgv [Thu, 10 Jan 2019 13:35:25 +0000 (16:35 +0300)]
0026365: Optimization of work of OSD_Parallel class members for GeomLib_CheckCurveOnSurface

Removed workaround within GeomLib_CheckCurveOnSurface.

7 months ago0032261: Mesh - some trivial improvements for mesher
Dzmitry Razmyslovich [Wed, 26 May 2021 14:03:42 +0000 (17:03 +0300)]
0032261: Mesh - some trivial improvements for mesher

BRepMesh_Delaun::decomposeSimplePolygon(): minor change to improve code readability;
Correct test case

7 months ago0032261: Mesh - some trivial improvements for mesher
Dzmitry Razmyslovich [Tue, 13 Apr 2021 05:58:53 +0000 (07:58 +0200)]
0032261: Mesh - some trivial improvements for mesher

BRepMesh_ModelHealer::amplifyEdges use a single instance of EdgeAmplifier

7 months ago0032261: Mesh - some trivial improvements for mesher
Dzmitry Razmyslovich [Mon, 29 Mar 2021 11:54:42 +0000 (13:54 +0200)]
0032261: Mesh - some trivial improvements for mesher

BRepMesh_GeomTool::IntSegSeg misses one case, when the result is Glued

7 months ago0032388: Visualization - provide ray-picking interface with zero tolerance for rectan...
osa [Tue, 25 May 2021 14:57:48 +0000 (17:57 +0300)]
0032388: Visualization - provide ray-picking interface with zero tolerance for rectangular frustum

7 months ago0032387: Visualization - use interface of ray-picking for selection/highlighting...
osa [Mon, 24 May 2021 12:27:33 +0000 (15:27 +0300)]
0032387: Visualization - use interface of ray-picking for selection/highlighting for XR pose

Fixed regression of SelectMgr_ViewerSelector::SetPixelTolerance(). Removed redundant myToUpdateTolerance flag.

SelectMgr_AxisIntersector::raySegmentDistance() - fixed usage of SquareModulus() instead of Modulus().
SelectMgr_ViewerSelector::TraverseSensitives() now skips both BVHSubset_2dPersistent and BVHSubset_3dPersistent relying on Camera.

AIS_ViewController::handleXRMoveTo() now uses interface for picking by Axis explicitly
instead of emulating axis by point picking.

7 months ago0032337: Visualization - rename Overlaps() method in selection to more self-describab...
mkrylova [Wed, 12 May 2021 13:39:17 +0000 (16:39 +0300)]
0032337: Visualization - rename Overlaps() method in selection to more self-describable names

- renamed Overlaps and hasOverlap overloaded methods to self-describable names

7 months ago0032391: Draw Harness - missing syntax validation within vseldump
kgv [Mon, 24 May 2021 21:08:05 +0000 (00:08 +0300)]
0032391: Draw Harness - missing syntax validation within vseldump

SelectMgr_SelectionImageFiller, SurfaceNormalFiller - pick results from SelectMgr_SortCriterion
instead of calling redundant Matches().
vseldump - added missing syntax error output on incorrect -type parameter.

7 months ago0031920: Application Framework - speed up methods of getting label by entry and vice... IR-2021-05-21 WEEK-20
vro [Thu, 13 May 2021 11:19:00 +0000 (14:19 +0300)]
0031920: Application Framework - speed up methods of getting label by entry and vice versa

            A table for fast access to the labels by entry is implemented in OCAF document. A method TDF_Data::SetAccessByEntries(true) fills-in a table for fast access to the labels. New labels, created later will be added to the table automatically. The method TDF_Tool::Label() will search the entry in the table and then, if not found, will call the old code. Disabling of usage of the table (by calling of TDF_Data::SetAccessByEntries(false)) cleans the internal table of entries - labels. By default, the table is not used.
            This improvement is useful for large documents with a lot of labels, and if the application uses entries to get labels. The application should call TDF_Data::SetAccessByEntries(true) for a document and then, the method TDF_Tool::Label() called inside OCAF and XCAF will use the fast access to the labels and speed-up the application.
            Also, the method TDF_Tool::Entry() is improved (by MPV).

            Modified files:
            - TDF_Data.hxx and cxx: the new methods SetAccessByEntries(bool), IsAccessByEntries() and GetLabel(entry) are implemented. No need to use the method GetLabel() directly. It is called in TDF_Tool::Label().
            - TDF_Label.cxx: adding of a newly created label to the table of entries - labels.
            - TDF_Tool.cxx: the method Entry() is accelerated (by MPV) and Label() is improved to call TDF_Data::GetLabel().
            - DDF_DataCommands.cxx: a new draw-command is added SetAccessByEntry, which sets or unsets usage of the table for fast access to the labels. Usage of the draw-command is illustrated in a new test "bugs caf bug31920".

            - bugs caf bug31920: a new simple test to check TDF_Tool::Label() when fast access to the labels is on.

            - dox\upgrade\upgrade.md is extended for new information

7 months ago0032196: Modeling Algorithms - Invalid section curve
jgv [Thu, 20 May 2021 22:54:07 +0000 (01:54 +0300)]
0032196: Modeling Algorithms - Invalid section curve

Modify the method IntWalk_IWalking::ComputeCloseLine: add condition for check of update of variable containing current solution

7 months ago0032338: Visualization - provide straightforward interface for ray-picking
osa [Tue, 18 May 2021 07:07:59 +0000 (10:07 +0300)]
0032338: Visualization - provide straightforward interface for ray-picking

7 months ago0032365: Visualization - refactoring of viewer selector
osa [Thu, 13 May 2021 15:52:39 +0000 (18:52 +0300)]
0032365: Visualization - refactoring of viewer selector

Add SelectMgr_BaseIntersector class as base intersector that can have any geometry not only frustum.
Remove cached static array of selecting volumes from selecting volume manager. Keep only one the latest active selection volume.
Change initialization interface of active volume frustum inside of selecting volume manager: Init*SelectingVolume(), set required parameters, BuildSelectingVolume(). Mark existing BuildSelectingVolume() methods as deprecated.
Use SelectMgr_SelectionType instead of SelectBasics_SelectingVolumeManager::SelectionType (the last one is marked as deprecated).
Add interface GetViewRayDirection() to selecting volume manager to get view ray direction (instead of computation it as vector from near to far point).
Add interface IsScalableActiveVolume() to selecting volume manager to check possibility of scaling of current active selecting volume.

7 months ago0032340: OCCT Documentation - highlight C++ code snippets
btokarev [Tue, 18 May 2021 10:09:50 +0000 (13:09 +0300)]
0032340: OCCT Documentation - highlight C++ code snippets

Added {.cpp} highlighting markers to the C++ code blocks in documentation;
Excessive tildes "~~~~~~~" in code block borders are reduced to required minimum of "~~~~" (4);
Removed obsolete space bars after code block borders;
TCL code blocks are now highlighted with {.php} markers;
Removed excessive {.cpp} highlighting markers appended to non-code blocks such as lists, reports and file content or structure examples;
Minor fixes for tests.md and draw_test_harness.md (whitespace removal and structural fix for "Where:" in code examples);
Minimum HDD space for OCCT updated in introduction.md.

7 months ago0032353: Modeling Data - Missing definition of ProjLib_ProjectOnSurface::Load()
kgv [Tue, 11 May 2021 07:20:42 +0000 (10:20 +0300)]
0032353: Modeling Data - Missing definition of ProjLib_ProjectOnSurface::Load()

7 months ago0032292: Coding Rules - improve HLRBRep_PolyAlgo readability part 3
kgv [Mon, 3 May 2021 18:00:18 +0000 (21:00 +0300)]
0032292: Coding Rules - improve HLRBRep_PolyAlgo readability part 3

Use typed collections instead Handle(Standard_Transient) values.

7 months ago0032366: Visualization, SelectMgr_ViewerSelector3d::ToPixMap() - add option dumping...
mkrylova [Fri, 14 May 2021 09:58:43 +0000 (12:58 +0300)]
0032366: Visualization, SelectMgr_ViewerSelector3d::ToPixMap() - add option dumping surface normals

- extended functionality to dump surface normals
- added new option to vseldump command
- added tests

7 months ago0031362: Inspectors - MessageView plugin for message alerts
nds [Mon, 26 Apr 2021 15:01:38 +0000 (18:01 +0300)]
0031362: Inspectors - MessageView plugin for message alerts

- append new MessageView plugin to display content of Message_Report;

- correct DumpJson of TDataStd array attributes to print Lower/Upper values;
- correct remove level of Message_Report to store stop time during removing all levels;
- append DumpJson for TFunction, TPrsStd attributes;
- correct DumpJson of XCAFDoc tools due to simplify performance of it;
- move AttributeInfo functionality from XDEDRAW into a static public method of XCAFDoc to call it outside;
- remove obsolete pane classes in DFBrowser plugin, now we may use DumpJSon panel to visualize this content of attributes;
- add new property panel in DFBrowser (synchronized with the same in other plugins);
- add button to switch ON DumpJson in DFBrowser(OFF by default, for better performance), also there is a context menu item in tree view;
- rename in DFBrowser "Property Panel" into "Property Panel (custom)";
- implement ViewControl_ColorSeletor and setting color in TreeModel_ItemProperties. Use only for light in VInspector now;
- implement setting false for all created AIS_Shape presentation to don't modify source TopoDS_Shape;
- remove not use VInspector_CallBack. It's possible using Message_Report/MessageView to track commands way;
- remove History panel in VInspector as not used, MessageView will be better solution for this;
- implement item and actions in VInspector for setting Lights in the view.

8 months ago0032326: Tests - duplicated bottle.brep reference in test data IR-2021-05-14
bugmaster [Sat, 15 May 2021 09:47:44 +0000 (12:47 +0300)]
0032326: Tests - duplicated bottle.brep reference in test data

8 months ago0032364: Visualization - Add interface to return global filter from context WEEK-19
sshutina [Thu, 13 May 2021 09:01:58 +0000 (12:01 +0300)]
0032364: Visualization - Add interface to return global filter from context

8 months ago0032291: Modeling Algorithms - General Fuse produces wrong number of solids
jgv [Sat, 8 May 2021 16:29:46 +0000 (19:29 +0300)]
0032291: Modeling Algorithms - General Fuse produces wrong number of solids

Modify method IntWalk_IWalking::ComputeCloseLine: add new flag "isOnDegeneratedBorder" to reach the border successfully.

8 months ago0032372: Configuration, qmake - define -Wall -Wextra flags for consistency with CMake...
kgv [Fri, 14 May 2021 12:31:08 +0000 (15:31 +0300)]
0032372: Configuration, qmake - define -Wall -Wextra flags for consistency with CMake options

8 months ago0031147: Modeling Algorithms - BRepOffsetAPI_MakePipeShell null access
akaftasev [Thu, 29 Apr 2021 10:40:58 +0000 (13:40 +0300)]
0031147: Modeling Algorithms - BRepOffsetAPI_MakePipeShell null access

Added to Draw command 'setsweep ' posibility to change degmax and segmax parameter manually by '-SM' and '-DM' options
Added test
Added new condition to prevent crash

8 months ago0029645: Hang on making pipe shell using BRepOffsetAPI_MakePipeShell
akaftasev [Tue, 4 May 2021 10:28:25 +0000 (13:28 +0300)]
0029645: Hang on making pipe shell using BRepOffsetAPI_MakePipeShell

Added new boolean parameter to GeomLib::FuseIntervals() to select method of defining an element with close values

8 months ago0032357: Coding Rules - eliminate GCC11 compiler warnings -Wignored-qualifiers
kgv [Tue, 11 May 2021 16:56:36 +0000 (19:56 +0300)]
0032357: Coding Rules - eliminate GCC11 compiler warnings -Wignored-qualifiers

8 months ago0032351: Visualization, PrsDim_LengthDimension - add NULL checks for handling non...
kgv [Mon, 10 May 2021 06:05:11 +0000 (09:05 +0300)]
0032351: Visualization, PrsDim_LengthDimension - add NULL checks for handling non-Line curves

Added several missing NULL-checks.
Reduced restrictions on building Edge-Edge and Edge-Vertex length dimension.
Added empty constructor for more straightforward initialization from vdimension command.

8 months ago0032349: Visualization, TKOpenGl - move base buffer interface out from OpenGl_VertexB...
kgv [Thu, 6 May 2021 17:03:24 +0000 (20:03 +0300)]
0032349: Visualization, TKOpenGl - move base buffer interface out from OpenGl_VertexBuffer class to OpenGl_Buffer

OpenGl_Buffer - added new class as a base for OpenGl_VertexBuffer, OpenGl_IndexBuffer, OpenGl_TextureBuffer.
OpenGl_TextureBufferArb has been renamed to OpenGl_TextureBuffer.
OpenGl_FrameBuffer - added initializers taking vec2i instead of (int,int) for dimensions.

8 months ago0032332: Modeling Algorithms - Incorrect result of ShapeUpgrade_UnifySameDomain
jgv [Wed, 28 Apr 2021 19:54:03 +0000 (22:54 +0300)]
0032332: Modeling Algorithms - Incorrect result of ShapeUpgrade_UnifySameDomain

Method UnionPCurves of ShapeUpgrade_UnifySameDomain is modified: check of the range of new pcurves is added: if the range differs from the 3D-curve's one, the pcurves are being recomputed by projection.

8 months ago0032270: Configuration - Removing VS 2008 from maintenance
kgv [Mon, 10 May 2021 12:14:29 +0000 (15:14 +0300)]
0032270: Configuration - Removing VS 2008 from maintenance

Documentation - updated list of supported platforms.

8 months ago0031939: Coding - correction of spelling errors in comments [part 12]
luz paz [Tue, 4 May 2021 13:03:06 +0000 (16:03 +0300)]
0031939: Coding - correction of spelling errors in comments [part 12]

Fix various typos via codespell.

8 months ago0031939: Coding - correction of spelling errors in comments [part 11]
luz paz [Tue, 4 May 2021 10:56:47 +0000 (13:56 +0300)]
0031939: Coding - correction of spelling errors in comments [part 11]

Fix various typos via codespell.

8 months ago0032191: Tests - merge duplicated tests/v3d selection cases IR-2021-04-30 WEEK-17
mkrylova [Tue, 27 Apr 2021 10:10:13 +0000 (13:10 +0300)]
0032191: Tests - merge duplicated tests/v3d selection cases

- merged duplicated tests vselect cases

8 months ago0032331: Visualization - Exception when trying to display some surfaces using iVtk...
anv [Tue, 27 Apr 2021 18:33:54 +0000 (21:33 +0300)]
0032331: Visualization - Exception when trying to display some surfaces using iVtk with VTK 9

Updated memory allocation for vtkPolyData to use more suited method for VTK versions after 9.0

8 months ago0032342: Draw Harness - preload basic Tcl scripts into WebAssembly
kgv [Thu, 29 Apr 2021 19:13:20 +0000 (22:13 +0300)]
0032342: Draw Harness - preload basic Tcl scripts into WebAssembly

DrawResources Tcl scripts and $tcl_library (init.tcl) are now preloaded into WebAssembly emulated filesystem for DRAWEXE.wasm.
DRAWEXE now mimics "pload" command for statically linked plugins.

8 months ago0032341: Coding Rules - eliminate GCC11 compiler warnings -Wmaybe-uninitialized
kgv [Thu, 29 Apr 2021 18:01:17 +0000 (21:01 +0300)]
0032341: Coding Rules - eliminate GCC11 compiler warnings -Wmaybe-uninitialized

8 months ago0032314: Data Exchange - Reading corrupted STEP files crashes
dpasukhi [Wed, 28 Apr 2021 08:53:40 +0000 (11:53 +0300)]
0032314: Data Exchange - Reading corrupted STEP files crashes

 fixed problem with reading parameters ( if sub-entity invalid, set has-parameter to false )

8 months ago0032088: Modeling Algorithms - Empty result of offset operation in mode "Complete...
emv [Wed, 27 Jan 2021 13:24:11 +0000 (16:24 +0300)]
0032088: Modeling Algorithms - Empty result of offset operation in mode "Complete" join type "Intersection"

Mark inverted edges located inside loops of invalid edges as invalid as well.

8 months ago0031949: JT Import - some colors are lost while reading XT representation from JT...
dpasukhi [Mon, 21 Dec 2020 10:52:11 +0000 (13:52 +0300)]
0031949: JT Import - some colors are lost while reading XT representation from JT file

Added checking to style of faces from SHELL and edges from WIRE
RWMesh_CafReader::fillDocument() is virtual now

8 months ago0032334: Visualization - SelectMgr_RectangularFrustum::Overlaps() does not set triang...
kgv [Tue, 27 Apr 2021 09:31:23 +0000 (12:31 +0300)]
0032334: Visualization - SelectMgr_RectangularFrustum::Overlaps() does not set triangle normal in some cases

Added missing SelectBasics_PickResult::SetSurfaceNormal().

8 months ago0032323: Configuration - drop unused dependency from Xmu
kgv [Fri, 23 Apr 2021 10:02:08 +0000 (13:02 +0300)]
0032323: Configuration - drop unused dependency from Xmu

Removed unused header Aspect_XWD.hxx.
Removed redundant includes of unused X11 extension headers.
Added missing dependency on pthread to TKDraw.

Added "-z defs" linker flag to qmake projects to detect missing library dependencies.
Removed unused CSF_MotifLibs.

8 months ago0032319: Foundation Classes, OSD_MemInfo - use mallinfo2() instead of deprecated...
kgv [Thu, 22 Apr 2021 17:42:47 +0000 (20:42 +0300)]
0032319: Foundation Classes, OSD_MemInfo - use mallinfo2() instead of deprecated mallinfo()

8 months ago0032320: Documentation - mention rapidjson-dev and qtcreator within Debian packages IR-2021-04-23 WEEK-16
kgv [Thu, 22 Apr 2021 17:57:38 +0000 (20:57 +0300)]
0032320: Documentation - mention rapidjson-dev and qtcreator within Debian packages

8 months ago0032315: Configuration, CMake - fix building Draw Harness plugins as static libraries
kgv [Fri, 19 Mar 2021 21:31:01 +0000 (00:31 +0300)]
0032315: Configuration, CMake - fix building Draw Harness plugins as static libraries

DPLUGIN() macros no more defines exported function PLUGINFACTORY when building static libraries.
DRAWEXE executable now pre-loads a set of plugins when building static libraries.
dversion - added WebAssembly info.

8 months ago0032311: Documentation - Removing obsolete tag COLS_IN_ALPHA_INDEX
bugmaster [Wed, 21 Apr 2021 11:31:50 +0000 (14:31 +0300)]
0032311: Documentation - Removing obsolete tag COLS_IN_ALPHA_INDEX

8 months ago0032313: Modeling Algorithms - Missing definition of constructor in GeomFill_NSections
kgv [Wed, 21 Apr 2021 11:17:30 +0000 (14:17 +0300)]
0032313: Modeling Algorithms - Missing definition of constructor in GeomFill_NSections

8 months ago0032307: Modeling Algorithms - Empty result of offset operation in mode "Complete...
emv [Fri, 16 Apr 2021 12:21:32 +0000 (15:21 +0300)]
0032307: Modeling Algorithms - Empty result of offset operation in mode "Complete" Joint type "Intersection"

Make sure the vertices created by pairwise intersection of edges connected in the same vertex are unified correctly.

8 months ago0032091: Visualization - possibility to redefine Graphic3d_TransformPers
nds [Thu, 28 Jan 2021 07:57:54 +0000 (10:57 +0300)]
0032091: Visualization - possibility to redefine Graphic3d_TransformPers

8 months ago0032292: Coding Rules - improve HLRBRep_PolyAlgo readability part 2
kgv [Sat, 17 Apr 2021 19:32:17 +0000 (22:32 +0300)]
0032292: Coding Rules - improve HLRBRep_PolyAlgo readability part 2

Applied name conventions and dropped tabulation symbols.

8 months ago0031939: Coding - correction of spelling errors in comments [part 10]
luz paz [Mon, 19 Apr 2021 08:42:46 +0000 (11:42 +0300)]
0031939: Coding - correction of spelling errors in comments [part 10]

Fix various typos via codespell.

8 months ago0032308: Configuration - make Xlib dependency optional
kgv [Fri, 16 Apr 2021 13:12:16 +0000 (16:12 +0300)]
0032308: Configuration - make Xlib dependency optional

MACOSX_USE_GLX has been renamed to HAVE_XLIB and now configurable on Linux target.

Xw_Window.hxx now export class on non-Linux platforms.
OpenGl_Window now creates an off-screen EGL surface also in case of
window-less desktop setup (e.g. with disabled Xlib on Linux).

Draw_Window - code has been cleaned up.
Class definition has been unified across platforms when possible.
Unusued constructors have been removed.
Internal header files (MainWindow.h, init.h, etc.) have been renamed to .pxx
to avoid their unexpected distribution in "inc".

9 months ago0032306: Draw Harness, ViewerTest - move window message processing to TKService
kgv [Fri, 16 Apr 2021 10:01:17 +0000 (13:01 +0300)]
0032306: Draw Harness, ViewerTest - move window message processing to TKService

Aspect_WindowInputListener - basic mouse/keyboard/expose input methods
have been moved out from AIS_ViewController to dedicated base interface.

Added WNT_Window::ProcessMessage()/Xw_Window::ProcessMessage() methods
redirecting Win32/X11 message to Aspect_WindowInputListener.

9 months ago0031984: Modeling Algorithms - Sweep crashes if Bi-normal is given IR-2021-04-16 WEEK-15
jgv [Tue, 13 Apr 2021 13:03:21 +0000 (16:03 +0300)]
0031984: Modeling Algorithms - Sweep crashes if Bi-normal is given

Small modification in BRepFill_Sweep: to avoid exception, return status NotDone if construction of pipe surface fails.

9 months ago0032213: Modeling Algorithms - Invalid result of UnifySameDomain
jgv [Thu, 8 Apr 2021 00:49:14 +0000 (03:49 +0300)]
0032213: Modeling Algorithms - Invalid result of UnifySameDomain

Modify unification of faces: add splitting new wire into several ones.

9 months ago0032301: Visualization, TKOpenGl - depth peeling is broken with OpenGl_Caps::buffersO...
kgv [Thu, 15 Apr 2021 12:34:52 +0000 (15:34 +0300)]
0032301: Visualization, TKOpenGl - depth peeling is broken with OpenGl_Caps::buffersOpaqueAlpha option

OpenGl_LayerList::renderTransparent() - color mask is now set to write into Alpha channel of depth peeling FBOs.
OpenGl_View::blitBuffers() - avoid using undefined color for glClear(GL_COLOR_BUFFER_BIT) operation.

9 months ago0032304: Configuration - genproj should not override env.bat in OCC Products
kgv [Thu, 15 Apr 2021 13:05:01 +0000 (16:05 +0300)]
0032304: Configuration - genproj should not override env.bat in OCC Products