1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00

Compare commits

..

26 Commits

Author SHA1 Message Date
anv
2e2f7fa6db 0033829: Data Exchange - Implementing common logic for scaling during Write procedure (part 2)
Implementation for BRep, XCAF, IGES, Obj, Ply, Stl, Vrml formats.
2024-09-18 09:53:19 +01:00
anv
e82d98d345 0033816: Data Exchange - Implementing common logic for scaling during Write procedure (part 1)
Implementation for Gltf and STEP formats.
2024-09-17 17:22:30 +01:00
dpasukhi
72c6d55bf2 0033765: Data Exchange, IGES Export - Missing Model Curves in transfer cache
Curve list should be not unique, list is recommended.
One curve can be used by multiple edges.
2024-09-14 20:26:41 +00:00
oan
d0e33902bc 0033806: Shape Healing - ShapeCustom optimization while rebuilding compounds
Avoid double binding of shapes to context.
Take all changes into account by reshape
2024-09-14 20:26:41 +00:00
dpasukhi
a52ee17c73 Coding - Precision.hxx file optimization
Precision.hxx optimized to have compiler-time
  constants for the most common floating-point values.
Reorganized code to avoid static jumping for parametric.
2024-09-14 20:26:41 +00:00
dpasukhi
72b244bc98 Coding - Resolving C26439 & type formatting warnings
Sprintf  with %s always convert values into char*, not safety from int.
Move operators and constructors can be marked as noexcept
2024-09-14 20:26:41 +00:00
dpasukhi
9c6914c3cc Coding - Resolving C6319 warning
Use of the comma-operator in a tested expression
  causes the left argument to be ignored when it has no side-effects.
2024-09-14 20:26:41 +00:00
dpasukhi
4ab54d60ef Coding - Resolving C26498 warning
C26498 - marking variables constexpr to improve performance
2024-09-14 20:26:41 +00:00
dpasukhi
09a69618da Coding - Resolving C6287 & C6282 warnings
Removing redundant code and incorrect operator
2024-09-14 15:16:54 +00:00
dpasukhi
6cb0b9b4e3 Coding - Resolving C6263 warnings
Reorganizing code to not call alloca inside loop.
  alloca allocated memory from stack and free after finishing function
2024-09-14 15:16:54 +00:00
dpasukhi
33339b0dc2 Coding - GeomConvert_CurveToAnaCurve warnings fix 2024-09-14 11:01:24 +00:00
dpasukhi
392ba7dbb6 Coding - Image_AlienPixMap unused parameters 2024-09-14 11:01:10 +00:00
dpasukhi
ed20837d8b 0033703: Data Exchange, Step Export - Transfer edge speed improvement
Move optional code close to use case to avoid extra calculation
2024-09-06 20:22:00 +00:00
reciprocal
2ab4e9e180 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.
2024-09-05 18:15:57 +00:00
dpasukhi
d83d72acf9 0033805: Configuration - Implement GitHub Actions build scripts
Enable MSVC code analyzing to push SARIF files
2024-09-05 17:55:07 +00:00
dpasukhi
fae5678dc7 0033750: Configuration - make file configuration failed in mfc example
Updated MFC sample to build together with OCCT
2024-09-05 17:55:01 +00:00
dpasukhi
488c43ed0c 0033812: Configuration, MacOS - Debug Symbols Stripped From Dynamic Libraries
Update optimization flag to release only
2024-09-05 09:14:24 +00:00
dpasukhi
2fa9309186 0033805: Configuration - Implement GitHub Actions build scripts
Build Scripts:
- Linux GCC x64 dynamic
- Linux Clang x64 dynamic
- Windows MSVC x64 dynamic
- macOS Clang x64 dynamic
Security scanning:
- CodeQL security scanning
- MSVC code scanning
2024-08-31 13:33:59 +00:00
dpasukhi
4309cf7362 0033810: Coding - GitIgnore update with .vscode
Updated .gitignore
2024-08-31 13:31:34 +00:00
dpasukhi
7236e83dcc 0033808: Coding - FreeType Use unsigned point and contour indexing in FT_Outline
Changes to auto instead of specific type
2024-08-31 13:28:20 +00:00
luzpaz
099e0d2524 0033807: Documentation - Fix various typos found in codebase 2024-08-31 14:26:15 +01:00
astromko
b332761e13 0033648: Modeling Algorithms - Bad partition result
Removed unnecessary tolerance increase for Line\Line intersection.
Tolerance increasing logic for some specific curve types
  was added with #26619.
Original fix had no test for Line/Line case and
  theoretically was added as a possible issue.
After research Line/Line case doesn't need a special tolerance case.
2024-08-25 08:37:51 +00:00
dpasukhi
da71394f31 0033612: Configuration - Build configuration may fail to detect TBB
Fixed TBB type to depends on package
2024-08-25 08:35:49 +00:00
oan
2736652117 0033791: Shape Healing - ShapeCustom not take location of source shape for the cached context and misses root one
Pass ShapeBuild_ReShape to recursive call to retrieve complete change history.
Update history of changes by the source shape (if changed), not only by its subshapes.
Check the context for a cached shape using a reference shape without location.
2024-08-09 15:27:03 +00:00
ichesnok
677f383561 0033788: Data Exchange, DE Wrapper - Shape Healing configuration node
DE_ShapeFixParameters class added for shape healing parameters storage.
DE_ShapeFixConfigurationNode class added for work with parameters.
2024-08-09 15:26:59 +00:00
oan
bd14b69336 0033790: Data Exchange - XCAFDoc_LayerTool creates temporary instances during initialization of layer attributes
Removed initialization of temporary objects.
2024-08-09 15:26:53 +00:00
210 changed files with 1687 additions and 509 deletions

View File

@@ -0,0 +1,40 @@
# This workflow will build OCCT on Ubuntu with Clang compiler
# using the provided Docker image with Clang tools.
#
# Notes:
# freetype is disabled
# samples are not built
name: Build OCCT on Linux with Clang x64 dynamic
on:
pull_request:
branches:
- '**'
jobs:
build-linux-clang:
name: Build on Ubuntu with Clang
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake clang make libbtbb-dev libx11-dev libglu1-mesa-dev
- name: Configure OCCT
run: |
mkdir -p build
cd build
cmake -G "Unix Makefiles" \
-D CMAKE_C_COMPILER=clang \
-D CMAKE_CXX_COMPILER=clang++ \
-D USE_FREETYPE=OFF \
-D CMAKE_BUILD_TYPE=Release ..
- name: Build OCCT
run: |
cd build
make -j$(nproc)

View File

@@ -0,0 +1,40 @@
# This workflow will build OCCT on Linux with GCC x64 dynamic
# using the provided Docker image with GCC tools.
#
# Notes:
# freetype is disabled
# samples are not built
name: Build OCCT on Linux with GCC x64 dynamic
on:
pull_request:
branches:
- '**'
jobs:
build-linux-gcc:
name: Build on Ubuntu with GCC
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev
- name: Configure OCCT
run: |
mkdir -p build
cd build
cmake -G "Unix Makefiles" \
-D CMAKE_C_COMPILER=gcc \
-D CMAKE_CXX_COMPILER=g++ \
-D USE_FREETYPE=OFF \
-D CMAKE_BUILD_TYPE=Release ..
- name: Build OCCT
run: |
cd build
make -j$(nproc)

View File

@@ -0,0 +1,43 @@
# This workflow builds OCCT on macOS with Clang x64 dynamic.
#
# Notes:
# freetype is disabled
# samples are not built
name: Build OCCT on macOS with Clang x64 dynamic
on:
pull_request:
branches:
- '**'
jobs:
build-macos-clang:
name: Build on macOS with Clang
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install dependencies
run: |
brew update
brew install tcl-tk tbb gl2ps xerces-c \
libxmu libxi libxft libxpm \
glew
- name: Configure OCCT
run: |
mkdir -p build
cd build
cmake -G "Unix Makefiles" \
-D CMAKE_C_COMPILER=clang \
-D CMAKE_CXX_COMPILER=clang++ \
-D USE_FREETYPE=OFF \
-D CMAKE_BUILD_TYPE=Release ..
- name: Build OCCT
run: |
cd build
make -j$(sysctl -n hw.logicalcpu)

View File

@@ -0,0 +1,44 @@
# This workflow will build OCCT on Windows with MSVC x64 in dynamic mode
# using the provided Docker image with MSVC tools.
#
# Notes:
# freetype is disabled
# Draw module is disabled
# samples are not built
name: Build OCCT on Windows with MSVC x64 dynamic
on:
pull_request:
branches:
- '**'
jobs:
build-windows-msvc:
name: Build on Windows with MSVC
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Set up MSVC
uses: ilammy/msvc-dev-cmd@v1.13.0
with:
arch: x64
- name: Install dependencies
run: |
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y
choco install magicsplat-tcl-tk -y
- name: Configure OCCT
run: |
mkdir build
cd build
cmake -T host=x64 -D USE_FREETYPE=OFF -D BUILD_MODULE_Draw=OFF -D CMAKE_BUILD_TYPE=Release ..
- name: Build OCCT
run: |
cd build
cmake --build . --config Release -- /m

62
.github/workflows/codemsvc.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
# Security scanning with Microsoft C++ Code Analysis.
# Checks any master integration and publish warnings into security GitHub tab.
#
# Find more information at:
# https://github.com/microsoft/msvc-code-analysis-action
name: Microsoft C++ Code Analysis
on:
push:
branches:
- 'master'
env:
# Path to the CMake build directory.
build: '${{ github.workspace }}/build'
config: 'Debug'
permissions:
contents: read
jobs:
analyze:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Analyze
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install dependencies
run: |
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y
choco install magicsplat-tcl-tk -y
- name: Configure CMake
run: |
mkdir build
cd build
cmake -D USE_FREETYPE=OFF -DCMAKE_BUILD_TYPE=${{ env.config }} ..
- name: Run MSVC Code Analysis
uses: microsoft/msvc-code-analysis-action@v0.1.1
# Provide a unique ID to access the sarif output path
id: run-analysis
with:
cmakeBuildDirectory: ${{ env.build }}
buildConfiguration: ${{ env.config }}
# Ruleset file that will determine what checks will be run
ruleset: NativeRecommendedRules.ruleset
# Paths to ignore analysis of CMake targets and includes
# ignoredPaths: ${{ github.workspace }}/dependencies;${{ github.workspace }}/test
# Upload SARIF file to GitHub Code Scanning Alerts
- name: Upload SARIF to GitHub
uses: github/codeql-action/upload-sarif@v3.26.5
with:
sarif_file: ${{ steps.run-analysis.outputs.sarif }}

60
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
# Security scanning with CodeQL.
# Checks any master integration and publish warnings into security GitHub tab.
#
# Find more information at:
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning
name: CodeQL Code Analysis
on:
push:
branches:
- 'master'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ${{ 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
strategy:
fail-fast: false
matrix:
include:
- language: c-cpp
build-mode: manual
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.26.5
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
- if: matrix.build-mode == 'manual'
shell: bash
run: |
mkdir -p build
cd build
cmake -G "Unix Makefiles" \
-D CMAKE_C_COMPILER=gcc \
-D CMAKE_CXX_COMPILER=g++ \
-D USE_FREETYPE=OFF \
-D CMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.26.5
with:
category: "/language:${{matrix.language}}"

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
# standard directories for derived files in CASROOT
/.adm
/.vscode
/lin
/mac
/wnt

View File

@@ -19,7 +19,7 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME
# include occt macros. compiler_bitness, os_wiht_bit, compiler
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
# specify product folder in connectin with 3RDPARTY_DIR
# specify product folder in connection with 3RDPARTY_DIR
if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
#CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_DIR 3RDPARTY_${PRODUCT_NAME}_DIR PATH "The directory containing ${PRODUCT_NAME}")

View File

@@ -12,7 +12,7 @@ if (NOT BISON_EXECUTABLE OR NOT EXISTS "${BISON_EXECUTABLE}")
endif()
# Add paths to 3rdparty subfolders containing name "bison" to CMAKE_PROGRAM_PATH variable to make
# these paths searhed by find_package
# these paths searched by find_package
if (3RDPARTY_DIR)
file (GLOB BISON_PATHS LIST_DIRECTORIES true "${3RDPARTY_DIR}/*bison*/")
foreach (candidate_path ${BISON_PATHS})

View File

@@ -2580,7 +2580,7 @@ function (cotire_setup_target_pch_usage _languages _target _wholeTarget)
message (STATUS "add_custom_command: TARGET ${_target} PRE_BUILD ${_cmds}")
endif()
# because CMake PRE_BUILD command does not support dependencies,
# we check dependencies explicity in cotire script mode when the pre-build action is run
# we check dependencies explicitly in cotire script mode when the pre-build action is run
add_custom_command(
TARGET "${_target}"
PRE_BUILD ${_cmds}
@@ -2637,7 +2637,7 @@ function (cotire_setup_unity_generation_commands _language _target _targetScript
endif()
if (WIN32 AND CMAKE_${_language}_COMPILER_ID MATCHES "MSVC|Intel")
# unity file compilation results in potentially huge object file,
# thus use /bigobj by default unter cl.exe and Windows Intel
# thus use /bigobj by default under cl.exe and Windows Intel
set_property (SOURCE "${_unityFile}" APPEND_STRING PROPERTY COMPILE_FLAGS "/bigobj")
endif()
cotire_set_cmd_to_prologue(_unityCmd)

View File

@@ -15,7 +15,7 @@ if (NOT FLEX_INCLUDE_DIR OR NOT EXISTS "${FLEX_INCLUDE_DIR}")
endif()
# Add paths to 3rdparty subfolders containing name "flex" to CMAKE_PROGRAM_PATH and
# CMAKE_INCLUDE_PATH variables to make these paths searhed by find_package
# CMAKE_INCLUDE_PATH variables to make these paths searched by find_package
if (3RDPARTY_DIR)
file (GLOB FLEX_PATHS LIST_DIRECTORIES true "${3RDPARTY_DIR}/*flex*")
foreach (candidate_path ${FLEX_PATHS})

View File

@@ -14,7 +14,7 @@ OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
OCCT_MAKE_COMPILER_SHORT_NAME()
OCCT_MAKE_COMPILER_BITNESS()
# specify freetype folder in connectin with 3RDPARTY_DIR
# specify freetype folder in connection with 3RDPARTY_DIR
if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
#CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_DIR 3RDPARTY_FREETYPE_DIR PATH "The directory containing freetype")

View File

@@ -168,7 +168,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
set (CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
endif()
# Optimize size of binaries
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS}")
set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
elseif(MINGW)
add_definitions(-D_WIN32_WINNT=0x0601)
# _WIN32_WINNT=0x0601 (use Windows 7 SDK)

View File

@@ -479,8 +479,8 @@ if (BUILD_SHARED_LIBS OR EXECUTABLE_PROJECT)
if(IS_VTK_9XX)
string (REGEX REPLACE "vtk" "VTK::" USED_TOOLKITS_BY_CURRENT_PROJECT "${USED_TOOLKITS_BY_CURRENT_PROJECT}")
endif()
target_link_libraries (${PROJECT_NAME} ${USED_TOOLKITS_BY_CURRENT_PROJECT} ${USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT})
endif()
target_link_libraries (${PROJECT_NAME} ${USED_TOOLKITS_BY_CURRENT_PROJECT} ${USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT})
if (USE_QT)
foreach (PROJECT_LIBRARY_DEBUG ${PROJECT_LIBRARIES_DEBUG})

View File

@@ -27,7 +27,7 @@ if (WIN32)
# Below, we have correct 3RDPARTY_DIR.
# Initialize TBB folder in connectin with 3RDPARTY_DIR.
# Initialize TBB folder in connection with 3RDPARTY_DIR.
if (("${3RDPARTY_TBB_DIR}" STREQUAL "") OR (NOT EXISTS "${3RDPARTY_TBB_DIR}"))
FIND_PRODUCT_DIR ("${3RDPARTY_DIR}" TBB TBB_DIR_NAME)
if (TBB_DIR_NAME)
@@ -44,7 +44,7 @@ if (WIN32)
REQUIRED
CONFIG)
# Achive include directory
# Archive include directory
get_target_property (TBB_INCLUDE_DIR TBB::tbb INTERFACE_INCLUDE_DIRECTORIES)
if (NOT DEFINED 3RDPARTY_TBB_INCLUDE_DIR)
set (3RDPARTY_TBB_INCLUDE_DIR "" CACHE PATH "The directory containing headers of the TBB")
@@ -56,13 +56,17 @@ if (WIN32)
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TBB_INCLUDE_DIR)
endif()
# Get installed configuration of tbb
get_target_property (TARGET_TBB_IMPORT_CONFS TBB::tbb IMPORTED_CONFIGURATIONS)
list (GET TARGET_TBB_IMPORT_CONFS 0 CHOSEN_IMPORT_CONF)
separate_arguments (CSF_TBB)
foreach (LIB IN LISTS CSF_TBB)
string(TOLOWER "${LIB}" LIB_LOWER)
string(TOUPPER "${LIB}" LIB_UPPER)
# Achive *.lib files and directory containing it.
get_target_property (TBB_LIB_FILE "TBB::${LIB_LOWER}" IMPORTED_IMPLIB_RELEASE)
# Archive *.lib files and directory containing it.
get_target_property (TBB_LIB_FILE "TBB::${LIB_LOWER}" IMPORTED_IMPLIB_${CHOSEN_IMPORT_CONF})
# Reserve cache variable for *.lib.
if (NOT DEFINED 3RDPARTY_${LIB_UPPER}_LIBRARY)
set (3RDPARTY_${LIB_UPPER}_LIBRARY "" CACHE FILEPATH "${LIB_UPPER} library (*.lib)")
@@ -88,8 +92,8 @@ if (WIN32)
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_${LIB_UPPER}_LIBRARY_DIR)
endif()
# Achive *.dll files and directory containing it.
get_target_property (TBB_DLL_FILE "TBB::${LIB_LOWER}" IMPORTED_LOCATION_RELEASE)
# Archive *.dll files and directory containing it.
get_target_property (TBB_DLL_FILE "TBB::${LIB_LOWER}" IMPORTED_LOCATION_${CHOSEN_IMPORT_CONF})
# Reserve cache variable for *.dll.
if (NOT DEFINED 3RDPARTY_${LIB_UPPER}_DLL)
set (3RDPARTY_${LIB_UPPER}_DLL "" CACHE FILEPATH "${LIB_UPPER} library (*.dll)")
@@ -171,9 +175,9 @@ else ()
REQUIRED
CONFIG)
endif()
# TBB has been configured (in other case FATAL_ERROR occures).
# TBB has been configured (in other case FATAL_ERROR occurs).
# Achive include directory.
# Archive include directory.
get_target_property (TBB_INCLUDE_DIR TBB::tbb INTERFACE_INCLUDE_DIRECTORIES)
if (NOT DEFINED 3RDPARTY_TBB_INCLUDE_DIR)
set (3RDPARTY_TBB_INCLUDE_DIR "" CACHE PATH "The directory containing headers of the TBB")
@@ -185,13 +189,17 @@ else ()
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TBB_INCLUDE_DIR)
endif()
# Get installed configuration of tbb
get_target_property (TARGET_TBB_IMPORT_CONFS TBB::tbb IMPORTED_CONFIGURATIONS)
list (GET TARGET_TBB_IMPORT_CONFS 0 CHOSEN_IMPORT_CONF)
separate_arguments (CSF_TBB)
foreach (LIB IN LISTS CSF_TBB)
string(TOLOWER "${LIB}" LIB_LOWER)
string(TOUPPER "${LIB}" LIB_UPPER)
# Achive *.so files and directory containing it.
get_target_property (TBB_SO_FILE "TBB::${LIB_LOWER}" IMPORTED_LOCATION_RELEASE)
# Archive *.so files and directory containing it.
get_target_property (TBB_SO_FILE "TBB::${LIB_LOWER}" IMPORTED_LOCATION_${CHOSEN_IMPORT_CONF})
# Reserve cache variable for *.so.
if (NOT DEFINED 3RDPARTY_${LIB_UPPER}_LIBRARY)
set (3RDPARTY_${LIB_UPPER}_LIBRARY "" CACHE FILEPATH "${LIB_UPPER} library (*.so)")

View File

@@ -405,7 +405,7 @@ proc Rename {thePath theExtensions theNewNames theCheckMode} {
}
}
# @thePackagePath eather file or folder. If it is a folder,
# @thePackagePath either file or folder. If it is a folder,
# all files with @theHeaderExtensions are processed.
# "fwd.tcollection" section from upgrade.ini file is used to find out what
# classes have been converted and, thus, what forward declarations can be replaced

View File

@@ -370,7 +370,7 @@ https://dev.opencascade.org/resources/download/3rd-party-components
| Flex 2.6.4+ and Bison 3.7.1+ | https://sourceforge.net/projects/winflexbison/ | Data Exchange | Updating STEP and ExprIntrp parsers |
| RapidJSON 1.1+ | https://rapidjson.org/ | Data Exchange | Reading glTF files |
| Draco 1.4.1+ | https://github.com/google/draco | Data Exchange | Reading compressed glTF files |
| Tcl/Tk 8.6.3+ | https://www.tcl.tk/software/tcltk/download.html | DRAW Test Harness | Tcl interpretor in Draw module |
| Tcl/Tk 8.6.3+ | https://www.tcl.tk/software/tcltk/download.html | DRAW Test Harness | Tcl interpreter in Draw module |
| Qt 5.3.2+ | https://www.qt.io/download/ | Inspector and Samples | Inspector Qt samples and |
| Doxygen 1.8.5+ | https://www.doxygen.nl/download.html | Documentation | (Re)generating documentation |
| Graphviz 2.38+ | https://graphviz.org/ | Documentation | Generating dependency graphs |

View File

@@ -763,7 +763,7 @@ filter2->AddSkipped("TDataStd_Integer");
app->Open("example.cbf", doc, filter2);
~~~~
*PCDM_ReaderFilter::AppendMode_Protect* means that if the loading algorithm finds already existing attribute in the document, it will not be overwritten by attibute from the loading file. If it is needed to
*PCDM_ReaderFilter::AppendMode_Protect* means that if the loading algorithm finds already existing attribute in the document, it will not be overwritten by attribute from the loading file. If it is needed to
substitute the existing attributes, the reading mode *PCDM_ReaderFilter::AppendMode_Overwrite* must be used instead.
*AddRead* and *AddSkipped* methods for attributes should not be used in one filter. If it is so, *AddSkipped* attributes are ignored during the read.
@@ -971,7 +971,7 @@ The "correct" history of a used modeling operation serves the basis of naming me
| Closed wire | Edges | All edges |
| Opened wire | Edges and ending vertexes | All edges plus ending vertexes of the wire |
| Edge | Vertexes | Two vertexes are expected |
| Compound or CompSolid | To be used consequentially the above declared rule applied to all sub-shapes of the first level | Compound/CompSolid to be explored level by level until any the mentioned above types will be met |
| Compound or CompSolid | To be used consequently the above declared rule applied to all sub-shapes of the first level | Compound/CompSolid to be explored level by level until any the mentioned above types will be met |
The history should return (and track) only elementary types of sub-shapes, i.e. Faces, Edges and Vertexes, while other so-called aggregation types: Compounds, Shells, Wires, are calculated by Selection mechanism automatically.

View File

@@ -119,7 +119,7 @@ if (OpenCASCADE_INCLUDE_DIR_FOUND AND OpenCASCADE_LIBRARY_DIR_FOUND)
set (OpenCASCADE_INSTALL_PREFIX ${OpenCASCADE_DIR})
# Define OCCT toolkits so that CMake can put absolute paths to linker;
# the library existance is not checked here, since modules can be disabled.
# the library existence is not checked here, since modules can be disabled.
foreach (aLibIter ${OpenCASCADE_TKLIST})
add_library (${aLibIter} SHARED IMPORTED)

View File

@@ -11,7 +11,7 @@ project (ImportExport)
add_definitions (-DWINVER=0x0501 -DUNICODE -D_UNICODE)
set (CMAKE_MFC_FLAG 2)
set (ImportExport_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/05_ImportExport/src)
set (ImportExport_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/03_ImportExport/src)
set (ImportExport_HEADER_FILES ${ImportExport_SRC_DIR}/ColoredShapes.h
${ImportExport_SRC_DIR}/ImportExportApp.h
${ImportExport_SRC_DIR}/ImportExportDoc.h
@@ -21,7 +21,7 @@ set (ImportExport_SOURCE_FILES ${ImportExport_SRC_DIR}/ColoredShapes.cpp
${ImportExport_SRC_DIR}/ImportExportDoc.cpp
${ImportExport_SRC_DIR}/StdAfx.cpp)
set (ImportExport_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/05_ImportExport/res)
set (ImportExport_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/03_ImportExport/res)
set (ImportExport_RESOURCE_HEADER ${ImportExport_RESOURCE_DIR}/resource.h)
set (ImportExport_RESOURCE_FILES ${ImportExport_RESOURCE_DIR}/Toolbar.bmp
${ImportExport_RESOURCE_DIR}/ImportExport.rc)
@@ -55,7 +55,7 @@ else()
endif()
include_directories (${CMAKE_BINARY_DIR}/inc
${MFC_STANDARD_SAMPLES_DIR}/05_ImportExport
${MFC_STANDARD_SAMPLES_DIR}/03_ImportExport
${ImportExport_SRC_DIR}
${MFC_STANDARD_SAMPLES_DIR}/Common)

View File

@@ -11,7 +11,7 @@ project (HLR)
add_definitions(-DWINVER=0x0501 -DUNICODE -D_UNICODE)
set (CMAKE_MFC_FLAG 2)
set (HLR_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/08_HLR/src)
set (HLR_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/04_HLR/src)
set (HLR_HEADER_FILES ${HLR_SRC_DIR}/HLRApp.h
${HLR_SRC_DIR}/HLRDoc.h
${HLR_SRC_DIR}/HLRView2D.h
@@ -23,7 +23,7 @@ set (HLR_SOURCE_FILES ${HLR_SRC_DIR}/HLRApp.cpp
${HLR_SRC_DIR}/SelectionDialog.cpp
${HLR_SRC_DIR}/StdAfx.cpp )
set (HLR_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/08_HLR/res)
set (HLR_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/04_HLR/res)
set (HLR_RESOURCE_HEADER ${HLR_RESOURCE_DIR}/resource.h)
set (HLR_RESOURCE_FILES ${HLR_RESOURCE_DIR}/axoviewd.bmp
${HLR_RESOURCE_DIR}/axoviewf.bmp

View File

@@ -82,7 +82,6 @@ set (COMMON_HEADER_FILES ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AISDialogs.h
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_StereoConfigDlg.h
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ParamsFacesPage.h
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ResultDialog.h
${MFC_STANDARD_COMMON_SAMPLES_DIR}/User_Cylinder.hxx
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ColoredMeshDlg.h
${MFC_STANDARD_COMMON_SAMPLES_DIR}/DimensionDlg.h
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgePage.h

View File

@@ -31,7 +31,7 @@
#include <TCollection_HAsciiString.hxx>
#include <stdio.h>
// This is a generic header for any STEP sheme
// This is a generic header for any STEP scheme
static Handle(TCollection_HAsciiString) nulstr;
static Handle(Interface_HArray1OfHAsciiString) nularr;

View File

@@ -146,7 +146,7 @@ static void Hunt(const TColStd_Array1OfReal& Arr,
const Standard_Real Coord,
Standard_Integer& Iloc)
{//Warning: Hunt is used to find number of knot which equals coordinate component,
// when coordinate component definitly equals a knot only.
// when coordinate component definitely equals a knot only.
Standard_Real Tol=Precision::PConfusion()/10;
Standard_Integer i=1;
while((i <= Arr.Upper()) && (Abs(Coord - Arr(i)) > Tol)){
@@ -638,7 +638,7 @@ static void Locate2Coord(const Standard_Integer Index,
if((DComp > 0)&&(Abs(DComp)>Tol)) {
Hunt(Arr,Comp,N);
if (N >= NUp){
//limit case: Hunt() cought upper knot. Take the last span.
//limit case: Hunt() caught upper knot. Take the last span.
N = NUp - 1;
}
if(Index==1) { Tmp1=BSplS->UKnot(N);
@@ -659,7 +659,7 @@ static void Locate2Coord(const Standard_Integer Index,
if((DComp < 0)&&(Abs(DComp)>Tol)){
Hunt(Arr,Comp,N);
if (N <= NLo) {
//limit case: Hunt() cought lower knot. Take the first span.
//limit case: Hunt() caught lower knot. Take the first span.
N = NLo + 1;
}
if(Index==1) { Tmp1=BSplS->UKnot(N-1);

View File

@@ -559,7 +559,7 @@ Standard_Boolean Adaptor3d_TopolTool::Identical
#include <gp_Dir.hxx>
#include <gp_Vec.hxx>
#define myMinPnts 4 //Absolut possible minimum of sample points
#define myMinPnts 4 //Absolute possible minimum of sample points
//Restriction of IntPolyh

View File

@@ -68,7 +68,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const = 0;
//! Returns if the sections are rationnal or not
//! Returns if the sections are rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
//! Returns the number of intervals for continuity

View File

@@ -27,7 +27,7 @@ struct Aspect_XVisualInfo;
//! This class creates and provides connection with X server.
//! Raises exception if can not connect to X server.
//! On Windows and Mac OS X (in case when Cocoa used) platforms this class does nothing.
//! WARRNING: Do not close display connection manually!
//! WARNING: Do not close display connection manually!
class Aspect_DisplayConnection : public Standard_Transient
{
DEFINE_STANDARD_RTTIEXT(Aspect_DisplayConnection, Standard_Transient)

View File

@@ -341,12 +341,8 @@ void BOPAlgo_PaveFiller::PerformEE(const Message_ProgressRange& theRange)
GeomAbs_CurveType aType1 = aBAC1.GetType();
GeomAbs_CurveType aType2 = aBAC2.GetType();
//
bAnalytical = (((aType1 == GeomAbs_Line) &&
(aType2 == GeomAbs_Line ||
aType2 == GeomAbs_Circle)) ||
((aType2 == GeomAbs_Line) &&
(aType1 == GeomAbs_Line ||
aType1 == GeomAbs_Circle)));
bAnalytical = (aType1 == GeomAbs_Line && aType2 == GeomAbs_Circle) ||
(aType1 == GeomAbs_Circle && aType2 == GeomAbs_Line);
}
//
for (i=1; i<=aNbCPrts; ++i) {
@@ -443,7 +439,7 @@ void BOPAlgo_PaveFiller::PerformEE(const Message_ProgressRange& theRange)
Standard_Real aTolVnew = BRep_Tool::Tolerance(aVnew);
if (bAnalytical) {
// increase tolerance for Line/Line intersection, but do not update
// increase tolerance for Line/Circle intersection, but do not update
// the vertex till its intersection with some other shape
Standard_Real aTolMin = (BRepAdaptor_Curve(aE1).GetType() == GeomAbs_Line) ?
(aCR1.Last() - aCR1.First()) / 2. : (aCR2.Last() - aCR2.First()) / 2.;

View File

@@ -229,7 +229,6 @@ Standard_Integer bopsmt(Draw_Interpretor& di,
return 0;
}
//
char buf[64];
Standard_Boolean bRunParallel;
Standard_Integer aNb;
BOPAlgo_BOP aBOP;
@@ -237,8 +236,7 @@ Standard_Integer bopsmt(Draw_Interpretor& di,
const TopTools_ListOfShape& aLC=pPF->Arguments();
aNb=aLC.Extent();
if (aNb!=2) {
Sprintf (buf, " wrong number of arguments %s\n", aNb);
di << buf;
di << " wrong number of arguments " << aNb << '\n';
return 0;
}
//
@@ -298,7 +296,6 @@ Standard_Integer bopsection(Draw_Interpretor& di,
return 0;
}
//
char buf[64];
Standard_Boolean bRunParallel;
Standard_Integer aNb;
BOPAlgo_Section aBOP;
@@ -306,8 +303,7 @@ Standard_Integer bopsection(Draw_Interpretor& di,
const TopTools_ListOfShape& aLC=pPF->Arguments();
aNb=aLC.Extent();
if (aNb!=2) {
Sprintf (buf, " wrong number of arguments %s\n", aNb);
di << buf;
di << " wrong number of arguments " << aNb << '\n';
return 0;
}
//

View File

@@ -51,12 +51,12 @@ public:
//! Warning:
//! The Wires must be closed.
//!
//! The edges of <W> can be modified if they have not pcurves
//! on the surface <S> of <F>. In this case
//! if <Proj> is false the first pcurve of the edge
//! is positionned on <S>.
//! if <Proj> is True ,the Pcurve On <S> is the
//! projection of the curve 3d on <F>.
//! The edges of <W> can be modified if they don't have
//! pcurves on the surface <S> of <F>. In this case
//! if <Proj> is false the first pcurve of the edge
//! is positioned on <S>.
//! if <Proj> is True, the Pcurve On <S> is the
//! projection of the curve 3d on <F>.
Standard_EXPORT void Add (TopoDS_Wire& W);
//! Removes all the Wires

View File

@@ -86,13 +86,13 @@ public:
Standard_EXPORT void VerticesForSubstitute (TopTools_DataMapOfShapeShape& VerVerMap);
//! Set maximal tolerance used for comparing distaces between vertices.
//! Set maximal tolerance used for comparing distances between vertices.
void SetTolConf(const Standard_Real theTolConf)
{
myTolConf = theTolConf;
}
//! Get maximal tolerance used for comparing distaces between vertices.
//! Get maximal tolerance used for comparing distances between vertices.
Standard_Real GetTolConf() const
{
return myTolConf;

View File

@@ -49,7 +49,7 @@ BRepBlend_AppFuncRoot::BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line,
// Tables
Func.GetShape( NbPoles, NbKnots, Degree, NbPoles2d);
// Calculation of BaryCentre (rationnal case).
// Calculation of BaryCentre (rational case).
if (Func.IsRational()) {
Standard_Real Xmax =-1.e100, Xmin = 1.e100,
Ymax =-1.e100, Ymin = 1.e100,

View File

@@ -69,7 +69,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE;
//! Returns if the section is rationnal or not
//! Returns if the section is rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the number of intervals for continuity
@@ -95,7 +95,7 @@ public:
Standard_EXPORT virtual void Resolution (const Standard_Integer Index, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary (in radian)
//! SurfTol error inside the surface.

View File

@@ -139,7 +139,7 @@ public:
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -162,7 +162,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -140,7 +140,7 @@ public:
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -163,7 +163,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -133,7 +133,7 @@ public:
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -156,7 +156,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -132,7 +132,7 @@ public:
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -155,7 +155,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -43,7 +43,7 @@ static Standard_Integer
IntersectionOfSets( const NCollection_List<Standard_Integer>& theSet1,
const NCollection_List<Standard_Integer>& theSet2)
{
const Standard_Integer anIntMax = IntegerLast();
constexpr Standard_Integer anIntMax = IntegerLast();
Standard_Integer aRetVal = anIntMax;
for(NCollection_List<Standard_Integer>::Iterator
anIt1 = theSet1.begin().Iterator();

View File

@@ -202,7 +202,7 @@ Standard_Boolean BRepClass_FaceExplorer::OtherSegment(const gp_Pnt2d& P,
// is tangent to the edge curve. This condition is bad for classification.
// Therefore try to go to another point in the hope that there will be
// no tangent. If there tangent is preserved then leave the last point in
// order to get this edge chanse to participate in classification.
// order to get this edge chance to participate in classification.
if (myCurEdgePar + Probing_Step < Probing_End)
continue;
}

View File

@@ -541,7 +541,7 @@ static Standard_Boolean GoodOrientation(const Bnd_Box& B,
if (!Surf.IsNull()) { // Add the face at end
// Waiting the use of traces & retriction in BRepFill_Sweep
// Waiting the use of traces & restriction in BRepFill_Sweep
// Make Fuse.
BRepLib_MakeFace MkF;
MkF.Init(Surf, Standard_True, Precision::Confusion());

View File

@@ -3144,7 +3144,7 @@ void CutEdgeProf (const TopoDS_Edge& E,
//=======================================================================
//function : CutEdge
//purpose : Cut an edge at thw extrema of curves and at points of inflexion.
//purpose : Cut an edge at the extrema of curves and at points of inflexion.
// Closed circles are also cut in two.
// If <Cuts> are empty the edge is not modified.
// The first and the last vertex of the original edge

View File

@@ -122,18 +122,18 @@ public:
protected:
//! Initialize all the fields, this methode have to
//! Initialize all the fields, this methode has to
//! be called by the constructors of Inherited class.
Standard_EXPORT void Init (const TopoDS_Wire& Path);
//! To preseve if possible the Tangent in transformations
//! To preserve if possible the Tangent in transformations
//! It is the default mode.
Standard_EXPORT void TangentIsMain();
//! To preseve if possible the Normal in transformations
//! To preserve if possible the Normal in transformations
Standard_EXPORT void NormalIsMain();
//! To preseve if possible the BiNormal in transformations
//! To preserve if possible the BiNormal in transformations
Standard_EXPORT void BiNormalIsMain();
TopoDS_Wire myPath;

View File

@@ -501,7 +501,7 @@ TopoDS_Shape BRepFill_Pipe::Section(const TopoDS_Vertex& VSpine) const
TopoDS_Wire BRepFill_Pipe::PipeLine(const gp_Pnt& Point)
{
// Postioning
// Positioning
gp_Pnt P;
P = Point;
P.Transform(myTrsf);

View File

@@ -1155,7 +1155,7 @@ void BRepFill_PipeShell::Generated(const TopoDS_Shape& theShape,
//=======================================================================
//function : Place
//purpose : Implement a Section in the local refernce frame
//purpose : Implement a Section in the local reference frame
// and return its parameter on the trajectory
//=======================================================================
void BRepFill_PipeShell::Place(const BRepFill_Section& Sec,

View File

@@ -48,7 +48,7 @@ class BRepFill_PipeShell;
DEFINE_STANDARD_HANDLE(BRepFill_PipeShell, Standard_Transient)
//! Computes a topological shell using some wires
//! (spines and profiles) and diplacement option
//! (spines and profiles) and displacement option
//! Perform general sweeping construction
class BRepFill_PipeShell : public Standard_Transient
{
@@ -116,7 +116,7 @@ public:
//! to be C0.
//! Give section to sweep.
//! Possibilities are :
//! - Give one or sevral profile
//! - Give one or several profile
//! - Give one profile and an homotetic law.
//! - Automatic compute of correspondence between profile, and section on the sweeped shape
//! - correspondence between profile, and section on the sweeped shape defined by a vertex of the spine
@@ -153,7 +153,7 @@ public:
Standard_EXPORT void SetTransition (const BRepFill_TransitionStyle Mode = BRepFill_Modified, const Standard_Real Angmin = 1.0e-2, const Standard_Real Angmax = 6.0);
//! Perform simulation of the sweep :
//! Somes Section are returned.
//! Some Section are returned.
Standard_EXPORT void Simulate (const Standard_Integer NumberOfSection, TopTools_ListOfShape& Sections);
//! Builds the resulting shape (redefined from MakeShape).

View File

@@ -2890,7 +2890,7 @@ BRepFill_Sweep::BRepFill_Sweep(const Handle(BRepFill_SectionLaw)& Section,
//=======================================================================
//function : Build
//purpose : Construt the result of sweeping
//purpose : Construct the result of sweeping
//======================================================================
void BRepFill_Sweep::Build(TopTools_MapOfShape& ReversedEdges,
BRepFill_DataMapOfShapeHArray2OfShape& Tapes,

View File

@@ -64,7 +64,7 @@ public:
//! Tolerance To controle Corner management.
//!
//! If the discontinuity is lesser than <AngleMin> in radian The
//! Transition Performed will be alway "Modified"
//! Transition Performed will be always "Modified"
Standard_EXPORT void SetAngularControl (const Standard_Real AngleMin = 0.01, const Standard_Real AngleMax = 6.0);
//! Set the flag that indicates attempt to approximate
@@ -72,13 +72,13 @@ public:
//! to be C0.
Standard_EXPORT void SetForceApproxC1 (const Standard_Boolean ForceApproxC1);
//! Build the Sweep Surface
//! Build the Sweep Surface
//! Transition define Transition strategy
//! Approx define Approximation Strategy
//! - GeomFill_Section : The composed Function Location X Section
//! is directly approximated.
//! - GeomFill_Location : The location law is approximated, and the
//! SweepSurface is bulid algebric composition
//! SweepSurface builds an algebraic composition
//! of approximated location law and section law
//! This option is Ok, if Section.Surface() methode
//! is effective.

View File

@@ -37,7 +37,7 @@ class TopoDS_Edge;
//! - define if necessary a new tolerance
//! - set if necessary analysis of degenerated shapes off
//! - add shapes to be controlled -> Add
//! - compute -> Perfom
//! - compute -> Perform
//! - output couples of connected edges for control
//! - output the problems if any
class BRepOffsetAPI_FindContigousEdges

View File

@@ -166,7 +166,7 @@ void BRepOffsetAPI_MakeOffset::Init(const GeomAbs_JoinType Join,
//=======================================================================
//function : SetApprox
//purpose : Set approximation flag
// for convertion input contours into ones consisting of
// for conversion input contours into ones consisting of
// 2D circular arcs and 2D linear segments only
//=======================================================================

View File

@@ -64,7 +64,7 @@ public:
Standard_EXPORT void Init (const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean IsOpenResult = Standard_False);
//! Set approximation flag
//! for convertion input contours into ones consisting of
//! for conversion input contours into ones consisting of
//! 2D circular arcs and 2D linear segments only.
Standard_EXPORT void SetApprox (const Standard_Boolean ToApprox);

View File

@@ -114,7 +114,7 @@ public:
const Standard_Boolean RemoveIntEdges = Standard_False,
const Message_ProgressRange& theRange = Message_ProgressRange());
//! Returns instance of the unrelying intersection / arc algorithm.
//! Returns instance of the underlying intersection / arc algorithm.
Standard_EXPORT virtual const BRepOffset_MakeOffset& MakeOffset() const;
//! Does nothing.

View File

@@ -112,7 +112,7 @@ public:
//! along the path.
//! Give section to sweep.
//! Possibilities are :
//! - Give one or sevral section
//! - Give one or several section
//! - Give one profile and an homotetic law.
//! - Automatic compute of correspondence between spine, and section
//! on the sweeped shape

View File

@@ -306,7 +306,7 @@ static Standard_Integer fillet2d(Draw_Interpretor& di, Standard_Integer n, const
Standard_Boolean status = algo.Perform(radius);
if (!status)
{
di << "Error: the algrithm failed.";
di << "Error: the algorithm failed.";
return 1;
}
@@ -326,7 +326,7 @@ static Standard_Integer fillet2d(Draw_Interpretor& di, Standard_Integer n, const
TopoDS_Edge fillet = algo.Result(common, M1, M2);
if (fillet.IsNull())
{
di << "Error: the algrithm produced no result.";
di << "Error: the algorithm produced no result.";
return 1;
}
@@ -403,7 +403,7 @@ static Standard_Integer chamfer2d(Draw_Interpretor& di, Standard_Integer n, cons
TopoDS_Edge chamfer = algo.Result(M1, M2, length1, length2);
if (chamfer.IsNull())
{
di << "Error: the algrithm produced no result.";
di << "Error: the algorithm produced no result.";
return 1;
}

View File

@@ -234,7 +234,7 @@ Standard_Integer BRepToIGESBRep_Entity::AddEdge(const TopoDS_Edge& myedge,
Standard_Integer index = myEdges.FindIndex(E);
if (index == 0) {
index = myEdges.Add(E);
myCurves.Add(C);
myCurves.Append(C);
}
return index;

View File

@@ -23,6 +23,7 @@
#include <TopTools_IndexedMapOfShape.hxx>
#include <TColStd_IndexedMapOfTransient.hxx>
#include <TColStd_SequenceOfTransient.hxx>
#include <BRepToIGES_BREntity.hxx>
#include <Standard_Integer.hxx>
#include <Message_ProgressRange.hxx>
@@ -136,7 +137,7 @@ private:
TopTools_IndexedMapOfShape myVertices;
TopTools_IndexedMapOfShape myEdges;
TColStd_IndexedMapOfTransient myCurves;
TColStd_SequenceOfTransient myCurves;
Handle(IGESSolid_EdgeList) myEdgeList;
Handle(IGESSolid_VertexList) myVertexList;

View File

@@ -1263,7 +1263,7 @@ void BSplCLib::MovePoint (const Standard_Real U,
}
}
// find a kk2 if symetriy
// find a kk2 if symmetry
kk2 = kk1;
i = kk1 - FirstNonZeroBsplineIndex + 2;
if ((kk1+1) <= LastIndex) {

View File

@@ -2845,7 +2845,7 @@ void BSplSLib::MovePoint (const Standard_Real U,
}
}
// find a ukk2 if symetriy
// find a ukk2 if symmetry
ukk2 = ukk1;
i = ukk1 - UFirstNonZeroBsplineIndex + 2;
if ((ukk1+1) <= ULastIndex) {
@@ -2871,7 +2871,7 @@ void BSplSLib::MovePoint (const Standard_Real U,
}
}
// find a vkk2 if symetriy
// find a vkk2 if symmetry
vkk2 = vkk1;
j = vkk1 - VFirstNonZeroBsplineIndex + 2;
if ((vkk1+1) <= VLastIndex) {

View File

@@ -115,7 +115,7 @@ public:
//! Returns the point on the first support.
Standard_EXPORT virtual const gp_Pnt& Pnt2() const = 0;
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
//! Returns the length of the maximum section
@@ -145,7 +145,7 @@ public:
Standard_Integer& NbPoles2d) = 0;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -148,7 +148,7 @@ public:
Standard_EXPORT virtual void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE = 0;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -156,7 +156,7 @@ public:
//! but the values calculated can be senseless.
Standard_EXPORT virtual Blend_DecrochStatus Decroch (const math_Vector& Sol, gp_Vec& NRst1, gp_Vec& TgRst1, gp_Vec& NRst2, gp_Vec& TgRst2) const = 0;
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
//! Returns the length of the maximum section
@@ -180,7 +180,7 @@ public:
Standard_EXPORT virtual void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) = 0;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -150,7 +150,7 @@ public:
//! specific to the function.
Standard_EXPORT virtual Standard_Boolean Decroch (const math_Vector& Sol, gp_Vec& NS, gp_Vec& TgS) const = 0;
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
//! Returns the length of the maximum section
@@ -174,7 +174,7 @@ public:
Standard_EXPORT virtual void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) = 0;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -116,7 +116,7 @@ public:
Standard_EXPORT void Set (const Standard_Real Radius, const Standard_Integer Choix);
//! Sets the type of section generation for the
//! Sets the type of section generation for the
//! approximations.
Standard_EXPORT void Set (const BlendFunc_SectionShape TypeSection);
@@ -129,7 +129,7 @@ public:
Standard_EXPORT Standard_Boolean GetSection (const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, TColgp_Array1OfPnt& tabP, TColgp_Array1OfVec& tabV);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -143,7 +143,7 @@ public:
//! <S>. May be one if Continuity(me) >= <S>
Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
//! Stores in <T> the parameters bounding the intervals
//! Stores in <T> the parameters bounding the intervals
//! of continuity <S>.
//!
//! The array must provide enough room to accommodate
@@ -155,7 +155,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -117,7 +117,7 @@ public:
Standard_EXPORT Standard_Boolean GetSection (const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, TColgp_Array1OfPnt& tabP, TColgp_Array1OfVec& tabV);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -142,7 +142,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -111,7 +111,7 @@ public:
//! Utile pour une visu rapide et approximative de la surface.
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Lin& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -135,7 +135,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -62,7 +62,7 @@ BlendFunc_ConstRad::BlendFunc_ConstRad(const Handle(Adaptor3d_Surface)& S1,
distmin(RealLast()),
mySShape(BlendFunc_Rational)
{
// Initialisaton of cash control variables.
// Initialisation of cash control variables.
tval = -9.876e100;
xval.Init(-9.876e100);
myXOrder = -1;

View File

@@ -116,7 +116,7 @@ public:
//! Utile pour une visu rapide et approximative de la surface.
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -140,7 +140,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -108,14 +108,14 @@ public:
Standard_EXPORT void Set (const Standard_Integer Choix);
//! Sets the type of section generation for the
//! Sets the type of section generation for the
//! approximations.
Standard_EXPORT void Set (const BlendFunc_SectionShape TypeSection);
//! Method for graphic traces
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
//! Returns if the section is rationnal
//! Returns if the section is rational
Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the length of the maximum section
@@ -139,7 +139,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -105,7 +105,7 @@ public:
Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -127,7 +127,7 @@ public:
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary
//! SurfTol error inside the surface.

View File

@@ -720,7 +720,7 @@ static Standard_Boolean IsSegmentOut(Standard_Real x1,Standard_Real y1,
Standard_Real xs1,Standard_Real ys1,
Standard_Real xs2,Standard_Real ys2)
{
Standard_Real eps = RealSmall();
constexpr Standard_Real eps = RealSmall();
Standard_Real xsmin = Min (xs1, xs2);
Standard_Real xsmax = Max (xs1, xs2);
Standard_Real ysmin = Min (ys1, ys2);
@@ -765,7 +765,7 @@ Standard_Boolean Bnd_Box::IsOut(const gp_Pnt& P1, const gp_Pnt& P2, const gp_Dir
if (IsWhole()) return Standard_False;
else if (IsVoid()) return Standard_True;
Standard_Real eps = RealSmall();
constexpr Standard_Real eps = RealSmall();
Standard_Real myXmin, myYmin, myZmin, myXmax, myYmax, myZmax;
Get (myXmin, myYmin, myZmin, myXmax, myYmax, myZmax);

View File

@@ -180,7 +180,7 @@ static void TreatInfinitePlane(const gp_Pln &aPlane,
{
// Get 3 coordinate axes of the plane.
const gp_Dir &aNorm = aPlane.Axis().Direction();
const Standard_Real anAngularTol = RealEpsilon();
constexpr Standard_Real anAngularTol = RealEpsilon();
// Get location of the plane as its barycenter
gp_Pnt aLocation = BaryCenter(aPlane, aUMin, aUMax, aVMin, aVMax);

View File

@@ -154,7 +154,8 @@ public:
//!< Internal parameters for transfer process
struct DE_SectionGlobal
{
Standard_Real LengthUnit = 1.0; //!< Scale length unit value from MM, default 1.0 (MM)
Standard_Real LengthUnit = 1.0; //!< Target Unit (scaling based on MM) for the transfer process, default 1.0 (MM)
Standard_Real SystemUnit = 1.0; //!< System Unit (scaling based on MM) to be used when initial unit is unknown, default 1.0 (MM)
} GlobalParameters;
private:

View File

@@ -0,0 +1,492 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <DE_ShapeFixConfigurationNode.hxx>
#include <DE_ConfigurationContext.hxx>
#include <DE_PluginHolder.hxx>
#include <DE_Wrapper.hxx>
IMPLEMENT_STANDARD_RTTIEXT(DE_ShapeFixConfigurationNode, DE_ConfigurationNode)
namespace
{
static const TCollection_AsciiString& THE_CONFIGURATION_SCOPE()
{
static const TCollection_AsciiString aScope = "provider";
return aScope;
}
}
//=======================================================================
// function : DE_ShapeFixConfigurationNode
// purpose :
//=======================================================================
DE_ShapeFixConfigurationNode::DE_ShapeFixConfigurationNode()
: DE_ConfigurationNode()
{}
//=======================================================================
// function : DE_ShapeFixConfigurationNode
// purpose :
//=======================================================================
DE_ShapeFixConfigurationNode::DE_ShapeFixConfigurationNode(const Handle(DE_ShapeFixConfigurationNode)& theNode)
: DE_ConfigurationNode(theNode)
{
}
//=======================================================================
// function : Load
// purpose :
//=======================================================================
bool DE_ShapeFixConfigurationNode::Load(const Handle(DE_ConfigurationContext)& theResource)
{
TCollection_AsciiString aScope = THE_CONFIGURATION_SCOPE() + "." + GetFormat() + "." + GetVendor() + ".healing";
HealingParameters.Tolerance3d = theResource->RealVal("tolerance3d", HealingParameters.Tolerance3d, aScope);
HealingParameters.MaxTolerance3d = theResource->RealVal("max.tolerance3d", HealingParameters.MaxTolerance3d, aScope);
HealingParameters.MinTolerance3d = theResource->RealVal("min.tolerance3d", HealingParameters.MinTolerance3d, aScope);
HealingParameters.FixFreeShellMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("free.shell", (int)HealingParameters.FixFreeShellMode, aScope);
HealingParameters.FixFreeFaceMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("free.face", (int)HealingParameters.FixFreeFaceMode, aScope);
HealingParameters.FixFreeWireMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("free.wire", (int)HealingParameters.FixFreeWireMode, aScope);
HealingParameters.FixSameParameterMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("same.parameter", (int)HealingParameters.FixSameParameterMode, aScope);
HealingParameters.FixSolidMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("solid", (int)HealingParameters.FixSolidMode, aScope);
HealingParameters.FixShellOrientationMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("shell.orientation", (int)HealingParameters.FixShellOrientationMode, aScope);
HealingParameters.CreateOpenSolidMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("create.open.solid", (int)HealingParameters.CreateOpenSolidMode, aScope);
HealingParameters.FixShellMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("shell", (int)HealingParameters.FixShellMode, aScope);
HealingParameters.FixFaceOrientationMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("face.orientation", (int)HealingParameters.FixFaceOrientationMode, aScope);
HealingParameters.FixFaceMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("face", (int)HealingParameters.FixFaceMode, aScope);
HealingParameters.FixWireMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("wire", (int)HealingParameters.FixWireMode, aScope);
HealingParameters.FixOrientationMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("orientation", (int)HealingParameters.FixOrientationMode, aScope);
HealingParameters.FixAddNaturalBoundMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("add.natural.bound", (int)HealingParameters.FixAddNaturalBoundMode, aScope);
HealingParameters.FixMissingSeamMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("missing.seam", (int)HealingParameters.FixMissingSeamMode, aScope);
HealingParameters.FixSmallAreaWireMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("small.area.wire", (int)HealingParameters.FixSmallAreaWireMode, aScope);
HealingParameters.RemoveSmallAreaFaceMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("remove.small.area.face", (int)HealingParameters.RemoveSmallAreaFaceMode, aScope);
HealingParameters.FixIntersectingWiresMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("intersecting.wires", (int)HealingParameters.FixIntersectingWiresMode, aScope);
HealingParameters.FixLoopWiresMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("loop.wires", (int)HealingParameters.FixLoopWiresMode, aScope);
HealingParameters.FixSplitFaceMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("split.face", (int)HealingParameters.FixSplitFaceMode, aScope);
HealingParameters.AutoCorrectPrecisionMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("auto.correct.precision", (int)HealingParameters.AutoCorrectPrecisionMode, aScope);
HealingParameters.ModifyTopologyMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("modify.topology", (int)HealingParameters.ModifyTopologyMode, aScope);
HealingParameters.ModifyGeometryMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("modify.geometry", (int)HealingParameters.ModifyGeometryMode, aScope);
HealingParameters.ClosedWireMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("closed.wire", (int)HealingParameters.ClosedWireMode, aScope);
HealingParameters.PreferencePCurveMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("preference.pcurve", (int)HealingParameters.PreferencePCurveMode, aScope);
HealingParameters.FixReorderMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("reorder.edges", (int)HealingParameters.FixReorderMode, aScope);
HealingParameters.FixSmallMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("remove.small.edges", (int)HealingParameters.FixSmallMode, aScope);
HealingParameters.FixConnectedMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("connected.edges", (int)HealingParameters.FixConnectedMode, aScope);
HealingParameters.FixEdgeCurvesMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("edge.curves", (int)HealingParameters.FixEdgeCurvesMode, aScope);
HealingParameters.FixDegeneratedMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("add.degenerated.edges", (int)HealingParameters.FixDegeneratedMode, aScope);
HealingParameters.FixLackingMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("add.lacking.edges", (int)HealingParameters.FixLackingMode, aScope);
HealingParameters.FixSelfIntersectionMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("selfintersection", (int)HealingParameters.FixSelfIntersectionMode, aScope);
HealingParameters.RemoveLoopMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("remove.loop", (int)HealingParameters.RemoveLoopMode, aScope);
HealingParameters.FixReversed2dMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("reversed2d", (int)HealingParameters.FixReversed2dMode, aScope);
HealingParameters.FixRemovePCurveMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("remove.pcurve", (int)HealingParameters.FixRemovePCurveMode, aScope);
HealingParameters.FixRemoveCurve3dMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("remove.curve3d", (int)HealingParameters.FixRemoveCurve3dMode, aScope);
HealingParameters.FixAddPCurveMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("add.pcurve", (int)HealingParameters.FixAddPCurveMode, aScope);
HealingParameters.FixAddCurve3dMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("add.curve3d", (int)HealingParameters.FixAddCurve3dMode, aScope);
HealingParameters.FixSeamMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("correct.order.in.seam", (int)HealingParameters.FixSeamMode, aScope);
HealingParameters.FixShiftedMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("shifted", (int)HealingParameters.FixShiftedMode, aScope);
HealingParameters.FixEdgeSameParameterMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("edge.same.parameter", (int)HealingParameters.FixEdgeSameParameterMode, aScope);
HealingParameters.FixNotchedEdgesMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("notched.edges", (int)HealingParameters.FixNotchedEdgesMode, aScope);
HealingParameters.FixTailMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("tail", (int)HealingParameters.FixTailMode, aScope);
HealingParameters.MaxTailAngle = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("max.tail.angle", (int)HealingParameters.MaxTailAngle, aScope);
HealingParameters.MaxTailWidth = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("max.tail.width", (int)HealingParameters.MaxTailWidth, aScope);
HealingParameters.FixSelfIntersectingEdgeMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("selfintersecting.edge", (int)HealingParameters.FixSelfIntersectingEdgeMode, aScope);
HealingParameters.FixIntersectingEdgesMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("intersecting.edges", (int)HealingParameters.FixIntersectingEdgesMode, aScope);
HealingParameters.FixNonAdjacentIntersectingEdgesMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("nonadjacent.intersecting.edges", (int)HealingParameters.FixNonAdjacentIntersectingEdgesMode, aScope);
HealingParameters.FixVertexPositionMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("vertex.position", (int)HealingParameters.FixVertexPositionMode, aScope);
HealingParameters.FixVertexToleranceMode = (DE_ShapeFixParameters::FixMode)
theResource->IntegerVal("vertex.tolerance", (int)HealingParameters.FixVertexToleranceMode, aScope);
return true;
}
//=======================================================================
// function : Save
// purpose :
//=======================================================================
TCollection_AsciiString DE_ShapeFixConfigurationNode::Save() const
{
TCollection_AsciiString aResult;
TCollection_AsciiString aScope = THE_CONFIGURATION_SCOPE() + "." + GetFormat() + "." + GetVendor() + ".healing";
aResult += "!\n";
aResult += "!Shape healing parameters:\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the maximum allowable tolerance\n";
aResult += "!Default value: 1.e-6. Available values: any real positive (non null) value\n";
aResult += aScope + "tolerance3d :\t " + HealingParameters.Tolerance3d + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the maximum allowable tolerance\n";
aResult += "!Default value: 1.0. Available values: any real positive (non null) value\n";
aResult += aScope + "max.tolerance3d :\t " + HealingParameters.MaxTolerance3d + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the minimum allowable tolerance\n";
aResult += "!Default value: 1.e-7. Available values: any real positive (non null) value\n";
aResult += aScope + "min.tolerance3d :\t " + HealingParameters.MinTolerance3d + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Shell for ShapeFix_Shape\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "free.shell :\t " + (int)HealingParameters.FixFreeShellMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Face for ShapeFix_Shape\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "free.face :\t " + (int)HealingParameters.FixFreeFaceMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Wire for ShapeFix_Shape\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "free.wire :\t " + (int)HealingParameters.FixFreeWireMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying ShapeFix::SameParameter after all fixes\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "same.parameter :\t " + (int)HealingParameters.FixSameParameterMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Solid\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "solid :\t " + (int)HealingParameters.FixSolidMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying analysis and fixes of orientation of shells in the solid\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "shell.orientation :\t " + (int)HealingParameters.FixShellOrientationMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for creation of solids. If operation is executed then solids are created from open shells ";
aResult += "else solids are created from closed shells only\n";
aResult += "!Default value: \"NotFix\"(0). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "create.open.solid :\t " + (int)HealingParameters.CreateOpenSolidMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Shell for ShapeFix_Solid\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "shell :\t " + (int)HealingParameters.FixShellMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying analysis and fixes of orientation of faces in the shell\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "face.orientation :\t " + (int)HealingParameters.FixFaceOrientationMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Face\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "face :\t " + (int)HealingParameters.FixFaceMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying fixes of ShapeFix_Wire\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "wire :\t " + (int)HealingParameters.FixWireMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying a fix for the orientation of faces in the shell\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "orientation :\t " + (int)HealingParameters.FixOrientationMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the add natural bound mode. If operation is executed then natural boundary is added on faces that miss them\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "add.natural.bound :\t " + (int)HealingParameters.FixAddNaturalBoundMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the fix missing seam mode (tries to insert seam is missed)\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "missing.seam :\t " + (int)HealingParameters.FixMissingSeamMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the fix small area wire mode (drops small wires)\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "small.area.wire :\t " + (int)HealingParameters.FixSmallAreaWireMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the remove face with small area (drops faces with small outer wires)\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "remove.small.area.face :\t " + (int)HealingParameters.RemoveSmallAreaFaceMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the fix intersecting wires mode in ShapeFix_Face\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "intersecting.wires :\t " + (int)HealingParameters.FixIntersectingWiresMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the fix loop wires mode in ShapeFix_Face\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "loop.wires :\t " + (int)HealingParameters.FixLoopWiresMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the fix split face mode in ShapeFix_Face\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "split.face :\t " + (int)HealingParameters.FixSplitFaceMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the auto-correct precision mode in ShapeFix_Face\n";
aResult += "!Default value: \"Fix\"(1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "auto.correct.precision :\t " + (int)HealingParameters.AutoCorrectPrecisionMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to modify topology of the wire during fixing (adding/removing edges etc.)\n";
aResult += "!Default value: \"NotFix\"(0). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "modify.topology :\t " + (int)HealingParameters.ModifyTopologyMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to modify geometry of the edges and vertices\n";
aResult += "!Default value: \"Fix\"(1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "modify.geometry :\t " + (int)HealingParameters.ModifyGeometryMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to defines whether the wire is to be closed (by calling methods like FixDegenerated() ";
aResult += "!and FixConnected() for lastand first edges\n";
aResult += "!Default value: \"Fix\"(1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "closed.wire :\t " + (int)HealingParameters.ClosedWireMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to defines the 2d representation of the wire is preferable over 3d one ";
aResult += "(in the case of ambiguity in FixEdgeCurves)\n";
aResult += "!and FixConnected() for lastand first edges\n";
aResult += "!Default value: \"Fix\"(1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "preference.pcurve :\t " + (int)HealingParameters.PreferencePCurveMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to reorder edges in the wire\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "reorder.edges :\t " + (int)HealingParameters.FixReorderMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to remove small edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "remove.small.edges :\t " + (int)HealingParameters.FixSmallMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix connecting edges in the wire\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "connected.edges :\t " + (int)HealingParameters.FixConnectedMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix edges (3Dcurves and 2D curves)\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "edge.curves :\t " + (int)HealingParameters.FixEdgeCurvesMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for add degenerated edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "add.degenerated.edges :\t " + (int)HealingParameters.FixDegeneratedMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for add lacking edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "add.lacking.edges :\t " + (int)HealingParameters.FixLackingMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix selfintersection edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "selfintersection :\t " + (int)HealingParameters.FixSelfIntersectionMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to remove loop\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "remove.loop :\t " + (int)HealingParameters.RemoveLoopMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to fix edge if pcurve is directed opposite to 3d curve\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "reversed2d :\t " + (int)HealingParameters.FixReversed2dMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to remove the pcurve(s) of the edge if it does not match the vertices\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "remove.pcurve :\t " + (int)HealingParameters.FixRemovePCurveMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to remove 3d curve of the edge if it does not match the vertices\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "remove.curve3d :\t " + (int)HealingParameters.FixRemoveCurve3dMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to add pcurve(s) of the edge if missing (by projecting 3d curve)\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "add.pcurve :\t " + (int)HealingParameters.FixAddPCurveMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to build 3d curve of the edge if missing\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "add.curve3d :\t " + (int)HealingParameters.FixAddCurve3dMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to correct order of pcurves in the seam edge depends on its orientation\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "correct.order.in.seam :\t " + (int)HealingParameters.FixSeamMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode allowed to shifts wrong 2D curves back, ensuring that the 2D curves of the edges in the wire are connected\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "shifted :\t " + (int)HealingParameters.FixShiftedMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying EdgeSameParameter\n";
aResult += "!Default value: \"NotFix\"(0). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "edge.same.parameter :\t " + (int)HealingParameters.FixEdgeSameParameterMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix notched edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "notched.edges :\t " + (int)HealingParameters.FixNotchedEdgesMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix tail in wire\n";
aResult += "!Default value: \"NotFix\"(0). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "tail :\t " + (int)HealingParameters.FixTailMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for max angle of the tails\n";
aResult += "!Default value: \"NotFix\"(0). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "max.tail.angle :\t " + (int)HealingParameters.MaxTailAngle + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for max tail width\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "max.tail.width :\t " + (int)HealingParameters.MaxTailWidth + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix selfintersecting of edge\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "selfintersecting.edge :\t " + (int)HealingParameters.FixSelfIntersectingEdgeMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix intersecting edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "intersecting.edges :\t " + (int)HealingParameters.FixIntersectingEdgesMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for fix non adjacent intersecting edges\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "nonadjacent.intersecting.edges :\t " + (int)HealingParameters.FixNonAdjacentIntersectingEdgesMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for applying ShapeFix::FixVertexPosition before all fixes\n";
aResult += "!Default value: \"NotFix\"(0). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "vertex.position :\t " + (int)HealingParameters.FixVertexPositionMode + "\n";
aResult += "!\n";
aResult += "!\n";
aResult += "!Defines the mode for increases the tolerances of the edge vertices to comprise ";
aResult += "!the ends of 3d curve and pcurve on the given face (first method) or all pcurves stored in an edge (second one)\n";
aResult += "!Default value: \"FixOrNot\"(-1). Available values: \"FixOrNot\"(-1), \"NotFix\"(0), \"Fix\"(1)\n";
aResult += aScope + "vertex.tolerance :\t " + (int)HealingParameters.FixVertexToleranceMode + "\n";
aResult += "!\n";
return aResult;
}

View File

@@ -0,0 +1,51 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _DE_ShapeFixConfigurationNode_HeaderFile
#define _DE_ShapeFixConfigurationNode_HeaderFile
#include <DE_ConfigurationNode.hxx>
#include <DE_ShapeFixParameters.hxx>
#include <TColStd_ListOfAsciiString.hxx>
class DE_ConfigurationContext;
//! Base class to work with shape healing parameters for child classes.
class DE_ShapeFixConfigurationNode : public DE_ConfigurationNode
{
DEFINE_STANDARD_RTTIEXT(DE_ShapeFixConfigurationNode, DE_ConfigurationNode)
public:
//! Initializes all field by default
Standard_EXPORT DE_ShapeFixConfigurationNode();
//! Copies values of all fields
//! @param[in] theConfigurationNode object to copy
Standard_EXPORT DE_ShapeFixConfigurationNode(const Handle(DE_ShapeFixConfigurationNode)& theConfigurationNode);
//! Updates values according the resource
//! @param[in] theResource input resource to use
//! @return True if Load was successful
Standard_EXPORT virtual bool Load(const Handle(DE_ConfigurationContext)& theResource) Standard_OVERRIDE;
//! Writes configuration to the string
//! @return result resource string
Standard_EXPORT virtual TCollection_AsciiString Save() const Standard_OVERRIDE;
public:
DE_ShapeFixParameters HealingParameters; //!< Shape healing parameters
};
#endif // _DE_ShapeFixConfigurationNode_HeaderFile

View File

@@ -0,0 +1,82 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _DE_ShapeFixParameters_HeaderFile
#define _DE_ShapeFixParameters_HeaderFile
//! Struct for shape healing parameters storage
struct DE_ShapeFixParameters
{
//! Enum, classifying a type of value for parameters
enum class FixMode : char
{
FixOrNot = -1, //!< Procedure will be executed or not (depending on the situation)
NotFix = 0, //!< Procedure will be executed
Fix = 1 //!< Procedure will be executed anyway
};
double Tolerance3d = 1.e-6;
double MaxTolerance3d = 1.0;
double MinTolerance3d = 1.e-7;
FixMode FixFreeShellMode = FixMode::FixOrNot;
FixMode FixFreeFaceMode = FixMode::FixOrNot;
FixMode FixFreeWireMode = FixMode::FixOrNot;
FixMode FixSameParameterMode = FixMode::FixOrNot;
FixMode FixSolidMode = FixMode::FixOrNot;
FixMode FixShellOrientationMode = FixMode::FixOrNot;
FixMode CreateOpenSolidMode = FixMode::NotFix;
FixMode FixShellMode = FixMode::FixOrNot;
FixMode FixFaceOrientationMode = FixMode::FixOrNot;
FixMode FixFaceMode = FixMode::FixOrNot;
FixMode FixWireMode = FixMode::FixOrNot;
FixMode FixOrientationMode = FixMode::FixOrNot;
FixMode FixAddNaturalBoundMode = FixMode::FixOrNot;
FixMode FixMissingSeamMode = FixMode::FixOrNot;
FixMode FixSmallAreaWireMode = FixMode::FixOrNot;
FixMode RemoveSmallAreaFaceMode = FixMode::FixOrNot;
FixMode FixIntersectingWiresMode = FixMode::FixOrNot;
FixMode FixLoopWiresMode = FixMode::FixOrNot;
FixMode FixSplitFaceMode = FixMode::FixOrNot;
FixMode AutoCorrectPrecisionMode = FixMode::FixOrNot;
FixMode ModifyTopologyMode = FixMode::NotFix;
FixMode ModifyGeometryMode = FixMode::Fix;
FixMode ClosedWireMode = FixMode::Fix;
FixMode PreferencePCurveMode = FixMode::Fix;
FixMode FixReorderMode = FixMode::FixOrNot;
FixMode FixSmallMode = FixMode::FixOrNot;
FixMode FixConnectedMode = FixMode::FixOrNot;
FixMode FixEdgeCurvesMode = FixMode::FixOrNot;
FixMode FixDegeneratedMode = FixMode::FixOrNot;
FixMode FixLackingMode = FixMode::FixOrNot;
FixMode FixSelfIntersectionMode = FixMode::FixOrNot;
FixMode RemoveLoopMode = FixMode::FixOrNot;
FixMode FixReversed2dMode = FixMode::FixOrNot;
FixMode FixRemovePCurveMode = FixMode::FixOrNot;
FixMode FixRemoveCurve3dMode = FixMode::FixOrNot;
FixMode FixAddPCurveMode = FixMode::FixOrNot;
FixMode FixAddCurve3dMode = FixMode::FixOrNot;
FixMode FixSeamMode = FixMode::FixOrNot;
FixMode FixShiftedMode = FixMode::FixOrNot;
FixMode FixEdgeSameParameterMode = FixMode::NotFix;
FixMode FixNotchedEdgesMode = FixMode::FixOrNot;
FixMode FixTailMode = FixMode::NotFix;
FixMode MaxTailAngle = FixMode::NotFix;
FixMode MaxTailWidth = FixMode::FixOrNot;
FixMode FixSelfIntersectingEdgeMode = FixMode::FixOrNot;
FixMode FixIntersectingEdgesMode = FixMode::FixOrNot;
FixMode FixNonAdjacentIntersectingEdgesMode = FixMode::FixOrNot;
FixMode FixVertexPositionMode = FixMode::NotFix;
FixMode FixVertexToleranceMode = FixMode::FixOrNot;
};
#endif // _DE_ShapeFixParameters_HeaderFile

View File

@@ -290,6 +290,7 @@ Standard_Boolean DE_Wrapper::Load(const Handle(DE_ConfigurationContext)& theReso
const Standard_Boolean theIsRecursive)
{
GlobalParameters.LengthUnit = theResource->RealVal("general.length.unit", GlobalParameters.LengthUnit, THE_CONFIGURATION_SCOPE());
GlobalParameters.SystemUnit = theResource->RealVal("general.system.unit", GlobalParameters.SystemUnit, THE_CONFIGURATION_SCOPE());
if (theIsRecursive)
{
for (DE_ConfigurationFormatMap::Iterator aFormatIter(myConfiguration);
@@ -372,8 +373,10 @@ TCollection_AsciiString DE_Wrapper::Save(const Standard_Boolean theIsRecursive,
aResult += "\n";
}
aResult += "!Global parameters. Used for all providers\n";
aResult += "!Length scale unit value. Should be more the 0. Default value: 1.0(MM)\n";
aResult += "!Length scale unit value. Should be more than 0. Default value: 1.0(MM)\n";
aResult += THE_CONFIGURATION_SCOPE() + ".general.length.unit :\t " + GlobalParameters.LengthUnit + "\n";
aResult += "!System unit value. Should be more than 0. Default value: 1.0(MM)\n";
aResult += THE_CONFIGURATION_SCOPE() + ".general.system.unit :\t " + GlobalParameters.SystemUnit + "\n";
if (theIsRecursive)
{
for (DE_ConfigurationFormatMap::Iterator aFormatIter(myConfiguration);

View File

@@ -5,5 +5,8 @@ DE_ConfigurationNode.hxx
DE_PluginHolder.hxx
DE_Provider.cxx
DE_Provider.hxx
DE_ShapeFixConfigurationNode.cxx
DE_ShapeFixConfigurationNode.hxx
DE_ShapeFixParameters.hxx
DE_Wrapper.cxx
DE_Wrapper.hxx

View File

@@ -110,6 +110,13 @@ bool DEBRepCascade_Provider::Write(const TCollection_AsciiString& thePath,
return false;
}
Handle(DEBRepCascade_ConfigurationNode) aNode = Handle(DEBRepCascade_ConfigurationNode)::DownCast(GetNode());
if (aNode->GlobalParameters.LengthUnit != 1.0)
{
Message::SendWarning() << "Warning in the DEBRepCascade_Provider during writing the file " <<
thePath << "\t: Target Units for writing were changed, but current format doesn't support scaling";
}
if (aLabels.Length() == 1)
{
aShape = aSTool->GetShape(aLabels.Value(1));
@@ -223,6 +230,11 @@ bool DEBRepCascade_Provider::Write(const TCollection_AsciiString& thePath,
return false;
}
Handle(DEBRepCascade_ConfigurationNode) aNode = Handle(DEBRepCascade_ConfigurationNode)::DownCast(GetNode());
if (aNode->GlobalParameters.LengthUnit != 1.0)
{
Message::SendWarning() << "Warning in the DEBRepCascade_Provider during writing the file " <<
thePath << "\t: Target Units for writing were changed, but current format doesn't support scaling";
}
if (aNode->InternalParameters.WriteBinary)
{
if (aNode->InternalParameters.WriteVersionBin > static_cast<BinTools_FormatVersion>(BinTools_FormatVersion_UPPER) ||

View File

@@ -145,6 +145,14 @@ bool DEXCAFCascade_Provider::Write(const TCollection_AsciiString& thePath,
{
Handle(TDocStd_Application) anApp = new TDocStd_Application();
BinXCAFDrivers::DefineFormat(anApp);
Handle(DEXCAFCascade_ConfigurationNode) aNode = Handle(DEXCAFCascade_ConfigurationNode)::DownCast(GetNode());
if (aNode->GlobalParameters.LengthUnit != 1.0)
{
Message::SendWarning() << "Warning in the DEXCAFCascade_Provider during writing the file " <<
thePath << "\t: Target Units for writing were changed, but current format doesn't support scaling";
}
PCDM_StoreStatus aStatus = PCDM_SS_Doc_IsNull;
if (!thePath.IsEmpty())
{

View File

@@ -60,7 +60,7 @@ public:
Standard_EXPORT void Initialize (const Adaptor3d_Surface& S, const Standard_Real Uinf, const Standard_Real Usup, const Standard_Real Vinf, const Standard_Real Vsup, const Standard_Real TolC, const Standard_Real TolS);
//! Computes the distances.
//! An exception is raised if the fieds have not been
//! An exception is raised if the fields have not been
//! initialized.
Standard_EXPORT void Perform (const Adaptor3d_Curve& C, const Standard_Real Uinf, const Standard_Real Usup);

View File

@@ -72,7 +72,7 @@ public:
Standard_EXPORT void Initialize (const Adaptor3d_Surface& S, const Standard_Real Uinf, const Standard_Real Usup, const Standard_Real Vinf, const Standard_Real Vsup, const Standard_Real TolU, const Standard_Real TolV);
//! Computes the distances.
//! An exception is raised if the fieds have not been
//! An exception is raised if the fields have not been
//! initialized.
Standard_EXPORT void Perform (const gp_Pnt& P);

View File

@@ -51,7 +51,7 @@ public:
Standard_EXPORT void Initialize (const Adaptor3d_Surface& S2, const Standard_Real Uinf2, const Standard_Real Usup2, const Standard_Real Vinf2, const Standard_Real Vsup2, const Standard_Real TolS1);
//! Computes the distances.
//! An exception is raised if the fieds have not been
//! An exception is raised if the fields have not been
//! initialized.
Standard_EXPORT void Perform (const Adaptor3d_Surface& S1, const Standard_Real Uinf1, const Standard_Real Usup1, const Standard_Real Vinf1, const Standard_Real Vsup1, const Standard_Real TolS1);

View File

@@ -108,7 +108,7 @@ FEmTool_ProfileMatrix::FEmTool_ProfileMatrix(const TColStd_Array1OfInteger& Firs
SMA--;
const Standard_Real * PM = &ProfileMatrix->Value(1);
PM--;
IsDecomp = Standard_False;
for(j = 1; j <= RowNumber(); j++) {
DiagAddr = profile(2, j);
Kj = j - profile(1, j);
@@ -118,7 +118,7 @@ FEmTool_ProfileMatrix::FEmTool_ProfileMatrix(const TColStd_Array1OfInteger& Firs
a = PM[DiagAddr] - Sum;
if(a < Eps) {
return IsDecomp = Standard_False;// Matrix is not positive defined
return Standard_False;// Matrix is not positive defined
}
a = Sqrt(a);
SMA[DiagAddr] = a;
@@ -139,7 +139,8 @@ FEmTool_ProfileMatrix::FEmTool_ProfileMatrix(const TColStd_Array1OfInteger& Firs
SMA[CurrAddr] = (PM[CurrAddr] - Sum)/a;
}
}
return IsDecomp = Standard_True;
IsDecomp = Standard_True;
return IsDecomp;
}
//=======================================================================

View File

@@ -77,7 +77,7 @@ public:
protected:
//! Angles corresspond to the Ox axis
//! Angles correspond to the Ox axis
//! ConstrOrder1(2) can be equal to 0, 1 or 2
Standard_EXPORT FairCurve_Energy(const Handle(TColgp_HArray1OfPnt2d)& Poles, const Standard_Integer ConstrOrder1, const Standard_Integer ConstrOrder2, const Standard_Boolean WithAuxValue = Standard_False, const Standard_Real Angle1 = 0, const Standard_Real Angle2 = 0, const Standard_Integer Degree = 2, const Standard_Real Curvature1 = 0, const Standard_Real Curvature2 = 0);
@@ -92,13 +92,13 @@ protected:
Standard_Integer Indice (const Standard_Integer i, const Standard_Integer j) const;
//! compute the pole which depend of variables and G1 constraint
//! compute the pole which depend of variables and G1 constraint
Standard_EXPORT void ComputePolesG1 (const Standard_Integer Side, const Standard_Real Lambda, const gp_Pnt2d& P1, gp_Pnt2d& P2) const;
//! compute the pole which depend of variables and G2 constraint
//! compute the pole which depend of variables and G2 constraint
Standard_EXPORT void ComputePolesG2 (const Standard_Integer Side, const Standard_Real Lambda, const Standard_Real Rho, const gp_Pnt2d& P1, gp_Pnt2d& P2) const;
//! compute the energy (and derivatives) in intermediat format
//! compute the energy (and derivatives) in intermediate format
Standard_EXPORT virtual Standard_Boolean Compute (const Standard_Integer DerivativeOrder, math_Vector& Result) = 0;

View File

@@ -45,7 +45,7 @@ public:
DEFINE_STANDARD_ALLOC
//! Angles corresspond to the Ox axis
//! Angles correspond to the Ox axis
Standard_EXPORT FairCurve_EnergyOfBatten(const Standard_Integer BSplOrder, const Handle(TColStd_HArray1OfReal)& FlatKnots, const Handle(TColgp_HArray1OfPnt2d)& Poles, const Standard_Integer ContrOrder1, const Standard_Integer ContrOrder2, const FairCurve_BattenLaw& Law, const Standard_Real LengthSliding, const Standard_Boolean FreeSliding = Standard_True, const Standard_Real Angle1 = 0, const Standard_Real Angle2 = 0);
//! return the lengthSliding = P1P2 + Sliding
@@ -66,7 +66,7 @@ protected:
//! compute the poles which correspond with the variable X
Standard_EXPORT virtual void ComputePoles (const math_Vector& X) Standard_OVERRIDE;
//! compute the energy in intermediat format
//! compute the energy in intermediate format
Standard_EXPORT virtual Standard_Boolean Compute (const Standard_Integer DerivativeOrder, math_Vector& Result) Standard_OVERRIDE;

View File

@@ -45,7 +45,7 @@ public:
DEFINE_STANDARD_ALLOC
//! Angles corresspond to the Ox axis
//! Angles correspond to the Ox axis
Standard_EXPORT FairCurve_EnergyOfMVC(const Standard_Integer BSplOrder, const Handle(TColStd_HArray1OfReal)& FlatKnots, const Handle(TColgp_HArray1OfPnt2d)& Poles, const Standard_Integer ContrOrder1, const Standard_Integer ContrOrder2, const FairCurve_BattenLaw& Law, const Standard_Real PhysicalRatio, const Standard_Real LengthSliding, const Standard_Boolean FreeSliding = Standard_True, const Standard_Real Angle1 = 0, const Standard_Real Angle2 = 0, const Standard_Real Curvature1 = 0, const Standard_Real Curvature2 = 0);
//! return the lengthSliding = P1P2 + Sliding
@@ -63,10 +63,10 @@ public:
protected:
//! compute the poles which correspond with the variable X
//! compute the poles which correspond with the variable X
Standard_EXPORT virtual void ComputePoles (const math_Vector& X) Standard_OVERRIDE;
//! compute the energy in intermediat format
//! compute the energy in intermediate format
Standard_EXPORT virtual Standard_Boolean Compute (const Standard_Integer DerivativeOrder, math_Vector& Result) Standard_OVERRIDE;

View File

@@ -99,7 +99,7 @@ GccAna_Lin2dTanPer::
IntAna2d_AnaIntersection Intp(linsol(1),TheCircle);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
Standard_Real maxdist = RealLast();
constexpr Standard_Real maxdist = RealLast();
for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
if (Intp.Point(i).Value().Distance(ThePnt) < maxdist) {
pntint2sol(1) = Intp.Point(i).Value();
@@ -244,7 +244,7 @@ GccAna_Lin2dTanPer::
IntAna2d_AnaIntersection Intp(linsol(NbrSol),TheCircle);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
Standard_Real maxdist = RealLast();
constexpr Standard_Real maxdist = RealLast();
for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
if (Intp.Point(i).Value().Distance(pnttg1sol(NbrSol)) < maxdist) {
pntint2sol(NbrSol) = Intp.Point(i).Value();

View File

@@ -598,7 +598,7 @@ static void Pretreatment(TColGeom2d_Array1OfBSplineCurve& tab)
//=======================================================================
//function : NeedToBeTreated
//purpose : Say if the BSpline is rationnal and if the two first and two
//purpose : Say if the BSpline is rational and if the two first and two
// last weigths are different
//=======================================================================

View File

@@ -616,7 +616,7 @@ static void Pretreatment(TColGeom_Array1OfBSplineCurve& tab)
//=======================================================================
//function : NeedToBeTreated
//purpose : Say if the BSpline is rationnal and if the two first and two
//purpose : Say if the BSpline is rational and if the two first and two
// last weigths are different
//=======================================================================

View File

@@ -41,6 +41,7 @@
#include <math_Matrix.hxx>
#include <math_Gauss.hxx>
#include <array>
GeomConvert_CurveToAnaCurve::GeomConvert_CurveToAnaCurve():
myGap(Precision::Infinite()),
@@ -650,15 +651,15 @@ Handle(Geom_Curve) GeomConvert_CurveToAnaCurve::ComputeCurve(const Handle(Geom_C
const GeomConvert_ConvType theConvType, const GeomAbs_CurveType theTarget)
{
cf = c1; cl = c2;
Handle(Geom_Curve) c3d, newc3d[3];
Standard_Integer i, imin = -1;
c3d = theC3d;
if (c3d.IsNull()) return newc3d[imin];
std::array<Handle(Geom_Curve), 3> newc3d = {};
Handle(Geom_Curve) c3d = theC3d;
if (c3d.IsNull()) return c3d;
gp_Pnt P1 = c3d->Value(c1);
gp_Pnt P2 = c3d->Value(c2);
gp_Pnt P3 = c3d->Value(c1 + (c2 - c1) / 2);
Standard_Real d[3] = { RealLast(), RealLast(), RealLast() };
Standard_Real fp[3], lp[3];
std::array<Standard_Real, 3> d = { RealLast(), RealLast(), RealLast() };
std::array<Standard_Real, 3> fp = {};
std::array<Standard_Real, 3> lp = {};
if (c3d->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) {
Handle(Geom_TrimmedCurve) aTc = Handle(Geom_TrimmedCurve)::DownCast(c3d);
@@ -723,7 +724,7 @@ Handle(Geom_Curve) GeomConvert_CurveToAnaCurve::ComputeCurve(const Handle(Geom_C
// theConvType == GeomConvert_MinGap
// recognition in case of small curve
imin = -1;
Standard_Integer imin = -1;
if((P1.Distance(P2) < 2*tolerance) && (P1.Distance(P3) < 2*tolerance)) {
newc3d[1] = ComputeCircle(c3d, tolerance, c1, c2, fp[1], lp[1], d[1]);
newc3d[0] = ComputeLine(c3d, tolerance, c1, c2, fp[0], lp[0], d[0]);
@@ -746,7 +747,7 @@ Handle(Geom_Curve) GeomConvert_CurveToAnaCurve::ComputeCurve(const Handle(Geom_C
newc3d[2] = ComputeEllipse(c3d, tol, c1, c2, fp[2], lp[2], d[2]);
}
Standard_Real dd = RealLast();
for (i = 0; i < 3; ++i)
for (Standard_Integer i = 0; i < 3; ++i)
{
if (newc3d[i].IsNull()) continue;
if (d[i] < dd)

View File

@@ -79,7 +79,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE;
//! Returns if the section is rationnal or not
//! Returns if the section is rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns the number of intervals for continuity
@@ -100,7 +100,7 @@ public:
Standard_EXPORT virtual void SetInterval (const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary (in radian)
//! SurfTol error inside the surface.

View File

@@ -74,7 +74,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE;
//! Returns if the sections are rationnal or not
//! Returns if the sections are rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns if the sections are periodic or not

View File

@@ -100,7 +100,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE;
//! Returns if the sections are rationnal or not
//! Returns if the sections are rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns if the sections are periodic or not

View File

@@ -69,7 +69,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const = 0;
//! Returns if the sections are rationnal or not
//! Returns if the sections are rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const = 0;
//! Returns if the sections are periodic or not

View File

@@ -99,7 +99,7 @@ public:
Standard_EXPORT virtual void Resolution (const Standard_Integer Index, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const Standard_OVERRIDE;
//! Returns the tolerance to reach in approximation
//! to respecte
//! to respect
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary (in radian)
//! SurfTol error inside the surface.

View File

@@ -74,7 +74,7 @@ public:
//! get the Multplicities of the section
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE;
//! Returns if the sections are rationnal or not
//! Returns if the sections are rational or not
Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE;
//! Returns if the sections are periodic or not

View File

@@ -1985,7 +1985,7 @@ void GeomLib::AxeOfInertia(const TColgp_Array1OfPnt& Points,
//function : CanBeTreated
//purpose : indicates if the surface can be treated(if the conditions are
// filled) and need to be treated(if the surface hasn't been yet
// treated or if the surface is rationnal and non periodic)
// treated or if the surface is rational and non periodic)
//=======================================================================
static Standard_Boolean CanBeTreated(Handle(Geom_BSplineSurface)& BSurf)

View File

@@ -42,9 +42,9 @@ public:
DEFINE_STANDARD_ALLOC
//! Tol is a Tolerance to make the difference between
//! Tol is a Tolerance to make the difference between
//! the result plane and the result line.
//! if POption = 1 : automatical parametrisation
//! if POption = 1 : automatic parametrisation
//! if POption = 2 : parametrisation by eigen vectors
//! if NOption = 1 : the average plane is the inertial plane.
//! if NOption = 2 : the average plane is the plane of max. flux.

View File

@@ -1986,7 +1986,7 @@ Intersect(Handle(GeomPlate_HArray1OfSequenceOfReal)& PntInter,
// the table of sequences Parcont contains all
// parameter of points on curves
// Field myPlateCont contains parameter of points on a plate;
// it excludes duplicate points and imcompatible zones.
// it excludes duplicate points and incompatible zones.
// The first part corresponds to verification of compatibility
// and to removal of duplicate points.
//---------------------------------------------------------

View File

@@ -668,8 +668,8 @@ Bnd_Box Graphic3d_Structure::MinMaxValues (const Standard_Boolean theToIgnoreInf
aResult.Update (aBox.CornerMin().x(), aBox.CornerMin().y(), aBox.CornerMin().z(),
aBox.CornerMax().x(), aBox.CornerMax().y(), aBox.CornerMax().z());
Standard_Real aLimMin = ShortRealFirst() + 1.0;
Standard_Real aLimMax = ShortRealLast() - 1.0;
constexpr Standard_Real aLimMin = ShortRealFirst() + 1.0;
constexpr Standard_Real aLimMax = ShortRealLast() - 1.0;
gp_Pnt aMin = aResult.CornerMin();
gp_Pnt aMax = aResult.CornerMax();
if (aMin.X() < aLimMin && aMin.Y() < aLimMin && aMin.Z() < aLimMin
@@ -847,8 +847,8 @@ void Graphic3d_Structure::Transforms (const gp_Trsf& theTrsf,
const Standard_Real theX, const Standard_Real theY, const Standard_Real theZ,
Standard_Real& theNewX, Standard_Real& theNewY, Standard_Real& theNewZ)
{
const Standard_Real aRL = RealLast();
const Standard_Real aRF = RealFirst();
constexpr Standard_Real aRL = RealLast();
constexpr Standard_Real aRF = RealFirst();
theNewX = theX;
theNewY = theY;
theNewZ = theZ;

Some files were not shown because too many files have changed in this diff Show More