]> OCCT Git - occt.git/log
occt.git
5 days agoDocumentation - Fix whitespace uniformity (#770) master
luzpaz [Tue, 28 Oct 2025 08:26:46 +0000 (04:26 -0400)]
Documentation - Fix whitespace uniformity (#770)

- Standardized spacing in documentation comments by removing extra spaces between words
- Fixed inconsistent line breaks in multi-line comment blocks
- Corrected minor spelling/grammar issues (e.g., "follow" → "follows", "form" → "from")

5 days agoShape Healing - Regression after #584 (#769)
Pasukhin Dmitry [Mon, 27 Oct 2025 21:27:16 +0000 (21:27 +0000)]
Shape Healing - Regression after #584 (#769)

Second iteration of fixing regressions.
Fixed issue with loops and incorrect shell created.
#584 affected some tests which were not updated on time.
Now all test cases are passed.

6 days agoRevert "Data Exchange - Step supplemental geometry support (#744)" (#768)
Pasukhin Dmitry [Mon, 27 Oct 2025 19:18:53 +0000 (19:18 +0000)]
Revert "Data Exchange - Step supplemental geometry support (#744)" (#768)

This reverts commit 4ca8112dabbb17db668e28570c32f2eb2992080e.

6 days agoDocumentation - Fix various typos and comment uniformity (#767)
luzpaz [Mon, 27 Oct 2025 10:42:17 +0000 (06:42 -0400)]
Documentation - Fix various typos and comment uniformity (#767)

Fixes user-facing and non-user-facing typos.
Also removes code comment justification and optimizes whitespace.

8 days agoConfiguration - Validate the configuration on CMake 3.10 and later (#762)
Pasukhin Dmitry [Sat, 25 Oct 2025 14:49:04 +0000 (15:49 +0100)]
Configuration - Validate the configuration on CMake 3.10 and later (#762)

- adm/cmake/gtest.cmake: check CMake version before using FetchContent; emit a warning and skip FetchContent-based GoogleTest setup when CMake < 3.11.
- adm/cmake/occt_macros.cmake: wrap list(REMOVE_DUPLICATES ...) calls in if() checks to avoid operating on empty/unset variables.

9 days agoApplication Framework - Early-return null NamedShape when TNaming_UsedShapes is missi...
Pasukhin Dmitry [Fri, 24 Oct 2025 08:11:48 +0000 (09:11 +0100)]
Application Framework - Early-return null NamedShape when TNaming_UsedShapes is missing (#760)

Check Acces.Root().FindAttribute(...) result in TNaming_Tool::NamedShape and return an empty Handle
if the TNaming_UsedShapes attribute is not found to avoid using an uninitialized map.

11 days agoData Exchange, STEP - Replace String typedef and global temp buffers in StepData_Step...
Pasukhin Dmitry [Wed, 22 Oct 2025 17:03:50 +0000 (18:03 +0100)]
Data Exchange, STEP - Replace String typedef and global temp buffers in StepData_StepReaderData (#756)

- Remove typedef TCollection_HAsciiString String and global statics (txtmes, initstr, subl)
- Use explicit string for message handles and function-local char txtmes buffers, drop constructor initstr logic, and update error/warning formatting.
- Reduce global mutable state and clarify message handling.

11 days agoFoundation, Testing - Use computational basis size for arrays in PLib_JacobiPolynomia...
Pasukhin Dmitry [Wed, 22 Oct 2025 15:42:45 +0000 (16:42 +0100)]
Foundation, Testing - Use computational basis size for arrays in PLib_JacobiPolynomial tests (#755)

Allocate TColStd_Array1OfReal using aDegree = WorkDegree - 2*(NivConstr()+1) in BasisFunctionD0, BasisFunctionDerivatives and StressTests so array sizes match the actual number of basis functions and avoid sizing mismatches.

11 days agoFoundation Classes - Optimize AsciiString with pre-defined string (#752)
Pasukhin Dmitry [Wed, 22 Oct 2025 11:39:48 +0000 (12:39 +0100)]
Foundation Classes - Optimize AsciiString with pre-defined string (#752)

- Rename internal members mystring/mylength -> myString/myLength across AsciiString
  implementation and related files to improve naming consistency.
- Add std::string_view support and efficient overloads:
  - constructor from string_view, AssignCat/Copy/Insert/SetValue from string_view
  - Cat, operators (+, +=) and comparison helpers accepting string_view
  - Token/StartsWith/EndsWith/Search helpers and literal-template overloads
  - operator std::string_view() to obtain a non-owning view
  - IsEqual/IsSameString/IsDifferent variants for string_view/C-string combinations
  - optimized literal templates to avoid runtime strlen for compile-time literals
- Improve memory handling and allocation helpers (allocate/reallocate/deallocate)
  and keep padding strategy consistent.
- Add Insert/AssignCat implementations that accept string_view and use memmove/memcpy.
- Fix calls in HAsciiString to use direct method instead of members
- Adjust misc. parameter names and small code-style/clarity improvements.

These changes enable zero-copy interop with std::string_view, reduce redundant C-string
operations for literals, and unify internal naming for maintainability.

11 days agoData Exchange - Step supplemental geometry support (#744)
Dmitrii Kulikov [Wed, 22 Oct 2025 10:21:13 +0000 (11:21 +0100)]
Data Exchange - Step supplemental geometry support (#744)

- Added three new GUIDs to identify supplemental geometry containers, references, and individual supplemental geometry items in the XCAF document structure
- Implemented logic to extract and convert STEP geometric items (curves and surfaces) into TopoDS shapes when they are referenced by PMI but not present in the main model
- Refactored duplicate code for finding PMI reference positions and geometry into reusable functions

12 days agoShape Healing - Regression after #584 (#753)
Pasukhin Dmitry [Tue, 21 Oct 2025 10:14:33 +0000 (11:14 +0100)]
Shape Healing - Regression after #584 (#753)

Fixed issue with unstable shape order after fixing.
Fixed reference data which was changed

2 weeks agoMesh - Import of STEP file crashes at the very end when visualizing the boundary...
Dmitrii Kulikov [Thu, 16 Oct 2025 17:46:10 +0000 (18:46 +0100)]
Mesh - Import of STEP file crashes at the very end when visualizing the boundary curves (#745)

When an edge (BRepMeshData_Edge) has multiple PCurve curves (IMeshData_PCurve) with different orientations, the index array is filled for only one PCurve curve.
This would cause problems later, so a fix was made to fill index arrays for curves with another orientation.

2 weeks agoCoding - Checking for copyright notice (#749)
Pasukhin Dmitry [Thu, 16 Oct 2025 17:39:56 +0000 (18:39 +0100)]
Coding - Checking for copyright notice (#749)

Created a new CI step to validate the presence of a copyright notice in each source file.
Updated existed files to include the copyright notice.

2 weeks agoVisualization - Unexpected moving with AIS_ViewCube (#727)
Pasukhin Dmitry [Thu, 16 Oct 2025 13:13:50 +0000 (14:13 +0100)]
Visualization - Unexpected moving with AIS_ViewCube (#727)

- Removes Euler angle storage and calculations that caused rotation instabilities
- Replaces complex coordinate transformations with direct camera vector manipulation
- Implements quaternion-based rotation logic using stored camera direction and up vectors

2 weeks agoModelling - Crash in BRepFilletAPI_MakeChamfer (#743)
Dmitrii Kulikov [Thu, 16 Oct 2025 07:54:40 +0000 (08:54 +0100)]
Modelling - Crash in BRepFilletAPI_MakeChamfer (#743)

- Refactored helper functions with clearer naming and improved parameter handling
- Added null safety checks to prevent crashes when edge lookup fails in face topology
- Removed debug code and simplified variable declarations for better maintainability

3 weeks agoShape Healing - Optimize FixFaceOrientation (#584)
Pasukhin Dmitry [Sat, 11 Oct 2025 11:19:50 +0000 (12:19 +0100)]
Shape Healing - Optimize FixFaceOrientation (#584)

Refactor shell construction algorithm for improved performance:
- Add GetConnectedFaceGroups function using DFS to identify topologically
  connected face groups before shell construction
- Replace O(nˆ3) iterations with pre-built connectivity maps (FaceEdgesMap,
  EdgeFacesMap) using STL unordered_map with custom allocators for O(1) lookup.
- Process only the largest connected component first, significantly reducing
  time complexity for large face sets

3 weeks agoCoding - Add RTTI support for TFunction_Logbook class (#741)
Gordan Segon [Fri, 10 Oct 2025 12:07:03 +0000 (14:07 +0200)]
Coding - Add RTTI support for TFunction_Logbook class (#741)

- Added RTTI macro declarations and implementations for TFunction_Logbook
- Improved type identification for debugging and error reporting

3 weeks agoModeling - Crash in BRepOffsetAPI_MakePipeShell (#740)
Dmitrii Kulikov [Thu, 9 Oct 2025 17:37:51 +0000 (18:37 +0100)]
Modeling - Crash in BRepOffsetAPI_MakePipeShell (#740)

Performed a basic refactoring of BRepFill_SectionPlacement::Perform()
  and fixed a crash.

3 weeks agoTesting - Add ShapeAnalysis_CanonicalRecognition unit tests (#720)
Pasukhin Dmitry [Thu, 9 Oct 2025 10:27:04 +0000 (11:27 +0100)]
Testing - Add ShapeAnalysis_CanonicalRecognition unit tests (#720)

- Implements 20+ test cases covering curve recognition (line, circle, ellipse) and surface recognition (plane, cylinder, cone, sphere)
- Tests both simple canonical shapes and complex multi-segment/sewn geometry scenarios
- Includes error handling tests for invalid/null shapes

3 weeks agoCoding - Remove duplicate and self-referencing include directives (#739)
Pasukhin Dmitry [Wed, 8 Oct 2025 17:04:28 +0000 (18:04 +0100)]
Coding - Remove duplicate and self-referencing include directives (#739)

- Removal of self-referencing includes where files include themselves
- Elimination of duplicate include statements within the same file
- Cleanup of redundant includes in conditional compilation blocks
- Adding CI validation for validation PRs

3 weeks agoTesting - Cover Boolean operation with GTests (#721)
Pasukhin Dmitry [Wed, 8 Oct 2025 10:50:42 +0000 (11:50 +0100)]
Testing - Cover Boolean operation with GTests (#721)

- Added systematic Boolean operation test coverage using Google Test framework
- Implemented test utilities for shape creation, transformation, and validation
- Migrated existing Draw-based Boolean tests to C++ GTests for better automation

3 weeks agoVisualization - Fix method to transform AABB (#735)
Rodrigo Brayner Lyra [Tue, 7 Oct 2025 19:19:11 +0000 (20:19 +0100)]
Visualization - Fix method to transform AABB (#735)

Replace the incorrect implementation of Axis Aligned Bounding Boxes transformation to Jim Arvo's efficient AABB transformation algorithm described in his chapter in the Graphics Gems (1990) book.

The algorithm simplifies the number of operations necessary to transform the AABB. Instead of transforming the eight vertices of the original AABB, and then computing the bounding box of the transformed vertices, Arvo's algorithm works by forming both products for each component of the min and max point, and summing the smallest/largest terms, we arrive at the minimal/maximal value.

3 weeks agoModeling - Segfault on chamfer or fillet approaching ellipse (#738)
Dmitrii Kulikov [Tue, 7 Oct 2025 19:15:37 +0000 (20:15 +0100)]
Modeling - Segfault on chamfer or fillet approaching ellipse (#738)

Fixed nullptr dereference

5 weeks agoData Exchange - Hang in STEPCAFControl_Reader (#733)
Dmitrii Kulikov [Wed, 24 Sep 2025 15:47:24 +0000 (16:47 +0100)]
Data Exchange - Hang in STEPCAFControl_Reader (#733)

Constructor of BRepTopAdaptor_FClass2d is updated to guarantee
processing of curves with large parameters values with small difference
between them.

6 weeks agoCoding - Method guard iterative update (#732)
Pasukhin Dmitry [Sun, 21 Sep 2025 10:50:56 +0000 (11:50 +0100)]
Coding - Method guard iterative update (#732)

Used regex in src folder:
^//[\s\n\r\t]*[-=]{2,}[=]*[\n\r]*//[\s\n\r\t]*[a-z]+[\s\n\r\t]*:[\s\n\r\t]*[a-z0-9_:\t\s]*[\s\n\r\t]*//[\s\n\r\t]*[a-z]+[\s\n\r\t]*:[\s\n\r\t]*[a-z0-9_\s\t./-><]{0,22}//[\s\n\r\t]*[-=]{3,}[=]*

6 weeks agoCoding - Blame ignore for gxx formatting patch (#731)
Pasukhin Dmitry [Sun, 21 Sep 2025 10:18:30 +0000 (11:18 +0100)]
Coding - Blame ignore for gxx formatting patch (#731)

Updated file .git-blame-ignore-revs to ignore gxx formatting commit

6 weeks agoCoding - Applying formatting to gxx files (#730)
Pasukhin Dmitry [Sun, 21 Sep 2025 08:53:01 +0000 (09:53 +0100)]
Coding - Applying formatting to gxx files (#730)

- Updated GitHub Action for ASCII Check and Clang-Format
- Formatted all gxx files in the src directory

7 weeks agoFoundation Classes - EigenValuesSearcher improvements (#714)
Pasukhin Dmitry [Thu, 11 Sep 2025 13:30:07 +0000 (14:30 +0100)]
Foundation Classes - EigenValuesSearcher improvements (#714)

- Complete replacement of handle-based arrays (`TColStd_HArray`) with direct `NCollection_Array` instances
- Comprehensive algorithm refactoring using the QL algorithm with Wilkinson shifts for improved numerical stability
- Enhanced documentation with detailed mathematical context and algorithm explanations
- Addition of comprehensive unit tests covering edge cases and numerical stability scenarios

7 weeks agoFoundation Classes - math Container optimization (#717)
Pasukhin Dmitry [Thu, 11 Sep 2025 08:36:05 +0000 (09:36 +0100)]
Foundation Classes - math Container optimization (#717)

Increase DoubleTab container buffer size to 64 from 16.
Optimize the vector initialisation with 5-10% increasing time.
  Before the creating was takes too much branching.

7 weeks agoTesting - Remove QANCollection package (#718)
Pasukhin Dmitry [Wed, 10 Sep 2025 17:31:12 +0000 (18:31 +0100)]
Testing - Remove QANCollection package (#718)

- Removes all QANCollection header and source files that contained collection type definitions and test utilities
- Updates the build configuration to remove QANCollection from the package list
- Removes the QANCollection integration from the main QADraw factory

7 weeks agoTesting - Migrate QA NCollection to GTests (#709)
Pasukhin Dmitry [Mon, 8 Sep 2025 14:59:34 +0000 (15:59 +0100)]
Testing - Migrate QA NCollection to GTests (#709)

- Complete removal of old Draw Harness test infrastructure for NCollection classes
- Addition of new GTest files testing STL algorithm compatibility (min, max, replace, sort, reverse)
- Migration of OSD_Path and Handle operation tests to GTest format

7 weeks agoTesting - Add unit tests for Standard_ArrayStreamBuffer (#708)
Pasukhin Dmitry [Mon, 8 Sep 2025 08:50:35 +0000 (09:50 +0100)]
Testing -  Add unit tests for Standard_ArrayStreamBuffer (#708)

- Replaces legacy DRAW command-based tests with modern GTest framework
- Removes the `OCC28887` DRAW command and associated test files
- Adds comprehensive unit test coverage for `Standard_ArrayStreamBuffer` functionality

7 weeks agoCoding - Remove OSD_MAllocHook class (#707)
Pasukhin Dmitry [Mon, 8 Sep 2025 08:50:07 +0000 (09:50 +0100)]
Coding - Remove OSD_MAllocHook class (#707)

- Complete removal of the `OSD_MAllocHook` class and its related handler implementations
- Removal of the Draw command "mallochook" that provided command-line interface to the memory tracking functionality
- Updates to build configuration to exclude the removed files

8 weeks agoTesting - Fix GTests for TKMath in Debug (#706)
Pasukhin Dmitry [Sun, 7 Sep 2025 18:17:58 +0000 (19:17 +0100)]
Testing - Fix GTests for TKMath in Debug (#706)

- Relaxed mathematical tolerances from extremely tight values (1.0e-15) to more reasonable ones (1.0e-10/1.0e-12) for debug mode compatibility
- Increased iteration limits to allow algorithms more time to converge in debug builds
- Added exception handling with EXPECT_NO_THROW to prevent test crashes in debug mode

8 weeks agoTesting - Add unit tests for PLib functionality (#705)
Pasukhin Dmitry [Sun, 7 Sep 2025 18:17:13 +0000 (19:17 +0100)]
Testing - Add unit tests for PLib functionality (#705)

- Introduced comprehensive unit tests for the Jacobi polynomial implementation in PLib, covering constructors, edge cases, Gauss integration points, weights, and basis function evaluations.
- Added tests for basic utility functions in PLib, including pole conversion and binomial coefficient calculations.
- Implemented checks for Hermite interpolation and polynomial evaluation with derivatives.
- Enhanced error handling and edge case testing for small and large coefficients.
- Initialised MaxError in PLib_DoubleJacobiPolynomial to ensure consistent behaviour during degree reduction.

8 weeks agoModeling - Fix array indexing bug in IntAna_IntQuadQuad::NextCurve method (#703)
Pasukhin Dmitry [Sat, 6 Sep 2025 12:36:48 +0000 (13:36 +0100)]
Modeling - Fix array indexing bug in IntAna_IntQuadQuad::NextCurve method (#703)

Fixed a critical indexing bug in IntAna_IntQuadQuad::NextCurve where the
  method incorrectly used nextcurve[I] instead of nextcurve[I-1] for
  determining the theOpposite parameter.
This mismatch between 1-indexed API
  parameters and 0-indexed array access could lead to out-of-bounds memory
  access and incorrect curve connectivity determination.

Changes:
  - Fix IntAna_IntQuadQuad::NextCurve to use consistent I-1 indexing for both
   condition check and return value
  - Add comprehensive GTests covering NextCurve functionality, edge cases,
  and performance
  - Ensure proper error handling for invalid curve indices

8 weeks agoTesting - Resolving CICD issues (#702)
Pasukhin Dmitry [Sat, 6 Sep 2025 10:14:31 +0000 (11:14 +0100)]
Testing - Resolving CICD issues (#702)

- Added missing `<algorithm>` include for C++ standard library functionality
- Suppressed unknown warning options in the macOS build configuration to prevent build failures

8 weeks agoShape Healing, STP Import - Revolved shape in STEP file is imported inverted (#699)
ikochetkova [Thu, 4 Sep 2025 16:05:44 +0000 (17:05 +0100)]
Shape Healing, STP Import - Revolved shape in STEP file is imported inverted (#699)

Make the degenerated torus bounded in two values of parameters processed as a regular to insert a seam edge properly.

8 weeks agoData Exchange, DE Wrapper - Reorganisation of plugin system for Configuration Nodes...
Pasukhin Dmitry [Wed, 3 Sep 2025 15:51:18 +0000 (16:51 +0100)]
Data Exchange, DE Wrapper - Reorganisation of plugin system for Configuration Nodes (#696)

- Added Register and UnRegister methods to DE_ConfigurationNode for managing bindings with DE_Wrapper.
- Introduced DE_MultiPluginHolder to facilitate registration of multiple configuration nodes simultaneously.
- Created new plugin factory functions for various configuration nodes (DEBREP, DEXCAF, DEGLTF, DEIGES, DEOBJ, DEPLY, DESTEP, DESTL, DEVRML) to streamline their registration with DE_Wrapper.
- Removed unnecessary DE_PluginHolder instances from individual configuration node implementations.
- Updated CMake files to include newly created source files for each configuration node.
- Implemented singleton patterns in draw commands to ensure plugins are registered only once during initialization.

2 months agoTesting - Fix macOS setup to install Mono separately (#697)
Pasukhin Dmitry [Sat, 30 Aug 2025 16:16:23 +0000 (17:16 +0100)]
Testing - Fix macOS setup to install Mono separately (#697)

- Replaces single brew install command with multiple individual brew install commands
- Each package installation is wrapped with `|| true` to prevent failures from stopping the workflow

2 months agoMesh - Stack overflow when meshing (#695)
Dmitrii Kulikov [Fri, 29 Aug 2025 21:49:53 +0000 (22:49 +0100)]
Mesh - Stack overflow when meshing (#695)

- Introduced `StackOfFrames` class to manage processing frames iteratively instead of recursively
- Modified `killTrianglesAroundVertex` method to collect victim nodes in a provided container rather than recursively processing them
- Replaced recursive depth-first traversal with iterative processing using the new stack-based approach

2 months agoTesting - Cover math module with GTests (#684)
Pasukhin Dmitry [Sun, 24 Aug 2025 18:52:47 +0000 (19:52 +0100)]
Testing - Cover math module with GTests (#684)

- Extensive test coverage for core mathematical algorithms (Newton methods, optimization, linear algebra, root finding)
- Bug fix for proper iteration count tracking in `math_FunctionRoot`
- Bug fix for custom vector bounds handling in `math_SVD`
- Dependency update in `OSD_PerfMeter_Test` by replacing Boolean operations with mathematical computations

2 months agoDraw - Fix message color mixing (#685)
Kirill Gavrilov [Sat, 2 Mar 2024 12:03:11 +0000 (15:03 +0300)]
Draw - Fix message color mixing (#685)

Message color from previous message in Unix was mixed.

2 months agoCoding - Dangerous use of 'cin' (#681)
Pasukhin Dmitry [Sun, 17 Aug 2025 20:03:18 +0000 (21:03 +0100)]
Coding - Dangerous use of 'cin' (#681)

- Replaced hardcoded buffer sizes with `constexpr size_t aBufferSize` constants
- Added `width()` calls to input streams before reading to prevent buffer overflows
- Applied consistent buffer size management across multiple input operations

2 months agoCoding - Incorrect return-value check for a 'scanf'-like function (#680)
Pasukhin Dmitry [Sun, 17 Aug 2025 20:01:32 +0000 (21:01 +0100)]
Coding - Incorrect return-value check for a 'scanf'-like function (#680)

Fix sscanf condition checks in iges_lire function for better error handling

2 months agoCoding, TKXSBase - Translation to English (#679)
Pasukhin Dmitry [Sun, 17 Aug 2025 18:42:21 +0000 (19:42 +0100)]
Coding, TKXSBase - Translation to English (#679)

- Updated French comments to English for better accessibility and understanding.
- Enhanced clarity of comments to better describe the functionality and purpose of the code.
- Ensured consistency in terminology and phrasing throughout the codebase.
- Made minor adjustments to comment formatting for improved readability.

2 months agoCoding - Moving to Sprintf call (#675)
Pasukhin Dmitry [Sun, 17 Aug 2025 11:45:30 +0000 (12:45 +0100)]
Coding - Moving to Sprintf call (#675)

- Updates function calls from `sprintf` to `Sprintf` across the entire codebase
- Updates comments and documentation references to reflect the new function name
- Adds format attribute annotations to the `Sprintf` function declaration for better compiler validation

2 months agoCoding, TKDEIGES - Translation to English (#678)
Pasukhin Dmitry [Sun, 17 Aug 2025 08:53:01 +0000 (09:53 +0100)]
Coding, TKDEIGES - Translation to English (#678)

- Updated comments in IGESGeom_ToolCircularArc, IGESGeom_ToolCurveOnSurface, IGESGeom_ToolOffsetCurve, IGESGeom_ToolPlane, IGESGeom_ToolSplineSurface, IGESGeom_ToolTransformationMatrix, IGESGraph_ToolColor, IGESGraph_ToolDrawingUnits, IGESSelect, IGESSelect_Activator, IGESSelect_RebuildGroups, IGESSelect_SelectBypassGroup, IGESSelect_SelectBypassSubfigure, IGESSelect_SignStatus, IGESSelect_ViewSorter, IGESSelect_WorkLibrary, IGESToBRep, IGESToBRep_BRepEntity, IGESToBRep_BasicCurve, IGESToBRep_BasicSurface, IGESToBRep_TopoCurve, IGESToBRep_TopoSurface to improve readability and understanding.
- Translated French comments to English where applicable.
- Ensured comments accurately reflect the functionality and intent of the code.

2 months agoCoding - Update Clang-format with more macroses (#677)
Pasukhin Dmitry [Sat, 16 Aug 2025 19:50:50 +0000 (20:50 +0100)]
Coding - Update Clang-format with more macroses (#677)

- Updates `.clang-format` to include `OCC_CATCH_SIGNALS`, `DEFINE_STANDARD_RTTIEXT`, and `Draw_Drawable3D_FACTORY` as statement macros
- Adds a GitHub action step to automatically remove empty lines after `Standard_DEPRECATED` macro declarations
- Reformats numerous files by removing blank lines after deprecated method declarations and improving macro formatting

2 months agoCoding - Reducing relying on exceptions (#676)
Pasukhin Dmitry [Sat, 16 Aug 2025 12:55:33 +0000 (13:55 +0100)]
Coding - Reducing relying on exceptions (#676)

- Replaced try-catch blocks with explicit validation checks in PCDM_ReadWriter_1.cxx
- Added division-by-zero protection in XSDRAWSTL.cxx using precision-based comparison
- Improved error handling for integer parsing operations

2 months agoCoding, StepData - Translation to English (#672)
Pasukhin Dmitry [Sat, 16 Aug 2025 10:09:48 +0000 (11:09 +0100)]
Coding, StepData - Translation to English (#672)

- Comprehensive translation of French comments to English throughout the StepData module
- Enhanced inline documentation explaining complex algorithms and data structures
- Improved variable name comments and method descriptions for better code comprehension

2 months agoData Exchange, STP - Crash on empty list (#671)
Pasukhin Dmitry [Sat, 16 Aug 2025 08:24:21 +0000 (09:24 +0100)]
Data Exchange, STP - Crash on empty list (#671)

Added condition to always allocate an array in case of empty list

2 months agoCoding - Method guard iterative update (#674)
Pasukhin Dmitry [Fri, 15 Aug 2025 16:14:53 +0000 (17:14 +0100)]
Coding - Method guard iterative update (#674)

- Standardizes comment formatting by replacing detailed comment blocks with a uniform "//=================================================================================================" separator
- Removes redundant "function:" and "purpose:" fields that often contained minimal or no useful information
- Maintains code functionality while improving visual consistency across the codebase

2 months agoTesting - Removed old test reference (#673)
Pasukhin Dmitry [Fri, 15 Aug 2025 08:43:27 +0000 (09:43 +0100)]
Testing - Removed old test reference (#673)

Fixed regression when retests were failed for not windows.

2 months agoCoding, DEGLTF_Provider - Hiding declaration (#669)
Pasukhin Dmitry [Thu, 14 Aug 2025 09:24:27 +0000 (10:24 +0100)]
Coding, DEGLTF_Provider - Hiding declaration (#669)

DEGLTF_Provider.cxx(144,29): warning C4456: declaration of 'aContext' hides previous local declaration

2 months agoData Exchange, STEP Export - General Attributes (#634)
Petras Vestartas [Tue, 12 Aug 2025 08:29:47 +0000 (10:29 +0200)]
Data Exchange, STEP Export - General Attributes (#634)

- Adds metadata writing capability through new `MetadataMode` flag and `writeMetadata` method
- Exports string metadata as STEP `property_definition` entities linked to product definitions
- Integrates metadata writing into the main transfer workflow alongside existing property writing

2 months agoData Exchange, DE_Wrapper - Implement Stream support (#663)
Pasukhin Dmitry [Fri, 8 Aug 2025 11:05:27 +0000 (12:05 +0100)]
Data Exchange, DE_Wrapper - Implement Stream support (#663)

- Adds stream-based read/write methods to multiple data exchange providers
- Refactors underlying APIs (VrmlAPI_Writer, StlAPI_Writer, RWStl) to support stream operations
- Implements comprehensive test coverage for stream functionality
- Adds validation utilities for improved error handling

2 months agoFoundation Classes - Documentation update for TCollection (#665)
Pasukhin Dmitry [Fri, 8 Aug 2025 09:31:54 +0000 (10:31 +0100)]
Foundation Classes - Documentation update for TCollection (#665)

- Introduces helper functions for consistent padded memory allocation across AsciiString and ExtendedString classes
- Improves documentation for UTF-8 conversion methods with clearer buffer allocation guidance
- Adds comprehensive test coverage for string constructors, memory allocation, and UTF-8 conversion functionality

2 months agoModeling, Bnd_Box - CornerMax incorrect realisation (#664)
Pasukhin Dmitry [Fri, 8 Aug 2025 09:18:29 +0000 (10:18 +0100)]
Modeling, Bnd_Box - CornerMax incorrect realisation  (#664)

- Fixed the logical error in `CornerMax()` method by correcting the openness condition checks
- Added comprehensive GTest suite for `Bnd_Box` class to prevent similar regressions
- Minor code formatting improvements in the `DumpJson()` method

3 months agoModeling - Fix null surface crash in fixshape (#623)
Sander Adamson [Fri, 1 Aug 2025 17:10:21 +0000 (18:10 +0100)]
Modeling - Fix null surface crash in fixshape (#623)

- Added null surface validation in ShapeAnalysis_Surface constructor and Init method
- Added null surface checks throughout ShapeFix_Face methods to prevent crashes
- Enhanced robustness by validating surface availability before performing surface-dependent operations

3 months agoModeling - Fix null surface crash in UnifySameDomain (#624)
Sander Adamson [Fri, 1 Aug 2025 08:47:28 +0000 (09:47 +0100)]
Modeling - Fix null surface crash in UnifySameDomain (#624)

- Added null safety checks in the ClearRts function and IntUnifyFaces method
- Refactored ClearRts to use a more concise implementation with null handling
- Added a test case to verify the fix works with tessellated geometry

3 months agoTesting - Create occt artefact action (#658)
Pasukhin Dmitry [Wed, 30 Jul 2025 20:07:08 +0000 (21:07 +0100)]
Testing - Create occt artefact action (#658)

- Created custom upload-artifacts and download-artifacts actions with platform-specific logic
- Updated all existing workflows to use the new custom artifact actions
- Added extraction steps for tar.gz archives in the test summary workflow

3 months agoCoding - Add .DS_Store to ignore list (#655)
Pasukhin Dmitry [Wed, 30 Jul 2025 13:33:02 +0000 (14:33 +0100)]
Coding - Add .DS_Store to ignore list (#655)

3 months agoCoding - Bump version to 8.0.0-rc2 V8_0_0_rc2
dpasukhi [Tue, 29 Jul 2025 11:45:21 +0000 (12:45 +0100)]
Coding - Bump version to 8.0.0-rc2

3 months agoCoding - Remove unused dependencies from TKXDEDRAW (#650)
Pasukhin Dmitry [Tue, 29 Jul 2025 07:39:07 +0000 (08:39 +0100)]
Coding - Remove unused dependencies from TKXDEDRAW (#650)

- Removed unused dependency includes from TKXDEDRAW/XDEDRAW module files
- Moved dimension type checking methods from STEPCAFControl_GDTProperty to XCAFDimTolObjects_DimensionObject
- Updated external library dependencies to remove unused libraries

3 months agoBuild - Remove GLTF files from XDEDRAW (#649)
Pasukhin Dmitry [Mon, 28 Jul 2025 20:48:29 +0000 (21:48 +0100)]
Build - Remove GLTF files from XDEDRAW (#649)

- Removes the `DEGLTF_ConfigurationNode.hxx` include from the XDEDRAW source file

3 months agoModeling - Implement new Helix Toolkit (#648)
Pasukhin Dmitry [Mon, 28 Jul 2025 11:51:16 +0000 (12:51 +0100)]
Modeling - Implement new Helix Toolkit (#648)

- Adds a complete TKHelix toolkit with geometric helix curve adaptor and topological builders
- Implements advanced B-spline approximation algorithms for high-quality helix representation
- Provides comprehensive TCL command interface for interactive helix creation and testing

3 months agoConfiguration, CMake - Build config file is invalid (#647)
Pasukhin Dmitry [Sun, 27 Jul 2025 11:33:37 +0000 (12:33 +0100)]
Configuration, CMake - Build config file is invalid (#647)

- Fixed missing `@` delimiter in template variable substitution for QT directory detection
- Added compiler bitness calculation before custom script generation
- Implemented nested variable expansion for custom build paths

3 months agoConfiguration, CMake - Disable build GLTF without RapidJSON (#646)
Pasukhin Dmitry [Sun, 27 Jul 2025 09:21:21 +0000 (10:21 +0100)]
Configuration, CMake - Disable build GLTF without RapidJSON (#646)

Exclude TKDEGLTF and TKXSDRAWGLTF toolkits when RapidJSON is disabled

3 months agoCoding - Geom package Copy optimisation (#645)
Pasukhin Dmitry [Sat, 26 Jul 2025 16:38:46 +0000 (17:38 +0100)]
Coding - Geom package Copy optimisation (#645)

- Adds copy constructors for 9 geometry classes (Bezier/BSpline curves and surfaces, offset curves and surfaces in both 2D and 3D)
- Updates Copy() methods to use the new copy constructors instead of recreating objects through standard constructors
- Includes comprehensive test coverage for all new copy constructors

3 months agoCMake - Remove unused CMake script (#644)
Pasukhin Dmitry [Sat, 26 Jul 2025 12:21:22 +0000 (13:21 +0100)]
CMake - Remove unused CMake script (#644)

Removed script for OCCT toolkit sample preparation

3 months agoSamples - CMake configuration fix (#643)
Pasukhin Dmitry [Fri, 25 Jul 2025 09:38:48 +0000 (10:38 +0100)]
Samples - CMake configuration fix (#643)

- Migrates legacy text-based FILES, PACKAGES, and EXTERNLIB configuration files to proper CMake format (.cmake extensions)
- Updates CMakeLists.txt files to use modern CMake practices with explicit configurations and target-specific definitions
- Modifies the qt_macro.cmake to work with the new CMake variable-based file management system

3 months agoConfiguration, CMake - Flexible project root (#641)
Pasukhin Dmitry [Thu, 24 Jul 2025 08:49:19 +0000 (09:49 +0100)]
Configuration, CMake - Flexible project root (#641)

- Replaces all `CMAKE_SOURCE_DIR` references with `OCCT_ROOT_DIR` across CMake files
- Updates build templates to use the new root directory variable
- Modifies environment variable configurations to use the flexible root path

3 months agoTesting - Update GitHub Actions to use latest versions (#640)
Pasukhin Dmitry [Wed, 23 Jul 2025 15:51:43 +0000 (16:51 +0100)]
Testing - Update GitHub Actions to use latest versions (#640)

- Updates `actions/checkout` from v4.1.7 to v4.2.2 across all workflows
- Updates `actions/upload-artifact` from v4.4.3 to v4.6.2 across all custom actions
- Updates `actions/download-artifact` from v4.1.7/v4.1.8 to v4.3.0 across all custom actions

3 months agoConfiguration - Add VCPKG port opencascade (#638)
Pasukhin Dmitry [Wed, 23 Jul 2025 14:22:55 +0000 (15:22 +0100)]
Configuration - Add VCPKG port opencascade (#638)

- Restructures VCPKG manifest directory structure and updates path references accordingly
- Implements a comprehensive portfile.cmake with feature detection, build configuration, and installation logic
- Updates overlay port and triplet paths to reflect the new directory structure

3 months agoConfiguration - VCPKG extend feature list (#637)
Pasukhin Dmitry [Tue, 22 Jul 2025 20:13:11 +0000 (21:13 +0100)]
Configuration -  VCPKG extend feature list (#637)

- Added precompiled headers support for improved compilation performance
- Added C++20 and C++23 standard compilation mode options
- Added optimized build configuration for production deployments
- Added Direct3D graphics backend support for Windows platforms

3 months agoConfiguration - Add vcpkg layout support (#618)
Pasukhin Dmitry [Tue, 22 Jul 2025 20:12:11 +0000 (21:12 +0100)]
Configuration - Add vcpkg layout support (#618)

- Addition of vcpkg layout configuration with CMake file placement in share/ directory for vcpkg compliance
- Introduction of OCCT_PROJECT_NAME parameter (defaults to "opencascade") for customizing directory structure in vcpkg layout
- Updated environment scripts and build templates to support vcpkg directory structure while maintaining backward compatibility

3 months agoFoundation classes - Include brackets type fix (#635)
Pasukhin Dmitry [Tue, 22 Jul 2025 12:10:36 +0000 (13:10 +0100)]
Foundation classes - Include brackets type fix (#635)

- Updates include statements to use angle brackets for foundation class headers

3 months agoModelling - Add option to not build history in BRepFill_PipeShell (#632)
Dmitrii Kulikov [Tue, 22 Jul 2025 09:42:02 +0000 (10:42 +0100)]
Modelling - Add option to not build history in BRepFill_PipeShell (#632)

- Adds `myIsBuildHistory` boolean member to `BRepFill_PipeShell` with default value `true`
- Implements getter/setter methods in both `BRepFill_PipeShell` and `BRepOffsetAPI_MakePipeShell` interfaces
- Conditionally calls `BuildHistory()` method based on the flag value

3 months agoModelling - GeomFill_CorrectedFrenet hangs in some cases (#630)
Dmitrii Kulikov [Mon, 21 Jul 2025 10:10:27 +0000 (11:10 +0100)]
Modelling - GeomFill_CorrectedFrenet hangs in some cases (#630)

- Added parameter progression check to prevent infinite loops when step size becomes too small
- Improved code formatting and variable naming for better maintainability
- Added comprehensive test suite covering the infinite loop scenario and edge cases

3 months agoTesting - Fix skipped daily IR on macOS (#628)
Pasukhin Dmitry [Sat, 19 Jul 2025 10:32:13 +0000 (11:32 +0100)]
Testing - Fix skipped daily IR on macOS (#628)

Fix macOS job condition in daily vcpkg configuration workflow

3 months agoConfiguration - Fix ARCH for older 32-bit macs (#626)
Pasukhin Dmitry [Sat, 19 Jul 2025 10:04:38 +0000 (11:04 +0100)]
Configuration - Fix ARCH for older 32-bit macs (#626)

- Updates architecture detection conditions to include aarch64 and arm64 as 64-bit architectures
- Removes redundant ARCH="64" assignment for Darwin systems since it's already handled by the architecture check
- Fixes a syntax error in the existing aarch64 condition

3 months agoFoundation classes - Leak of WinAPI resources. (#625)
Dmitrii Kulikov [Fri, 18 Jul 2025 15:58:59 +0000 (16:58 +0100)]
Foundation classes - Leak of WinAPI resources. (#625)

- Replaces raw IWICBitmapFlipRotator pointer with Image_ComPtr smart pointer wrapper
- Updates pointer access patterns to use smart pointer methods (.ChangePtr() and .get())
- Maintains existing functionality while improving resource management

3 months agoCoding, AIS_InteractiveContext - mark as deprecated methods related to Immediate...
Kirill Gavrilov [Fri, 25 Apr 2025 05:49:11 +0000 (08:49 +0300)]
Coding, AIS_InteractiveContext - mark as deprecated methods related to Immediate Mode rendering (#521)

3 months agoDraw, vcomputehlr - Misprint in command leading to error if no Viewer (#526)
Kirill Gavrilov [Sat, 19 Apr 2025 07:09:10 +0000 (10:09 +0300)]
Draw, vcomputehlr - Misprint in command leading to error if no Viewer (#526)

3 months agoDocumentation, HLRBRep_HLRToShape - Add missing description to some methods (#525)
Kirill Gavrilov [Sat, 19 Apr 2025 07:34:22 +0000 (10:34 +0300)]
Documentation, HLRBRep_HLRToShape - Add missing description to some methods (#525)

3 months agoData Exchange, RWObj_Reader - Facets with empty normals like 'f 1// 2// 3//' (#520)
Kirill Gavrilov [Wed, 16 Jul 2025 12:16:52 +0000 (13:16 +0100)]
Data Exchange, RWObj_Reader - Facets with empty normals like 'f 1// 2// 3//' (#520)

Removing an obsolete header comment in the PPM writer
Correcting the handling of facet indices when normals or texture coordinates are empty in the OBJ reader.
- In Image_AlienPixMap.cxx, the unused header comment is removed.
- In Graphic3d_Aspects.hxx, the default viewer settings comment is updated.
- In RWObj_Reader.cxx, additional checks are added
    to correctly parse OBJ face definitions with empty texture and normal indices.

3 months agoDocumentation - Graphic3d_Aspects::PolygonOffsets update comments (#519)
Kirill Gavrilov [Wed, 16 Jul 2025 10:43:52 +0000 (11:43 +0100)]
Documentation - Graphic3d_Aspects::PolygonOffsets update comments (#519)

Updated the documented default "units" value in Graphic3d_Aspects.hxx from 0 to 1.

3 months agoVisualization, Image_AlienPixMap - do not write comment into binary PPM image
Kirill Gavrilov [Wed, 16 Jul 2025 10:29:12 +0000 (11:29 +0100)]
Visualization, Image_AlienPixMap - do not write comment into binary PPM image

This comment is not skipped by some Linux image readers (including GIMP)
and display image corrupted (shifted colors, etc.).

3 months agoData Exchange, STP Import - Fixing missing GDT values (#617)
Dmitrii Kulikov [Tue, 15 Jul 2025 10:09:36 +0000 (11:09 +0100)]
Data Exchange, STP Import - Fixing missing GDT values (#617)

- Changes type declarations from specific measure types to `Handle(Standard_Transient)` for broader compatibility
- Adds runtime type checking and conversion logic to extract measure values from both supported types
- Includes comprehensive unit tests to validate the new functionality

3 months agoConfiguration - VCPKG add GTest feature (#616)
Pasukhin Dmitry [Mon, 14 Jul 2025 21:15:51 +0000 (22:15 +0100)]
Configuration - VCPKG add GTest feature (#616)

- Bumped OCCT version from 7.8.1 to 8.0.0 and updated the documentation URL.
- Enhanced descriptions for existing vcpkg features and introduced a “gtest” feature in vcpkg.json.
- Modified CMakeLists.txt to add/unset the GTest vcpkg feature and reorganized test setup calls.

3 months agoData Exchange, GLTF Reader - Fix indices during parsering of arrays (#602)
sshutina [Mon, 14 Jul 2025 10:04:03 +0000 (11:04 +0100)]
Data Exchange, GLTF Reader - Fix indices during parsering of arrays (#602)

- Use the loop index (`anIndex` or `i`) instead of always reading `theValue[0]`.
- Preserve existing behavior of array allocation and string concatenation.
- Updated three loops in `RWGltf_GltfJsonParser.cxx` to reference the correct element.

3 months agoTesting - Fix master validation workflow (#611)
Pasukhin Dmitry [Sun, 13 Jul 2025 18:28:32 +0000 (19:28 +0100)]
Testing - Fix master validation workflow (#611)

- Wrap deprecated FFmpeg calls in MSVC warning push/pop pragmas in two source files
- Introduce `.github/workflows/master-validation.yml` and remove several old workflows
- Broadened `if` conditions in `daily-ir-vcpkg-configure.yml` and updated macOS brew deps

3 months agoCoding - Function guard update (#610)
Pasukhin Dmitry [Sun, 13 Jul 2025 12:16:51 +0000 (13:16 +0100)]
Coding - Function guard update (#610)

- Removed verbose function header comments (name, purpose) across multiple C++ source files.
- Introduced a single-line separator comment before each function for consistent formatting.
- Applied the change in visualization, modeling, algorithms, foundation, and application framework modules.

3 months agoTesting - Add performance summary posting to PR (#612)
Pasukhin Dmitry [Sun, 13 Jul 2025 11:55:30 +0000 (12:55 +0100)]
Testing - Add performance summary posting to PR (#612)

3 months agoFoundation Classes, math_DoubleTab - Rework to NCollection container (#607)
Pasukhin Dmitry [Sun, 13 Jul 2025 09:58:44 +0000 (10:58 +0100)]
Foundation Classes, math_DoubleTab - Rework to NCollection container (#607)

- Refactors `math_DoubleTab` to use `NCollection_Array2` as its underlying container
- Eemoves the old C‐array implementation, and updates collection classes to improve move semantics and bounds manipulation.
- Rework `math_DoubleTab` to wrap `NCollection_Array2`, with buffer optimization for small sizes
- Enhance `NCollection_Array2` and `NCollection_Array1` with proper move semantics and bound‐updating methods
- Remove legacy `.lxx`/`.cxx` implementations, add tests and update CMake file lists

3 months agoConfiguration - Fix link errors on macOS when not building using vcpkg (#609)
idz [Sun, 13 Jul 2025 08:04:07 +0000 (01:04 -0700)]
Configuration - Fix link errors on macOS when not building using vcpkg (#609)

Moved APPLE CSF definitions into general conditions.
CSF redefinition for APPLE is used for framework detection after the project initialization.

3 months agoFoundation Classes - Optimize NCollection_Array1 with type specific (#608)
Pasukhin Dmitry [Sat, 12 Jul 2025 19:05:55 +0000 (20:05 +0100)]
Foundation Classes - Optimize  NCollection_Array1 with type specific (#608)

- Replaced parameterless `construct()` and `destroy()` methods with parameterized versions that specify ranges
- Updated type trait checks from `is_arithmetic` to `is_trivially_default_constructible` and `is_trivially_destructible`
- Removed redundant local variable `anOldSize` in the `Resize` method

3 months agoData Exchange, Step Export - Preserving control directives (#601)
Pasukhin Dmitry [Sat, 12 Jul 2025 16:05:39 +0000 (17:05 +0100)]
Data Exchange, Step Export - Preserving control directives (#601)

- Introduced `CleanTextForSend` static helper with detailed documentation.
- Updated `StepData_StepWriter::Send` to use the new helper and simplified quoting/line‐wrapping logic.
- Added comprehensive GTests for `CleanTextForSend` and updated the test suite configuration.

3 months agoTesting - Update samples C++ version (#606)
Pasukhin Dmitry [Sat, 12 Jul 2025 14:44:22 +0000 (15:44 +0100)]
Testing - Update samples C++ version (#606)

- Updating Qt project files to use C++17 standard instead of GNU++11
- Configuring Visual Studio project files to use C++17 language standard
- Setting CMake projects to require C++17 standard