mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
656b0d217f | ||
|
83bb2a329d | ||
|
5b0f5b52b9 | ||
|
06282d9c7c | ||
|
60792f26f0 | ||
|
6ef56849a5 | ||
|
e8605596c9 | ||
|
ffd7a3aa4f | ||
|
8147976d9f | ||
|
40b80d8d66 | ||
|
7036facf10 | ||
|
a6e425d0a6 | ||
|
b9fbc699b5 | ||
|
0435edfe54 | ||
|
bd651bbbd9 | ||
|
3aeea1e96e | ||
|
ed85665b55 | ||
|
1103eb60af | ||
|
6dbfade692 | ||
|
588ee924e4 | ||
|
f0c6e6fc8d | ||
|
58390c4eb1 |
@@ -35,6 +35,14 @@ macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# set using memory manager option for TKernel
|
||||
set (USE_MMGR_TYPE "NATIVE" CACHE STRING "Select using memory manager tool.")
|
||||
set_property(CACHE USE_MMGR_TYPE PROPERTY STRINGS "NATIVE" "FLEXIBLE" "TBB" "JEMALLOC")
|
||||
|
||||
# set profile for C++ compiler and linker
|
||||
set (BUILD_OPT_PROFILE "Default" CACHE STRING "Select profile for compiler and linker.")
|
||||
set_property(CACHE BUILD_OPT_PROFILE PROPERTY STRINGS "Default" "Production")
|
||||
|
||||
# include variable description
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/vardescr")
|
||||
|
||||
@@ -834,6 +842,14 @@ else()
|
||||
OCCT_CHECK_AND_UNSET ("3RDPARTY_FLEX_EXECUTABLE")
|
||||
endif()
|
||||
|
||||
# Jemalloc
|
||||
if ("${USE_MMGR_TYPE}" STREQUAL "JEMALLOC")
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/jemalloc")
|
||||
else()
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_JEMALLOC")
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_JEMALLOC")
|
||||
endif()
|
||||
|
||||
# qt for inspector and samples
|
||||
if (BUILD_Inspector OR BUILD_SAMPLES_QT)
|
||||
# check qt 3rdparty path
|
||||
|
@@ -3,6 +3,6 @@ ModelingData TKG2d TKG3d TKGeomBase TKBRep
|
||||
ModelingAlgorithms TKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffset TKFeat TKMesh TKXMesh TKShHealing
|
||||
Visualization TKService TKV3d TKOpenGl TKOpenGles TKMeshVS TKIVtk TKD3DHost
|
||||
ApplicationFramework TKCDF TKLCAF TKCAF TKBinL TKXmlL TKBin TKXml TKStdL TKStd TKTObj TKBinTObj TKXmlTObj TKVCAF
|
||||
DataExchange TKXDE TKXSBase TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP TKIGES TKXCAF TKXDEIGES TKXDESTEP TKSTL TKVRML TKXmlXCAF TKBinXCAF TKRWMesh TKXDECascade
|
||||
Draw TKDraw TKTopTest TKOpenGlTest TKOpenGlesTest TKD3DHostTest TKViewerTest TKXSDRAW TKDCAF TKXDEDRAW TKTObjDRAW TKQADraw TKIVtkDraw DRAWEXE
|
||||
DataExchange TKDE TKXSBase TKDESTEP TKDEIGES TKDESTL TKDEVRML TKDECascade TKDEOBJ TKDEGLTF TKDEPLY TKXCAF TKXmlXCAF TKBinXCAF TKRWMesh
|
||||
DETools TKExpress ExpToCasExe
|
||||
Draw TKDraw TKTopTest TKOpenGlTest TKOpenGlesTest TKD3DHostTest TKViewerTest TKXSDRAW TKDCAF TKXDEDRAW TKTObjDRAW TKQADraw TKIVtkDraw DRAWEXE TKXSDRAWDE TKXSDRAWGLTF TKXSDRAWIGES TKXSDRAWOBJ TKXSDRAWPLY TKXSDRAWSTEP TKXSDRAWSTL TKXSDRAWVRML
|
||||
|
36
adm/UDLIST
36
adm/UDLIST
@@ -32,6 +32,7 @@ n UnitsAPI
|
||||
n gp
|
||||
n math
|
||||
r OS
|
||||
n FlexLexer
|
||||
t TKMath
|
||||
t TKernel
|
||||
n Adaptor2d
|
||||
@@ -376,18 +377,13 @@ r SHMessage
|
||||
r XSMessage
|
||||
r XSTEPResource
|
||||
t TKBinXCAF
|
||||
t TKIGES
|
||||
t TKSTEP
|
||||
t TKSTEP209
|
||||
t TKSTEPAttr
|
||||
t TKSTEPBase
|
||||
t TKSTL
|
||||
t TKVRML
|
||||
t TKDESTL
|
||||
t TKDEVRML
|
||||
t TKXCAF
|
||||
t TKXDE
|
||||
t TKXDECascade
|
||||
t TKXDEIGES
|
||||
t TKXDESTEP
|
||||
t TKDE
|
||||
t TKDECascade
|
||||
t TKDEIGES
|
||||
t TKDESTEP
|
||||
t TKXSBase
|
||||
t TKXmlXCAF
|
||||
n BOPTest
|
||||
@@ -419,7 +415,12 @@ n XDEDRAW
|
||||
n XSDRAW
|
||||
n XSDRAWIGES
|
||||
n XSDRAWSTEP
|
||||
n XSDRAWSTLVRML
|
||||
n XSDRAWSTL
|
||||
n XSDRAWVRML
|
||||
n XSDRAWDE
|
||||
n XSDRAWGLTF
|
||||
n XSDRAWOBJ
|
||||
n XSDRAWPLY
|
||||
r DrawResources
|
||||
t TKDCAF
|
||||
t TKDraw
|
||||
@@ -431,6 +432,14 @@ t TKD3DHostTest
|
||||
t TKViewerTest
|
||||
t TKXDEDRAW
|
||||
t TKXSDRAW
|
||||
t TKXSDRAWIGES
|
||||
t TKXSDRAWSTEP
|
||||
t TKXSDRAWSTL
|
||||
t TKXSDRAWVRML
|
||||
t TKXSDRAWDE
|
||||
t TKXSDRAWGLTF
|
||||
t TKXSDRAWOBJ
|
||||
t TKXSDRAWPLY
|
||||
x DRAWEXE
|
||||
n QADraw
|
||||
n QANCollection
|
||||
@@ -456,6 +465,9 @@ t TKVCAF
|
||||
n XCAFView
|
||||
n XCAFNoteObjects
|
||||
t TKRWMesh
|
||||
t TKDEGLTF
|
||||
t TKDEOBJ
|
||||
t TKDEPLY
|
||||
n RWGltf
|
||||
n RWMesh
|
||||
n RWObj
|
||||
|
143
adm/cmake/jemalloc.cmake
Normal file
143
adm/cmake/jemalloc.cmake
Normal file
@@ -0,0 +1,143 @@
|
||||
# JeMalloc
|
||||
|
||||
if (NOT DEFINED INSTALL_JEMALLOC)
|
||||
set (INSTALL_JEMALLOC OFF CACHE BOOL "${INSTALL_INSTALL_JEMALLOC_DESCR}")
|
||||
endif()
|
||||
|
||||
# include occt macros. compiler_bitness, os_with_bit, compiler
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
|
||||
|
||||
# specify JEMALLOC folder in connection with 3RDPARTY_DIR
|
||||
if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
|
||||
if (NOT 3RDPARTY_JEMALLOC_DIR OR NOT EXISTS "${3RDPARTY_JEMALLOC_DIR}")
|
||||
FIND_PRODUCT_DIR ("${3RDPARTY_DIR}" jemalloc JEMALLOC_DIR_NAME)
|
||||
if (JEMALLOC_DIR_NAME)
|
||||
set (3RDPARTY_JEMALLOC_DIR "${3RDPARTY_DIR}/${JEMALLOC_DIR_NAME}" CACHE PATH "The directory containing JEMALLOC" FORCE)
|
||||
set (3RDPARTY_JEMALLOC_DIR "${3RDPARTY_DIR}/${JEMALLOC_DIR_NAME}")
|
||||
message(STATUS "Info: JEMALLOC detected in ${3RDPARTY_JEMALLOC_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
endif()
|
||||
|
||||
# define required JEMALLOC variables
|
||||
if (NOT DEFINED 3RDPARTY_JEMALLOC_INCLUDE_DIR)
|
||||
set (3RDPARTY_JEMALLOC_INCLUDE_DIR "" CACHE PATH "the path of headers directory")
|
||||
endif()
|
||||
|
||||
# check 3RDPARTY_${PRODUCT_NAME}_ paths for consistency with specified 3RDPARTY_${PRODUCT_NAME}_DIR
|
||||
if (3RDPARTY_JEMALLOC_DIR AND EXISTS "${3RDPARTY_JEMALLOC_DIR}")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_JEMALLOC_DIR 3RDPARTY_JEMALLOC_INCLUDE_DIR PATH "the path to JEMALLOC")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_JEMALLOC_DIR 3RDPARTY_JEMALLOC_LIBRARY_DIR FILEPATH "The directory containing JEMALLOC libraries")
|
||||
endif()
|
||||
|
||||
# header
|
||||
if (NOT 3RDPARTY_JEMALLOC_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_JEMALLOC_INCLUDE_DIR}")
|
||||
set (HEADER_NAMES jemalloc.h)
|
||||
|
||||
# set 3RDPARTY_JEMALLOC_INCLUDE_DIR as notfound, otherwise find_library can't assign a new value to 3RDPARTY_JEMALLOC_INCLUDE_DIR
|
||||
set (3RDPARTY_JEMALLOC_INCLUDE_DIR "3RDPARTY_JEMALLOC_INCLUDE_DIR-NOTFOUND" CACHE FILEPATH "the path to header directory" FORCE)
|
||||
|
||||
if (3RDPARTY_JEMALLOC_DIR AND EXISTS "${3RDPARTY_JEMALLOC_DIR}")
|
||||
find_path (3RDPARTY_JEMALLOC_INCLUDE_DIR NAMES ${HEADER_NAMES}
|
||||
PATHS ${3RDPARTY_JEMALLOC_DIR}
|
||||
PATH_SUFFIXES include/jemalloc
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_JEMALLOC_INCLUDE_DIR AND EXISTS "${3RDPARTY_JEMALLOC_INCLUDE_DIR}")
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_JEMALLOC_INCLUDE_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_JEMALLOC_INCLUDE_DIR)
|
||||
set (3RDPARTY_JEMALLOC_INCLUDE_DIR "" CACHE FILEPATH "the path to jemalloc.h" FORCE)
|
||||
endif()
|
||||
|
||||
# Installing destination path
|
||||
if (WIN32)
|
||||
set (JEMALLOC_INSTALL_DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
set (JEMALLOC_INSTALL_DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
endif()
|
||||
|
||||
macro (JEMALLOC_LIB_SEARCH MMGR_LIB PREFIX)
|
||||
if (NOT 3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB})
|
||||
set (JEMALLOC_PATH_SUFFIXES "lib" "bin")
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} "3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}-NOTFOUND")
|
||||
if (3RDPARTY_JEMALLOC_DIR AND EXISTS "${3RDPARTY_JEMALLOC_DIR}")
|
||||
find_library (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} NAMES ${MMGR_LIB}
|
||||
PATHS "${3RDPARTY_JEMALLOC_LIBRARY_DIR}" "${3RDPARTY_JEMALLOC_DIR}"
|
||||
PATH_SUFFIXES ${JEMALLOC_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} NAMES ${MMGR_LIB}
|
||||
PATH_SUFFIXES ${JEMALLOC_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
if (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB})
|
||||
get_filename_component (3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB} "${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}}" PATH)
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB} "${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}}")
|
||||
else()
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB} "")
|
||||
endif()
|
||||
endif()
|
||||
if (3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB})
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}}")
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_DIR "${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}}" CACHE PATH "The directory containing JEMALLOC libraries" FORCE)
|
||||
else()
|
||||
message("Cannot find ${MMGR_LIB} library in jemalloc 3rdparty")
|
||||
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB})
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} "")
|
||||
endif()
|
||||
set (JEMALLOC_IS_STATIC_LIB FALSE)
|
||||
if (((${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} MATCHES "\.lib$")) OR ((${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} MATCHES "\.a$")))
|
||||
get_filename_component(STATIC_LIB_NAME ${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} NAME)
|
||||
list(APPEND CSF_MMGR "${STATIC_LIB_NAME}")
|
||||
set (JEMALLOC_IS_STATIC_LIB TRUE)
|
||||
endif()
|
||||
# install instructions
|
||||
if (INSTALL_JEMALLOC AND NOT JEMALLOC_IS_STATIC_LIB)
|
||||
OCCT_MAKE_OS_WITH_BITNESS()
|
||||
OCCT_MAKE_COMPILER_SHORT_NAME()
|
||||
get_filename_component(3RDPARTY_JEMALLOC_LIBRARY ${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} REALPATH)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_JEMALLOC_LIBRARY}"
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
else()
|
||||
install (FILES "${3RDPARTY_JEMALLOC_LIBRARY}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${JEMALLOC_INSTALL_DESTINATION}d")
|
||||
install (FILES "${3RDPARTY_JEMALLOC_LIBRARY}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${JEMALLOC_INSTALL_DESTINATION}")
|
||||
install (FILES "${3RDPARTY_JEMALLOC_LIBRARY}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${JEMALLOC_INSTALL_DESTINATION}i")
|
||||
endif()
|
||||
set (USED_3RDPARTY_JEMALLOC_DIR "")
|
||||
elseif(NOT JEMALLOC_IS_STATIC_LIB)
|
||||
# the library directory for using by the executable
|
||||
set (USED_3RDPARTY_JEMALLOC_DIR ${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}})
|
||||
endif()
|
||||
unset(3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB} CACHE)
|
||||
unset(3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} CACHE)
|
||||
endmacro()
|
||||
|
||||
# Reset CSF variable
|
||||
set (CSF_MMGR "")
|
||||
|
||||
# find static jemalloc lib
|
||||
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a")
|
||||
if (WIN32)
|
||||
JEMALLOC_LIB_SEARCH ("jemalloc" "STATIC")
|
||||
elseif(NOT WIN32)
|
||||
JEMALLOC_LIB_SEARCH ("jemalloc_pic" "STATIC")
|
||||
SET(CMAKE_FIND_LIBRARY_SUFFIXES "" "so")
|
||||
JEMALLOC_LIB_SEARCH ("jemalloc.so.2" "SHARED")
|
||||
endif()
|
||||
|
||||
# find shared jemalloc lib
|
||||
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".so")
|
||||
JEMALLOC_LIB_SEARCH ("jemalloc" "SHARED")
|
@@ -44,9 +44,25 @@ elseif (MSVC)
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
# string pooling (GF), function-level linking (Gy)
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GF /Gy")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GF /Gy")
|
||||
if ("${BUILD_OPT_PROFILE}" STREQUAL "Production")
|
||||
# string pooling (GF), function-level linking (Gy)
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GF /Gy")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GF /Gy")
|
||||
|
||||
# Favor fast code (Ot), Omit frame pointers (Oy)
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ot /Oy")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Ot /Oy")
|
||||
|
||||
# Whole Program Optimisation (GL), Enable intrinsic functions (Oi)
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL /Oi")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GL /Oi")
|
||||
|
||||
# Link-Time Code Generation(LTCG) is requared for Whole Program Optimisation(GL)
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
|
||||
endif()
|
||||
if (BUILD_FORCE_RelWithDebInfo)
|
||||
# generate debug info (Zi), inline expansion level (Ob1)
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi /Ob1")
|
||||
@@ -118,6 +134,22 @@ if (MSVC)
|
||||
endif()
|
||||
elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]"))
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
|
||||
|
||||
if ("${BUILD_OPT_PROFILE}" STREQUAL "Production")
|
||||
# /Ot (favor speed over size) is similar to -O2 or -O3 in GCC/Clang.
|
||||
# /Oy (omit frame pointers) is similar to -fomit-frame-pointer in GCC/Clang.
|
||||
# /GL (whole program optimization) is similar to -flto (Link Time Optimization) in GCC/Clang.
|
||||
# /GF (eliminate duplicate strings) doesn't have a direct equivalent in GCC/Clang, but the compilers do string pooling automatically.
|
||||
# /Gy (enable function-level linking) is similar to -ffunction-sections in GCC/Clang.
|
||||
# /fp:precise (improve floating-point consistency) is similar to -ffloat-store in GCC, but there isn't a perfect equivalent in Clang.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fomit-frame-pointer -flto -ffunction-sections -ffloat-store")
|
||||
|
||||
# Link-Time Code Generation(LTCG) is requared for Whole Program Optimisation(GL)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} -flto")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -flto")
|
||||
endif()
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
|
||||
endif()
|
||||
|
@@ -14,6 +14,7 @@ if /I "%VCVER%" == "@COMPILER@" (
|
||||
set "TBB_DIR=@3RDPARTY_TBB_DLL_DIR@"
|
||||
set "VTK_DIR=@3RDPARTY_VTK_DLL_DIR@"
|
||||
set "FFMPEG_DIR=@3RDPARTY_FFMPEG_DLL_DIR@"
|
||||
set "JEMALLOC_DIR=@3RDPARTY_JEMALLOC_LIBRARY_DIR@"
|
||||
set "OPENVR_DIR=@3RDPARTY_OPENVR_DLL_DIRS@"
|
||||
|
||||
if not "@3RDPARTY_QT_DIR@" == "" (
|
||||
|
@@ -12,6 +12,7 @@ if [ "$1" == "@BIN_LETTER@" ]; then
|
||||
export TBB_DIR="@3RDPARTY_TBB_LIBRARY_DIR@"
|
||||
export VTK_DIR="@3RDPARTY_VTK_LIBRARY_DIR@"
|
||||
export FFMPEG_DIR="@3RDPARTY_FFMPEG_LIBRARY_DIR@"
|
||||
export JEMALLOC_DIR="@3RDPARTY_JEMALLOC_LIBRARY_DIR@"
|
||||
|
||||
if [ "x@3RDPARTY_QT_DIR" != "x" ]; then
|
||||
export QTDIR="@3RDPARTY_QT_DIR@"
|
||||
|
@@ -16,6 +16,7 @@ if /I "%VCVER%" == "@COMPILER@" (
|
||||
set "TBB_DIR=@USED_3RDPARTY_TBB_DIR@"
|
||||
set "VTK_DIR=@USED_3RDPARTY_VTK_DIR@"
|
||||
set "FFMPEG_DIR=@USED_3RDPARTY_FFMPEG_DIR@"
|
||||
set "JEMALLOC_DIR=@USED_3RDPARTY_JEMALLOC_DIR@"
|
||||
set "OPENVR_DIR=@USED_3RDPARTY_OPENVR_DIR@"
|
||||
|
||||
if not "@USED_3RDPARTY_QT_DIR@" == "" (
|
||||
|
@@ -12,6 +12,7 @@ if [ "$1" == "@BIN_LETTER@" ]; then
|
||||
export TBB_DIR="@USED_3RDPARTY_TBB_DIR@"
|
||||
export VTK_DIR="@USED_3RDPARTY_VTK_DIR@"
|
||||
export FFMPEG_DIR="@USED_3RDPARTY_FFMPEG_DIR@"
|
||||
export JEMALLOC_DIR="@USED_3RDPARTY_JEMALLOC_DIR@"
|
||||
|
||||
if [ "x@USED_3RDPARTY_QT_DIR@" != "x" ]; then
|
||||
export QTDIR="@USED_3RDPARTY_QT_DIR@"
|
||||
|
@@ -154,6 +154,7 @@ if not ["%GLES2_DIR%"] == [""] set "PATH=%GLES2_DIR%;%PATH%"
|
||||
if not ["%TBB_DIR%"] == [""] set "PATH=%TBB_DIR%;%PATH%"
|
||||
if not ["%VTK_DIR%"] == [""] set "PATH=%VTK_DIR%;%PATH%"
|
||||
if not ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_DIR%;%PATH%"
|
||||
if not ["%JEMALLOC_DIR%"] == [""] set "PATH=%JEMALLOC_DIR%;%PATH%"
|
||||
if not ["%OPENVR_DIR%"] == [""] set "PATH=%OPENVR_DIR%;%PATH%"
|
||||
|
||||
rem ----- Set path to 3rd party and OCCT libraries -----
|
||||
|
@@ -69,6 +69,10 @@ if [ "$FFMPEG_DIR" != "" ]; then
|
||||
THRDPARTY_PATH="${FFMPEG_DIR}:${THRDPARTY_PATH}"
|
||||
fi
|
||||
|
||||
if [ "$JEMALLOC_DIR" != "" ]; then
|
||||
THRDPARTY_PATH="${JEMALLOC_DIR}:${THRDPARTY_PATH}"
|
||||
fi
|
||||
|
||||
if [ "$QTDIR" != "" ]; then
|
||||
THRDPARTY_PATH="${QTDIR}/lib:${THRDPARTY_PATH}"
|
||||
fi
|
||||
|
@@ -71,6 +71,10 @@ if [ "$FFMPEG_DIR" != "" ]; then
|
||||
THRDPARTY_PATH="${FFMPEG_DIR}:${THRDPARTY_PATH}"
|
||||
fi
|
||||
|
||||
if [ "$JEMALLOC_DIR" != "" ]; then
|
||||
THRDPARTY_PATH="${JEMALLOC_DIR}:${THRDPARTY_PATH}"
|
||||
fi
|
||||
|
||||
if [ "$QTDIR" != "" ]; then
|
||||
THRDPARTY_PATH="${QTDIR}/lib:${THRDPARTY_PATH}"
|
||||
fi
|
||||
|
@@ -1089,10 +1089,10 @@ This group allows testing extended data exchange packages.
|
||||
| Draw | TKDraw, TKTopTest, TKViewerTest, TKXSDRAW, TKDCAF, TKXDEDRAW, TKTObjDRAW, TKQADraw, DRAWEXE, Problems of testing system | draw |
|
||||
| Shape Healing | TKShHealing | heal |
|
||||
| Mesh | TKMesh, TKXMesh | mesh |
|
||||
| Data Exchange | TKIGES | iges |
|
||||
| Data Exchange | TKSTEPBase, TKSTEPAttr, TKSTEP209, TKSTEP | step |
|
||||
| Data Exchange | TKSTL, TKVRML | stlvrml |
|
||||
| Data Exchange | TKXSBase, TKXCAF, TKXCAFSchema, TKXDEIGES, TKXDESTEP, TKXmlXCAF, TKBinXCAF | xde |
|
||||
| Data Exchange | TKDEIGES | iges |
|
||||
| Data Exchange | TKDESTEP | step |
|
||||
| Data Exchange | TKDESTL, TKDEVRML | stlvrml |
|
||||
| Data Exchange | TKXSBase, TKXCAF, TKXCAFSchema, TKXmlXCAF, TKBinXCAF | xde |
|
||||
| Foundation Classes | TKernel, TKMath | fclasses |
|
||||
| Modeling_algorithms | TKGeomAlgo, TKTopAlgo, TKPrim, TKBO, TKBool, TKHLR, TKFillet, TKOffset, TKFeat, TKXMesh | modalg |
|
||||
| Modeling Data | TKG2d, TKG3d, TKGeomBase, TKBRep | moddata |
|
||||
|
@@ -7,7 +7,7 @@ Upgrade from older OCCT versions {#occt__upgrade}
|
||||
|
||||
This document provides technical details on changes made in particular versions of OCCT. It can help to upgrade user applications based on previous versions of OCCT to newer ones.
|
||||
|
||||
@ref upgrade_occt770 "SEEK TO THE LAST CHAPTER (UPGRADE TO 7.7.0)"
|
||||
@ref upgrade_occt780 "SEEK TO THE LAST CHAPTER (UPGRADE TO 7.8.0)"
|
||||
|
||||
@subsection upgrade_intro_precautions Precautions
|
||||
|
||||
@@ -2343,3 +2343,69 @@ Please use `BRepLib_ToolTriangulatedShape::ComputeNormals()` to fill in normal a
|
||||
|
||||
A new way of using the `BRepExtrema_ShapeProximity` class was provided for computing a proximity value between two shapes.
|
||||
If at initialization of the `BRepExtrema_ShapeProximity` class the *theTolerance* parameter is not defined (Precision::Infinite() by default), the proximity value will be computed.
|
||||
|
||||
@section upgrade_occt780 Upgrade to OCCT 7.8.0
|
||||
|
||||
@subsection upgrade_780_recommendations New Features and Recommendations
|
||||
|
||||
The NCollection containers have been modernized to work with move semantics through the new `Move operator` and `Move constructor`. It is recommended to leverage this functionality in the development process.<br />
|
||||
Backward compatibility with STL allocators has been implemented to use the OCCT memory manager with STL allocators (NCollection_Allocator, NCollection_OccAllocator).<br />
|
||||
Additionally, utilities have been introduced to work with `shared_ptr` and `unique_ptr` using the OCCT memory manager (`Standard_MemoryUtils.hxx`).
|
||||
|
||||
@subsection upgrade_780_ncollection_update Change in Default Clear Behavior for Containers
|
||||
|
||||
NCollection container's `Clear(const bool theReleaseMemory = true)` have been changed to `Clear(const bool theReleaseMemory = false)`.<br />
|
||||
Impacted classes include `IndexedMap`, `IndexedDataMap`, `Map`, `DataMap`, `DynamicArray(Vector)`, `IncAllocator`.<br />
|
||||
This means that allocated memory for the container will be reused. In this case, it's necessary to be careful with `IncAllocator::Reset()` to control owners of memory blocks.
|
||||
|
||||
@subsection upgrade_780_hash_utils Reworked Hash Mechanism for Hash Map (NCollection's map)
|
||||
|
||||
The `HashCode(value, upperBound)` static method has been removed and `IsEqual(value1, value2)` is no longer used in the map.<br />
|
||||
NCollection's map now operates on an STL-like hash mechanism: a struct with a public operator `size_t operator()(object&) const` and `bool operator(object&, object&) const`.<br />
|
||||
The difference between STL and OCCT is that the hash struct and comparator are combined into a single struct to reduce conflicts on OCCT's user side.<br />
|
||||
Hash utils have been implemented to hash objects, returning `uint32_t` and `uint64_t` depending on the template (`Standard_HashUtils.hxx`). Algorithms used are `MurmurHash` and `FNVHash`.<br />
|
||||
Benefits:
|
||||
* x64 using 8 bytes to store the hash instead of 4 bytes.
|
||||
* OCCT classes will now be usable as elements in STL `unordered_map` and `unordered_set`.
|
||||
|
||||
The migration problem will occur at compile time. Make sure that `int HashCode` has been changed anywhere to `size operator` and `bool IsEqual` to `bool operator`.
|
||||
|
||||
@subsection upgrade_780_removed_files Removed Hash Specialization Classes
|
||||
|
||||
The majority of include files containing only specialized hashes have been removed.
|
||||
Their functionality has been consolidated into the hashed object include file (in the "std" namespace).<br />
|
||||
It is guaranteed that each removed hash class has been transferred to the native hash mechanism of the hashed class.
|
||||
|
||||
The migration problem may arise at compile time. Ensure that you remove any files that have been deprecated.
|
||||
|
||||
@subsection upgrade_780_tk_rework Reorganized DE TK
|
||||
|
||||
DE TK components have been combined or separated based on specific CAD formats to support plug-in ability.
|
||||
* Components now have a "TKDE" prefix. The available list includes `TKDESTEP`, `TKDEOBJ`, `TKDEIGES`, `TKDEGLTF`, `TKDEVRML`, `TKDEPLY`, `TKDESTL`.
|
||||
* The DE DRAW TK has been updated in a similar way: DRAW components now have a "TKXSDRAW" prefix. The available list includes `TKXSDRAWSTEP`, `TKXSDRAWOBJ`, `TKXSDRAWIGES`, `TKXSDRAWGLTF`, `TKXSDRAWVRML`, `TKXSDRAWPLY`, `TKXSDRAWSTL`.
|
||||
|
||||
Migration problems may occur during configuration time or compile time. Ensure that you update your project configuration accordingly.
|
||||
|
||||
@subsection upgrade_780_step_thread_safety Implemented STEP Thread-safety Interface
|
||||
|
||||
The STEP interface now uses Static_Interface to extract exchange settings.<br />
|
||||
A new ability has been implemented to determine parameters in STEP, avoiding Static_Interface.
|
||||
* For reading, use an additional argument with STEP's parameters in `ReadFile` or `Perform`.
|
||||
* For writing, use an additional argument with STEP's parameters in `Transfer` or `Perform`.
|
||||
|
||||
@subsection upgrade_780_new_memory_manager New Memory Management Functionality
|
||||
|
||||
`Standard.hxx` has a new method `AllocateOptimal` for allocating without post-processing (cleaning).<br />
|
||||
New profiles to allocate memory (defined at configuration time):
|
||||
* `Native` - allocates with standard `malloc` and `calloc` functionality, performance depends on the OS.
|
||||
* `TBB` - allocates with TBB's `scalable` allocator functionality.
|
||||
* `JeMalloc` - allocates with `jemalloc` functions.
|
||||
* `Flexible` - old-way allocation which defines allocation method in real-time by environment variables.<br />
|
||||
|
||||
The most recommended manager is `JeMalloc`. To use it with a plugin system, like `DRAW`, please ensure that JeMalloc was built with the `--disable-initial-exec-tls` flag. For more details, visit [JeMalloc](http://jemalloc.net/).
|
||||
|
||||
@subsection upgrade_780_optimization_profiles New CMake Variable for Optimization Profiles
|
||||
|
||||
`BUILD_OPT_PROFILE` is a new variable to define optimization level. Available profiles:
|
||||
* `Default` - specializes only in quality-dependent parameters for the compiler.
|
||||
* `Production` - specializes in performance and quality-dependent parameters for the compiler and linker.
|
||||
|
@@ -1498,7 +1498,7 @@ It is necessary to call command *newmodel* to perform a new translation of the n
|
||||
|
||||
@section occt_step_7 Reading from and writing to STEP
|
||||
|
||||
The *STEPCAFControl* package (TKXDESTEP toolkit) provides tools to read and write STEP files (see XDE User's Guide).
|
||||
The *STEPCAFControl* package (TKDESTEP toolkit) provides tools to read and write STEP files (see XDE User's Guide).
|
||||
|
||||
In addition to the translation of shapes implemented in basic translator, it provides the following:
|
||||
* STEP assemblies, read as OCCT compounds by basic translator, are translated to XDE assemblies;
|
||||
|
@@ -43,10 +43,10 @@
|
||||
#pragma comment(lib, "TKService.lib")
|
||||
#pragma comment(lib, "TKV3d.lib")
|
||||
#pragma comment(lib, "TKOpenGl.lib")
|
||||
#pragma comment(lib, "TKIGES.lib")
|
||||
#pragma comment(lib, "TKSTEP.lib")
|
||||
#pragma comment(lib, "TKStl.lib")
|
||||
#pragma comment(lib, "TKVrml.lib")
|
||||
#pragma comment(lib, "TKDEIGES.lib")
|
||||
#pragma comment(lib, "TKDESTEP.lib")
|
||||
#pragma comment(lib, "TKDESTL.lib")
|
||||
#pragma comment(lib, "TKDEVRML.lib")
|
||||
#pragma comment(lib, "TKLCAF.lib")
|
||||
|
||||
//! Auxiliary tool for converting C# string into UTF-8 string.
|
||||
|
@@ -51,10 +51,10 @@
|
||||
#pragma comment(lib, "TKV3d.lib")
|
||||
#pragma comment(lib, "TKOpenGl.lib")
|
||||
#pragma comment(lib, "TKD3dHost.lib")
|
||||
#pragma comment(lib, "TKIGES.lib")
|
||||
#pragma comment(lib, "TKSTEP.lib")
|
||||
#pragma comment(lib, "TKStl.lib")
|
||||
#pragma comment(lib, "TKVrml.lib")
|
||||
#pragma comment(lib, "TKDEIGES.lib")
|
||||
#pragma comment(lib, "TKDESTEP.lib")
|
||||
#pragma comment(lib, "TKDESTL.lib")
|
||||
#pragma comment(lib, "TKDEVRML.lib")
|
||||
#pragma comment(lib, "TKLCAF.lib")
|
||||
|
||||
#pragma comment(lib, "D3D9.lib")
|
||||
|
@@ -63,7 +63,7 @@ set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKG2d TKG3d TKGeomBase TKBRep) # M
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffset TKFeat TKMesh TKXMesh TKShHealing) # ModelingAlgorithms
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKService TKV3d TKOpenGl TKMeshVS TKIVtk TKD3DHost) # Visualization
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKCDF TKLCAF TKCAF TKBinL TKXmlL TKBin TKXml TKStdL TKStd TKTObj TKBinTObj TKXmlTObj TKVCAF) # ApplicationFramework
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKXSBase TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP TKIGES TKXCAF TKXDEIGES TKXDESTEP TKSTL TKVRML TKXmlXCAF TKBinXCAF TKRWMesh) # DataExchange
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKXSBase TKXCAF TKDEIGES TKDESTEP TKDESTL TKDEVRML TKXmlXCAF TKBinXCAF TKRWMesh TKDEGLTF TKDEOBJ TKDEPLY) # DataExchange
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKDraw TKViewerTest) # Draw
|
||||
|
||||
# validate location of OCCT libraries and headers
|
||||
|
@@ -26,14 +26,10 @@
|
||||
0A7DEDFC1E2D29FF00267B9B /* libTKV3d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF71E2D29F800267B9B /* libTKV3d.a */; };
|
||||
0A7DEDFD1E2D29FF00267B9B /* libTKVCAF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF81E2D29FB00267B9B /* libTKVCAF.a */; };
|
||||
0A7DEE2B1E2D2AE000267B9B /* libTKService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE0B1E2D2A9D00267B9B /* libTKService.a */; };
|
||||
0A7DEE2E1E2D2AE000267B9B /* libTKSTEP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE0E1E2D2AA800267B9B /* libTKSTEP.a */; };
|
||||
0A7DEE301E2D2AE000267B9B /* libTKSTEPAttr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE101E2D2AAE00267B9B /* libTKSTEPAttr.a */; };
|
||||
0A7DEE311E2D2AE000267B9B /* libTKSTEPBase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE111E2D2AB200267B9B /* libTKSTEPBase.a */; };
|
||||
0A7DEE2E1E2D2AE000267B9B /* libTKDESTEP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE0E1E2D2AA800267B9B /* libTKDESTEP.a */; };
|
||||
0A7DEE351E2D2AE000267B9B /* libTKXCAF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE151E2D2AC000267B9B /* libTKXCAF.a */; };
|
||||
0A7DEE371E2D2AE000267B9B /* libTKXDESTEP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE171E2D2AC700267B9B /* libTKXDESTEP.a */; };
|
||||
0A7DEE3E1E2D2B8100267B9B /* libTKBO.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE021E2D2A7F00267B9B /* libTKBO.a */; };
|
||||
0A7DEE3F1E2D2BB000267B9B /* libTKOpenGles.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE091E2D2A9700267B9B /* libTKOpenGles.a */; };
|
||||
0A7DEE401E2D2BEA00267B9B /* libTKSTEP209.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE0F1E2D2AAB00267B9B /* libTKSTEP209.a */; };
|
||||
0A7DEE411E2D2C1500267B9B /* libTKXSBase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE1D1E2D2ADC00267B9B /* libTKXSBase.a */; };
|
||||
0AAE0DE61EAF816E00C1F65B /* screw.step in Resources */ = {isa = PBXBuildFile; fileRef = 0AAE0DE51EAF816D00C1F65B /* screw.step */; };
|
||||
0AE286641EB0D29B00A9D719 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AE286631EB0D29A00A9D719 /* libz.tbd */; };
|
||||
@@ -79,7 +75,7 @@
|
||||
0A7DEE031E2D2A8200267B9B /* libTKBool.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBool.a; path = ../occt/lib/libTKBool.a; sourceTree = "<group>"; };
|
||||
0A7DEE041E2D2A8500267B9B /* libTKFeat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKFeat.a; path = ../occt/lib/libTKFeat.a; sourceTree = "<group>"; };
|
||||
0A7DEE051E2D2A8900267B9B /* libTKFillet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKFillet.a; path = ../occt/lib/libTKFillet.a; sourceTree = "<group>"; };
|
||||
0A7DEE061E2D2A8C00267B9B /* libTKIGES.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKIGES.a; path = ../occt/lib/libTKIGES.a; sourceTree = "<group>"; };
|
||||
0A7DEE061E2D2A8C00267B9B /* libTKDEIGES.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDEIGES.a; path = ../occt/lib/libTKDEIGES.a; sourceTree = "<group>"; };
|
||||
0A7DEE071E2D2A8F00267B9B /* libTKMeshVS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKMeshVS.a; path = ../occt/lib/libTKMeshVS.a; sourceTree = "<group>"; };
|
||||
0A7DEE081E2D2A9300267B9B /* libTKOffset.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKOffset.a; path = ../occt/lib/libTKOffset.a; sourceTree = "<group>"; };
|
||||
0A7DEE091E2D2A9700267B9B /* libTKOpenGles.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKOpenGles.a; path = ../occt/lib/libTKOpenGles.a; sourceTree = "<group>"; };
|
||||
@@ -87,16 +83,11 @@
|
||||
0A7DEE0B1E2D2A9D00267B9B /* libTKService.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKService.a; path = ../occt/lib/libTKService.a; sourceTree = "<group>"; };
|
||||
0A7DEE0C1E2D2AA100267B9B /* libTKStd.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKStd.a; path = ../occt/lib/libTKStd.a; sourceTree = "<group>"; };
|
||||
0A7DEE0D1E2D2AA400267B9B /* libTKStdL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKStdL.a; path = ../occt/lib/libTKStdL.a; sourceTree = "<group>"; };
|
||||
0A7DEE0E1E2D2AA800267B9B /* libTKSTEP.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKSTEP.a; path = ../occt/lib/libTKSTEP.a; sourceTree = "<group>"; };
|
||||
0A7DEE0F1E2D2AAB00267B9B /* libTKSTEP209.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKSTEP209.a; path = ../occt/lib/libTKSTEP209.a; sourceTree = "<group>"; };
|
||||
0A7DEE101E2D2AAE00267B9B /* libTKSTEPAttr.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKSTEPAttr.a; path = ../occt/lib/libTKSTEPAttr.a; sourceTree = "<group>"; };
|
||||
0A7DEE111E2D2AB200267B9B /* libTKSTEPBase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKSTEPBase.a; path = ../occt/lib/libTKSTEPBase.a; sourceTree = "<group>"; };
|
||||
0A7DEE121E2D2AB500267B9B /* libTKSTL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKSTL.a; path = ../occt/lib/libTKSTL.a; sourceTree = "<group>"; };
|
||||
0A7DEE0E1E2D2AA800267B9B /* libTKDESTEP.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDESTEP.a; path = ../occt/lib/libTKDESTEP.a; sourceTree = "<group>"; };
|
||||
0A7DEE121E2D2AB500267B9B /* libTKDESTL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDESTL.a; path = ../occt/lib/libTKDESTL.a; sourceTree = "<group>"; };
|
||||
0A7DEE131E2D2AB900267B9B /* libTKTObj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKTObj.a; path = ../occt/lib/libTKTObj.a; sourceTree = "<group>"; };
|
||||
0A7DEE141E2D2ABC00267B9B /* libTKVRML.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKVRML.a; path = ../occt/lib/libTKVRML.a; sourceTree = "<group>"; };
|
||||
0A7DEE141E2D2ABC00267B9B /* libTKDEVRML.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDEVRML.a; path = ../occt/lib/libTKDEVRML.a; sourceTree = "<group>"; };
|
||||
0A7DEE151E2D2AC000267B9B /* libTKXCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXCAF.a; path = ../occt/lib/libTKXCAF.a; sourceTree = "<group>"; };
|
||||
0A7DEE161E2D2AC300267B9B /* libTKXDEIGES.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXDEIGES.a; path = ../occt/lib/libTKXDEIGES.a; sourceTree = "<group>"; };
|
||||
0A7DEE171E2D2AC700267B9B /* libTKXDESTEP.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXDESTEP.a; path = ../occt/lib/libTKXDESTEP.a; sourceTree = "<group>"; };
|
||||
0A7DEE181E2D2ACA00267B9B /* libTKXMesh.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXMesh.a; path = ../occt/lib/libTKXMesh.a; sourceTree = "<group>"; };
|
||||
0A7DEE191E2D2ACE00267B9B /* libTKXml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXml.a; path = ../occt/lib/libTKXml.a; sourceTree = "<group>"; };
|
||||
0A7DEE1A1E2D2AD100267B9B /* libTKXmlL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXmlL.a; path = ../occt/lib/libTKXmlL.a; sourceTree = "<group>"; };
|
||||
@@ -134,13 +125,10 @@
|
||||
files = (
|
||||
0AE286641EB0D29B00A9D719 /* libz.tbd in Frameworks */,
|
||||
0A7DEE411E2D2C1500267B9B /* libTKXSBase.a in Frameworks */,
|
||||
0A7DEE401E2D2BEA00267B9B /* libTKSTEP209.a in Frameworks */,
|
||||
0A7DEE3F1E2D2BB000267B9B /* libTKOpenGles.a in Frameworks */,
|
||||
0A7DEE3E1E2D2B8100267B9B /* libTKBO.a in Frameworks */,
|
||||
0A7DEE2B1E2D2AE000267B9B /* libTKService.a in Frameworks */,
|
||||
0A7DEE2E1E2D2AE000267B9B /* libTKSTEP.a in Frameworks */,
|
||||
0A7DEE301E2D2AE000267B9B /* libTKSTEPAttr.a in Frameworks */,
|
||||
0A7DEE311E2D2AE000267B9B /* libTKSTEPBase.a in Frameworks */,
|
||||
0A7DEE2E1E2D2AE000267B9B /* libTKDESTEP.a in Frameworks */,
|
||||
0A7DEE351E2D2AE000267B9B /* libTKXCAF.a in Frameworks */,
|
||||
0A7DEE371E2D2AE000267B9B /* libTKXDESTEP.a in Frameworks */,
|
||||
0A7DEDE71E2D28E300267B9B /* libTKBRep.a in Frameworks */,
|
||||
@@ -231,7 +219,7 @@
|
||||
0A7DEE031E2D2A8200267B9B /* libTKBool.a */,
|
||||
0A7DEE041E2D2A8500267B9B /* libTKFeat.a */,
|
||||
0A7DEE051E2D2A8900267B9B /* libTKFillet.a */,
|
||||
0A7DEE061E2D2A8C00267B9B /* libTKIGES.a */,
|
||||
0A7DEE061E2D2A8C00267B9B /* libTKDEIGES.a */,
|
||||
0A7DEE071E2D2A8F00267B9B /* libTKMeshVS.a */,
|
||||
0A7DEE081E2D2A9300267B9B /* libTKOffset.a */,
|
||||
0A7DEE091E2D2A9700267B9B /* libTKOpenGles.a */,
|
||||
@@ -239,16 +227,11 @@
|
||||
0A7DEE0B1E2D2A9D00267B9B /* libTKService.a */,
|
||||
0A7DEE0C1E2D2AA100267B9B /* libTKStd.a */,
|
||||
0A7DEE0D1E2D2AA400267B9B /* libTKStdL.a */,
|
||||
0A7DEE0E1E2D2AA800267B9B /* libTKSTEP.a */,
|
||||
0A7DEE0F1E2D2AAB00267B9B /* libTKSTEP209.a */,
|
||||
0A7DEE101E2D2AAE00267B9B /* libTKSTEPAttr.a */,
|
||||
0A7DEE111E2D2AB200267B9B /* libTKSTEPBase.a */,
|
||||
0A7DEE121E2D2AB500267B9B /* libTKSTL.a */,
|
||||
0A7DEE0E1E2D2AA800267B9B /* libTKDESTEP.a */,
|
||||
0A7DEE121E2D2AB500267B9B /* libTKDESTL.a */,
|
||||
0A7DEE131E2D2AB900267B9B /* libTKTObj.a */,
|
||||
0A7DEE141E2D2ABC00267B9B /* libTKVRML.a */,
|
||||
0A7DEE141E2D2ABC00267B9B /* libTKDEVRML.a */,
|
||||
0A7DEE151E2D2AC000267B9B /* libTKXCAF.a */,
|
||||
0A7DEE161E2D2AC300267B9B /* libTKXDEIGES.a */,
|
||||
0A7DEE171E2D2AC700267B9B /* libTKXDESTEP.a */,
|
||||
0A7DEE181E2D2ACA00267B9B /* libTKXMesh.a */,
|
||||
0A7DEE191E2D2ACE00267B9B /* libTKXml.a */,
|
||||
0A7DEE1A1E2D2AD100267B9B /* libTKXmlL.a */,
|
||||
|
@@ -23,12 +23,11 @@
|
||||
#define CafShapePrs_h
|
||||
|
||||
#include <TDF_Label.hxx>
|
||||
#include <TDF_LabelMapHasher.hxx>
|
||||
#include <XCAFPrs_AISObject.hxx>
|
||||
#include <XCAFPrs_Style.hxx>
|
||||
|
||||
typedef NCollection_DataMap<TopoDS_Shape, Handle(AIS_ColoredDrawer), TopTools_ShapeMapHasher> CafDataMapOfShapeColor;
|
||||
typedef NCollection_DataMap<TDF_Label, Handle(AIS_InteractiveObject), TDF_LabelMapHasher> MapOfPrsForShapes;
|
||||
typedef NCollection_DataMap<TDF_Label, Handle(AIS_InteractiveObject)> MapOfPrsForShapes;
|
||||
|
||||
//! Interactive object for shape in DECAF document
|
||||
class CafShapePrs : public XCAFPrs_AISObject
|
||||
|
@@ -138,11 +138,8 @@ public class OcctJniActivity extends Activity implements OnClickListener
|
||||
|| !loadLibVerbose ("TKFillet", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKOffset", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKXSBase", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKIGES", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKSTEPBase", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKSTEPAttr", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKSTEP209", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKSTEP", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKDEIGES", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKDESTEP", aLoaded, aFailed)
|
||||
// OCCT Visualization
|
||||
|| !loadLibVerbose ("TKService", aLoaded, aFailed)
|
||||
|| !loadLibVerbose ("TKHLR", aLoaded, aFailed)
|
||||
|
@@ -8,8 +8,8 @@ set (anOcctLibs
|
||||
# exchange
|
||||
TKPrim TKBO TKBool TKFillet TKOffset
|
||||
TKXSBase
|
||||
TKIGES
|
||||
TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP
|
||||
TKDEIGES
|
||||
TKDESTEP
|
||||
# OCCT Visualization
|
||||
TKService TKHLR TKV3d TKOpenGles
|
||||
)
|
||||
|
@@ -116,7 +116,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bin/Geometry.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -159,7 +159,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bin/Geometry.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -202,7 +202,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bind/Geometry.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -246,7 +246,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../..\win64\$(VCFMT)\bind/Geometry.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
@@ -61,4 +61,4 @@ include_directories (${CMAKE_BINARY_DIR}/inc
|
||||
${Modeling_SRC_DIR}
|
||||
${MFC_STANDARD_SAMPLES_DIR}/Common)
|
||||
|
||||
target_link_libraries (Modeling mfcsample TKSTEP209 TKSTEPAttr TKSTEPBase TKBO)
|
||||
target_link_libraries (Modeling mfcsample TKDESTEP TKBO)
|
||||
|
@@ -115,7 +115,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBRep.lib;TKIGES.lib;TKShHealing.lib;TKSTEP.lib;TKSTEP209.lib;TKSTEPAttr.lib;TKSTEPBase.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bind/Modeling.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -157,7 +157,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBRep.lib;TKIGES.lib;TKShHealing.lib;TKSTEP.lib;TKSTEP209.lib;TKSTEPAttr.lib;TKSTEPBase.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bind/Modeling.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -200,7 +200,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBRep.lib;TKIGES.lib;TKShHealing.lib;TKSTEP.lib;TKSTEP209.lib;TKSTEPAttr.lib;TKSTEPBase.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bin/Modeling.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -242,7 +242,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBRep.lib;TKIGES.lib;TKShHealing.lib;TKSTEP.lib;TKSTEP209.lib;TKSTEPAttr.lib;TKSTEPBase.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bin/Modeling.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
@@ -116,7 +116,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bin/ImportExport.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -158,7 +158,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bin/ImportExport.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -199,7 +199,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bind/ImportExport.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -241,7 +241,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bind/ImportExport.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
@@ -158,15 +158,12 @@ include_directories( ${CMAKE_BINARY_DIR}/inc
|
||||
${COMMON_RESOURCE2D_DIR})
|
||||
|
||||
# OCCT libraries for using
|
||||
set (mfcsample_USED_LIBS TKVRML
|
||||
TKSTL
|
||||
set (mfcsample_USED_LIBS TKDEVRML
|
||||
TKDESTL
|
||||
TKBRep
|
||||
TKIGES
|
||||
TKDEIGES
|
||||
TKShHealing
|
||||
TKSTEP
|
||||
TKSTEPBase
|
||||
TKSTEP209
|
||||
TKSTEPAttr
|
||||
TKDESTEP
|
||||
TKXSBase
|
||||
TKBool
|
||||
TKBO
|
||||
|
@@ -115,7 +115,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bind/mfcsample.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -158,7 +158,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bind/mfcsample.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -202,7 +202,7 @@
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win32\$(VCFMT)\bin/mfcsample.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -246,7 +246,7 @@
|
||||
<ResourceOutputFileName>$(IntDir)%(Filename).res</ResourceOutputFileName>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKVrml.lib;TKStl.lib;TKBrep.lib;TKIGES.lib;TKShHealing.lib;TKStep.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKMesh.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../../../../win64\$(VCFMT)\bin/mfcsample.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
@@ -8,7 +8,7 @@ TKG3d
|
||||
TKGeomAlgo
|
||||
TKGeomBase
|
||||
TKHLR
|
||||
TKIGES
|
||||
TKDEIGES
|
||||
TKernel
|
||||
TKMath
|
||||
TKMesh
|
||||
@@ -17,13 +17,10 @@ TKOpenGl
|
||||
TKPrim
|
||||
TKShHealing
|
||||
TKService
|
||||
TKSTEP
|
||||
TKSTEP209
|
||||
TKSTEPAttr
|
||||
TKSTEPBase
|
||||
TKSTL
|
||||
TKDESTEP
|
||||
TKDESTL
|
||||
TKTopAlgo
|
||||
TKV3d
|
||||
TKVRML
|
||||
TKDEVRML
|
||||
TKXSBase
|
||||
|
||||
|
@@ -72,8 +72,8 @@ win32 {
|
||||
}
|
||||
|
||||
LIBS += -lTKernel -lTKMath -lTKService -lTKV3d -lTKOpenGl \
|
||||
-lTKBRep -lTKIGES -lTKSTL -lTKVRML -lTKSTEP -lTKSTEPAttr -lTKSTEP209 \
|
||||
-lTKSTEPBase -lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
|
||||
-lTKBRep -lTKDEIGES -lTKDESTL -lTKDEVRML -lTKDESTEP \
|
||||
-lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
|
||||
-lTKXSBase -lTKShHealing -lTKHLR -lTKTopAlgo -lTKMesh -lTKPrim \
|
||||
-lTKCDF -lTKBool -lTKBO -lTKFillet -lTKOffset -lTKLCAF \
|
||||
|
||||
|
@@ -10,7 +10,7 @@ TKGeomAlgo
|
||||
TKGeomBase
|
||||
TKernel
|
||||
TKHLR
|
||||
TKIGES
|
||||
TKDEIGES
|
||||
TKMath
|
||||
TKMesh
|
||||
TKOffset
|
||||
@@ -18,14 +18,11 @@ TKOpenGl
|
||||
TKPrim
|
||||
TKService
|
||||
TKShHealing
|
||||
TKSTEP
|
||||
TKSTEP209
|
||||
TKSTEPAttr
|
||||
TKSTEPBase
|
||||
TKSTL
|
||||
TKDESTEP
|
||||
TKDESTL
|
||||
TKTopAlgo
|
||||
TKV3d
|
||||
TKVRML
|
||||
TKDEVRML
|
||||
TKXSBase
|
||||
TKLCAF
|
||||
TKCAF
|
||||
|
@@ -75,8 +75,8 @@ win32 {
|
||||
}
|
||||
|
||||
LIBS += -lTKernel -lTKMath -lTKService -lTKV3d -lTKOpenGl \
|
||||
-lTKBRep -lTKIGES -lTKSTL -lTKVRML -lTKSTEP -lTKSTEPAttr -lTKSTEP209 \
|
||||
-lTKSTEPBase -lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
|
||||
-lTKBRep -lTKDEIGES -lTKDESTL -lTKDEVRML -lTKDESTEP \
|
||||
-lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
|
||||
-lTKXSBase -lTKShHealing -lTKHLR -lTKTopAlgo -lTKMesh -lTKPrim \
|
||||
-lTKCDF -lTKBool -lTKBO -lTKFillet -lTKOffset -lTKLCAF -lTKCAF -lTKVCAF \
|
||||
-lTKBin -lTKXml
|
||||
|
@@ -9,7 +9,7 @@ TKGeomAlgo
|
||||
TKGeomBase
|
||||
TKernel
|
||||
TKHLR
|
||||
TKIGES
|
||||
TKDEIGES
|
||||
TKMath
|
||||
TKMesh
|
||||
TKOffset
|
||||
@@ -17,13 +17,10 @@ TKOpenGl
|
||||
TKPrim
|
||||
TKService
|
||||
TKShHealing
|
||||
TKSTEP
|
||||
TKSTEP209
|
||||
TKSTEPAttr
|
||||
TKSTEPBase
|
||||
TKSTL
|
||||
TKDESTEP
|
||||
TKDESTL
|
||||
TKTopAlgo
|
||||
TKV3d
|
||||
TKVRML
|
||||
TKDEVRML
|
||||
TKXSBase
|
||||
|
||||
|
@@ -73,8 +73,8 @@ win32 {
|
||||
}
|
||||
|
||||
LIBS += -lTKernel -lTKMath -lTKService -lTKV3d -lTKOpenGl \
|
||||
-lTKBRep -lTKIGES -lTKSTL -lTKVRML -lTKSTEP -lTKSTEPAttr -lTKSTEP209 \
|
||||
-lTKSTEPBase -lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
|
||||
-lTKBRep -lTKDEIGES -lTKDESTL -lTKDEVRML -lTKDESTEP \
|
||||
-lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
|
||||
-lTKXSBase -lTKShHealing -lTKHLR -lTKTopAlgo -lTKMesh -lTKPrim \
|
||||
-lTKCDF -lTKBool -lTKBO -lTKFillet -lTKOffset -lTKLCAF \
|
||||
|
||||
|
@@ -59,7 +59,7 @@ else()
|
||||
set(OCCT_BIN_DIR)
|
||||
endif()
|
||||
|
||||
set(OpenCASCADE_LIBS TKRWMesh TKBinXCAF TKBin TKBinL TKOpenGles TKXCAF TKVCAF TKCAF TKV3d TKHLR TKMesh TKService TKShHealing TKPrim TKTopAlgo TKGeomAlgo TKBRep TKGeomBase TKG3d TKG2d TKMath TKLCAF TKCDF TKernel)
|
||||
set(OpenCASCADE_LIBS TKRWMesh TKDEGLTF TKDEOBJ TKDEPLY TKBinXCAF TKBin TKBinL TKOpenGles TKXCAF TKVCAF TKCAF TKV3d TKHLR TKMesh TKService TKShHealing TKPrim TKTopAlgo TKGeomAlgo TKBRep TKGeomBase TKG3d TKG2d TKMath TKLCAF TKCDF TKernel)
|
||||
|
||||
add_executable(${APP_TARGET} ${SOURCES})
|
||||
target_link_libraries(
|
||||
|
@@ -102,11 +102,11 @@ set (uwp_USED_LIBS TKernel
|
||||
TKHLR
|
||||
TKOffset
|
||||
TKXMesh
|
||||
TKIGES
|
||||
TKSTEP
|
||||
TKDEIGES
|
||||
TKDESTEP
|
||||
TKXSBase
|
||||
TKSTL
|
||||
TKVRML
|
||||
TKDESTL
|
||||
TKDEVRML
|
||||
)
|
||||
|
||||
target_link_libraries (uwp ${uwp_USED_LIBS})
|
||||
|
@@ -21,7 +21,6 @@
|
||||
#include <NCollection_IndexedDataMap.hxx>
|
||||
#include <TopoDS_Compound.hxx>
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
|
||||
class StdSelect_BRepOwner;
|
||||
|
||||
@@ -104,7 +103,7 @@ protected: //! @name override presentation computation
|
||||
|
||||
protected:
|
||||
|
||||
typedef NCollection_IndexedDataMap<Handle(AIS_ColoredDrawer), TopoDS_Compound, TColStd_MapTransientHasher> DataMapOfDrawerCompd;
|
||||
typedef NCollection_IndexedDataMap<Handle(AIS_ColoredDrawer), TopoDS_Compound> DataMapOfDrawerCompd;
|
||||
|
||||
protected:
|
||||
|
||||
|
@@ -30,7 +30,6 @@
|
||||
#include <StdSelect.hxx>
|
||||
#include <StdSelect_BRepOwner.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopTools_OrientedShapeMapHasher.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(AIS_ConnectedInteractive,AIS_InteractiveObject)
|
||||
|
||||
@@ -241,7 +240,7 @@ void AIS_ConnectedInteractive::computeSubShapeSelection (const Handle(SelectMgr_
|
||||
const Standard_Integer theMode)
|
||||
{
|
||||
typedef NCollection_List<Handle(Select3D_SensitiveEntity)> SensitiveList;
|
||||
typedef NCollection_DataMap<TopoDS_Shape, SensitiveList, TopTools_OrientedShapeMapHasher>
|
||||
typedef NCollection_DataMap<TopoDS_Shape, SensitiveList>
|
||||
Shapes2EntitiesMap;
|
||||
|
||||
if (!myReference->HasSelection (theMode))
|
||||
|
@@ -19,11 +19,10 @@
|
||||
|
||||
#include <AIS_InteractiveObject.hxx>
|
||||
#include <AIS_GlobalStatus.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <NCollection_DataMap.hxx>
|
||||
|
||||
typedef NCollection_DataMap<Handle(AIS_InteractiveObject),Handle(AIS_GlobalStatus),TColStd_MapTransientHasher> AIS_DataMapOfIOStatus;
|
||||
typedef NCollection_DataMap<Handle(AIS_InteractiveObject),Handle(AIS_GlobalStatus),TColStd_MapTransientHasher>::Iterator AIS_DataMapIteratorOfDataMapOfIOStatus;
|
||||
typedef NCollection_DataMap<Handle(AIS_InteractiveObject),Handle(AIS_GlobalStatus)> AIS_DataMapOfIOStatus;
|
||||
typedef NCollection_DataMap<Handle(AIS_InteractiveObject),Handle(AIS_GlobalStatus)>::Iterator AIS_DataMapIteratorOfDataMapOfIOStatus;
|
||||
|
||||
|
||||
#endif
|
||||
|
@@ -17,10 +17,11 @@
|
||||
//! Dragging action.
|
||||
enum AIS_DragAction
|
||||
{
|
||||
AIS_DragAction_Start, //!< (try) start dragging object
|
||||
AIS_DragAction_Update, //!< perform dragging (update position)
|
||||
AIS_DragAction_Stop, //!< stop dragging (save position)
|
||||
AIS_DragAction_Abort, //!< abort dragging (restore initial position)
|
||||
AIS_DragAction_Start, //!< (try) start dragging object
|
||||
AIS_DragAction_Confirmed, //!< dragging interaction is confirmed.
|
||||
AIS_DragAction_Update, //!< perform dragging (update position)
|
||||
AIS_DragAction_Stop, //!< stop dragging (save position)
|
||||
AIS_DragAction_Abort, //!< abort dragging (restore initial position)
|
||||
};
|
||||
|
||||
#endif // _AIS_DragAction_HeaderFile
|
||||
|
@@ -259,6 +259,10 @@ Standard_Boolean AIS_LightSource::ProcessDragging (const Handle(AIS_InteractiveC
|
||||
myLocTrsfStart = LocalTransformation();
|
||||
return Standard_True;
|
||||
}
|
||||
case AIS_DragAction_Confirmed:
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
case AIS_DragAction_Update:
|
||||
{
|
||||
mySensSphere->ResetLastDetectedPoint();
|
||||
|
@@ -661,6 +661,10 @@ Standard_Boolean AIS_Manipulator::ProcessDragging (const Handle(AIS_InteractiveC
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AIS_DragAction_Confirmed:
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
case AIS_DragAction_Update:
|
||||
{
|
||||
Transform (theDragTo.x(), theDragTo.y(), theView);
|
||||
|
@@ -332,6 +332,11 @@ void AIS_ViewController::flushBuffers (const Handle(AIS_InteractiveContext)& ,
|
||||
myGL.Dragging.ToStart = true;
|
||||
myGL.Dragging.PointStart = myUI.Dragging.PointStart;
|
||||
}
|
||||
if (myUI.Dragging.ToConfirm)
|
||||
{
|
||||
myUI.Dragging.ToConfirm = false;
|
||||
myGL.Dragging.ToConfirm = true;
|
||||
}
|
||||
if (myUI.Dragging.ToMove)
|
||||
{
|
||||
myUI.Dragging.ToMove = false;
|
||||
@@ -928,6 +933,7 @@ bool AIS_ViewController::UpdateMousePosition (const Graphic3d_Vec2i& thePoint,
|
||||
myMouseClickCounter = 0;
|
||||
myMouseSingleButton = -1;
|
||||
myMouseStopDragOnUnclick = true;
|
||||
myUI.Dragging.ToConfirm = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2738,6 +2744,17 @@ void AIS_ViewController::OnObjectDragged (const Handle(AIS_InteractiveContext)&
|
||||
}
|
||||
return;
|
||||
}
|
||||
case AIS_DragAction_Confirmed:
|
||||
{
|
||||
if (myDragObject.IsNull())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
myDragObject->ProcessDragging (theCtx, theView, myDragOwner, myGL.Dragging.PointStart,
|
||||
myGL.Dragging.PointTo, theAction);
|
||||
return;
|
||||
}
|
||||
case AIS_DragAction_Update:
|
||||
{
|
||||
if (myDragObject.IsNull())
|
||||
@@ -3057,6 +3074,10 @@ void AIS_ViewController::handleDynamicHighlight (const Handle(AIS_InteractiveCon
|
||||
}
|
||||
else if (myGL.Dragging.ToMove)
|
||||
{
|
||||
if (myGL.Dragging.ToConfirm)
|
||||
{
|
||||
OnObjectDragged (theCtx, theView, AIS_DragAction_Confirmed);
|
||||
}
|
||||
OnObjectDragged (theCtx, theView, AIS_DragAction_Update);
|
||||
myGL.OrbitRotation.ToRotate = false;
|
||||
myGL.ViewRotation .ToRotate = false;
|
||||
|
@@ -640,18 +640,9 @@ protected:
|
||||
|
||||
protected:
|
||||
|
||||
//! Trivial hasher to avoid ambiguity with enumeration type.
|
||||
struct IntegerHasher
|
||||
{
|
||||
static Standard_Integer HashCode (Standard_Integer theValue, Standard_Integer theUpper) { return ::HashCode (theValue, theUpper); }
|
||||
static Standard_Boolean IsEqual (Standard_Integer theA, Standard_Integer theB) { return theA == theB; }
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
NCollection_DataMap<V3d_TypeOfOrientation, TCollection_AsciiString, IntegerHasher>
|
||||
NCollection_DataMap<V3d_TypeOfOrientation, TCollection_AsciiString>
|
||||
myBoxSideLabels; //!< map with box side labels
|
||||
NCollection_DataMap<Prs3d_DatumParts, TCollection_AsciiString, IntegerHasher>
|
||||
NCollection_DataMap<Prs3d_DatumParts, TCollection_AsciiString>
|
||||
myAxesLabels; //!< map with axes labels
|
||||
Handle(Prs3d_ShadingAspect) myBoxEdgeAspect; //!< style for box edges
|
||||
Handle(Prs3d_ShadingAspect) myBoxCornerAspect; //!< style for box corner
|
||||
|
@@ -87,13 +87,14 @@ public:
|
||||
struct _draggingParams
|
||||
{
|
||||
bool ToStart; //!< start dragging
|
||||
bool ToConfirm; //!< confirm dragging
|
||||
bool ToMove; //!< perform dragging
|
||||
bool ToStop; //!< stop dragging
|
||||
bool ToAbort; //!< abort dragging (restore previous position)
|
||||
Graphic3d_Vec2i PointStart; //!< drag start point
|
||||
Graphic3d_Vec2i PointTo; //!< drag end point
|
||||
|
||||
_draggingParams() : ToStart (false), ToMove (false), ToStop (false), ToAbort (false) {}
|
||||
_draggingParams() : ToStart (false), ToConfirm (false), ToMove (false), ToStop (false), ToAbort (false) {}
|
||||
} Dragging;
|
||||
|
||||
struct _orbitRotation
|
||||
@@ -139,12 +140,13 @@ public:
|
||||
Selection.ToApplyTool = false;
|
||||
IsNewGesture = false;
|
||||
ZoomActions.Clear();
|
||||
Panning.ToStart = false;
|
||||
Panning.ToPan = false;
|
||||
Dragging.ToStart = false;
|
||||
Dragging.ToMove = false;
|
||||
Dragging.ToStop = false;
|
||||
Dragging.ToAbort = false;
|
||||
Panning.ToStart = false;
|
||||
Panning.ToPan = false;
|
||||
Dragging.ToStart = false;
|
||||
Dragging.ToConfirm = false;
|
||||
Dragging.ToMove = false;
|
||||
Dragging.ToStop = false;
|
||||
Dragging.ToAbort = false;
|
||||
OrbitRotation.ToStart = false;
|
||||
OrbitRotation.ToRotate = false;
|
||||
ViewRotation.ToStart = false;
|
||||
|
@@ -30,7 +30,6 @@
|
||||
#include <TColgp_HArray2OfPnt2d.hxx>
|
||||
#include <TColgp_HArray2OfPnt.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <Standard_Address.hxx>
|
||||
#include <AdvApprox_EvaluatorFunction.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
@@ -24,7 +24,6 @@
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray2OfReal.hxx>
|
||||
#include <Standard_Address.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <AdvApprox_EvaluatorFunction.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
|
@@ -1238,7 +1238,7 @@ void VBernstein(const Standard_Integer classe,
|
||||
if (nbpoints > 24) throw Standard_DimensionError("VBernstein: nbpoints > 24");
|
||||
// math_Matrix VB(classe, nbpoints);
|
||||
|
||||
Standard_Integer i, j, k = 0, Som;
|
||||
Standard_Integer i, j, Som;
|
||||
// 300 = 1+2+ ... +24 points.
|
||||
Som = (Standard_Integer )( 300*((classe-1)*classe/2.-1) + classe * (nbpoints-1)*nbpoints/2.);
|
||||
|
||||
@@ -1248,7 +1248,6 @@ void VBernstein(const Standard_Integer classe,
|
||||
for (j = 1; j <= nbpoints; j++) {
|
||||
M(i, j) = *tmpVB;
|
||||
tmpVB++;
|
||||
k++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@
|
||||
#include <math_Matrix.hxx>
|
||||
#include <NCollection_Array1.hxx>
|
||||
#include <AppParCurves_Constraint.hxx>
|
||||
|
||||
#include <math_Vector.hxx>
|
||||
|
||||
struct PeriodicityInfo
|
||||
{
|
||||
|
@@ -13,7 +13,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include Approx_ParLeastSquareOfMyGradient_hxx
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
@@ -1392,7 +1391,7 @@ Standard_Boolean Approx_ComputeLine::ComputeCurve(const MultiLine& Line,
|
||||
Standard_Boolean Parallel;
|
||||
#endif
|
||||
Standard_Integer myfirstpt = firstpt, mylastpt = lastpt;
|
||||
Standard_Integer nbp = lastpt-firstpt+1, Kopt = 0;
|
||||
Standard_Integer nbp = lastpt-firstpt+1;
|
||||
math_Vector Para(firstpt, lastpt);
|
||||
|
||||
Parameters(Line, firstpt, lastpt, Para);
|
||||
@@ -1427,11 +1426,6 @@ Standard_Boolean Approx_ComputeLine::ComputeCurve(const MultiLine& Line,
|
||||
Tangent1 = LineTool::Tangency(Line, myfirstpt, tabV1);
|
||||
Tangent2 = LineTool::Tangency(Line, mylastpt, tabV2);
|
||||
}
|
||||
|
||||
if (Tangent1) Kopt++;
|
||||
if (Tangent2) Kopt++;
|
||||
|
||||
|
||||
if (nbp == 2) {
|
||||
// S il n y a que 2 points, on verifie quand meme que les tangentes sont
|
||||
// alignees.
|
||||
|
@@ -14,34 +14,21 @@
|
||||
#ifndef _ApproxInt_KnotTools_HeaderFile
|
||||
#define _ApproxInt_KnotTools_HeaderFile
|
||||
|
||||
#ifndef _Standard_DefineAlloc_HeaderFile
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _Standard_Boolean_HeaderFile
|
||||
#include <Standard_Boolean.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Real_HeaderFile
|
||||
#include <Standard_Real.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Integer_HeaderFile
|
||||
#include <Standard_Integer.hxx>
|
||||
#endif
|
||||
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <NCollection_Sequence.hxx>
|
||||
#include <NCollection_List.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <NCollection_LocalArray.hxx>
|
||||
#include <NCollection_Vector.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
|
||||
class math_Vector;
|
||||
template <class A> class NCollection_Sequence;
|
||||
template <class A> class NCollection_List;
|
||||
template <class A> class NCollection_Vector;
|
||||
|
||||
class IntPatch_WLine;
|
||||
|
||||
// Corresponds for debug information output.
|
||||
|
@@ -53,6 +53,6 @@ protected:
|
||||
};
|
||||
|
||||
//! Map of actions with action Id as a key.
|
||||
typedef NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Aspect_XRAction), TCollection_AsciiString> Aspect_XRActionMap;
|
||||
typedef NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Aspect_XRAction)> Aspect_XRActionMap;
|
||||
|
||||
#endif // _Aspect_XRAction_HeaderFile
|
||||
|
@@ -50,6 +50,6 @@ protected:
|
||||
Aspect_XRActionMap myActions; //!< map of actions
|
||||
};
|
||||
|
||||
typedef NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Aspect_XRActionSet), TCollection_AsciiString> Aspect_XRActionSetMap;
|
||||
typedef NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Aspect_XRActionSet)> Aspect_XRActionSetMap;
|
||||
|
||||
#endif // _Aspect_XRActionSet_HeaderFile
|
||||
|
@@ -167,7 +167,7 @@ void BOPAlgo_BuilderFace::Perform(const Message_ProgressRange& theRange)
|
||||
void BOPAlgo_BuilderFace::PerformShapesToAvoid(const Message_ProgressRange& theRange)
|
||||
{
|
||||
Standard_Boolean bFound;
|
||||
Standard_Integer i, iCnt, aNbV, aNbE;
|
||||
Standard_Integer i, aNbV, aNbE;
|
||||
TopTools_IndexedDataMapOfShapeListOfShape aMVE;
|
||||
TopTools_ListIteratorOfListOfShape aIt;
|
||||
//
|
||||
@@ -175,14 +175,11 @@ void BOPAlgo_BuilderFace::PerformShapesToAvoid(const Message_ProgressRange& theR
|
||||
//
|
||||
Message_ProgressScope aPS(theRange, NULL, 1);
|
||||
//
|
||||
iCnt=0;
|
||||
for(;;) {
|
||||
if (UserBreak(aPS))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
++iCnt;
|
||||
bFound=Standard_False;
|
||||
//
|
||||
// 1. MEF
|
||||
|
@@ -142,7 +142,7 @@ void BOPAlgo_BuilderSolid::Perform(const Message_ProgressRange& theRange)
|
||||
void BOPAlgo_BuilderSolid::PerformShapesToAvoid(const Message_ProgressRange& theRange)
|
||||
{
|
||||
Standard_Boolean bFound;
|
||||
Standard_Integer i, iCnt, aNbE, aNbF;
|
||||
Standard_Integer i, aNbE, aNbF;
|
||||
TopAbs_Orientation aOrE;
|
||||
TopTools_IndexedDataMapOfShapeListOfShape aMEF;
|
||||
TopTools_ListIteratorOfListOfShape aIt;
|
||||
@@ -151,12 +151,10 @@ void BOPAlgo_BuilderSolid::PerformShapesToAvoid(const Message_ProgressRange& the
|
||||
//
|
||||
Message_ProgressScope aPS(theRange, NULL, 1);
|
||||
//
|
||||
iCnt=0;
|
||||
for(;;) {
|
||||
if (UserBreak(aPS)) {
|
||||
return;
|
||||
}
|
||||
++iCnt;
|
||||
bFound=Standard_False;
|
||||
//
|
||||
// 1. MEF
|
||||
|
@@ -549,8 +549,7 @@ void BOPAlgo_Builder::BuildSplitFaces(const Message_ProgressRange& theRange)
|
||||
//=======================================================================
|
||||
typedef
|
||||
NCollection_IndexedDataMap<BOPTools_Set,
|
||||
TopTools_ListOfShape,
|
||||
BOPTools_SetMapHasher> BOPAlgo_IndexedDataMapOfSetListOfShape;
|
||||
TopTools_ListOfShape> BOPAlgo_IndexedDataMapOfSetListOfShape;
|
||||
|
||||
static void AddEdgeSet(const TopoDS_Shape& theS,
|
||||
BOPAlgo_IndexedDataMapOfSetListOfShape& theMap,
|
||||
@@ -619,8 +618,7 @@ void BOPAlgo_Builder::FillSameDomainFaces(const Message_ProgressRange& theRange)
|
||||
|
||||
// Data map of set of edges with all faces having this set
|
||||
NCollection_IndexedDataMap<BOPTools_Set,
|
||||
TopTools_ListOfShape,
|
||||
BOPTools_SetMapHasher> anESetFaces(1, aAllocator);
|
||||
TopTools_ListOfShape> anESetFaces(1, aAllocator);
|
||||
// Map of planar bounded faces. If such faces have the same Edge set
|
||||
// they are considered Same domain, without additional check.
|
||||
TopTools_MapOfShape aMFPlanar(1, aAllocator);
|
||||
@@ -700,7 +698,7 @@ void BOPAlgo_Builder::FillSameDomainFaces(const Message_ProgressRange& theRange)
|
||||
if (bCheckPlanar && aMFPlanar.Contains(aF2))
|
||||
{
|
||||
// Consider planar bounded faces as Same Domain without additional check
|
||||
BOPAlgo_Tools::FillMap<TopoDS_Shape, TopTools_ShapeMapHasher>(aF1, aF2, aDMSLS, aAllocator);
|
||||
BOPAlgo_Tools::FillMap(aF1, aF2, aDMSLS, aAllocator);
|
||||
continue;
|
||||
}
|
||||
// Add pair for analysis
|
||||
@@ -736,14 +734,12 @@ void BOPAlgo_Builder::FillSameDomainFaces(const Message_ProgressRange& theRange)
|
||||
{
|
||||
BOPAlgo_PairOfShapeBoolean& aPSB = aVPSB(i);
|
||||
if (aPSB.Flag())
|
||||
BOPAlgo_Tools::FillMap<TopoDS_Shape, TopTools_ShapeMapHasher>
|
||||
(aPSB.Shape1(), aPSB.Shape2(), aDMSLS, aAllocator);
|
||||
BOPAlgo_Tools::FillMap(aPSB.Shape1(), aPSB.Shape2(), aDMSLS, aAllocator);
|
||||
}
|
||||
aVPSB.Clear();
|
||||
|
||||
// Make blocks of SD faces using the back and forth map
|
||||
BOPAlgo_Tools::MakeBlocks<TopoDS_Shape, TopTools_ShapeMapHasher>
|
||||
(aDMSLS, aMBlocks, aAllocator);
|
||||
BOPAlgo_Tools::MakeBlocks(aDMSLS, aMBlocks, aAllocator);
|
||||
|
||||
Message_ProgressScope aPS(aPSOuter.Next(3), "Filling same domain faces map", aMBlocks.Size());
|
||||
// Fill same domain faces map
|
||||
@@ -1027,7 +1023,7 @@ TopoDS_Face BuildDraftFace(const TopoDS_Face& theFace,
|
||||
TopTools_ListIteratorOfListOfShape aItLEIm(*pLEIm);
|
||||
for (; aItLEIm.More(); aItLEIm.Next())
|
||||
{
|
||||
TopoDS_Edge& aSp = TopoDS::Edge(aItLEIm.Value());
|
||||
TopoDS_Edge& aSp = TopoDS::Edge(aItLEIm.ChangeValue());
|
||||
|
||||
// Check if the split has multi-connected vertices
|
||||
if (!bIsDegenerated && HasMultiConnected(aSp, aVerticesCounter))
|
||||
|
@@ -27,7 +27,6 @@
|
||||
|
||||
#include <NCollection_DataMap.hxx>
|
||||
|
||||
#include <TopTools_OrientedShapeMapHasher.hxx>
|
||||
|
||||
//! BOPAlgo_MakeConnected is the algorithm for making the touching
|
||||
//! shapes connected or glued, i.e. for making the coinciding geometries
|
||||
@@ -321,8 +320,7 @@ protected: //! @name Fields
|
||||
// Results
|
||||
NCollection_DataMap
|
||||
<TopoDS_Shape,
|
||||
TopTools_ListOfShape,
|
||||
TopTools_OrientedShapeMapHasher> myMaterials; //!< Map of the materials associations
|
||||
TopTools_ListOfShape> myMaterials; //!< Map of the materials associations
|
||||
//! for the border elements
|
||||
TopTools_DataMapOfShapeListOfShape myOrigins; //!< Map of origins
|
||||
//! (allows tracking the shape's ancestors)
|
||||
|
@@ -180,13 +180,11 @@ protected:
|
||||
|
||||
typedef NCollection_DataMap
|
||||
<Handle(BOPDS_PaveBlock),
|
||||
Bnd_Box,
|
||||
TColStd_MapTransientHasher> BOPAlgo_DataMapOfPaveBlockBndBox;
|
||||
Bnd_Box> BOPAlgo_DataMapOfPaveBlockBndBox;
|
||||
|
||||
typedef NCollection_DataMap
|
||||
<Handle(BOPDS_PaveBlock),
|
||||
TColStd_ListOfInteger,
|
||||
TColStd_MapTransientHasher> BOPAlgo_DataMapOfPaveBlockListOfInteger;
|
||||
TColStd_ListOfInteger> BOPAlgo_DataMapOfPaveBlockListOfInteger;
|
||||
|
||||
typedef NCollection_DataMap
|
||||
<Standard_Integer,
|
||||
@@ -658,8 +656,8 @@ protected: //! Fields
|
||||
//! on a section curve.
|
||||
|
||||
NCollection_DataMap <BOPDS_Pair,
|
||||
NCollection_List<EdgeRangeDistance>,
|
||||
BOPDS_PairMapHasher> myDistances; //!< Map to store minimal distances between shapes
|
||||
NCollection_List<EdgeRangeDistance>>
|
||||
myDistances; //!< Map to store minimal distances between shapes
|
||||
//! which have no real intersections
|
||||
|
||||
};
|
||||
|
@@ -75,7 +75,7 @@ void BOPAlgo_PaveFiller::PerformVV(const Message_ProgressRange& theRange)
|
||||
//
|
||||
if (myDS->HasInterf(n1, n2))
|
||||
{
|
||||
BOPAlgo_Tools::FillMap<Standard_Integer, TColStd_MapIntegerHasher>(n1, n2, aMILI, aAllocator);
|
||||
BOPAlgo_Tools::FillMap(n1, n2, aMILI, aAllocator);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -91,12 +91,12 @@ void BOPAlgo_PaveFiller::PerformVV(const Message_ProgressRange& theRange)
|
||||
|
||||
iFlag = BOPTools_AlgoTools::ComputeVV(aV1, aV2, myFuzzyValue);
|
||||
if (!iFlag) {
|
||||
BOPAlgo_Tools::FillMap<Standard_Integer, TColStd_MapIntegerHasher>(n1, n2, aMILI, aAllocator);
|
||||
BOPAlgo_Tools::FillMap(n1, n2, aMILI, aAllocator);
|
||||
}
|
||||
}
|
||||
//
|
||||
// 2. Make blocks
|
||||
BOPAlgo_Tools::MakeBlocks<Standard_Integer, TColStd_MapIntegerHasher>(aMILI, aMBlocks, aAllocator);
|
||||
BOPAlgo_Tools::MakeBlocks(aMILI, aMBlocks, aAllocator);
|
||||
//
|
||||
// 3. Make vertices
|
||||
NCollection_List<TColStd_ListOfInteger>::Iterator aItB(aMBlocks);
|
||||
|
@@ -229,7 +229,7 @@ void BOPAlgo_PaveFiller::IntersectVE
|
||||
// for all vertices having the same SD vertex.
|
||||
// It will also be used as a Fence map to avoid repeated
|
||||
// intersection of the same SD vertex with edge
|
||||
NCollection_DataMap<BOPDS_Pair, TColStd_ListOfInteger, BOPDS_PairMapHasher> aDMVSD;
|
||||
NCollection_DataMap<BOPDS_Pair, TColStd_ListOfInteger> aDMVSD;
|
||||
//
|
||||
Message_ProgressScope aPSOuter(theRange, NULL, 10);
|
||||
for (i = 1; i <= aNbVE; ++i) {
|
||||
@@ -407,8 +407,7 @@ void BOPAlgo_PaveFiller::SplitPaveBlocks(const TColStd_MapOfInteger& theMEdges,
|
||||
BOPDS_MapOfPair aMPairs;
|
||||
// Map to treat the Common Blocks
|
||||
NCollection_IndexedDataMap<Handle(BOPDS_CommonBlock),
|
||||
BOPDS_ListOfPaveBlock,
|
||||
TColStd_MapTransientHasher> aMCBNewPB;
|
||||
BOPDS_ListOfPaveBlock> aMCBNewPB;
|
||||
//
|
||||
// Map of vertices to init the pave blocks for them
|
||||
TColStd_MapOfInteger aMVerticesToInitPB;
|
||||
@@ -507,7 +506,7 @@ void BOPAlgo_PaveFiller::SplitPaveBlocks(const TColStd_MapOfInteger& theMEdges,
|
||||
const BOPDS_ListOfPaveBlock& aLPBN = aMCBNewPB(i);
|
||||
//
|
||||
// For each group of pave blocks with the same vertices make new common block
|
||||
NCollection_IndexedDataMap<BOPDS_Pair, BOPDS_ListOfPaveBlock, BOPDS_PairMapHasher> aMInds;
|
||||
NCollection_IndexedDataMap<BOPDS_Pair, BOPDS_ListOfPaveBlock> aMInds;
|
||||
BOPDS_ListIteratorOfListOfPaveBlock aItLPB(aLPBN);
|
||||
for (; aItLPB.More(); aItLPB.Next()) {
|
||||
const Handle(BOPDS_PaveBlock)& aPB = aItLPB.Value();
|
||||
|
@@ -526,7 +526,7 @@ void BOPAlgo_PaveFiller::PerformEE(const Message_ProgressRange& theRange)
|
||||
// 2
|
||||
myDS->AddInterf(nE1, nE2);
|
||||
//
|
||||
BOPAlgo_Tools::FillMap<Handle(BOPDS_PaveBlock), TColStd_MapTransientHasher>(aPB1, aPB2, aMPBLPB, aAllocator);
|
||||
BOPAlgo_Tools::FillMap<Handle(BOPDS_PaveBlock)>(aPB1, aPB2, aMPBLPB, aAllocator);
|
||||
}//case TopAbs_EDGE
|
||||
break;
|
||||
default:
|
||||
@@ -964,8 +964,7 @@ void BOPAlgo_PaveFiller::ForceInterfEE(const Message_ProgressRange& theRange)
|
||||
// Fill the connection map from bounding vertices to pave blocks
|
||||
// having those bounding vertices
|
||||
NCollection_IndexedDataMap<BOPDS_Pair,
|
||||
BOPDS_ListOfPaveBlock,
|
||||
BOPDS_PairMapHasher> aPBMap(1, anAlloc);
|
||||
BOPDS_ListOfPaveBlock> aPBMap(1, anAlloc);
|
||||
// Fence map of pave blocks
|
||||
BOPDS_MapOfPaveBlock aMPBFence(1, anAlloc);
|
||||
|
||||
@@ -1147,7 +1146,7 @@ void BOPAlgo_PaveFiller::ForceInterfEE(const Message_ProgressRange& theRange)
|
||||
|
||||
aPBMap.Clear();
|
||||
aMPBFence.Clear();
|
||||
anAlloc->Reset();
|
||||
anAlloc->Reset(false);
|
||||
|
||||
Message_ProgressScope aPS(aPSOuter.Next(9), "Checking for coinciding edges", aNbPairs);
|
||||
for (Standard_Integer i = 0; i < aNbPairs; i++)
|
||||
@@ -1221,14 +1220,11 @@ void BOPAlgo_PaveFiller::ForceInterfEE(const Message_ProgressRange& theRange)
|
||||
const BOPDS_ListOfPaveBlock& aLPBCB = myDS->CommonBlock(aPB[j])->PaveBlocks();
|
||||
BOPDS_ListIteratorOfListOfPaveBlock aItLPB(aLPBCB);
|
||||
for (; aItLPB.More(); aItLPB.Next())
|
||||
BOPAlgo_Tools::FillMap<Handle(BOPDS_PaveBlock),
|
||||
TColStd_MapTransientHasher>(aPB[j], aItLPB.Value(), aMPBLPB, anAlloc);
|
||||
BOPAlgo_Tools::FillMap<Handle(BOPDS_PaveBlock)>(aPB[j], aItLPB.Value(), aMPBLPB, anAlloc);
|
||||
}
|
||||
}
|
||||
BOPAlgo_Tools::FillMap<Handle(BOPDS_PaveBlock),
|
||||
TColStd_MapTransientHasher>(aPB[0], aPB[1], aMPBLPB, anAlloc);
|
||||
BOPAlgo_Tools::FillMap<Handle(BOPDS_PaveBlock)>(aPB[0], aPB[1], aMPBLPB, anAlloc);
|
||||
}
|
||||
|
||||
// Create new common blocks of coinciding pairs.
|
||||
BOPAlgo_Tools::PerformCommonBlocks(aMPBLPB, anAlloc, myDS);
|
||||
}
|
||||
|
@@ -172,7 +172,7 @@ void BOPAlgo_PaveFiller::PerformVF(const Message_ProgressRange& theRange)
|
||||
//
|
||||
// Avoid repeated intersection of the same vertex with face in case
|
||||
// the group of vertices formed a single SD vertex
|
||||
NCollection_DataMap<BOPDS_Pair, TColStd_MapOfInteger, BOPDS_PairMapHasher> aMVFPairs;
|
||||
NCollection_DataMap<BOPDS_Pair, TColStd_MapOfInteger> aMVFPairs;
|
||||
for (; myIterator->More(); myIterator->Next()) {
|
||||
if (UserBreak(aPSOuter))
|
||||
{
|
||||
|
@@ -573,30 +573,11 @@ Standard_Boolean BOPAlgo_PaveFiller::CheckFacePaves
|
||||
const TColStd_MapOfInteger& aMIFOn,
|
||||
const TColStd_MapOfInteger& aMIFIn)
|
||||
{
|
||||
Standard_Boolean bRet;
|
||||
Standard_Integer nV;
|
||||
TColStd_MapIteratorOfMapOfInteger aIt;
|
||||
//
|
||||
bRet=Standard_False;
|
||||
//
|
||||
aIt.Initialize(aMIFOn);
|
||||
for (; aIt.More(); aIt.Next()) {
|
||||
nV=aIt.Value();
|
||||
if (nV==nVx) {
|
||||
bRet=!bRet;
|
||||
return bRet;
|
||||
}
|
||||
if (aMIFOn.Contains(nVx) || aMIFIn.Contains(nVx))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
aIt.Initialize(aMIFIn);
|
||||
for (; aIt.More(); aIt.Next()) {
|
||||
nV=aIt.Value();
|
||||
if (nV==nVx) {
|
||||
bRet=!bRet;
|
||||
return bRet;
|
||||
}
|
||||
}
|
||||
//
|
||||
return bRet;
|
||||
return false;
|
||||
}
|
||||
//=======================================================================
|
||||
// function: CheckFacePaves
|
||||
@@ -1073,7 +1054,7 @@ void BOPAlgo_PaveFiller::ForceInterfEF(const BOPDS_IndexedMapOfPaveBlock& theMPB
|
||||
aPSOuter.Next(0.7);
|
||||
|
||||
aPBMap.Clear();
|
||||
anAlloc->Reset();
|
||||
anAlloc->Reset(false);
|
||||
|
||||
Message_ProgressScope aPS(aPSOuter.Next(9), "Checking for edges coinciding with faces", aNbEFs);
|
||||
for (Standard_Integer i = 0; i < aNbEFs; i++)
|
||||
|
@@ -281,7 +281,7 @@ void BOPAlgo_PaveFiller::PerformFF(const Message_ProgressRange& theRange)
|
||||
//
|
||||
// Collect all pairs of Edge/Edge interferences to check if
|
||||
// some faces have to be moved to obtain more precise intersection
|
||||
NCollection_DataMap<BOPDS_Pair, TColStd_ListOfInteger, BOPDS_PairMapHasher> aEEMap;
|
||||
NCollection_DataMap<BOPDS_Pair, TColStd_ListOfInteger> aEEMap;
|
||||
const BOPDS_VectorOfInterfEE& aVEEs = myDS->InterfEE();
|
||||
for (Standard_Integer iEE = 0; iEE < aVEEs.Size(); ++iEE)
|
||||
{
|
||||
@@ -1198,8 +1198,7 @@ void BOPAlgo_PaveFiller::PostTreatFF
|
||||
// Map to store the real tolerance of the common block
|
||||
// and avoid repeated computation of it
|
||||
NCollection_DataMap<Handle(BOPDS_CommonBlock),
|
||||
Standard_Real,
|
||||
TColStd_MapTransientHasher> aMCBTol;
|
||||
Standard_Real> aMCBTol;
|
||||
// Map to avoid creation of different pave blocks for
|
||||
// the same intersection edge
|
||||
NCollection_DataMap<Standard_Integer, Handle(BOPDS_PaveBlock)> aMEPB;
|
||||
|
@@ -119,7 +119,7 @@ void BOPAlgo_Tools::PerformCommonBlocks(BOPDS_IndexedDataMapOfPaveBlockListOfPav
|
||||
}
|
||||
// Make Blocks of the pave blocks
|
||||
NCollection_List<BOPDS_ListOfPaveBlock> aMBlocks(aAllocator);
|
||||
BOPAlgo_Tools::MakeBlocks<Handle(BOPDS_PaveBlock), TColStd_MapTransientHasher>(aMPBLPB, aMBlocks, aAllocator);
|
||||
BOPAlgo_Tools::MakeBlocks(aMPBLPB, aMBlocks, aAllocator);
|
||||
|
||||
// Use temporary allocator for the local fence map
|
||||
Handle(NCollection_IncAllocator) anAllocTmp = new NCollection_IncAllocator;
|
||||
@@ -132,7 +132,7 @@ void BOPAlgo_Tools::PerformCommonBlocks(BOPDS_IndexedDataMapOfPaveBlockListOfPav
|
||||
continue;
|
||||
|
||||
// Reset the allocator
|
||||
anAllocTmp->Reset();
|
||||
anAllocTmp->Reset(false);
|
||||
// New common block
|
||||
Handle(BOPDS_CommonBlock) aCB;
|
||||
// Faces of the common block
|
||||
@@ -1068,11 +1068,11 @@ void BOPAlgo_Tools::IntersectVertices(const TopTools_IndexedDataMapOfShapeReal&
|
||||
for (Standard_Integer iPair = 0; iPair < aNbPairs; ++iPair)
|
||||
{
|
||||
const BOPTools_BoxPairSelector::PairIDs& aPair = aPairs[iPair];
|
||||
BOPAlgo_Tools::FillMap<Standard_Integer, TColStd_MapIntegerHasher> (aPair.ID1, aPair.ID2, aMILI, anAlloc);
|
||||
BOPAlgo_Tools::FillMap (aPair.ID1, aPair.ID2, aMILI, anAlloc);
|
||||
}
|
||||
|
||||
NCollection_List<TColStd_ListOfInteger> aBlocks (anAlloc);
|
||||
BOPAlgo_Tools::MakeBlocks<Standard_Integer, TColStd_MapIntegerHasher> (aMILI, aBlocks, anAlloc);
|
||||
NCollection_List<TColStd_ListOfInteger> aBlocks(anAlloc);
|
||||
BOPAlgo_Tools::MakeBlocks (aMILI, aBlocks, anAlloc);
|
||||
|
||||
NCollection_List<TColStd_ListOfInteger>::Iterator itLI (aBlocks);
|
||||
for (; itLI.More(); itLI.Next())
|
||||
|
@@ -42,31 +42,31 @@ class BOPAlgo_Tools
|
||||
{
|
||||
public:
|
||||
|
||||
//! Makes the chains of the connected elements from the given connexity map
|
||||
template <class theType, class theTypeHasher>
|
||||
static void MakeBlocks(const NCollection_IndexedDataMap<theType, NCollection_List<theType>, theTypeHasher>& theMILI,
|
||||
NCollection_List<NCollection_List<theType>>& theMBlocks,
|
||||
//! Makes the chains of the connected elements from the given convexity map
|
||||
template <class TheMap, class TheList>
|
||||
static void MakeBlocks(const TheMap& theMILI,
|
||||
TheList& theMBlocks,
|
||||
const Handle(NCollection_BaseAllocator)& theAllocator)
|
||||
{
|
||||
NCollection_Map<theType, theTypeHasher> aMFence;
|
||||
NCollection_Map<typename TheMap::key_type, typename TheMap::hasher> aMFence;
|
||||
Standard_Integer i, aNb = theMILI.Extent();
|
||||
for (i = 1; i <= aNb; ++i) {
|
||||
const theType& n = theMILI.FindKey(i);
|
||||
const typename TheMap::key_type& n = theMILI.FindKey(i);
|
||||
if (!aMFence.Add(n))
|
||||
continue;
|
||||
//
|
||||
// Start the chain
|
||||
NCollection_List<theType>& aChain = theMBlocks.Append(NCollection_List<theType>(theAllocator));
|
||||
typename TheList::value_type& aChain = theMBlocks.Append(typename TheList::value_type(theAllocator));
|
||||
aChain.Append(n);
|
||||
// Look for connected elements
|
||||
typename NCollection_List<theType>::Iterator aItLChain(aChain);
|
||||
typename TheList::value_type::Iterator aItLChain(aChain);
|
||||
for (; aItLChain.More(); aItLChain.Next()) {
|
||||
const theType& n1 = aItLChain.Value();
|
||||
const NCollection_List<theType>& aLI = theMILI.FindFromKey(n1);
|
||||
const typename TheMap::key_type& n1 = aItLChain.Value();
|
||||
const typename TheList::value_type& aLI = theMILI.FindFromKey(n1);
|
||||
// Add connected elements into the chain
|
||||
typename NCollection_List<theType>::Iterator aItLI(aLI);
|
||||
typename TheList::value_type::Iterator aItLI(aLI);
|
||||
for (; aItLI.More(); aItLI.Next()) {
|
||||
const theType& n2 = aItLI.Value();
|
||||
const typename TheMap::key_type& n2 = aItLI.Value();
|
||||
if (aMFence.Add(n2)) {
|
||||
aChain.Append(n2);
|
||||
}
|
||||
@@ -76,21 +76,21 @@ public:
|
||||
}
|
||||
|
||||
//! Fills the map with the connected entities
|
||||
template <class theType, class theTypeHasher>
|
||||
static void FillMap(const theType& n1,
|
||||
const theType& n2,
|
||||
NCollection_IndexedDataMap<theType, NCollection_List<theType>, theTypeHasher>& theMILI,
|
||||
template <class TheType, class TheMap>
|
||||
static void FillMap(const TheType& n1,
|
||||
const TheType& n2,
|
||||
TheMap& theMILI,
|
||||
const Handle(NCollection_BaseAllocator)& theAllocator)
|
||||
{
|
||||
NCollection_List<theType> *pList1 = theMILI.ChangeSeek(n1);
|
||||
typename TheMap::value_type *pList1 = theMILI.ChangeSeek(n1);
|
||||
if (!pList1) {
|
||||
pList1 = &theMILI(theMILI.Add(n1, NCollection_List<theType>(theAllocator)));
|
||||
pList1 = &theMILI(theMILI.Add(n1, NCollection_List<TheType>(theAllocator)));
|
||||
}
|
||||
pList1->Append(n2);
|
||||
//
|
||||
NCollection_List<theType> *pList2 = theMILI.ChangeSeek(n2);
|
||||
typename TheMap::value_type*pList2 = theMILI.ChangeSeek(n2);
|
||||
if (!pList2) {
|
||||
pList2 = &theMILI(theMILI.Add(n2, NCollection_List<theType>(theAllocator)));
|
||||
pList2 = &theMILI(theMILI.Add(n2, typename TheMap::value_type(theAllocator)));
|
||||
}
|
||||
pList2->Append(n1);
|
||||
}
|
||||
|
@@ -965,8 +965,8 @@ void BOPDS_DS::UpdateCommonBlock(const Handle(BOPDS_CommonBlock)& theCB,
|
||||
Standard_Integer nE, iRef, n1, n2;
|
||||
BOPDS_ListIteratorOfListOfPaveBlock aItPB, aItPBCB, aItPBN;
|
||||
BOPDS_ListOfPaveBlock aLPBN;
|
||||
NCollection_DataMap<BOPDS_Pair, BOPDS_ListOfPaveBlock, BOPDS_PairMapHasher> aMPKLPB;
|
||||
NCollection_DataMap<BOPDS_Pair, BOPDS_ListOfPaveBlock, BOPDS_PairMapHasher>::Iterator aItMPKLPB;
|
||||
NCollection_DataMap<BOPDS_Pair, BOPDS_ListOfPaveBlock> aMPKLPB;
|
||||
NCollection_DataMap<BOPDS_Pair, BOPDS_ListOfPaveBlock>::Iterator aItMPKLPB;
|
||||
Handle(BOPDS_PaveBlock) aPB;
|
||||
Handle(BOPDS_CommonBlock) aCBx;
|
||||
BOPDS_Pair aPK;
|
||||
|
@@ -18,6 +18,6 @@
|
||||
#include <NCollection_DataMap.hxx>
|
||||
#include <BOPDS_ListOfPaveBlock.hxx>
|
||||
|
||||
typedef NCollection_DataMap<Standard_Integer, BOPDS_ListOfPaveBlock, TColStd_MapIntegerHasher> BOPDS_DataMapOfIntegerListOfPaveBlock;
|
||||
typedef NCollection_DataMap<Standard_Integer, BOPDS_ListOfPaveBlock> BOPDS_DataMapOfIntegerListOfPaveBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -17,10 +17,9 @@
|
||||
#define BOPDS_DataMapOfPaveBlockCommonBlock_HeaderFile
|
||||
|
||||
#include <NCollection_DataMap.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <BOPDS_CommonBlock.hxx>
|
||||
|
||||
typedef NCollection_DataMap<Handle(BOPDS_PaveBlock), Handle(BOPDS_CommonBlock), TColStd_MapTransientHasher> BOPDS_DataMapOfPaveBlockCommonBlock;
|
||||
typedef NCollection_DataMap<Handle(BOPDS_PaveBlock), Handle(BOPDS_CommonBlock)> BOPDS_DataMapOfPaveBlockCommonBlock;
|
||||
typedef BOPDS_DataMapOfPaveBlockCommonBlock::Iterator BOPDS_DataMapIteratorOfDataMapOfPaveBlockCommonBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_DataMapOfPaveBlockListOfInteger_HeaderFile
|
||||
|
||||
#include <NCollection_DataMap.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
|
||||
typedef NCollection_DataMap<Handle(BOPDS_PaveBlock), TColStd_ListOfInteger, TColStd_MapTransientHasher> BOPDS_DataMapOfPaveBlockListOfInteger;
|
||||
typedef NCollection_DataMap<Handle(BOPDS_PaveBlock), TColStd_ListOfInteger> BOPDS_DataMapOfPaveBlockListOfInteger;
|
||||
typedef BOPDS_DataMapOfPaveBlockListOfInteger::Iterator BOPDS_DataMapIteratorOfDataMapOfPaveBlockListOfInteger;
|
||||
|
||||
#endif
|
||||
|
@@ -16,11 +16,10 @@
|
||||
#define BOPDS_DataMapOfPaveBlockListOfPaveBlock_HeaderFile
|
||||
|
||||
#include <NCollection_DataMap.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <BOPDS_PaveBlock.hxx>
|
||||
#include <BOPDS_ListOfPaveBlock.hxx>
|
||||
|
||||
typedef NCollection_DataMap<Handle(BOPDS_PaveBlock), BOPDS_ListOfPaveBlock, TColStd_MapTransientHasher> BOPDS_DataMapOfPaveBlockListOfPaveBlock;
|
||||
typedef NCollection_DataMap<Handle(BOPDS_PaveBlock), BOPDS_ListOfPaveBlock> BOPDS_DataMapOfPaveBlockListOfPaveBlock;
|
||||
typedef BOPDS_DataMapOfPaveBlockListOfPaveBlock::Iterator BOPDS_DataMapIteratorOfDataMapOfPaveBlockListOfPaveBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_IndexedDataMapOfPaveBlockListOfInteger_HeaderFile
|
||||
|
||||
#include <NCollection_IndexedDataMap.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <BOPDS_PaveBlock.hxx>
|
||||
|
||||
typedef NCollection_IndexedDataMap<Handle(BOPDS_PaveBlock), TColStd_ListOfInteger, TColStd_MapTransientHasher> BOPDS_IndexedDataMapOfPaveBlockListOfInteger;
|
||||
typedef NCollection_IndexedDataMap<Handle(BOPDS_PaveBlock), TColStd_ListOfInteger> BOPDS_IndexedDataMapOfPaveBlockListOfInteger;
|
||||
|
||||
#endif
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock_HeaderFile
|
||||
|
||||
#include <NCollection_IndexedDataMap.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <BOPDS_PaveBlock.hxx>
|
||||
#include <BOPDS_ListOfPaveBlock.hxx>
|
||||
|
||||
typedef NCollection_IndexedDataMap<Handle(BOPDS_PaveBlock), BOPDS_ListOfPaveBlock, TColStd_MapTransientHasher> BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock;
|
||||
typedef NCollection_IndexedDataMap<Handle(BOPDS_PaveBlock), BOPDS_ListOfPaveBlock> BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -16,9 +16,8 @@
|
||||
#define BOPDS_IndexedMapOfPaveBlock_HeaderFile
|
||||
|
||||
#include <NCollection_IndexedMap.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <BOPDS_PaveBlock.hxx>
|
||||
|
||||
typedef NCollection_IndexedMap<Handle(BOPDS_PaveBlock), TColStd_MapTransientHasher> BOPDS_IndexedMapOfPaveBlock;
|
||||
typedef NCollection_IndexedMap<Handle(BOPDS_PaveBlock)> BOPDS_IndexedMapOfPaveBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -15,9 +15,11 @@
|
||||
#ifndef BOPDS_ListOfPaveBlock_HeaderFile
|
||||
#define BOPDS_ListOfPaveBlock_HeaderFile
|
||||
|
||||
#include <NCollection_List.hxx>
|
||||
#include <NCollection_List.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
class BOPDS_PaveBlock;
|
||||
|
||||
typedef NCollection_List<Handle(BOPDS_PaveBlock)> BOPDS_ListOfPaveBlock;
|
||||
typedef BOPDS_ListOfPaveBlock::Iterator BOPDS_ListIteratorOfListOfPaveBlock;
|
||||
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_MapOfCommonBlock_HeaderFile
|
||||
|
||||
#include <NCollection_Map.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <BOPDS_CommonBlock.hxx>
|
||||
|
||||
typedef NCollection_Map<Handle(BOPDS_CommonBlock), TColStd_MapTransientHasher> BOPDS_MapOfCommonBlock;
|
||||
typedef NCollection_Map<Handle(BOPDS_CommonBlock)> BOPDS_MapOfCommonBlock;
|
||||
typedef BOPDS_MapOfCommonBlock::Iterator BOPDS_MapIteratorOfMapOfCommonBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_MapOfPair_HeaderFile
|
||||
|
||||
#include <NCollection_Map.hxx>
|
||||
#include <BOPDS_PairMapHasher.hxx>
|
||||
#include <BOPDS_Pair.hxx>
|
||||
|
||||
typedef NCollection_Map<BOPDS_Pair, BOPDS_PairMapHasher> BOPDS_MapOfPair;
|
||||
typedef NCollection_Map<BOPDS_Pair> BOPDS_MapOfPair;
|
||||
typedef BOPDS_MapOfPair::Iterator BOPDS_MapIteratorOfMapOfPair;
|
||||
|
||||
#endif
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_MapOfPave_HeaderFile
|
||||
|
||||
#include <NCollection_Map.hxx>
|
||||
#include <BOPDS_PaveMapHasher.hxx>
|
||||
#include <BOPDS_Pave.hxx>
|
||||
|
||||
typedef NCollection_Map<BOPDS_Pave, BOPDS_PaveMapHasher> BOPDS_MapOfPave;
|
||||
typedef NCollection_Map<BOPDS_Pave> BOPDS_MapOfPave;
|
||||
typedef BOPDS_MapOfPave::Iterator BOPDS_MapIteratorOfMapOfPave;
|
||||
|
||||
#endif
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPDS_MapOfPaveBlock_HeaderFile
|
||||
|
||||
#include <NCollection_Map.hxx>
|
||||
#include <TColStd_MapTransientHasher.hxx>
|
||||
#include <BOPDS_PaveBlock.hxx>
|
||||
|
||||
typedef NCollection_Map<Handle(BOPDS_PaveBlock), TColStd_MapTransientHasher> BOPDS_MapOfPaveBlock;
|
||||
typedef NCollection_Map<Handle(BOPDS_PaveBlock)> BOPDS_MapOfPaveBlock;
|
||||
typedef BOPDS_MapOfPaveBlock::Iterator BOPDS_MapIteratorOfMapOfPaveBlock;
|
||||
|
||||
#endif
|
||||
|
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_HashUtils.hxx>
|
||||
|
||||
//! The class is to provide the pair of indices of interfering shapes.
|
||||
|
||||
@@ -62,12 +63,9 @@ class BOPDS_Pair {
|
||||
(myIndex1 == theOther.myIndex2 && myIndex2 == theOther.myIndex1);
|
||||
}
|
||||
|
||||
//! Computes a hash code for this pair, in the range [1, theUpperBound]
|
||||
//! @param theUpperBound the upper bound of the range a computing hash code must be within
|
||||
//! @return a computed hash code, in the range [1, theUpperBound]
|
||||
Standard_Integer HashCode (const Standard_Integer theUpperBound) const
|
||||
bool operator==(const BOPDS_Pair& theOther) const
|
||||
{
|
||||
return ::HashCode(myIndex1 + myIndex2, theUpperBound);
|
||||
return IsEqual(theOther);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -75,4 +73,23 @@ class BOPDS_Pair {
|
||||
Standard_Integer myIndex2;
|
||||
};
|
||||
|
||||
namespace std
|
||||
{
|
||||
template <>
|
||||
struct hash<BOPDS_Pair>
|
||||
{
|
||||
size_t operator()(const BOPDS_Pair& thePair) const noexcept
|
||||
{
|
||||
// Combine two int values into a single hash value.
|
||||
int aCombination[2];
|
||||
thePair.Indices(aCombination[0], aCombination[1]);
|
||||
if (aCombination[0] > aCombination[1])
|
||||
{
|
||||
std::swap(aCombination[0], aCombination[1]);
|
||||
}
|
||||
return opencascade::hashBytes(aCombination, sizeof(aCombination));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endif // _BOPDS_Pair
|
@@ -1,53 +0,0 @@
|
||||
// Created by: Eugeny MALTCHIKOV
|
||||
// Copyright (c) 2017 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 _BOPDS_PairMapHasher_HeaderFile
|
||||
#define _BOPDS_PairMapHasher_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BOPDS_Pair.hxx>
|
||||
|
||||
class BOPDS_Pair;
|
||||
|
||||
class BOPDS_PairMapHasher
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
//! Computes a hash code for the given pair, in the range [1, theUpperBound]
|
||||
//! @param thePair the pair which hash code is to be computed
|
||||
//! @param theUpperBound the upper bound of the range a computing hash code must be within
|
||||
//! @return a computed hash code, in the range [1, theUpperBound]
|
||||
static Standard_Integer HashCode (const BOPDS_Pair& thePair, const Standard_Integer theUpperBound)
|
||||
{
|
||||
return thePair.HashCode (theUpperBound);
|
||||
}
|
||||
|
||||
static Standard_Boolean IsEqual(const BOPDS_Pair& thePair1,
|
||||
const BOPDS_Pair& thePair2)
|
||||
{
|
||||
return thePair1.IsEqual(thePair2);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
#endif // _BOPDS_PairMapHasher_HeaderFile
|
@@ -103,6 +103,20 @@ private:
|
||||
|
||||
};
|
||||
|
||||
namespace std
|
||||
{
|
||||
template <>
|
||||
struct hash<BOPDS_Pave>
|
||||
{
|
||||
size_t operator()(const BOPDS_Pave& thePave) const noexcept
|
||||
{
|
||||
size_t aCombination[2];
|
||||
aCombination[0] = opencascade::hash(thePave.Index());
|
||||
aCombination[1] = opencascade::hash(thePave.Parameter());
|
||||
return opencascade::hashBytes(aCombination, sizeof(aCombination));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#include <BOPDS_Pave.lxx>
|
||||
|
||||
|
@@ -1,64 +0,0 @@
|
||||
// Created by: Eugeny MALTCHIKOV
|
||||
// Copyright (c) 1999-2014 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 _BOPDS_PaveMapHasher_HeaderFile
|
||||
#define _BOPDS_PaveMapHasher_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
class BOPDS_Pave;
|
||||
|
||||
|
||||
|
||||
class BOPDS_PaveMapHasher
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
//! Computes a hash code for the given pave, in the range [1, theUpperBound]
|
||||
//! @param thePave the pave which hash code is to be computed
|
||||
//! @param theUpperBound the upper bound of the range a computing hash code must be within
|
||||
//! @return a computed hash code, in the range [1, theUpperBound]
|
||||
static Standard_Integer HashCode (const BOPDS_Pave& thePave, Standard_Integer theUpperBound);
|
||||
|
||||
static Standard_Boolean IsEqual (const BOPDS_Pave& aPave1, const BOPDS_Pave& aPave2);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BOPDS_PaveMapHasher.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BOPDS_PaveMapHasher_HeaderFile
|
@@ -1,35 +0,0 @@
|
||||
// Created by: Eugeny MALTCHIKOV
|
||||
// Copyright (c) 1999-2014 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 <BOPDS_Pave.hxx>
|
||||
|
||||
//=======================================================================
|
||||
// function : HashCode
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
inline Standard_Integer BOPDS_PaveMapHasher::HashCode (const BOPDS_Pave& thePave, const Standard_Integer theUpperBound)
|
||||
{
|
||||
return ::HashCode (thePave.Index(), theUpperBound);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function :IsEqual
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
inline
|
||||
Standard_Boolean BOPDS_PaveMapHasher::IsEqual(const BOPDS_Pave& aPave1,
|
||||
const BOPDS_Pave& aPave2)
|
||||
{
|
||||
return aPave1.IsEqual(aPave2);
|
||||
}
|
@@ -35,8 +35,6 @@ BOPDS_Pave.hxx
|
||||
BOPDS_Pave.lxx
|
||||
BOPDS_PaveBlock.cxx
|
||||
BOPDS_PaveBlock.hxx
|
||||
BOPDS_PaveMapHasher.hxx
|
||||
BOPDS_PaveMapHasher.lxx
|
||||
BOPDS_PDS.hxx
|
||||
BOPDS_PIterator.hxx
|
||||
BOPDS_PIteratorSI.hxx
|
||||
@@ -67,7 +65,6 @@ BOPDS_VectorOfPave.hxx
|
||||
BOPDS_VectorOfPoint.hxx
|
||||
BOPDS_VectorOfShapeInfo.hxx
|
||||
BOPDS_Pair.hxx
|
||||
BOPDS_PairMapHasher.hxx
|
||||
BOPDS_MapOfPair.hxx
|
||||
BOPDS_VectorOfPair.hxx
|
||||
BOPDS_VectorOfVectorOfPair.hxx
|
||||
|
@@ -16,10 +16,9 @@
|
||||
#define BOPTools_IndexedDataMapOfSetShape_HeaderFile
|
||||
|
||||
#include <BOPTools_Set.hxx>
|
||||
#include <BOPTools_SetMapHasher.hxx>
|
||||
#include <NCollection_IndexedDataMap.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
|
||||
typedef NCollection_IndexedDataMap<BOPTools_Set, TopoDS_Shape, BOPTools_SetMapHasher> BOPTools_IndexedDataMapOfSetShape;
|
||||
typedef NCollection_IndexedDataMap<BOPTools_Set, TopoDS_Shape> BOPTools_IndexedDataMapOfSetShape;
|
||||
|
||||
#endif
|
||||
|
@@ -16,11 +16,10 @@
|
||||
#define BOPTools_MapOfSet_HeaderFile
|
||||
|
||||
#include <BOPTools_Set.hxx>
|
||||
#include <BOPTools_SetMapHasher.hxx>
|
||||
|
||||
#include <NCollection_Map.hxx>
|
||||
|
||||
typedef NCollection_Map<BOPTools_Set, BOPTools_SetMapHasher> BOPTools_MapOfSet;
|
||||
typedef NCollection_Map<BOPTools_Set> BOPTools_MapOfSet;
|
||||
typedef BOPTools_MapOfSet::Iterator BOPTools_MapIteratorOfMapOfSet;
|
||||
|
||||
#endif
|
||||
|
@@ -50,25 +50,6 @@ class BOPTools_Parallel
|
||||
template<class TypeSolverVector, class TypeContext>
|
||||
class ContextFunctor
|
||||
{
|
||||
//! Auxiliary thread ID hasher.
|
||||
struct Hasher
|
||||
{
|
||||
//! Computes a hash code for the given thread identifier, in the range [1, theUpperBound]
|
||||
//! @param theThreadId the thread identifier which hash code is to be computed
|
||||
//! @param theUpperBound the upper bound of the range a computing hash code must be within
|
||||
//! @return a computed hash code, in the range [1, theUpperBound]
|
||||
static Standard_Integer HashCode (const Standard_ThreadId theThreadId, const Standard_Integer theUpperBound)
|
||||
{
|
||||
return ::HashCode (theThreadId, theUpperBound);
|
||||
}
|
||||
|
||||
static Standard_Boolean IsEqual(const Standard_ThreadId theKey1,
|
||||
const Standard_ThreadId theKey2)
|
||||
{
|
||||
return theKey1 == theKey2;
|
||||
}
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
//! Constructor
|
||||
@@ -116,7 +97,7 @@ class BOPTools_Parallel
|
||||
|
||||
private:
|
||||
TypeSolverVector& mySolverVector;
|
||||
mutable NCollection_DataMap<Standard_ThreadId, opencascade::handle<TypeContext>, Hasher> myContextMap;
|
||||
mutable NCollection_DataMap<Standard_ThreadId, opencascade::handle<TypeContext>> myContextMap;
|
||||
mutable Standard_Mutex myMutex;
|
||||
};
|
||||
|
||||
|
@@ -21,8 +21,8 @@
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
|
||||
static
|
||||
Standard_Integer NormalizedIds(const Standard_Integer aId,
|
||||
const Standard_Integer aDiv);
|
||||
size_t NormalizedIds(const size_t aId,
|
||||
const Standard_Integer aDiv);
|
||||
|
||||
//=======================================================================
|
||||
//function :
|
||||
@@ -127,15 +127,6 @@ const TopoDS_Shape& BOPTools_Set::Shape()const
|
||||
return myShape;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : HashCode
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer BOPTools_Set::HashCode (const Standard_Integer theUpperBound) const
|
||||
{
|
||||
return ::HashCode (mySum, theUpperBound);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : IsEqual
|
||||
//purpose :
|
||||
@@ -177,7 +168,7 @@ Standard_Boolean BOPTools_Set::IsEqual
|
||||
void BOPTools_Set::Add(const TopoDS_Shape& theS,
|
||||
const TopAbs_ShapeEnum theType)
|
||||
{
|
||||
Standard_Integer aId, aIdN;
|
||||
size_t aId, aIdN;
|
||||
TopAbs_Orientation aOr;
|
||||
TopExp_Explorer aExp;
|
||||
//
|
||||
@@ -223,7 +214,7 @@ void BOPTools_Set::Add(const TopoDS_Shape& theS,
|
||||
aIt.Initialize(myShapes);
|
||||
for (; aIt.More(); aIt.Next()) {
|
||||
const TopoDS_Shape& aSx=aIt.Value();
|
||||
aId=aSx.HashCode(myUpper);
|
||||
aId = TopTools_ShapeMapHasher{}(aSx) % myUpper + 1;
|
||||
aIdN=NormalizedIds(aId, myNbShapes);
|
||||
mySum+=aIdN;
|
||||
}
|
||||
@@ -232,13 +223,13 @@ void BOPTools_Set::Add(const TopoDS_Shape& theS,
|
||||
// function: NormalizedIds
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer NormalizedIds(const Standard_Integer aId,
|
||||
const Standard_Integer aDiv)
|
||||
size_t NormalizedIds(const size_t aId,
|
||||
const Standard_Integer aDiv)
|
||||
{
|
||||
Standard_Integer aMax, aTresh, aIdRet;
|
||||
size_t aMax, aTresh, aIdRet;
|
||||
//
|
||||
aIdRet=aId;
|
||||
aMax=::IntegerLast();
|
||||
aMax=SIZE_MAX;
|
||||
aTresh=aMax/aDiv;
|
||||
if (aId>aTresh) {
|
||||
aIdRet=aId%aTresh;
|
||||
|
@@ -55,11 +55,12 @@ BOPTools_Set& operator = (const BOPTools_Set& Other)
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsEqual (const BOPTools_Set& aOther) const;
|
||||
|
||||
//! Computes a hash code for this set, in the range [1, theUpperBound]
|
||||
//! @param theUpperBound the upper bound of the range a computing hash code must be within
|
||||
//! @return a computed hash code, in the range [1, theUpperBound]
|
||||
Standard_EXPORT Standard_Integer HashCode (Standard_Integer theUpperBound) const;
|
||||
bool operator==(const BOPTools_Set& theOther) const
|
||||
{
|
||||
return IsEqual(theOther);
|
||||
}
|
||||
|
||||
size_t GetSum() const { return mySum; }
|
||||
|
||||
protected:
|
||||
|
||||
@@ -71,22 +72,20 @@ protected:
|
||||
TopTools_ListOfShape myShapes;
|
||||
TopoDS_Shape myShape;
|
||||
Standard_Integer myNbShapes;
|
||||
Standard_Integer mySum;
|
||||
size_t mySum;
|
||||
Standard_Integer myUpper;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
namespace std
|
||||
{
|
||||
template <>
|
||||
struct hash<BOPTools_Set>
|
||||
{
|
||||
size_t operator()(const BOPTools_Set& theSet) const noexcept
|
||||
{
|
||||
return theSet.GetSum();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endif // _BOPTools_Set_HeaderFile
|
||||
|
@@ -1,64 +0,0 @@
|
||||
// Created by: Peter KURNEV
|
||||
// Copyright (c) 1999-2014 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 _BOPTools_SetMapHasher_HeaderFile
|
||||
#define _BOPTools_SetMapHasher_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
class BOPTools_Set;
|
||||
|
||||
|
||||
|
||||
class BOPTools_SetMapHasher
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
//! Computes a hash code for the given set, in the range [1, theUpperBound]
|
||||
//! @param theSet the set which hash code is to be computed
|
||||
//! @param theUpperBound the upper bound of the range a computing hash code must be within
|
||||
//! @return a computed hash code, in the range [1, theUpperBound]
|
||||
static Standard_Integer HashCode (const BOPTools_Set& theSet, Standard_Integer theUpperBound);
|
||||
|
||||
static Standard_Boolean IsEqual (const BOPTools_Set& aSet1, const BOPTools_Set& aSet2);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BOPTools_SetMapHasher.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BOPTools_SetMapHasher_HeaderFile
|
@@ -1,35 +0,0 @@
|
||||
// Created by: Peter KURNEV
|
||||
// Copyright (c) 1999-2014 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 <BOPTools_SetMapHasher.ixx>
|
||||
|
||||
//=======================================================================
|
||||
// function : HashCode
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
inline Standard_Integer BOPTools_SetMapHasher::HashCode (const BOPTools_Set& theSet,
|
||||
const Standard_Integer theUpperBound)
|
||||
{
|
||||
return theSet.HashCode (theUpperBound);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function :IsEqual
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
inline Standard_Boolean BOPTools_SetMapHasher::IsEqual(const BOPTools_Set& theSS1,
|
||||
const BOPTools_Set& theSS2)
|
||||
{
|
||||
return theSS1.IsEqual(theSS2);
|
||||
}
|
@@ -19,5 +19,3 @@ BOPTools_PairSelector.hxx
|
||||
BOPTools_Parallel.hxx
|
||||
BOPTools_Set.cxx
|
||||
BOPTools_Set.hxx
|
||||
BOPTools_SetMapHasher.hxx
|
||||
BOPTools_SetMapHasher.lxx
|
||||
|
@@ -356,7 +356,7 @@ static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr,
|
||||
}
|
||||
|
||||
if (itcr.More()) {
|
||||
Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
||||
Handle(BRep_CurveRepresentation) cr = itcr.Value();
|
||||
cr->Continuity(C);
|
||||
}
|
||||
else {
|
||||
@@ -380,7 +380,7 @@ static void UpdatePoints(BRep_ListOfPointRepresentation& lpr,
|
||||
}
|
||||
|
||||
if (itpr.More()) {
|
||||
Handle(BRep_PointRepresentation)& pr = itpr.Value();
|
||||
Handle(BRep_PointRepresentation) pr = itpr.Value();
|
||||
pr->Parameter(p);
|
||||
}
|
||||
else {
|
||||
@@ -404,7 +404,7 @@ static void UpdatePoints(BRep_ListOfPointRepresentation& lpr,
|
||||
}
|
||||
|
||||
if (itpr.More()) {
|
||||
Handle(BRep_PointRepresentation)& pr = itpr.Value();
|
||||
Handle(BRep_PointRepresentation) pr = itpr.Value();
|
||||
pr->Parameter(p);
|
||||
}
|
||||
else {
|
||||
@@ -430,7 +430,7 @@ static void UpdatePoints(BRep_ListOfPointRepresentation& lpr,
|
||||
}
|
||||
|
||||
if (itpr.More()) {
|
||||
Handle(BRep_PointRepresentation)& pr = itpr.Value();
|
||||
Handle(BRep_PointRepresentation) pr = itpr.Value();
|
||||
pr->Parameter(p1);
|
||||
// pr->Parameter(p2); // skv
|
||||
pr->Parameter2(p2); // skv
|
||||
|
@@ -1053,7 +1053,7 @@ void BRep_Tool::SetUVPoints(const TopoDS_Edge& E,
|
||||
BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
|
||||
|
||||
while (itcr.More()) {
|
||||
Handle(BRep_CurveRepresentation)& cr = itcr.Value();
|
||||
Handle(BRep_CurveRepresentation) cr = itcr.Value();
|
||||
if (cr->IsCurveOnSurface(S,l)) {
|
||||
if (cr->IsCurveOnClosedSurface() && Eisreversed)
|
||||
{
|
||||
|
@@ -384,7 +384,7 @@ void BRepAlgo_FaceRestrictor::PerformWithCorrection()
|
||||
// Reorientation of all closed wires to the left.
|
||||
//---------------------------------------------------------
|
||||
for (; it.More(); it.Next()) {
|
||||
TopoDS_Wire& W = TopoDS::Wire(it.Value());
|
||||
TopoDS_Wire& W = TopoDS::Wire(it.ChangeValue());
|
||||
TopoDS_Shape aLocalShape = myFace.EmptyCopied();
|
||||
TopoDS_Face NF = TopoDS::Face(aLocalShape);
|
||||
// TopoDS_Face NF = TopoDS::Face(myFace.EmptyCopied());
|
||||
@@ -402,7 +402,7 @@ void BRepAlgo_FaceRestrictor::PerformWithCorrection()
|
||||
// Classification of wires ones compared to the others.
|
||||
//---------------------------------------------------------
|
||||
for (it.Initialize(wires) ; it.More(); it.Next()) {
|
||||
TopoDS_Wire& W1 = TopoDS::Wire(it.Value());
|
||||
const TopoDS_Wire& W1 = TopoDS::Wire(it.Value());
|
||||
TopTools_ListIteratorOfListOfShape it2(wires);
|
||||
|
||||
if (IsClosed(W1)) {
|
||||
|
@@ -572,7 +572,7 @@ void BRepAlgo_Loop::Perform()
|
||||
if (pLCE)
|
||||
{
|
||||
for (itl1.Initialize(*pLCE); itl1.More(); itl1.Next()) {
|
||||
TopoDS_Edge& E = TopoDS::Edge(itl1.Value());
|
||||
TopoDS_Edge& E = TopoDS::Edge(itl1.ChangeValue());
|
||||
if (!Emap.Add(E))
|
||||
continue;
|
||||
StoreInMVE(myFace,E,MVE,YaCouture,myVerticesForSubstitute, myTolConf);
|
||||
@@ -585,7 +585,7 @@ void BRepAlgo_Loop::Perform()
|
||||
// => call only once StoreInMVE which should double them
|
||||
TopTools_MapOfShape DejaVu;
|
||||
for (itl.Initialize(myConstEdges); itl.More(); itl.Next()) {
|
||||
TopoDS_Edge& E = TopoDS::Edge(itl.Value());
|
||||
TopoDS_Edge& E = TopoDS::Edge(itl.ChangeValue());
|
||||
if (DejaVu.Add(E))
|
||||
StoreInMVE(myFace,E,MVE,YaCouture,myVerticesForSubstitute, myTolConf);
|
||||
}
|
||||
@@ -900,7 +900,7 @@ void BRepAlgo_Loop::WiresToFaces()
|
||||
// Standard_False);
|
||||
TopTools_ListIteratorOfListOfShape it(myNewWires);
|
||||
for (; it.More(); it.Next()) {
|
||||
FR.Add(TopoDS::Wire(it.Value()));
|
||||
FR.Add(TopoDS::Wire(it.ChangeValue()));
|
||||
}
|
||||
|
||||
FR.Perform();
|
||||
|
@@ -21,7 +21,6 @@
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
|
@@ -20,7 +20,6 @@
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
|
@@ -22,6 +22,7 @@
|
||||
#include <BRepBuilderAPI_MakeVertex.hxx>
|
||||
#include <BRepBuilderAPI_MakeWire.hxx>
|
||||
#include <NCollection_IndexedDataMap.hxx>
|
||||
#include <Standard_HashUtils.hxx>
|
||||
|
||||
namespace
|
||||
{
|
||||
@@ -47,32 +48,30 @@ namespace
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
bool operator==(const Edge& theOther) const
|
||||
{
|
||||
return theOther.Idx1 == Idx1 && theOther.Idx2 == Idx2;
|
||||
}
|
||||
|
||||
//! First index. It is lower or equal than the second.
|
||||
Standard_Integer Idx1;
|
||||
|
||||
//! Second index.
|
||||
Standard_Integer Idx2;
|
||||
};
|
||||
}
|
||||
|
||||
//! Hasher of Edge structure.
|
||||
struct EdgeHasher
|
||||
namespace std
|
||||
{
|
||||
template <>
|
||||
struct hash<Edge>
|
||||
{
|
||||
|
||||
//! Returns hash code for the given edge.
|
||||
static Standard_Integer HashCode(const Edge& theEdge,
|
||||
const Standard_Integer theUpperBound)
|
||||
size_t operator()(const Edge& theEdge) const noexcept
|
||||
{
|
||||
// Circle-based collisions.
|
||||
return ::HashCode(theEdge.Idx1 * theEdge.Idx1 + theEdge.Idx2 * theEdge.Idx2, theUpperBound);
|
||||
// Combine two int values into a single hash value.
|
||||
int aCombination[2]{ theEdge.Idx1, theEdge.Idx2 };
|
||||
return opencascade::hashBytes(aCombination, sizeof(aCombination));
|
||||
}
|
||||
|
||||
//! Returns true if two edges are equal.
|
||||
static Standard_Boolean IsEqual(const Edge& theEdge1,
|
||||
const Edge& theEdge2)
|
||||
{
|
||||
return theEdge1.Idx1 == theEdge2.Idx1 && theEdge1.Idx2 == theEdge2.Idx2;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -115,7 +114,7 @@ void BRepBuilderAPI_MakeShapeOnMesh::Build(const Message_ProgressRange& theRange
|
||||
}
|
||||
|
||||
// Build shared edges.
|
||||
NCollection_IndexedDataMap<Edge, TopoDS_Edge, EdgeHasher> anEdgeToTEgeMap;
|
||||
NCollection_IndexedDataMap<Edge, TopoDS_Edge> anEdgeToTEgeMap;
|
||||
for (Standard_Integer i = 1; i <= aNbTriangles; ++i)
|
||||
{
|
||||
aPS.Next();
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user