Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4706ad94a7 | ||
|
a17196b781 | ||
|
ae0de0e7f9 | ||
|
34270d6529 | ||
|
84d77524a8 | ||
|
35a20a479f | ||
|
dd2bc8054f |
@@ -91,16 +91,6 @@ if (NOT DEFINED BUILD_RELEASE_DISABLE_EXCEPTIONS)
|
||||
set (BUILD_RELEASE_DISABLE_EXCEPTIONS ON CACHE BOOL "${BUILD_RELEASE_DISABLE_EXCEPTIONS_DESCR}")
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
set (BUILD_FORCE_RelWithDebInfo OFF CACHE BOOL "${BUILD_FORCE_RelWithDebInfo_DESCR}")
|
||||
else()
|
||||
set (BUILD_FORCE_RelWithDebInfo OFF)
|
||||
endif()
|
||||
|
||||
if (BUILD_FORCE_RelWithDebInfo)
|
||||
set (CMAKE_CONFIGURATION_TYPES Release Debug CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
|
||||
# option to enable or disable use of precompiled headers
|
||||
if (NOT DEFINED BUILD_USE_PCH)
|
||||
set (BUILD_USE_PCH OFF CACHE BOOL "${BUILD_USE_PCH_DESCR}")
|
||||
@@ -380,7 +370,6 @@ set (USE_FREEIMAGE OFF CACHE BOOL "${USE_FREEIMAGE_DESCR}")
|
||||
set (USE_FFMPEG OFF CACHE BOOL "${USE_FFMPEG_DESCR}")
|
||||
set (USE_OPENVR OFF CACHE BOOL "${USE_OPENVR_DESCR}")
|
||||
set (USE_RAPIDJSON OFF CACHE BOOL "${USE_RAPIDJSON_DESCR}")
|
||||
set (USE_DRACO OFF CACHE BOOL "${USE_DRACO_DESCR}")
|
||||
set (USE_TBB OFF CACHE BOOL "${USE_TBB_DESCR}")
|
||||
set (USE_EIGEN OFF CACHE BOOL "${USE_EIGEN_DESCR}")
|
||||
|
||||
@@ -727,24 +716,6 @@ else()
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_RAPIDJSON")
|
||||
endif()
|
||||
|
||||
# Draco library
|
||||
# search for CSF_Draco variable in EXTERNLIB of each being used toolkit
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_Draco CAN_USE_DRACO)
|
||||
if (CAN_USE_DRACO)
|
||||
if (USE_DRACO)
|
||||
add_definitions (-DHAVE_DRACO)
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/draco")
|
||||
else()
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_DRACO")
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_DRACO")
|
||||
endif()
|
||||
else()
|
||||
OCCT_CHECK_AND_UNSET ("USE_DRACO")
|
||||
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_DRACO")
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_DRACO")
|
||||
endif()
|
||||
|
||||
# EIGEN
|
||||
if (CAN_USE_EIGEN)
|
||||
if (USE_EIGEN)
|
||||
|
@@ -328,7 +328,6 @@ n RWStepDimTol
|
||||
n RWStepElement
|
||||
n RWStepFEA
|
||||
n RWStepGeom
|
||||
n RWStepKinematics
|
||||
n RWStepRepr
|
||||
n RWStepShape
|
||||
n RWStepVisual
|
||||
@@ -348,7 +347,6 @@ n StepDimTol
|
||||
n StepElement
|
||||
n StepFEA
|
||||
n StepGeom
|
||||
n StepKinematics
|
||||
n StepRepr
|
||||
n StepSelect
|
||||
n StepShape
|
||||
|
@@ -1,4 +0,0 @@
|
||||
# Draco - a library for a lossy vertex data compression, used as extension to glTF format.
|
||||
# https://github.com/google/draco
|
||||
|
||||
THIRDPARTY_PRODUCT("DRACO" "draco/compression/decode.h" "CSF_Draco" "")
|
@@ -191,13 +191,13 @@ foreach (LIBRARY_NAME ${CSF_FFmpeg})
|
||||
else()
|
||||
install (FILES "${3RDPARTY_FFMPEG_DLL_${LIBRARY_NAME}}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${INSTALL_DIR_BIN}")
|
||||
DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
|
||||
install (FILES "${3RDPARTY_FFMPEG_DLL_${LIBRARY_NAME}}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${INSTALL_DIR_BIN}i")
|
||||
DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
|
||||
install (FILES "${3RDPARTY_FFMPEG_DLL_${LIBRARY_NAME}}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/${INSTALL_DIR_BIN}d")
|
||||
DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(3RDPARTY_FFMPEG_LIBRARY_ABS ${3RDPARTY_FFMPEG_LIBRARY_${LIBRARY_NAME}} REALPATH)
|
||||
|
@@ -75,13 +75,6 @@ if (USE_TK)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Draco
|
||||
if (USE_DRACO)
|
||||
set (CSF_Draco "draco")
|
||||
else()
|
||||
set (CSF_Draco)
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
set (CSF_advapi32 "advapi32.lib")
|
||||
set (CSF_gdi32 "gdi32.lib")
|
||||
|
@@ -40,19 +40,6 @@ elseif (MSVC)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHa")
|
||||
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_FORCE_RelWithDebInfo)
|
||||
# generate debug info (Zi), inline expansion level (Ob1)
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi /Ob1")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi /Ob1")
|
||||
# generate debug info (debug), OptimizeReferences=true (OPT:REF), EnableCOMDATFolding=true (OPT:ICF)
|
||||
set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /debug /OPT:REF /OPT:ICF")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# remove _WINDOWS flag if it exists
|
||||
string (REGEX MATCH "/D_WINDOWS" IS_WINDOWSFLAG "${CMAKE_CXX_FLAGS}")
|
||||
if (IS_WINDOWSFLAG)
|
||||
@@ -136,9 +123,7 @@ if ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang")
|
||||
# Optimize size of binaries
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
elseif(MINGW)
|
||||
add_definitions(-D_WIN32_WINNT=0x0601)
|
||||
# _WIN32_WINNT=0x0601 (use Windows 7 SDK)
|
||||
#set (CMAKE_SYSTEM_VERSION "6.1")
|
||||
add_definitions(-D_WIN32_WINNT=0x0501)
|
||||
# workaround bugs in mingw with vtable export
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--export-all-symbols")
|
||||
|
||||
|
@@ -236,13 +236,8 @@ else()
|
||||
add_library (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RESOURCE_FILES} ${${PROJECT_NAME}_MOC_FILES})
|
||||
|
||||
if (MSVC)
|
||||
if (BUILD_FORCE_RelWithDebInfo)
|
||||
set (aReleasePdbConf "Release")
|
||||
else()
|
||||
set (aReleasePdbConf)
|
||||
endif()
|
||||
install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb
|
||||
CONFIGURATIONS Debug ${aReleasePdbConf} RelWithDebInfo
|
||||
CONFIGURATIONS Debug RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
|
||||
endif()
|
||||
|
||||
|
@@ -38,9 +38,6 @@ set (BUILD_ENABLE_FPE_SIGNAL_HANDLER_DESCR
|
||||
Corresponding environment variable (CSF_FPE) can be changed manually
|
||||
in custom.bat/sh scripts without regeneration by CMake.")
|
||||
|
||||
set (BUILD_FORCE_RelWithDebInfo_DESCR
|
||||
"Generate PDB files within normal Release build.")
|
||||
|
||||
set (BUILD_USE_PCH_DESCR
|
||||
"Use precompiled headers to accelerate the build.
|
||||
Precompiled headers are generated automatically by Cotire tool.")
|
||||
@@ -179,9 +176,6 @@ set (USE_RAPIDJSON_DESCR
|
||||
"Indicates whether RapidJSON product should be used in OCCT DataExchange
|
||||
module for support of JSON-based formats like glTF")
|
||||
|
||||
set (USE_DRACO_DESCR
|
||||
"Indicates whether Draco mesh decoding library should be used by glTF reader")
|
||||
|
||||
set (USE_EGL_DESCR
|
||||
"Indicates whether EGL should be used in OCCT visualization
|
||||
module instead of conventional OpenGL context creation APIs")
|
||||
|
421
adm/genconf.tcl
@@ -56,52 +56,36 @@ lappend ::SYS_PRJNAME_LIST "Qt Creator (.pro)"
|
||||
|
||||
set aPrjIndex [lsearch $::SYS_PRJFMT_LIST $::PRJFMT]
|
||||
set ::PRJNAME [lindex $::SYS_PRJNAME_LIST $aPrjIndex]
|
||||
set ::CONFIG "Release"
|
||||
|
||||
set SYS_VS_LIST {}
|
||||
set SYS_VC_LIST {}
|
||||
set SYS_VCVARS_LIST {}
|
||||
|
||||
# detect installed Visual Studio 2017+ instances by running vswhere.exe
|
||||
if { ! [catch {exec vswhere.exe -version "\[15.0,15.99\]" -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop -property installationPath} res] && "$res" != "" } {
|
||||
if { ! [catch {exec vswhere.exe -version "\[15.0,15.99\]" -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop -property installationPath} res] } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2017 (15, toolset v141)"
|
||||
lappend ::SYS_VC_LIST "vc141"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[15.0,15.99\]" -latest -requires Microsoft.VisualStudio.Workload.Universal -property installationPath} res] && "$res" != "" } {
|
||||
if { ! [catch {exec vswhere.exe -version "\[15.0,15.99\]" -latest -requires Microsoft.VisualStudio.Workload.Universal -property installationPath} res] } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2017 (15, toolset v141) UWP"
|
||||
lappend ::SYS_VC_LIST "vc141-uwp"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[16.0,16.99\]" -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop -property installationPath} res] && "$res" != "" } {
|
||||
if { ! [catch {exec vswhere.exe -version "\[16.0,16.99\]" -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop -property installationPath} res] } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2019 (16, toolset v142)"
|
||||
lappend ::SYS_VC_LIST "vc142"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[16.0,16.99\]" -latest -requires Microsoft.VisualStudio.Workload.Universal -property installationPath} res] && "$res" != "" } {
|
||||
if { ! [catch {exec vswhere.exe -version "\[16.0,16.99\]" -latest -requires Microsoft.VisualStudio.Workload.Universal -property installationPath} res] } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2019 (16, toolset v142) UWP"
|
||||
lappend ::SYS_VC_LIST "vc142-uwp"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[16.0,16.99\]" -latest -requires Microsoft.VisualStudio.Component.VC.ClangCL -property installationPath} res] && "$res" != "" } {
|
||||
if { ! [catch {exec vswhere.exe -version "\[16.0,16.99\]" -latest -requires Microsoft.VisualStudio.Component.VC.ClangCL -property installationPath} res] } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2019 (16, toolset ClangCL)"
|
||||
lappend ::SYS_VC_LIST "vclang"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\Auxiliary\\Build\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[17.0,17.99\]" -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop -property installationPath} res] && "$res" != "" } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2022 (17, toolset v143)"
|
||||
lappend ::SYS_VC_LIST "vc143"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[17.0,17.99\]" -latest -requires Microsoft.VisualStudio.Workload.Universal -property installationPath} res] && "$res" != "" } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2022 (17, toolset v143) UWP"
|
||||
lappend ::SYS_VC_LIST "vc143-uwp"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
}
|
||||
if { ! [catch {exec vswhere.exe -version "\[17.0,17.99\]" -latest -requires Microsoft.VisualStudio.Component.VC.ClangCL -property installationPath} res] && "$res" != "" } {
|
||||
lappend ::SYS_VS_LIST "Visual Studio 2022 (17, toolset ClangCL)"
|
||||
lappend ::SYS_VC_LIST "vclang"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
||||
lappend ::SYS_VCVARS_LIST "$res\\VC\\vcvarsall.bat"
|
||||
}
|
||||
|
||||
# detect installed Visual Studio instances from global environment
|
||||
@@ -154,13 +138,6 @@ proc wokdep:gui:Close {} {
|
||||
exit
|
||||
}
|
||||
|
||||
proc wokdep:gui:configSuffix {} {
|
||||
if { "$::CONFIG" == "Debug" } {
|
||||
return "D"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
proc wokdep:gui:SwitchConfig {} {
|
||||
set ::PRJFMT [lindex $::SYS_PRJFMT_LIST [.myFrame.myPrjFrame.myPrjCombo current]]
|
||||
set ::VCVER [lindex $::SYS_VC_LIST [.myFrame.myVsFrame.myVsCombo current]]
|
||||
@@ -171,15 +148,16 @@ proc wokdep:gui:SwitchConfig {} {
|
||||
set ::CSF_OPT_LIB64 {}
|
||||
set ::CSF_OPT_BIN32 {}
|
||||
set ::CSF_OPT_BIN64 {}
|
||||
set ::CSF_OPT_LIB32D {}
|
||||
set ::CSF_OPT_LIB64D {}
|
||||
set ::CSF_OPT_BIN32D {}
|
||||
set ::CSF_OPT_BIN64D {}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:SwitchArch {} {
|
||||
wokdep:gui:Show3264Bitness ::aRowIter
|
||||
if { "$::ARCH" == "32" } {
|
||||
wokdep:gui:Show32Bitness ::aRowIter
|
||||
}
|
||||
if { "$::ARCH" == "64" } {
|
||||
wokdep:gui:Show64Bitness ::aRowIter
|
||||
}
|
||||
|
||||
if { [llength [grid info .myFrame.mySave]] != 0 } {
|
||||
grid forget .myFrame.mySave .myFrame.myClose
|
||||
@@ -190,16 +168,6 @@ proc wokdep:gui:SwitchArch {} {
|
||||
grid .myFrame.myClose -row $::aRowIter -column 6 -columnspan 2
|
||||
}
|
||||
|
||||
# update label text and visibility
|
||||
font create wokdep:gui:EmptyFont -size -1
|
||||
proc wokdep:gui:SetLabelText {theLabel theText} {
|
||||
set aFont TkDefaultFont
|
||||
if { $theText == "" } {
|
||||
set aFont wokdep:gui:EmptyFont
|
||||
}
|
||||
$theLabel configure -text $theText -font $aFont
|
||||
}
|
||||
|
||||
proc wokdep:gui:UpdateList {} {
|
||||
set anIncErrs {}
|
||||
set anLib32Errs {}
|
||||
@@ -259,10 +227,6 @@ proc wokdep:gui:UpdateList {} {
|
||||
if { "$::HAVE_RAPIDJSON" == "true" } {
|
||||
wokdep:SearchRapidJson anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
}
|
||||
if { "$::HAVE_DRACO" == "true" } {
|
||||
set aDummy {}
|
||||
wokdep:SearchStandardLibrary anIncErrs anLib32Errs anLib64Errs aDummy aDummy "draco" "draco/compression/decode.h" "draco" {"draco"}
|
||||
}
|
||||
|
||||
if {"$::BUILD_Inspector" == "true" } {
|
||||
set ::CHECK_QT "true"
|
||||
@@ -276,28 +240,11 @@ proc wokdep:gui:UpdateList {} {
|
||||
wokdep:SearchJDK anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
}
|
||||
|
||||
wokdep:gui:SetLabelText .myFrame.myIncErrLbl [join $anIncErrs "\n"]
|
||||
|
||||
wokdep:gui:SetLabelText .myFrame.myIncErrLbl [join $anIncErrs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myLib32_ErrLbl [join $anLib32Errs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myLib64_ErrLbl [join $anLib64Errs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myBin32_ErrLbl [join $anBin32Errs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myBin64_ErrLbl [join $anBin64Errs "\n"]
|
||||
|
||||
wokdep:gui:SetLabelText .myFrame.myLib32D_ErrLbl [join $anLib32Errs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myLib64D_ErrLbl [join $anLib64Errs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myBin32D_ErrLbl [join $anBin32Errs "\n"]
|
||||
wokdep:gui:SetLabelText .myFrame.myBin64D_ErrLbl [join $anBin64Errs "\n"]
|
||||
|
||||
# merge duplicates
|
||||
set ::CSF_OPT_LIB32 [lsort -unique $::CSF_OPT_LIB32]
|
||||
set ::CSF_OPT_LIB64 [lsort -unique $::CSF_OPT_LIB64]
|
||||
set ::CSF_OPT_BIN32 [lsort -unique $::CSF_OPT_BIN32]
|
||||
set ::CSF_OPT_BIN64 [lsort -unique $::CSF_OPT_BIN64]
|
||||
set ::CSF_OPT_LIB32D [lsort -unique $::CSF_OPT_LIB32D]
|
||||
set ::CSF_OPT_LIB64D [lsort -unique $::CSF_OPT_LIB64D]
|
||||
set ::CSF_OPT_BIN32D [lsort -unique $::CSF_OPT_BIN32D]
|
||||
set ::CSF_OPT_BIN64D [lsort -unique $::CSF_OPT_BIN64D]
|
||||
.myFrame.myIncErrLbl configure -text [join $anIncErrs "\n"]
|
||||
.myFrame.myLib32ErrLbl configure -text [join $anLib32Errs "\n"]
|
||||
.myFrame.myLib64ErrLbl configure -text [join $anLib64Errs "\n"]
|
||||
.myFrame.myBin32ErrLbl configure -text [join $anBin32Errs "\n"]
|
||||
.myFrame.myBin64ErrLbl configure -text [join $anBin64Errs "\n"]
|
||||
}
|
||||
|
||||
proc wokdep:gui:BrowseVcVars {} {
|
||||
@@ -323,20 +270,34 @@ proc wokdep:gui:AddIncPath {} {
|
||||
}
|
||||
}
|
||||
|
||||
proc wokdep:gui:AddLibPath {} {
|
||||
set aCfg [wokdep:gui:configSuffix]
|
||||
proc wokdep:gui:AddLib32Path {} {
|
||||
set aResult [tk_chooseDirectory -title "Choose a directory"]
|
||||
if { "$aResult" != "" } {
|
||||
lappend ::CSF_OPT_LIB${::ARCH}${aCfg} "$aResult"
|
||||
lappend ::CSF_OPT_LIB32 "$aResult"
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
}
|
||||
|
||||
proc wokdep:gui:AddBinPath {} {
|
||||
set aCfg [wokdep:gui:configSuffix]
|
||||
proc wokdep:gui:AddLib64Path {} {
|
||||
set aResult [tk_chooseDirectory -title "Choose a directory"]
|
||||
if { "$aResult" != "" } {
|
||||
lappend ::CSF_OPT_BIN${::ARCH}${aCfg} "$aResult"
|
||||
lappend ::CSF_OPT_LIB64 "$aResult"
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
}
|
||||
|
||||
proc wokdep:gui:AddBin32Path {} {
|
||||
set aResult [tk_chooseDirectory -title "Choose a directory"]
|
||||
if { "$aResult" != "" } {
|
||||
lappend ::CSF_OPT_BIN32 "$aResult"
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
}
|
||||
|
||||
proc wokdep:gui:AddBin64Path {} {
|
||||
set aResult [tk_chooseDirectory -title "Choose a directory"]
|
||||
if { "$aResult" != "" } {
|
||||
lappend ::CSF_OPT_BIN64 "$aResult"
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
}
|
||||
@@ -349,20 +310,34 @@ proc wokdep:gui:RemoveIncPath {} {
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:RemoveLibPath {} {
|
||||
set aCfg [wokdep:gui:configSuffix]
|
||||
set aSelIndices [.myFrame.myLib${::ARCH}${aCfg}_List curselection]
|
||||
proc wokdep:gui:RemoveLib32Path {} {
|
||||
set aSelIndices [.myFrame.myLib32List curselection]
|
||||
if { [llength $aSelIndices] != 0 } {
|
||||
.myFrame.myLib${::ARCH}${aCfg}_List delete [lindex $aSelIndices 0]
|
||||
.myFrame.myLib32List delete [lindex $aSelIndices 0]
|
||||
}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:RemoveBinPath {} {
|
||||
set aCfg [wokdep:gui:configSuffix]
|
||||
set aSelIndices [.myFrame.myBin${::ARCH}${aCfg}_List curselection]
|
||||
proc wokdep:gui:RemoveLib64Path {} {
|
||||
set aSelIndices [.myFrame.myLib64List curselection]
|
||||
if { [llength $aSelIndices] != 0 } {
|
||||
.myFrame.myBin${::ARCH}${aCfg}_List delete [lindex $aSelIndices 0]
|
||||
.myFrame.myLib64List delete [lindex $aSelIndices 0]
|
||||
}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:RemoveBin32Path {} {
|
||||
set aSelIndices [.myFrame.myBin32List curselection]
|
||||
if { [llength $aSelIndices] != 0 } {
|
||||
.myFrame.myBin32List delete [lindex $aSelIndices 0]
|
||||
}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:RemoveBin64Path {} {
|
||||
set aSelIndices [.myFrame.myBin64List curselection]
|
||||
if { [llength $aSelIndices] != 0 } {
|
||||
.myFrame.myBin64List delete [lindex $aSelIndices 0]
|
||||
}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
@@ -372,73 +347,109 @@ proc wokdep:gui:ResetIncPath {} {
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:ResetLibPath {} {
|
||||
set ::CSF_OPT_LIB${::ARCH} {}
|
||||
set ::CSF_OPT_LIB${::ARCH}D {}
|
||||
set ::CSF_OPT_BIN${::ARCH} {}
|
||||
set ::CSF_OPT_BIN${::ARCH}D {}
|
||||
proc wokdep:gui:ResetLib32Path {} {
|
||||
set ::CSF_OPT_LIB32 {}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:Show3264Bitness { theRowIter } {
|
||||
proc wokdep:gui:ResetLib64Path {} {
|
||||
set ::CSF_OPT_LIB64 {}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:ResetBin32Path {} {
|
||||
set ::CSF_OPT_BIN32 {}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:ResetBin64Path {} {
|
||||
set ::CSF_OPT_BIN64 {}
|
||||
wokdep:gui:UpdateList
|
||||
}
|
||||
|
||||
proc wokdep:gui:Show32Bitness { theRowIter } {
|
||||
upvar $theRowIter aRowIter
|
||||
|
||||
set aArchOld ""
|
||||
set aCfg [wokdep:gui:configSuffix]
|
||||
if { "$::ARCH" == "32" } {
|
||||
set aArchOld "64"
|
||||
} else {
|
||||
set aArchOld "32"
|
||||
if { [llength [grid info .myFrame.myLib64Lbl]] != 0 } {
|
||||
grid forget .myFrame.myLib64Lbl .myFrame.myLib64List .myFrame.myLib64Scrl
|
||||
grid forget .myFrame.myLib64Add .myFrame.myLib64Remove .myFrame.myLib64Clear .myFrame.myLib64ErrLbl
|
||||
grid forget .myFrame.myBin64Lbl .myFrame.myBin64List .myFrame.myBin64Scrl
|
||||
grid forget .myFrame.myBin64Add .myFrame.myBin64Remove .myFrame.myBin64Clear .myFrame.myBin64ErrLbl
|
||||
}
|
||||
|
||||
set aCfgOld "D"
|
||||
if { "$::CONFIG" == "Debug" } { set aCfgOld "" }
|
||||
set aDelArch ${aArchOld}${aCfg}
|
||||
if { [llength [grid info .myFrame.myLib${aDelArch}_Lbl]] != 0 } {
|
||||
grid forget .myFrame.myLib${aDelArch}_Lbl .myFrame.myLib${aDelArch}_List .myFrame.myLib${aDelArch}_Scrl
|
||||
grid forget .myFrame.myLib${aDelArch}_Add .myFrame.myLib${aDelArch}_Remove .myFrame.myLib${aDelArch}_Clear .myFrame.myLib${aDelArch}_ErrLbl
|
||||
grid forget .myFrame.myBin${aDelArch}_Lbl .myFrame.myBin${aDelArch}_List .myFrame.myBin${aDelArch}_Scrl
|
||||
grid forget .myFrame.myBin${aDelArch}_Add .myFrame.myBin${aDelArch}_Remove .myFrame.myBin${aDelArch}_Clear .myFrame.myBin${aDelArch}_ErrLbl
|
||||
}
|
||||
set aDelCfg ${::ARCH}${aCfgOld}
|
||||
if { [llength [grid info .myFrame.myLib${aDelCfg}_Lbl]] != 0 } {
|
||||
grid forget .myFrame.myLib${aDelCfg}_Lbl .myFrame.myLib${aDelCfg}_List .myFrame.myLib${aDelCfg}_Scrl
|
||||
grid forget .myFrame.myLib${aDelCfg}_Add .myFrame.myLib${aDelCfg}_Remove .myFrame.myLib${aDelCfg}_Clear .myFrame.myLib${aDelCfg}_ErrLbl
|
||||
grid forget .myFrame.myBin${aDelCfg}_Lbl .myFrame.myBin${aDelCfg}_List .myFrame.myBin${aDelCfg}_Scrl
|
||||
grid forget .myFrame.myBin${aDelCfg}_Add .myFrame.myBin${aDelCfg}_Remove .myFrame.myBin${aDelCfg}_Clear .myFrame.myBin${aDelCfg}_ErrLbl
|
||||
}
|
||||
|
||||
set aNewCfg ${::ARCH}${aCfg}
|
||||
# Additional libraries search paths
|
||||
grid .myFrame.myLib${aNewCfg}_Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
# Additional libraries (32-bit) search paths
|
||||
grid .myFrame.myLib32Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib${aNewCfg}_List -row $aRowIter -column 0 -rowspan 4 -columnspan 5
|
||||
grid .myFrame.myLib${aNewCfg}_Scrl -row $aRowIter -column 5 -rowspan 4
|
||||
grid .myFrame.myLib${aNewCfg}_Add -row $aRowIter -column 6
|
||||
grid .myFrame.myLib32List -row $aRowIter -column 0 -rowspan 4 -columnspan 5
|
||||
grid .myFrame.myLib32Scrl -row $aRowIter -column 5 -rowspan 4
|
||||
grid .myFrame.myLib32Add -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
#grid .myFrame.myLib${aNewCfg}_Edit -row $aRowIter -column 6
|
||||
#grid .myFrame.myLib32Edit -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib${aNewCfg}_Remove -row $aRowIter -column 6
|
||||
grid .myFrame.myLib32Remove -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib${aNewCfg}_Clear -row $aRowIter -column 6
|
||||
grid .myFrame.myLib32Clear -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib${aNewCfg}_ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
grid .myFrame.myLib32ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
|
||||
# Additional executables search paths
|
||||
grid .myFrame.myBin${aNewCfg}_Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
# Additional executables (32-bit) search paths
|
||||
grid .myFrame.myBin32Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin${aNewCfg}_List -row $aRowIter -column 0 -rowspan 4 -columnspan 5
|
||||
grid .myFrame.myBin${aNewCfg}_Scrl -row $aRowIter -column 5 -rowspan 4
|
||||
grid .myFrame.myBin${aNewCfg}_Add -row $aRowIter -column 6
|
||||
grid .myFrame.myBin32List -row $aRowIter -column 0 -rowspan 4 -columnspan 5
|
||||
grid .myFrame.myBin32Scrl -row $aRowIter -column 5 -rowspan 4
|
||||
grid .myFrame.myBin32Add -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
#grid .myFrame.myBin${aNewCfg}_Edit -row $aRowIter -column 6
|
||||
#grid .myFrame.myBin32Edit -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin${aNewCfg}_Remove -row $aRowIter -column 6
|
||||
grid .myFrame.myBin32Remove -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin${aNewCfg}_Clear -row $aRowIter -column 6
|
||||
grid .myFrame.myBin32Clear -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin${aNewCfg}_ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
grid .myFrame.myBin32ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
}
|
||||
|
||||
proc wokdep:gui:Show64Bitness { theRowIter } {
|
||||
upvar $theRowIter aRowIter
|
||||
|
||||
if { [llength [grid info .myFrame.myLib32Lbl]] != 0 } {
|
||||
grid forget .myFrame.myLib32Lbl .myFrame.myLib32List .myFrame.myLib32Scrl
|
||||
grid forget .myFrame.myLib32Add .myFrame.myLib32Remove .myFrame.myLib32Clear .myFrame.myLib32ErrLbl
|
||||
grid forget .myFrame.myBin32Lbl .myFrame.myBin32List .myFrame.myBin32Scrl
|
||||
grid forget .myFrame.myBin32Add .myFrame.myBin32Remove .myFrame.myBin32Clear .myFrame.myBin32ErrLbl
|
||||
}
|
||||
|
||||
# Additional libraries (64-bit) search paths
|
||||
grid .myFrame.myLib64Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib64List -row $aRowIter -column 0 -rowspan 4 -columnspan 5
|
||||
grid .myFrame.myLib64Scrl -row $aRowIter -column 5 -rowspan 4
|
||||
grid .myFrame.myLib64Add -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
#grid .myFrame.myLib64Edit -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib64Remove -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib64Clear -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myLib64ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
|
||||
# Additional executables (64-bit) search paths
|
||||
grid .myFrame.myBin64Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin64List -row $aRowIter -column 0 -rowspan 4 -columnspan 5
|
||||
grid .myFrame.myBin64Scrl -row $aRowIter -column 5 -rowspan 4
|
||||
grid .myFrame.myBin64Add -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
#grid .myFrame.myBin64Edit -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin64Remove -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin64Clear -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
grid .myFrame.myBin64ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
}
|
||||
|
||||
@@ -448,7 +459,6 @@ ttk::combobox .myFrame.myPrjFrame.myPrjCombo -values $SYS_PRJNAME_LIST -state
|
||||
ttk::label .myFrame.myVsFrame.myVsLbl -text "Visual Studio configuration:" -padding {5 5 20 5}
|
||||
ttk::combobox .myFrame.myVsFrame.myVsCombo -values $SYS_VS_LIST -state readonly -textvariable VSVER -width 40
|
||||
ttk::combobox .myFrame.myVsFrame.myArchCombo -values { {32} {64} } -textvariable ARCH -state readonly -width 6
|
||||
ttk::combobox .myFrame.myVsFrame.myConfigCombo -values { {Release} {Debug} } -textvariable CONFIG -state readonly -width 6
|
||||
entry .myFrame.myVcEntry -textvariable VCVER -width 10
|
||||
entry .myFrame.myVcVarsEntry -textvariable VCVARS -width 70
|
||||
ttk::button .myFrame.myVcBrowseBtn -text "Browse" -command wokdep:gui:BrowseVcVars
|
||||
@@ -485,8 +495,6 @@ ttk::label .myFrame.myChecks.myFFmpegLbl -text "Use FFmpeg"
|
||||
#ttk::label .myFrame.myChecks.myOpenClLbl -text "Use OpenCL"
|
||||
checkbutton .myFrame.myChecks.myRapidJsonCheck -offvalue "false" -onvalue "true" -variable HAVE_RAPIDJSON -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myRapidJsonLbl -text "Use RapidJSON"
|
||||
checkbutton .myFrame.myChecks.myDracoCheck -offvalue "false" -onvalue "true" -variable HAVE_DRACO -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myDracoLbl -text "Use Draco"
|
||||
|
||||
checkbutton .myFrame.myChecks.myXLibCheck -offvalue "false" -onvalue "true" -variable HAVE_XLIB
|
||||
ttk::label .myFrame.myChecks.myXLibLbl -text "Use X11 for windows drawing"
|
||||
@@ -521,84 +529,44 @@ ttk::button .myFrame.myIncClear -text "Reset" -command wokdep:gui:ResetIncP
|
||||
ttk::label .myFrame.myIncErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional libraries (32-bit) search paths
|
||||
ttk::label .myFrame.myLib32_Lbl -text "Additional libraries (32-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myLib32_Scrl -command ".myFrame.myLib32_List yview"
|
||||
listbox .myFrame.myLib32_List -listvariable CSF_OPT_LIB32 -width 80 -height 5 -yscrollcommand ".myFrame.myLib32_Scrl set"
|
||||
ttk::button .myFrame.myLib32_Add -text "Add" -command wokdep:gui:AddLibPath
|
||||
ttk::button .myFrame.myLib32_Edit -text "Edit"
|
||||
ttk::button .myFrame.myLib32_Remove -text "Remove" -command wokdep:gui:RemoveLibPath
|
||||
ttk::button .myFrame.myLib32_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myLib32_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional debug libraries (32-bit) search paths
|
||||
ttk::label .myFrame.myLib32D_Lbl -text "Additional debug libraries (32-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myLib32D_Scrl -command ".myFrame.myLib32D_List yview"
|
||||
listbox .myFrame.myLib32D_List -listvariable CSF_OPT_LIB32D -width 80 -height 5 -yscrollcommand ".myFrame.myLib32D_Scrl set"
|
||||
ttk::button .myFrame.myLib32D_Add -text "Add" -command wokdep:gui:AddLibPath
|
||||
ttk::button .myFrame.myLib32D_Edit -text "Edit"
|
||||
ttk::button .myFrame.myLib32D_Remove -text "Remove" -command wokdep:gui:RemoveLibPath
|
||||
ttk::button .myFrame.myLib32D_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myLib32D_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
ttk::label .myFrame.myLib32Lbl -text "Additional libraries (32-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myLib32Scrl -command ".myFrame.myLib32List yview"
|
||||
listbox .myFrame.myLib32List -listvariable CSF_OPT_LIB32 -width 80 -height 5 -yscrollcommand ".myFrame.myLib32Scrl set"
|
||||
ttk::button .myFrame.myLib32Add -text "Add" -command wokdep:gui:AddLib32Path
|
||||
ttk::button .myFrame.myLib32Edit -text "Edit"
|
||||
ttk::button .myFrame.myLib32Remove -text "Remove" -command wokdep:gui:RemoveLib32Path
|
||||
ttk::button .myFrame.myLib32Clear -text "Reset" -command wokdep:gui:ResetLib32Path
|
||||
ttk::label .myFrame.myLib32ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional libraries (64-bit) search paths
|
||||
ttk::label .myFrame.myLib64_Lbl -text "Additional libraries (64-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myLib64_Scrl -command ".myFrame.myLib64_List yview"
|
||||
listbox .myFrame.myLib64_List -listvariable CSF_OPT_LIB64 -width 80 -height 5 -yscrollcommand ".myFrame.myLib64_Scrl set"
|
||||
ttk::button .myFrame.myLib64_Add -text "Add" -command wokdep:gui:AddLibPath
|
||||
ttk::button .myFrame.myLib64_Edit -text "Edit"
|
||||
ttk::button .myFrame.myLib64_Remove -text "Remove" -command wokdep:gui:RemoveLibPath
|
||||
ttk::button .myFrame.myLib64_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myLib64_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional debug libraries (64-bit) search paths
|
||||
ttk::label .myFrame.myLib64D_Lbl -text "Additional debug libraries (64-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myLib64D_Scrl -command ".myFrame.myLib64D_List yview"
|
||||
listbox .myFrame.myLib64D_List -listvariable CSF_OPT_LIB64D -width 80 -height 5 -yscrollcommand ".myFrame.myLib64D_Scrl set"
|
||||
ttk::button .myFrame.myLib64D_Add -text "Add" -command wokdep:gui:AddLibPath
|
||||
ttk::button .myFrame.myLib64D_Edit -text "Edit"
|
||||
ttk::button .myFrame.myLib64D_Remove -text "Remove" -command wokdep:gui:RemoveLibPath
|
||||
ttk::button .myFrame.myLib64D_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myLib64D_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
ttk::label .myFrame.myLib64Lbl -text "Additional libraries (64-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myLib64Scrl -command ".myFrame.myLib64List yview"
|
||||
listbox .myFrame.myLib64List -listvariable CSF_OPT_LIB64 -width 80 -height 5 -yscrollcommand ".myFrame.myLib64Scrl set"
|
||||
ttk::button .myFrame.myLib64Add -text "Add" -command wokdep:gui:AddLib64Path
|
||||
ttk::button .myFrame.myLib64Edit -text "Edit"
|
||||
ttk::button .myFrame.myLib64Remove -text "Remove" -command wokdep:gui:RemoveLib64Path
|
||||
ttk::button .myFrame.myLib64Clear -text "Reset" -command wokdep:gui:ResetLib64Path
|
||||
ttk::label .myFrame.myLib64ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional executables (32-bit) search paths
|
||||
ttk::label .myFrame.myBin32_Lbl -text "Additional executables (32-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myBin32_Scrl -command ".myFrame.myBin32_List yview"
|
||||
listbox .myFrame.myBin32_List -listvariable CSF_OPT_BIN32 -width 80 -height 5 -yscrollcommand ".myFrame.myBin32_Scrl set"
|
||||
ttk::button .myFrame.myBin32_Add -text "Add" -command wokdep:gui:AddBinPath
|
||||
ttk::button .myFrame.myBin32_Edit -text "Edit"
|
||||
ttk::button .myFrame.myBin32_Remove -text "Remove" -command wokdep:gui:RemoveBinPath
|
||||
ttk::button .myFrame.myBin32_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myBin32_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional debug executables (32-bit) search paths
|
||||
ttk::label .myFrame.myBin32D_Lbl -text "Additional debug executables (32-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myBin32D_Scrl -command ".myFrame.myBin32D_List yview"
|
||||
listbox .myFrame.myBin32D_List -listvariable CSF_OPT_BIN32D -width 80 -height 5 -yscrollcommand ".myFrame.myBin32D_Scrl set"
|
||||
ttk::button .myFrame.myBin32D_Add -text "Add" -command wokdep:gui:AddBinPath
|
||||
ttk::button .myFrame.myBin32D_Edit -text "Edit"
|
||||
ttk::button .myFrame.myBin32D_Remove -text "Remove" -command wokdep:gui:RemoveBinPath
|
||||
ttk::button .myFrame.myBin32D_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myBin32D_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
ttk::label .myFrame.myBin32Lbl -text "Additional executables (32-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myBin32Scrl -command ".myFrame.myBin32List yview"
|
||||
listbox .myFrame.myBin32List -listvariable CSF_OPT_BIN32 -width 80 -height 5 -yscrollcommand ".myFrame.myBin32Scrl set"
|
||||
ttk::button .myFrame.myBin32Add -text "Add" -command wokdep:gui:AddBin32Path
|
||||
ttk::button .myFrame.myBin32Edit -text "Edit"
|
||||
ttk::button .myFrame.myBin32Remove -text "Remove" -command wokdep:gui:RemoveBin32Path
|
||||
ttk::button .myFrame.myBin32Clear -text "Reset" -command wokdep:gui:ResetBin32Path
|
||||
ttk::label .myFrame.myBin32ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional executables (64-bit) search paths
|
||||
ttk::label .myFrame.myBin64_Lbl -text "Additional executables (64-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myBin64_Scrl -command ".myFrame.myBin64_List yview"
|
||||
listbox .myFrame.myBin64_List -listvariable CSF_OPT_BIN64 -width 80 -height 5 -yscrollcommand ".myFrame.myBin64_Scrl set"
|
||||
ttk::button .myFrame.myBin64_Add -text "Add" -command wokdep:gui:AddBinPath
|
||||
ttk::button .myFrame.myBin64_Edit -text "Edit"
|
||||
ttk::button .myFrame.myBin64_Remove -text "Remove" -command wokdep:gui:RemoveBinPath
|
||||
ttk::button .myFrame.myBin64_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myBin64_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Additional debug executables (64-bit) search paths
|
||||
ttk::label .myFrame.myBin64D_Lbl -text "Additional debug executables (64-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myBin64D_Scrl -command ".myFrame.myBin64D_List yview"
|
||||
listbox .myFrame.myBin64D_List -listvariable CSF_OPT_BIN64D -width 80 -height 5 -yscrollcommand ".myFrame.myBin64D_Scrl set"
|
||||
ttk::button .myFrame.myBin64D_Add -text "Add" -command wokdep:gui:AddBinPath
|
||||
ttk::button .myFrame.myBin64D_Edit -text "Edit"
|
||||
ttk::button .myFrame.myBin64D_Remove -text "Remove" -command wokdep:gui:RemoveBinPath
|
||||
ttk::button .myFrame.myBin64D_Clear -text "Reset" -command wokdep:gui:ResetLibPath
|
||||
ttk::label .myFrame.myBin64D_ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
ttk::label .myFrame.myBin64Lbl -text "Additional executables (64-bit) search paths:" -padding {5 5 80 5}
|
||||
scrollbar .myFrame.myBin64Scrl -command ".myFrame.myBin64List yview"
|
||||
listbox .myFrame.myBin64List -listvariable CSF_OPT_BIN64 -width 80 -height 5 -yscrollcommand ".myFrame.myBin64Scrl set"
|
||||
ttk::button .myFrame.myBin64Add -text "Add" -command wokdep:gui:AddBin64Path
|
||||
ttk::button .myFrame.myBin64Edit -text "Edit"
|
||||
ttk::button .myFrame.myBin64Remove -text "Remove" -command wokdep:gui:RemoveBin64Path
|
||||
ttk::button .myFrame.myBin64Clear -text "Reset" -command wokdep:gui:ResetBin64Path
|
||||
ttk::label .myFrame.myBin64ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
|
||||
|
||||
# Bottom
|
||||
ttk::button .myFrame.mySave -text "Save" -command wokdep:SaveCustom
|
||||
@@ -609,22 +577,17 @@ ttk::button .myFrame.myClose -text "Close" -command wokdep:gui:Close
|
||||
grid .myFrame.myPrjFrame -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
grid .myFrame.myPrjFrame.myPrjLbl -row 0 -column 0
|
||||
grid .myFrame.myPrjFrame.myPrjCombo -row 0 -column 1
|
||||
incr aRowIter
|
||||
if { "$tcl_platform(platform)" == "windows" } {
|
||||
incr aRowIter
|
||||
grid .myFrame.myVsFrame -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
grid .myFrame.myVsFrame.myVsLbl -row 0 -column 0
|
||||
grid .myFrame.myVsFrame.myVsCombo -row 0 -column 1 -padx 5
|
||||
grid .myFrame.myVsFrame.myArchCombo -row 0 -column 2
|
||||
grid .myFrame.myVsFrame.myConfigCombo -row 0 -column 3
|
||||
incr aRowIter
|
||||
grid .myFrame.myVcEntry -row $aRowIter -column 0
|
||||
grid .myFrame.myVcVarsEntry -row $aRowIter -column 1 -columnspan 4 -sticky w
|
||||
grid .myFrame.myVcBrowseBtn -row $aRowIter -column 6
|
||||
incr aRowIter
|
||||
} else {
|
||||
grid .myFrame.myVsFrame -row $aRowIter -column 4 -sticky w
|
||||
grid .myFrame.myVsFrame.myConfigCombo -row 0 -column 0
|
||||
incr aRowIter
|
||||
}
|
||||
|
||||
#
|
||||
@@ -664,9 +627,8 @@ grid .myFrame.myChecks.myQtLbl -row $aCheckRowIter -column 13 -sticky w
|
||||
incr aCheckRowIter
|
||||
grid .myFrame.myChecks.myFImageCheck -row $aCheckRowIter -column 0 -sticky e
|
||||
grid .myFrame.myChecks.myFImageLbl -row $aCheckRowIter -column 1 -sticky w
|
||||
grid .myFrame.myChecks.myDracoCheck -row $aCheckRowIter -column 2 -sticky e
|
||||
grid .myFrame.myChecks.myDracoLbl -row $aCheckRowIter -column 3 -sticky w
|
||||
|
||||
grid .myFrame.myChecks.myTbbCheck -row $aCheckRowIter -column 2 -sticky e
|
||||
grid .myFrame.myChecks.myTbbLbl -row $aCheckRowIter -column 3 -sticky w
|
||||
if { "$::tcl_platform(platform)" == "windows" } {
|
||||
grid .myFrame.myChecks.myD3dCheck -row $aCheckRowIter -column 4 -sticky e
|
||||
grid .myFrame.myChecks.myD3dLbl -row $aCheckRowIter -column 5 -sticky w
|
||||
@@ -696,11 +658,6 @@ if { "$::tcl_platform(platform)" == "windows" } {
|
||||
|
||||
incr aCheckRowIter
|
||||
|
||||
grid .myFrame.myChecks.myTbbCheck -row $aCheckRowIter -column 12 -sticky e
|
||||
grid .myFrame.myChecks.myTbbLbl -row $aCheckRowIter -column 13 -sticky w
|
||||
|
||||
incr aCheckRowIter
|
||||
|
||||
# Additional headers search paths
|
||||
grid .myFrame.myIncLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
@@ -717,8 +674,15 @@ incr aRowIter
|
||||
grid .myFrame.myIncErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
|
||||
incr aRowIter
|
||||
|
||||
# Additional search paths
|
||||
wokdep:gui:Show3264Bitness aRowIter
|
||||
# Additional 32-bit search paths
|
||||
if { "$ARCH" == "32" } {
|
||||
wokdep:gui:Show32Bitness aRowIter
|
||||
}
|
||||
|
||||
# Additional 64-bit search paths
|
||||
if { "$ARCH" == "64" } {
|
||||
wokdep:gui:Show64Bitness aRowIter
|
||||
}
|
||||
|
||||
# Bottom section
|
||||
grid .myFrame.mySave -row $aRowIter -column 4 -columnspan 2
|
||||
@@ -734,9 +698,6 @@ bind .myFrame.myVsFrame.myVsCombo <<ComboboxSelected>> {
|
||||
bind .myFrame.myVsFrame.myArchCombo <<ComboboxSelected>> {
|
||||
wokdep:gui:SwitchArch
|
||||
}
|
||||
bind .myFrame.myVsFrame.myConfigCombo <<ComboboxSelected>> {
|
||||
wokdep:gui:SwitchArch
|
||||
}
|
||||
|
||||
.myFrame.mySrchEntry configure -validate all -validatecommand {
|
||||
set ::PRODUCTS_PATH [file normalize "$::PRODUCTS_PATH_INPUT"]
|
||||
|
@@ -52,10 +52,6 @@ set CSF_OPT_LIB32 [list]
|
||||
set CSF_OPT_LIB64 [list]
|
||||
set CSF_OPT_BIN32 [list]
|
||||
set CSF_OPT_BIN64 [list]
|
||||
set CSF_OPT_LIB32D [list]
|
||||
set CSF_OPT_LIB64D [list]
|
||||
set CSF_OPT_BIN32D [list]
|
||||
set CSF_OPT_BIN64D [list]
|
||||
|
||||
if { "$tcl_platform(pointerSize)" == "4" } {
|
||||
set ARCH "32"
|
||||
@@ -72,10 +68,7 @@ if { [info exists ::env(SHORTCUT_HEADERS)] } {
|
||||
}
|
||||
|
||||
# fetch environment variables (e.g. set by custom.sh or custom.bat) and set them as tcl variables with the same name
|
||||
set THE_ENV_VARIABLES { HAVE_TK HAVE_FREETYPE HAVE_FREEIMAGE HAVE_FFMPEG HAVE_TBB HAVE_GLES2 HAVE_D3D HAVE_VTK \
|
||||
HAVE_ZLIB HAVE_LIBLZMA HAVE_E57 HAVE_RAPIDJSON HAVE_DRACO HAVE_OPENVR HAVE_OPENCL \
|
||||
CHECK_QT4 CHECK_JDK HAVE_XLIB \
|
||||
HAVE_RelWithDebInfo BUILD_Inspector }
|
||||
set THE_ENV_VARIABLES {HAVE_TK HAVE_FREETYPE HAVE_FREEIMAGE HAVE_FFMPEG HAVE_TBB HAVE_GLES2 HAVE_D3D HAVE_VTK HAVE_ZLIB HAVE_LIBLZMA HAVE_E57 HAVE_RAPIDJSON HAVE_OPENVR HAVE_OPENCL CHECK_QT4 CHECK_JDK HAVE_XLIB HAVE_RelWithDebInfo BUILD_Inspector}
|
||||
foreach anEnvIter $THE_ENV_VARIABLES { set ${anEnvIter} "false" }
|
||||
set HAVE_TK "true"
|
||||
set HAVE_FREETYPE "true"
|
||||
@@ -120,35 +113,6 @@ if { [info exists ::env(CSF_OPT_BIN64)] } {
|
||||
set CSF_OPT_BIN64 [split "$::env(CSF_OPT_BIN64)" $::SYS_PATH_SPLITTER]
|
||||
}
|
||||
|
||||
if { [info exists ::env(CSF_OPT_LIB32D)] } {
|
||||
set CSF_OPT_LIB32D [split "$::env(CSF_OPT_LIB32D)" $::SYS_PATH_SPLITTER]
|
||||
foreach aLibIter $::CSF_OPT_LIB32 {
|
||||
set aPos [lsearch -exact $::CSF_OPT_LIB32D $aLibIter]
|
||||
set ::CSF_OPT_LIB32D [lreplace $::CSF_OPT_LIB32D $aPos $aPos]
|
||||
}
|
||||
}
|
||||
if { [info exists ::env(CSF_OPT_LIB64D)] } {
|
||||
set CSF_OPT_LIB64D [split "$::env(CSF_OPT_LIB64D)" $::SYS_PATH_SPLITTER]
|
||||
foreach aLibIter $::CSF_OPT_LIB64 {
|
||||
set aPos [lsearch -exact $::CSF_OPT_LIB64D $aLibIter]
|
||||
set ::CSF_OPT_LIB64D [lreplace $::CSF_OPT_LIB64D $aPos $aPos]
|
||||
}
|
||||
}
|
||||
if { [info exists ::env(CSF_OPT_BIN32D)] } {
|
||||
set CSF_OPT_BIN32D [split "$::env(CSF_OPT_BIN32D)" $::SYS_PATH_SPLITTER]
|
||||
foreach aLibIter $::CSF_OPT_BIN32 {
|
||||
set aPos [lsearch -exact $::CSF_OPT_BIN32D $aLibIter]
|
||||
set ::CSF_OPT_BIN32D [lreplace $::CSF_OPT_BIN32D $aPos $aPos]
|
||||
}
|
||||
}
|
||||
if { [info exists ::env(CSF_OPT_BIN64D)] } {
|
||||
set CSF_OPT_BIN64D [split "$::env(CSF_OPT_BIN64D)" $::SYS_PATH_SPLITTER]
|
||||
foreach aLibIter $::CSF_OPT_BIN64 {
|
||||
set aPos [lsearch -exact $::CSF_OPT_BIN64D $aLibIter]
|
||||
set ::CSF_OPT_BIN64D [lreplace $::CSF_OPT_BIN64D $aPos $aPos]
|
||||
}
|
||||
}
|
||||
|
||||
# Search header file in $::CSF_OPT_INC and standard paths
|
||||
proc wokdep:SearchHeader {theHeader} {
|
||||
# search in custom paths
|
||||
@@ -349,12 +313,6 @@ proc wokdep:SearchStandardLibrary {theErrInc theErrLib32 theErrLib64 theErrBin32
|
||||
lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
|
||||
set hasLib true
|
||||
|
||||
set aLibDPath [wokdep:SearchLib "$theCheckLib" "$anArchIter" "$aPath/libd"]
|
||||
if { "$aLibDPath" != "" } {
|
||||
lappend ::CSF_OPT_LIB${anArchIter}D "$aPath/libd"
|
||||
lappend ::CSF_OPT_BIN${anArchIter}D "$aPath/bind"
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -1326,18 +1284,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "rem Additional libraries (32-bit) search paths"
|
||||
puts $aFile "set \"CSF_OPT_LIB32=$aStringLib32\""
|
||||
|
||||
set aStringLib32d [join $::CSF_OPT_LIB32D $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringLib32d [regsub -all "$::PRODUCTS_PATH" $aStringLib32d "%PRODUCTS_PATH%"]
|
||||
}
|
||||
puts $aFile ""
|
||||
puts $aFile "rem Additional debug libraries (32-bit) search paths"
|
||||
if { "$aStringLib32d" != "" && "$aStringLib32" != "" } {
|
||||
puts $aFile "set \"CSF_OPT_LIB32D=$aStringLib32d;%CSF_OPT_LIB32%\""
|
||||
} else {
|
||||
puts $aFile "set \"CSF_OPT_LIB32D=$aStringLib32d\""
|
||||
}
|
||||
|
||||
set aStringLib64 [join $::CSF_OPT_LIB64 $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringLib64 [regsub -all "$::PRODUCTS_PATH" $aStringLib64 "%PRODUCTS_PATH%"]
|
||||
@@ -1346,18 +1292,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "rem Additional libraries (64-bit) search paths"
|
||||
puts $aFile "set \"CSF_OPT_LIB64=$aStringLib64\""
|
||||
|
||||
set aStringLib64d [join $::CSF_OPT_LIB64D $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringLib64d [regsub -all "$::PRODUCTS_PATH" $aStringLib64d "%PRODUCTS_PATH%"]
|
||||
}
|
||||
puts $aFile ""
|
||||
puts $aFile "rem Additional debug libraries (64-bit) search paths"
|
||||
if { "$aStringLib64d" != "" && "$aStringLib64" != "" } {
|
||||
puts $aFile "set \"CSF_OPT_LIB64D=$aStringLib64d;%CSF_OPT_LIB64%\""
|
||||
} else {
|
||||
puts $aFile "set \"CSF_OPT_LIB64D=$aStringLib64d\""
|
||||
}
|
||||
|
||||
set aStringBin32 [join $::CSF_OPT_BIN32 $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringBin32 [regsub -all "$::PRODUCTS_PATH" $aStringBin32 "%PRODUCTS_PATH%"]
|
||||
@@ -1366,18 +1300,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "rem Additional (32-bit) search paths"
|
||||
puts $aFile "set \"CSF_OPT_BIN32=$aStringBin32\""
|
||||
|
||||
set aStringBin32d [join $::CSF_OPT_BIN32D $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringBin32d [regsub -all "$::PRODUCTS_PATH" $aStringBin32d "%PRODUCTS_PATH%"]
|
||||
}
|
||||
puts $aFile ""
|
||||
puts $aFile "rem Additional debug (32-bit) search paths"
|
||||
if { "$aStringBin32d" != "" && "$aStringBin32" != "" } {
|
||||
puts $aFile "set \"CSF_OPT_BIN32D=$aStringBin32d;%CSF_OPT_BIN32%\""
|
||||
} else {
|
||||
puts $aFile "set \"CSF_OPT_BIN32D=$aStringBin32d\""
|
||||
}
|
||||
|
||||
set aStringBin64 [join $::CSF_OPT_BIN64 $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringBin64 [regsub -all "$::PRODUCTS_PATH" $aStringBin64 "%PRODUCTS_PATH%"]
|
||||
@@ -1386,18 +1308,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "rem Additional (64-bit) search paths"
|
||||
puts $aFile "set \"CSF_OPT_BIN64=$aStringBin64\""
|
||||
|
||||
set aStringBin64d [join $::CSF_OPT_BIN64D $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringBin64d [regsub -all "$::PRODUCTS_PATH" $aStringBin64d "%PRODUCTS_PATH%"]
|
||||
}
|
||||
puts $aFile ""
|
||||
puts $aFile "rem Additional debug (64-bit) search paths"
|
||||
if { "$aStringBin64d" != "" && "$aStringBin64" != "" } {
|
||||
puts $aFile "set \"CSF_OPT_BIN64D=$aStringBin64d;%CSF_OPT_BIN64%\""
|
||||
} else {
|
||||
puts $aFile "set \"CSF_OPT_BIN64D=$aStringBin64d\""
|
||||
}
|
||||
|
||||
close $aFile
|
||||
} else {
|
||||
set aCustomFilePath "./custom.sh"
|
||||
@@ -1439,18 +1349,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "# Additional libraries ($::ARCH-bit) search paths"
|
||||
puts $aFile "export CSF_OPT_LIB$::ARCH=\"[set aStringLib]\""
|
||||
|
||||
set aStringLibD [join [set ::CSF_OPT_LIB${::ARCH}D] $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringLibD [regsub -all "$::PRODUCTS_PATH" $aStringLibD "\${PRODUCTS_PATH}"]
|
||||
}
|
||||
puts $aFile ""
|
||||
puts $aFile "# Additional debug libraries ($::ARCH-bit) search paths"
|
||||
if { "$aStringLibD" != "" && "$aStringLib" != "" } {
|
||||
puts $aFile "export CSF_OPT_LIB${::ARCH}D=\"[set aStringLibD]:\$CSF_OPT_LIB${::ARCH}\""
|
||||
} else {
|
||||
puts $aFile "export CSF_OPT_LIB${::ARCH}D=\"[set aStringLibD]\""
|
||||
}
|
||||
|
||||
set aStringBin [join [set ::CSF_OPT_BIN$::ARCH] $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringBin [regsub -all "$::PRODUCTS_PATH" $aStringBin "\${PRODUCTS_PATH}"]
|
||||
@@ -1459,18 +1357,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "# Additional ($::ARCH-bit) search paths"
|
||||
puts $aFile "export CSF_OPT_BIN$::ARCH=\"[set aStringBin]\""
|
||||
|
||||
set aStringBinD [join [set ::CSF_OPT_BIN${::ARCH}D] $::SYS_PATH_SPLITTER]
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aStringBinD [regsub -all "$::PRODUCTS_PATH" $aStringBinD "\${PRODUCTS_PATH}"]
|
||||
}
|
||||
puts $aFile ""
|
||||
puts $aFile "# Additional debug ($::ARCH-bit) search paths"
|
||||
if { "$aStringBinD" != "" && "$aStringBin" != "" } {
|
||||
puts $aFile "export CSF_OPT_BIN${::ARCH}D=\"[set aStringBinD]:\$CSF_OPT_BIN${::ARCH}\""
|
||||
} else {
|
||||
puts $aFile "export CSF_OPT_BIN${::ARCH}D=\"[set aStringBinD]\""
|
||||
}
|
||||
|
||||
close $aFile
|
||||
}
|
||||
puts "Configuration saved to file '$aCustomFilePath'"
|
||||
@@ -1508,27 +1394,6 @@ proc wokdep:SaveCustom {} {
|
||||
puts $aFile "INCLUDEPATH += \"${anIncPath}\""
|
||||
}
|
||||
|
||||
puts $aFile ""
|
||||
puts $aFile "CONFIG(debug, debug|release) {"
|
||||
puts $aFile " # Additional debug libraries search paths"
|
||||
foreach aLibPath [set ::CSF_OPT_LIB${::ARCH}D] {
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aLibPath [regsub -all "$::PRODUCTS_PATH" $aLibPath "\$\$\{PRODUCTS_PATH\}"]
|
||||
}
|
||||
puts $aFile " LIBS += -L\"${aLibPath}\""
|
||||
}
|
||||
if { "$::tcl_platform(platform)" == "windows" } {
|
||||
puts $aFile ""
|
||||
puts $aFile " # Additional debug DLLs search paths"
|
||||
foreach aDllPath [set ::CSF_OPT_BIN${::ARCH}D] {
|
||||
if { "$::PRODUCTS_PATH" != "" } {
|
||||
set aDllPath [regsub -all "$::PRODUCTS_PATH" $aDllPath "\$\$\{PRODUCTS_PATH\}"]
|
||||
}
|
||||
puts $aFile " LIBS += -L\"${aDllPath}\""
|
||||
}
|
||||
}
|
||||
puts $aFile "}"
|
||||
|
||||
puts $aFile ""
|
||||
puts $aFile "# Additional libraries search paths"
|
||||
foreach aLibPath [set ::CSF_OPT_LIB$::ARCH] {
|
||||
|
@@ -260,7 +260,7 @@ proc genAllResources { theSrcDir } {
|
||||
|
||||
# Wrapper-function to generate VS project files
|
||||
proc genproj {theFormat args} {
|
||||
set aSupportedFormats { "vc7" "vc8" "vc9" "vc10" "vc11" "vc12" "vc14" "vc141" "vc142" "vc143" "vclang" "cbp" "xcd" "pro"}
|
||||
set aSupportedFormats { "vc7" "vc8" "vc9" "vc10" "vc11" "vc12" "vc14" "vc141" "vc142" "vclang" "cbp" "xcd" "pro"}
|
||||
set aSupportedPlatforms { "wnt" "uwp" "lin" "mac" "ios" "qnx" }
|
||||
set isHelpRequire false
|
||||
|
||||
@@ -324,7 +324,6 @@ proc genproj {theFormat args} {
|
||||
vc14 - Visual Studio 2015
|
||||
vc141 - Visual Studio 2017
|
||||
vc142 - Visual Studio 2019
|
||||
vc143 - Visual Studio 2022
|
||||
vclang - Visual Studio with ClangCL toolset
|
||||
cbp - CodeBlocks
|
||||
xcd - XCode
|
||||
@@ -561,7 +560,6 @@ proc OS:MKPRC { theOutDir theFormat theLibType thePlatform theCmpl theSolution }
|
||||
"vc14" -
|
||||
"vc141" -
|
||||
"vc142" -
|
||||
"vc143" -
|
||||
"vclang" { OS:MKVC $anOutDir $aModules $aTools $theSolution $theFormat $isUWP}
|
||||
"cbp" { OS:MKCBP $anOutDir $aModules $theSolution $thePlatform $theCmpl }
|
||||
"xcd" {
|
||||
@@ -1016,8 +1014,8 @@ proc osutils:vcsolution:header { vcversion } {
|
||||
append var \
|
||||
"Microsoft Visual Studio Solution File, Format Version 12.00\n" \
|
||||
"# Visual Studio 2013\n"
|
||||
} elseif { "$vcversion" == "vc14" || "$vcversion" == "vc141" ||
|
||||
"$vcversion" == "vc142" || "$vcversion" == "vc143" || "$vcversion" == "vclang" } {
|
||||
} elseif { "$vcversion" == "vc14" || "$vcversion" == "vc141" ||
|
||||
"$vcversion" == "vc142" || "$vcversion" == "vclang" } {
|
||||
append var \
|
||||
"Microsoft Visual Studio Solution File, Format Version 12.00\n" \
|
||||
"# Visual Studio 14\n"
|
||||
@@ -1292,9 +1290,6 @@ proc osutils:vcproj:readtemplate {theVcVer isUWP isExec} {
|
||||
} elseif { $theVcVer == "vc142" } {
|
||||
set aVCRTVer "vc14"
|
||||
set aToolset "v142"
|
||||
} elseif { $theVcVer == "vc143" } {
|
||||
set aVCRTVer "vc14"
|
||||
set aToolset "v143"
|
||||
} elseif { $theVcVer == "vclang" } {
|
||||
set aVCRTVer "vc14"
|
||||
set aToolset "ClangCL"
|
||||
@@ -1452,9 +1447,6 @@ proc osutils:csfList { theOS theCsfLibsMap theCsfFrmsMap theRelease} {
|
||||
if { "$::HAVE_LIBLZMA" == "true" } {
|
||||
set aLibsMap(CSF_LIBLZMA) "liblzma"
|
||||
}
|
||||
if { "$::HAVE_DRACO" == "true" } {
|
||||
set aLibsMap(CSF_Draco) "draco"
|
||||
}
|
||||
if { "$::HAVE_OPENVR" == "true" } {
|
||||
set aLibsMap(CSF_OpenVR) "openvr_api"
|
||||
}
|
||||
|
@@ -43,15 +43,15 @@ win32 {
|
||||
QMAKE_CXXFLAGS += -fexceptions
|
||||
QMAKE_CXXFLAGS += -fvisibility=default
|
||||
DEFINES += OCC_CONVERT_SIGNALS
|
||||
gcc {
|
||||
QMAKE_LFLAGS += -Wl,-z,defs
|
||||
}
|
||||
mac {
|
||||
iphoneos {
|
||||
QMAKE_IOS_DEPLOYMENT_TARGET = 8.0
|
||||
} else {
|
||||
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.14
|
||||
}
|
||||
} else:gcc {
|
||||
# ask linker to report missing library dependencies
|
||||
QMAKE_LFLAGS += -Wl,-z,defs
|
||||
}
|
||||
}
|
||||
!CONFIG(debug, debug|release) {
|
||||
|
@@ -13,7 +13,6 @@ rem Paths to 3rd-party tools and libraries
|
||||
set "anNdkPath="
|
||||
set "aFreeType="
|
||||
set "aRapidJson="
|
||||
set "aDraco="
|
||||
|
||||
rem Build stages to perform
|
||||
set "toCMake=1"
|
||||
@@ -35,9 +34,7 @@ set "BUILD_ApplicationFramework=ON"
|
||||
set "BUILD_DataExchange=ON"
|
||||
|
||||
rem Optional 3rd-party libraries to enable
|
||||
set "USE_FREETYPE=ON"
|
||||
set "USE_RAPIDJSON=OFF"
|
||||
set "USE_DRACO=OFF"
|
||||
|
||||
rem Archive tool
|
||||
set "THE_7Z_PARAMS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
|
||||
@@ -141,9 +138,6 @@ echo Start building OCCT for %aPlatformAndCompiler%, API level %anApi%>> %aLogFi
|
||||
|
||||
pushd "%aWorkDir%"
|
||||
|
||||
set "aFreeTypeLibName=libfreetype.so"
|
||||
if exist "%aFreeType%/libs/%anAbi%/libfreetype.a" ( set "aFreeTypeLibName=libfreetype.a" )
|
||||
|
||||
set "aTimeZERO=%TIME%"
|
||||
if ["%toCMake%"] == ["1"] (
|
||||
echo Configuring OCCT for Android %anAbi%, API level %anApi%...
|
||||
@@ -168,19 +162,14 @@ if ["%toCMake%"] == ["1"] (
|
||||
-D BUILD_MODULE_DataExchange:BOOL="%BUILD_DataExchange%" ^
|
||||
-D BUILD_MODULE_Draw:BOOL="OFF" ^
|
||||
-D BUILD_DOC_Overview:BOOL="OFF" ^
|
||||
-D USE_FREETYPE:BOOL="%USE_FREETYPE%" ^
|
||||
-D 3RDPARTY_FREETYPE_DIR:PATH="%aFreeType%" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="%aFreeType%/include" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="%aFreeType%/include" ^
|
||||
-D 3RDPARTY_FREETYPE_LIBRARY_DIR:PATH="%aFreeType%/libs/%anAbi%" ^
|
||||
-D 3RDPARTY_FREETYPE_LIBRARY:FILEPATH="%aFreeType%/libs/%anAbi%/%aFreeTypeLibName%" ^
|
||||
-D 3RDPARTY_FREETYPE_LIBRARY:FILEPATH="%aFreeType%/libs/%anAbi%/libfreetype.so" ^
|
||||
-D USE_RAPIDJSON:BOOL="%USE_RAPIDJSON%" ^
|
||||
-D 3RDPARTY_RAPIDJSON_DIR:PATH="%aRapidJson%" ^
|
||||
-D 3RDPARTY_RAPIDJSON_INCLUDE_DIR:PATH="%aRapidJson%/include" ^
|
||||
-D USE_DRACO:BOOL="%USE_DRACO%" ^
|
||||
-D 3RDPARTY_DRACO_DIR:PATH="%aDraco%" ^
|
||||
-D 3RDPARTY_DRACO_INCLUDE_DIR:FILEPATH="%aDraco%/include" ^
|
||||
-D 3RDPARTY_DRACO_LIBRARY_DIR_draco:PATH="%aDraco%/libs/%anAbi%" ^
|
||||
"%aCasSrc%"
|
||||
|
||||
if errorlevel 1 (
|
||||
|
@@ -6,7 +6,6 @@ rem set "PATH=c:\CMake\bin;%PATH%"
|
||||
rem set "anNdkPath=c:/android-ndk-r12"
|
||||
rem set "aFreeType=c:/freetype-2.7.1-android"
|
||||
rem set "aRapidJson=c:/rapidjson-1.1.0"
|
||||
rem set "aDraco=c:/draco-1.4.1-android"
|
||||
|
||||
rem Uncomment to customize building steps
|
||||
rem set "aBuildRoot=%~dp0..\..\work"
|
||||
@@ -29,5 +28,4 @@ rem set "BUILD_ApplicationFramework=ON"
|
||||
rem set "BUILD_DataExchange=ON"
|
||||
|
||||
rem Optional 3rd-party libraries to enable
|
||||
rem set "USE_RAPIDJSON=ON"
|
||||
rem set "USE_DRACO=ON"
|
||||
rem set USE_RAPIDJSON=ON
|
||||
|
@@ -22,7 +22,6 @@ rem set BUILD_RELEASE_DISABLE_EXCEPTIONS=ON
|
||||
rem set BUILD_WITH_DEBUG=OFF
|
||||
rem set BUILD_ENABLE_FPE_SIGNAL_HANDLER=ON
|
||||
rem set BUILD_USE_PCH=OFF
|
||||
rem set BUILD_FORCE_RelWithDebInfo=OFF
|
||||
|
||||
rem Use semicolon-separated list of toolkits if you want to disable all modules
|
||||
rem and build only some toolkits.
|
||||
@@ -43,6 +42,5 @@ rem set USE_FFMPEG=OFF
|
||||
rem set USE_FREEIMAGE=OFF
|
||||
rem set USE_GLES2=OFF
|
||||
rem set USE_RAPIDJSON=OFF
|
||||
rem set USE_DRACO=OFF
|
||||
rem set USE_TBB=OFF
|
||||
rem set USE_VTK=OFF
|
||||
|
@@ -35,7 +35,6 @@ FREETYPE_DIR="$OCCT3RDPARTY/freetype-2.7.1"
|
||||
#USE_FREEIMAGE=OFF
|
||||
#USE_GLES2=OFF
|
||||
#USE_RAPIDJSON=OFF
|
||||
#USE_DRACO=OFF
|
||||
#USE_TBB=OFF
|
||||
#USE_VTK=OFF
|
||||
|
||||
|
@@ -24,7 +24,6 @@ set BUILD_RELEASE_DISABLE_EXCEPTIONS=ON
|
||||
set BUILD_WITH_DEBUG=OFF
|
||||
set BUILD_ENABLE_FPE_SIGNAL_HANDLER=ON
|
||||
set BUILD_USE_PCH=OFF
|
||||
set BUILD_FORCE_RelWithDebInfo=OFF
|
||||
|
||||
set BUILD_MODULE_ApplicationFramework=ON
|
||||
set BUILD_MODULE_DataExchange=ON
|
||||
@@ -38,7 +37,6 @@ set USE_FFMPEG=OFF
|
||||
set USE_FREEIMAGE=OFF
|
||||
set USE_GLES2=OFF
|
||||
set USE_RAPIDJSON=OFF
|
||||
set USE_DRACO=OFF
|
||||
set USE_TBB=OFF
|
||||
set USE_VTK=OFF
|
||||
|
||||
@@ -72,14 +70,12 @@ cmake -G "%arch_compile%" ^
|
||||
-D BUILD_WITH_DEBUG:BOOL=%BUILD_WITH_DEBUG% ^
|
||||
-D BUILD_ENABLE_FPE_SIGNAL_HANDLER:BOOL=%BUILD_ENABLE_FPE_SIGNAL_HANDLER% ^
|
||||
-D BUILD_USE_PCH:BOOL=%BUILD_USE_PCH% ^
|
||||
-D BUILD_FORCE_RelWithDebInfo:BOOL=%BUILD_FORCE_RelWithDebInfo% ^
|
||||
-D INSTALL_DIR:PATH="%INSTALL_DIR%" ^
|
||||
-D USE_D3D:BOOL=%USE_D3D% ^
|
||||
-D USE_FFMPEG:BOOL=%USE_FFMPEG% ^
|
||||
-D USE_FREEIMAGE:BOOL=%USE_FREEIMAGE% ^
|
||||
-D USE_GLES2:BOOL=%USE_GLES2% ^
|
||||
-D USE_RAPIDJSON:BOOL=%USE_RAPIDJSON% ^
|
||||
-D USE_DRACO:BOOL=%USE_DRACO% ^
|
||||
-D USE_TBB:BOOL=%USE_TBB% ^
|
||||
-D USE_VTK:BOOL=%USE_VTK% ^
|
||||
"%SrcRoot%"
|
||||
|
@@ -40,7 +40,6 @@ USE_FFMPEG=OFF
|
||||
USE_FREEIMAGE=OFF
|
||||
USE_GLES2=OFF
|
||||
USE_RAPIDJSON=OFF
|
||||
USE_DRACO=OFF
|
||||
USE_TBB=OFF
|
||||
USE_VTK=OFF
|
||||
AUX_ARGS=
|
||||
@@ -80,7 +79,6 @@ cmake -G "Unix Makefiles" \
|
||||
-D USE_FREEIMAGE:BOOL=$USE_FREEIMAGE \
|
||||
-D USE_GLES2:BOOL=$USE_GLES2 \
|
||||
-D USE_RAPIDJSON:BOOL=$USE_RAPIDJSON \
|
||||
-D USE_DRACO:BOOL=$USE_DRACO \
|
||||
-D USE_TBB:BOOL=$USE_TBB \
|
||||
-D USE_VTK:BOOL=$USE_VTK \
|
||||
$AUX_ARGS "$SrcRoot"
|
||||
|
@@ -17,7 +17,6 @@ export aBuildRoot=work
|
||||
export aFreeType=
|
||||
export aFreeImage=
|
||||
export aRapidJson=
|
||||
export aDraco=
|
||||
|
||||
# build stages to perform
|
||||
export toSimulator=0
|
||||
@@ -35,10 +34,8 @@ export BUILD_Visualization=ON
|
||||
export BUILD_ApplicationFramework=ON
|
||||
export BUILD_DataExchange=ON
|
||||
|
||||
export USE_FREETYPE=ON
|
||||
export USE_FREEIMAGE=OFF
|
||||
export USE_RAPIDJSON=OFF
|
||||
export USE_DRACO=OFF
|
||||
|
||||
export IPHONEOS_DEPLOYMENT_TARGET=8.0
|
||||
export anAbi=arm64
|
||||
@@ -120,18 +117,13 @@ if [[ $toCMake == 1 ]]; then
|
||||
-D INSTALL_DIR_LIB:STRING="lib" \
|
||||
-D INSTALL_DIR_RESOURCE:STRING="src" \
|
||||
-D INSTALL_NAME_DIR:STRING="@executable_path/../Frameworks" \
|
||||
-D USE_FREETYPE:BOOL="$USE_FREETYPE" \
|
||||
-D 3RDPARTY_FREETYPE_DIR:PATH="$aFreeType" \
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="$aFreeType/include" \
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="$aFreeType/include" \
|
||||
-D 3RDPARTY_FREETYPE_LIBRARY_DIR:PATH="$aFreeType/lib" \
|
||||
-D USE_RAPIDJSON:BOOL="$USE_RAPIDJSON" \
|
||||
-D USE_RAPIDJSON:BOOL="ON" \
|
||||
-D 3RDPARTY_RAPIDJSON_DIR:PATH="$aRapidJson" \
|
||||
-D 3RDPARTY_RAPIDJSON_INCLUDE_DIR:PATH="$aRapidJson/include" \
|
||||
-D USE_DRACO:BOOL="$USE_DRACO" \
|
||||
-D 3RDPARTY_DRACO_DIR:PATH="$aDraco" \
|
||||
-D 3RDPARTY_DRACO_INCLUDE_DIR:FILEPATH="$aDraco/include" \
|
||||
-D 3RDPARTY_DRACO_LIBRARY_DIR:PATH="$aDraco/lib" \
|
||||
-D USE_FREEIMAGE:BOOL="$USE_FREEIMAGE" \
|
||||
-D 3RDPARTY_FREEIMAGE_DIR:PATH="$aFreeImage" \
|
||||
-D 3RDPARTY_FREEIMAGE_INCLUDE_DIR:FILEPATH="$aFreeImage/include" \
|
||||
|
@@ -3,7 +3,6 @@ export PATH=/Applications/CMake.app/Contents/bin:$PATH
|
||||
export aFreeType="$aSrcRoot/../3rdparty/freetype-2.10.4-ios"
|
||||
export aFreeImage="$aSrcRoot/../3rdparty/freeimage-3.18-ios"
|
||||
export aRapidJson="$aSrcRoot/../3rdparty/rapidjson-1.1.0"
|
||||
export aDraco="$aSrcRoot/../3rdparty/draco-1.4.1-ios"
|
||||
|
||||
# Uncomment to customize building steps
|
||||
#export toSimulator=0
|
||||
@@ -22,7 +21,6 @@ export aDraco="$aSrcRoot/../3rdparty/draco-1.4.1-ios"
|
||||
#export BUILD_DataExchange=ON
|
||||
|
||||
#export USE_RAPIDJSON=ON
|
||||
#export USE_DRACO=ON
|
||||
#export USE_FREEIMAGE=ON
|
||||
|
||||
#export IPHONEOS_DEPLOYMENT_TARGET=8.0
|
||||
|
@@ -17,7 +17,6 @@ export aBuildRoot=work
|
||||
export aFreeType=
|
||||
export aFreeImage=
|
||||
export aRapidJson=
|
||||
export aDraco=
|
||||
|
||||
# build stages to perform
|
||||
export toCMake=1
|
||||
@@ -36,7 +35,6 @@ export BUILD_Draw=ON
|
||||
|
||||
export USE_FREEIMAGE=ON
|
||||
export USE_RAPIDJSON=OFF
|
||||
export USE_DRACO=OFF
|
||||
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||
#export anAbi=arm64
|
||||
@@ -108,10 +106,6 @@ if [[ $toCMake == 1 ]]; then
|
||||
-D USE_RAPIDJSON:BOOL="$USE_RAPIDJSON" \
|
||||
-D 3RDPARTY_RAPIDJSON_DIR:PATH="$aRapidJson" \
|
||||
-D 3RDPARTY_RAPIDJSON_INCLUDE_DIR:PATH="$aRapidJson/include" \
|
||||
-D USE_DRACO:BOOL="$USE_DRACO" \
|
||||
-D 3RDPARTY_DRACO_DIR:PATH="$aDraco" \
|
||||
-D 3RDPARTY_DRACO_INCLUDE_DIR:FILEPATH="$aDraco/include" \
|
||||
-D 3RDPARTY_DRACO_LIBRARY_DIR:PATH="$aDraco/lib" \
|
||||
-D USE_FREEIMAGE:BOOL="$USE_FREEIMAGE" \
|
||||
-D 3RDPARTY_FREEIMAGE_DIR:PATH="$aFreeImage" \
|
||||
-D 3RDPARTY_FREEIMAGE_INCLUDE_DIR:FILEPATH="$aFreeImage/include" \
|
||||
|
@@ -3,7 +3,6 @@ export PATH=/Applications/CMake.app/Contents/bin:$PATH
|
||||
export aFreeType="$aSrcRoot/../3rdparty/freetype-2.10.4-macos"
|
||||
export aFreeImage="$aSrcRoot/../3rdparty/freeimage-3.18-macos"
|
||||
export aRapidJson="$aSrcRoot/../3rdparty/rapidjson-1.1.0"
|
||||
export aDraco="$aSrcRoot/../3rdparty/draco-1.4.1-macos"
|
||||
|
||||
# Uncomment to customize building steps
|
||||
#export aBuildRoot=work
|
||||
@@ -21,7 +20,6 @@ export aDraco="$aSrcRoot/../3rdparty/draco-1.4.1-macos"
|
||||
#export BUILD_Draw=ON
|
||||
|
||||
#export USE_RAPIDJSON=ON
|
||||
#export USE_DRACO=ON
|
||||
#export USE_FREEIMAGE=ON
|
||||
|
||||
#export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||
|
@@ -14,7 +14,6 @@ set "aMingwVars="
|
||||
set "aFreeType="
|
||||
set "aFreeImage="
|
||||
set "aRapidJson="
|
||||
set "aDraco="
|
||||
set "aTclTk="
|
||||
|
||||
rem Build stages to perform
|
||||
@@ -35,9 +34,7 @@ set "BUILD_DataExchange=ON"
|
||||
set "BUILD_Draw=ON"
|
||||
|
||||
rem Optional 3rd-party libraries to enable
|
||||
set "USE_FREETYPE=ON"
|
||||
set "USE_RAPIDJSON=OFF"
|
||||
set "USE_DRACO=OFF"
|
||||
set "USE_FREEIMAGE=ON"
|
||||
|
||||
rem Archive tool
|
||||
@@ -165,7 +162,7 @@ if ["%toCMake%"] == ["1"] (
|
||||
-D 3RDPARTY_TK_LIBRARY_DIR:PATH="%aTclTk%/lib" ^
|
||||
-D 3RDPARTY_TK_DLL_DIR:PATH="%aTclTk%/bin" ^
|
||||
-D USE_D3D:BOOL="ON" ^
|
||||
-D USE_FREETYPE:BOOL="%USE_FREETYPE%" ^
|
||||
-D USE_FREETYPE:BOOL="ON" ^
|
||||
-D 3RDPARTY_FREETYPE_DIR:PATH="%aFreeType%" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="%aFreeType%/include" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="%aFreeType%/include" ^
|
||||
@@ -177,10 +174,6 @@ if ["%toCMake%"] == ["1"] (
|
||||
-D USE_RAPIDJSON:BOOL="%USE_RAPIDJSON%" ^
|
||||
-D 3RDPARTY_RAPIDJSON_DIR:PATH="%aRapidJson%" ^
|
||||
-D 3RDPARTY_RAPIDJSON_INCLUDE_DIR:PATH="%aRapidJson%/include" ^
|
||||
-D USE_DRACO:BOOL="%USE_DRACO%" ^
|
||||
-D 3RDPARTY_DRACO_DIR:PATH="%aDraco%" ^
|
||||
-D 3RDPARTY_DRACO_INCLUDE_DIR:FILEPATH="%aDraco%/include" ^
|
||||
-D 3RDPARTY_DRACO_LIBRARY_DIR:PATH="%aDraco%/lib" ^
|
||||
"%aCasSrc%"
|
||||
|
||||
if errorlevel 1 (
|
||||
|
@@ -4,7 +4,6 @@ set "aFreeType=%aCasSrc%/../3rdparty/freetype-2.6.3-mingw-64"
|
||||
set "aTclTk=%aCasSrc%/../3rdparty/tcltk-8.6.4-mingw-64"
|
||||
set "aFreeImage=%aCasSrc%/../3rdparty/freeimage-3.17-0-mingw-64"
|
||||
set "aRapidJson=%aCasSrc%/../3rdparty/rapidjson-1.1.0"
|
||||
set "aDraco=%aCasSrc%/../3rdparty/draco-1.4-1-mingw-64"
|
||||
|
||||
set "aMingwVars=c:\mingw-8.3.0-msys2\mingwvars.bat"
|
||||
|
||||
@@ -25,5 +24,4 @@ rem set "BUILD_DataExchange=ON"
|
||||
rem set "BUILD_Draw=ON"
|
||||
|
||||
rem set "USE_RAPIDJSON=ON"
|
||||
rem set "USE_DRACO=ON"
|
||||
rem set "USE_FREEIMAGE=ON"
|
||||
|
@@ -13,7 +13,6 @@ rem Paths to 3rd-party tools and libraries
|
||||
set "aCmakeBin="
|
||||
set "aFreeType="
|
||||
set "aRapidJson="
|
||||
set "aDraco="
|
||||
set "aTcl="
|
||||
|
||||
rem Build stages to perform
|
||||
@@ -35,10 +34,7 @@ set "BUILD_DataExchange=ON"
|
||||
set "BUILD_Draw=OFF"
|
||||
|
||||
rem Optional 3rd-party libraries to enable
|
||||
set "USE_FREETYPE=ON"
|
||||
set "USE_RAPIDJSON=OFF"
|
||||
set "USE_DRACO=OFF"
|
||||
set "USE_PTHREADS=OFF"
|
||||
|
||||
rem Archive tool
|
||||
set "THE_7Z_PARAMS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
|
||||
@@ -60,14 +56,9 @@ for /f %%i in ('git symbolic-ref --short HEAD') do ( set "aGitBranch=%%i" )
|
||||
|
||||
set "aBuildType=Release"
|
||||
set "aBuildTypePrefix="
|
||||
set "anExtraCxxFlags="
|
||||
if /I ["%USE_PTHREADS%"] == ["ON"] (
|
||||
set "anExtraCxxFlags=-pthread"
|
||||
set "aBuildTypePrefix=%aBuildTypePrefix%-pthread"
|
||||
)
|
||||
if ["%toDebug%"] == ["1"] (
|
||||
set "aBuildType=Debug"
|
||||
set "aBuildTypePrefix=%aBuildTypePrefix%-debug"
|
||||
set "aBuildTypePrefix=-debug"
|
||||
)
|
||||
|
||||
call :cmakeGenerate
|
||||
@@ -152,10 +143,6 @@ echo ^</pre^>>> "%aWorkDir%\VERSION.html"
|
||||
echo Start building OCCT for %aPlatformAndCompiler%
|
||||
echo Start building OCCT for %aPlatformAndCompiler%>> %aLogFile%
|
||||
|
||||
echo --->> %aLogFile%
|
||||
call emcc --version >> %aLogFile%
|
||||
echo --->> %aLogFile%
|
||||
|
||||
pushd "%aWorkDir%"
|
||||
|
||||
set "aTimeZERO=%TIME%"
|
||||
@@ -165,10 +152,12 @@ if ["%toCMake%"] == ["1"] (
|
||||
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
|
||||
-D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
|
||||
-D BUILD_LIBRARY_TYPE:STRING="Static" ^
|
||||
-D CMAKE_CXX_FLAGS="%anExtraCxxFlags%" ^
|
||||
-D INSTALL_DIR:PATH="%aDestDir%" ^
|
||||
-D INSTALL_DIR_INCLUDE:STRING="inc" ^
|
||||
-D INSTALL_DIR_RESOURCE:STRING="src" ^
|
||||
-D 3RDPARTY_FREETYPE_DIR:PATH="%aFreeType%" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="%aFreeType%/include" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="%aFreeType%/include" ^
|
||||
-D BUILD_MODULE_FoundationClasses:BOOL="ON" ^
|
||||
-D BUILD_MODULE_ModelingData:BOOL="%BUILD_ModelingData%" ^
|
||||
-D BUILD_MODULE_ModelingAlgorithms:BOOL="%BUILD_ModelingAlgorithms%" ^
|
||||
@@ -177,23 +166,14 @@ if ["%toCMake%"] == ["1"] (
|
||||
-D BUILD_MODULE_DataExchange:BOOL="%BUILD_DataExchange%" ^
|
||||
-D BUILD_MODULE_Draw:BOOL="%BUILD_Draw%" ^
|
||||
-D BUILD_DOC_Overview:BOOL="OFF" ^
|
||||
-D USE_FREETYPE:BOOL="%USE_FREETYPE%" ^
|
||||
-D 3RDPARTY_FREETYPE_DIR:PATH="%aFreeType%" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2:FILEPATH="%aFreeType%/include" ^
|
||||
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build:FILEPATH="%aFreeType%/include" ^
|
||||
-D USE_RAPIDJSON:BOOL="%USE_RAPIDJSON%" ^
|
||||
-D 3RDPARTY_RAPIDJSON_DIR:PATH="%aRapidJson%" ^
|
||||
-D 3RDPARTY_RAPIDJSON_INCLUDE_DIR:PATH="%aRapidJson%/include" ^
|
||||
-D USE_DRACO:BOOL="%USE_DRACO%" ^
|
||||
-D 3RDPARTY_DRACO_DIR:PATH="%aDraco%" ^
|
||||
-D 3RDPARTY_DRACO_INCLUDE_DIR:FILEPATH="%aDraco%/include" ^
|
||||
-D 3RDPARTY_DRACO_LIBRARY_DIR:PATH="%aDraco%/lib" ^
|
||||
-D 3RDPARTY_DRACO_LIBRARY:FILEPATH="%aDraco%/lib/libdraco.a" ^
|
||||
-D USE_TK:BOOL="OFF" ^
|
||||
-D 3RDPARTY_TCL_DIR:PATH="%aTcl%" ^
|
||||
-D 3RDPARTY_TCL_INCLUDE_DIR:PATH="%aTcl%/include" ^
|
||||
-D 3RDPARTY_TCL_LIBRARY_DIR:PATH="%aTcl%/lib" ^
|
||||
-D 3RDPARTY_TCL_LIBRARY:FILEPATH="%aTcl%/lib/libtcl.a" ^
|
||||
-D USE_TK:BOOL="OFF" ^
|
||||
"%aCasSrc%"
|
||||
|
||||
if errorlevel 1 (
|
||||
@@ -263,7 +243,6 @@ if ["%toCMake%"] == ["1"] (
|
||||
cmake -G "MinGW Makefiles" ^
|
||||
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
|
||||
-D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
|
||||
-D CMAKE_CXX_FLAGS="%anExtraCxxFlags%" ^
|
||||
-D CMAKE_INSTALL_PREFIX:PATH="%aDestDirSmpl%" ^
|
||||
-D SOURCE_MAP_BASE:STRING="%sourceMapBase%" ^
|
||||
-D OpenCASCADE_DIR:PATH="%aDestDir%/lib/cmake/opencascade" ^
|
||||
|
@@ -1,8 +1,7 @@
|
||||
rem Environment configuration template for wasm_build.bat (to be renamed as wasm_custom.bat)
|
||||
set "EMSDK_ROOT=%aCasSrc%\..\emsdk"
|
||||
set "aFreeType=%aCasSrc%\..\3rdparty\freetype-2.7.1-wasm32"
|
||||
set "aFreeType=%aCasSrc%\..\3rdparty\freetype-2.7.1-wasm"
|
||||
rem set "aRapidJson=%aCasSrc%\..\3rdparty\rapidjson-1.1.0"
|
||||
rem set "aDraco=%aCasSrc%\..\3rdparty\draco-1.4.1-wasm32"
|
||||
rem set "aCmakeBin=%ProgramW6432%\CMake\bin"
|
||||
|
||||
rem Uncomment to customize building steps
|
||||
@@ -24,6 +23,4 @@ rem set "BUILD_Visualization=ON"
|
||||
rem set "BUILD_ApplicationFramework=ON"
|
||||
rem set "BUILD_DataExchange=ON"
|
||||
|
||||
rem set "USE_RAPIDJSON=ON"
|
||||
rem set "USE_DRACO=ON"
|
||||
rem set "USE_PTHREADS=ON"
|
||||
rem set "USE_RAPIDJSON=OFF"
|
||||
|
@@ -21,8 +21,6 @@ set "toInstall=1"
|
||||
set "toDebug=0"
|
||||
set "sourceMapBase="
|
||||
|
||||
set "USE_PTHREADS=OFF"
|
||||
|
||||
rem Configuration file
|
||||
if exist "%~dp0wasm_custom.bat" call "%~dp0wasm_custom.bat"
|
||||
|
||||
@@ -32,14 +30,9 @@ if not ["%aCmakeBin%"] == [""] ( set "PATH=%aCmakeBin%;%PATH%" )
|
||||
|
||||
set "aBuildType=Release"
|
||||
set "aBuildTypePrefix="
|
||||
set "anExtraCxxFlags="
|
||||
if /I ["%USE_PTHREADS%"] == ["ON"] (
|
||||
set "anExtraCxxFlags=-pthread"
|
||||
set "aBuildTypePrefix=%aBuildTypePrefix%-pthread"
|
||||
)
|
||||
if ["%toDebug%"] == ["1"] (
|
||||
set "aBuildType=Debug"
|
||||
set "aBuildTypePrefix=%aBuildTypePrefix%-debug"
|
||||
set "aBuildTypePrefix=-debug"
|
||||
)
|
||||
|
||||
call :cmakeGenerate
|
||||
@@ -71,7 +64,6 @@ if ["%toCMake%"] == ["1"] (
|
||||
cmake -G "MinGW Makefiles" ^
|
||||
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
|
||||
-D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
|
||||
-D CMAKE_CXX_FLAGS="%anExtraCxxFlags%" ^
|
||||
-D CMAKE_INSTALL_PREFIX:PATH="%aDestDirSmpl%" ^
|
||||
-D SOURCE_MAP_BASE:STRING="%sourceMapBase%" ^
|
||||
-D OpenCASCADE_DIR:PATH="%aDestDirOcct%/lib/cmake/opencascade" ^
|
||||
|
@@ -27,7 +27,6 @@ set "HAVE_D3D=false"
|
||||
set "HAVE_ZLIB=false"
|
||||
set "HAVE_LIBLZMA=false"
|
||||
set "HAVE_RAPIDJSON=false"
|
||||
set "HAVE_DRACO=false"
|
||||
set "HAVE_OPENVR=false"
|
||||
set "HAVE_E57=false"
|
||||
set "CSF_OPT_INC="
|
||||
@@ -35,14 +34,6 @@ set "CSF_OPT_LIB32="
|
||||
set "CSF_OPT_LIB64="
|
||||
set "CSF_OPT_BIN32="
|
||||
set "CSF_OPT_BIN64="
|
||||
set "CSF_OPT_LIB32D="
|
||||
set "CSF_OPT_LIB64D="
|
||||
set "CSF_OPT_BIN32D="
|
||||
set "CSF_OPT_BIN64D="
|
||||
set "CSF_OPT_LIB32I="
|
||||
set "CSF_OPT_LIB64I="
|
||||
set "CSF_OPT_BIN32I="
|
||||
set "CSF_OPT_BIN64I="
|
||||
set "CSF_DEFINES=%CSF_DEFINES_EXTRA%"
|
||||
|
||||
if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%"
|
||||
@@ -121,12 +112,8 @@ if not "%DevEnvDir%" == "" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "DevEnvDir=%%i\Common7\IDE\"
|
||||
)
|
||||
) else if /I "%VCFMT%" == "vc143" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "DevEnvDir=%%i\Common7\IDE\"
|
||||
)
|
||||
) else if /I "%VCFMT%" == "vclang" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "DevEnvDir=%%i\Common7\IDE\"
|
||||
)
|
||||
) else if /I "%VCFMT%" == "gcc" (
|
||||
@@ -141,7 +128,6 @@ if not "%DevEnvDir%" == "" (
|
||||
echo vc14 = VS 2015
|
||||
echo vc141 = VS 2017
|
||||
echo vc142 = VS 2019
|
||||
echo vc143 = VS 2022
|
||||
echo vclang = VS 2019 with ClangCL toolset
|
||||
exit /B
|
||||
)
|
||||
@@ -172,15 +158,10 @@ if /I "%VCFMT%" == "vc9" (
|
||||
set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
|
||||
)
|
||||
set "VCPlatformToolSet=v142"
|
||||
) else if /I "%VCFMT%" == "vc143" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
) else if /I "%VCFMT%" == "vclang" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
|
||||
)
|
||||
set "VCPlatformToolSet=v143"
|
||||
) else if /I "%VCFMT%" == "vclang" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
|
||||
)
|
||||
set "VCPlatformToolSet=ClangCL"
|
||||
) else if /I "%VCFMT%" == "gcc" (
|
||||
rem MinGW
|
||||
@@ -189,14 +170,14 @@ if /I "%VCFMT%" == "vc9" (
|
||||
exit /B
|
||||
)
|
||||
|
||||
if ["%CSF_OPT_LIB32D%"] == [""] set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%"
|
||||
if ["%CSF_OPT_LIB64D%"] == [""] set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%"
|
||||
if ["%CSF_OPT_BIN32D%"] == [""] set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%"
|
||||
if ["%CSF_OPT_BIN64D%"] == [""] set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%"
|
||||
if ["%CSF_OPT_LIB32I%"] == [""] set "CSF_OPT_LIB32I=%CSF_OPT_LIB32%"
|
||||
if ["%CSF_OPT_LIB64I%"] == [""] set "CSF_OPT_LIB64I=%CSF_OPT_LIB64%"
|
||||
if ["%CSF_OPT_BIN32I%"] == [""] set "CSF_OPT_BIN32I=%CSF_OPT_BIN32%"
|
||||
if ["%CSF_OPT_BIN64I%"] == [""] set "CSF_OPT_BIN64I=%CSF_OPT_BIN64%"
|
||||
set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%"
|
||||
set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%"
|
||||
set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%"
|
||||
set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%"
|
||||
set "CSF_OPT_LIB32I=%CSF_OPT_LIB32%"
|
||||
set "CSF_OPT_LIB64I=%CSF_OPT_LIB64%"
|
||||
set "CSF_OPT_BIN32I=%CSF_OPT_BIN32%"
|
||||
set "CSF_OPT_BIN64I=%CSF_OPT_BIN64%"
|
||||
|
||||
rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
|
||||
set "CSF_OPT_CMPL="
|
||||
@@ -213,7 +194,6 @@ if ["%HAVE_D3D%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DH
|
||||
if ["%HAVE_ZLIB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_ZLIB" & set "CSF_DEFINES=HAVE_ZLIB;%CSF_DEFINES%"
|
||||
if ["%HAVE_LIBLZMA%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_LIBLZMA" & set "CSF_DEFINES=HAVE_LIBLZMA;%CSF_DEFINES%"
|
||||
if ["%HAVE_RAPIDJSON%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_RAPIDJSON" & set "CSF_DEFINES=HAVE_RAPIDJSON;%CSF_DEFINES%"
|
||||
if ["%HAVE_DRACO%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_DRACO" & set "CSF_DEFINES=HAVE_DRACO;%CSF_DEFINES%"
|
||||
if ["%HAVE_OPENVR%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENVR" & set "CSF_DEFINES=HAVE_OPENVR;%CSF_DEFINES%"
|
||||
if ["%HAVE_E57%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_E57" & set "CSF_DEFINES=HAVE_E57;%CSF_DEFINES%"
|
||||
|
||||
|
@@ -20,7 +20,6 @@ export HAVE_GLES2="false";
|
||||
export HAVE_ZLIB="false";
|
||||
export HAVE_LIBLZMA="false";
|
||||
export HAVE_RAPIDJSON="false";
|
||||
export HAVE_DRACO="false";
|
||||
export HAVE_OPENVR="false";
|
||||
export HAVE_E57="false";
|
||||
export HAVE_XLIB="true";
|
||||
@@ -116,7 +115,6 @@ if [ "$HAVE_VTK" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -D
|
||||
if [ "$HAVE_ZLIB" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_ZLIB"; fi
|
||||
if [ "$HAVE_LIBLZMA" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_LIBLZMA"; fi
|
||||
if [ "$HAVE_RAPIDJSON" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_RAPIDJSON"; fi
|
||||
if [ "$HAVE_DRACO" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_DRACO"; fi
|
||||
if [ "$HAVE_OPENVR" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_OPENVR"; fi
|
||||
if [ "$HAVE_E57" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_E57"; fi
|
||||
if [ "$HAVE_XLIB" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_XLIB"; fi
|
||||
|
@@ -3,25 +3,29 @@ Build OCCT {#build_upgrade__building_occt}
|
||||
|
||||
@tableofcontents
|
||||
|
||||
Before building OCCT, make sure to have all required third-party libraries installed.
|
||||
@note Before building OCCT, make sure to have all required third-party libraries installed.
|
||||
The list of required libraries depends on what OCCT modules will be used, and your preferences.
|
||||
The typical minimum is **FreeType** (necessary for Visualization) and **Tcl/Tk** (for DRAW).
|
||||
The typical minimum is **Freetype** (necessary for Visualization) and **Tcl/Tk** (for DRAW).
|
||||
See @ref intro_req "requirements on 3rdparty libraries" for a full list.
|
||||
On OS X we recommend to use native libraries.
|
||||
|
||||
The easiest way to install third-party libraries is to download archive with pre-built binaries, corresponding to your target configuration,
|
||||
from [Development Portal](https://dev.opencascade.org/resources/download/3rd-party-components).
|
||||
You can also build third-party libraries from their sources, see @ref build_upgrade_building_3rdparty for instructions.
|
||||
@section build_occt_windows Windows
|
||||
|
||||
On Linux and macOS we recommend to use libraries maintained by distributive developers, when possible.
|
||||
@subsection build_occt_win_cmake Building with CMake tool
|
||||
|
||||
@section build_occt_win_cmake Building with CMake tool
|
||||
This article describes the **CMake**-based build process, which is now suggested as a standard way to produce the binaries of Open CASCADE Technology from sources. *OCCT requires CMake version 2.8.12 or later*.
|
||||
|
||||
This chapter describes the [CMake](https://cmake.org/download/)-based build process, which is now suggested as a standard way to produce the binaries of Open CASCADE Technology from sources.
|
||||
OCCT requires CMake version 2.8.12 or later.
|
||||
Here we describe the build procedure on the example of Windows platform with Visual Studio 2010.
|
||||
However, CMake is cross-platform and can be used to build OCCT on Linux and OS X in essentially the same way.
|
||||
|
||||
@note Before you start, make sure to have installed all 3-rd party products that you are going to use with OCCT; see @ref build_upgrade.
|
||||
|
||||
@subsubsection build_cmake_start Start CMake
|
||||
|
||||
CMake is a tool that generates the actual project files for the selected target build system (e.g. Unix makefiles) or IDE (e.g. Visual Studio 2010).
|
||||
Here we describe the build procedure on the example of Windows platform with Visual Studio 2010.
|
||||
However, CMake is cross-platform and can be used to build OCCT on Linux and macOS in essentially the same way.
|
||||
|
||||
For unexperienced users we recommend to start with *cmake-gui* -- a cross-platform GUI tool provided by CMake on Windows, Mac and Linux.
|
||||
A command-line alternative, *ccmake* can also be used.
|
||||
|
||||
CMake deals with three directories: source, build or binary and installation.
|
||||
|
||||
@@ -32,286 +36,272 @@ CMake deals with three directories: source, build or binary and installation.
|
||||
The good practice is not to use the source directory as a build one.
|
||||
Different configurations should be built in different build directories to avoid conflicts.
|
||||
It is however possible to choose one installation directory for several configurations of OCCT (differentiated by platform, bitness, compiler and build type), for example:
|
||||
|
||||
d:/occt/ -- the source directory
|
||||
d:/tmp/occt-build-vc10-x64 -- the build directory with the generated
|
||||
solution and other intermediate files created during a CMake tool working
|
||||
d:/occt-install -- the installation directory that is
|
||||
able to contain several OCCT configurations
|
||||
|
||||
d:/occt/ - the source directory
|
||||
d:/tmp/occt-build-vc10-x64 - the build directory with the generated
|
||||
solution and other intermediate files created during a CMake tool working
|
||||
d:/occt-install - the installation directory that is
|
||||
able to contain several OCCT configurations
|
||||
@subsubsection build_cmake_conf Configuration process
|
||||
|
||||
@subsection build_cmake_conf Configuration process
|
||||
|
||||
For unexperienced users we recommend to start with *cmake-gui* -- a cross-platform GUI tool provided by CMake on Windows, Mac and Linux.
|
||||
A command-line alternative, *ccmake* can also be used.
|
||||
|
||||
If the command-line tool is used, run the tool from the build directory with a single argument indicating the source (relative or absolute path) directory, and press *c* to configure:
|
||||
If the command-line tool is used, run the tool from the build directory with a single argument indicating the source (relative or absolute path) directory:
|
||||
|
||||
cd d:/tmp/occt-build-vc10-x64
|
||||
ccmake d:/occt
|
||||
|
||||
@figure{/build/build_occt/images/cmake_image000.png}
|
||||
|
||||
If the GUI tool is used, run this tool without additional arguments and after that specify the source directory by clicking **Browse Source** and the build (binary) one by clicking **Browse Build**:
|
||||
Press *c* to configure.
|
||||
|
||||
All actions required in the configuration process with the GUI tool will be described below.
|
||||
|
||||
If the GUI tool is used, run this tool without additional arguments and after that specify the source directory by clicking **Browse Source** and the build (binary) one by clicking **Browse Build**.
|
||||
|
||||
@figure{/build/build_occt/images/cmake_image001.png}
|
||||
|
||||
@note Each configuration of the project should be built in its own directory.
|
||||
When building multiple configurations it is suggested to indicate in the name of build directories the system, bitness and compiler (e.g., <i>d:/occt/build/win32-vc10</i>).
|
||||
**Note**: Each configuration of the project should be built in its own directory. When building multiple configurations it is recommended to indicate in the name of build directories the system, bitness and compiler (e.g., <i>d:/occt/build/win32-vc10</i> ).
|
||||
|
||||
Once the source and build directories are selected, "Configure" button should be pressed in order to start manual configuration process.
|
||||
It begins with selection of a target configurator. It is "Visual Studio 10 2010 Win64" in our example.
|
||||
Once the source and build directories are selected, "Configure" button should be pressed in order to start manual configuration process. It begins with selection of a target configurator. It is "Visual Studio 10 2010 Win64" in our example.
|
||||
|
||||
@figure{/build/build_occt/images/cmake_image002.png}
|
||||
|
||||
@note To build OCCT for **Universal Windows Platform (UWP)** specify the path to toolchain file for cross-compiling <i>d:/occt/adm/templates/uwp.toolchain.config.cmake</i>.
|
||||
Alternatively, if you are using CMake from the command line add options `-DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0`.
|
||||
Universal Windows Platform (UWP) is supported only on "Visual Studio 14 2015".
|
||||
File `CASROOT/samples/xaml/ReadMe.md` describes the building procedure of XAML (UWP) sample.
|
||||
To build OCCT for **Universal Windows Platform (UWP)** specify the path to toolchain file for cross-compiling <i>d:/occt/adm/templates/uwp.toolchain.config.cmake</i>.
|
||||
|
||||
Once "Finish" button is pressed, the first pass of the configuration process is executed.
|
||||
At the end of the process, CMake outputs the list of environment variables, which have to be properly specified for successful configuration.
|
||||
Alternatively, if you are using CMake from the command line add options -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .
|
||||
|
||||
**Note**: Universal Windows Platform (UWP) is supported only on "Visual Studio 14 2015". File <i>d:/occt/samples/xaml/ReadMe.md</i> describes the building procedure of XAML (UWP) sample.
|
||||
|
||||
Once "Finish" button is pressed, the first pass of the configuration process is executed. At the end of the process, CMake outputs the list of environment variables, which have to be properly specified for successful configuration.
|
||||
|
||||
@figure{/build/build_occt/images/cmake_image003.png}
|
||||
|
||||
The error message provides some information about these variables.
|
||||
This message will appear after each pass of the process until all required variables are specified correctly.
|
||||
The error message provides some information about these variables. This message will appear after each pass of the process until all required variables are specified correctly.
|
||||
|
||||
The change of the state of some variables can lead to the appearance of new variables.
|
||||
The new variables appeared after the pass of the configuration process are highlighted with red color by CMake GUI tool.
|
||||
The change of the state of some variables can lead to the appearance of new variables. The new variables appeared after the pass of the configuration process are highlighted with red color by CMake GUI tool.
|
||||
|
||||
@note There is "grouped" option, which groups variables with a common prefix.
|
||||
Note: There is "grouped" option, which groups variables with a common prefix.
|
||||
|
||||
The following table gives the full list of environment variables used at the configuration stage:
|
||||
|
||||
| Variable | Type | Purpose |
|
||||
|----------|------|---------|
|
||||
| CMAKE_BUILD_TYPE | String | Specifies the build type on single-configuration generators (such as make). Possible values are Debug, Release and RelWithDebInfo |
|
||||
| USE_FREETYPE | Boolean | Indicates whether FreeType product should be used in OCCT for text rendering |
|
||||
| USE_FREEIMAGE | Boolean | Indicates whether FreeImage product should be used in OCCT visualization module for support of popular graphics image formats (PNG, BMP, etc.) |
|
||||
| USE_OPENVR | Boolean | Indicates whether OpenVR product should be used in OCCT visualization module for support of Virtual Reality |
|
||||
| USE_OPENGL | Boolean | Indicates whether TKOpenGl graphic driver using OpenGL library (desktop) should be built within OCCT visualization module |
|
||||
| USE_GLES2 | Boolean | Indicates whether TKOpenGles graphic driver using OpenGL ES library (embedded OpenGL) should be built within OCCT visualization module |
|
||||
| USE_RAPIDJSON | Boolean | Indicates whether RapidJSON product should be used in OCCT Data Exchange module for support of glTF mesh file format |
|
||||
| USE_DRACO | Boolean | Indicates whether Draco product should be used in OCCT Data Exchange module for support of Draco compression in glTF mesh file format |
|
||||
| USE_TK | Boolean | Indicates whether Tcl/Tk product should be used in OCCT Draw Harness module for user interface (in addition to Tcl, which is mandatory for Draw Harness) |
|
||||
| USE_TBB | Boolean | Indicates whether TBB (Threading Building Blocks) 3rd party is used or not. Note that OCCT remains parallel even without TBB product |
|
||||
| USE_VTK | Boolean | Indicates whether VTK 3rd party is used or not. OCCT comes with a bridge between CAD data representation and VTK by means of its dedicated VIS component (VTK Integration Services). You may skip this 3rd party unless you are planning to use VTK visualization for OCCT geometry. See the official documentation @ref occt_user_guides__vis for the details on VIS |
|
||||
| CMAKE_BUILD_TYPE | String | Specifies the build type on single-configuration generators (such as make). Possible values are Debug, Release and RelWithDebInfo |
|
||||
| USE_FREEIMAGE | Boolean flag | Indicates whether FreeImage product should be used in OCCT visualization module for support of popular graphics image formats (PNG, BMP, etc.) |
|
||||
| USE_RAPIDJSON | Boolean flag | Indicates whether RapidJSON product should be used in OCCT Data Exchange module for support of glTF mesh file format |
|
||||
| USE_TBB | Boolean flag | Indicates whether TBB 3rd party is used or not. TBB stands for Threading Building Blocks, the technology of Intel Corp, which comes with different mechanisms and patterns for injecting parallelism into your application. OCCT remains parallel even without TBB product |
|
||||
| USE_VTK | Boolean flag | Indicates whether VTK 3rd party is used or not. VTK stands for Visualization ToolKit, the technology of Kitware Inc intended for general-purpose scientific visualization. OCCT comes with a bridge between CAD data representation and VTK by means of its dedicated VIS component (VTK Integration Services). You may skip this 3rd party unless you are planning to use VTK visualization for OCCT geometry. See the official documentation @ref occt_user_guides__vis for the details on VIS |
|
||||
| 3RDPARTY_DIR | Path | Defines the root directory where all required 3rd party products will be searched. Once you define this path it is very convenient to click "Configure" button in order to let CMake automatically detect all necessary products|
|
||||
| 3RDPARTY_FREETYPE_* | Path | Path to FreeType binaries |
|
||||
| 3RDPARTY_FREETYPE_* | Path | Path to Freetype binaries |
|
||||
| 3RDPARTY_TCL_* 3RDPARTY_TK_* | Path | Path to Tcl/Tk binaries |
|
||||
| 3RDPARTY_FREEIMAGE* | Path | Path to FreeImage binaries |
|
||||
| 3RDPARTY_TBB* | Path | Path to TBB binaries |
|
||||
| 3RDPARTY_FREEIMAGE* | Path | Path to Freeimage binaries |
|
||||
| 3RDPARTY_TBB* | Path | Path to TBB binaries |
|
||||
| 3RDPARTY_VTK_* | Path | Path to VTK binaries |
|
||||
| BUILD_MODULE_<MODULE>| Boolean | Indicates whether the corresponding OCCT module should be built or not. It should be noted that some toolkits of a module can be built even if this module is not checked (this happens if some other modules depend on these toolkits). The main modules and their descriptions can be found in @ref user_guides |
|
||||
| BUILD_MODULE_<MODULE>| Boolean flag | Indicates whether the corresponding OCCT module should be built or not. It should be noted that some toolkits of a module can be built even if this module is not checked (this happens if some other modules depend on these toolkits). The main modules and their descriptions can be found in @ref user_guides |
|
||||
| BUILD_LIBRARY_TYPE | String | Specifies the type of library to be created. "Shared" libraries are linked dynamically and loaded at runtime. "Static" libraries are archives of object files used when linking other targets. Note that Draw Harness plugin system is incompatible with "Static" builds, and therefore it is disabled for these builds.|
|
||||
| BUILD_ADDITIONAL_TOOLKITS | String | Semicolon-separated individual toolkits to include into build process. If you want to build some particular libraries (toolkits) only, then you may uncheck all modules in the corresponding *BUILD_MODUE_\<MODULE\>* options and provide the list of necessary libraries here. Of course, all dependencies will be resolved automatically |
|
||||
| BUILD_YACCLEX | Boolean | Enables Flex/Bison lexical analyzers. OCCT source files relating to STEP reader and ExprIntrp functionality are generated automatically with Flex/Bison. Checking this option leads to automatic search of Flex/Bison binaries and regeneration of the mentioned files |
|
||||
| BUILD_SAMPLES_MFC | Boolean | Indicates whether MFC samples should be built together with OCCT. This option is only relevant to Windows platforms |
|
||||
| BUILD_SAMPLES_QT | Boolean | Indicates whether QT samples should be built together with OCCT. |
|
||||
| BUILD_Inspector | Boolean | Indicates whether Inspector should be built together with OCCT. |
|
||||
| BUILD_DOC_Overview | Boolean | Indicates whether OCCT overview documentation project should be created together with OCCT. It is not built together with OCCT. Checking this option leads to automatic search of Doxygen binaries. Its building calls Doxygen command to generate the documentation in HTML format |
|
||||
| BUILD_YACCLEX | Boolean flag | Enables Flex/Bison lexical analyzers. OCCT source files relating to STEP reader and ExprIntrp functionality are generated automatically with Flex/Bison. Checking this option leads to automatic search of Flex/Bison binaries and regeneration of the mentioned files |
|
||||
| BUILD_SAMPLES_MFC | Boolean flag | Indicates whether MFC samples should be built together with OCCT. This option is only relevant to Windows platforms |
|
||||
| BUILD_SAMPLES_QT | Boolean flag | Indicates whether QT samples should be built together with OCCT. |
|
||||
| BUILD_Inspector | Boolean flag | Indicates whether Inspector should be built together with OCCT. |
|
||||
| BUILD_DOC_Overview | Boolean flag | Indicates whether OCCT overview documentation project should be created together with OCCT. It is not built together with OCCT. Checking this option leads to automatic search of Doxygen binaries. Its building calls Doxygen command to generate the documentation in HTML format |
|
||||
| BUILD_PATCH | Path | Points to the directory recognized as a "patch" for OCCT. If specified, the files from this directory take precedence over the corresponding native OCCT sources. This way you are able to introduce patches to Open CASCADE Technology not affecting the original source distribution |
|
||||
| BUILD_WITH_DEBUG | Boolean | Enables extended messages of many OCCT algorithms, usually printed to cout. These include messages on internal errors and special cases encountered, timing, etc. |
|
||||
| BUILD_ENABLE_FPE_SIGNAL_HANDLER | Boolean | Enable/Disable the floating point exceptions (FPE) during DRAW execution only. Corresponding environment variable (CSF_FPE) can be changed manually in custom.bat/sh scripts without regeneration by CMake. |
|
||||
| BUILD_WITH_DEBUG | Boolean flag | Enables extended messages of many OCCT algorithms, usually printed to cout. These include messages on internal errors and special cases encountered, timing, etc. |
|
||||
| BUILD_ENABLE_FPE_SIGNAL_HANDLER | Boolean flag | Enable/Disable the floating point exceptions (FPE) during DRAW execution only. Corresponding environment variable (CSF_FPE) can be changed manually in custom.bat/sh scripts without regeneration by CMake. |
|
||||
| CMAKE_CONFIGURATION_TYPES | String | Semicolon-separated CMake configurations |
|
||||
| INSTALL_DIR | Path | Points to the installation directory. *INSTALL_DIR* is a synonym of *CMAKE_INSTALL_PREFIX*. The user can specify both *INSTALL_DIR* or *CMAKE_INSTALL_PREFIX* |
|
||||
| INSTALL_DIR_BIN | Path | Relative path to the binaries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_BIN}) |
|
||||
| INSTALL_DIR_SCRIPT | Path | Relative path to the scripts installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}) |
|
||||
| INSTALL_DIR_LIB | Path | Relative path to the libraries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_LIB}) |
|
||||
| INSTALL_DIR_INCLUDE | Path | Relative path to the includes installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_INCLUDE}) |
|
||||
| INSTALL_DIR | Path | Points to the installation directory. *INSTALL_DIR* is a synonym of *CMAKE_INSTALL_PREFIX*. The user can specify both *INSTALL_DIR* or *CMAKE_INSTALL_PREFIX* |
|
||||
| INSTALL_DIR_BIN | Path | Relative path to the binaries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_BIN}) |
|
||||
| INSTALL_DIR_SCRIPT | Path | Relative path to the scripts installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}) |
|
||||
| INSTALL_DIR_LIB | Path | Relative path to the libraries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_LIB}) |
|
||||
| INSTALL_DIR_INCLUDE | Path | Relative path to the includes installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_INCLUDE}) |
|
||||
| INSTALL_DIR_RESOURCE | Path | Relative path to the resources installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}) |
|
||||
| INSTALL_DIR_LAYOUT | String | Defines the structure of OCCT files (binaries, resources, headers, etc.) for the install directory. Two variants are predefined: for Windows (standard OCCT layout) and for Unix operating systems (standard Linux layout). If needed, the layout can be customized with INSTALL_DIR_* variables |
|
||||
| INSTALL_DIR_DATA | Path | Relative path to the data files installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DATA}) |
|
||||
| INSTALL_DIR_SAMPLES | Path | Relative path to the samples installation directory. Note that only "samples/tcl" folder will be installed. (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}) |
|
||||
| INSTALL_DIR_TESTS | Path | Relative path to the tests installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_TESTS}) |
|
||||
| INSTALL_DIR_DOC | Path | Relative path to the documentation installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DOC}) |
|
||||
| INSTALL_FREETYPE | Boolean | Indicates whether FreeType binaries should be installed into the installation directory |
|
||||
| INSTALL_FREEIMAGE | Boolean | Indicates whether FreeImage binaries should be installed into the installation directory |
|
||||
| INSTALL_TBB | Boolean | Indicates whether TBB binaries should be installed into the installation directory |
|
||||
| INSTALL_VTK | Boolean | Indicates whether VTK binaries should be installed into the installation directory |
|
||||
| INSTALL_TCL | Boolean | Indicates whether TCL binaries should be installed into the installation directory |
|
||||
| INSTALL_TEST_CASES | Boolean | Indicates whether non-regression OCCT test scripts should be installed into the installation directory |
|
||||
| INSTALL_DOC_Overview | Boolean | Indicates whether OCCT overview documentation should be installed into the installation directory |
|
||||
| INSTALL_DIR_LAYOUT | String | Defines the structure of OCCT files (binaries, resources, headers, etc.) for the install directory. Two variants are predefined: for Windows (standard OCCT layout) and for Unix operating systems (standard Linux layout). If needed, the layout can be customized with INSTALL_DIR_* variables |
|
||||
| INSTALL_DIR_DATA | Path | Relative path to the data files installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DATA}) |
|
||||
| INSTALL_DIR_SAMPLES | Path | Relative path to the samples installation directory. Note that only "samples/tcl" folder will be installed. (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}) |
|
||||
| INSTALL_DIR_TESTS | Path | Relative path to the tests installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_TESTS}) |
|
||||
| INSTALL_DIR_DOC | Path | Relative path to the documentation installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DOC}) |
|
||||
| INSTALL_FREETYPE | Boolean flag | Indicates whether Freetype binaries should be installed into the installation directory |
|
||||
| INSTALL_FREEIMAGE* | Boolean flag | Indicates whether Freeimage binaries should be installed into the installation directory |
|
||||
| INSTALL_TBB | Boolean flag | Indicates whether TBB binaries should be installed into the installation directory |
|
||||
| INSTALL_VTK | Boolean flag | Indicates whether VTK binaries should be installed into the installation directory |
|
||||
| INSTALL_TCL | Boolean flag | Indicates whether TCL binaries should be installed into the installation directory |
|
||||
| INSTALL_TEST_CASES | Boolean flag | Indicates whether non-regression OCCT test scripts should be installed into the installation directory |
|
||||
| INSTALL_DOC_Overview | Boolean flag | Indicates whether OCCT overview documentation should be installed into the installation directory |
|
||||
|
||||
@note Only the forward slashes ("/") are acceptable in the CMake options defining paths.
|
||||
**Note:** Only the forward slashes ("/") are acceptable in the CMake options defining paths.
|
||||
|
||||
@subsubsection build_cmake_3rdparty 3rd party search mechanism
|
||||
|
||||
If `3RDPARTY_DIR` directory is defined, then required 3rd party binaries are sought in it, and default system folders are ignored.
|
||||
If *3RDPARTY_DIR* directory is defined, then required 3rd party binaries are sought in it, and default system folders are ignored.
|
||||
|
||||
The procedure expects to find binary and header files of each 3rd party product in its own sub-directory: *bin*, *lib* and *include*.
|
||||
|
||||
The results of the search (achieved on the next pass of the configuration process) are recorded in the corresponding variables:
|
||||
|
||||
* `3RDPARTY_<PRODUCT>_DIR` -- path to the 3rdparty directory (with directory name) (e.g. <i>D:/3rdparty/tcltk-86-32</i>);
|
||||
* `3RDPARTY_<PRODUCT>_LIBRARY_DIR` -- path to the directory containing a library (e.g. <i>D:/3rdparty/tcltk-86-32/lib</i>);
|
||||
* `3RDPARTY_<PRODUCT>_INCLUDE_DIR` -- path to the directory containing a header file (e.g., <i>D:/3rdparty/tcltk-86-32/include</i>);
|
||||
* `3RDPARTY_<PRODUCT>_DLL_DIR` -- path to the directory containing a shared library (e.g., <i>D:/3rdparty/tcltk-86-32/bin</i>) This variable is only relevant to Windows platforms.
|
||||
* *3RDPARTY_\<PRODUCT\>_DIR* -- path to the 3rdparty directory (with directory name) (e.g. <i>D:/3rdparty/tcltk-86-32</i>)
|
||||
* *3RDPARTY_\<PRODUCT\>_LIBRARY_DIR* -- path to the directory containing a library (e.g. <i>D:/3rdparty/tcltk-86-32/lib</i>).
|
||||
* *3RDPARTY_\<PRODUCT\>_INCLUDE_DIR* -- path to the directory containing a header file (e.g., <i>D:/3rdparty/tcltk-86-32/include</i>)
|
||||
* *3RDPARTY_\<PRODUCT\>_DLL_DIR* -- path to the directory containing a shared library (e.g., <i>D:/3rdparty/tcltk-86-32/bin</i>) This variable is only relevant to Windows platforms.
|
||||
|
||||
@note Each library and include directory should be children of the product directory if the last one is defined.
|
||||
Note: each library and include directory should be children of the product directory if the last one is defined.
|
||||
|
||||
The search process is as follows:
|
||||
|
||||
1. Common path: `3RDPARTY_DIR`
|
||||
2. Path to a particular 3rd-party library: `3RDPARTY_<PRODUCT>_DIR`
|
||||
1. Common path: *3RDPARTY_DIR*
|
||||
2. Path to a particular 3rd-party library: *3RDPARTY_\<PRODUCT\>_DIR*
|
||||
3. Paths to headers and binaries:
|
||||
1. `3RDPARTY_<PRODUCT>_INCLUDE_DIR`
|
||||
2. `3RDPARTY_<PRODUCT>_LIBRARY_DIR`
|
||||
3. `3RDPARTY_<PRODUCT>_DLL_DIR`
|
||||
1. *3RDPARTY_\<PRODUCT\>_INCLUDE_DIR*
|
||||
2. *3RDPARTY_\<PRODUCT\>_LIBRARY_DIR*
|
||||
3. *3RDPARTY_\<PRODUCT\>_DLL_DIR*
|
||||
|
||||
If a variable of any level is not defined (empty or `<variable name>-NOTFOUND`) and the upper level variable is defined, the content of the non-defined variable will be sought at the next configuration step.
|
||||
If the search process at level 3 does not find the required files, it seeks in default places.
|
||||
If a variable of any level is not defined (empty or <i> \<variable name\>-NOTFOUND </i>) and the upper level variable is defined, the content of the non-defined variable will be sought at the next configuration step. If the search process at level 3 does not find the required files, it seeks in default places.
|
||||
|
||||
If a search result (include path, or library path, or dll path) does not meet your expectations, you can change `3RDPARTY_<PRODUCT>_*_DIR` variable,
|
||||
clear (if they are not empty) `3RDPARTY_<PRODUCT>_DLL_DIR`, `3RDPARTY_<PRODUCT>_INCLUDE_DIR` and `3RDPARTY_<PRODUCT>_LIBRARY_DIR` variables (or clear one of them) and run the configuration process again.
|
||||
If a search result (include path, or library path, or dll path) does not meet your expectations, you can change *3RDPARTY_\<PRODUCT\>_*_DIR variable*, clear (if they are not empty) *3RDPARTY_\<PRODUCT\>_DLL_DIR, 3RDPARTY_\<PRODUCT\>_INCLUDE_DIR* and 3RDPARTY_\<PRODUCT\>_LIBRARY_DIR variables (or clear one of them) and run the configuration process again.
|
||||
|
||||
At this time the search will be performed in the newly identified directory and the result will be recorded to corresponding variables (replace old value if it is necessary).
|
||||
For example, `3RDPARTY_FREETYPE_DIR` variable
|
||||
At this time the search will be performed in the newly identified directory
|
||||
and the result will be recorded to corresponding variables (replace old value if it is necessary).
|
||||
|
||||
For example, *3RDPARTY_FREETYPE_DIR* variable
|
||||
|
||||
d:/3rdparty/freetype-2.4.10
|
||||
|
||||
can be changed to
|
||||
can be changed to
|
||||
|
||||
d:/3rdparty/freetype-2.5.3
|
||||
|
||||
During the configuration process the related variables (`3RDPARTY_FREETYPE_DLL_DIR`, `3RDPARTY_FREETYPE_INCLUDE_DIR` and `3RDPARTY_FREETYPE_LIBRARY_DIR`) will be filled with new found values.
|
||||
During the configuration process the related variables (*3RDPARTY_FREETYPE_DLL_DIR*, *3RDPARTY_FREETYPE_INCLUDE_DIR* and *3RDPARTY_FREETYPE_LIBRARY_DIR*) will be filled with new found values.
|
||||
|
||||
@note The names of searched libraries and header files are hard-coded.
|
||||
If there is the need to change their names, change appropriate CMake variables (edit CMakeCache.txt file or edit in cmake-gui in advance mode) without reconfiguration:
|
||||
`3RDPARTY_<PRODUCT>_INCLUDE` for include, `3RDPARTY_<PRODUCT>_LIB` for library and `3RDPARTY_<PRODUCT>_DLL` for shared library.
|
||||
**Note**: The names of searched libraries and header files are hard-coded. If there is the need to change their names, change appropriate cmake variables (edit CMakeCache.txt file or edit in cmake-gui in advance mode) without reconfiguration: *3RDPARTY_\<PRODUCT\>_INCLUDE* for include, *3RDPARTY_\<PRODUCT\>_LIB* for library and *3RDPARTY_\<PRODUCT\>_DLL* for shared library.
|
||||
|
||||
@subsection build_cmake_gen Projects generation
|
||||
@subsubsection build_cmake_gen Projects generation
|
||||
|
||||
Once the configuration process is done, the "Generate" button is used to prepare project files for the target IDE.
|
||||
In our exercise the Visual Studio solution will be automatically created in the build directory.
|
||||
|
||||
@subsection build_cmake_build Building
|
||||
@subsubsection build_cmake_build Building
|
||||
|
||||
Go to the build folder, start the Visual Studio solution *OCCT.sln* and build it by clicking **Build -> Build Solution**.
|
||||
|
||||
@figure{/build/build_occt/images/cmake_image004.png}
|
||||
|
||||
By default, the build solution process skips the building of the INSTALL and Overview projects.
|
||||
By default the build solution process skips the building of the INSTALL and Overview project.
|
||||
|
||||
When the building process is finished build:
|
||||
* *Overview* project to generate OCCT overview documentation (if `BUILD_DOC_Overview` variable is checked)
|
||||
* the *INSTALL* project to run the **installation process**
|
||||
* Overview project to generate OCCT overview documentation (if BUILD_DOC_Overview variable is checked)
|
||||
* the *INSTALL* project to run **the installation process**
|
||||
|
||||
For this, right-click on the *Overview/INSTALL* project and select **Project Only -> Build Only** -> *Overview/INSTALL* in the solution explorer.
|
||||
For this, right-click on the *Overview/INSTALL* project and select **Project Only -> Build Only** -> *Overview/INSTALL* in the solution explorer.
|
||||
|
||||
@subsection build_cmake_install Installation
|
||||
@subsubsection build_cmake_install Installation
|
||||
|
||||
Installation is a process of extracting redistributable resources (binaries, include files etc) from the build directory into the installation one.
|
||||
The installation directory will be free of project files, intermediate object files and any other information related to the build routines.
|
||||
Installation is a process of extracting redistributable resources (binaries, include files etc) from the build directory into the installation one. The installation directory will be free of project files, intermediate object files and any other information related to the build routines.
|
||||
|
||||
Normally you use the installation directory of OCCT to link against your specific application.
|
||||
|
||||
Normally you use the installation directory of OCCT to link against your specific application.
|
||||
The directory structure is as follows:
|
||||
|
||||
data -- data files for OCCT (brep, iges, stp)
|
||||
doc -- OCCT overview documentation in HTML format
|
||||
inc -- header files
|
||||
samples -- samples
|
||||
src -- all required source files for OCCT
|
||||
tests -- OCCT test suite
|
||||
win32\vc10\bind -- binary files (installed 3rdparties and occt)
|
||||
\libd -- libraries (installed 3rdparties and occt)
|
||||
|
||||
data - data files for OCCT (brep, iges, stp)
|
||||
doc - OCCT overview documentation in HTML format
|
||||
inc - header files
|
||||
samples - samples
|
||||
src - all required source files for OCCT
|
||||
tests - OCCT test suite
|
||||
win32\vc10\bind - binary files (installed 3rdparties and occt)
|
||||
\libd - libraries (installed 3rdparties and occt)
|
||||
|
||||
@note The above example is given for debug configuration.
|
||||
However, it is generally safe to use the same installation directory for the release build.
|
||||
In the latter case the contents of install directory will be enriched with subdirectories and files related to the release configuration.
|
||||
In particular, the binaries directory win64 will be expanded as follows:
|
||||
**Note:** The above example is given for debug configuration. However, it is generally safe to use the same installation directory for the release build. In the latter case the contents of install directory will be enriched with subdirectories and files related to the release configuration. In particular, the binaries directory win64 will be expanded as
|
||||
follows:
|
||||
|
||||
\win32\vc10\bind
|
||||
\libd
|
||||
\bin
|
||||
\lib
|
||||
|
||||
If CMake installation flags are enabled for the 3rd party products (e.g. `INSTALL_FREETYPE`), then the corresponding binaries will be copied to the same bin(d) and lib(d) directories together with the native binaries of OCCT.
|
||||
Such organization of libraries can be especially helpful if your OCCT-based software does not use itself the 3rd parties of Open CASCADE Technology (thus, there is no sense to pack them into dedicated directories).
|
||||
If CMake installation flags are enabled for the 3rd party products (e.g. INSTALL_FREETYPE), then the corresponding binaries will be copied to the same bin(d) and lib(d) directories together with the native binaries of OCCT. Such organization of libraries can be especially helpful if your OCCT-based software does not use itself the 3rd parties of Open CASCADE Technology (thus, there is no sense to pack them into dedicated directories).
|
||||
|
||||
The installation folder contains the scripts to run *DRAWEXE* (*draw.bat* or *draw.sh*), samples (if they were installed) and overview.html (short-cut for installed OCCT overview documentation).
|
||||
|
||||
@subsection build_occt_crossplatform_cmake Cross-compiling (Android)
|
||||
@subsection build_occt_win_codeblocks Building with Code::Blocks
|
||||
|
||||
This section describes the steps to build OCCT libraries for Android from a complete source package with GNU make (makefiles).
|
||||
The steps on Windows 7 and Ubuntu 15.10 are similar. There is the only one difference: makefiles are built with mingw32-make on Windows and native GNU make on Ubuntu.
|
||||
This file describes steps to build OCCT libraries from sources using **Code::Blocks**, a cross-platform IDE, using project files generated by OCCT legacy tool **genproj**.
|
||||
It can be used as an alternative to CMake build system (see @ref build_occt_win_cmake) for all supported platforms.
|
||||
|
||||
Required tools (download and install if it is required):
|
||||
- CMake 3.0+
|
||||
- [Cross-compilation toolchain for CMake](https://github.com/taka-no-me/android-cmake)
|
||||
- [Android NDK r12+](https://developer.android.com/ndk/downloads)
|
||||
- GNU Make: MinGW v4.82+ for [Windows](https://www.mingw-w64.org/), GNU Make 4.0 for Ubuntu.
|
||||
@subsubsection build_codeblocks_3rdparty Third-party libraries
|
||||
|
||||
Run GUI tool provided by CMake and:
|
||||
- Specify the root folder of OCCT (`$CASROOT`, which contains *CMakelists.txt* file) by clicking **Browse Source**.
|
||||
- Specify the location (build folder) for CMake generated project files by clicking **Browse Build**.
|
||||
Before building OCCT, make sure to have all the needed third-party libraries installed, see @ref build_upgrade.
|
||||
|
||||
@figure{/build/build_occt/images/android_image001.png}
|
||||
@subsubsection build_codeblocks_conf Configuration
|
||||
|
||||
Click **Configure** button. It opens the window with a drop-down list of generators supported by CMake project.
|
||||
Select "MinGW MakeFiles" item from the list
|
||||
- Choose "Specify toolchain file for cross-compiling", and click "Next".
|
||||
@figure{/build/build_occt/images/android_image002.png}
|
||||
Before building it is necessary to set up build environment.
|
||||
|
||||
- Specify a toolchain file at the next dialog to `android.toolchain.cmake`, and click "Finish".
|
||||
@figure{/build/build_occt/images/android_image003.png}
|
||||
The environment is defined in the file *custom.sh* (on Linux and OS X) or *custom.bat* (on Windows) which can be edited directly:
|
||||
|
||||
If `ANDROID_NDK` environment variable is not defined in current OS, add cache entry `ANDROID_NDK` (entry type is `PATH`) -- path to the NDK folder ("Add Entry" button):
|
||||
@figure{/build/build_occt/images/android_image004.png}
|
||||
|
||||
If on Windows the message is appeared:
|
||||
"CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles" CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.",
|
||||
specify `CMAKE_MAKE_PROGRAM` to mingw32-make executable.
|
||||
@figure{/build/build_occt/images/android_image005.png}
|
||||
|
||||
How to configure OCCT, see @ref build_cmake_conf "Configure" section taking into account the specific configuration variables for Android:
|
||||
- `ANDROID_ABI` = `armeabi-v7a`
|
||||
- `ANDROID_NATIVE_API_LEVEL` = `15`
|
||||
- `ANDROID_NDK_LAYOUT` is equal to `CMAKE_BUILD_TYPE` variable
|
||||
- `BUILD_MODULE_Draw` = `OFF`
|
||||
|
||||
@figure{/build/build_occt/images/android_image006.png}
|
||||
|
||||
Click **Generate** button and wait until the generation process is finished.
|
||||
Then makefiles will appear in the build folder (e.g. <i> D:/tmp/occt-android </i>).
|
||||
|
||||
Open console and go to the build folder. Type "mingw32-make" (Windows) or "make" (Ubuntu) to start build process:
|
||||
> mingw32-make
|
||||
or
|
||||
> make
|
||||
|
||||
Parallel building can be started with using `-jN` argument of "mingw32-make/make", where `N` is the number of building threads:
|
||||
> mingw32-make -j4
|
||||
or
|
||||
> make -j4
|
||||
|
||||
Type "mingw32-make/make" with argument "install" to place the libraries to the install folder:
|
||||
> mingw32-make install
|
||||
or
|
||||
> make install
|
||||
|
||||
@section build_occt_genproj Building with Genproj tool
|
||||
|
||||
**genproj** is a legacy tool (originated from command "wgenproj" in WOK) for generation of Visual Studio, Code::Blocks, Qt Creator (qmake), and XCode project files for building Open CASCADE Technology.
|
||||
These project files are placed inside OCCT directory (in *adm* subfolder) and use relative paths, thus can be moved together with sources.
|
||||
The project files included in official distribution of OCCT are generated by this tool.
|
||||
|
||||
@note If you have official distribution with project files included, you can use them directly without a need to call **genproj**.
|
||||
|
||||
**genproj** is a less flexible alternative to use of CMake build system (see @ref build_occt_win_cmake), but still has some small features useful for OCCT development.
|
||||
|
||||
@subsection build_genproj Configuration process
|
||||
|
||||
The environment is defined in the file *custom.sh* (on Linux and macOS) or *custom.bat* (on Windows) which can be edited directly:
|
||||
|
||||
* `ARCH` -- architecture (32 or 64), affects only `PATH` variable for execution
|
||||
* `HAVE_*` -- flags to enable or disable use of optional third-party products
|
||||
* `CSF_OPT_*` -- paths to search for includes and binaries of all used third-party products
|
||||
* `SHORTCUT_HEADERS` -- defines method for population of folder *inc* by header files. Supported methods are:
|
||||
* Add paths to includes of used third-party libraries in variable *CSF_OPT_INC*.
|
||||
* Add paths to their binary libraries in variable *CSF_OPT_LIB64*.
|
||||
* Set variable *SHORTCUT_HEADERS* to specify a method for population of folder *inc* by header files. Supported methods are:
|
||||
* *Copy* - headers will be copied from *src*;
|
||||
* *ShortCut* - short-cut header files will be created, redirecting to same-named header located in *src*;
|
||||
* *HardLink* - hard links to headers located in *src* will be created.
|
||||
* `VCVER` -- specification of format of project files, defining also version of Visual Studio to be used, and default name of the sub-folder for binaries:
|
||||
* Add paths to includes of used third-party libraries in variable `CSF_OPT_INC`.
|
||||
* Add paths to their binary libraries in variable `CSF_OPT_LIB64`.
|
||||
* For optional third-party libraries, set corresponding environment variable `HAVE_<LIBRARY_NAME>` to either *false*, e.g. `export HAVE_FREEIMAGE=false`.
|
||||
* "HardLink* - hard links to headers located in *src* will be created.
|
||||
* For optional third-party libraries, set corresponding environment variable <i>HAVE_<LIBRARY_NAME></i> to either *false*, e.g.:
|
||||
~~~~
|
||||
export HAVE_FREEIMAGE=false
|
||||
~~~~
|
||||
|
||||
Alternatively, or when *custom.sh* or *custom.bat* does not exist, you can launch **genconf** tool to configure environment interactively:
|
||||
|
||||
@figure{/build/build_occt/images/genconf_linux.png}
|
||||
|
||||
Click "Save" to store the specified configuration in *custom.sh* or *custom.bat* file.
|
||||
|
||||
@subsubsection build_codeblocks_gen Projects generation
|
||||
|
||||
Launch **genproj** tool with option *cbp* to update content of *inc* folder and generate project files after changes in OCCT code affecting layout or composition of source files:
|
||||
|
||||
~~~~
|
||||
$ cd /dev/OCCT/opencascade-7.0.0
|
||||
$ ./genproj cbp
|
||||
~~~~
|
||||
|
||||
The generated Code::Blocks project are placed into subfolder *adm/<OS>/cbp*.
|
||||
|
||||
@note To use **genproj** and **genconf** tools you need to have Tcl installed and accessible by PATH.
|
||||
|
||||
@subsubsection build_codeblocks_build Building
|
||||
|
||||
To start **Code::Blocks**, launch script *codeblocks.sh*.
|
||||
|
||||
To build all toolkits, click **Build->Build workspace** in the menu bar.
|
||||
|
||||
To start *DRAWEXE*, which has been built with **Code::Blocks** on Mac OS X, run the script
|
||||
~~~~
|
||||
./draw.sh cbp [d]
|
||||
~~~~
|
||||
Option *d* is used if OCCT has been built in **Debug** mode.
|
||||
|
||||
@subsection build_occt_genproj Building with Genproj tool
|
||||
|
||||
This page describes steps to build OCCT libraries from a complete source archive on Windows with <b>MS Visual C++</b> using projects generated by **genproj** tool.
|
||||
It is an alternative to use of CMake build system (see @ref build_occt_win_cmake).
|
||||
|
||||
**genproj** is a legacy tool (originated from command "wgenproj" in WOK) for generation of Visual Studio, Code.Blocks, and XCode project files used for building Open CASCADE Technology.
|
||||
These project files are placed inside OCCT directory (in *adm* subfolder) and use relative paths, thus can be moved together with sources.
|
||||
|
||||
The project files included in official distribution of OCCT are generated by this tool.
|
||||
If you have official distribution with project files included, you can use them directly without a need to call **genproj**.
|
||||
|
||||
@subsubsection build_msvc_3rdparty Third-party libraries
|
||||
|
||||
Before building OCCT, make sure to have all the required third-party libraries installed.
|
||||
|
||||
The easiest way to install third-party libraries is to download archive with pre-built binaries, corresponding to version of Visual Studio you are using, from https://opencascade.com/content/3rd-party-components.
|
||||
|
||||
You can also build third-party libraries from their sources, see @ref build_upgrade_building_3rdparty for instructions.
|
||||
|
||||
@subsubsection build_msvc_conf Configuration
|
||||
|
||||
If you have Visual Studio projects already available (pre-installed or generated), you can edit file *custom.bat* manually to adjust the environment:
|
||||
|
||||
* *VCVER* -- specification of format of project files, defining also version of Visual Studio to be used, and default name of the sub-folder for binaries:
|
||||
|
||||
| VCVER | Visual Studio version | Windows Platform | Binaries folder name |
|
||||
|-----------|-----------------------|----------------------------------|----------------------|
|
||||
@@ -325,85 +315,267 @@ The environment is defined in the file *custom.sh* (on Linux and macOS) or *cust
|
||||
| vc142 | 2019 (16) | Desktop (Windows API) | vc14 |
|
||||
| vc142-uwp | 2019 (16) | UWP (Universal Windows Platform) | vc14-uwp |
|
||||
|
||||
* *ARCH* -- architecture (32 or 64), affects only *PATH* variable for execution
|
||||
* <i>HAVE_*</i> -- flags to enable or disable use of optional third-party products
|
||||
* <i>CSF_OPT_*</i> -- paths to search for includes and binaries of all used third-party products
|
||||
* *SHORTCUT_HEADERS* -- defines method for population of folder *inc* by header files. Supported methods are:
|
||||
* *Copy* - headers will be copied from *src*;
|
||||
* *ShortCut* - short-cut header files will be created, redirecting to same-named header located in *src*;
|
||||
* "HardLink* - hard links to headers located in *src* will be created.
|
||||
|
||||
Alternatively, you can launch **genconf**, a GUI tool allowing to configure build options interactively.
|
||||
That tool will analyze your environment and propose you to choose available options:
|
||||
|
||||
* Type and version of project files to generate (from the list of installed ones, detected by presence of environment variables like `VS100COMNTOOLS` on Windows platform).
|
||||
* Version of Visual Studio to be used (from the list of installed ones, detected by presence of environment variables like *VS100COMNTOOLS*).
|
||||
* Method to populate folder *inc* (short-cuts by default).
|
||||
* Location of third-party libraries (usually downloaded from OCCT web site, see above).
|
||||
* Path to common directory where third-party libraries are located (optional).
|
||||
* Paths to headers and binaries of the third-party libraries (found automatically basing on previous options; click button "Reset" to update).
|
||||
* Generation of PDB files within Release build ("Release with Debug info", false by default).
|
||||
|
||||
Below are screenshots of **genconf** tool on various platforms (Windows and Linux):
|
||||
@figure{/build/build_occt/images/genconf_windows.png}
|
||||
@figure{/build/build_occt/images/genconf_linux.png}
|
||||
|
||||
Click "Save" to store the specified configuration in *custom.bat* (Windows) or *custom.sh* (other systems) file.
|
||||
|
||||
@subsection build_genproj_generate Projects generation
|
||||
Click "Save" to store the specified configuration in *custom.bat* file.
|
||||
|
||||
@subsubsection build_msvc_generate Projects generation
|
||||
|
||||
Launch **genproj** to update content of *inc* folder and generate project files after changes in OCCT code affecting layout or composition of source files.
|
||||
|
||||
@note To use **genproj** and **genconf** tools you need to have Tcl installed and accessible by `PATH`.
|
||||
@note To use **genproj** and **genconf** tools you need to have Tcl installed and accessible by PATH.
|
||||
If Tcl is not found, the tool may prompt you to enter the path to directory where Tcl can be found.
|
||||
|
||||
|
||||
~~~~
|
||||
$ genproj.bat
|
||||
~~~~
|
||||
|
||||
Note that if *custom.bat* is not present, **genproj** will start **genconf** to configure environment.
|
||||
|
||||
@subsection build_genproj_build Building
|
||||
|
||||
@subsubsection build_msvc_build Visual Studio
|
||||
@subsubsection build_msvc_build Building
|
||||
|
||||
Launch *msvc.bat* to start Visual Studio with all necessary environment variables defined, and build the whole solution or required toolkits.
|
||||
|
||||
The MSVC project files are located in folders <i>adm\\msvc\\vc...</i>.
|
||||
Note: the MSVC project files are located in folders <i>adm\\msvc\\vc...</i>.
|
||||
Binaries are produced in *win32* or *win64* folders.
|
||||
|
||||
To start DRAW, launch *draw.bat*.
|
||||
|
||||
@subsubsection build_codeblocks_build Code::Blocks
|
||||
@section build_occt_linux Linux
|
||||
|
||||
Code::Blocks is a cross-platform IDE which can be used for building OCCT on Linux, macOS and Windows platforms.
|
||||
The generated Code::Blocks project could be found within subfolder *adm/<OS>/cbp*.
|
||||
You may choose one of the following ways to generate, configure and build OCCT sources on Linux just keeping in mind
|
||||
this platform specific:
|
||||
|
||||
To start **Code::Blocks**, launch script *codeblocks.sh*.
|
||||
To build all toolkits, click **Build->Build workspace** in the menu bar.
|
||||
* @ref build_occt_win_cmake "Configuration, generation and building OCCT on Windows using CMake tool"
|
||||
* @ref build_occt_code_blocks "Building on Mac OS X with Code::Blocks IDE"
|
||||
|
||||
To start *DRAWEXE*, which has been built with **Code::Blocks** on Mac OS X, run the script
|
||||
@section build_occt_crossplatform_cmake Android (cross-compiling)
|
||||
|
||||
This article describes the steps to build OCCT libraries for Android from a complete source package
|
||||
with GNU make (makefiles). The steps on Windows 7 and Ubuntu 15.10 are similar. There is the only one difference:
|
||||
makefiles are built with mingw32-make
|
||||
on Windows and native GNU make on Ubuntu.
|
||||
|
||||
Required tools (download and install if it is required):
|
||||
- CMake v3.0+ http://www.cmake.org/cmake/resources/software.html
|
||||
- Cross-compilation toolchain for CMake https://github.com/taka-no-me/android-cmake
|
||||
- Android NDK rev.10+ https://developer.android.com/tools/sdk/ndk/index.html
|
||||
- GNU Make: MinGW v4.82+ for Windows (http://sourceforge.net/projects/mingw/files/), GNU Make 4.0 for Ubuntu.
|
||||
|
||||
Run GUI tool provided by CMake.
|
||||
|
||||
@subsection build_occt_crossplatform_cmake_config Configuration
|
||||
|
||||
**Configure Tools**
|
||||
- Specify the root folder of OCCT (<i>$CASROOT</i>, which contains *CMakelists.txt* file) by clicking **Browse Source**.
|
||||
- Specify the location (build folder) for Cmake generated project files by clicking **Browse Build**.
|
||||
|
||||
@figure{/build/build_occt/images/android_image001.png}
|
||||
|
||||
Click **Configure** button. It opens the window with a drop-down list of generators supported by CMake project.
|
||||
|
||||
Select "MinGW MakeFiles" item from the list
|
||||
- Choose "Specify toolchain file for cross-compiling"
|
||||
- Click "Next"
|
||||
@figure{/build/build_occt/images/android_image002.png}
|
||||
|
||||
- Specify a toolchain file at the next dialog by android.toolchain.cmake . It is contained by cross-compilation
|
||||
toolchain for CMake
|
||||
- Click "Finish"
|
||||
@figure{/build/build_occt/images/android_image003.png}
|
||||
|
||||
If ANDROID_NDK environment variable is not defined in current OS, add cache entry ANDROID_NDK (entry type is PATH) --
|
||||
path to the NDK folder ("Add Entry" button)
|
||||
@figure{/build/build_occt/images/android_image004.png}
|
||||
|
||||
If on Windows the message is appeared: "CMake Error: CMake was unable to find a build program corresponding
|
||||
to "MinGW Makefiles"
|
||||
CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.",
|
||||
specify **CMAKE_MAKE_PROGRAM** to mingw32-make executable.
|
||||
@figure{/build/build_occt/images/android_image005.png}
|
||||
|
||||
**Configure OCCT**
|
||||
|
||||
How to configure OCCT, see "OCCT Configuration" section of @ref build_occt_win_cmake
|
||||
"Configure, Generate, Build using CMake tool" taking into account the specific configuration variables for android:
|
||||
- ANDROID_ABI = armeabi-v7a
|
||||
- ANDROID_NATIVE_API_LEVEL = 15
|
||||
- ANDROID_NDK_LAYOUT is equal to CMAKE_BUILD_TYPE variable
|
||||
- **BUILD_MODULE_Draw = OFF**
|
||||
|
||||
@figure{/build/build_occt/images/android_image006.png}
|
||||
|
||||
@subsection build_occt_crossplatform_cmake_generation Generate Makefiles
|
||||
|
||||
Click **Generate** button and wait until the generation process is finished.
|
||||
Then makefiles will appear in the build folder (e.g. <i> D:/tmp/occt-android </i>).
|
||||
|
||||
@subsection build_occt_crossplatform_cmake_building Build Makefiles
|
||||
|
||||
Open console and go to the build folder. Type "mingw32-make" (Windows) or "make" (Ubuntu) to start build process.
|
||||
|
||||
> mingw32-make
|
||||
or
|
||||
> make
|
||||
|
||||
Parallel building can be started with using **"-jN"** argument of "mingw32-make/make", where N is the number of
|
||||
building threads.
|
||||
|
||||
> mingw32-make -j4
|
||||
or
|
||||
> make -j4
|
||||
|
||||
@subsection build_occt_crossplatform_cmake_install Install OCCT Libraries
|
||||
|
||||
Type "mingw32-make/make" with argument "install" to place the libraries to the install folder
|
||||
|
||||
> mingw32-make install
|
||||
or
|
||||
> make install
|
||||
|
||||
@section build_occt_macos Mac OS X
|
||||
|
||||
@subsection build_occt_macos_xcode Building with Xcode
|
||||
|
||||
This file describes steps to build OCCT libraries from sources on Mac OS X with **Xcode** projects, generated by OCCT legacy tool **genproj**.
|
||||
|
||||
<h2>Configuration</h2>
|
||||
|
||||
Before building it is necessary to set up build environment.
|
||||
|
||||
The environment is defined in the file *custom.sh* which can be edited directly:
|
||||
|
||||
* Add paths to includes of used third-party libraries in variable *CSF_OPT_INC* (use colon ":" as path separator).
|
||||
* Add paths to their binary libraries in variable *CSF_OPT_LIB64*.
|
||||
* Set variable *SHORTCUT_HEADERS* to specify a method for population of folder *inc* by header files. Supported methods are:
|
||||
* *Copy* - headers will be copied from *src*;
|
||||
* *ShortCut* - short-cut header files will be created, redirecting to same-named header located in *src*;
|
||||
* "HardLink* - hard links to headers located in *src* will be created.
|
||||
* For optional third-party libraries, set corresponding environment variable <i>HAVE_<LIBRARY_NAME></i> to either *false*, e.g.:
|
||||
~~~~
|
||||
./draw.sh cbp [d]
|
||||
export HAVE_FREEIMAGE=false
|
||||
~~~~
|
||||
Option *d* is used if OCCT has been built in **Debug** mode.
|
||||
|
||||
@subsubsection build_occt_macos_xcode XCode
|
||||
Alternatively, or when *custom.sh* does not exist, you can launch *genconf.sh* to configure environment interactively:
|
||||
|
||||
XCode is an IDE for development on macOS platform and targeting macOS and iOS platforms.
|
||||
**genproj** tool comes with a legacy XCode project files generator, but CMake is a preferred way for building OCCT on macOS platform.
|
||||
@figure{/build/build_occt/images/genconf_osx.png}
|
||||
|
||||
To start **XCode**, launch script *xcode.sh*.
|
||||
To build a certain toolkit, select it in **Scheme** drop-down list in XCode toolbar, press **Product** in the menu and click **Build** button.
|
||||
Click "Save" to store the specified configuration in *custom.sh* file.
|
||||
|
||||
<h2>Projects generation</h2>
|
||||
|
||||
Launch **genproj** tool to update content of *inc* folder and generate project files after changes in OCCT code affecting layout or composition of source files.
|
||||
|
||||
@note To use **genproj** and **genconf** tools you need to have Tcl installed and accessible by PATH.
|
||||
|
||||
For instance, in Terminal application:
|
||||
|
||||
~~~~
|
||||
$ cd /dev/OCCT/opencascade-7.0.0
|
||||
$ ./genproj
|
||||
~~~~
|
||||
|
||||
<h2>Building</h2>
|
||||
|
||||
To start **Xcode**, launch script *xcode.sh*.
|
||||
|
||||
To build a certain toolkit, select it in **Scheme** drop-down list in Xcode toolbar, press **Product** in the menu and click **Build** button.
|
||||
|
||||
To build the entire OCCT:
|
||||
* Create a new empty project (select **File -> New -> Project -> Empty project** in the menu; input the project name, e.g. *OCCT*; then click **Next** and **Create**).
|
||||
* Drag and drop the *OCCT* folder in the created *OCCT* project in the Project navigator.
|
||||
* Select **File -> New -> Target -> Aggregate** in the menu.
|
||||
* Enter the project name (e.g. *OCCT*) and click **Finish**. The **Build Phases** tab will open.
|
||||
* Click "+" button to add the necessary toolkits to the target project. It is possible to select all toolkits by pressing **Command+A** combination.
|
||||
* Enter the project name (e.g. *OCCT*) and click **Finish**. The **Build Phases** tab will open.
|
||||
* Click "+" button to add the necessary toolkits to the target project. It is possible to select all toolkits by pressing **Command+A** combination.
|
||||
|
||||
To start *DRAWEXE*, which has been built with XCode on Mac OS X, perform the following steps:
|
||||
<h2>Launching DRAW</h2>
|
||||
|
||||
To start *DRAWEXE*, which has been built with Xcode on Mac OS X, perform the following steps:
|
||||
|
||||
1.Open Terminal application
|
||||
2.Enter `<OCCT_ROOT_DIR>`:
|
||||
|
||||
2.Enter <i>\<OCCT_ROOT_DIR\></i>:
|
||||
~~~~
|
||||
cd \<OCCT_ROOT_DIR\>
|
||||
~~~~
|
||||
|
||||
3.Run the script
|
||||
~~~~
|
||||
./draw.sh xcd [d]
|
||||
./draw_cbp.sh xcd [d]
|
||||
~~~~
|
||||
|
||||
Option *d* is used if OCCT has been built in **Debug** mode.
|
||||
|
||||
@subsection build_occt_code_blocks Building with Code::Blocks
|
||||
|
||||
This file describes steps to build OCCT libraries from sources using **Code::Blocks**, a cross-platform IDE, using
|
||||
project files generated by OCCT legacy tool **genproj**.
|
||||
|
||||
<h2>Configure</h2>
|
||||
|
||||
Before building it is necessary to set up build environment.
|
||||
|
||||
The environment is defined in the file *custom.sh* (on Linux and OS X) or *custom.bat* (on Windows) which can be edited
|
||||
directly:
|
||||
|
||||
* Add paths to includes of used third-party libraries in variable *CSF_OPT_INC*.
|
||||
* Add paths to their binary libraries in variable *CSF_OPT_LIB64*.
|
||||
* Set variable *SHORTCUT_HEADERS* to specify a method for population of folder *inc* by header files. Supported methods are:
|
||||
* *Copy* - headers will be copied from *src*;
|
||||
* *ShortCut* - short-cut header files will be created, redirecting to same-named header located in *src*;
|
||||
* "HardLink* - hard links to headers located in *src* will be created.
|
||||
* For optional third-party libraries, set corresponding environment variable <i>HAVE_<LIBRARY_NAME></i> to either *false*, e.g.:
|
||||
~~~~
|
||||
export HAVE_FREEIMAGE=false
|
||||
~~~~
|
||||
|
||||
Alternatively, or when *custom.sh* or *custom.bat* does not exist, you can launch **genconf** tool to configure
|
||||
environment interactively:
|
||||
|
||||
@figure{/build/build_occt/images/genconf_linux.png}
|
||||
|
||||
Click "Save" to store the specified configuration in *custom.sh* or *custom.bat* file.
|
||||
|
||||
<h2>Generate Projects</h2>
|
||||
|
||||
Launch **genproj** tool with option *cbp* to update content of *inc* folder and generate project files after changes in
|
||||
OCCT code affecting layout or composition of source files:
|
||||
|
||||
~~~~
|
||||
$ cd /dev/OCCT/opencascade-7.0.0
|
||||
$ ./genproj cbp
|
||||
~~~~
|
||||
|
||||
The generated Code::Blocks project are placed into subfolder *adm/<OS>/cbp*.
|
||||
|
||||
@note To use **genproj** and **genconf** tools you need to have Tcl installed and accessible by PATH.
|
||||
|
||||
<h2>Build</h2>
|
||||
|
||||
To start **Code::Blocks**, launch script *codeblocks.sh*.
|
||||
|
||||
To build all toolkits, click **Build->Build workspace** in the menu bar.
|
||||
|
||||
To start *DRAWEXE*, which has been built with **Code::Blocks** on Mac OS X, run the script
|
||||
~~~~
|
||||
./draw_cbp.sh cbp [d]
|
||||
~~~~
|
||||
Option *d* is used if OCCT has been built in **Debug** mode.
|
||||
|
BIN
dox/build/build_occt/images/genconf_osx.png
Normal file
After Width: | Height: | Size: 194 KiB |
@@ -370,7 +370,6 @@ https://www.opencascade.com/content/3rd-party-components
|
||||
| VTK 6.1+ | https://www.vtk.org/download/ | Visualization | Optional (VTK integration) |
|
||||
| Flex 2.6.4+ and Bison 3.7.1+ | https://sourceforge.net/projects/winflexbison/ | Data Exchange | Optional (update of STEP and ExprIntrp parsers) |
|
||||
| RapidJSON 1.1+ | https://rapidjson.org/ | Data Exchange | Optional (reading glTF files) |
|
||||
| Draco 1.4.1+ | https://github.com/google/draco | Data Exchange | Optional (reading compressed glTF files) |
|
||||
| Tcl/Tk 8.6.3+ <br> or ActiveTcl 8.6 | https://www.tcl.tk/software/tcltk/download.html <br> https://www.activestate.com/activetcl/downloads | DRAW Test Harness | Required |
|
||||
| Qt Desktop: Qt 4.8.6+ <br> Android: Qt 5.3.2+ | https://www.qt.io/download/ | Samples and demos | Optional (Qt samples) |
|
||||
| Doxygen 1.8.5+ | https://www.doxygen.nl/download.html | Documentation | Required |
|
||||
@@ -643,10 +642,6 @@ on this tool.
|
||||
**RapidJSON** is an Open Source JSON parser and generator for C++.
|
||||
RapidJSON is optionally used by OCCT for reading glTF files (https://rapidjson.org/).
|
||||
|
||||
**Draco** is an Open Source JSON parser and generator for C++.
|
||||
Draco is optionally used by OCCT for reading glTF files using KHR_draco_mesh_compression extension (https://github.com/google/draco).
|
||||
Draco is available under Apache 2.0 license.
|
||||
|
||||
**DejaVu** fonts are a font family based on the Vera Fonts under a permissive license (MIT-like, https://dejavu-fonts.github.io/License.html).
|
||||
DejaVu Sans (basic Latin sub-set) is used by OCCT as fallback font when no system font is available.
|
||||
|
||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 42 KiB |
@@ -18,7 +18,7 @@ From a programming standpoint, Open CASCADE Technology is designed to enhance yo
|
||||
|
||||
To illustrate the use of classes provided in the 3D geometric modeling toolkits, you will create a bottle as shown:
|
||||
|
||||
@figure{/tutorial/images/tutorial_image001.png,"",240} height=350px
|
||||
@figure{/tutorial/images/tutorial_image001.png,"",240}
|
||||
|
||||
In the tutorial we will create, step-by-step, a function that will model a bottle as shown above. You will find the complete source code of this tutorial, including the very function *MakeBottle* in the distribution of Open CASCADE Technology. The function body is provided in the file samples/qt/Tutorial/src/MakeBottle.cxx.
|
||||
|
||||
@@ -34,7 +34,7 @@ We first define the bottle specifications as follows:
|
||||
|
||||
In addition, we decide that the bottle's profile (base) will be centered on the origin of the global Cartesian coordinate system.
|
||||
|
||||
@figure{/tutorial/images/tutorial_image002.png,"",240} height=350px
|
||||
@figure{/tutorial/images/tutorial_image002.png,"",240}
|
||||
|
||||
This modeling requires four steps:
|
||||
|
||||
@@ -145,16 +145,16 @@ However, the *TopoDS* package provides only the data structure of the topologica
|
||||
To create an edge, you use the BRepBuilderAPI_MakeEdge class with the previously computed curves:
|
||||
|
||||
~~~~{.cpp}
|
||||
TopoDS_Edge anEdge1 = BRepBuilderAPI_MakeEdge(aSegment1);
|
||||
TopoDS_Edge anEdge2 = BRepBuilderAPI_MakeEdge(aArcOfCircle);
|
||||
TopoDS_Edge anEdge3 = BRepBuilderAPI_MakeEdge(aSegment2);
|
||||
TopoDS_Edge aEdge1 = BRepBuilderAPI_MakeEdge(aSegment1);
|
||||
TopoDS_Edge aEdge2 = BRepBuilderAPI_MakeEdge(aArcOfCircle);
|
||||
TopoDS_Edge aEdge3 = BRepBuilderAPI_MakeEdge(aSegment2);
|
||||
~~~~
|
||||
|
||||
In Open CASCADE Technology, you can create edges in several ways. One possibility is to create an edge directly from two points, in which case the underlying geometry of this edge is a line, bounded by two vertices being automatically computed from the two input points. For example, anEdge1 and anEdge3 could have been computed in a simpler way:
|
||||
In Open CASCADE Technology, you can create edges in several ways. One possibility is to create an edge directly from two points, in which case the underlying geometry of this edge is a line, bounded by two vertices being automatically computed from the two input points. For example, aEdge1 and aEdge3 could have been computed in a simpler way:
|
||||
|
||||
~~~~{.cpp}
|
||||
TopoDS_Edge anEdge1 = BRepBuilderAPI_MakeEdge(aPnt1, aPnt3);
|
||||
TopoDS_Edge anEdge2 = BRepBuilderAPI_MakeEdge(aPnt4, aPnt5);
|
||||
TopoDS_Edge aEdge1 = BRepBuilderAPI_MakeEdge(aPnt1, aPnt3);
|
||||
TopoDS_Edge aEdge2 = BRepBuilderAPI_MakeEdge(aPnt4, aPnt5);
|
||||
~~~~
|
||||
|
||||
To connect the edges, you need to create a wire with the *BRepBuilderAPI_MakeWire* class. There are two ways of building a wire with this class:
|
||||
@@ -165,7 +165,7 @@ To connect the edges, you need to create a wire with the *BRepBuilderAPI_MakeWir
|
||||
When building a wire from less than four edges, as in the present case, you can use the constructor directly as follows:
|
||||
|
||||
~~~~{.cpp}
|
||||
TopoDS_Wire aWire = BRepBuilderAPI_MakeWire(anEdge1, anEdge2, anEdge3);
|
||||
TopoDS_Wire aWire = BRepBuilderAPI_MakeWire(aEdge1, aEdge2, aEdge3);
|
||||
~~~~
|
||||
|
||||
|
||||
@@ -250,7 +250,7 @@ The bottle's profile is almost finished. You have created two wires: *aWire* and
|
||||
@subsection OCCT_TUTORIAL_SUB3_1 Prism the Profile
|
||||
|
||||
|
||||
To compute the main body of the bottle, you need to create a solid shape. The simplest way is to use the previously created profile and sweep it along a direction. The *Prism* functionality of Open CASCADE Technology is the most appropriate for that task. It accepts a shape and a direction as input and generates a new shape according to the following rules:
|
||||
To compute the main body of the bottle, you need to create a solid shape. The simplest way is to use the previously created profile and to sweep it along a direction. The *Prism* functionality of Open CASCADE Technology is the most appropriate for that task. It accepts a shape and a direction as input and generates a new shape according to the following rules:
|
||||
|
||||
| Shape | Generates |
|
||||
| :----- | :----------------- |
|
||||
@@ -260,7 +260,7 @@ To compute the main body of the bottle, you need to create a solid shape. The si
|
||||
| Face | Solid |
|
||||
| Shell | Compound of Solids |
|
||||
|
||||
@figure{/tutorial/images/tutorial_image007.png,"",240} height=350px
|
||||
@figure{/tutorial/images/tutorial_image007.png,"",240}
|
||||
|
||||
Your current profile is a wire. Referring to the Shape/Generates table, you need to compute a face out of its wire to generate a solid.
|
||||
To create a face, use the *BRepBuilderAPI_MakeFace* class. As previously explained, a face is a part of a surface bounded by a closed wire. Generally, *BRepBuilderAPI_MakeFace* computes a face out of a surface and one or more wires.
|
||||
@@ -297,7 +297,7 @@ For our purposes, we will specify that fillets must be:
|
||||
* applied on all edges of the shape
|
||||
* have a radius of *myThickness* / 12
|
||||
|
||||
@figure{/tutorial/images/tutorial_image008.png,"",240} height=350px
|
||||
@figure{/tutorial/images/tutorial_image008.png,"",240}
|
||||
|
||||
To apply fillets on the edges of a shape, you use the *BRepFilletAPI_MakeFillet* class. This class is normally used as follows:
|
||||
|
||||
@@ -353,7 +353,7 @@ Once this is done, you perform the last step of the procedure by asking for the
|
||||
|
||||
To add a neck to the bottle, you will create a cylinder and fuse it to the body. The cylinder is to be positioned on the top face of the body with a radius of *myThickness* / 4. and a height of *myHeight* / 10.
|
||||
|
||||
@figure{/tutorial/images/tutorial_image009.png,"",240} height=350px
|
||||
@figure{/tutorial/images/tutorial_image009.png,"",240}
|
||||
|
||||
To position the cylinder, you need to define a coordinate system with the *gp_Ax2* class defining a right-handed coordinate system from a point and two directions - the main (Z) axis direction and the X direction (the Y direction is computed from these two).
|
||||
To align the neck with the center of the top face, being in the global coordinate system (0, 0, *myHeight*), with its normal on the global Z axis, your local coordinate system can be defined as follows:
|
||||
@@ -395,7 +395,7 @@ In Open CASCADE Technology, a hollowed solid is called a *Thick* *Solid* and is
|
||||
* Create a parallel wall W2 from W1 at a distance D. If D is positive, W2 will be outside the initial solid, otherwise it will be inside.
|
||||
* Compute a solid from the two walls W1 and W2.
|
||||
|
||||
@figure{/tutorial/images/tutorial_image010.png,"",240} height=350px
|
||||
@figure{/tutorial/images/tutorial_image010.png,"",240}
|
||||
|
||||
To compute a thick solid, you create an instance of the *BRepOffsetAPI_MakeThickSolid* class by giving the following information:
|
||||
|
||||
@@ -438,6 +438,7 @@ To compare a given type with the type you seek, use the *STANDARD_TYPE* macro, w
|
||||
|
||||
~~~~{.cpp}
|
||||
if(aSurface->DynamicType() == STANDARD_TYPE(Geom_Plane)){
|
||||
//
|
||||
}
|
||||
~~~~
|
||||
|
||||
@@ -477,9 +478,9 @@ The collection for shapes can be found in the *TopTools* package. As *BRepOffset
|
||||
All the necessary data are now available so you can create your hollowed solid by calling the *BRepOffsetAPI_MakeThickSolid* MakeThickSolidByJoin method:
|
||||
|
||||
~~~~{.cpp}
|
||||
BRepOffsetAPI_MakeThickSolid aSolidMaker;
|
||||
aSolidMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = aSolidMaker.Shape();
|
||||
BRepOffsetAPI_MakeThickSolid BodyMaker;
|
||||
BodyMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = BodyMaker.Shape();
|
||||
~~~~
|
||||
|
||||
|
||||
@@ -492,7 +493,7 @@ All the necessary data are now available so you can create your hollowed solid b
|
||||
Up to now, you have learned how to create edges out of 3D curves.
|
||||
You will now learn how to create an edge out of a 2D curve and a surface.
|
||||
To learn this aspect of Open CASCADE Technology, you will build helicoidal profiles out of 2D curves on cylindrical surfaces. The theory is more complex than in previous steps, but applying it is very simple.
|
||||
As a first step, you compute these cylindrical surfaces. You are already familiar with the curves of the *Geom* package. Now you can create a cylindrical surface (*Geom_CylindricalSurface*) using:
|
||||
As a first step, you compute these cylindrical surfaces. You are already familiar with curves of the *Geom* package. Now you can create a cylindrical surface (*Geom_CylindricalSurface*) using:
|
||||
|
||||
* a coordinate system;
|
||||
* a radius.
|
||||
@@ -603,7 +604,7 @@ As the parametric equation of an ellipse is P(U) = O + (MajorRadius * cos(U) * X
|
||||
~~~~
|
||||
|
||||
The last step consists in defining the segment, which is the same for the two profiles: a line limited by the first and the last point of one of the arcs.
|
||||
To access the point corresponding to the parameter of a curve or a surface, you use the Value or D0 method (meaning 0th derivative), D1 method is for the first derivative, D2 for the second one.
|
||||
To access the point corresponding to the parameter of a curve or a surface, you use the Value or D0 method (meaning 0th derivative), D1 method is for first derivative, D2 for the second one.
|
||||
|
||||
~~~~{.cpp}
|
||||
gp_Pnt2d anEllipsePnt1 = anEllipse1->Value(0);
|
||||
@@ -697,7 +698,7 @@ You are almost done building the bottle. Use the *TopoDS_Compound* and *BRep_Bui
|
||||
|
||||
Congratulations! Your bottle is complete. Here is the result snapshot of the Tutorial application:
|
||||
|
||||
@figure{/tutorial/images/tutorial_image019.png,"",320} height=450px
|
||||
@figure{/tutorial/images/tutorial_image019.png,"",320}
|
||||
|
||||
We hope that this tutorial has provided you with a feel for the industrial strength power of Open CASCADE Technology.
|
||||
If you want to know more and develop major projects using Open CASCADE Technology, we invite you to study our training, support, and consulting services on our site at https://www.opencascade.com/content/technology-support. Our professional services can maximize the power of your Open CASCADE Technology applications.
|
||||
@@ -795,9 +796,9 @@ Complete definition of MakeBottle function (defined in the file src/MakeBottle.c
|
||||
|
||||
TopTools_ListOfShape facesToRemove;
|
||||
facesToRemove.Append(faceToRemove);
|
||||
BRepOffsetAPI_MakeThickSolid aSolidMaker;
|
||||
aSolidMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = aSolidMaker.Shape();
|
||||
BRepOffsetAPI_MakeThickSolid BodyMaker;
|
||||
BodyMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = BodyMaker.Shape();
|
||||
// Threading : Create Surfaces
|
||||
Handle(Geom_CylindricalSurface) aCyl1 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 0.99);
|
||||
Handle(Geom_CylindricalSurface) aCyl2 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 1.05);
|
||||
|
@@ -396,7 +396,7 @@ However, due to redesign of basic mechanisms (CDL generic classes, Handles and R
|
||||
|
||||
WOK is not necessary anymore for building OCCT from sources, though it still can be used in a traditional way -- auxiliary files required for that are preserved.
|
||||
The recommended method for building OCCT 7.x is CMake, see @ref build_occt_win_cmake.
|
||||
The alternative solution is to use project files generated by OCCT legacy tool **genproj**, see @ref build_occt_genproj.
|
||||
The alternative solution is to use project files generated by OCCT legacy tool **genproj**, see @ref build_occt_genproj, @ref build_occt_win_codeblocks, and @ref build_occt_macos_xcode.
|
||||
|
||||
@subsubsection upgrade_occt700_cdl_auto Automatic upgrade
|
||||
|
||||
@@ -2211,15 +2211,6 @@ BRep and Binary BRep Shape formats (only in case of triangulation-only Faces, wi
|
||||
Versions of formats have been changed (11 for BinOCAF, 10 for XmlOCAF, 4 for BRep Shape and 3 for Binary BRep Shape).
|
||||
Files written with the new version will not be readable by applications of old versions.
|
||||
|
||||
@subsection upgrade_760_changesBinaryFormat Changes in storage of binary document format
|
||||
|
||||
All kinds of binary document formats since the new version 12 saved with support of partial reading (sub-set of labels and sub-set of attributes).
|
||||
For that the shapes data structures are stored with the related NamedShape attributes in the file, not in the particular section in the start of the document.
|
||||
Also, size allocated for each label is stored in the file. This allows to skip big parts of document in partial reading mode if needed.
|
||||
|
||||
As a result, the new binary files become some smaller, but default reading and writing of documents may take some more time (depenging on the environment), up to 15 percents slower in the worse cases.
|
||||
Backward compatibility (loading of old documents in the newer version) is still fully supported, as well as writing the older versions of the document.
|
||||
|
||||
@subsection upgrade_occt760_poly Changes in *Poly* package and *Poly_Triangulation* class
|
||||
|
||||
*Poly_Triangulation* does no more provide access to internal array structures: methods Nodes(), ChangeNode(), Triangles(), ChangeTriangle(), UVNodes(), ChangeUVNode(), Normals() have been removed.
|
||||
@@ -2253,43 +2244,3 @@ Access to an OCAF label via its entry is accelerated. In order to activate it, c
|
||||
The method *TDF_Tool::Label()*, which returns a label by an entry, becomes faster for about 10 .. 20 times.
|
||||
It has sense for applications, which use an entry as a unique key to access the data in OCAF tree.
|
||||
Also, the method *TDF_Tool::Entry()*, which returns an entry for a label, is accelerated as well.
|
||||
|
||||
@subsection upgrade_occt760_bop_progress_indicator Progress indicator in Boolean operations
|
||||
|
||||
Method SetProgressIndicator() has been removed due to Progress indicator mechanism refactoring.
|
||||
To enable progress indicator and user break in Boolean operations user has to pass progress range as a parameter to Perform or Build method.
|
||||
For example:
|
||||
~~~~
|
||||
Handle(Draw_ProgressIndicator) aProgress = new Draw_ProgressIndicator(di, 1);
|
||||
BRepAlgoApi_Cut(S1, S2, aProgress->Start()); // method Start() creates range for usage in cut algorithm
|
||||
~~~~
|
||||
|
||||
@subsection upgrade_occt760_change_check_to_adaptors Changes in BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface interfaces
|
||||
|
||||
Now the classes accept adaptors instead objects as input parameters.
|
||||
*BRepLib_CheckCurveOnSurface* does no more provide access to curves, surface and parameters: methods PCurve(), PCurve2(), Surface() and Range() have been removed.
|
||||
*BRepLib_CheckCurveOnSurface*: the default value of the *isMultiThread* parameter of the *Perform()* function has been changed from *true* to *false*
|
||||
*GeomLib_CheckCurveOnSurface* does no more provide access to curve, surface and parameters: methods Curve(), Surface() and Range() have been removed.
|
||||
*GeomLib_CheckCurveOnSurface*: the default value of the *isMultiThread* parameter of the *Perform()* function has been changed from *true* to *false*
|
||||
|
||||
The following functions in *GeomLib_CheckCurveOnSurface* have been modified:
|
||||
~~~~{.cpp}
|
||||
GeomLib_CheckCurveOnSurface(const Handle(Adaptor3d_Curve)& theCurve,
|
||||
const Standard_Real theTolRange);
|
||||
|
||||
void Init (const Handle(Adaptor3d_Curve)& theCurve, const Standard_Real theTolRange);
|
||||
|
||||
void Perform(const Handle(Adaptor3d_CurveOnSurface)& theCurveOnSurface,
|
||||
const Standard_Boolean isMultiThread);
|
||||
~~~~
|
||||
|
||||
@subsection upgrade_occt760_old_bop_removed Removal of old Boolean operations algorithm (BRepAlgo_BooleanOperation)
|
||||
|
||||
* The method *BRepAlgo_Tool::Deboucle3D* has been removed as duplicating. The corresponding method from *BRepOffset_Tool* class has to be used instead.
|
||||
* The API classes from *BRepAlgo* package performing old Boolean operations algorithm have been removed:
|
||||
- *BRepAlgo_BooleanOperation*
|
||||
- *BRepAlgo_Fuse*
|
||||
- *BRepAlgo_Common*
|
||||
- *BRepAlgo_Cut*
|
||||
- *BRepAlgo_Section*
|
||||
The corresponding classes from the *BRepAlgoAPI* package have to be used instead.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Draw Test Harness {#occt_user_guides__test_harness}
|
||||
Draw Test Harness {#occt_user_guides__test_harness}
|
||||
===============================
|
||||
|
||||
@tableofcontents
|
||||
@@ -6866,9 +6866,83 @@ tscale c1 0 0 0 0.5
|
||||
~~~~
|
||||
|
||||
|
||||
@subsection occt_draw_7_6 Sewing
|
||||
@subsection occt_draw_7_6 Old Topological operations
|
||||
|
||||
* **fuse**, **cut**, **common** are boolean operations.
|
||||
* **section**, **psection** compute sections.
|
||||
* **sewing** joins two or more shapes.
|
||||
|
||||
|
||||
@subsubsection occt_draw_7_6_1 fuse, cut, common
|
||||
|
||||
These commands are no longer supported, so the result may be unpredictable.
|
||||
Use the commands bfuse, bcut, bcommon instead.
|
||||
|
||||
Syntax:
|
||||
~~~~{.php}
|
||||
fuse name shape1 shape2
|
||||
cut name shape1 shape2
|
||||
common name shape1 shape2
|
||||
~~~~
|
||||
|
||||
**fuse** creates a new shape by a boolean operation on two existing shapes. The new shape contains both originals intact.
|
||||
|
||||
**cut** creates a new shape which contains all parts of the second shape but only the first shape without the intersection of the two shapes.
|
||||
|
||||
**common** creates a new shape which contains only what is in common between the two original shapes in their intersection.
|
||||
|
||||
**Example:**
|
||||
~~~~{.php}
|
||||
# all four boolean operations on a box and a cylinder
|
||||
|
||||
box b 0 -10 5 20 20 10
|
||||
pcylinder c 5 20
|
||||
|
||||
fuse s1 b c
|
||||
ttranslate s1 40 0 0
|
||||
|
||||
cut s2 b c
|
||||
ttranslate s2 -40 0 0
|
||||
|
||||
cut s3 c b
|
||||
ttranslate s3 0 40 0
|
||||
|
||||
common s4 b c
|
||||
ttranslate s4 0 -40 0
|
||||
~~~~
|
||||
|
||||
|
||||
@subsubsection occt_draw_7_6_2 section, psection
|
||||
|
||||
These commands are no longer supported, so the result may be unpredictable.
|
||||
Use the command **bsection** instead.
|
||||
|
||||
Syntax:
|
||||
~~~~{.php}
|
||||
section result shape1 shape2
|
||||
psection name shape plane
|
||||
~~~~
|
||||
|
||||
**section** creates a compound object consisting of the edges for the intersection curves on the faces of two shapes.
|
||||
|
||||
**psection** creates a planar section consisting of the edges for the intersection curves on the faces of a shape and a plane.
|
||||
|
||||
**Example:**
|
||||
~~~~{.php}
|
||||
# section line between a cylinder and a box
|
||||
pcylinder c 10 20
|
||||
box b 0 0 5 15 15 15
|
||||
trotate b 0 0 0 1 1 1 20
|
||||
section s b c
|
||||
|
||||
# planar section of a cone
|
||||
pcone c 10 30 30
|
||||
plane p 0 0 15 1 1 2
|
||||
psection s c p
|
||||
~~~~
|
||||
|
||||
@subsubsection occt_draw_7_6_3 sewing
|
||||
|
||||
**sewing** joins two or more shapes.
|
||||
Syntax:
|
||||
~~~~{.php}
|
||||
sewing result [tolerance] shape1 shape2 ...
|
||||
@@ -6886,8 +6960,7 @@ whatis sr
|
||||
sr is a shape COMPOUND FORWARD Free Modified
|
||||
~~~~
|
||||
|
||||
|
||||
@subsection occt_draw_7_7 Topological operations
|
||||
@subsection occt_draw_7_7 New Topological operations
|
||||
|
||||
The new algorithm of Boolean operations avoids a large number of weak points and limitations presented in the old Boolean operation algorithm.
|
||||
It also provides wider range of options and diagnostics.
|
||||
@@ -7545,7 +7618,7 @@ xdistc2dc2dss c2d1_1 c2d2_1 s1 s2 0 1 1000
|
||||
|
||||
Syntax:
|
||||
~~~~{.php}
|
||||
checkshape [-top] shape [result] [-short] [-parallel]
|
||||
checkshape [-top] shape [result] [-short]
|
||||
~~~~
|
||||
|
||||
Where:
|
||||
@@ -7553,7 +7626,6 @@ Where:
|
||||
* *shape* -- the only required parameter, defines the name of the shape to check.
|
||||
* *result* -- optional parameter, defines custom prefix for the output shape names.
|
||||
* *short* -- a short description of the check.
|
||||
* *parallel* -- run check in multithread mode.
|
||||
|
||||
**checkshape** examines the selected object for topological and geometric coherence. The object should be a three dimensional shape.
|
||||
|
||||
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
@@ -1,27 +1,284 @@
|
||||
<svg width="609" height="426" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Layer_1">
|
||||
<title>Layer 1</title>
|
||||
<rect stroke="#58a50b" id="svg_1" height="424.00001" width="605" y="-0.00001" x="0.5" stroke-width="4" fill="#ffffff"/>
|
||||
<rect id="svg_2" height="89" width="575" y="16" x="13.5" stroke-width="4" stroke="#58a50b" fill="#66af1c"/>
|
||||
<rect stroke="#58a50b" id="svg_3" height="280" width="277.99999" y="121" x="16.5" stroke-width="4" fill="#66af1c"/>
|
||||
<rect stroke="#58a50b" id="svg_4" height="122" width="277.99999" y="120" x="309.5" stroke-width="4" fill="#66af1c"/>
|
||||
<rect stroke="#58a50b" id="svg_5" height="140" width="277.99999" y="256" x="310.5" stroke-width="4" fill="#66af1c"/>
|
||||
<rect id="svg_6" height="64" width="219" y="184" x="47.5" stroke-width="4" stroke="#58a50b" fill="#ffffff"/>
|
||||
<rect id="svg_7" height="40" width="277" y="36" x="30.5" stroke-width="4" stroke="#58a50b" fill="#ffffff"/>
|
||||
<rect stroke="#58a50b" id="svg_8" height="40" width="112" y="36" x="321.5" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#58a50b" id="svg_10" height="40" width="119" y="36" x="446.5" stroke-width="4" fill="#ffffff"/>
|
||||
<text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_11" y="61" x="98.5" stroke-width="0" stroke="#58a50b" fill="#000000">Tree Navigation</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_12" y="63" x="338.5" stroke-width="0" stroke="#58a50b" fill="#000000">Update</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_13" y="65" x="474.5" stroke-width="0" stroke="#58a50b" fill="#ffffff">Search</text>
|
||||
<text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_14" y="62" x="475.5" stroke-width="0" stroke="#58a50b" fill="#000000">Search</text>
|
||||
<rect stroke="#58a50b" id="svg_20" height="54" width="136.99999" y="291" x="318.5" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#58a50b" id="svg_21" height="52" width="188" y="180" x="391.5" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#58a50b" id="svg_22" height="54" width="163" y="136" x="323.5" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#58a50b" id="svg_23" height="53" width="146" y="317" x="426.5" stroke-width="4" fill="#ffffff"/>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_27" y="170" x="338.5" stroke-width="0" stroke="#58a50b" fill="#000000">Property panel</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_28" y="227" x="83.5" stroke-width="0" stroke="#58a50b" fill="#000000">OCAF tree view</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="21" id="svg_30" y="322" x="322.5" stroke-width="0" stroke="#58a50b" fill="#000000">Dump View</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_31" y="352" x="459.5" stroke-width="0" stroke="#58a50b" fill="#000000">3D View</text>
|
||||
<text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="18" id="svg_32" y="214" x="398.5" stroke-width="0" stroke="#58a50b" fill="#000000">Property panel (custom)</text>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="165.36443mm"
|
||||
height="99.48317mm"
|
||||
viewBox="0 0 165.36443 99.48317"
|
||||
version="1.1"
|
||||
id="svg1643"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="dfbrowser_elements.svg">
|
||||
<defs
|
||||
id="defs1637" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="290.24314"
|
||||
inkscape:cy="320.3071"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:window-width="1246"
|
||||
inkscape:window-height="857"
|
||||
inkscape:window-x="371"
|
||||
inkscape:window-y="37"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata1640">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(356.33698,30.17611)">
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:#78943d;stroke-width:0.52916667;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4147"
|
||||
width="164.83542"
|
||||
height="98.95417"
|
||||
x="-356.07248"
|
||||
y="-29.91161"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#9bbb59;fill-opacity:1;fill-rule:evenodd;stroke:#78943d;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4157"
|
||||
width="155.951"
|
||||
height="20.214758"
|
||||
x="-352.0733"
|
||||
y="-25.674246"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#9bbb59;fill-opacity:1;fill-rule:evenodd;stroke:#78943d;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4159"
|
||||
width="75.795822"
|
||||
height="64.91011"
|
||||
x="-352.07172"
|
||||
y="-0.79434544"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#9bbb59;fill-opacity:1;fill-rule:evenodd;stroke:#78943d;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4161-4"
|
||||
width="75.811562"
|
||||
height="30.252827"
|
||||
x="-272.04941"
|
||||
y="33.729694"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#9bbb59;fill-opacity:1;fill-rule:evenodd;stroke:#78943d;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4161-4-8"
|
||||
width="75.811562"
|
||||
height="30.252827"
|
||||
x="-272.04941"
|
||||
y="-0.80220562"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195"
|
||||
width="73.552574"
|
||||
height="11.118413"
|
||||
x="-347.50781"
|
||||
y="-21.126072"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.36620289;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-1"
|
||||
width="30.417513"
|
||||
height="11.316654"
|
||||
x="-267.92496"
|
||||
y="-21.225193"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.36620289;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-1-5"
|
||||
width="30.417513"
|
||||
height="11.316654"
|
||||
x="-231.57631"
|
||||
y="-21.225193"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666677px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-259.7175"
|
||||
y="-14.48304"
|
||||
id="text5675"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5677"
|
||||
x="-259.7175"
|
||||
y="-14.48304"
|
||||
style="font-size:3.88055563px;line-height:1.25;stroke-width:0.28222224px">Update</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666677px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-223.04579"
|
||||
y="-14.12208"
|
||||
id="text5679"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5681"
|
||||
x="-223.04579"
|
||||
y="-14.12208"
|
||||
style="font-size:3.88055563px;line-height:1.25;stroke-width:0.28222224px">Search</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666677px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-325.95343"
|
||||
y="-14.547463"
|
||||
id="text5683"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685"
|
||||
x="-325.95343"
|
||||
y="-14.547463"
|
||||
style="font-size:3.88055563px;line-height:1.25;stroke-width:0.28222224px">Tree Navigation</tspan></text>
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8"
|
||||
width="65.570122"
|
||||
height="19.385952"
|
||||
x="-347.50781"
|
||||
y="11.248657"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666654px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-333.31332"
|
||||
y="22.090868"
|
||||
id="text5683-5"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3"
|
||||
x="-333.31332"
|
||||
y="22.090868"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">OCAF tree view</tspan></text>
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8-0"
|
||||
width="65.570122"
|
||||
height="19.385952"
|
||||
x="-267.68332"
|
||||
y="3.9789243"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8-3-5"
|
||||
width="38.7719"
|
||||
height="16.820164"
|
||||
x="-267.11316"
|
||||
y="37.191612"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#9bbb59;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8-3"
|
||||
width="38.7719"
|
||||
height="16.820164"
|
||||
x="-240.60002"
|
||||
y="42.180641"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666654px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-252.8326"
|
||||
y="13.779153"
|
||||
id="text5683-5-9"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-8"
|
||||
x="-252.8326"
|
||||
y="13.779153"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">Property Panel</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666654px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-231.82542"
|
||||
y="51.393177"
|
||||
id="text5683-5-0"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-5"
|
||||
x="-231.82542"
|
||||
y="51.393177"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">3D View</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666654px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-267.25568"
|
||||
y="46.086102"
|
||||
id="text5683-5-1"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\dfbrowser.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-80"
|
||||
x="-267.25568"
|
||||
y="46.086102"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">Dump View</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 33 KiB |
@@ -1,21 +0,0 @@
|
||||
<svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Layer_1">
|
||||
<title>Layer 1</title>
|
||||
<rect stroke="#ff56ff" id="svg_1" height="296.99999" width="297.00002" y="1.6" x="1" stroke-width="4" fill="#ffffff"/>
|
||||
<rect id="svg_3" height="120" width="136" y="22.6" x="153" stroke-width="4" stroke="#ff56ff" fill="#ff56ff"/>
|
||||
<rect stroke="#ff56ff" id="svg_4" height="259.99999" width="126.99999" y="18.6" x="16" stroke-width="4" fill="#ff56ff"/>
|
||||
<rect stroke="#ff56ff" id="svg_5" height="122" width="131" y="155.6" x="156" stroke-width="4" fill="#ff56ff"/>
|
||||
<rect stroke="#ff56ff" id="svg_6" height="41.00001" width="125" y="87.6" x="17" stroke-width="4" fill="#ffffff"/>
|
||||
<rect id="svg_7" height="3" width="2" y="364.6" x="89" stroke-width="4" stroke="#ff56ff" fill="#ffffff"/>
|
||||
<rect stroke="#ffffff" id="svg_8" height="41.00001" width="117" y="126.6" x="21" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#ff56ff" id="svg_9" height="41.00001" width="125" y="63.6" x="164" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#ff56ff" id="svg_10" height="64.00001" width="114.00001" y="158.6" x="159" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#ff56ff" id="svg_11" height="41.00001" width="101.00001" y="215.6" x="184" stroke-width="4" fill="#ffffff"/>
|
||||
<text transform="matrix(0.742836 0 0 0.850555 6.17194 14.6433)" stroke="#ff56ff" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_13" y="119.6" x="24" stroke-width="0" fill="#000000">Message report</text>
|
||||
<text style="cursor: move;" transform="matrix(0.742836 0 0 0.850555 6.17194 46.6433)" stroke="#ff56ff" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_14" y="118.4243" x="24" stroke-width="0" fill="#000000">tree view</text>
|
||||
<text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_15" y="90.6" x="167" stroke-width="0" stroke="#ff56ff" fill="#000000">Dump panel</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_16" y="245.6" x="190" stroke-width="0" stroke="#ff56ff" fill="#000000">3D View</text>
|
||||
<text transform="matrix(0.784367 0 0 0.769922 36.8545 36.9383)" stroke="#ff56ff" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_17" y="181.6" x="157" stroke-width="0" fill="#000000">Property panel</text>
|
||||
<text transform="matrix(0.884685 0 0 0.774516 20.9874 38.7657)" stroke="#ff56ff" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_18" y="206.5113" x="176.34827" stroke-width="0" fill="#000000">(custom)</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 37 KiB |
@@ -1,16 +1,142 @@
|
||||
<svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Layer_1">
|
||||
<title>Layer 1</title>
|
||||
<rect stroke-width="4" stroke="#ffaa56" id="svg_1" height="295" width="294.99999" y="2.59999" x="3" fill="#fff"/>
|
||||
<rect id="svg_3" height="252" width="130" y="26.6" x="20" stroke-width="4" stroke="#ffaa56" fill="#ffaa56"/>
|
||||
<rect stroke="#ffaa56" id="svg_4" height="121.00001" width="130" y="157.6" x="158" stroke-width="4" fill="#ffaa56"/>
|
||||
<rect stroke="#ffaa56" id="svg_5" height="116.99999" width="130" y="25.6" x="159" stroke-width="4" fill="#ffaa56"/>
|
||||
<rect stroke="#ffaa56" id="svg_10" height="83" width="120" y="97.6" x="24" stroke-width="0" fill="#ffffff"/>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_12" y="125.6" x="33" stroke-width="0" stroke="#7f7f2f" fill="#000000">Topo_DS</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_13" y="160.6" x="28" stroke-width="0" stroke="#7f7f2f" fill="#000000">Shape view</text>
|
||||
<rect stroke="#ffaa56" id="svg_14" height="50" width="120" y="197.6" x="164" stroke-width="0" fill="#ffffff"/>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_15" y="231.6" x="184" stroke-width="0" stroke="#7f7f2f" fill="#000000">3D view</text>
|
||||
<rect stroke="#ffaa56" id="svg_16" height="50" width="125.99999" y="59.6" x="161" stroke-width="0" fill="#ffffff"/>
|
||||
<text transform="matrix(0.893464 0 0 0.962463 18.0458 2.59472)" stroke="#7f7f2f" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_17" y="92.678" x="160" stroke-width="0" fill="#000000">Property panel</text>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="165.36458mm"
|
||||
height="99.483337mm"
|
||||
viewBox="0 0 165.36458 99.483337"
|
||||
version="1.1"
|
||||
id="svg2491"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="shapeview_elements.svg">
|
||||
<defs
|
||||
id="defs2485" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="319.53221"
|
||||
inkscape:cy="223.36826"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:showpageshadow="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1205"
|
||||
inkscape:window-height="766"
|
||||
inkscape:window-x="422"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2488">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(293.59301,-77.169049)">
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:#ffa040;stroke-width:0.52916667;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4147-0-8"
|
||||
width="164.83542"
|
||||
height="98.95417"
|
||||
x="-293.32843"
|
||||
y="77.433632"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#fcd5b5;fill-opacity:1;fill-rule:evenodd;stroke:#ff9933;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4159-8"
|
||||
width="70.094536"
|
||||
height="85.011993"
|
||||
x="-285.46909"
|
||||
y="83.598381"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.62230003;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8-2"
|
||||
width="54.993557"
|
||||
height="25.389547"
|
||||
x="-277.91861"
|
||||
y="113.40961"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#fcd5b5;fill-opacity:1;fill-rule:evenodd;stroke:#ffa040;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4159-8-9"
|
||||
width="70.094536"
|
||||
height="85.011993"
|
||||
x="-207.25319"
|
||||
y="83.598389"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8-2-4"
|
||||
width="54.993557"
|
||||
height="25.389547"
|
||||
x="-199.70271"
|
||||
y="113.40961"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.3866663px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-272.88153"
|
||||
y="125.70056"
|
||||
id="text5683-5-4-9"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-59-2"
|
||||
x="-272.88153"
|
||||
y="125.70056"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">TopoDS_Shape View</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.3866663px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-182.24478"
|
||||
y="126.02359"
|
||||
id="text5683-5-0-0"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\shapeview.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-5-6"
|
||||
x="-182.24478"
|
||||
y="126.02359"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">3D View</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 39 KiB |
@@ -1,19 +1,244 @@
|
||||
<svg width="609" height="426" xmlns="http://www.w3.org/2000/svg">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<rect stroke="#7f3f00" stroke-width="4" id="svg_2" height="419.99998" width="605.00004" y="2.8" x="1.99999" fill="#ffffff"/>
|
||||
<rect id="svg_5" height="193" width="413" y="207.8" x="167" stroke-width="3" stroke="#08a4d8" fill="#ffffff"/>
|
||||
<rect stroke="#f2780e" id="svg_6" height="193.99999" width="409.99997" y="173.8" x="137" opacity="NaN" stroke-width="3" fill="#ffffff"/>
|
||||
<rect stroke="#d608cb" id="svg_7" height="192" width="404.99998" y="136.8" x="106" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#5fbf00" id="svg_9" height="193" width="406.00001" y="91.8" x="66.99999" stroke-width="4" fill="#ffffff"/>
|
||||
<rect id="svg_10" height="43" width="137" y="23.8" x="19" stroke-width="4" stroke="#5fbf00" fill="#5fbf00"/>
|
||||
<rect stroke="#d608cb" id="svg_16" height="43" width="137" y="23.8" x="163" stroke-width="4" fill="#ffffff"/>
|
||||
<rect stroke="#f2780e" opacity="NaN" id="svg_17" height="42" width="135" y="23.8" x="309" stroke-width="3" fill="#ffffff"/>
|
||||
<rect stroke="#08a4d8" id="svg_18" height="43" width="135" y="23.8" x="451" stroke-width="3" fill="#ffffff"/>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_19" y="52.8" x="32" stroke-width="0" stroke="#08a4d8" fill="#000000">DFBrowser</text>
|
||||
<text transform="matrix(0.903837 0 0 1 19.0402 0)" stroke="#010b0f" xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_22" y="52.8" x="165.91458" stroke-width="0" fill="#000000">MessageView</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_23" y="52.8" x="325" stroke-width="0" stroke="#5fbf00" fill="#000000">ShapeView</text>
|
||||
<text xml:space="preserve" text-anchor="start" font-family="Noto Sans JP" font-size="24" id="svg_24" y="51.8" x="463" stroke-width="0" stroke="#7f3f00" fill="#000000">VInspector</text>
|
||||
</g>
|
||||
</svg>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="164.48495mm"
|
||||
height="98.635941mm"
|
||||
viewBox="0 0 164.48495 98.635941"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="tinspector_elements.svg"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
|
||||
<defs
|
||||
id="defs2">
|
||||
<pattern
|
||||
y="0"
|
||||
x="0"
|
||||
height="6"
|
||||
width="6"
|
||||
patternUnits="userSpaceOnUse"
|
||||
id="EMFhbasepattern" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="329.8397"
|
||||
inkscape:cy="227.89271"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1575"
|
||||
inkscape:window-height="895"
|
||||
inkscape:window-x="46"
|
||||
inkscape:window-y="75"
|
||||
inkscape:window-maximized="0"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-23.06172,-25.84832)">
|
||||
<path
|
||||
id="path933"
|
||||
d="M 23.326301,26.112901 H 187.28209 V 124.21968 H 23.326301 Z"
|
||||
style="fill:none;stroke:#953735;stroke-width:0.52916276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path935"
|
||||
d="M 28.109932,31.192871 H 62.95001 v 12.97507 H 28.109932 Z"
|
||||
style="fill:#9bbb59;fill-opacity:1;fill-rule:nonzero;stroke:#71893f;stroke-width:0.52916276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path937"
|
||||
d="m 66.54831,31.108201 h 34.84008 v 12.97507 H 66.54831 Z"
|
||||
style="fill:none;stroke:#33cccc;stroke-width:0.52916276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path939"
|
||||
d="m 104.9867,31.023531 h 34.84007 v 12.97508 H 104.9867 Z"
|
||||
style="fill:none;stroke:#ff9933;stroke-width:0.52916276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path941"
|
||||
d="m 37.550195,37.648651 c 0,0.254 -0.04233,0.48683 -0.169332,0.6985 -0.105832,0.21166 -0.253998,0.38099 -0.444497,0.48683 -0.126999,0.0847 -0.275164,0.14816 -0.42333,0.16933 -0.169332,0.0423 -0.35983,0.0635 -0.634995,0.0635 h -0.698495 v -2.83631 h 0.698495 c 0.275165,0 0.48683,0.0212 0.656162,0.0635 0.169332,0.0423 0.296331,0.10583 0.42333,0.16933 0.190498,0.127 0.338664,0.27516 0.444497,0.48683 0.105832,0.1905 0.148165,0.42333 0.148165,0.69849 z m -0.380997,0 c 0,-0.21166 -0.04233,-0.40216 -0.126999,-0.55033 -0.0635,-0.16933 -0.190498,-0.27516 -0.338664,-0.35983 -0.105833,-0.0635 -0.232832,-0.10583 -0.359831,-0.14816 -0.126999,-0.0212 -0.275164,-0.0212 -0.444497,-0.0212 h -0.35983 v 2.18015 h 0.35983 c 0.190499,0 0.338665,-0.0212 0.465664,-0.0423 0.148165,-0.0423 0.275164,-0.0847 0.380997,-0.14817 0.148165,-0.10583 0.253998,-0.21166 0.317498,-0.35983 0.0635,-0.14817 0.105832,-0.33866 0.105832,-0.55033 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path943"
|
||||
d="m 39.963178,36.569161 h -1.418157 v 0.80433 h 1.227658 v 0.33866 h -1.227658 v 1.35466 h -0.380997 v -2.83631 h 1.799154 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path945"
|
||||
d="m 42.524325,38.198981 c 0,0.127 -0.02117,0.254 -0.08467,0.35983 -0.04233,0.10583 -0.126999,0.21167 -0.211665,0.27517 -0.105833,0.0847 -0.211665,0.14816 -0.338664,0.16933 -0.126999,0.0423 -0.296331,0.0635 -0.48683,0.0635 h -1.015992 v -2.83631 h 0.84666 c 0.211665,0 0.359831,0.0212 0.465663,0.0423 0.105833,0 0.190499,0.0423 0.296331,0.0847 0.105833,0.0635 0.169332,0.12699 0.211666,0.21166 0.0635,0.0847 0.08467,0.1905 0.08467,0.29633 0,0.14817 -0.04233,0.254 -0.105832,0.35983 -0.0635,0.0847 -0.169332,0.16933 -0.275165,0.21167 v 0.0212 c 0.190499,0.0423 0.338665,0.127 0.444497,0.254 0.105833,0.12699 0.169332,0.27516 0.169332,0.48683 z m -0.634995,-1.26999 c 0,-0.0847 0,-0.127 -0.02117,-0.16933 -0.04233,-0.0635 -0.0635,-0.0847 -0.126999,-0.127 -0.04233,-0.0212 -0.126999,-0.0423 -0.211665,-0.0635 -0.08467,0 -0.190498,0 -0.317497,0 h -0.444497 v 0.80433 h 0.486829 c 0.127,0 0.211665,0 0.275165,-0.0212 0.08467,0 0.148166,-0.0423 0.190499,-0.0635 0.0635,-0.0423 0.105832,-0.0847 0.126999,-0.14817 0.04233,-0.0635 0.04233,-0.127 0.04233,-0.21166 z m 0.253998,1.26999 c 0,-0.10583 -0.02117,-0.1905 -0.0635,-0.254 -0.02117,-0.0847 -0.08467,-0.127 -0.190498,-0.16933 -0.0635,-0.0423 -0.126999,-0.0635 -0.211665,-0.0635 -0.08467,-0.0212 -0.190499,-0.0212 -0.317498,-0.0212 h -0.592662 v 1.05833 h 0.507996 c 0.148166,0 0.296331,-0.0212 0.402164,-0.0423 0.105832,0 0.190498,-0.0423 0.253998,-0.0847 0.0635,-0.0423 0.126999,-0.10584 0.148165,-0.16933 0.04233,-0.0635 0.0635,-0.14817 0.0635,-0.254 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path947"
|
||||
d="m 44.344645,37.331151 h -0.02117 c -0.04233,-0.0212 -0.105832,-0.0212 -0.148165,-0.0212 -0.04233,0 -0.105833,-0.0212 -0.169332,-0.0212 -0.126999,0 -0.232832,0.0423 -0.317498,0.0847 -0.105832,0.0423 -0.211665,0.10584 -0.296331,0.1905 v 1.50283 h -0.359831 v -2.11663 h 0.359831 v 0.3175 c 0.126999,-0.127 0.253998,-0.21166 0.359831,-0.254 0.105832,-0.0423 0.232831,-0.0635 0.338664,-0.0635 0.0635,0 0.105832,0 0.126999,0 0.04233,0 0.08467,0 0.126999,0.0212 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path949"
|
||||
d="m 46.482462,38.008481 c 0,0.33867 -0.08467,0.61383 -0.253998,0.80433 -0.169332,0.21167 -0.42333,0.3175 -0.719661,0.3175 -0.296331,0 -0.529163,-0.10583 -0.698495,-0.3175 -0.190498,-0.1905 -0.275164,-0.46566 -0.275164,-0.80433 0,-0.35983 0.08467,-0.61383 0.275164,-0.82549 0.169332,-0.1905 0.402164,-0.29633 0.698495,-0.29633 0.296331,0 0.550329,0.10583 0.719661,0.29633 0.169332,0.21166 0.253998,0.46566 0.253998,0.82549 z m -0.35983,0 c 0,-0.27516 -0.04233,-0.48683 -0.169332,-0.61383 -0.105833,-0.127 -0.253998,-0.21166 -0.444497,-0.21166 -0.190499,0 -0.338664,0.0847 -0.444497,0.21166 -0.105832,0.127 -0.169332,0.33867 -0.169332,0.61383 0,0.254 0.0635,0.46567 0.169332,0.59267 0.105833,0.14816 0.253998,0.21166 0.444497,0.21166 0.190499,0 0.338664,-0.0635 0.444497,-0.21166 0.105832,-0.127 0.169332,-0.33867 0.169332,-0.59267 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path951"
|
||||
d="m 49.699771,36.950161 -0.550328,2.11665 h -0.317498 l -0.550329,-1.62982 -0.529163,1.62982 h -0.338664 l -0.550329,-2.11665 h 0.35983 l 0.402164,1.62982 0.529163,-1.62982 h 0.275164 l 0.55033,1.62982 0.35983,-1.62982 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path953"
|
||||
d="m 51.731758,38.452981 c 0,0.1905 -0.08467,0.35983 -0.232834,0.46566 -0.16933,0.127 -0.380997,0.1905 -0.656161,0.1905 -0.169331,0 -0.296331,-0.0212 -0.444497,-0.0423 -0.126998,-0.0423 -0.232831,-0.0847 -0.317498,-0.127 v -0.40216 h 0.02117 c 0.105833,0.0847 0.232833,0.14816 0.380997,0.1905 0.127,0.0635 0.253998,0.0847 0.380998,0.0847 0.169333,0 0.275164,-0.0212 0.380997,-0.0847 0.08467,-0.0423 0.127,-0.127 0.127,-0.23283 0,-0.0847 -0.02117,-0.14817 -0.08467,-0.1905 -0.04233,-0.0423 -0.127,-0.0847 -0.275164,-0.10584 -0.04233,-0.0212 -0.105833,-0.0212 -0.1905,-0.0423 -0.08467,-0.0212 -0.148164,-0.0212 -0.211664,-0.0423 -0.1905,-0.0635 -0.338664,-0.12699 -0.402164,-0.23283 -0.08467,-0.0847 -0.127,-0.21166 -0.127,-0.33866 0,-0.0847 0.02117,-0.16933 0.0635,-0.254 0.04233,-0.0635 0.08467,-0.14817 0.169334,-0.21166 0.0635,-0.0423 0.148164,-0.10584 0.253997,-0.127 0.127,-0.0423 0.232831,-0.0635 0.380997,-0.0635 0.127,0 0.253998,0.0212 0.380998,0.0635 0.126997,0.0212 0.23283,0.0635 0.317497,0.10583 v 0.381 h -0.02117 c -0.08467,-0.0635 -0.190497,-0.127 -0.317497,-0.16934 -0.148167,-0.0423 -0.275164,-0.0635 -0.402164,-0.0635 -0.127,0 -0.232831,0.0212 -0.317497,0.0635 -0.08467,0.0423 -0.127,0.127 -0.127,0.23284 0,0.0847 0.02117,0.14816 0.0635,0.19049 0.0635,0.0423 0.148166,0.0847 0.275164,0.10584 0.0635,0.0212 0.127,0.0212 0.211666,0.0423 0.08466,0.0212 0.148164,0.0423 0.211664,0.0423 0.148167,0.0423 0.275164,0.10583 0.380998,0.1905 0.08467,0.10583 0.127,0.23283 0.127,0.38099 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path955"
|
||||
d="m 54.017739,38.029651 h -1.56632 c 0,0.14816 0.02117,0.254 0.0635,0.35983 0.04233,0.0847 0.08466,0.16933 0.169331,0.23283 0.0635,0.0635 0.127,0.10583 0.23283,0.127 0.08467,0.0423 0.1905,0.0423 0.296334,0.0423 0.148164,0 0.275164,-0.0212 0.423328,-0.0847 0.148166,-0.0423 0.254,-0.10583 0.317497,-0.16933 h 0.02117 v 0.40216 c -0.126998,0.0423 -0.253998,0.0847 -0.359831,0.127 -0.126997,0.0212 -0.275164,0.0423 -0.402161,0.0423 -0.359831,0 -0.634998,-0.0847 -0.825495,-0.27516 -0.1905,-0.1905 -0.296331,-0.46567 -0.296331,-0.8255 0,-0.33866 0.105831,-0.61383 0.275164,-0.82549 0.190498,-0.1905 0.444498,-0.29633 0.761995,-0.29633 0.275164,0 0.507995,0.0847 0.656161,0.254 0.148167,0.16933 0.232831,0.40216 0.232831,0.69849 z m -0.338664,-0.254 c -0.02117,-0.1905 -0.0635,-0.33866 -0.148164,-0.4445 -0.105833,-0.10583 -0.232833,-0.14816 -0.423331,-0.14816 -0.1905,0 -0.338664,0.0423 -0.465664,0.16933 -0.105833,0.10583 -0.16933,0.254 -0.190497,0.42333 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path957"
|
||||
d="m 55.88039,37.331151 h -0.0212 c -0.0635,-0.0212 -0.10583,-0.0212 -0.14816,-0.0212 -0.0635,0 -0.127,-0.0212 -0.1905,-0.0212 -0.10583,0 -0.21166,0.0423 -0.3175,0.0847 -0.10583,0.0423 -0.1905,0.10584 -0.29633,0.1905 v 1.50283 h -0.3598 v -2.11663 h 0.35983 v 0.3175 c 0.14817,-0.127 0.27517,-0.21166 0.381,-0.254 0.10583,-0.0423 0.21166,-0.0635 0.33866,-0.0635 0.0423,0 0.10584,0 0.127,0 0.0212,0 0.0635,0 0.127,0.0212 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path959"
|
||||
d="m 76.00974,35.786001 -1.03715,2.81515 h -0.508 l -1.01599,-2.81515 h 0.40216 l 0.88899,2.47648 0.889,-2.47648 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path961"
|
||||
d="m 77.4279,38.601151 h -1.12182 v -0.27517 h 0.38099 v -2.24365 h -0.38099 v -0.29633 h 1.12182 v 0.29633 h -0.381 v 2.24365 h 0.381 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path963"
|
||||
d="m 79.79855,38.601151 h -0.33866 v -1.18533 c 0,-0.10583 -0.0212,-0.1905 -0.0212,-0.27516 -0.0212,-0.0847 -0.0423,-0.16934 -0.0635,-0.21167 -0.0423,-0.0423 -0.0847,-0.0847 -0.14817,-0.10583 -0.0423,-0.0423 -0.127,-0.0423 -0.21167,-0.0423 -0.10583,0 -0.21166,0.0212 -0.31749,0.0635 -0.10583,0.0423 -0.21167,0.10583 -0.29633,0.1905 v 1.56632 H 78.0417 v -2.11665 h 0.35983 v 0.254 c 0.10583,-0.10584 0.21166,-0.16934 0.33866,-0.23284 0.127,-0.0423 0.23283,-0.0635 0.35983,-0.0635 0.23283,0 0.40217,0.0635 0.52917,0.1905 0.12699,0.14817 0.16933,0.33867 0.16933,0.61383 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path965"
|
||||
d="m 81.99987,38.008481 c 0,0.1905 -0.0635,0.33867 -0.23283,0.46567 -0.16934,0.127 -0.381,0.19049 -0.65617,0.19049 -0.14816,0 -0.29633,-0.0212 -0.42333,-0.0635 -0.14816,-0.0212 -0.254,-0.0635 -0.33866,-0.127 v -0.38099 h 0.0212 c 0.10583,0.0847 0.23283,0.14816 0.38099,0.1905 0.127,0.0423 0.27517,0.0847 0.381,0.0847 0.16933,0 0.29633,-0.0423 0.381,-0.0847 0.0847,-0.0423 0.127,-0.127 0.127,-0.23284 0,-0.0847 -0.0212,-0.14816 -0.0635,-0.19049 -0.0635,-0.0423 -0.14817,-0.0847 -0.27517,-0.10584 -0.0635,-0.0212 -0.127,-0.0423 -0.21166,-0.0423 -0.0847,-0.0212 -0.14817,-0.0423 -0.21167,-0.0635 -0.19049,-0.0423 -0.31749,-0.10583 -0.40216,-0.21166 -0.0847,-0.0847 -0.10583,-0.21167 -0.10583,-0.33867 0,-0.10583 0,-0.16933 0.0423,-0.25399 0.0423,-0.0847 0.0847,-0.14817 0.16933,-0.21167 0.0635,-0.0635 0.14817,-0.10583 0.27517,-0.127 0.10583,-0.0423 0.23283,-0.0635 0.35983,-0.0635 0.127,0 0.25399,0.0212 0.38099,0.0423 0.127,0.0423 0.23284,0.0635 0.3175,0.127 v 0.381 H 81.894 c -0.0847,-0.0847 -0.1905,-0.127 -0.3175,-0.16933 -0.12699,-0.0635 -0.25399,-0.0847 -0.38099,-0.0847 -0.127,0 -0.254,0.0212 -0.33867,0.0847 -0.0847,0.0423 -0.12699,0.127 -0.12699,0.21166 0,0.0847 0.0212,0.16933 0.0847,0.21167 0.0423,0.0423 0.127,0.0635 0.254,0.10583 0.0635,0 0.12699,0.0212 0.21166,0.0423 0.0847,0.0212 0.14817,0.0212 0.21166,0.0423 0.16934,0.0423 0.29634,0.10583 0.381,0.1905 0.0847,0.10583 0.127,0.21166 0.127,0.381 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path967"
|
||||
d="m 84.37051,37.521651 c 0,0.16933 -0.0212,0.33867 -0.0635,0.48683 -0.0423,0.127 -0.127,0.254 -0.21166,0.35983 -0.0847,0.0847 -0.16933,0.14817 -0.29633,0.21167 -0.10584,0.0423 -0.23283,0.0635 -0.35983,0.0635 -0.10584,0 -0.21167,0 -0.29633,-0.0212 -0.0847,-0.0212 -0.16934,-0.0635 -0.27517,-0.127 v 0.88899 h -0.35983 v -2.89981 h 0.35983 v 0.23283 c 0.10583,-0.0847 0.21167,-0.14816 0.3175,-0.1905 0.127,-0.0635 0.254,-0.0847 0.381,-0.0847 0.25399,0 0.46566,0.0847 0.59266,0.27517 0.14816,0.1905 0.21166,0.46566 0.21166,0.80433 z m -0.35983,0.0212 c 0,-0.254 -0.0423,-0.44449 -0.12699,-0.57149 -0.0847,-0.127 -0.23284,-0.1905 -0.40217,-0.1905 -0.10583,0 -0.21166,0.0212 -0.31749,0.0635 -0.10584,0.0423 -0.1905,0.10583 -0.29634,0.16933 v 1.20649 c 0.10584,0.0423 0.1905,0.0635 0.27517,0.0847 0.0635,0.0212 0.14816,0.0212 0.23283,0.0212 0.21167,0 0.35983,-0.0635 0.46566,-0.1905 0.10584,-0.127 0.16933,-0.33866 0.16933,-0.59266 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path969"
|
||||
d="m 86.69883,37.585151 h -1.54515 c 0,0.127 0.0212,0.254 0.0635,0.33867 0.0212,0.10583 0.0847,0.1905 0.14816,0.25399 0.0635,0.0423 0.14817,0.10584 0.23283,0.127 0.0847,0.0212 0.1905,0.0423 0.29633,0.0423 0.14817,0 0.29633,-0.0212 0.4445,-0.0847 0.14817,-0.0635 0.254,-0.10583 0.3175,-0.16933 v 0 0.381 c -0.10583,0.0635 -0.23283,0.10583 -0.35983,0.127 -0.127,0.0423 -0.254,0.0635 -0.40217,0.0635 -0.33866,0 -0.61382,-0.10583 -0.80432,-0.29633 -0.21167,-0.1905 -0.29633,-0.4445 -0.29633,-0.80433 0,-0.33866 0.0847,-0.61383 0.27516,-0.82549 0.1905,-0.1905 0.4445,-0.29634 0.74083,-0.29634 0.29633,0 0.50799,0.0847 0.65616,0.254 0.16933,0.14817 0.23283,0.40217 0.23283,0.6985 z m -0.33866,-0.27516 c 0,-0.16933 -0.0423,-0.3175 -0.14817,-0.42333 -0.0847,-0.10583 -0.23283,-0.14817 -0.42333,-0.14817 -0.1905,0 -0.33866,0.0423 -0.44449,0.16933 -0.127,0.10584 -0.1905,0.23284 -0.1905,0.40217 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path971"
|
||||
d="m 88.81548,38.474151 c -0.127,0.0635 -0.23283,0.10583 -0.33866,0.127 -0.10583,0.0423 -0.23283,0.0635 -0.33867,0.0635 -0.14816,0 -0.29633,-0.0212 -0.42333,-0.0635 -0.127,-0.0635 -0.23283,-0.127 -0.33866,-0.21167 -0.0847,-0.0847 -0.14817,-0.21167 -0.21166,-0.33866 -0.0423,-0.14817 -0.0635,-0.3175 -0.0635,-0.48683 0,-0.35983 0.0847,-0.635 0.27516,-0.8255 0.1905,-0.1905 0.4445,-0.29633 0.76199,-0.29633 0.127,0 0.23284,0.0212 0.35984,0.0635 0.10583,0.0212 0.21166,0.0635 0.31749,0.10583 v 0.40217 h -0.0212 c -0.10583,-0.0847 -0.21166,-0.14817 -0.33866,-0.1905 -0.10584,-0.0423 -0.23283,-0.0635 -0.33867,-0.0635 -0.1905,0 -0.35983,0.0635 -0.48683,0.1905 -0.10583,0.14816 -0.16933,0.33866 -0.16933,0.61383 0,0.25399 0.0635,0.44449 0.16933,0.57149 0.127,0.14817 0.27517,0.21167 0.48683,0.21167 0.0635,0 0.14817,0 0.21167,-0.0212 0.0847,-0.0212 0.14816,-0.0423 0.21166,-0.0847 0.0423,-0.0212 0.10584,-0.0423 0.14817,-0.0847 0.0423,-0.0212 0.0847,-0.0423 0.10583,-0.0635 h 0.0212 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path973"
|
||||
d="m 90.36064,38.601151 c -0.0635,0 -0.127,0.0212 -0.21167,0.0423 -0.0847,0 -0.14816,0 -0.21166,0 -0.21167,0 -0.381,-0.0423 -0.48683,-0.16934 -0.10584,-0.10583 -0.16933,-0.29633 -0.16933,-0.55033 v -1.12182 h -0.23284 v -0.3175 h 0.23284 v -0.59266 h 0.35983 v 0.59266 h 0.71966 v 0.3175 h -0.71966 v 0.95249 c 0,0.10584 0,0.21167 0,0.27517 0,0.0423 0.0212,0.10583 0.0635,0.16933 0.0212,0.0423 0.0635,0.0847 0.10583,0.10583 0.0423,0.0212 0.127,0.0423 0.23283,0.0423 0.0423,0 0.10583,-0.0212 0.16933,-0.0212 0.0635,-0.0212 0.10584,-0.0423 0.14817,-0.0635 v 0 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path975"
|
||||
d="m 92.60429,37.563991 c 0,0.33866 -0.0847,0.61382 -0.254,0.80432 -0.1905,0.21167 -0.42333,0.29633 -0.71966,0.29633 -0.29633,0 -0.52917,-0.0847 -0.71966,-0.29633 -0.16934,-0.1905 -0.254,-0.46566 -0.254,-0.80432 0,-0.35983 0.0847,-0.635 0.254,-0.8255 0.19049,-0.21166 0.42333,-0.29633 0.71966,-0.29633 0.29633,0 0.52916,0.0847 0.71966,0.29633 0.16933,0.1905 0.254,0.46567 0.254,0.8255 z m -0.35983,0 c 0,-0.27517 -0.0635,-0.48683 -0.16933,-0.61383 -0.10584,-0.14817 -0.254,-0.21167 -0.4445,-0.21167 -0.1905,0 -0.33867,0.0635 -0.4445,0.21167 -0.10583,0.127 -0.16933,0.33866 -0.16933,0.61383 0,0.25399 0.0635,0.46566 0.16933,0.59266 0.10583,0.14816 0.254,0.21166 0.4445,0.21166 0.1905,0 0.33866,-0.0635 0.4445,-0.21166 0.10583,-0.127 0.16933,-0.33867 0.16933,-0.59266 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path977"
|
||||
d="m 94.48811,36.886661 h -0.0212 c -0.0635,-0.0212 -0.10584,-0.0212 -0.16933,-0.0212 -0.0423,-0.0212 -0.10584,-0.0212 -0.16934,-0.0212 -0.10583,0 -0.21166,0.0212 -0.31749,0.0847 -0.10584,0.0423 -0.1905,0.10583 -0.29633,0.16933 v 1.50282 h -0.35984 v -2.11665 h 0.35984 v 0.3175 c 0.14816,-0.10583 0.27516,-0.1905 0.38099,-0.23283 0.10583,-0.0423 0.21167,-0.0847 0.3175,-0.0847 0.0635,0 0.10583,0.0212 0.14816,0.0212 0.0212,0 0.0635,0 0.127,0.0212 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path979"
|
||||
d="m 114.0883,37.775651 c 0,0.10583 -0.0212,0.23283 -0.0635,0.33867 -0.0635,0.10583 -0.127,0.19049 -0.21167,0.27516 -0.10583,0.0635 -0.23283,0.127 -0.35983,0.16933 -0.14817,0.0635 -0.29633,0.0847 -0.48683,0.0847 -0.21166,0 -0.381,-0.0212 -0.55033,-0.0635 -0.16933,-0.0423 -0.3175,-0.0847 -0.48683,-0.16933 v -0.46566 h 0.0212 c 0.14817,0.10583 0.29633,0.21166 0.48683,0.27516 0.1905,0.0635 0.35983,0.0847 0.52916,0.0847 0.23284,0 0.42333,-0.0423 0.55033,-0.127 0.127,-0.0847 0.1905,-0.1905 0.1905,-0.33866 0,-0.127 -0.0423,-0.23283 -0.0847,-0.27517 -0.0635,-0.0635 -0.16933,-0.10583 -0.29633,-0.14816 -0.0847,-0.0212 -0.1905,-0.0423 -0.29633,-0.0635 -0.10583,-0.0212 -0.23283,-0.0423 -0.35983,-0.0635 -0.254,-0.0423 -0.42333,-0.14817 -0.55033,-0.27517 -0.127,-0.127 -0.1905,-0.29633 -0.1905,-0.48683 0,-0.23283 0.10583,-0.44449 0.3175,-0.59266 0.1905,-0.14816 0.4445,-0.21166 0.74083,-0.21166 0.21166,0 0.38099,0 0.55033,0.0423 0.16933,0.0423 0.31749,0.0847 0.44449,0.14816 v 0.4445 h -0.0212 c -0.10583,-0.0847 -0.254,-0.16933 -0.42333,-0.23283 -0.1905,-0.0635 -0.35983,-0.0847 -0.55033,-0.0847 -0.19049,0 -0.35983,0.0423 -0.48683,0.127 -0.10583,0.0847 -0.16933,0.1905 -0.16933,0.3175 0,0.12699 0.0212,0.21166 0.0847,0.27516 0.0635,0.0635 0.16933,0.127 0.3175,0.14817 0.0847,0.0212 0.1905,0.0423 0.35983,0.0635 0.14816,0.0423 0.27516,0.0635 0.35983,0.0847 0.21166,0.0635 0.381,0.14816 0.48683,0.25399 0.10583,0.10584 0.14817,0.27517 0.14817,0.46567 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path981"
|
||||
d="m 116.43778,38.579981 h -0.35983 v -1.20649 c 0,-0.0847 0,-0.1905 -0.0212,-0.27517 0,-0.0847 -0.0212,-0.14816 -0.0635,-0.1905 -0.0212,-0.0635 -0.0635,-0.0847 -0.127,-0.12699 -0.0635,-0.0212 -0.127,-0.0212 -0.23283,-0.0212 -0.0847,0 -0.1905,0.0212 -0.29633,0.0635 -0.10584,0.0423 -0.21167,0.10583 -0.3175,0.19049 v 1.56633 h -0.35983 v -2.94215 h 0.35983 v 1.05833 c 0.127,-0.0847 0.23283,-0.14817 0.35983,-0.21167 0.10583,-0.0423 0.23283,-0.0635 0.35983,-0.0635 0.23284,0 0.40217,0.0635 0.52917,0.1905 0.10583,0.14817 0.16933,0.33867 0.16933,0.59266 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path983"
|
||||
d="m 118.76609,38.579981 h -0.35983 v -0.21167 c -0.0212,0.0212 -0.0635,0.0423 -0.127,0.0847 -0.0423,0.0423 -0.10583,0.0635 -0.14816,0.0847 -0.0635,0.0423 -0.127,0.0635 -0.21167,0.0847 -0.0635,0.0212 -0.16933,0.0212 -0.25399,0.0212 -0.1905,0 -0.35984,-0.0635 -0.48684,-0.19049 -0.14816,-0.127 -0.21166,-0.27517 -0.21166,-0.48683 0,-0.14817 0.0423,-0.27517 0.10583,-0.381 0.0635,-0.10583 0.16933,-0.16933 0.29633,-0.23283 0.127,-0.0635 0.27517,-0.10584 0.46567,-0.127 0.16933,-0.0212 0.381,-0.0212 0.57149,-0.0423 v -0.0423 c 0,-0.0847 0,-0.14817 -0.0423,-0.21167 -0.0212,-0.0423 -0.0635,-0.0847 -0.10583,-0.127 -0.0635,-0.0212 -0.127,-0.0423 -0.1905,-0.0635 -0.0635,0 -0.14816,0 -0.21166,0 -0.10583,0 -0.21167,0 -0.3175,0.0423 -0.127,0.0212 -0.23283,0.0423 -0.35983,0.10584 h -0.0212 v -0.381 c 0.0635,0 0.16933,-0.0212 0.29633,-0.0635 0.14816,-0.0212 0.27516,-0.0212 0.40216,-0.0212 0.14817,0 0.27517,0 0.381,0.0423 0.10583,0.0212 0.21166,0.0635 0.29633,0.127 0.0635,0.0423 0.127,0.127 0.16933,0.21166 0.0423,0.10584 0.0635,0.21167 0.0635,0.33867 z m -0.35983,-0.508 v -0.59266 c -0.10583,0 -0.23283,0.0212 -0.38099,0.0212 -0.14817,0.0212 -0.254,0.0423 -0.33867,0.0635 -0.10583,0.0212 -0.1905,0.0635 -0.254,0.127 -0.0635,0.0635 -0.0847,0.14816 -0.0847,0.254 0,0.127 0.0212,0.21166 0.10584,0.27516 0.0635,0.0635 0.1905,0.0847 0.33866,0.0847 0.127,0 0.23283,-0.0212 0.33867,-0.0635 0.10583,-0.0423 0.19049,-0.10583 0.27516,-0.16933 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path985"
|
||||
d="m 121.32724,37.500491 c 0,0.16933 -0.0212,0.33866 -0.0847,0.46566 -0.0423,0.14817 -0.10583,0.27516 -0.21166,0.35983 -0.0847,0.10583 -0.16933,0.16933 -0.29633,0.23283 -0.10584,0.0423 -0.21167,0.0635 -0.33867,0.0635 -0.127,0 -0.21166,0 -0.3175,-0.0212 -0.0847,-0.0423 -0.16933,-0.0635 -0.25399,-0.127 v 0.889 h -0.35983 v -2.89981 h 0.35983 v 0.23283 c 0.0847,-0.0847 0.1905,-0.14817 0.31749,-0.21167 0.10584,-0.0423 0.23284,-0.0635 0.381,-0.0635 0.254,0 0.4445,0.0847 0.59266,0.27517 0.127,0.1905 0.21167,0.46566 0.21167,0.80433 z m -0.381,0.0212 c 0,-0.27517 -0.0423,-0.46567 -0.127,-0.59267 -0.0847,-0.10583 -0.21166,-0.16933 -0.40216,-0.16933 -0.10583,0 -0.1905,0.0212 -0.29633,0.0635 -0.10583,0.0423 -0.21166,0.0847 -0.29633,0.16933 v 1.2065 c 0.0847,0.0423 0.16933,0.0635 0.254,0.0847 0.0635,0.0212 0.14816,0.0212 0.254,0.0212 0.19049,0 0.33866,-0.0635 0.46566,-0.1905 0.10583,-0.14817 0.14816,-0.33867 0.14816,-0.59267 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path987"
|
||||
d="m 123.65556,37.563991 h -1.56632 c 0,0.12699 0.0212,0.25399 0.0635,0.33866 0.0423,0.10583 0.0847,0.16933 0.14816,0.23283 0.0847,0.0635 0.14817,0.10583 0.23283,0.14817 0.10583,0.0212 0.1905,0.0423 0.3175,0.0423 0.127,0 0.27517,-0.0212 0.42333,-0.0847 0.14817,-0.0635 0.254,-0.127 0.3175,-0.16933 h 0.0212 v 0.38099 c -0.127,0.0635 -0.254,0.10583 -0.381,0.127 -0.127,0.0423 -0.254,0.0635 -0.381,0.0635 -0.35983,0 -0.635,-0.10583 -0.82549,-0.29633 -0.1905,-0.1905 -0.29633,-0.46566 -0.29633,-0.80433 0,-0.33866 0.0847,-0.61383 0.27516,-0.82549 0.1905,-0.21167 0.4445,-0.29633 0.76199,-0.29633 0.27517,0 0.48684,0.0635 0.65617,0.23283 0.14817,0.16933 0.23283,0.40216 0.23283,0.71966 z m -0.35983,-0.27517 c 0,-0.1905 -0.0423,-0.33866 -0.127,-0.42333 -0.10583,-0.10583 -0.23283,-0.16933 -0.42333,-0.16933 -0.1905,0 -0.35983,0.0635 -0.46567,0.16933 -0.10583,0.127 -0.16933,0.254 -0.19049,0.42333 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path989"
|
||||
d="m 126.44954,35.764831 -1.03716,2.81515 h -0.50799 l -1.016,-2.81515 h 0.40217 l 0.88899,2.47648 0.88899,-2.47648 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path991"
|
||||
d="m 127.2327,36.124661 h -0.40216 v -0.38099 h 0.40216 z m -0.0212,2.45532 h -0.35983 v -2.11665 h 0.35983 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path993"
|
||||
d="m 129.68802,37.563991 h -1.56632 c 0,0.12699 0.0212,0.25399 0.0635,0.33866 0.0423,0.10583 0.0847,0.16933 0.14816,0.23283 0.0847,0.0635 0.14817,0.10583 0.23283,0.14817 0.10583,0.0212 0.1905,0.0423 0.3175,0.0423 0.127,0 0.27516,-0.0212 0.42333,-0.0847 0.14816,-0.0635 0.254,-0.127 0.3175,-0.16933 h 0.0212 v 0.38099 c -0.127,0.0635 -0.254,0.10583 -0.38099,0.127 -0.127,0.0423 -0.254,0.0635 -0.381,0.0635 -0.35983,0 -0.635,-0.10583 -0.82549,-0.29633 -0.1905,-0.1905 -0.29634,-0.46566 -0.29634,-0.80433 0,-0.33866 0.0847,-0.61383 0.27517,-0.82549 0.1905,-0.21167 0.4445,-0.29633 0.76199,-0.29633 0.27517,0 0.48683,0.0635 0.65616,0.23283 0.14817,0.16933 0.23284,0.40216 0.23284,0.71966 z m -0.35984,-0.27517 c 0,-0.1905 -0.0423,-0.33866 -0.12699,-0.42333 -0.10584,-0.10583 -0.23284,-0.16933 -0.42333,-0.16933 -0.1905,0 -0.35983,0.0635 -0.46567,0.16933 -0.10583,0.127 -0.16933,0.254 -0.19049,0.42333 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path995"
|
||||
d="m 132.88416,36.463331 -0.55033,2.11665 h -0.33866 l -0.52917,-1.62982 -0.55033,1.62982 h -0.31749 l -0.5715,-2.11665 h 0.381 l 0.38099,1.65099 0.52917,-1.65099 h 0.29633 l 0.55033,1.65099 0.35983,-1.65099 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path997"
|
||||
d="M 42.608991,62.752131 H 181.82113 V 118.33539 H 42.608991 Z"
|
||||
style="fill:none;stroke:#ff9933;stroke-width:0.52916276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path999"
|
||||
d="M 35.666376,55.280361 H 174.89968 V 110.86361 H 35.666376 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#33cccc;stroke-width:0.52916276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1001"
|
||||
d="M 28.744927,47.808581 H 167.97823 V 103.39183 H 28.744927 Z"
|
||||
style="fill:#9bbb59;fill-opacity:1;fill-rule:nonzero;stroke:#77933c;stroke-width:0.52916667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
@@ -1,19 +1,200 @@
|
||||
<svg width="609" height="234" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Layer_1">
|
||||
<title>Layer 1</title>
|
||||
<rect fill="#ffffff" stroke-width="4" x="3.5" y="3.2" width="603.99998" height="227.99999" id="svg_1" stroke="#007fff"/>
|
||||
<rect stroke="#007fff" fill="#007fff" stroke-width="4" x="24.5" y="30.2" width="202" height="67" id="svg_8"/>
|
||||
<rect stroke="#007fff" fill="#007fff" stroke-width="4" x="407.50001" y="29.19999" width="186.99999" height="185" id="svg_9"/>
|
||||
<rect stroke="#007fff" fill="#ffffff" stroke-width="4" x="57.5" y="36.2" width="128" height="56" id="svg_11"/>
|
||||
<rect stroke="#ffffff" fill="#ffffff" stroke-width="4" x="418.50001" y="91.2" width="163.99997" height="56" id="svg_13"/>
|
||||
<text fill="#000000" stroke="#007fff" stroke-width="0" x="86.5" y="73.2" id="svg_14" font-size="24" font-family="Noto Sans JP" text-anchor="start" xml:space="preserve">Update</text>
|
||||
<text fill="#000000" stroke="#007fff" stroke-width="0" x="458.5" y="127.2" id="svg_15" font-size="24" font-family="Noto Sans JP" text-anchor="start" xml:space="preserve">3D view</text>
|
||||
<rect stroke="#007fff" fill="#007fff" stroke-width="4" x="22.5" y="113.2" width="206" height="102" id="svg_18"/>
|
||||
<rect stroke="#ffffff" fill="#ffffff" stroke-width="4" x="27.5" y="138.2" width="194" height="56" id="svg_19"/>
|
||||
<text fill="#000000" stroke="#007fff" stroke-width="0" x="30.5" y="174.2" id="svg_21" font-size="20" font-family="Noto Sans JP" text-anchor="start" xml:space="preserve">Presentations tree view</text>
|
||||
<rect stroke="#007fff" fill="#007fff" stroke-width="4" x="239.5" y="30.19999" width="157" height="185" id="svg_2"/>
|
||||
<rect stroke="#ffffff" fill="#ffffff" stroke-width="4" x="245.50002" y="84.2" width="147.99997" height="56" id="svg_3"/>
|
||||
<text fill="#000000" stroke="#007fff" stroke-width="0" x="248.5" y="121.2" id="svg_5" font-size="24" font-family="Noto Sans JP" text-anchor="start" xml:space="preserve">Property panel</text>
|
||||
</g>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
</svg>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="165.36458mm"
|
||||
height="99.483337mm"
|
||||
viewBox="0 0 165.36458 99.483337"
|
||||
version="1.1"
|
||||
id="svg3064"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="vinspector_elements.svg">
|
||||
<defs
|
||||
id="defs3058" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="261.33464"
|
||||
inkscape:cy="225.25011"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:window-width="1277"
|
||||
inkscape:window-height="875"
|
||||
inkscape:window-x="314"
|
||||
inkscape:window-y="16"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3061">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(201.36682,-127.81786)">
|
||||
<rect
|
||||
style="opacity:1;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:#33cccc;stroke-width:0.52916667;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4147-0"
|
||||
width="164.83542"
|
||||
height="98.95417"
|
||||
x="-201.10223"
|
||||
y="128.08244"
|
||||
inkscape:export-filename="D:\OCCT\master_CR27398_doc\dox\user_guides\qt_browsers\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#93cddd;fill-opacity:1;fill-rule:evenodd;stroke:#33cccc;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4157-8"
|
||||
width="155.951"
|
||||
height="20.214758"
|
||||
x="-197.10306"
|
||||
y="132.31981"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#93cddd;fill-opacity:1;fill-rule:evenodd;stroke:#33cccc;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4159-9"
|
||||
width="155.55411"
|
||||
height="39.471096"
|
||||
x="-197.06837"
|
||||
y="157.2328"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-6"
|
||||
width="109.47361"
|
||||
height="11.118413"
|
||||
x="-155.47618"
|
||||
y="136.86798"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.36620289;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-1-6"
|
||||
width="30.417513"
|
||||
height="11.316654"
|
||||
x="-192.77927"
|
||||
y="136.76886"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666677px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-184.57181"
|
||||
y="143.51102"
|
||||
id="text5675-9"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5677-2"
|
||||
x="-184.57181"
|
||||
y="143.51102"
|
||||
style="font-size:3.88055563px;line-height:1.25;stroke-width:0.28222224px">Update</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666677px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-118.07398"
|
||||
y="143.87196"
|
||||
id="text5683-7"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-7"
|
||||
x="-118.07398"
|
||||
y="143.87196"
|
||||
style="font-size:3.88055563px;line-height:1.25;stroke-width:0.28222224px">Selection controls</tspan></text>
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.56444448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-8-4"
|
||||
width="79.254326"
|
||||
height="23.947351"
|
||||
x="-158.91849"
|
||||
y="164.99469"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666654px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-143.42757"
|
||||
y="176.27301"
|
||||
id="text5683-5-4"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-59"
|
||||
x="-143.42757"
|
||||
y="176.27301"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">Presentations tree view</tspan></text>
|
||||
<rect
|
||||
style="opacity:1;fill:#93cddd;fill-opacity:1;fill-rule:evenodd;stroke:#33cccc;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4157-8-7"
|
||||
width="155.951"
|
||||
height="20.214758"
|
||||
x="-196.94507"
|
||||
y="202.23282"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.36620289;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.29879999;stroke-opacity:1"
|
||||
id="rect4195-1-6-6"
|
||||
width="147.01831"
|
||||
height="11.316654"
|
||||
x="-192.62131"
|
||||
y="206.68187"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:3.38666654px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-132.50854"
|
||||
y="210.87439"
|
||||
id="text5683-5-4-1"
|
||||
transform="scale(0.98830373,1.0118347)"
|
||||
inkscape:export-filename="F:\OCC\master_CR29018\dox\user_guides\inspector\images\vinspector.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5685-3-59-8"
|
||||
x="-132.50854"
|
||||
y="210.87439"
|
||||
style="font-size:3.83516741px;line-height:1.25;stroke-width:0.28222221px">History view</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 36 KiB |
@@ -18,7 +18,6 @@ Inspector has a plugin-oriented architecture. The current release contains the f
|
||||
| @ref occt_inspector_2_2 "DFBrowser"| OCAF | *TDocStd_Application* |
|
||||
| @ref occt_inspector_2_3 "VInspector"| Visualization | *AIS_InteractiveContext* |
|
||||
| @ref occt_inspector_2_4 "ShapeView"| Modeling Data | *TopoDS_Shape* |
|
||||
| @ref occt_inspector_2_5 "MessageView"| Modeling Data | *Message_Report* |
|
||||
|
||||
|
||||
Each plugin implements logic of a corresponding OCCT component.
|
||||
@@ -103,16 +102,10 @@ Context pop-up menu:
|
||||
| Expand All | Expands the whole tree of the selected item. |
|
||||
| Collapse All | Collapses the whole tree of the selected item. |
|
||||
|
||||
|
||||
<b>Property Panel</b>
|
||||
|
||||
Property panel is used to display the result of <b>TDF_Attribute::Dump()</b> or <b>TDF_Label::Dump()</b> of the selected tree view item.
|
||||
The information is shown in one table.
|
||||
|
||||
@figure{property_panel.png,"PropertyPanel",360}
|
||||
|
||||
<b>Property Panel (custom)</b>
|
||||
|
||||
Property panel (custom) is used to display the content of *Label* or *Attribute* tree view items or Search result view.
|
||||
Property panel is used to display the content of *Label* or *Attribute* tree view items or Search result view.
|
||||
The information is usually shown in one or several tables.
|
||||
|
||||
*TDF_Attribute* has the following content in the Property Panel:
|
||||
@@ -121,28 +114,28 @@ The information is usually shown in one or several tables.
|
||||
<tr><th>Type</th><th>Description</th><th>Content</th></tr>
|
||||
<tr><td><i>TDF_Label</i></td>
|
||||
<td> a table of [entry or attribute name, value]</td>
|
||||
<td>@figure{property_panel_custom_label.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_label.png, "",140}</td></tr>
|
||||
<tr><td><i>TDocStd_Owner</i>,<br> Simple type attributes, <br> List type attributes</td>
|
||||
<td>a table of [method name, value]</td>
|
||||
<td>@figure{property_panel_custom_simple_type.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_simple_type.png, "",140}</td></tr>
|
||||
<tr><td><i>TDataStd_BooleanArray</i>,<br> <i>TDataStd_ByteArray</i>,<br> other Array type attributes</td>
|
||||
<td>2 controls: <br> - a table of [array bound, value], <br> - a table of [method name, value] </td>
|
||||
<td>@figure{property_panel_custom_array.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_array.png, "",140}</td></tr>
|
||||
<tr><td><i>TDataStd_TreeNode</i></td>
|
||||
<td>2 controls: <br> - a table of [Tree ID, value] (visible only if Tree ID() != ID() ), <br> - a tree view of tree nodes starting from *Root()* of the tree node. The current tree node has <b>dark blue</b> text.</td>
|
||||
<td>@figure{property_panel_custom_tree_node.png, "",140} </td></tr>
|
||||
<td>@figure{property_panel_tree_node.png, "",140} </td></tr>
|
||||
<tr><td><i>TDataStd_NamedData</i></td>
|
||||
<td>tab bar of attribute elements, each tab has a table of [name, value]</td>
|
||||
<td>@figure{property_panel_custom_named_data.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_named_data.png, "",140}</td></tr>
|
||||
<tr><td><i>TNaming_UsedShapes</i></td>
|
||||
<td>a table of all shapes handled by the framework</td>
|
||||
<td>@figure{property_panel_custom_tnaming_used_shapes.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_tnaming_used_shapes.png, "",140}</td></tr>
|
||||
<tr><td><i>TNaming_NamedShape</i></td>
|
||||
<td>2 controls: <br> - a table of [method name, value] including CurrentShape/OriginalShape methods result of <i>TNaming_Tools</i>, <br> - an evolution table. <br> Tables contain buttons for @ref occt_shape_export "TopoDS_Shape export".</td>
|
||||
<td>@figure{property_panel_custom_tnaming_named_shape.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_tnaming_named_shape.png, "",140}</td></tr>
|
||||
<tr><td><i>TNaming_Naming</i></td>
|
||||
<td>2 controls: <br> - a table of <i>TNaming_Name</i> values,<br> - a table of [method name, value]</td>
|
||||
<td>@figure{property_panel_custom_tnaming_naming.png, "",140}</td></tr>
|
||||
<td>@figure{property_panel_tnaming_naming.png, "",140}</td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -210,17 +203,17 @@ Selection of tree view item updates content of the following controls:
|
||||
|
||||
@figure{dfbrowser_selection_in_tree_view.svg,"",360}
|
||||
|
||||
<b>Property Panel (custom) item selection </b>
|
||||
<b>Property Panel item selection </b>
|
||||
|
||||
If the property panel (custom) shows content of *TDF_Label*:
|
||||
If the property panel shows content of *TDF_Label*:
|
||||
* selection of the table row highlights the corresponding item in the tree view,
|
||||
* double click on the table row selects this item in the tree view.
|
||||
|
||||
If the property panel (custom) shows content of *TDF_Attribute* that has reference to another attribute, selection of this reference:
|
||||
If the property panel shows content of *TDF_Attribute* that has reference to another attribute, selection of this reference:
|
||||
* highlights the referenced item in the tree view,
|
||||
* displays additional presentation in the 3D view if it can be created.
|
||||
|
||||
@figure{property_panel_custom_item_selection.svg,"",360}
|
||||
@figure{property_panel_item_selection.svg,"",360}
|
||||
|
||||
Attributes having references:
|
||||
|
||||
@@ -288,6 +281,27 @@ Context popup menu in tree view:
|
||||
|
||||
This button synchronizes the plugin content with the current state of *AIS_InteractiveContext* and updates the presence of items and their current selection.
|
||||
|
||||
<b>Selection controls</b>
|
||||
|
||||
Selection controls switch on/off the possibility to set selection in the context from VInspector plugin.
|
||||
|
||||
| Action | Tree view item | Functionality |
|
||||
| :----- | :----- | :----- |
|
||||
| Select Presentations | *AIS_InteractiveObject* | Calls *AddOrRemoveSelected* of interactive object for the selected item. |
|
||||
| Select Owners | *SelectMgr_EntityOwner* or <br> *SelectMgr_SensitiveEntity* | Calls *AddOrRemoveSelected* of *SelectMgr_EntityOwner* for the selected item. |
|
||||
|
||||
Note that the initial selection in the context will be cleared.
|
||||
If the button is toggled, the button selection is active. Only one button may be toggled at the moment.
|
||||
|
||||
|
||||
<b>History view</b>
|
||||
|
||||
At present, the History view is under implementation and may be used only in a custom application where Inspector is loaded.
|
||||
|
||||
To fill this view, *VInspectorAPI_CallBack* should be redefined in the application and send signals about some actions applied to the context.
|
||||
After that, the call back should be given as a parameter in the plugin.
|
||||
If done, new items will be created in the history view for each action.
|
||||
|
||||
@subsubsection occt_inspector_2_3_3 Elements cooperation
|
||||
|
||||
*VInspector* marks the presentations currently selected in *AIS_InteractiveContext* with a blue background in tree items. Use **Update** button to synchronize VInspector selected items state to the context.
|
||||
@@ -306,14 +320,6 @@ Selection change:
|
||||
Use context pop-up menu on the tree view header to select, which columns should be displayed.
|
||||
@figure{vinspector_tree_columns.png, "Vinspector tree header context menu",360}
|
||||
|
||||
Use the setting Lights (position, color) in the view.
|
||||
@figure{vinspector_light_setting.png, "Vinspector light setting",360}
|
||||
|
||||
@subsubsection occt_inspector_2_3_5 VInspector property panel
|
||||
|
||||
Property panel shows the result of <b>AIS_InteractiveContext::Dump()</b> or <b>AIS_InteractiveObject::Dump()</b>.
|
||||
@figure{vinspector_property_panel.png, "Vinspector property panel",360}
|
||||
|
||||
@subsection occt_inspector_2_4 ShapeView Plugin
|
||||
|
||||
@subsubsection occt_inspector_2_4_1 Overview
|
||||
@@ -322,13 +328,7 @@ Property panel shows the result of <b>AIS_InteractiveContext::Dump()</b> or <b>A
|
||||
|
||||
This plugin visualizes content of *TopoDS_Shape* in a tree view.
|
||||
|
||||
@subsubsection occt_inspector_2_4_2 Property panel
|
||||
|
||||
Property panel shows properties for TopoDS_Shape based on DumpJson.
|
||||
|
||||
@figure{shapeview_property_panel.png, "ShapeView Property panel",360}
|
||||
|
||||
@subsubsection occt_inspector_2_4_3 Elements
|
||||
@subsubsection occt_inspector_2_4_2 Elements
|
||||
|
||||
@figure{shapeview_elements.svg,"ShapeView Elements",360}
|
||||
|
||||
@@ -351,56 +351,15 @@ Context pop-up menu in tree view:
|
||||
| Close All BREP views | Closes all opened text views. |
|
||||
| BREP directory | Displays the folder, where temporary BREP files have been stored. |
|
||||
|
||||
@subsubsection occt_inspector_2_4_4 Elements cooperation
|
||||
@subsubsection occt_inspector_2_4_3 Elements cooperation
|
||||
|
||||
Selection of one or several items in *TopoDS_Shape* View creates its *AIS_Shape* presentation and displays it in the 3D View.
|
||||
|
||||
@subsubsection occt_inspector_2_4_5 ShapeView tree view columns
|
||||
@subsubsection occt_inspector_2_4_4 ShapeView tree view columns
|
||||
|
||||
Use context pop-up menu on the tree view header to select, which columns should be displayed.
|
||||
@figure{shapeview_tree_columns.png, "ShapeView tree header context menu",360}
|
||||
|
||||
@subsection occt_inspector_2_5 MessageView Plugin
|
||||
|
||||
MessageView plugin is used to display content of Message_Report.
|
||||
|
||||
@subsubsection occt_inspector_2_5_1 Message report tree view
|
||||
|
||||
Message report tree view shows the content of the Message_Report.
|
||||
|
||||
Context pop-up menu in message report tree view:
|
||||
| Action | Functionality |
|
||||
| :----- | :----- |
|
||||
| Export Report | Exports the report as json file. |
|
||||
| WallClock Metric statistic | Creates the table that sums the number of calls and the time spent on the functionality inside the value and shows it in Property panel (custom). It's necessary to activate "WallClock metric". |
|
||||
| Preview children presentations | Displays presentations of children items of selected items if found. |
|
||||
| Deactivate | Deactivates all types of metrics for the current report. |
|
||||
| Activate | Appends items to activate report metrics. |
|
||||
| Clear | Clears message report. |
|
||||
| Activate metric | Switches active state in report for clicked type of metric. |
|
||||
| Test metric | Sends several alerts to check metric of message-alert-tool mechanism. |
|
||||
| Test Message_Messenger | Sends several alerts to check property panel/presentations of messenger-alert-tool mechanism. |
|
||||
| Test Tree of messages | Sends several alerts to check tree of alerts. |
|
||||
|
||||
@figure{messageview_pop_up_menu.png, "MessageView pop-up menu",360}
|
||||
|
||||
@subsubsection occt_inspector_2_5_2 3D View
|
||||
|
||||
3D View shows the selected item (TopoDS_Shape) in message report tree view.
|
||||
@figure{messageview_view.png, "MessageView 3D View",360}
|
||||
|
||||
@subsubsection occt_inspector_2_5_3 Dump panel
|
||||
|
||||
Shows Dump() information of the selected item if the item has Dump().
|
||||
@figure{messageview_dump_panel.png, "MessageView 3D View",360}
|
||||
|
||||
@subsubsection occt_inspector_2_5_4 Property panel (custom)
|
||||
|
||||
Shows the table for WallClock Metric statistic option.
|
||||
@figure{messageview_property_panel_custom.png, "MessageView 3D View",360}
|
||||
|
||||
@subsubsection occt_inspector_2_5_5 Elements
|
||||
@figure{messageview_elements.svg, "MessageView elements",360}
|
||||
|
||||
@section occt_inspector_3 Common controls
|
||||
|
||||
@@ -441,9 +400,7 @@ This control for OCCT 3D viewer creates visualization view components and allows
|
||||
| Context | Allows choosing another context that should be used in the plugin. The following contexts are available:<br> **Own** - the context of this view, <br> **External** - the context of the @ref occt_inspector_4_3 "external application", which initializes the plugin, <br> **None** - the visualization is not performed at all (useful if the presentation is too complex). |
|
||||
| Multi/Single | The buttons define what to do with the previously displayed objects: <br> **Multi** displays new presentations together with already displayed ones, <br> **Single** removes all previously displayed presentations. |
|
||||
| Clean | Removes all displayed presentations. |
|
||||
| Trihedron display | Shows the trihedron. |
|
||||
| View cube display | Shows the view cube. |
|
||||
| Fit All | Scene manipulation actions<br> (Fit All is checkable. If checked(by double click), display/hide of new objects will perform **Fit All** of the scene.) |
|
||||
| Fit All,<br> Fit Area,<br> Zoom,<br> Pan,<br> Rotation | Scene manipulation actions<br> (Fit All is checkable. If checked(by double click), display/hide of new objects will perform **Fit All** of the scene.) |
|
||||
| Display Mode | Sets *AIS_Shading* or *AIS_WireFrame* display mode for all presentations. |
|
||||
|
||||
Context popup menu:
|
||||
@@ -463,7 +420,7 @@ View preferences store the current view orientation.
|
||||
Context menu contains:
|
||||
| Element | Functionality |
|
||||
| :----- | :----- |
|
||||
| Tree Level Line,<br> PropertyPanel,<br> PropertyPanel (custom),<br> Dump, <br> View| Names of dock widgets in the active plugin. If the button is checked, dock widget is visible. |
|
||||
| Tree Level Line,<br> PropertyPanel,<br> Dump, <br> View| Names of dock widgets in the active plugin. If the button is checked, dock widget is visible. |
|
||||
| Store Preferences | Creates ".tinspector.xml" preferences file with the current settings for each plugin.<br> This file is created in TEMP/TMP directory (by default) or in a user-defined directory. |
|
||||
| Remove Preferences | Removes preferences file. After the Inspector is restarted, default values will be applied. |
|
||||
|
||||
@@ -530,7 +487,7 @@ tinspector
|
||||
@figure{drawexe_tinspector.png,"tinspector",360}
|
||||
|
||||
This command does the following:
|
||||
- all available Plugins are presented in the Inspector. These are @ref occt_inspector_2_2 "DFBrowser", @ref occt_inspector_2_3 "VInspector", @ref occt_inspector_2_4 "ShapeView" and @ref occt_inspector_2_5 "MessageView";
|
||||
- all available Plugins are presented in the Inspector. These are @ref occt_inspector_2_2 "DFBrowser", @ref occt_inspector_2_3 "VInspector" and @ref occt_inspector_2_4 "ShapeView";
|
||||
- DFBrowser is the active plugin;
|
||||
- OCAF tree is empty.
|
||||
|
||||
@@ -570,7 +527,6 @@ void CreateInspector()
|
||||
MyTCommunicator->RegisterPlugin ("TKDFBrowser");
|
||||
MyTCommunicator->RegisterPlugin ("TKVInspector");
|
||||
MyTCommunicator->RegisterPlugin ("TKShapeView");
|
||||
MyTCommunicator->RegisterPlugin ("TKMessageView");
|
||||
|
||||
MyTCommunicator->Init (aParameters);
|
||||
MyTCommunicator->Activate ("TKDFBrowser");
|
||||
@@ -586,7 +542,6 @@ Give one the following objects for a plugin using a container of parameters:
|
||||
| *TKDFBrowser* | *TDocStd_Application* |
|
||||
| *TKVInspector* | *AIS_InteractiveContext* |
|
||||
| *TKShapeView* | *TopoDS_TShape* |
|
||||
| *TKMessageView* | *Message_Report* |
|
||||
|
||||
|
||||
@section occt_inspector_5 Build procedure
|
||||
@@ -612,13 +567,11 @@ Distribution of plugin packages :
|
||||
| *DFBrowser*, <br> *DFBrowserPane*, <br> *DFBrowserPaneXDE*, <br> *TKDFBrowser* | DFBrowser |
|
||||
| *VInspector*, <br> *TKVInspector* | VInspector |
|
||||
| *ShapeView*, <br> *TKShapeView* | ShapeView |
|
||||
| *MessageView*, <br> *TKMessageView* | MessageView |
|
||||
|
||||
Other packages:
|
||||
| Source packages| Used in |
|
||||
| :----- | :----- |
|
||||
| *TInspectorAPI*, <br> *TKInspectorAPI* | Interface for connection to plugin. |
|
||||
| *ViewControl*, <br> *TKTreeModel* | Classes for property view, table, table model. |
|
||||
| *TreeModel*, <br> *TKTreeView* | Items-oriented model to simplify work with GUI tree control. |
|
||||
| *View*, <br> *TKView* | 3D View component. |
|
||||
| *TInspector*, <br> *TKTInspector* | Inspector window, where plugins are placed. |
|
||||
|
After Width: | Height: | Size: 488 KiB |
@@ -745,32 +745,6 @@ To open the document from a file where it has been previously saved, you can use
|
||||
app->Open("/tmp/example.caf", doc);
|
||||
~~~~
|
||||
|
||||
For binary formats only the part of the stored document can be loaded. For that the *PCDM_ReadingFilter* class could be used. It is possible to define which attributes must be loaded or omitted,
|
||||
or to define one or several entries for sub-tree that must be loaded only. The following example opens document *doc*, but reads only "0:1:2" label and its sub-labels and only *TDataStd_Name* attributes on them.
|
||||
|
||||
~~~~{.cpp}
|
||||
Handle(PCDM_ReaderFilter) filter = new PCDM_ReaderFilter("0:1:2");
|
||||
filter->AddRead("TDataStd_Name");
|
||||
app->Open("example.cbf", doc, filter);
|
||||
~~~~
|
||||
|
||||
Also, using filters, part of the document can be appended into the already loaded document from the same file. For an example, to read into the previously opened *doc* all attributes, except *TDataStd_Name* and *TDataStd_Integer*:
|
||||
|
||||
~~~~{.cpp}
|
||||
Handle(PCDM_ReaderFilter) filter2 = new PCDM_ReaderFilter(PCDM_ReaderFilter::AppendMode_Protect);
|
||||
filter2->AddSkipped("TDataStd_Name");
|
||||
filter2->AddSkipped("TDataStd_Integer");
|
||||
app->Open("example.cbf", doc, filter2);
|
||||
~~~~
|
||||
|
||||
*PCDM_ReaderFilter::AppendMode_Protect* means that if the loading algorithm finds already existing attribute in the document, it will not be overwritten by attibute from the loading file. If it is needed to
|
||||
substitute the existing attributes, the reading mode *PCDM_ReaderFilter::AppendMode_Overwrite* must be used instead.
|
||||
|
||||
*AddRead* and *AddSkipped* methods for attributes should not be used in one filter. If it is so, *AddSkipped* attributes are ignored during the read.
|
||||
|
||||
Appending to the document content of already loaded file may be performed several times with the same or different parts of the document loaded. For that the filter reading mode must be *PCDM_ReaderFilter::AppendMode_Protect*
|
||||
or *PCDM_ReaderFilter::AppendMode_Overwrite*, which enables the "append" mode of document open. If the filter is empty or null or skipped in arguments, it opens document with "append" mode disabled and any loading limitations.
|
||||
|
||||
@subsubsection occt_ocaf_4_3_5 Cutting, copying and pasting inside a document
|
||||
|
||||
To cut, copy and paste inside a document, use the class *TDF_CopyLabel*.
|
||||
|
@@ -802,7 +802,7 @@ if (MaxOnVertex > MaxAllowed) {
|
||||
|
||||
Class ShapeAnalysis_FreeBounds is intended to analyze and output the free bounds of a shape. Free bounds are wires consisting of edges referenced only once by only one face in the shape.
|
||||
This class works on two distinct types of shapes when analyzing their free bounds:
|
||||
* Analysis of possible free bounds taking the specified tolerance into account. This analysis can be applied to a compound of faces. The analyzer of the sewing algorithm is used to forecast what free bounds would be obtained after the sewing of these faces is performed. The following method should be used for this analysis:
|
||||
* Analysis of possible free bounds taking the specified tolerance into account. This analysis can be applied to a compound of faces. The analyzer of the sewing algorithm (*BRepAlgo_Sewing*) is used to forecast what free bounds would be obtained after the sewing of these faces is performed. The following method should be used for this analysis:
|
||||
~~~~{.cpp}
|
||||
ShapeAnalysis_FreeBounds safb(shape,toler);
|
||||
~~~~
|
||||
|
@@ -1468,8 +1468,8 @@ The following items are required to determine the three colors of reflection:
|
||||
* Coefficient of ambient reflection;
|
||||
* Coefficient of specular reflection.
|
||||
|
||||
Common material properties are used within Phong shading model (Graphic3d_TypeOfShadingModel_Phong, Graphic3d_TypeOfShadingModel_PhongFacet and Graphic3d_TypeOfShadingModel_Gouraud).
|
||||
Within PBR shading model (Graphic3d_TypeOfShadingModel_Pbr and Graphic3d_TypeOfShadingModel_PbrFacet), material properties are defined by the following *Graphic3d_PBRMaterial* properties (Graphic3d_MaterialAspect::PBRMaterial()):
|
||||
Common material properties are used within Gouraud and Phong shading models (Graphic3d_TOSM_FACET, Graphic3d_TOSM_VERTEX and Graphic3d_TOSM_FRAGMENT).
|
||||
Within PBR shading model (Graphic3d_TOSM_PBR and Graphic3d_TOSM_PBR_FACET), material properties are defined by the following *Graphic3d_PBRMaterial* properties (Graphic3d_MaterialAspect::PBRMaterial()):
|
||||
* Albedo (main color);
|
||||
* Metallic factor;
|
||||
* Roughness factor;
|
||||
|
@@ -2,8 +2,6 @@ cmake_minimum_required(VERSION 3.2)
|
||||
|
||||
project(glfw-occt-demo)
|
||||
|
||||
set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/adm/cmake" ${CMAKE_MODULE_PATH})
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(APP_VERSION_MAJOR 1)
|
||||
set(APP_VERSION_MINOR 0)
|
||||
@@ -26,14 +24,15 @@ source_group ("Sources" FILES
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
# Open CASCADE Technology
|
||||
find_package (OpenCASCADE REQUIRED)
|
||||
if (NOT OpenCASCADE_FOUND)
|
||||
message (FATAL_ERROR "coult not find OpenCASCADE, please set OpenCASCADE_DIR variable" )
|
||||
else()
|
||||
message (STATUS "Using OpenCASCADE from \"${OpenCASCADE_INSTALL_PREFIX}\"" )
|
||||
message (STATUS "OpenCASCADE_INCLUDE_DIR=${OpenCASCADE_INCLUDE_DIR}")
|
||||
message (STATUS "OpenCASCADE_LIBRARY_DIR=${OpenCASCADE_LIBRARY_DIR}")
|
||||
find_package(OpenCASCADE REQUIRED NO_DEFAULT_PATH)
|
||||
if (OpenCASCADE_FOUND)
|
||||
message (STATUS "Using OpenCASCADE from \"${OpenCASCADE_DIR}\"" )
|
||||
INCLUDE_DIRECTORIES(${OpenCASCADE_INCLUDE_DIR})
|
||||
LINK_DIRECTORIES(${OpenCASCADE_LIBRARY_DIR})
|
||||
else()
|
||||
message (WARNING "Could not find OpenCASCADE, please set OpenCASCADE_DIR variable." )
|
||||
set (OCCT_LIBRARY_DIR)
|
||||
set (OCCT_BIN_DIR)
|
||||
endif()
|
||||
|
||||
SET(OpenCASCADE_LIBS
|
||||
|
@@ -55,7 +55,7 @@ GlfwOcctWindow::GlfwOcctWindow (int theWidth, int theHeight, const TCollection_A
|
||||
myYBottom = myYTop + aHeight;
|
||||
|
||||
#if !defined(_WIN32) && !defined(__APPLE__)
|
||||
myDisplay = new Aspect_DisplayConnection ((Aspect_XDisplay* )glfwGetX11Display());
|
||||
myDisplay = new Aspect_DisplayConnection (glfwGetX11Display());
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@@ -1,157 +0,0 @@
|
||||
# This script finds OpenCASCADE Technology libraries.
|
||||
# The script requires:
|
||||
# OpenCASCADE_DIR - root OCCT folder or folder with CMake configuration files
|
||||
#
|
||||
# Script will define the following variables on success:
|
||||
# OpenCASCADE_FOUND - package is successfully found
|
||||
# OpenCASCADE_INCLUDE_DIR - directory with headers
|
||||
# OpenCASCADE_LIBRARY_DIR - directory with libraries for linker
|
||||
# OpenCASCADE_BINARY_DIR - directory with DLLs
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
# MY_PLATFORM variable
|
||||
math (EXPR MY_BITNESS "32 + 32*(${CMAKE_SIZEOF_VOID_P}/8)")
|
||||
if (WIN32)
|
||||
set (MY_PLATFORM "win${MY_BITNESS}")
|
||||
elseif(APPLE)
|
||||
set (MY_PLATFORM "mac")
|
||||
else()
|
||||
set (MY_PLATFORM "lin")
|
||||
endif()
|
||||
|
||||
# MY_PLATFORM_AND_COMPILER variable
|
||||
if (MSVC)
|
||||
if (MSVC90)
|
||||
set (MY_COMPILER vc9)
|
||||
elseif (MSVC10)
|
||||
set (MY_COMPILER vc10)
|
||||
elseif (MSVC11)
|
||||
set (MY_COMPILER vc11)
|
||||
elseif (MSVC12)
|
||||
set (MY_COMPILER vc12)
|
||||
elseif (MSVC14)
|
||||
set (MY_COMPILER vc14)
|
||||
else()
|
||||
set (MY_COMPILER vc15)
|
||||
message (WARNING "Unknown msvc version. $$MY_COMPILER is used")
|
||||
endif()
|
||||
elseif (DEFINED CMAKE_COMPILER_IS_GNUCC)
|
||||
set (MY_COMPILER gcc)
|
||||
elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
|
||||
set (MY_COMPILER gcc)
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set (MY_COMPILER clang)
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
|
||||
set (MY_COMPILER icc)
|
||||
else()
|
||||
set (MY_COMPILER ${CMAKE_GENERATOR})
|
||||
string (REGEX REPLACE " " "" COMPILER ${MY_COMPILER})
|
||||
endif()
|
||||
set (MY_PLATFORM_AND_COMPILER "${MY_PLATFORM}/${MY_COMPILER}")
|
||||
|
||||
set (OpenCASCADE_DIR "" CACHE PATH "Path to Open CASCADE libraries.")
|
||||
|
||||
# default paths
|
||||
set (OpenCASCADE_INCLUDE_DIR "${OpenCASCADE_DIR}/inc")
|
||||
set (OpenCASCADE_LIBRARY_DIR "${OpenCASCADE_DIR}/${MY_PLATFORM_AND_COMPILER}/lib")
|
||||
set (OpenCASCADE_BINARY_DIR "${OpenCASCADE_DIR}/${MY_PLATFORM_AND_COMPILER}/bin")
|
||||
|
||||
# complete list of OCCT Toolkits (copy-paste from adm/UDLIST, since installed OCCT does not include UDLIST)
|
||||
set (OpenCASCADE_TKLIST "")
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKernel TKMath) # FoundationClasses
|
||||
set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKG2d TKG3d TKGeomBase TKBRep) # ModelingData
|
||||
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} TKDraw TKViewerTest) # Draw
|
||||
|
||||
# validate location of OCCT libraries and headers
|
||||
set (OpenCASCADE_INCLUDE_DIR_FOUND)
|
||||
set (OpenCASCADE_LIBRARY_DIR_FOUND)
|
||||
set (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND)
|
||||
set (OpenCASCADE_IMPLIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set (OpenCASCADE_SHAREDLIB_RELEASE_FOUND)
|
||||
set (OpenCASCADE_SHAREDLIB_DEBUG_FOUND)
|
||||
if (EXISTS "${OpenCASCADE_INCLUDE_DIR}/Standard.hxx")
|
||||
set (OpenCASCADE_INCLUDE_DIR_FOUND ON)
|
||||
endif()
|
||||
|
||||
if (EXISTS "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_LIBRARY_DIR_FOUND ON)
|
||||
elseif (NOT WIN32 AND EXISTS "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_LIBRARY_DIR_FOUND ON)
|
||||
set (OpenCASCADE_IMPLIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
|
||||
if (EXISTS "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND ON)
|
||||
elseif (NOT WIN32 AND EXISTS "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND ON)
|
||||
set (OpenCASCADE_IMPLIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
elseif (OpenCASCADE_LIBRARY_DIR_FOUND)
|
||||
message (STATUS "Only release OpenCASCADE libraries have been found")
|
||||
endif()
|
||||
|
||||
if (NOT OpenCASCADE_LIBRARY_DIR_FOUND AND OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND)
|
||||
set (OpenCASCADE_LIBRARY_DIR_FOUND ON)
|
||||
message (WARNING "Only debug OpenCASCADE libraries have been found")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (EXISTS "${OpenCASCADE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_SHAREDLIB_RELEASE_FOUND ON)
|
||||
endif()
|
||||
if (EXISTS "${OpenCASCADE_BINARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_SHAREDLIB_DEBUG_FOUND ON)
|
||||
endif()
|
||||
else()
|
||||
if (EXISTS "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_SHAREDLIB_RELEASE_FOUND ON)
|
||||
endif()
|
||||
if (EXISTS "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
set (OpenCASCADE_SHAREDLIB_DEBUG_FOUND ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (OpenCASCADE_INCLUDE_DIR_FOUND AND OpenCASCADE_LIBRARY_DIR_FOUND)
|
||||
set (OpenCASCADE_FOUND ON)
|
||||
set (OpenCASCADE_INSTALL_PREFIX ${OpenCASCADE_DIR})
|
||||
|
||||
# Define OCCT toolkits so that CMake can put absolute paths to linker;
|
||||
# the library existance is not checked here, since modules can be disabled.
|
||||
foreach (aLibIter ${OpenCASCADE_TKLIST})
|
||||
add_library (${aLibIter} SHARED IMPORTED)
|
||||
|
||||
set_property (TARGET ${aLibIter} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties (${aLibIter} PROPERTIES IMPORTED_IMPLIB_RELEASE "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${OpenCASCADE_IMPLIB_SUFFIX}")
|
||||
if (OpenCASCADE_SHAREDLIB_RELEASE_FOUND)
|
||||
if (WIN32)
|
||||
set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_RELEASE "${OpenCASCADE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
else()
|
||||
set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_RELEASE "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND)
|
||||
set_property (TARGET ${aLibIter} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties (${aLibIter} PROPERTIES IMPORTED_IMPLIB_DEBUG "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${OpenCASCADE_IMPLIB_SUFFIX}")
|
||||
if (OpenCASCADE_SHAREDLIB_DEBUG_FOUND)
|
||||
if (WIN32)
|
||||
set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_DEBUG "${OpenCASCADE_BINARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
else()
|
||||
set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_DEBUG "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
# fallback searching for CMake configs
|
||||
if (NOT "${OpenCASCADE_DIR}" STREQUAL "")
|
||||
set (anOcctDirBak "${OpenCASCADE_DIR}")
|
||||
find_package (OpenCASCADE CONFIG QUIET PATHS "${OpenCASCADE_DIR}" NO_DEFAULT_PATH)
|
||||
set (OpenCASCADE_DIR "${anOcctDirBak}" CACHE PATH "Path to Open CASCADE libraries." FORCE)
|
||||
else()
|
||||
find_package (OpenCASCADE CONFIG QUIET)
|
||||
endif()
|
||||
endif()
|
@@ -26,10 +26,12 @@
|
||||
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
|
||||
#include <TopOpeBRepBuild_HBuilder.hxx>
|
||||
|
||||
#include <BRepPrimAPI_MakeBox.hxx>
|
||||
#include <BRepFilletAPI_MakeFillet.hxx>
|
||||
|
||||
#include <BRepAlgoAPI_Cut.hxx>
|
||||
#include <BRepAlgo_Cut.hxx>
|
||||
#include <BRepAlgo.hxx>
|
||||
|
||||
#include <TDF_Data.hxx>
|
||||
@@ -303,7 +305,7 @@ void Sample()
|
||||
ToolSelector.Select(Tool, Tool);
|
||||
const TopoDS_Shape& TOOL = ToolSelector.NamedShape()->Get();
|
||||
|
||||
BRepAlgoAPI_Cut mkCUT (OBJECT, TOOL);
|
||||
BRepAlgo_Cut mkCUT (OBJECT, TOOL);
|
||||
|
||||
if (!mkCUT.IsDone()) {
|
||||
std::cout << "CUT: Algorithm failed" << std::endl;
|
||||
@@ -363,7 +365,8 @@ void Sample()
|
||||
|
||||
// push in the DF section edges
|
||||
TNaming_Builder IntersBuilder(Intersections);
|
||||
TopTools_ListIteratorOfListOfShape its(mkCUT.SectionEdges());
|
||||
Handle(TopOpeBRepBuild_HBuilder) build = mkCUT.Builder();
|
||||
TopTools_ListIteratorOfListOfShape its = build->Section();
|
||||
for (; its.More(); its.Next()) {
|
||||
// TNaming_Evolution == SELECTED
|
||||
IntersBuilder.Select(its.Value(),its.Value());
|
||||
|
@@ -95,7 +95,6 @@ View::View( Handle(AIS_InteractiveContext) theContext, QWidget* parent )
|
||||
myCurZoom = 0;
|
||||
setAttribute(Qt::WA_PaintOnScreen);
|
||||
setAttribute(Qt::WA_NoSystemBackground);
|
||||
setAttribute(Qt::WA_NativeWindow);
|
||||
|
||||
myDefaultGestures = myMouseGestureMap;
|
||||
myCurrentMode = CurAction3d_Nothing;
|
||||
@@ -107,6 +106,8 @@ View::View( Handle(AIS_InteractiveContext) theContext, QWidget* parent )
|
||||
setBackgroundRole( QPalette::NoRole );//NoBackground );
|
||||
// set focus policy to threat QContextMenuEvent from keyboard
|
||||
setFocusPolicy( Qt::StrongFocus );
|
||||
setAttribute( Qt::WA_PaintOnScreen );
|
||||
setAttribute( Qt::WA_NoSystemBackground );
|
||||
init();
|
||||
}
|
||||
|
||||
|
@@ -8,8 +8,6 @@
|
||||
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <AIS_Shape.hxx>
|
||||
#include <V3d_View.hxx>
|
||||
#include <V3d_Viewer.hxx>
|
||||
|
||||
TopoDS_Shape
|
||||
MakeBottle(const Standard_Real myWidth , const Standard_Real myHeight , const Standard_Real myThickness);
|
||||
@@ -25,17 +23,6 @@ DocumentTut::~DocumentTut()
|
||||
|
||||
void DocumentTut::onMakeBottle()
|
||||
{
|
||||
Handle(AIS_InteractiveContext) aCtx = getContext();
|
||||
for (V3d_ListOfView::Iterator aViewIter (aCtx->CurrentViewer()->ActiveViews()); aViewIter.More(); aViewIter.Next())
|
||||
{
|
||||
const Handle(V3d_View)& aView = aViewIter.Value();
|
||||
Graphic3d_RenderingParams& aParams = aView->ChangeRenderingParams();
|
||||
aParams.RenderResolutionScale = 2.0f;
|
||||
}
|
||||
|
||||
const Handle(Prs3d_Drawer)& aDefDrawer = aCtx->DefaultDrawer();
|
||||
aDefDrawer->SetIsoOnTriangulation (true);
|
||||
|
||||
QApplication::setOverrideCursor( Qt::WaitCursor );
|
||||
TopoDS_Shape aBottle=MakeBottle(50,70,30);
|
||||
Handle(AIS_Shape) AISBottle=new AIS_Shape(aBottle);
|
||||
|
@@ -62,9 +62,9 @@ vrenderparams -rayTrace -fsaa on -reflections off -shadows off
|
||||
vcamera -persp -fovy 25
|
||||
vviewparams -eye 14 -14 6.8 -up 0 0 1 -at 4 -4 0 -scale 70
|
||||
vsetdispmode 1
|
||||
vlight -defaults
|
||||
vlight dirlight1 -type DIRECTIONAL -direction 1 -2 -10 -head 1 -color WHITE
|
||||
vlight dirlight2 -type DIRECTIONAL -direction 0 -10 0 -head 1 -color WHITE
|
||||
vlight def
|
||||
vlight add directional direction 1 -2 -10 head 1 color white
|
||||
vlight add directional direction 0 -10 0 head 1 color white
|
||||
|
||||
# display boxes
|
||||
vdisplay b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
|
||||
|
@@ -243,15 +243,17 @@ ttranslate crpk_47 18.0 27.6 0
|
||||
|
||||
eval compound $lrpk brpk
|
||||
|
||||
# show result in 3d viewer
|
||||
vinit View1
|
||||
vclear
|
||||
vsetdispmode 1
|
||||
vrenderparams -msaa 8
|
||||
vlight -clear
|
||||
vlight amblight -type AMBIENT
|
||||
vlight dirlight -type DIRECTIONAL -direction 1 -1 -2 -head 1
|
||||
# show result in plain 3d viewer
|
||||
if [info exists i7_show_3dview] {
|
||||
vinit Driver1/Viewer1/View1
|
||||
vclear
|
||||
vsetdispmode 1
|
||||
vrenderparams -msaa 8
|
||||
|
||||
vlight clear
|
||||
vlight add amb
|
||||
vlight add directional direction 1 -1 -2 head 1
|
||||
|
||||
vdisplay case
|
||||
vsetcolor case GRAY70
|
||||
|
||||
@@ -316,8 +318,12 @@ XSetColor D rpk1 GRAY70
|
||||
XSetColor D rpk2 80664D
|
||||
XSetColor D rpk3 GRAY70
|
||||
|
||||
# display in 3D Viewer
|
||||
XDisplay -dispMode 1 D -explore
|
||||
XShow D
|
||||
vlight clear
|
||||
vlight add amb
|
||||
vlight add directional direction 1 -1 -2 head 1
|
||||
vsetdispmode 1
|
||||
vrenderparams -msaa 8
|
||||
vfit
|
||||
|
||||
# save to STEP if variable i7_save_xde is defined (specifies file name)
|
||||
|
@@ -34,10 +34,9 @@ bcommon teeth teeth outer
|
||||
tcopy inner profile
|
||||
set nbteeths 25
|
||||
for {set i 0} {$i < $nbteeths} {incr i} {
|
||||
bfuse profile profile teeth
|
||||
fuse profile profile teeth
|
||||
trotate teeth 0 0 0 0 0 1 360./$nbteeths
|
||||
}
|
||||
unifysamedom profile profile
|
||||
|
||||
# sweep profile along curved shape
|
||||
|
||||
|
@@ -37,8 +37,8 @@ mkface circle1 p0 circle1
|
||||
mkface circle2 p0 circle2
|
||||
|
||||
bcommon sec rectangle1 circle1
|
||||
bfuse sec sec circle2
|
||||
unifysamedom sec sec
|
||||
# note use of 'fuse' instead of 'bfuse' -- we need to get single face
|
||||
fuse sec sec circle2
|
||||
|
||||
# Construct flute profile so as to have cutting lip straight after sharpening.
|
||||
# Here we need to take into account spiral shift of the flute edge
|
||||
|
@@ -59,10 +59,10 @@ for {set i 0} {$i < 12} {incr i} {
|
||||
}
|
||||
|
||||
# Configure light sources
|
||||
vlight -change 0 -headLight 0
|
||||
vlight -change 0 -head 0
|
||||
vlight -change 0 -direction -0.25 -1 -1
|
||||
vlight -change 0 -smoothAngle 17
|
||||
vlight -change 0 -intensity 10.0
|
||||
vlight -change 0 -sm 0.3
|
||||
vlight -change 0 -int 10.0
|
||||
|
||||
# Load environment map
|
||||
vtextureenv on 1
|
||||
|
@@ -15,7 +15,7 @@ vglinfo
|
||||
|
||||
# setup light sources
|
||||
vlight -clear
|
||||
vlight -add POSITIONAL -headLight 0 -pos 0.5 0.5 0.85 -smoothRadius 0.06 -intensity 30.0 -name pntlight
|
||||
vlight -add positional -head 0 -pos 0.5 0.5 0.85 -sm 0.06 -int 30.0
|
||||
|
||||
vvbo 0
|
||||
vsetdispmode 1
|
||||
|
@@ -211,8 +211,8 @@ vviewparams -size 170.508
|
||||
|
||||
# Restore light source parameters
|
||||
vlight -clear
|
||||
vlight -add AMBIENT -name amblight
|
||||
vlight -add DIRECTIONAL -direction -0.303949 -0.434084 -0.848048 -smoothAngle 17 -intensity 12 -name dirlight
|
||||
vlight -add ambient
|
||||
vlight -add directional -direction -0.303949 -0.434084 -0.848048 -smoothness 0.3 -intensity 12
|
||||
|
||||
# Load environment map
|
||||
vtextureenv on 1
|
||||
|
@@ -31,7 +31,7 @@ vsetcolor glass brown
|
||||
vsettransparency glass 0.6
|
||||
|
||||
# add light source for shadows
|
||||
vlight spot -type SPOT -pos -100 -100 300
|
||||
vlight new spot pos -100 -100 300
|
||||
|
||||
# set white background and fit view
|
||||
vbackground -color WHITE
|
||||
|
@@ -13,20 +13,21 @@ if (NOT DEFINED SOURCE_MAP_BASE)
|
||||
endif()
|
||||
|
||||
# customize build
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=1")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s MAX_WEBGL_VERSION=2")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s ALLOW_MEMORY_GROWTH=1")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s SAFE_HEAP=1")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s NO_EXIT_RUNTIME=1")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s TOTAL_MEMORY=16MB")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s ABORTING_MALLOC=0")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s FORCE_FILESYSTEM=1")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --preload-file myFile")
|
||||
if (NOT "${SOURCE_MAP_BASE}" STREQUAL "")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-g4 --source-map-base ${SOURCE_MAP_BASE}")
|
||||
endif()
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s WASM=1")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s MAX_WEBGL_VERSION=2")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s MODULARIZE=1")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s EXPORT_NAME='createOccViewerModule'")
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ALLOW_MEMORY_GROWTH=1")
|
||||
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s TOTAL_MEMORY=16MB")
|
||||
|
||||
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --preload-file myFile")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --extern-post-js ${CMAKE_CURRENT_SOURCE_DIR}/occt-webgl-viewer.js")
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
|
||||
@@ -35,9 +36,11 @@ file(GLOB SOURCES
|
||||
*.cpp
|
||||
)
|
||||
source_group ("Headers" FILES
|
||||
WasmOcctView.h)
|
||||
WasmOcctView.h
|
||||
WasmOcctPixMap.h)
|
||||
source_group ("Sources" FILES
|
||||
WasmOcctView.cpp
|
||||
WasmOcctPixMap.cpp
|
||||
main.cpp)
|
||||
|
||||
# FreeType
|
||||
@@ -77,8 +80,5 @@ if (NOT "${SOURCE_MAP_BASE}" STREQUAL "")
|
||||
endif()
|
||||
endif()
|
||||
install(FILES occt-webgl-sample.html DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/OCC_logo.png DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/lamp.ico DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
if (CMAKE_CXX_FLAGS MATCHES "-pthread")
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.worker.js DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
endif()
|
||||
install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/OCC_logo.png DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/lamp.ico DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
|
75
samples/webgl/WasmOcctPixMap.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
// Copyright (c) 2021 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of the examples of the Open CASCADE Technology software library.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
|
||||
|
||||
#include "WasmOcctPixMap.h"
|
||||
|
||||
#include <Message.hxx>
|
||||
|
||||
#include <emscripten.h>
|
||||
|
||||
// ================================================================
|
||||
// Function : WasmOcctPixMap
|
||||
// Purpose :
|
||||
// ================================================================
|
||||
WasmOcctPixMap::WasmOcctPixMap()
|
||||
: myRawDataPtr (nullptr) {}
|
||||
|
||||
// ================================================================
|
||||
// Function : ~WasmOcctPixMap
|
||||
// Purpose :
|
||||
// ================================================================
|
||||
WasmOcctPixMap::~WasmOcctPixMap()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// Function : Clear
|
||||
// Purpose :
|
||||
// ================================================================
|
||||
void WasmOcctPixMap::Clear()
|
||||
{
|
||||
if (myRawDataPtr != nullptr) { free (myRawDataPtr); }
|
||||
myRawDataPtr = nullptr;
|
||||
Image_PixMap::Clear();
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// Function : Init
|
||||
// Purpose :
|
||||
// ================================================================
|
||||
bool WasmOcctPixMap::Init (const char* theFilePath)
|
||||
{
|
||||
Clear();
|
||||
int aSizeX = 0, aSizeY = 0;
|
||||
char* anImgData = emscripten_get_preloaded_image_data (theFilePath, &aSizeX, &aSizeY);
|
||||
if (anImgData == nullptr)
|
||||
{
|
||||
Message::DefaultMessenger()->Send (TCollection_AsciiString("Error: invalid image ") + theFilePath, Message_Fail);
|
||||
return false;
|
||||
}
|
||||
|
||||
Message::DefaultMessenger()->Send (TCollection_AsciiString("Loaded image ") + theFilePath + "@" + aSizeX + "x" + aSizeY, Message_Info);
|
||||
InitWrapper (Image_Format_RGBA, (Standard_Byte* )anImgData, aSizeX, aSizeY);
|
||||
SetTopDown (true);
|
||||
myRawDataPtr = anImgData;
|
||||
return true;
|
||||
}
|
47
samples/webgl/WasmOcctPixMap.h
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright (c) 2021 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of the examples of the Open CASCADE Technology software library.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
|
||||
|
||||
#ifndef _WasmOcctPixMap_HeaderFile
|
||||
#define _WasmOcctPixMap_HeaderFile
|
||||
|
||||
#include <Image_PixMap.hxx>
|
||||
|
||||
//! Image pixmap loading image using Emscripten.
|
||||
class WasmOcctPixMap : public Image_PixMap
|
||||
{
|
||||
public:
|
||||
//! Empty constructor.
|
||||
WasmOcctPixMap();
|
||||
|
||||
//! Destructor.
|
||||
virtual ~WasmOcctPixMap();
|
||||
|
||||
//! Load RGBA pixmap using emscripten_get_preloaded_image_data() from the given path.
|
||||
bool Init (const char* theFilePath);
|
||||
|
||||
//! Release memory.
|
||||
virtual void Clear() override;
|
||||
|
||||
private:
|
||||
char* myRawDataPtr;
|
||||
};
|
||||
|
||||
#endif // _WasmOcctPixMap_HeaderFile
|
@@ -21,11 +21,12 @@
|
||||
|
||||
#include "WasmOcctView.h"
|
||||
|
||||
#include "WasmOcctPixMap.h"
|
||||
|
||||
#include <AIS_Shape.hxx>
|
||||
#include <AIS_ViewCube.hxx>
|
||||
#include <Aspect_Handle.hxx>
|
||||
#include <Aspect_DisplayConnection.hxx>
|
||||
#include <Image_AlienPixMap.hxx>
|
||||
#include <Message.hxx>
|
||||
#include <Message_Messenger.hxx>
|
||||
#include <Graphic3d_CubeMapPacked.hxx>
|
||||
@@ -81,8 +82,8 @@ namespace
|
||||
static void onImageRead (const char* theFilePath)
|
||||
{
|
||||
Handle(Graphic3d_CubeMapPacked) aCubemap;
|
||||
Handle(Image_AlienPixMap) anImage = new Image_AlienPixMap();
|
||||
if (anImage->Load (theFilePath))
|
||||
Handle(WasmOcctPixMap) anImage = new WasmOcctPixMap();
|
||||
if (anImage->Init (theFilePath))
|
||||
{
|
||||
aCubemap = new Graphic3d_CubeMapPacked (anImage);
|
||||
}
|
||||
@@ -185,16 +186,12 @@ void WasmOcctView::initWindow()
|
||||
emscripten_set_resize_callback (EMSCRIPTEN_EVENT_TARGET_WINDOW, this, toUseCapture, onResizeCallback);
|
||||
|
||||
emscripten_set_mousedown_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
// bind these events to window to track mouse movements outside of canvas
|
||||
//emscripten_set_mouseup_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
//emscripten_set_mousemove_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
//emscripten_set_mouseleave_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_mouseup_callback (EMSCRIPTEN_EVENT_TARGET_WINDOW, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_mousemove_callback (EMSCRIPTEN_EVENT_TARGET_WINDOW, this, toUseCapture, onMouseCallback);
|
||||
|
||||
emscripten_set_mouseup_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_mousemove_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_dblclick_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_click_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_mouseenter_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_mouseleave_callback (aTargetId, this, toUseCapture, onMouseCallback);
|
||||
emscripten_set_wheel_callback (aTargetId, this, toUseCapture, onWheelCallback);
|
||||
|
||||
emscripten_set_touchstart_callback (aTargetId, this, toUseCapture, onTouchCallback);
|
||||
@@ -202,12 +199,9 @@ void WasmOcctView::initWindow()
|
||||
emscripten_set_touchmove_callback (aTargetId, this, toUseCapture, onTouchCallback);
|
||||
emscripten_set_touchcancel_callback(aTargetId, this, toUseCapture, onTouchCallback);
|
||||
|
||||
//emscripten_set_keypress_callback (aTargetId, this, toUseCapture, onKeyCallback);
|
||||
emscripten_set_keydown_callback (aTargetId, this, toUseCapture, onKeyDownCallback);
|
||||
emscripten_set_keyup_callback (aTargetId, this, toUseCapture, onKeyUpCallback);
|
||||
//emscripten_set_focus_callback (aTargetId, this, toUseCapture, onFocusCallback);
|
||||
//emscripten_set_focusin_callback (aTargetId, this, toUseCapture, onFocusCallback);
|
||||
emscripten_set_focusout_callback (aTargetId, this, toUseCapture, onFocusCallback);
|
||||
//emscripten_set_keypress_callback (EMSCRIPTEN_EVENT_TARGET_WINDOW, this, toUseCapture, onKeyCallback);
|
||||
emscripten_set_keydown_callback (EMSCRIPTEN_EVENT_TARGET_WINDOW, this, toUseCapture, onKeyDownCallback);
|
||||
emscripten_set_keyup_callback (EMSCRIPTEN_EVENT_TARGET_WINDOW, this, toUseCapture, onKeyUpCallback);
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
@@ -314,13 +308,13 @@ bool WasmOcctView::initViewer()
|
||||
|
||||
Handle(V3d_Viewer) aViewer = new V3d_Viewer (aDriver);
|
||||
aViewer->SetComputedMode (false);
|
||||
aViewer->SetDefaultShadingModel (Graphic3d_TypeOfShadingModel_Phong);
|
||||
aViewer->SetDefaultShadingModel (Graphic3d_TOSM_FRAGMENT);
|
||||
aViewer->SetDefaultLights();
|
||||
aViewer->SetLightOn();
|
||||
for (V3d_ListOfLight::Iterator aLightIter (aViewer->ActiveLights()); aLightIter.More(); aLightIter.Next())
|
||||
{
|
||||
const Handle(V3d_Light)& aLight = aLightIter.Value();
|
||||
if (aLight->Type() == Graphic3d_TypeOfLightSource_Directional)
|
||||
if (aLight->Type() == Graphic3d_TOLS_DIRECTIONAL)
|
||||
{
|
||||
aLight->SetCastShadows (true);
|
||||
}
|
||||
@@ -481,21 +475,6 @@ EM_BOOL WasmOcctView::onResizeEvent (int theEventType, const EmscriptenUiEvent*
|
||||
return EM_TRUE;
|
||||
}
|
||||
|
||||
//! Update canvas bounding rectangle.
|
||||
EM_JS(void, jsUpdateBoundingClientRect, (), {
|
||||
Module._myCanvasRect = Module.canvas.getBoundingClientRect();
|
||||
});
|
||||
|
||||
//! Get canvas bounding top.
|
||||
EM_JS(int, jsGetBoundingClientTop, (), {
|
||||
return Math.round(Module._myCanvasRect.top);
|
||||
});
|
||||
|
||||
//! Get canvas bounding left.
|
||||
EM_JS(int, jsGetBoundingClientLeft, (), {
|
||||
return Math.round(Module._myCanvasRect.left);
|
||||
});
|
||||
|
||||
// ================================================================
|
||||
// Function : onMouseEvent
|
||||
// Purpose :
|
||||
@@ -508,18 +487,6 @@ EM_BOOL WasmOcctView::onMouseEvent (int theEventType, const EmscriptenMouseEvent
|
||||
}
|
||||
|
||||
Handle(Wasm_Window) aWindow = Handle(Wasm_Window)::DownCast (myView->Window());
|
||||
if (theEventType == EMSCRIPTEN_EVENT_MOUSEMOVE
|
||||
|| theEventType == EMSCRIPTEN_EVENT_MOUSEUP)
|
||||
{
|
||||
// these events are bound to EMSCRIPTEN_EVENT_TARGET_WINDOW, and coordinates should be converted
|
||||
jsUpdateBoundingClientRect();
|
||||
EmscriptenMouseEvent anEvent = *theEvent;
|
||||
anEvent.targetX -= jsGetBoundingClientLeft();
|
||||
anEvent.targetY -= jsGetBoundingClientTop();
|
||||
aWindow->ProcessMouseEvent (*this, theEventType, &anEvent);
|
||||
return EM_FALSE;
|
||||
}
|
||||
|
||||
return aWindow->ProcessMouseEvent (*this, theEventType, theEvent) ? EM_TRUE : EM_FALSE;
|
||||
}
|
||||
|
||||
@@ -591,24 +558,6 @@ bool WasmOcctView::navigationKeyModifierSwitch (unsigned int theModifOld,
|
||||
return hasActions;
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// Function : onFocusEvent
|
||||
// Purpose :
|
||||
// ================================================================
|
||||
EM_BOOL WasmOcctView::onFocusEvent (int theEventType, const EmscriptenFocusEvent* theEvent)
|
||||
{
|
||||
if (myView.IsNull()
|
||||
|| (theEventType != EMSCRIPTEN_EVENT_FOCUS
|
||||
&& theEventType != EMSCRIPTEN_EVENT_FOCUSIN // about to receive focus
|
||||
&& theEventType != EMSCRIPTEN_EVENT_FOCUSOUT))
|
||||
{
|
||||
return EM_FALSE;
|
||||
}
|
||||
|
||||
Handle(Wasm_Window) aWindow = Handle(Wasm_Window)::DownCast (myView->Window());
|
||||
return aWindow->ProcessFocusEvent (*this, theEventType, theEvent) ? EM_TRUE : EM_FALSE;
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
// Function : onKeyDownEvent
|
||||
// Purpose :
|
||||
|
@@ -181,9 +181,6 @@ private:
|
||||
//! Key up event.
|
||||
EM_BOOL onKeyUpEvent (int theEventType, const EmscriptenKeyboardEvent* theEvent);
|
||||
|
||||
//! Focus change event.
|
||||
EM_BOOL onFocusEvent (int theEventType, const EmscriptenFocusEvent* theEvent);
|
||||
|
||||
//! @name Emscripten callbacks (static functions)
|
||||
private:
|
||||
|
||||
@@ -208,9 +205,6 @@ private:
|
||||
static EM_BOOL onKeyUpCallback (int theEventType, const EmscriptenKeyboardEvent* theEvent, void* theView)
|
||||
{ return ((WasmOcctView* )theView)->onKeyUpEvent (theEventType, theEvent); }
|
||||
|
||||
static EM_BOOL onFocusCallback (int theEventType, const EmscriptenFocusEvent* theEvent, void* theView)
|
||||
{ return ((WasmOcctView* )theView)->onFocusEvent (theEventType, theEvent); }
|
||||
|
||||
private:
|
||||
|
||||
//! Register hot-keys for specified Action.
|
||||
|
@@ -1,24 +1,3 @@
|
||||
// Copyright (c) 2019 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of the examples of the Open CASCADE Technology software library.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "WasmOcctView.h"
|
||||
@@ -44,20 +23,7 @@ EMSCRIPTEN_KEEPALIVE int main()
|
||||
Message::DefaultMessenger()->Printers().First()->SetTraceLevel (Message_Trace);
|
||||
Handle(Message_PrinterSystemLog) aJSConsolePrinter = new Message_PrinterSystemLog ("webgl-sample", Message_Trace);
|
||||
Message::DefaultMessenger()->AddPrinter (aJSConsolePrinter); // open JavaScript console within the Browser to see this output
|
||||
Message::SendTrace() << "Emscripten SDK " << __EMSCRIPTEN_major__ << "." << __EMSCRIPTEN_minor__ << "." << __EMSCRIPTEN_tiny__;
|
||||
#if defined(__LP64__)
|
||||
Message::SendTrace() << "Architecture: WASM 64-bit";
|
||||
#else
|
||||
Message::SendTrace() << "Architecture: WASM 32-bit";
|
||||
#endif
|
||||
Message::SendTrace() << "NbLogicalProcessors: "
|
||||
<< OSD_Parallel::NbLogicalProcessors()
|
||||
#ifdef __EMSCRIPTEN_PTHREADS__
|
||||
<< " (pthreads ON)"
|
||||
#else
|
||||
<< " (pthreads OFF)"
|
||||
#endif
|
||||
;
|
||||
Message::DefaultMessenger()->Send (TCollection_AsciiString("NbLogicalProcessors: ") + OSD_Parallel::NbLogicalProcessors(), Message_Trace);
|
||||
|
||||
// setup a dummy single-shot main loop callback just to shut up a useless Emscripten error message on calling eglSwapInterval()
|
||||
emscripten_set_main_loop (onMainLoop, -1, 0);
|
||||
|
@@ -42,11 +42,6 @@ function updateCanvasSize()
|
||||
window.onresize = updateCanvasSize;
|
||||
updateCanvasSize();
|
||||
|
||||
// capture keyboard input on mouse click
|
||||
occViewerCanvas.tabIndex = -1;
|
||||
occViewerCanvas.onclick = (theEvent) => { occViewerCanvas.focus() };
|
||||
occViewerCanvas.focus();
|
||||
|
||||
//! Check browser support.
|
||||
function isWasmSupported()
|
||||
{
|
||||
@@ -83,7 +78,6 @@ fileInput.onchange = function()
|
||||
OccViewerModule.openFromMemory (aFile.name, aDataBuffer, aDataArray.length, true);
|
||||
//OccViewerModule._free (aDataBuffer); will be freed by called method
|
||||
OccViewerModule.displayGround (true);
|
||||
occViewerCanvas.focus();
|
||||
};
|
||||
aReader.readAsArrayBuffer(aFile);
|
||||
};
|
||||
|