dpasukhi [Fri, 27 Dec 2024 10:36:43 +0000 (10:36 +0000)]
Foundation Classes - Move Map's algo part to external file #213
Updated multiple classes to utilize the new NCollection_MapAlgo
for union, intersection, and other set operations,
improving code structure and maintainability.
Deprecated older methods in NCollection_Map in favor of the new algorithmic approaches.
dpasukhi [Fri, 20 Dec 2024 16:54:31 +0000 (16:54 +0000)]
Configuration - Add VCPKG Manifest mode support #205
The basic implementation of VCPKG as a beta version.
By default will be disabled.
To enable needs to remove CMake cache and reconfigure with BUILD_USE_VCPKG flag to ON.
The current version do not support whole list of 3rd-party, only limited.
and VCPKG_ROOT reachable as a CMake or env variable
Add vcpkg support for FFmpeg and Jemalloc, including configuration files and patches.
QtCreator supports CMake natively.
At the moment OCCT qmake configuration is out-of-date and better to clean.
In case if support of qmake will require for specific platform - can be returned.
But with requirement to be tested by test system Jenkins/GitLab or GH.
dkulikov [Fri, 13 Dec 2024 17:42:09 +0000 (17:42 +0000)]
Shape Healing interface update #189
New class XSAlgo_ShapeProcessor is added. It reimplements functionality
of XSAlgo_AlgoContainer and makes it more convenient to use.
XSAlgo_AlgoContainer is now internally uses methods of
XSAlgo_ShapeProcessor when possible.
New overload of Perform() method is added to class ShapeProcess. It
accepts a set of flags that defines required operations instead of
string.
dpasukhi [Sat, 14 Dec 2024 13:55:07 +0000 (13:55 +0000)]
Documentation - Issue Template update #193
Update issue templates to include '0. New' label for bug reports and feature requests.
The new labels helps to mark not checked issues from development side.
dpasukhi [Thu, 12 Dec 2024 10:22:07 +0000 (10:22 +0000)]
Revert "0023638: Data Exchange - Reading IGES file produced invalid shape" #186
This reverts commit c479c4f6d89ed7c5e33dd35a5e110f13776b7cab.
The problem related with no changes on the ShapeHealing stage.
ReShape do not propagated well for all scenarios.
The test case update is not relevant.
dkulikov [Mon, 9 Dec 2024 17:06:33 +0000 (17:06 +0000)]
GLTF Import - Metadata support #184
Limited support of metadata import is added to RWGltf_GltfJsonParser.
Following Json data types are currently supported: int32, double, string,
array of int32, array of double, array of strings, Json object.
Notable unsupported types are: binary data, array of Json objects.
Metadata is processed for nodes and meshes.
Tests "gltf_export" are updated with import testing and renamed to "gltf".
Method RWGltf_GltfJsonParser::gltfParseSceneNode() is slightly
refactored: parsing of transformations and transformation matrices is
moved into separate functions.
dpasukhi [Mon, 18 Nov 2024 12:11:18 +0000 (12:11 +0000)]
Configuration - Removing '.gxx' from installation #165
Refactor file extension filters in CMake and QMake configurations.
Gxx extension used as a "old-way-template" to repeat .cxx content.
Marking gxx as a source file instead of header.
Moving to absolute path for the gxx integrations.
dpasukhi [Sun, 17 Nov 2024 20:22:51 +0000 (20:22 +0000)]
Documentation - Update parameter annotations for consistency #161
Reorganized style for param to the next templates:
- "@param theParameter description ..."
- "@param[in] theParameter description ..."
- "@param[out] theParameter description ..."
- "@param[in][out] theParameter description ..."
The replacement was with keeping spacing, no removing of extra spaces.
In some files '/' was used instead of '@', that was not updated yet.
dpasukhi [Sat, 16 Nov 2024 19:05:55 +0000 (19:05 +0000)]
Coding - PCH improvements #160
Refactor precompiled headers and improve Windows compatibility.
Extend TKernel, TKMath and TKBRep pch with more usage headers.
Implement PCH for TKDEIGES, TKDESTEP, TKMesh, and TKXSBase.
dpasukhi [Tue, 5 Nov 2024 19:45:59 +0000 (19:45 +0000)]
Testing - Update tests with direct VIS loading #148
XShow and XDisplay XDE require VISUALIZATION for correct work.
In some scenario DRAWEXE can generate a duplicates of the internal static singletons.
This means each dynamic library will have their own instance of the static singleton.
Update all direct library loading to use the XDE plugin mechanism.
This will ensure that the XDE plugin is loaded only once and that the correct instance is used.
Originally issue is reproduced only Linux with dlopen with "RTLD_LAZY".
Can be resolved additionally adding "RTLD_LAZY | RTLD_GLOBAL" for dlopen
dpasukhi [Tue, 5 Nov 2024 16:56:11 +0000 (16:56 +0000)]
Testing - Removing direct DCAF loading #147
DCAF require VISUALIZATION for correct work.
In some scenario DRAWEXE can generate a dublicates of the
internal static singletons. This means each dynamic library
will have their own instance of the static singleton.
Update all direct library loading to use the DCAF plugin
mechanism. This will ensure that the DCAF plugin is loaded
only once and that the correct instance is used.
Originally issue is reproduced only Linux with dlopen with "RTLD_LAZY".
Can be resolved additionally adding "RTLD_LAZY | RTLD_GLOBAL" for dlopen
dpasukhi [Sat, 26 Oct 2024 21:07:56 +0000 (22:07 +0100)]
Testing - Extend GH Actions to compare results #119
Implement new logic to compare test result with target branch.
The compare results are stored in single archive contained .html file per job.
Tests results stored as an artefact per job separately.
Extend the jobs with new 3rd-party and new use_* flags
dpasukhi [Sun, 20 Oct 2024 14:08:26 +0000 (15:08 +0100)]
Tests - DRAWEXE Testing integration into GH #109
Introduced a comprehensive multi-platform build and
test workflow for OCCT, supporting Windows, macOS, and Linux.
Added a new workflow for automated documentation building.
Reorganized a code analysis workflow using CodeQL
and Microsoft C++ Code Analysis.
dpasukhi [Mon, 7 Oct 2024 22:04:51 +0000 (22:04 +0000)]
Configuration - CMake extension with PCH and symlink #90
Removed cotire PCH
Integrated native PCH by CMake with the same BUILD_USE_PCH flag
Added new option to avoid extra files in 'build/include' folder and replace it by symlink
Symlink creates link to the origin file, it has some benefits from debug and build side.
The CMake parameter for symlink is 'BUILD_INCLUDE_SYMLINK'
dpasukhi [Mon, 7 Oct 2024 21:55:58 +0000 (21:55 +0000)]
Coding - Non-dependency include update #89
Removed or reorganized include that are not a part of the project dependency.
The new file for typedef is added because Select is not direct dependency.
0033498: Data Exchange, Step Export - Meshed pretessellated geometry is skipped on write
Processing of complex_triangulated_surface_set is added to
STEPCAFControl_GDTProperty::GetTessellation().
Processing of tessellated_curve_set is refactored and moved to a
separate function.
Problems related to normals list are fixed in
RWStepVisual_RWComplexTriangulatedSurfaceSet::WriteStep():
Normals list is now checked for nullptr. It is a valid situation that
occurs when complex_triangulated_surface_set in STEP file has no
normals.
Traversing of normals list is performed in correct order. Previously
rows and columns were switched, which led to crashes or incorrect data.
Windows, Linux builds now starts checking the warning.
In warning case the job will be failed.
MacOS having too much warnings related with sprintf.
Linux Clang having a problem with Flex and Bison.
0033665: Data Exchange, Step Import - TransferRoots crashes for invalid STEP files
Fixed exception in RWStepShape_RWEdgeCurve::Check() thrown when trying
to access step entity in Interface_EntityIterator with zero entities.
Fixed a crash in StepToTopoDS_TranslateFace::Init() caused by
dereferencing nullptr.
RWStepShape_RWEdgeCurve and RWStepShape_RWEdgeCurve are refactored.
Test bug33665 is added to check the fixed behavior.
Precision.hxx optimized to have compiler-time
constants for the most common floating-point values.
Reorganized code to avoid static jumping for parametric.
reciprocal [Thu, 16 May 2024 14:29:06 +0000 (16:29 +0200)]
0033319: Coding - Static linking fails with unresolved symbols due to linking order and missing transitive dependencies
The absence of target_link_libraries calls for static libraries caused CMake to fail
in modeling the link dependencies correctly.
This fix ensures that CMake correctly exports the dependencies in OpenCASCADEConfig.cmake and
resolves downstream linking errors for projects that link against static OpenCASCADE libraries.