1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

6685 Commits

Author SHA1 Message Date
Pasukhin Dmitry
783c3440b2 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
2025-07-29 08:39:07 +01:00
Pasukhin Dmitry
7d2cce09cc Build - Remove GLTF files from XDEDRAW (#649)
- Removes the `DEGLTF_ConfigurationNode.hxx` include from the XDEDRAW source file
2025-07-28 21:48:29 +01:00
Pasukhin Dmitry
9f761b12ec 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
2025-07-28 12:51:16 +01:00
Pasukhin Dmitry
3175e001b1 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
2025-07-27 12:33:37 +01:00
Pasukhin Dmitry
9134c601a4 Configuration, CMake - Disable build GLTF without RapidJSON (#646)
Exclude TKDEGLTF and TKXSDRAWGLTF toolkits when RapidJSON is disabled
2025-07-27 10:21:21 +01:00
Pasukhin Dmitry
0eb86fb05a 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
2025-07-26 17:38:46 +01:00
Pasukhin Dmitry
1434cd7da3 CMake - Remove unused CMake script (#644)
Removed script for OCCT toolkit sample preparation
2025-07-26 13:21:22 +01:00
Pasukhin Dmitry
e42a043abe 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
2025-07-25 10:38:48 +01:00
Pasukhin Dmitry
f41a5a91e4 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
2025-07-24 09:49:19 +01:00
Pasukhin Dmitry
134afb1b7a 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
2025-07-23 16:51:43 +01:00
Pasukhin Dmitry
b5e7a7d2aa 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
2025-07-23 15:22:55 +01:00
Pasukhin Dmitry
efd12a15aa 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
2025-07-22 21:13:11 +01:00
Pasukhin Dmitry
6fb9ee594b 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
2025-07-22 21:12:11 +01:00
Pasukhin Dmitry
9219a3162e Foundation classes - Include brackets type fix (#635)
- Updates include statements to use angle brackets for foundation class headers
2025-07-22 13:10:36 +01:00
Dmitrii Kulikov
068aa6ae9f 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
2025-07-22 10:42:02 +01:00
Dmitrii Kulikov
3c2774ea5d 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
2025-07-21 11:10:27 +01:00
Pasukhin Dmitry
e837ec8486 Testing - Fix skipped daily IR on macOS (#628)
Fix macOS job condition in daily vcpkg configuration workflow
2025-07-19 11:32:13 +01:00
Pasukhin Dmitry
59738836c0 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
2025-07-19 11:04:38 +01:00
Dmitrii Kulikov
45f4afb8c7 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
2025-07-18 16:58:59 +01:00
Kirill Gavrilov
0322620c85 Coding, AIS_InteractiveContext - mark as deprecated methods related to Immediate Mode rendering (#521) 2025-07-16 19:14:06 +01:00
Kirill Gavrilov
589960b20a Draw, vcomputehlr - Misprint in command leading to error if no Viewer (#526) 2025-07-16 19:08:26 +01:00
Kirill Gavrilov
afdcc4734d Documentation, HLRBRep_HLRToShape - Add missing description to some methods (#525) 2025-07-16 17:50:55 +01:00
Kirill Gavrilov
468bcd0c27 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.
2025-07-16 15:24:48 +01:00
Kirill Gavrilov
90b0e1d590 Documentation - Graphic3d_Aspects::PolygonOffsets update comments (#519)
Updated the documented default "units" value in Graphic3d_Aspects.hxx from 0 to 1.
2025-07-16 11:44:49 +01:00
Kirill Gavrilov
4365b63531 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.).
2025-07-16 11:29:12 +01:00
Dmitrii Kulikov
413c08272b 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
2025-07-15 11:09:36 +01:00
Pasukhin Dmitry
2e2dc8d3e5 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.
2025-07-14 22:15:51 +01:00
sshutina
ef187e7b20 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.
2025-07-14 11:04:03 +01:00
Pasukhin Dmitry
06f6a5afec 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
2025-07-13 19:28:32 +01:00
Pasukhin Dmitry
0947067ed5 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.
2025-07-13 13:16:51 +01:00
Pasukhin Dmitry
d04384f9d4 Testing - Add performance summary posting to PR (#612) 2025-07-13 12:55:30 +01:00
Pasukhin Dmitry
ceafdb0436 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
2025-07-13 10:58:44 +01:00
idz
878cd2f6d6 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.
2025-07-13 09:04:07 +01:00
Pasukhin Dmitry
313630c282 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
2025-07-12 20:05:55 +01:00
Pasukhin Dmitry
08f6de3aff 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.
2025-07-12 17:05:39 +01:00
Pasukhin Dmitry
3d3a47a33a 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
2025-07-12 15:44:22 +01:00
Pasukhin Dmitry
5643d5c34a Testing - Daily vcpkg package validation (#605)
- Introduce `.github/workflows/daily-ir-vcpkg-configure.yml` to run OCCT configuration daily on the IR branch for Windows, macOS, and Ubuntu.
- Create a `configure-occt` composite action to encapsulate vcpkg setup and CMake configuration per platform.
- Update the `build-occt` action to reuse the new `configure-occt` step instead of duplicating configuration logic.
2025-07-12 15:38:39 +01:00
Dmitrii Kulikov
675d75d134 Modeling, ShapeAnalysis_Curve - Mismatch between projected point and parameter (#600)
- Refactored `ProjectOnSegments`: renamed parameters, added early exit, and detailed doxygen-style docs.
- Updated `ProjectAct`: renamed local variables, stored initial projection values for fallback, and streamlined closed-curve handling.
- Removed `#ifdef OCCT_DEBUG` blocks in `ValidateRange`.
2025-07-12 11:47:49 +01:00
Pasukhin Dmitry
9707a155c0 Foundation Classes - Rework atomic and Standard_Condition (#598)
- Replace all `Standard_Atomic_Increment`/`Decrement` calls and `volatile` counters with `std::atomic` usage.
- Rewrite `Standard_Condition` header to use `std::mutex`, `std::condition_variable`, and `std::atomic<bool>`.
- Deprecate old atomic APIs in `Standard_Atomic.hxx`.
2025-07-10 10:10:33 +01:00
Pasukhin Dmitry
508700117c Testing - GH Remove extra jobs (#594)
Clear up duplicated jobs from PR actions.
2025-07-06 23:20:47 +01:00
Pasukhin Dmitry
29616ca8ff Testing - Draw testing clear up (#595)
- Deleted slow V3D and performance tests under `tests/v3d` and `tests/perf`.
- Updated `de_before_script` in DE/IGES tests to set `new_resource_path` to a subfolder per file.
- Added cleanup logic in `de_after_script` to delete the temporary resource directories.
2025-07-06 22:44:42 +01:00
Pasukhin Dmitry
d9684743dc Testing - Adding ASCII code validation (#593)
- Split the existing regression test artifact upload into separate Windows and macOS/Linux steps with platform-specific paths.
- Added `ascii-check` job in the build-and-test workflow to detect non-ASCII characters in changed files.
- Introduced a new composite action (`.github/actions/ascii-check`) to scan diffs and report any non-ASCII content.
2025-07-06 21:00:22 +01:00
Pasukhin Dmitry
c0a6aee75d Testing - Migration PR actions to VCPKG-based (#587)
Update the default testing to use result of VCPKG.
The 3rd-party are stored in GitHub NuGet storage and reused.
The 3rd-party archive with installed 3rd-party added as an artefact
Updated the actions to work with VCPKG 3rd party
2025-07-06 14:35:22 +01:00
Pasukhin Dmitry
bdbd5ac589 Documentation - Copilot instructions for OCCT development (#589)
Added copilot-instructions.md
Ignore other agents instruction for git history
2025-07-06 13:27:09 +01:00
Pasukhin Dmitry
22d437b771 Visualization - Enhance FFmpeg Compatibility Layer and Update Video Recorder (#582)
- Creation of Media_FFmpegCompatibility.pxx to wrap deprecated functions and API changes.
- Refactoring of Media_FormatContext and Media_CodecContext to use the new compatibility layer.
- Updates to Image_VideoRecorder and its tests to leverage the new compatibility functions and ensure proper codec context handling.
2025-06-27 14:38:01 +01:00
Pasukhin Dmitry
6b69f59803 Coding - Optimize gp_Vec, gp_Vec2d, gp_XY, and gp_XYZ classes (#578)
Renamed parameters and improved consistency across methods.
Simplified mathematical computations and replaced indirect API calls with direct data member access where performance‐critical.
Updated and optimized matrix operations including inversion, transposition, and power calculations.
2025-06-26 09:37:35 +01:00
Pasukhin Dmitry
ed7a447177 Coding - Add conversion utilities for STEP geometrical and visual enumerations (#545)
- Introduced RWStepGeom_RWTransitionCode for converting StepGeom_TransitionCode to/from string representations.
- Refactored RWStepGeom_RWTrimmedCurve to utilize RWStepGeom_RWTrimmingPreference for trimming preference conversions.
- Created RWStepGeom_RWTrimmingPreference for handling StepGeom_TrimmingPreference enumerations.
- Updated RWStepGeom_RWUniformCurve and related classes to use RWStepGeom_RWBSplineCurveForm for B-spline curve form conversions.
- Added RWStepGeom_RWUniformSurface and related classes to use RWStepGeom_RWBSplineSurfaceForm for B-spline surface form conversions.
- Implemented RWStepShape_RWBooleanOperator for boolean operator conversions in STEP shapes.
- Refactored RWStepShape_RWBooleanResult to utilize RWStepShape_RWBooleanOperator for boolean operator handling.
- Introduced RWStepVisual_RWCentralOrParallel for central or parallel projection type conversions.
- Added RWStepVisual_RWSurfaceSide for surface side enumeration conversions.
- Updated RWStepVisual_RWSurfaceStyleUsage to use RWStepVisual_RWSurfaceSide for handling surface side.
- Created RWStepVisual_RWTextPath for text path enumeration conversions.
- Refactored RWStepVisual_RWTextLiteral to utilize RWStepVisual_RWTextPath for text path handling.
- Updated RWStepVisual_RWViewVolume to use RWStepVisual_RWCentralOrParallel for projection type conversions.
2025-06-25 11:40:51 +01:00
Pasukhin Dmitry
dfb331296c Configuration - VCPKG add TclTk support (#580)
Introduces a new "tcltk" feature in vcpkg.json with relevant dependencies.
Updates tcl portfiles and patches to incorporate Tk building, installation, and cleanup.
Modifies CMake and batch environment templates to align with the new TclTk support.
2025-06-25 10:15:04 +01:00
Pasukhin Dmitry
fa5bf5dab2 Configuration - Remove jemalloc port files (#581)
Removed overrides for jemalloc, now use standard port
2025-06-25 10:14:14 +01:00
Pasukhin Dmitry
97920011fa Foundation Classes - Matrix multiplied issue (#522)
Refactor multiplication to avoid self-correlation issues by using a temporary copy.
Add a test file (math_Matrix_Test.cxx) to verify proper behavior.
2025-06-24 12:38:31 +01:00