Compare commits
62 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c77637edb1 | ||
|
e463b2f685 | ||
|
e3dae4a9f3 | ||
|
f4f9ce4b77 | ||
|
4af354e6ed | ||
|
8f7159cbaa | ||
|
bf2884afbe | ||
|
18c678759e | ||
|
340b2327b6 | ||
|
7ce8fe052d | ||
|
ccd3858e63 | ||
|
4ec4e4e8a8 | ||
|
90da038e9d | ||
|
9a52982920 | ||
|
68a8b15260 | ||
|
03eb96038e | ||
|
44f6e8d5e8 | ||
|
4f5e934445 | ||
|
65acdce54c | ||
|
30fa5f6713 | ||
|
740833a6a8 | ||
|
2009530611 | ||
|
250ad34d90 | ||
|
4a837ecec2 | ||
|
58c0958b50 | ||
|
323e88ada7 | ||
|
d0cf7e8f3c | ||
|
4e69a6ac05 | ||
|
b6b55c3d96 | ||
|
87b7b496ec | ||
|
e1aa4ee31f | ||
|
120dec9fb3 | ||
|
3bbcf114f0 | ||
|
d62df471b2 | ||
|
7ac3f543c7 | ||
|
7c3daf20d1 | ||
|
a81bd74a38 | ||
|
c1e15aa538 | ||
|
519c84b43e | ||
|
794b3d8936 | ||
|
c8365a1c28 | ||
|
45143b7a24 | ||
|
9eab1511b0 | ||
|
0ffecc2fc7 | ||
|
6eddc28410 | ||
|
97e80b8c30 | ||
|
57c5e9e895 | ||
|
2b40ee81d1 | ||
|
62874fa199 | ||
|
e77bcb6b57 | ||
|
d4edeaed31 | ||
|
80ffc5f84d | ||
|
d1069cad4b | ||
|
0c4931e873 | ||
|
3ea347e562 | ||
|
510d099d15 | ||
|
5bd54bef32 | ||
|
4f7ad5fb76 | ||
|
f706c128c2 | ||
|
209ae313a5 | ||
|
81f57d1135 | ||
|
9923f08703 |
@@ -1124,14 +1124,8 @@ if (BUILD_SAMPLES_MFC)
|
|||||||
add_subdirectory(samples/mfc/standard/mfcsample)
|
add_subdirectory(samples/mfc/standard/mfcsample)
|
||||||
add_subdirectory(samples/mfc/standard/01_Geometry)
|
add_subdirectory(samples/mfc/standard/01_Geometry)
|
||||||
add_subdirectory(samples/mfc/standard/02_Modeling)
|
add_subdirectory(samples/mfc/standard/02_Modeling)
|
||||||
add_subdirectory(samples/mfc/standard/03_Viewer2d)
|
add_subdirectory(samples/mfc/standard/03_ImportExport)
|
||||||
add_subdirectory(samples/mfc/standard/04_Viewer3d)
|
add_subdirectory(samples/mfc/standard/04_HLR)
|
||||||
add_subdirectory(samples/mfc/standard/05_ImportExport)
|
|
||||||
add_subdirectory(samples/mfc/standard/06_Ocaf)
|
|
||||||
add_subdirectory(samples/mfc/standard/07_Triangulation)
|
|
||||||
add_subdirectory(samples/mfc/standard/08_HLR)
|
|
||||||
add_subdirectory(samples/mfc/standard/09_Animation)
|
|
||||||
add_subdirectory(samples/mfc/standard/10_Convert)
|
|
||||||
|
|
||||||
message (STATUS "Info: \(${CURRENT_TIME}\) MFC Sample projects added")
|
message (STATUS "Info: \(${CURRENT_TIME}\) MFC Sample projects added")
|
||||||
endif()
|
endif()
|
||||||
|
@@ -115,6 +115,9 @@ if (MSVC)
|
|||||||
endif()
|
endif()
|
||||||
elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
|
||||||
|
endif()
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set (CMAKE_SHARED_LINKER_FLAGS "-lm ${CMAKE_SHARED_LINKER_FLAGS}")
|
set (CMAKE_SHARED_LINKER_FLAGS "-lm ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||||
|
@@ -1251,13 +1251,13 @@ proc wokdep:SearchX11 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64
|
|||||||
return "$isFound"
|
return "$isFound"
|
||||||
}
|
}
|
||||||
|
|
||||||
set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH"]
|
set aX11LibPath [wokdep:SearchLib "X11" "$::ARCH"]
|
||||||
if { "$aXmuLibPath" == "" } {
|
if { "$aX11LibPath" == "" } {
|
||||||
set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH" "/usr/X11/lib"]
|
set aX11LibPath [wokdep:SearchLib "X11" "$::ARCH" "/usr/X11/lib"]
|
||||||
if { "$aXmuLibPath" != "" } {
|
if { "$aX11LibPath" != "" } {
|
||||||
#lappend ::CSF_OPT_LIB$::ARCH "/usr/X11/lib"
|
#lappend ::CSF_OPT_LIB$::ARCH "/usr/X11/lib"
|
||||||
} else {
|
} else {
|
||||||
lappend anErrLib$::ARCH "Error: '${::SYS_LIB_PREFIX}Xmu.${::SYS_LIB_SUFFIX}' not found (X11)"
|
lappend anErrLib$::ARCH "Error: '${::SYS_LIB_PREFIX}X11.${::SYS_LIB_SUFFIX}' not found (X11)"
|
||||||
set isFound "false"
|
set isFound "false"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -236,9 +236,11 @@ proc gendoc {args} {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
} elseif {$arg_n == "s"} {
|
} elseif {$arg_n == "s"} {
|
||||||
if { [ lsearch $args_names "pdf" ] == -1 } {
|
if { [ lsearch $args_names "pdf" ] != -1 } {
|
||||||
|
puts "Warning: search is not used with PDF and will be ignored."
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if {$args_values(s) != "NULL"} {
|
if {$args_values(s) != "NULL"} {
|
||||||
set SEARCH_MODE $args_values(s)
|
set SEARCH_MODE $args_values(s)
|
||||||
} else {
|
} else {
|
||||||
@@ -247,6 +249,9 @@ proc gendoc {args} {
|
|||||||
}
|
}
|
||||||
} elseif {$arg_n == "mathjax"} {
|
} elseif {$arg_n == "mathjax"} {
|
||||||
if { [ lsearch $args_names "pdf" ] != -1 } {
|
if { [ lsearch $args_names "pdf" ] != -1 } {
|
||||||
|
puts "Warning: MathJax is not used with PDF and will be ignored."
|
||||||
|
}
|
||||||
|
|
||||||
set possible_mathjax_loc $args_values(mathjax)
|
set possible_mathjax_loc $args_values(mathjax)
|
||||||
if {[file exist [file join $possible_mathjax_loc $mathjax_js_name]]} {
|
if {[file exist [file join $possible_mathjax_loc $mathjax_js_name]]} {
|
||||||
set MATHJAX_LOCATION $args_values(mathjax)
|
set MATHJAX_LOCATION $args_values(mathjax)
|
||||||
@@ -255,9 +260,6 @@ proc gendoc {args} {
|
|||||||
puts "Warning: $mathjax_js_name is not found in $possible_mathjax_loc."
|
puts "Warning: $mathjax_js_name is not found in $possible_mathjax_loc."
|
||||||
puts " MathJax will be used from $MATHJAX_LOCATION"
|
puts " MathJax will be used from $MATHJAX_LOCATION"
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
puts "Warning: MathJax is not used with pdf and will be ignored."
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
puts "\nWrong argument: $arg_n"
|
puts "\nWrong argument: $arg_n"
|
||||||
OCCDoc_PrintHelpMessage
|
OCCDoc_PrintHelpMessage
|
||||||
@@ -833,6 +835,7 @@ proc OCCDoc_MakeDoxyfile {docType outDir tagFileDir {doxyFileName} {generatorMod
|
|||||||
puts $doxyFile "PROJECT_NUMBER = $occt_version"
|
puts $doxyFile "PROJECT_NUMBER = $occt_version"
|
||||||
puts $doxyFile "OUTPUT_DIRECTORY = $outDir/."
|
puts $doxyFile "OUTPUT_DIRECTORY = $outDir/."
|
||||||
puts $doxyFile "PROJECT_LOGO = [OCCDoc_GetDoxDir]/resources/occ_logo.png"
|
puts $doxyFile "PROJECT_LOGO = [OCCDoc_GetDoxDir]/resources/occ_logo.png"
|
||||||
|
puts $doxyFile "EXAMPLE_PATH = [OCCDoc_GetSourceDir $productsPath]"
|
||||||
|
|
||||||
set PARAM_INPUT "INPUT ="
|
set PARAM_INPUT "INPUT ="
|
||||||
set PARAM_IMAGEPATH "IMAGE_PATH = [OCCDoc_GetDoxDir]/resources/ "
|
set PARAM_IMAGEPATH "IMAGE_PATH = [OCCDoc_GetDoxDir]/resources/ "
|
||||||
|
@@ -39,6 +39,10 @@ win32 {
|
|||||||
DEFINES += _SCL_SECURE_NO_WARNINGS
|
DEFINES += _SCL_SECURE_NO_WARNINGS
|
||||||
} else {
|
} else {
|
||||||
CONFIG += c++11
|
CONFIG += c++11
|
||||||
|
clang {
|
||||||
|
QMAKE_CFLAGS_WARN_ON += -Wshorten-64-to-32
|
||||||
|
QMAKE_CXXFLAGS_WARN_ON += -Wshorten-64-to-32
|
||||||
|
}
|
||||||
QMAKE_CFLAGS += -fexceptions
|
QMAKE_CFLAGS += -fexceptions
|
||||||
QMAKE_CXXFLAGS += -fexceptions
|
QMAKE_CXXFLAGS += -fexceptions
|
||||||
QMAKE_CXXFLAGS += -fvisibility=default
|
QMAKE_CXXFLAGS += -fvisibility=default
|
||||||
|
@@ -26,6 +26,7 @@ HAVE_FFMPEG { CSF_FFmpeg = -lavcodec -lavformat -lswscale -lavutil }
|
|||||||
HAVE_TBB { CSF_TBB = -ltbb -ltbbmalloc }
|
HAVE_TBB { CSF_TBB = -ltbb -ltbbmalloc }
|
||||||
HAVE_ZLIB { CSF_ZLIB = -lzlib }
|
HAVE_ZLIB { CSF_ZLIB = -lzlib }
|
||||||
HAVE_LIBLZMA { CSF_LIBLZMA = -lliblzma }
|
HAVE_LIBLZMA { CSF_LIBLZMA = -lliblzma }
|
||||||
|
HAVE_DRACO { CSF_Draco = -ldraco }
|
||||||
win32 {
|
win32 {
|
||||||
CSF_kernel32 = -lkernel32
|
CSF_kernel32 = -lkernel32
|
||||||
CSF_advapi32 = -ladvapi32
|
CSF_advapi32 = -ladvapi32
|
||||||
|
142
adm/scripts/bullet/android_bullet_build.bat
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
@echo OFF
|
||||||
|
|
||||||
|
rem Auxiliary script for semi-automated building of Bullet for Android platform.
|
||||||
|
rem Script should be placed into root of Bullet repository, edited with paths
|
||||||
|
rem to CMake, 3rd-parties, Android NDK and MinGW64 make tool.
|
||||||
|
|
||||||
|
rem CMake toolchain definition should be cloned from the following git repository:
|
||||||
|
rem https://github.com/taka-no-me/android-cmake
|
||||||
|
|
||||||
|
set "aBulletSrc=%~dp0"
|
||||||
|
set aNbJobs=%NUMBER_OF_PROCESSORS%
|
||||||
|
|
||||||
|
call c:\TDM-GCC-64\mingwvars.bat
|
||||||
|
set "PATH=c:\CMake\bin;%PATH%"
|
||||||
|
set "anNdkPath=c:/android-ndk-r12"
|
||||||
|
set "aToolchain=c:/android-cmake-master/android.toolchain.cmake"
|
||||||
|
|
||||||
|
set "toPack=1"
|
||||||
|
|
||||||
|
set /p aBulletVersion=<%aBulletSrc%VERSION
|
||||||
|
echo "aBulletVersion=%aBulletVersion%"
|
||||||
|
|
||||||
|
call :cmakeGenerate "15" "armeabi-v7a"
|
||||||
|
call :cmakeGenerate "15" "x86"
|
||||||
|
call :cmakeGenerate "21" "arm64-v8a"
|
||||||
|
call :cmakeGenerate "21" "x86_64"
|
||||||
|
|
||||||
|
set "THE_7Z_PARAMS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
|
||||||
|
if ["%THE_7Z_PATH%"] == [""] set "THE_7Z_PATH=%ProgramW6432%\7-Zip\7z.exe"
|
||||||
|
if not exist "%THE_7Z_PATH%" set "THE_7Z_PATH=%ProgramW6432%\7-Zip\7z.exe"
|
||||||
|
if not exist "%THE_7Z_PATH%" set "THE_7Z_PATH=%ProgramFiles%\7-Zip\7z.exe"
|
||||||
|
|
||||||
|
set "anArchName=bullet-%aBulletVersion%-android"
|
||||||
|
set "aTarget=%~dp0work\%anArchName%"
|
||||||
|
|
||||||
|
if "%toPack%"=="1" (
|
||||||
|
echo Creating archive %anArchName%.7z
|
||||||
|
rmdir /S /Q "%aTarget%"
|
||||||
|
if not exist "%aTarget%\libs" ( mkdir "%aTarget%\libs" )
|
||||||
|
if exist "%~dp0work/%anArchName%.7z" del "%~dp0work/%anArchName%.7z"
|
||||||
|
xcopy /S /Y "%~dp0work\android-armeabi-v7a-gcc\include\*" "%aTarget%\"
|
||||||
|
xcopy /S /Y "%~dp0work\android-armeabi-v7a-gcc\libs\*" "%aTarget%\libs\"
|
||||||
|
xcopy /S /Y "%~dp0work\android-arm64-v8a-gcc\libs\*" "%aTarget%\libs\"
|
||||||
|
xcopy /S /Y "%~dp0work\android-x86-gcc\libs\*" "%aTarget%\libs\"
|
||||||
|
xcopy /S /Y "%~dp0work\android-x86_64-gcc\libs\*" "%aTarget%\libs\"
|
||||||
|
xcopy /Y "%aBulletSrc%README.md" "%aTarget%\"
|
||||||
|
xcopy /Y "%aBulletSrc%LICENSE.txt" "%aTarget%\"
|
||||||
|
|
||||||
|
"%THE_7Z_PATH%" a -r %THE_7Z_PARAMS% "%~dp0work/%anArchName%.7z" "%aTarget%"
|
||||||
|
)
|
||||||
|
|
||||||
|
if not ["%1"] == ["-nopause"] (
|
||||||
|
pause
|
||||||
|
)
|
||||||
|
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:cmakeGenerate
|
||||||
|
set "anApi=%1"
|
||||||
|
set "anAbi=%2"
|
||||||
|
set "aPlatformAndCompiler=android-%anAbi%-gcc"
|
||||||
|
set "aWorkDir=work\%aPlatformAndCompiler%-make"
|
||||||
|
set "aLogFile=%~dp0build-%anAbi%.log"
|
||||||
|
if not exist "%aWorkDir%" ( mkdir "%aWorkDir%" )
|
||||||
|
if exist "%aLogFile%" ( del "%aLogFile%" )
|
||||||
|
|
||||||
|
pushd "%aWorkDir%"
|
||||||
|
|
||||||
|
set STARTTIME=%TIME%
|
||||||
|
echo Configuring Bullet for Android %anAbi% (API level %anApi%)...
|
||||||
|
cmake -G "MinGW Makefiles" ^
|
||||||
|
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
|
||||||
|
-D ANDROID_NDK:FILEPATH="%anNdkPath%" ^
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" ^
|
||||||
|
-D ANDROID_ABI:STRING="%anAbi%" ^
|
||||||
|
-D ANDROID_NATIVE_API_LEVEL:STRING="%anApi%" ^
|
||||||
|
-D ANDROID_STL:STRING="gnustl_shared" ^
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" ^
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="%~dp0work/%aPlatformAndCompiler%" ^
|
||||||
|
-D LIBRARY_OUTPUT_PATH:PATH="%~dp0work/%aPlatformAndCompiler%/libs/%anAbi%" ^
|
||||||
|
-D LIB_DESTINATION:STRING="libs/%anAbi%" ^
|
||||||
|
-D INCLUDE_INSTALL_DIR:STRING="%~dp0work/%aPlatformAndCompiler%/include/bullet" ^
|
||||||
|
-D BUILD_BULLET3:BOOL="ON" ^
|
||||||
|
-D BUILD_CPU_DEMOS:BOOL="OFF" ^
|
||||||
|
-D BUILD_EXTRAS:BOOL="OFF" ^
|
||||||
|
-D BUILD_BULLET2_DEMOS:BOOL="OFF" ^
|
||||||
|
-D BUILD_OPENGL3_DEMOS:BOOL="OFF" ^
|
||||||
|
-D BUILD_PYBULLET:BOOL="OFF" ^
|
||||||
|
-D BUILD_SHARED_LIBS:BOOL="OFF" ^
|
||||||
|
-D BUILD_UNIT_TESTS:BOOL="OFF" ^
|
||||||
|
-D BULLET2_USE_THREAD_LOCKS:BOOL="OFF" ^
|
||||||
|
-D USE_GLUT:BOOL="OFF" ^
|
||||||
|
-D USE_DOUBLE_PRECISION:BOOL="OFF" ^
|
||||||
|
-D USE_CUSTOM_VECTOR_MATH:BOOL="OFF" ^
|
||||||
|
-D USE_GRAPHICAL_BENCHMARK:BOOL="OFF" ^
|
||||||
|
-D USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD:BOOL="OFF" ^
|
||||||
|
"%aBulletSrc%"
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
|
||||||
|
mingw32-make clean
|
||||||
|
|
||||||
|
echo Building Bullet...
|
||||||
|
mingw32-make -j %aNbJobs% 2>> %aLogFile%
|
||||||
|
type %aLogFile%
|
||||||
|
if errorlevel 1 (
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
echo Installing Bullet into %~dp0work/%aPlatformAndCompiler%...
|
||||||
|
mingw32-make install 2>> %aLogFile%
|
||||||
|
|
||||||
|
set ENDTIME=%TIME%
|
||||||
|
rem handle time before 10AM (win10 - remove empty space at the beginning)
|
||||||
|
if "%STARTTIME:~0,1%"==" " set "STARTTIME=%STARTTIME:~1%"
|
||||||
|
if "%ENDTIME:~0,1%"==" " set "ENDTIME=%ENDTIME:~1%"
|
||||||
|
rem handle time before 10AM (win7 - add 0 at the beginning)
|
||||||
|
if "%STARTTIME:~1,1%"==":" set "STARTTIME=0%STARTTIME%"
|
||||||
|
if "%ENDTIME:~1,1%"==":" set "ENDTIME=0%ENDTIME%"
|
||||||
|
rem convert hours:minutes:seconds:ms into duration
|
||||||
|
set /A STARTTIME=(1%STARTTIME:~0,2%-100)*360000 + (1%STARTTIME:~3,2%-100)*6000 + (1%STARTTIME:~6,2%-100)*100 + (1%STARTTIME:~9,2%-100)
|
||||||
|
set /A ENDTIME= (1%ENDTIME:~0,2%-100)*360000 + (1%ENDTIME:~3,2%-100)*6000 + (1%ENDTIME:~6,2%-100)*100 + (1%ENDTIME:~9,2%-100)
|
||||||
|
set /A DURATION=%ENDTIME%-%STARTTIME%
|
||||||
|
if %ENDTIME% LSS %STARTTIME% set set /A DURATION=%STARTTIME%-%ENDTIME%
|
||||||
|
set /A DURATIONH=%DURATION% / 360000
|
||||||
|
set /A DURATIONM=(%DURATION% - %DURATIONH%*360000) / 6000
|
||||||
|
set /A DURATIONS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000) / 100
|
||||||
|
if %DURATIONH% LSS 10 set DURATIONH=0%DURATIONH%
|
||||||
|
if %DURATIONM% LSS 10 set DURATIONM=0%DURATIONM%
|
||||||
|
if %DURATIONS% LSS 10 set DURATIONS=0%DURATIONS%
|
||||||
|
echo Building time: %DURATIONH%:%DURATIONM%:%DURATIONS% for %anAbi%
|
||||||
|
echo Building time: %DURATIONH%:%DURATIONM%:%DURATIONS% >> %aLogFile%
|
||||||
|
|
||||||
|
popd
|
||||||
|
goto :eof
|
144
adm/scripts/bullet/ios_bullet_build.sh
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Auxiliary script for semi-automated building building of Bullet for iOS platform.
|
||||||
|
# Script should be placed into root of Bullet repository, edited with paths to CMake.
|
||||||
|
# https://github.com/bulletphysics/bullet3/releases
|
||||||
|
|
||||||
|
# WARNING! The following line should be removed from CMakeLists.txt in Bullet for building for iOS:
|
||||||
|
# FIND_PACKAGE(PythonLibs ${PYTHON_VERSION_STRING} EXACT)
|
||||||
|
|
||||||
|
# CMake toolchain definition should be cloned from the following git repository:
|
||||||
|
# https://github.com/leetal/ios-cmake
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then cd "$aScriptPath"; fi
|
||||||
|
aScriptPath="$PWD"
|
||||||
|
aProjName=${PWD##*/}
|
||||||
|
|
||||||
|
aBulletSrc=$aScriptPath
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
|
||||||
|
PATH=/Applications/CMake.app/Contents/bin:$PATH
|
||||||
|
|
||||||
|
aToolchain=$HOME/ios-cmake.git/ios.toolchain.cmake
|
||||||
|
|
||||||
|
# build stages to perform
|
||||||
|
toSimulator=0
|
||||||
|
toCMake=1
|
||||||
|
toClean=1
|
||||||
|
toMake=1
|
||||||
|
toInstall=1
|
||||||
|
toPack=1
|
||||||
|
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET=
|
||||||
|
export IPHONEOS_DEPLOYMENT_TARGET=8.0
|
||||||
|
|
||||||
|
anAbi=arm64
|
||||||
|
aPlatform=OS
|
||||||
|
aPlatformAndCompiler=ios-$anAbi-clang
|
||||||
|
if [[ $toSimulator == 1 ]]; then
|
||||||
|
anAbi=x86_64
|
||||||
|
aPlatform=SIMULATOR64
|
||||||
|
aPlatformAndCompiler=ios-simulator64-clang
|
||||||
|
fi
|
||||||
|
aWorkDir=work/$aProjName-${aPlatformAndCompiler}-make
|
||||||
|
aDestDir=$aBulletSrc/work/$aProjName-$aPlatformAndCompiler
|
||||||
|
aLogFile=$aBulletSrc/build-${aPlatformAndCompiler}.log
|
||||||
|
|
||||||
|
mkdir -p $aWorkDir
|
||||||
|
rm -f $aLogFile
|
||||||
|
|
||||||
|
pushd $aWorkDir
|
||||||
|
|
||||||
|
aTimeZERO=$SECONDS
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function logDuration {
|
||||||
|
if [[ $1 == 1 ]]; then
|
||||||
|
aDur=$(($4 - $3))
|
||||||
|
echo $2 time: $aDur sec>> $aLogFile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# (re)generate Make files
|
||||||
|
if [[ $toCMake == 1 ]]; then
|
||||||
|
echo Configuring Bullet for iOS...
|
||||||
|
cmake -G "Unix Makefiles" \
|
||||||
|
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="$aToolchain" \
|
||||||
|
-D IOS_PLATFORM:STRING="$aPlatform" \
|
||||||
|
-D IOS_ARCH:STRING="$anAbi" \
|
||||||
|
-D IOS_DEPLOYMENT_TARGET:STRING="$IPHONEOS_DEPLOYMENT_TARGET" \
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="$aDestDir" \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="%~dp0work/%aPlatformAndCompiler%" \
|
||||||
|
-D LIBRARY_OUTPUT_PATH:PATH="$aDestDir/lib" \
|
||||||
|
-D LIB_DESTINATION:STRING="lib" \
|
||||||
|
-D INCLUDE_INSTALL_DIR:STRING="$aDestDir/include/bullet" \
|
||||||
|
-D BUILD_BULLET3:BOOL="ON" \
|
||||||
|
-D BUILD_CPU_DEMOS:BOOL="OFF" \
|
||||||
|
-D BUILD_EXTRAS:BOOL="OFF" \
|
||||||
|
-D BUILD_BULLET2_DEMOS:BOOL="OFF" \
|
||||||
|
-D BUILD_OPENGL3_DEMOS:BOOL="OFF" \
|
||||||
|
-D BUILD_PYBULLET:BOOL="OFF" \
|
||||||
|
-D BUILD_SHARED_LIBS:BOOL="OFF" \
|
||||||
|
-D BUILD_UNIT_TESTS:BOOL="OFF" \
|
||||||
|
-D BULLET2_USE_THREAD_LOCKS:BOOL="OFF" \
|
||||||
|
-D USE_GLUT:BOOL="OFF" \
|
||||||
|
-D USE_DOUBLE_PRECISION:BOOL="OFF" \
|
||||||
|
-D USE_CUSTOM_VECTOR_MATH:BOOL="OFF" \
|
||||||
|
-D USE_GRAPHICAL_BENCHMARK:BOOL="OFF" \
|
||||||
|
-D USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD:BOOL="OFF" \
|
||||||
|
"$aBulletSrc" 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeGEN=$SECONDS
|
||||||
|
logDuration $toCMake "Generation" $aTimeZERO $aTimeGEN
|
||||||
|
|
||||||
|
# clean up from previous build
|
||||||
|
if [[ $toClean == 1 ]]; then
|
||||||
|
make clean
|
||||||
|
fi
|
||||||
|
|
||||||
|
# build the project
|
||||||
|
if [[ $toMake == 1 ]]; then
|
||||||
|
echo Building...
|
||||||
|
make -j $aNbJobs 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeBUILD=$SECONDS
|
||||||
|
logDuration $toMake "Building" $aTimeGEN $aTimeBUILD
|
||||||
|
logDuration $toMake "Total building" $aTimeZERO $aTimeBUILD
|
||||||
|
|
||||||
|
# install the project
|
||||||
|
if [[ $toInstall == 1 ]]; then
|
||||||
|
echo Installing into $aBulletSrc/work/$aPlatformAndCompiler...
|
||||||
|
make install 2>&1 | tee -a $aLogFile
|
||||||
|
xcodebuild -version > $aDestDir/config.log
|
||||||
|
clang --version >> $aDestDir/config.log
|
||||||
|
echo IPHONEOS_DEPLOYMENT_TARGET=$IPHONEOS_DEPLOYMENT_TARGET>> $aDestDir/config.log
|
||||||
|
cp -f $aBulletSrc/VERSION $aDestDir/VERSION
|
||||||
|
cp -f $aBulletSrc/LICENSE.txt $aDestDir/LICENSE.txt
|
||||||
|
fi
|
||||||
|
aTimeINSTALL=$SECONDS
|
||||||
|
logDuration $toInstall "Install" $aTimeBUILD $aTimeINSTALL
|
||||||
|
|
||||||
|
# create an archive
|
||||||
|
if [[ $toPack == 1 ]]; then
|
||||||
|
anArchName=$aProjName-$aPlatformAndCompiler.tar.bz2
|
||||||
|
echo Creating an archive $aBulletSrc/work/$anArchName...
|
||||||
|
rm $aBulletSrc/work/$anArchName &>/dev/null
|
||||||
|
pushd $aDestDir
|
||||||
|
tar -jcf $aBulletSrc/work/$anArchName *
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
aTimePACK=$SECONDS
|
||||||
|
logDuration $toPack "Packing archive" $aTimeINSTALL $aTimePACK
|
||||||
|
|
||||||
|
# finished
|
||||||
|
DURATION=$(($aTimePACK - $aTimeZERO))
|
||||||
|
echo Total time: $DURATION sec
|
||||||
|
logDuration 1 "Total" $aTimeZERO $aTimePACK
|
||||||
|
|
||||||
|
popd
|
124
adm/scripts/bullet/macos_bullet_build.sh
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Auxiliary script for semi-automated building building of Bullet for macOS platform.
|
||||||
|
# Script should be placed into root of bullet repository, edited with paths to CMake.
|
||||||
|
# https://github.com/bulletphysics/bullet3/releases
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then cd "$aScriptPath"; fi
|
||||||
|
aScriptPath="$PWD"
|
||||||
|
aProjName=${PWD##*/}
|
||||||
|
|
||||||
|
aBulletSrc=$aScriptPath
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
|
||||||
|
PATH=/Applications/CMake.app/Contents/bin:$PATH
|
||||||
|
|
||||||
|
# build stages to perform
|
||||||
|
toCMake=1
|
||||||
|
toClean=1
|
||||||
|
toMake=1
|
||||||
|
toInstall=1
|
||||||
|
toPack=1
|
||||||
|
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||||
|
anAbi=arm64
|
||||||
|
#anAbi=x86_64
|
||||||
|
aPlatformAndCompiler=macos-$anAbi
|
||||||
|
aWorkDir=work/$aProjName-${aPlatformAndCompiler}-make
|
||||||
|
aDestDir=$aBulletSrc/work/$aProjName-$aPlatformAndCompiler
|
||||||
|
aLogFile=$aBulletSrc/build-${aPlatformAndCompiler}.log
|
||||||
|
|
||||||
|
mkdir -p $aWorkDir
|
||||||
|
rm -f $aLogFile
|
||||||
|
|
||||||
|
pushd $aWorkDir
|
||||||
|
|
||||||
|
aTimeZERO=$SECONDS
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function logDuration {
|
||||||
|
if [[ $1 == 1 ]]; then
|
||||||
|
aDur=$(($4 - $3))
|
||||||
|
echo $2 time: $aDur sec>> $aLogFile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# (re)generate Make files
|
||||||
|
if [[ $toCMake == 1 ]]; then
|
||||||
|
echo Configuring Bullet for OS X...
|
||||||
|
cmake -G "Unix Makefiles" \
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" \
|
||||||
|
-D CMAKE_OSX_ARCHITECTURES:STRING="$anAbi" \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="$aDestDir" \
|
||||||
|
-D LIBRARY_OUTPUT_PATH:PATH="$aDestDir/lib" \
|
||||||
|
-D LIB_DESTINATION:STRING="lib" \
|
||||||
|
-D INCLUDE_INSTALL_DIR:STRING="$aDestDir/include/bullet" \
|
||||||
|
-D BUILD_BULLET3:BOOL="ON" \
|
||||||
|
-D BUILD_CPU_DEMOS:BOOL="OFF" \
|
||||||
|
-D BUILD_EXTRAS:BOOL="OFF" \
|
||||||
|
-D BUILD_BULLET2_DEMOS:BOOL="OFF" \
|
||||||
|
-D BUILD_OPENGL3_DEMOS:BOOL="OFF" \
|
||||||
|
-D BUILD_PYBULLET:BOOL="OFF" \
|
||||||
|
-D BUILD_SHARED_LIBS:BOOL="OFF" \
|
||||||
|
-D BUILD_UNIT_TESTS:BOOL="OFF" \
|
||||||
|
-D BULLET2_USE_THREAD_LOCKS:BOOL="OFF" \
|
||||||
|
-D USE_GLUT:BOOL="OFF" \
|
||||||
|
-D USE_DOUBLE_PRECISION:BOOL="OFF" \
|
||||||
|
-D USE_CUSTOM_VECTOR_MATH:BOOL="OFF" \
|
||||||
|
-D USE_GRAPHICAL_BENCHMARK:BOOL="OFF" \
|
||||||
|
-D USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD:BOOL="OFF" \
|
||||||
|
"$aBulletSrc" 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeGEN=$SECONDS
|
||||||
|
logDuration $toCMake "Generation" $aTimeZERO $aTimeGEN
|
||||||
|
|
||||||
|
# clean up from previous build
|
||||||
|
if [[ $toClean == 1 ]]; then
|
||||||
|
make clean
|
||||||
|
fi
|
||||||
|
|
||||||
|
# build the project
|
||||||
|
if [[ $toMake == 1 ]]; then
|
||||||
|
echo Building...
|
||||||
|
make -j $aNbJobs 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeBUILD=$SECONDS
|
||||||
|
logDuration $toMake "Building" $aTimeGEN $aTimeBUILD
|
||||||
|
logDuration $toMake "Total building" $aTimeZERO $aTimeBUILD
|
||||||
|
|
||||||
|
# install the project
|
||||||
|
if [[ $toInstall == 1 ]]; then
|
||||||
|
echo Installing into $aBulletSrc/work/$aPlatformAndCompiler...
|
||||||
|
make install 2>&1 | tee -a $aLogFile
|
||||||
|
xcodebuild -version > $aDestDir/config.log
|
||||||
|
clang --version >> $aDestDir/config.log
|
||||||
|
echo MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET>> $aDestDir/config.log
|
||||||
|
cp -f $aBulletSrc/VERSION $aDestDir/VERSION
|
||||||
|
cp -f $aBulletSrc/LICENSE.txt $aDestDir/LICENSE.txt
|
||||||
|
fi
|
||||||
|
aTimeINSTALL=$SECONDS
|
||||||
|
logDuration $toInstall "Install" $aTimeBUILD $aTimeINSTALL
|
||||||
|
|
||||||
|
# create an archive
|
||||||
|
if [[ $toPack == 1 ]]; then
|
||||||
|
anArchName=$aProjName-$aPlatformAndCompiler.tar.bz2
|
||||||
|
echo Creating an archive $aBulletSrc/work/$anArchName...
|
||||||
|
rm $aBulletSrc/work/$anArchName &>/dev/null
|
||||||
|
pushd $aDestDir
|
||||||
|
tar -jcf $aBulletSrc/work/$anArchName *
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
aTimePACK=$SECONDS
|
||||||
|
logDuration $toPack "Packing archive" $aTimeINSTALL $aTimePACK
|
||||||
|
|
||||||
|
# finished
|
||||||
|
DURATION=$(($aTimePACK - $aTimeZERO))
|
||||||
|
echo Total time: $DURATION sec
|
||||||
|
logDuration 1 "Total" $aTimeZERO $aTimePACK
|
||||||
|
|
||||||
|
popd
|
101
adm/scripts/draco/android_draco_build.bat
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
@echo OFF
|
||||||
|
|
||||||
|
rem Auxiliary script for semi-automated building of Draco library for Android platform.
|
||||||
|
rem https://github.com/google/draco
|
||||||
|
|
||||||
|
set "aDracoSrc=%~dp0"
|
||||||
|
set "aBuildRoot=%aDracoSrc%\work"
|
||||||
|
|
||||||
|
set aNbJobs=%NUMBER_OF_PROCESSORS%
|
||||||
|
|
||||||
|
rem Paths to 3rd-party tools and libraries
|
||||||
|
call c:\TDM-GCC-64\mingwvars.bat
|
||||||
|
set "aCmakeBin=c:\CMake\bin"
|
||||||
|
set "anNdkPath=c:/android-ndk-r12"
|
||||||
|
|
||||||
|
set "PATH=%aCmakeBin%;%PATH%"
|
||||||
|
set "aCompiler=gcc"
|
||||||
|
set "aCppLib=gnustl_shared"
|
||||||
|
if not exist "%anNdkPath%/sources/cxx-stl/gnu-libstdc++" (
|
||||||
|
if exist "%anNdkPath%/sources/cxx-stl/llvm-libc++" (
|
||||||
|
set "aCompiler=clang"
|
||||||
|
set "aCppLib=c++_shared"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
set "aDestDir=%aBuildRoot%\draco-android-%aCompiler%"
|
||||||
|
rmdir /S /Q "%aDestDir%"
|
||||||
|
if not exist "%aDestDir%" ( mkdir "%aDestDir%" )
|
||||||
|
if not exist "%aDestDir%\include" ( mkdir "%aDestDir%\include" )
|
||||||
|
if not exist "%aDestDir%\libs" ( mkdir "%aDestDir%\libs" )
|
||||||
|
xcopy /Y "%aDracoSrc%\LICENSE" "%aDestDir%\"
|
||||||
|
xcopy /Y "%aDracoSrc%\README.md" "%aDestDir%\"
|
||||||
|
|
||||||
|
call :cmakeGenerate "15" "armeabi-v7a"
|
||||||
|
call :cmakeGenerate "15" "x86"
|
||||||
|
call :cmakeGenerate "21" "arm64-v8a"
|
||||||
|
call :cmakeGenerate "21" "x86_64"
|
||||||
|
|
||||||
|
set "anArchName=draco-android"
|
||||||
|
echo Creating archive %anArchName%.7z
|
||||||
|
if exist "%aBuildRoot%/%anArchName%.7z" del "%aBuildRoot%/%anArchName%.7z"
|
||||||
|
set "THE_7Z_PARAMS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
|
||||||
|
set "THE_7Z_PATH=%ProgramW6432%\7-Zip\7z.exe"
|
||||||
|
"%THE_7Z_PATH%" a -r %THE_7Z_PARAMS% "%aBuildRoot%/%anArchName%.7z" "%aDestDir%"
|
||||||
|
|
||||||
|
pause
|
||||||
|
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:cmakeGenerate
|
||||||
|
set "anApi=%~1"
|
||||||
|
set "anAbi=%~2"
|
||||||
|
set "aPlatformAndCompiler=android-%anAbi%-%aCompiler%"
|
||||||
|
set "aWorkDir=%aBuildRoot%\draco-%aPlatformAndCompiler%-make"
|
||||||
|
set "aLogFile=%aBuildRoot%\build-%aPlatformAndCompiler%.log"
|
||||||
|
if not exist "%aWorkDir%" ( mkdir "%aWorkDir%" )
|
||||||
|
if exist "%aLogFile%" ( del "%aLogFile%" )
|
||||||
|
|
||||||
|
pushd "%aWorkDir%"
|
||||||
|
|
||||||
|
echo Configuring Draco for Android %anAbi%, API level %anApi%...
|
||||||
|
cmake -G "MinGW Makefiles" ^
|
||||||
|
-D CMAKE_SYSTEM_NAME:STRING="Android" ^
|
||||||
|
-D CMAKE_ANDROID_NDK="%anNdkPath%" ^
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" ^
|
||||||
|
-D CMAKE_ANDROID_ARCH_ABI:STRING="%anAbi%" ^
|
||||||
|
-D CMAKE_SYSTEM_VERSION:STRING="%anApi%" ^
|
||||||
|
-D CMAKE_ANDROID_STL_TYPE="%aCppLib%" ^
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" ^
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="%aBuildRoot%/draco-%aPlatformAndCompiler%" ^
|
||||||
|
-D LIBRARY_OUTPUT_PATH:PATH="%aBuildRoot%/draco-%aPlatformAndCompiler%/libs/%anAbi%" ^
|
||||||
|
"%aDracoSrc%"
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
|
||||||
|
mingw32-make clean
|
||||||
|
|
||||||
|
echo Building...
|
||||||
|
mingw32-make -j %aNbJobs% 2>> "%aLogFile%"
|
||||||
|
if errorlevel 1 (
|
||||||
|
type %aLogFile%
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
type %aLogFile%
|
||||||
|
|
||||||
|
echo Installing Draco into %aBuildRoot%/draco-%aPlatformAndCompiler%...
|
||||||
|
mingw32-make install 2>> %aLogFile%
|
||||||
|
|
||||||
|
xcopy /S /Y "%aBuildRoot%\draco-%aPlatformAndCompiler%\include\*" "%aDestDir%\include\"
|
||||||
|
xcopy /S /Y "%aBuildRoot%\draco-%aPlatformAndCompiler%\libs\*" "%aDestDir%\libs\"
|
||||||
|
|
||||||
|
popd
|
||||||
|
goto :eof
|
102
adm/scripts/draco/linux_draco_build.sh
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Auxiliary script for semi-automated building of Draco for Linux platform.
|
||||||
|
# Script should be placed into root of Draco repository, edited with paths to CMake.
|
||||||
|
# https://github.com/google/draco
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then cd "$aScriptPath"; fi
|
||||||
|
aScriptPath="$PWD"
|
||||||
|
aProjName=${PWD##*/}
|
||||||
|
|
||||||
|
aDracoSrc=$aScriptPath
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
|
||||||
|
# CMake should be up-to-date
|
||||||
|
#PATH=~/develop/local/bin:$PATH
|
||||||
|
|
||||||
|
# build stages to perform
|
||||||
|
toCMake=1
|
||||||
|
toClean=1
|
||||||
|
toMake=1
|
||||||
|
toInstall=1
|
||||||
|
toPack=1
|
||||||
|
|
||||||
|
aPlatformAndCompiler=lin64-gcc
|
||||||
|
aWorkDir=work/$aProjName-${aPlatformAndCompiler}-make
|
||||||
|
aDestDir=$aDracoSrc/work/$aProjName-$aPlatformAndCompiler
|
||||||
|
aLogFile=$aDracoSrc/build-${aPlatformAndCompiler}.log
|
||||||
|
|
||||||
|
mkdir -p $aWorkDir
|
||||||
|
rm -f $aLogFile
|
||||||
|
|
||||||
|
pushd $aWorkDir
|
||||||
|
|
||||||
|
aTimeZERO=$SECONDS
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function logDuration {
|
||||||
|
if [[ $1 == 1 ]]; then
|
||||||
|
aDur=$(($4 - $3))
|
||||||
|
echo $2 time: $aDur sec>> $aLogFile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# (re)generate Make files
|
||||||
|
if [[ $toCMake == 1 ]]; then
|
||||||
|
echo Configuring Draco for Linux...
|
||||||
|
cmake -G "Unix Makefiles" \
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="$aDestDir" \
|
||||||
|
-D BUILD_DOCS:BOOL="OFF" \
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" \
|
||||||
|
"$aDracoSrc" 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeGEN=$SECONDS
|
||||||
|
logDuration $toCMake "Generation" $aTimeZERO $aTimeGEN
|
||||||
|
|
||||||
|
# clean up from previous build
|
||||||
|
if [[ $toClean == 1 ]]; then
|
||||||
|
make clean
|
||||||
|
fi
|
||||||
|
|
||||||
|
# build the project
|
||||||
|
if [[ $toMake == 1 ]]; then
|
||||||
|
echo Building...
|
||||||
|
make -j $aNbJobs 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeBUILD=$SECONDS
|
||||||
|
logDuration $toMake "Building" $aTimeGEN $aTimeBUILD
|
||||||
|
logDuration $toMake "Total building" $aTimeZERO $aTimeBUILD
|
||||||
|
|
||||||
|
# install the project
|
||||||
|
if [[ $toInstall == 1 ]]; then
|
||||||
|
echo Installing into $aDracoSrc/work/$aPlatformAndCompiler...
|
||||||
|
make install 2>&1 | tee -a $aLogFile
|
||||||
|
gcc --version >> $aDestDir/config.log
|
||||||
|
cp -f $aDracoSrc/LICENSE $aDestDir/LICENSE
|
||||||
|
fi
|
||||||
|
aTimeINSTALL=$SECONDS
|
||||||
|
logDuration $toInstall "Install" $aTimeBUILD $aTimeINSTALL
|
||||||
|
|
||||||
|
# create an archive
|
||||||
|
if [[ $toPack == 1 ]]; then
|
||||||
|
anArchName=$aProjName-$aPlatformAndCompiler.tar.bz2
|
||||||
|
echo Creating an archive $aDracoSrc/work/$anArchName...
|
||||||
|
rm $aDracoSrc/work/$anArchName &>/dev/null
|
||||||
|
pushd $aDestDir
|
||||||
|
tar -jcf $aDracoSrc/work/$anArchName *
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
aTimePACK=$SECONDS
|
||||||
|
logDuration $toPack "Packing archive" $aTimeINSTALL $aTimePACK
|
||||||
|
|
||||||
|
# finished
|
||||||
|
DURATION=$(($aTimePACK - $aTimeZERO))
|
||||||
|
echo Total time: $DURATION sec
|
||||||
|
logDuration 1 "Total" $aTimeZERO $aTimePACK
|
||||||
|
|
||||||
|
popd
|
107
adm/scripts/draco/macos_draco_build.sh
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Auxiliary script for semi-automated building building of Draco for macOS platform.
|
||||||
|
# Script should be placed into root of Draco repository, edited with paths to CMake.
|
||||||
|
# https://github.com/google/draco
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then cd "$aScriptPath"; fi
|
||||||
|
aScriptPath="$PWD"
|
||||||
|
aProjName=${PWD##*/}
|
||||||
|
|
||||||
|
aDracoSrc=$aScriptPath
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
|
||||||
|
PATH=/Applications/CMake.app/Contents/bin:$PATH
|
||||||
|
|
||||||
|
# build stages to perform
|
||||||
|
toCMake=1
|
||||||
|
toClean=1
|
||||||
|
toMake=1
|
||||||
|
toInstall=1
|
||||||
|
toPack=1
|
||||||
|
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||||
|
anAbi=arm64
|
||||||
|
#anAbi=x86_64
|
||||||
|
aPlatformAndCompiler=macos-$anAbi
|
||||||
|
aWorkDir=work/$aProjName-${aPlatformAndCompiler}-make
|
||||||
|
aDestDir=$aDracoSrc/work/$aProjName-$aPlatformAndCompiler
|
||||||
|
aLogFile=$aDracoSrc/build-${aPlatformAndCompiler}.log
|
||||||
|
|
||||||
|
mkdir -p $aWorkDir
|
||||||
|
rm -f $aLogFile
|
||||||
|
|
||||||
|
pushd $aWorkDir
|
||||||
|
|
||||||
|
aTimeZERO=$SECONDS
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function logDuration {
|
||||||
|
if [[ $1 == 1 ]]; then
|
||||||
|
aDur=$(($4 - $3))
|
||||||
|
echo $2 time: $aDur sec>> $aLogFile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# (re)generate Make files
|
||||||
|
if [[ $toCMake == 1 ]]; then
|
||||||
|
echo Configuring Draco for macOS...
|
||||||
|
cmake -G "Unix Makefiles" \
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" \
|
||||||
|
-D CMAKE_OSX_ARCHITECTURES:STRING="$anAbi" \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="$aDestDir" \
|
||||||
|
"$aDracoSrc" 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeGEN=$SECONDS
|
||||||
|
logDuration $toCMake "Generation" $aTimeZERO $aTimeGEN
|
||||||
|
|
||||||
|
# clean up from previous build
|
||||||
|
if [[ $toClean == 1 ]]; then
|
||||||
|
make clean
|
||||||
|
fi
|
||||||
|
|
||||||
|
# build the project
|
||||||
|
if [[ $toMake == 1 ]]; then
|
||||||
|
echo Building...
|
||||||
|
make -j $aNbJobs 2>&1 | tee -a $aLogFile
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
fi
|
||||||
|
aTimeBUILD=$SECONDS
|
||||||
|
logDuration $toMake "Building" $aTimeGEN $aTimeBUILD
|
||||||
|
logDuration $toMake "Total building" $aTimeZERO $aTimeBUILD
|
||||||
|
|
||||||
|
# install the project
|
||||||
|
if [[ $toInstall == 1 ]]; then
|
||||||
|
echo Installing into $aDracoSrc/work/$aPlatformAndCompiler...
|
||||||
|
make install 2>&1 | tee -a $aLogFile
|
||||||
|
xcodebuild -version > $aDestDir/config.log
|
||||||
|
clang --version >> $aDestDir/config.log
|
||||||
|
echo MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET>> $aDestDir/config.log
|
||||||
|
cp -f $aDracoSrc/README.md $aDestDir/README.md
|
||||||
|
cp -f $aDracoSrc/LICENSE $aDestDir/LICENSE
|
||||||
|
fi
|
||||||
|
aTimeINSTALL=$SECONDS
|
||||||
|
logDuration $toInstall "Install" $aTimeBUILD $aTimeINSTALL
|
||||||
|
|
||||||
|
# create an archive
|
||||||
|
if [[ $toPack == 1 ]]; then
|
||||||
|
anArchName=$aProjName-$aPlatformAndCompiler.tar.bz2
|
||||||
|
echo Creating an archive $aDracoSrc/work/$anArchName...
|
||||||
|
rm $aDracoSrc/work/$anArchName &>/dev/null
|
||||||
|
pushd $aDestDir
|
||||||
|
tar -jcf $aDracoSrc/work/$anArchName *
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
aTimePACK=$SECONDS
|
||||||
|
logDuration $toPack "Packing archive" $aTimeINSTALL $aTimePACK
|
||||||
|
|
||||||
|
# finished
|
||||||
|
DURATION=$(($aTimePACK - $aTimeZERO))
|
||||||
|
echo Total time: $DURATION sec
|
||||||
|
logDuration 1 "Total" $aTimeZERO $aTimePACK
|
||||||
|
|
||||||
|
popd
|
107
adm/scripts/draco/wasm_draco_build.bat
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
@echo OFF
|
||||||
|
|
||||||
|
rem Auxiliary script for semi-automated building of Draco library as WebAssembly library.
|
||||||
|
rem https://github.com/google/draco
|
||||||
|
|
||||||
|
set "aDracoSrc=%~dp0"
|
||||||
|
set "aBuildRoot=%aDracoSrc%\work"
|
||||||
|
|
||||||
|
set aNbJobs=%NUMBER_OF_PROCESSORS%
|
||||||
|
|
||||||
|
rem Paths to 3rd-party tools and libraries
|
||||||
|
set "aCmakeBin=c:\CMake\bin"
|
||||||
|
set "EMSDK_ROOT=c:\emsdk"
|
||||||
|
set "EMSCRIPTEN=%EMSDK_ROOT%/upstream/emscripten"
|
||||||
|
set "PATH=%EMSDK_ROOT%\python\3.9.2-1_64bit;%PATH%"
|
||||||
|
|
||||||
|
rem Build stages to perform
|
||||||
|
set "toCMake=1"
|
||||||
|
set "toClean=1"
|
||||||
|
set "toMake=1"
|
||||||
|
set "toInstall=1"
|
||||||
|
set "toDebug=0"
|
||||||
|
|
||||||
|
call "%EMSDK_ROOT%\emsdk_env.bat"
|
||||||
|
set "aToolchain=%EMSDK%/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake"
|
||||||
|
if not ["%aCmakeBin%"] == [""] ( set "PATH=%aCmakeBin%;%PATH%" )
|
||||||
|
|
||||||
|
set "aBuildType=Release"
|
||||||
|
set "aBuildTypePrefix="
|
||||||
|
if ["%toDebug%"] == ["1"] (
|
||||||
|
set "aBuildType=Debug"
|
||||||
|
set "aBuildTypePrefix=-debug"
|
||||||
|
)
|
||||||
|
|
||||||
|
call :cmakeGenerate
|
||||||
|
if not ["%1"] == ["-nopause"] (
|
||||||
|
pause
|
||||||
|
)
|
||||||
|
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:cmakeGenerate
|
||||||
|
set "aPlatformAndCompiler=wasm32%aBuildTypePrefix%"
|
||||||
|
set "aWorkDir=%aBuildRoot%\draco-%aPlatformAndCompiler%-make"
|
||||||
|
set "aDestDir=%aBuildRoot%\draco-%aPlatformAndCompiler%"
|
||||||
|
set "aLogFile=%aBuildRoot%\draco-%aPlatformAndCompiler%-build.log"
|
||||||
|
if ["%toCMake%"] == ["1"] (
|
||||||
|
if ["%toClean%"] == ["1"] (
|
||||||
|
rmdir /S /Q %aWorkDir%"
|
||||||
|
rmdir /S /Q %aDestDir%"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if not exist "%aWorkDir%" ( mkdir "%aWorkDir%" )
|
||||||
|
if exist "%aLogFile%" ( del "%aLogFile%" )
|
||||||
|
|
||||||
|
pushd "%aWorkDir%"
|
||||||
|
|
||||||
|
if ["%toCMake%"] == ["1"] (
|
||||||
|
cmake -G "MinGW Makefiles" ^
|
||||||
|
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="%aDestDir%" ^
|
||||||
|
-D BUILD_LIBRARY_TYPE:STRING="Static" ^
|
||||||
|
-D DRACO_WASM:BOOL="ON" ^
|
||||||
|
-D DRACO_JS_GLUE:BOOL="OFF" ^
|
||||||
|
"%aDracoSrc%"
|
||||||
|
|
||||||
|
rem -D DRACO_POINT_CLOUD_COMPRESSION:BOOL="OFF" ^
|
||||||
|
rem -D DRACO_MESH_COMPRESSION:BOOL="OFF" ^
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if ["%toClean%"] == ["1"] (
|
||||||
|
mingw32-make clean
|
||||||
|
)
|
||||||
|
|
||||||
|
if ["%toMake%"] == ["1"] (
|
||||||
|
echo Building...
|
||||||
|
mingw32-make -j %aNbJobs% 2>> "%aLogFile%"
|
||||||
|
if errorlevel 1 (
|
||||||
|
type "%aLogFile%"
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
type "%aLogFile%"
|
||||||
|
)
|
||||||
|
|
||||||
|
if ["%toInstall%"] == ["1"] (
|
||||||
|
mingw32-make install 2>> "%aLogFile%"
|
||||||
|
if errorlevel 1 (
|
||||||
|
type "%aLogFile%"
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
)
|
||||||
|
popd
|
||||||
|
|
||||||
|
goto :eof
|
139
adm/scripts/freetype/android_freetype_build.bat
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
@echo OFF
|
||||||
|
|
||||||
|
rem Auxiliary script for semi-automated building of FreeType for Android platform.
|
||||||
|
rem Script should be placed into root of FreeType repository, edited with paths
|
||||||
|
rem to CMake, 3rd-parties, Android NDK and MinGW64 make tool.
|
||||||
|
|
||||||
|
rem CMake toolchain definition should be cloned from the following git repository:
|
||||||
|
rem https://github.com/taka-no-me/android-cmake
|
||||||
|
|
||||||
|
rem CMake can be downloaded from official site:
|
||||||
|
rem https://cmake.org/download/
|
||||||
|
|
||||||
|
rem Android NDK can be downloaded from official site:
|
||||||
|
rem https://developer.android.com/ndk/downloads
|
||||||
|
|
||||||
|
set "aFreeTypeSrc=%~dp0"
|
||||||
|
set aNbJobs=%NUMBER_OF_PROCESSORS%
|
||||||
|
|
||||||
|
call c:\TDM-GCC-64\mingwvars.bat
|
||||||
|
set "PATH=c:\CMake\bin;%PATH%"
|
||||||
|
set "anNdkPath=c:/android-ndk-r12"
|
||||||
|
set "aToolchain=c:/android-cmake-master/android.toolchain.cmake"
|
||||||
|
|
||||||
|
set "toPack=1"
|
||||||
|
|
||||||
|
set "FREETYPE_MAJOR=0"
|
||||||
|
set "FREETYPE_MINOR=0"
|
||||||
|
set "FREETYPE_PATCH=0"
|
||||||
|
for /f "tokens=3" %%i in ('findstr /b /c:"#define FREETYPE_MAJOR" "%aFreeTypeSrc%\include\freetype\freetype.h"') do ( set "FREETYPE_MAJOR=%%i" )
|
||||||
|
for /f "tokens=3" %%i in ('findstr /b /c:"#define FREETYPE_MINOR" "%aFreeTypeSrc%\include\freetype\freetype.h"') do ( set "FREETYPE_MINOR=%%i" )
|
||||||
|
for /f "tokens=3" %%i in ('findstr /b /c:"#define FREETYPE_PATCH" "%aFreeTypeSrc%\include\freetype\freetype.h"') do ( set "FREETYPE_PATCH=%%i" )
|
||||||
|
set "aFreeTypeVersion=%FREETYPE_MAJOR%.%FREETYPE_MINOR%.%FREETYPE_PATCH%"
|
||||||
|
echo "aFreeTypeVersion=%aFreeTypeVersion%"
|
||||||
|
|
||||||
|
call :cmakeGenerate "15" "armeabi-v7a"
|
||||||
|
call :cmakeGenerate "15" "x86"
|
||||||
|
call :cmakeGenerate "21" "arm64-v8a"
|
||||||
|
call :cmakeGenerate "21" "x86_64"
|
||||||
|
|
||||||
|
set "THE_7Z_PARAMS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
|
||||||
|
if ["%THE_7Z_PATH%"] == [""] set "THE_7Z_PATH=%ProgramW6432%\7-Zip\7z.exe"
|
||||||
|
if not exist "%THE_7Z_PATH%" set "THE_7Z_PATH=%ProgramW6432%\7-Zip\7z.exe"
|
||||||
|
if not exist "%THE_7Z_PATH%" set "THE_7Z_PATH=%ProgramFiles%\7-Zip\7z.exe"
|
||||||
|
|
||||||
|
set "anArchName=freetype-%aFreeTypeVersion%-android"
|
||||||
|
set "aTarget=%~dp0work\%anArchName%"
|
||||||
|
|
||||||
|
if "%toPack%"=="1" (
|
||||||
|
echo Creating archive %anArchName%.7z
|
||||||
|
rmdir /S /Q "%aTarget%"
|
||||||
|
if not exist "%aTarget%\libs" ( mkdir "%aTarget%\libs" )
|
||||||
|
if exist "%~dp0work/%anArchName%.7z" del "%~dp0work/%anArchName%.7z"
|
||||||
|
xcopy /S /Y /I "%~dp0work\android-armeabi-v7a-gcc\include\freetype2" "%aTarget%\include"
|
||||||
|
xcopy /Y "%~dp0work\android-armeabi-v7a-gcc\lib\*.so" "%aTarget%\libs\armeabi-v7a\"
|
||||||
|
xcopy /Y "%~dp0work\android-arm64-v8a-gcc\lib\*.so" "%aTarget%\libs\arm64-v8a\"
|
||||||
|
xcopy /Y "%~dp0work\android-x86-gcc\lib\*.so" "%aTarget%\libs\x86\"
|
||||||
|
xcopy /Y "%~dp0work\android-x86_64-gcc\lib\*.so" "%aTarget%\libs\x86_64\"
|
||||||
|
xcopy /Y "%aFreeTypeSrc%\README" "%aTarget%\"
|
||||||
|
xcopy /Y "%aFreeTypeSrc%\docs\FTL.TXT" "%aTarget%\"
|
||||||
|
xcopy /Y "%aFreeTypeSrc%\docs\GPLv2.TXT" "%aTarget%\"
|
||||||
|
xcopy /Y "%aFreeTypeSrc%\docs\LICENSE.TXT" "%aTarget%\"
|
||||||
|
|
||||||
|
"%THE_7Z_PATH%" a -r %THE_7Z_PARAMS% "%~dp0work/%anArchName%.7z" "%aTarget%"
|
||||||
|
)
|
||||||
|
|
||||||
|
if not ["%1"] == ["-nopause"] (
|
||||||
|
pause
|
||||||
|
)
|
||||||
|
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:cmakeGenerate
|
||||||
|
set "anApi=%1"
|
||||||
|
set "anAbi=%2"
|
||||||
|
set "aPlatformAndCompiler=android-%anAbi%-gcc"
|
||||||
|
set "aWorkDir=work\%aPlatformAndCompiler%-make"
|
||||||
|
set "aLogFile=%~dp0build-%anAbi%.log"
|
||||||
|
if not exist "%aWorkDir%" ( mkdir "%aWorkDir%" )
|
||||||
|
if exist "%aLogFile%" ( del "%aLogFile%" )
|
||||||
|
|
||||||
|
pushd "%aWorkDir%"
|
||||||
|
|
||||||
|
set STARTTIME=%TIME%
|
||||||
|
echo Configuring OCCT for Android %anAbi% (API level %anApi%)...
|
||||||
|
cmake -G "MinGW Makefiles" ^
|
||||||
|
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
|
||||||
|
-D ANDROID_NDK:FILEPATH="%anNdkPath%" ^
|
||||||
|
-D ANDROID_ABI:STRING="%anAbi%" ^
|
||||||
|
-D ANDROID_NATIVE_API_LEVEL:STRING="%anApi%" ^
|
||||||
|
-D ANDROID_STL:STRING="gnustl_shared" ^
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" ^
|
||||||
|
-D BUILD_SHARED_LIBS:BOOL="TRUE" ^
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="%~dp0work/%aPlatformAndCompiler%" ^
|
||||||
|
"%aFreeTypeSrc%"
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
|
||||||
|
mingw32-make clean
|
||||||
|
|
||||||
|
echo Building FreeType...
|
||||||
|
mingw32-make -j %aNbJobs% 2>> %aLogFile%
|
||||||
|
type %aLogFile%
|
||||||
|
if errorlevel 1 (
|
||||||
|
popd
|
||||||
|
pause
|
||||||
|
exit /B
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
echo Installing FreeType into %~dp0work/%aPlatformAndCompiler%...
|
||||||
|
mingw32-make install 2>> %aLogFile%
|
||||||
|
|
||||||
|
set ENDTIME=%TIME%
|
||||||
|
rem handle time before 10AM (win10 - remove empty space at the beginning)
|
||||||
|
if "%STARTTIME:~0,1%"==" " set "STARTTIME=%STARTTIME:~1%"
|
||||||
|
if "%ENDTIME:~0,1%"==" " set "ENDTIME=%ENDTIME:~1%"
|
||||||
|
rem handle time before 10AM (win7 - add 0 at the beginning)
|
||||||
|
if "%STARTTIME:~1,1%"==":" set "STARTTIME=0%STARTTIME%"
|
||||||
|
if "%ENDTIME:~1,1%"==":" set "ENDTIME=0%ENDTIME%"
|
||||||
|
rem convert hours:minutes:seconds:ms into duration
|
||||||
|
set /A STARTTIME=(1%STARTTIME:~0,2%-100)*360000 + (1%STARTTIME:~3,2%-100)*6000 + (1%STARTTIME:~6,2%-100)*100 + (1%STARTTIME:~9,2%-100)
|
||||||
|
set /A ENDTIME= (1%ENDTIME:~0,2%-100)*360000 + (1%ENDTIME:~3,2%-100)*6000 + (1%ENDTIME:~6,2%-100)*100 + (1%ENDTIME:~9,2%-100)
|
||||||
|
set /A DURATION=%ENDTIME%-%STARTTIME%
|
||||||
|
if %ENDTIME% LSS %STARTTIME% set set /A DURATION=%STARTTIME%-%ENDTIME%
|
||||||
|
set /A DURATIONH=%DURATION% / 360000
|
||||||
|
set /A DURATIONM=(%DURATION% - %DURATIONH%*360000) / 6000
|
||||||
|
set /A DURATIONS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000) / 100
|
||||||
|
if %DURATIONH% LSS 10 set DURATIONH=0%DURATIONH%
|
||||||
|
if %DURATIONM% LSS 10 set DURATIONM=0%DURATIONM%
|
||||||
|
if %DURATIONS% LSS 10 set DURATIONS=0%DURATIONS%
|
||||||
|
echo Building time: %DURATIONH%:%DURATIONM%:%DURATIONS% for %anAbi%
|
||||||
|
echo Building time: %DURATIONH%:%DURATIONM%:%DURATIONS% >> %aLogFile%
|
||||||
|
|
||||||
|
popd
|
||||||
|
goto :eof
|
103
adm/scripts/freetype/ios_freetype_build.sh
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Auxiliary script for building FreeType library for iOS platform.
|
||||||
|
|
||||||
|
aScriptDir=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptDir" ]; then cd "$aScriptDir"; fi
|
||||||
|
aScriptDir="$PWD"
|
||||||
|
|
||||||
|
aFreeType=freetype-2.10.4
|
||||||
|
aFreeTypeSrc=${aScriptDir}/${aFreeType}-src
|
||||||
|
|
||||||
|
PATH=/Applications/CMake.app/Contents/bin:$PATH
|
||||||
|
PLATFORMPATH="/Applications/Xcode.app/Contents/Developer/Platforms"
|
||||||
|
export IPHONEOS_DEPLOYMENT_TARGET=8.0
|
||||||
|
|
||||||
|
rm -r -f ${aFreeType}-ios
|
||||||
|
mkdir -p ${aFreeType}-ios/lib
|
||||||
|
rm -r -f ${aFreeType}-iPhoneSimulator
|
||||||
|
mkdir -p ${aFreeType}-iPhoneSimulator/lib
|
||||||
|
|
||||||
|
function buildArchCmake {
|
||||||
|
anAbi=$1
|
||||||
|
aPlatformSdk=$2
|
||||||
|
aSysRoot=$PLATFORMPATH/${aPlatformSdk}.platform/Developer/SDKs/${aPlatformSdk}.sdk
|
||||||
|
|
||||||
|
aPlatformAndCompiler=${aPlatformSdk}-${anAbi}-clang
|
||||||
|
|
||||||
|
aWorkDir="${aScriptDir}/${aFreeType}-${aPlatformAndCompiler}-make"
|
||||||
|
aDestDir="${aScriptDir}/${aFreeType}-${aPlatformAndCompiler}"
|
||||||
|
aLogFile="${aScriptDir}/${aFreeType}-build-${aPlatformAndCompiler}.log"
|
||||||
|
|
||||||
|
rm -r -f "$aWorkDir"
|
||||||
|
rm -r -f "$aDestDir"
|
||||||
|
mkdir -p "$aWorkDir"
|
||||||
|
mkdir -p "$aDestDir"
|
||||||
|
rm -f "$aLogFile"
|
||||||
|
|
||||||
|
pushd ${aWorkDir}
|
||||||
|
cmake -G "Unix Makefiles" \
|
||||||
|
-D CMAKE_SYSTEM_NAME="iOS" \
|
||||||
|
-D CMAKE_OSX_ARCHITECTURES:STRING="$anAbi" \
|
||||||
|
-D CMAKE_OSX_DEPLOYMENT_TARGET:STRING="$IPHONEOS_DEPLOYMENT_TARGET" \
|
||||||
|
-D CMAKE_OSX_SYSROOT:PATH="$aSysRoot" \
|
||||||
|
-D CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS:BOOL="OFF" \
|
||||||
|
-D CMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:PATH="$aDestDir" \
|
||||||
|
-D BUILD_SHARED_LIBS:BOOL="OFF" \
|
||||||
|
-D FT_WITH_ZLIB:BOOL="OFF" \
|
||||||
|
-D FT_WITH_BZIP2:BOOL="OFF" \
|
||||||
|
-D FT_WITH_PNG:BOOL="OFF" \
|
||||||
|
-D FT_WITH_HARFBUZZ:BOOL="OFF" \
|
||||||
|
-D FT_WITH_BROTLI:BOOL="OFF" \
|
||||||
|
"$aFreeTypeSrc" 2>&1 | tee -a "$aLogFile"
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
|
||||||
|
make clean
|
||||||
|
|
||||||
|
echo Building...
|
||||||
|
make 2>&1 | tee -a "$aLogFile"
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
|
||||||
|
make install
|
||||||
|
echo Installing into $aDestDir...
|
||||||
|
make install 2>&1 | tee -a "$aLogFile"
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
buildArchCmake arm64 iPhoneOS
|
||||||
|
buildArchCmake arm64 iPhoneSimulator
|
||||||
|
buildArchCmake x86_64 iPhoneSimulator
|
||||||
|
|
||||||
|
aTargName=ios
|
||||||
|
cp -rf ./${aFreeType}-src/include ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/FTL.TXT ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/GPLv2.TXT ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/LICENSE.TXT ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/CHANGES ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/README ${aFreeType}-${aTargName}/
|
||||||
|
lipo -create -output ${aFreeType}-${aTargName}/lib/libfreetype.a ${aFreeType}-iPhoneOS-arm64-clang/lib/libfreetype.a
|
||||||
|
lipo -info ${aFreeType}-${aTargName}/lib/libfreetype.a
|
||||||
|
|
||||||
|
anArchName=${aFreeType}-${aTargName}.tar.bz2
|
||||||
|
rm ${aDestDir}/../${anArchName} &>/dev/null
|
||||||
|
pushd "./${aFreeType}-${aTargName}"
|
||||||
|
tar -jcf ${aScriptDir}/${anArchName} *
|
||||||
|
popd
|
||||||
|
|
||||||
|
aTargName=iPhoneSimulator
|
||||||
|
cp -rf ./${aFreeType}-src/include ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/FTL.TXT ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/GPLv2.TXT ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/LICENSE.TXT ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/CHANGES ${aFreeType}-${aTargName}/
|
||||||
|
cp ./${aFreeType}-src/docs/README ${aFreeType}-${aTargName}/
|
||||||
|
lipo -create -output ${aFreeType}-${aTargName}/lib/libfreetype.a ${aFreeType}-iPhoneSimulator-arm64-clang/lib/libfreetype.a ${aFreeType}-iPhoneSimulator-x86_64-clang/lib/libfreetype.a
|
||||||
|
lipo -info ${aFreeType}-${aTargName}/lib/libfreetype.a
|
||||||
|
|
||||||
|
anArchName=${aFreeType}-${aTargName}.tar.bz2
|
||||||
|
rm ${aDestDir}/../${anArchName} &>/dev/null
|
||||||
|
pushd "./${aFreeType}-${aTargName}"
|
||||||
|
tar -jcf ${aScriptDir}/${anArchName} *
|
||||||
|
popd
|
50
adm/scripts/freetype/macos_freetype_build.sh
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
aFreeType=freetype-2.10.4
|
||||||
|
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||||
|
rm -r -f ${aFreeType}-macos
|
||||||
|
mkdir -p ${aFreeType}-macos/lib
|
||||||
|
|
||||||
|
function buildArch {
|
||||||
|
anArch=$1
|
||||||
|
pushd ./${aFreeType}-src
|
||||||
|
./configure CFLAGS="-mmacosx-version-min=10.10 -arch $anArch" LDFLAGS="-Wl,-install_name,@executable_path/../Frameworks/libfreetype.6.dylib" --enable-shared --enable-static
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
|
||||||
|
rm -r -f ../${aFreeType}-macos-$anArch
|
||||||
|
mkdir -p ../${aFreeType}-macos-$anArch/lib
|
||||||
|
cp -rf ./include ../${aFreeType}-macos-$anArch/
|
||||||
|
cp ./docs/FTL.TXT ../${aFreeType}-macos-$anArch/
|
||||||
|
cp ./docs/GPLv2.TXT ../${aFreeType}-macos-$anArch/
|
||||||
|
cp ./docs/LICENSE.TXT ../${aFreeType}-macos-$anArch/
|
||||||
|
cp ./docs/CHANGES ../${aFreeType}-macos-$anArch/
|
||||||
|
cp ./docs/README ../${aFreeType}-macos-$anArch/
|
||||||
|
|
||||||
|
cp ./objs/.libs/libfreetype.a ../${aFreeType}-macos-$anArch/lib/
|
||||||
|
cp ./objs/.libs/libfreetype.6.dylib ../${aFreeType}-macos-$anArch/lib/
|
||||||
|
cp ./objs/.libs/libfreetype.la ../${aFreeType}-macos-$anArch/lib/
|
||||||
|
#cp ./objs/.libs/libfreetype.dylib ../${aFreeType}-macos-$anArch/lib/
|
||||||
|
ln -s libfreetype.6.dylib ../${aFreeType}-macos-$anArch/lib/libfreetype.dylib
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
for anArchIter in x86_64 arm64
|
||||||
|
do
|
||||||
|
buildArch $anArchIter
|
||||||
|
done
|
||||||
|
|
||||||
|
cp -rf ./${aFreeType}-src/include ${aFreeType}-macos/
|
||||||
|
cp ./${aFreeType}-src/docs/FTL.TXT ${aFreeType}-macos/
|
||||||
|
cp ./${aFreeType}-src/docs/GPLv2.TXT ${aFreeType}-macos/
|
||||||
|
cp ./${aFreeType}-src/docs/LICENSE.TXT ${aFreeType}-macos/
|
||||||
|
cp ./${aFreeType}-src/docs/CHANGES ${aFreeType}-macos/
|
||||||
|
cp ./${aFreeType}-src/docs/README ${aFreeType}-macos/
|
||||||
|
lipo -create -output ${aFreeType}-macos/lib/libfreetype.a ${aFreeType}-macos-x86_64/lib/libfreetype.a ${aFreeType}-macos-arm64/lib/libfreetype.a
|
||||||
|
lipo -create -output ${aFreeType}-macos/lib/libfreetype.6.dylib ${aFreeType}-macos-x86_64/lib/libfreetype.6.dylib ${aFreeType}-macos-arm64/lib/libfreetype.6.dylib
|
||||||
|
ln -s libfreetype.6.dylib ${aFreeType}-macos/lib/libfreetype.dylib
|
||||||
|
lipo -info ${aFreeType}-macos/lib/libfreetype.a
|
||||||
|
lipo -info ${aFreeType}-macos/lib/libfreetype.6.dylib
|
105
adm/scripts/liblzma/android_liblzma_build.sh
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This is helpful script to perform building of liblzma for Android platform
|
||||||
|
# http://tukaani.org/xz/
|
||||||
|
|
||||||
|
anNdkRoot=/home/develop/android/android-ndk-r12b
|
||||||
|
anNdkArm32=/home/develop/android/android15-armv7a
|
||||||
|
anNdkArm64=/home/develop/android/android21-aarch64
|
||||||
|
anNdkx86=/home/develop/android/android15-x86
|
||||||
|
anNdkx86_64=/home/develop/android/android21-x86_64
|
||||||
|
#$anNdkRoot/build/tools/make-standalone-toolchain.sh --platform=android-15 --install-dir=$anNdkArm32 --ndk-dir=$anNdkRoot --toolchain=arm-linux-androideabi-4.9
|
||||||
|
#$anNdkRoot/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=$anNdkArm64 --ndk-dir=$anNdkRoot --toolchain=aarch64-linux-android-4.9
|
||||||
|
#$anNdkRoot/build/tools/make-standalone-toolchain.sh --platform=android-15 --install-dir=$anNdkx86 --ndk-dir=$anNdkRoot --toolchain=x86-4.9
|
||||||
|
#$anNdkRoot/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=$anNdkx86_64 --ndk-dir=$anNdkRoot --toolchain=x86_64-4.9
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then
|
||||||
|
cd "$aScriptPath"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# define number of jobs from available CPU cores
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
aPathBak="$PATH"
|
||||||
|
anXzRoot="$PWD"
|
||||||
|
aCFlagsArmv7a="-O2 -march=armv7-a -mfloat-abi=softfp"
|
||||||
|
aCFlagsArmv8a="-O2 -march=armv8-a"
|
||||||
|
aCFlagsx86="-O2 -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
|
||||||
|
aCFlagsx86_64="-O2 -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel"
|
||||||
|
|
||||||
|
OUTPUT_FOLDER="$anXzRoot/install/liblzma-android"
|
||||||
|
rm -f -r "$OUTPUT_FOLDER"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/include"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/libs/armeabi-v7a"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/libs/x86"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/libs/arm64-v8a"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/libs/x86_64"
|
||||||
|
cp -f "$anXzRoot/COPYING" "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$anXzRoot/README" "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/api/lzma.h" "$OUTPUT_FOLDER/include"
|
||||||
|
cp -f -r "$anXzRoot/src/liblzma/api/lzma" "$OUTPUT_FOLDER/include"
|
||||||
|
echo "Output directory: $OUTPUT_FOLDER"
|
||||||
|
|
||||||
|
# armv7a
|
||||||
|
export "PATH=$anNdkArm32/bin:$aPathBak"
|
||||||
|
export "CC=arm-linux-androideabi-gcc"
|
||||||
|
export "CXX=arm-linux-androideabi-g++"
|
||||||
|
export "CFLAGS=$aCFlagsArmv7a"
|
||||||
|
export "CXXFLAGS=$aCFlagsArmv7a"
|
||||||
|
./configure --host arm-linux-androideabi 2>&1 | tee $OUTPUT_FOLDER/config-armv7a.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.so" "$OUTPUT_FOLDER/libs/armeabi-v7a"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.a" "$OUTPUT_FOLDER/libs/armeabi-v7a"
|
||||||
|
|
||||||
|
# x86
|
||||||
|
export "PATH=$anNdkx86/bin:$aPathBak"
|
||||||
|
export "CC=i686-linux-android-gcc"
|
||||||
|
export "CXX=i686-linux-android-g++"
|
||||||
|
export "CFLAGS=$aCFlagsx86"
|
||||||
|
export "CXXFLAGS=$aCFlagsx86"
|
||||||
|
./configure --host i686-linux-android 2>&1 | tee $OUTPUT_FOLDER/config-x86.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.so" "$OUTPUT_FOLDER/libs/x86"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.a" "$OUTPUT_FOLDER/libs/x86"
|
||||||
|
|
||||||
|
# armv8a
|
||||||
|
export "PATH=$anNdkArm64/bin:$aPathBak"
|
||||||
|
export "CC=aarch64-linux-android-gcc"
|
||||||
|
export "CXX=aarch64-linux-android-g++"
|
||||||
|
export "CFLAGS=$aCFlagsArmv8a"
|
||||||
|
export "CXXFLAGS=$aCFlagsArmv8a"
|
||||||
|
./configure --host aarch64-linux-android 2>&1 | tee $OUTPUT_FOLDER/config-aarch64.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.so" "$OUTPUT_FOLDER/libs/arm64-v8a"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.a" "$OUTPUT_FOLDER/libs/arm64-v8a"
|
||||||
|
|
||||||
|
# x86_64
|
||||||
|
export "PATH=$anNdkx86_64/bin:$aPathBak"
|
||||||
|
export "CC=x86_64-linux-android-gcc"
|
||||||
|
export "CXX=x86_64-linux-android-g++"
|
||||||
|
export "CFLAGS=$aCFlagsx86_64"
|
||||||
|
export "CXXFLAGS=$aCFlagsx86_64"
|
||||||
|
./configure --host x86_64-linux-android 2>&1 | tee $OUTPUT_FOLDER/config-x86_64.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.so" "$OUTPUT_FOLDER/libs/x86_64"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.a" "$OUTPUT_FOLDER/libs/x86_64"
|
||||||
|
|
||||||
|
export "PATH=$aPathBak"
|
||||||
|
|
||||||
|
rm $OUTPUT_FOLDER/../liblzma-android.7z &>/dev/null
|
||||||
|
7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $OUTPUT_FOLDER/../liblzma-android.7z $OUTPUT_FOLDER
|
51
adm/scripts/liblzma/macos_liblzma_build.sh
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This is helpful script to perform building of liblzma for macOS platform
|
||||||
|
# http://tukaani.org/xz/
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then
|
||||||
|
cd "$aScriptPath"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# define number of jobs from available CPU cores
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
anXzRoot="$PWD"
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||||
|
|
||||||
|
OUTPUT_FOLDER="$anXzRoot/work/liblzma-macos"
|
||||||
|
rm -f -r "$OUTPUT_FOLDER"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/include"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER/lib"
|
||||||
|
cp -f "$anXzRoot/COPYING" "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$anXzRoot/README" "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/api/lzma.h" "$OUTPUT_FOLDER/include"
|
||||||
|
cp -f -r "$anXzRoot/src/liblzma/api/lzma" "$OUTPUT_FOLDER/include"
|
||||||
|
echo "Output directory: $OUTPUT_FOLDER"
|
||||||
|
|
||||||
|
# x86_64
|
||||||
|
./configure CFLAGS="-O2 -arch x86_64" CXXFLAGS="-O2 -arch x86_64" 2>&1 | tee $OUTPUT_FOLDER/config-x86_64.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
#cp -f "$anXzRoot/src/liblzma/.libs/liblzma.so" "$OUTPUT_FOLDER/libs/x86"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.a" "$OUTPUT_FOLDER/lib/liblzma-x86_64.a"
|
||||||
|
|
||||||
|
# armv8a
|
||||||
|
./configure CFLAGS="-O2 -arch arm64" CXXFLAGS="-O2 -arch arm64" 2>&1 | tee $OUTPUT_FOLDER/config-arm64.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then exit $aResult; fi
|
||||||
|
#cp -f "$anXzRoot/src/liblzma/.libs/liblzma.so" "$OUTPUT_FOLDER/libs/arm64-v8a"
|
||||||
|
cp -f "$anXzRoot/src/liblzma/.libs/liblzma.a" "$OUTPUT_FOLDER/lib/liblzma-arm64.a"
|
||||||
|
|
||||||
|
lipo -create -output "$OUTPUT_FOLDER/lib/liblzma.a" "$OUTPUT_FOLDER/lib/liblzma-x86_64.a" "$OUTPUT_FOLDER/lib/liblzma-arm64.a"
|
||||||
|
lipo -info "$OUTPUT_FOLDER/lib/liblzma.a"
|
||||||
|
|
||||||
|
#rm $OUTPUT_FOLDER/../liblzma-macos.7z &>/dev/null
|
||||||
|
#7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $OUTPUT_FOLDER/../liblzma-macos.7z $OUTPUT_FOLDER
|
60
adm/scripts/tcl/android_tcl_build.sh
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This is helpful script to perform building of Tcl for Android platform
|
||||||
|
# https://www.tcl.tk/software/tcltk/download.html
|
||||||
|
|
||||||
|
#$HOME/develop/android-ndk-r12b/build/tools/make-standalone-toolchain.sh --platform=android-15 --install-dir=$HOME/develop/android15-armv7a --ndk-dir=$HOME/develop/android-ndk-r12b --toolchain=arm-linux-androideabi-4.9
|
||||||
|
#$HOME/develop/android-ndk-r12b/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=$HOME/develop/android21-aarch64 --ndk-dir=$HOME/develop/android-ndk-r12b --toolchain=aarch64-linux-android-4.9
|
||||||
|
#$HOME/develop/android-ndk-r12b/build/tools/make-standalone-toolchain.sh --platform=android-15 --install-dir=$HOME/develop/android15-x86 --ndk-dir=$HOME/develop/android-ndk-r12b --toolchain=x86-4.9
|
||||||
|
ANDROID_ROOT="/home/develop/android"
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then
|
||||||
|
cd "$aScriptPath"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# define number of jobs from available CPU cores
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
aPathBak="$PATH"
|
||||||
|
aTclRoot="$PWD"
|
||||||
|
|
||||||
|
OUTPUT_FOLDER="$aTclRoot/install/tcl-android"
|
||||||
|
rm -f -r "$OUTPUT_FOLDER"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$aTclRoot/license.terms" "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$aTclRoot/README.md" "$OUTPUT_FOLDER"
|
||||||
|
echo "Output directory: $OUTPUT_FOLDER"
|
||||||
|
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function buildArch {
|
||||||
|
anAbi=$1
|
||||||
|
anArch=$2
|
||||||
|
aToolPath=$3
|
||||||
|
aCFlags=$4
|
||||||
|
export "PATH=$ANDROID_ROOT/$aToolPath/bin:$aPathBak"
|
||||||
|
export "CC=$anArch-gcc"
|
||||||
|
export "AR=$anArch-ar"
|
||||||
|
export "RANLIB=$anArch-ranlib"
|
||||||
|
export "CFLAGS=$aCFlags"
|
||||||
|
pushd "$aTclRoot/unix"
|
||||||
|
./configure --build x86_64-linux --host $anArch --prefix=${OUTPUT_FOLDER} --libdir=${OUTPUT_FOLDER}/libs/$anAbi --bindir=${OUTPUT_FOLDER}/bins/$anAbi 2>&1 | tee $OUTPUT_FOLDER/config-$anAbi.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then echo "FAILED configure $anAbi"; exit $aResult; fi
|
||||||
|
make clean
|
||||||
|
make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then echo "FAILED make $anAbi"; exit $aResult; fi
|
||||||
|
make install
|
||||||
|
popd
|
||||||
|
export "PATH=$aPathBak"
|
||||||
|
}
|
||||||
|
|
||||||
|
buildArch "arm64-v8a" "aarch64-linux-android" "android21-aarch64" "-O2 -march=armv8-a"
|
||||||
|
buildArch "armeabi-v7a" "arm-linux-androideabi" "android15-armv7a" "-O2 -march=armv7-a -mfloat-abi=softfp"
|
||||||
|
buildArch "x86" "i686-linux-android" "android15-x86" "-O2 -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
|
||||||
|
buildArch "x86_64" "x86_64-linux-android" "android21-x86_64" "-O2 -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel"
|
||||||
|
|
||||||
|
rm $OUTPUT_FOLDER/../tcl-android.7z &>/dev/null
|
||||||
|
7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $OUTPUT_FOLDER/../tcl-android.7z $OUTPUT_FOLDER
|
46
adm/scripts/tcl/wasm_tcl_build.sh
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This is helpful script to perform building of Tcl for WebAssembly platform
|
||||||
|
# https://www.tcl.tk/software/tcltk/download.html
|
||||||
|
|
||||||
|
EMSDK_ROOT="/home/develop/wasm/emsdk"
|
||||||
|
|
||||||
|
# go to the script directory
|
||||||
|
aScriptPath=${BASH_SOURCE%/*}
|
||||||
|
if [ -d "$aScriptPath" ]; then
|
||||||
|
cd "$aScriptPath"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# define number of jobs from available CPU cores
|
||||||
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
aPathBak="$PATH"
|
||||||
|
aTclRoot="$PWD"
|
||||||
|
|
||||||
|
OUTPUT_FOLDER="$aTclRoot/install/tcl-wasm32"
|
||||||
|
rm -f -r "$OUTPUT_FOLDER"
|
||||||
|
mkdir -p "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$aTclRoot/license.terms" "$OUTPUT_FOLDER"
|
||||||
|
cp -f "$aTclRoot/README.md" "$OUTPUT_FOLDER"
|
||||||
|
echo "Output directory: $OUTPUT_FOLDER"
|
||||||
|
|
||||||
|
. "${EMSDK_ROOT}/emsdk_env.sh"
|
||||||
|
#export "PATH=$EMSDK_ROOT/upstream/bin:$aPathBak"
|
||||||
|
#export "CC=emcc"
|
||||||
|
#export "AR=llvm-ar"
|
||||||
|
#export "RANLIB=llvm-ranlib"
|
||||||
|
#export "CFLAGS=$aCFlags"
|
||||||
|
pushd "$aTclRoot/unix"
|
||||||
|
#./configure --build x86_64-linux --host wasm32 --prefix=${OUTPUT_FOLDER} 2>&1 | tee $OUTPUT_FOLDER/config-wasm32.log
|
||||||
|
emconfigure ./configure --prefix=${OUTPUT_FOLDER} --enable-shared=no 2>&1 | tee $OUTPUT_FOLDER/config-wasm32.log
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then echo "FAILED configure"; exit $aResult; fi
|
||||||
|
emmake make clean
|
||||||
|
emmake make -j$aNbJobs
|
||||||
|
aResult=$?; if [[ $aResult != 0 ]]; then echo "FAILED make"; exit $aResult; fi
|
||||||
|
emmake make install
|
||||||
|
popd
|
||||||
|
export "PATH=$aPathBak"
|
||||||
|
|
||||||
|
rm $OUTPUT_FOLDER/../tcl-wasm32.7z &>/dev/null
|
||||||
|
7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $OUTPUT_FOLDER/../tcl-wasm32.7z $OUTPUT_FOLDER
|
@@ -131,6 +131,10 @@ if exist "%CASROOT%\custom.bat" (
|
|||||||
call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB%
|
call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB%
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not ["%QTDIR%"] == [""] (
|
||||||
|
set "PATH=%QTDIR%/bin;%PATH%"
|
||||||
|
set "QT_PLUGIN_PATH=%QTDIR%/plugins"
|
||||||
|
)
|
||||||
if not ["%TCL_DIR%"] == [""] set "PATH=%TCL_DIR%;%PATH%"
|
if not ["%TCL_DIR%"] == [""] set "PATH=%TCL_DIR%;%PATH%"
|
||||||
if not ["%TK_DIR%"] == [""] set "PATH=%TK_DIR%;%PATH%"
|
if not ["%TK_DIR%"] == [""] set "PATH=%TK_DIR%;%PATH%"
|
||||||
if not ["%FREETYPE_DIR%"] == [""] set "PATH=%FREETYPE_DIR%;%PATH%"
|
if not ["%FREETYPE_DIR%"] == [""] set "PATH=%FREETYPE_DIR%;%PATH%"
|
||||||
@@ -141,10 +145,6 @@ if not ["%TBB_DIR%"] == [""] set "PATH=%TBB_DIR%;%PATH%"
|
|||||||
if not ["%VTK_DIR%"] == [""] set "PATH=%VTK_DIR%;%PATH%"
|
if not ["%VTK_DIR%"] == [""] set "PATH=%VTK_DIR%;%PATH%"
|
||||||
if not ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_DIR%;%PATH%"
|
if not ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_DIR%;%PATH%"
|
||||||
if not ["%OPENVR_DIR%"] == [""] set "PATH=%OPENVR_DIR%;%PATH%"
|
if not ["%OPENVR_DIR%"] == [""] set "PATH=%OPENVR_DIR%;%PATH%"
|
||||||
if not ["%QTDIR%"] == [""] (
|
|
||||||
set "PATH=%QTDIR%/bin;%PATH%"
|
|
||||||
set "QT_PLUGIN_PATH=%QTDIR%/plugins"
|
|
||||||
)
|
|
||||||
|
|
||||||
rem ----- Set path to 3rd party and OCCT libraries -----
|
rem ----- Set path to 3rd party and OCCT libraries -----
|
||||||
if not "%CSF_OCCTBinPath%" == "" (
|
if not "%CSF_OCCTBinPath%" == "" (
|
||||||
|
@@ -43,6 +43,7 @@ configure_file ("${OCCT_OVERVIEW_RESOURCE_DIR}/occt_ug_html.doxyfile" "${OCCT_CO
|
|||||||
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_NUMBER = ${OCC_VERSION_STRING_EXT}")
|
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_NUMBER = ${OCC_VERSION_STRING_EXT}")
|
||||||
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nOUTPUT_DIRECTORY = ${OCCT_GENERATED_OVERVIEW_DIR}/.")
|
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nOUTPUT_DIRECTORY = ${OCCT_GENERATED_OVERVIEW_DIR}/.")
|
||||||
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_LOGO = ${OCCT_OVERVIEW_DIR}/resources/occ_logo.png")
|
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_LOGO = ${OCCT_OVERVIEW_DIR}/resources/occ_logo.png")
|
||||||
|
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nEXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/src")
|
||||||
|
|
||||||
set (OCCT_ARTICLE_PARAM_INPUT "INPUT =")
|
set (OCCT_ARTICLE_PARAM_INPUT "INPUT =")
|
||||||
set (OCCT_ARTICLE_PARAM_IMAGEPATH "IMAGE_PATH = ${OCCT_OVERVIEW_DIR}/resources/ ")
|
set (OCCT_ARTICLE_PARAM_IMAGEPATH "IMAGE_PATH = ${OCCT_OVERVIEW_DIR}/resources/ ")
|
||||||
|
@@ -12,14 +12,18 @@ samples/samples.md
|
|||||||
../samples/CSharp/ReadMe.md
|
../samples/CSharp/ReadMe.md
|
||||||
../samples/CSharp/ReadMe_D3D.md
|
../samples/CSharp/ReadMe_D3D.md
|
||||||
../samples/qt/AndroidQt/ReadMe.md
|
../samples/qt/AndroidQt/ReadMe.md
|
||||||
|
../samples/qt/IESample/ReadMe.md
|
||||||
../samples/qt/OCCTOverview/ReadMe.md
|
../samples/qt/OCCTOverview/ReadMe.md
|
||||||
|
../samples/qt/Tutorial/ReadMe.md
|
||||||
../samples/java/jniviewer/ReadMe.md
|
../samples/java/jniviewer/ReadMe.md
|
||||||
../samples/ios/UIKitSample/ReadMe.md
|
../samples/ios/UIKitSample/ReadMe.md
|
||||||
../samples/webgl/ReadMe.md
|
../samples/webgl/ReadMe.md
|
||||||
|
../samples/glfw/readme.md
|
||||||
samples/ocaf.md
|
samples/ocaf.md
|
||||||
samples/ocaf_func.md
|
samples/ocaf_func.md
|
||||||
samples/draw_scripts.md
|
samples/draw_scripts.md
|
||||||
|
|
||||||
|
samples/novice_guide.md
|
||||||
tutorial/tutorial.md
|
tutorial/tutorial.md
|
||||||
|
|
||||||
build/build_upgrade.md
|
build/build_upgrade.md
|
||||||
|
@@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
tutorial/tutorial.md
|
tutorial/tutorial.md
|
||||||
|
|
||||||
|
samples/novice_guide.md
|
||||||
|
|
||||||
upgrade/upgrade.md
|
upgrade/upgrade.md
|
||||||
|
|
||||||
user_guides/foundation_classes/foundation_classes.md
|
user_guides/foundation_classes/foundation_classes.md
|
||||||
|
@@ -241,7 +241,7 @@ VTK is an open-source, freely available software system for 3D computer graphics
|
|||||||
2. Use CMake to generate VS projects for building the library:
|
2. Use CMake to generate VS projects for building the library:
|
||||||
- Start CMake-GUI and select VTK folder as source path, and the folder of your choice for VS project and intermediate build data.
|
- Start CMake-GUI and select VTK folder as source path, and the folder of your choice for VS project and intermediate build data.
|
||||||
- Click **Configure**.
|
- Click **Configure**.
|
||||||
- Select the VS version to be used from the ones you have installed (we recommend using VS 2010) and the architecture (32 or 64-bit).
|
- Select the VS version to be used from the ones you have installed (we recommend using VS 2015) and the architecture (32 or 64-bit).
|
||||||
- Generate VS projects with default CMake options. The open solution *VTK.sln* will be generated in the build folder.
|
- Generate VS projects with default CMake options. The open solution *VTK.sln* will be generated in the build folder.
|
||||||
|
|
||||||
3. Build project VTK in Release mode.
|
3. Build project VTK in Release mode.
|
||||||
@@ -272,7 +272,8 @@ There are two types of third-party products, which are necessary to build OCCT:
|
|||||||
All 3rd-party products required for building of OCCT could be installed
|
All 3rd-party products required for building of OCCT could be installed
|
||||||
from official repositories. You may install them from console using apt-get utility:
|
from official repositories. You may install them from console using apt-get utility:
|
||||||
|
|
||||||
sudo apt-get install tcllib tklib tcl-dev tk-dev libfreetype-dev libx11-dev libgl1-mesa-dev libfreeimage-dev rapidjson-dev
|
sudo apt-get install tcllib tklib tcl-dev tk-dev libfreetype-dev libx11-dev libgl1-mesa-dev libfreeimage-dev
|
||||||
|
sudo apt-get install rapidjson-dev libdraco-dev
|
||||||
|
|
||||||
Building is possible with C++ compliant compiler:
|
Building is possible with C++ compliant compiler:
|
||||||
|
|
||||||
|
@@ -234,7 +234,7 @@ This module handles various problems of interoperability between CAD systems, ca
|
|||||||
* @ref occt_user_guides__step "STEP" (AP203: Mechanical Design, this covers General 3D CAD; AP214: Automotive Design; AP242).
|
* @ref occt_user_guides__step "STEP" (AP203: Mechanical Design, this covers General 3D CAD; AP214: Automotive Design; AP242).
|
||||||
* @ref occt_iges_1 "IGES" (up to 5.3).
|
* @ref occt_iges_1 "IGES" (up to 5.3).
|
||||||
* **glTF** 2.0 reader and writer.
|
* **glTF** 2.0 reader and writer.
|
||||||
* **OBJ** mesh file reader.
|
* **OBJ** mesh file reader and writer.
|
||||||
* **VRML** converter translates Open CASCADE shapes to VRML 1.0 files (Virtual Reality Modeling Language).
|
* **VRML** converter translates Open CASCADE shapes to VRML 1.0 files (Virtual Reality Modeling Language).
|
||||||
* **STL** converter translates Open CASCADE shapes to STL files.
|
* **STL** converter translates Open CASCADE shapes to STL files.
|
||||||
STL (STtereoLithography) format is widely used for rapid prototyping (3D printing).
|
STL (STtereoLithography) format is widely used for rapid prototyping (3D printing).
|
||||||
@@ -341,7 +341,7 @@ The tables below describe the recommended software configurations for which OCCT
|
|||||||
|
|
||||||
| OS | Compiler |
|
| OS | Compiler |
|
||||||
| --------- | ----------- |
|
| --------- | ----------- |
|
||||||
| Windows | Microsoft Visual Studio: 2010 SP1, 2012 Update 4, 2013 Update 5, 2015 Update 3, 2017 <sup>1</sup>, 2019 <br>, LLVM (ClangCL), GCC 4.3+ (Mingw-w64)|
|
| Windows | Microsoft Visual Studio: 2013 Update 5, 2015 Update 3, 2017 <sup>1</sup>, 2019, 2022 <br>, LLVM (ClangCL), GCC 4.3+ (Mingw-w64)|
|
||||||
| Linux | GNU gcc 4.3+ <br> LLVM CLang 3.6+ |
|
| Linux | GNU gcc 4.3+ <br> LLVM CLang 3.6+ |
|
||||||
| OS X / macOS | XCode 6 or newer |
|
| OS X / macOS | XCode 6 or newer |
|
||||||
| Android | NDK r12, GNU gcc 4.9 or newer |
|
| Android | NDK r12, GNU gcc 4.9 or newer |
|
||||||
@@ -352,29 +352,28 @@ The tables below describe the recommended software configurations for which OCCT
|
|||||||
@subsection intro_req_libs Third-party libraries and tools
|
@subsection intro_req_libs Third-party libraries and tools
|
||||||
|
|
||||||
The following third-party libraries and tools are not included in OCCT sources but are either required or can be optionally used for the indicated components of OCCT.
|
The following third-party libraries and tools are not included in OCCT sources but are either required or can be optionally used for the indicated components of OCCT.
|
||||||
They are not needed if relevant component is not needed.
|
They are not needed if relevant component is not needed - it is possible building core OCCT modules without additional dependencies.
|
||||||
|
|
||||||
Note that pre-built packages of many of the listed libraries are available at
|
Note that pre-built packages of many of the listed libraries are available at
|
||||||
https://www.opencascade.com/content/3rd-party-components
|
https://dev.opencascade.org/resources/download/3rd-party-components
|
||||||
|
|
||||||
| Component | Where to find | Used for | Required or optional |
|
| Component | Where to find | Used for | Purpose |
|
||||||
| --------- | ------------- | -------- | -------------------- |
|
| --------- | ------------- | -------- | -------------------- |
|
||||||
| CMake 2.8+ | https://cmake.org/ | Build from sources | Optional |
|
| CMake 2.8+ | https://cmake.org/ | Configuration | Build from sources |
|
||||||
| Intel TBB 4.x or later | https://www.threadingbuildingblocks.org/ | All | Optional (advanced parallelization of algorithms) |
|
| Intel TBB 4.x or later | https://oneapi-src.github.io/oneTBB/ | All | Parallelization of algorithms (alternative to built-in thread pool) |
|
||||||
| OpenGL 3.3+, OpenGL ES 2.0+ | System | Visualization | Required |
|
| OpenGL 3.3+, OpenGL ES 2.0+ | System | Visualization | Required for using 3D Viewer |
|
||||||
| OpenVR 1.10+ | https://github.com/ValveSoftware/openvr | Visualization | Optional (VR support) |
|
| OpenVR 1.10+ | https://github.com/ValveSoftware/openvr | Visualization | VR (Virtual Reality) support in 3D Viewer |
|
||||||
| Direct3D 9 | Windows | Visualization | Optional (integration with GUI using Direct3D) |
|
| FreeType 2.4+ | https://www.freetype.org/download.html | Visualization | Text rendering in 3D Viewer |
|
||||||
| FreeType 2.4+ | https://www.freetype.org/download.html | Visualization | Optional (text rendering) |
|
| FreeImage 3.17+ | https://sourceforge.net/projects/freeimage/files | Visualization | Reading/writing image files |
|
||||||
| FreeImage 3.17+ | https://sourceforge.net/projects/freeimage/files | Visualization | Optional (support of common 2D graphic formats) |
|
| FFmpeg 3.1+ | https://www.ffmpeg.org/download.html | Visualization | Video recording |
|
||||||
| FFmpeg 3.1+ | https://www.ffmpeg.org/download.html | Visualization | Optional (video recording) |
|
| VTK 6.1+ | https://www.vtk.org/download/ | IVtk | VTK integration module |
|
||||||
| 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 | Updating STEP and ExprIntrp parsers |
|
||||||
| 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 | Reading glTF files |
|
||||||
| RapidJSON 1.1+ | https://rapidjson.org/ | Data Exchange | Optional (reading glTF files) |
|
| Draco 1.4.1+ | https://github.com/google/draco | Data Exchange | Reading compressed glTF files |
|
||||||
| Draco 1.4.1+ | https://github.com/google/draco | Data Exchange | Optional (reading compressed glTF files) |
|
| Tcl/Tk 8.6.3+ | https://www.tcl.tk/software/tcltk/download.html | DRAW Test Harness | Tcl interpretor in Draw module |
|
||||||
| Tcl/Tk 8.6.3+ <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 5.3.2+ | https://www.qt.io/download/ | Inspector and Samples | Inspector Qt samples and |
|
||||||
| 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 | (Re)generating documentation |
|
||||||
| Doxygen 1.8.5+ | https://www.doxygen.nl/download.html | Documentation | Required |
|
| Graphviz 2.38+ | https://graphviz.org/ | Documentation | Generating dependency graphs |
|
||||||
| Graphviz 2.38+ | https://graphviz.org/ | Documentation | Optional (dependency graphs) |
|
|
||||||
|
|
||||||
@subsection intro_req_hw Hardware
|
@subsection intro_req_hw Hardware
|
||||||
|
|
||||||
@@ -398,7 +397,7 @@ Don't forget to report these bugs to vendors.
|
|||||||
|
|
||||||
@section intro_install Download and Installation
|
@section intro_install Download and Installation
|
||||||
|
|
||||||
OCCT can be downloaded from https://www.opencascade.com/content/latest-release
|
OCCT can be downloaded from https://dev.opencascade.org/release
|
||||||
|
|
||||||
In most cases you would want to rebuild OCCT from sources on your platform (OS, compiler) before
|
In most cases you would want to rebuild OCCT from sources on your platform (OS, compiler) before
|
||||||
using it in your project, to ensure binary compatibility and appropriate configuration of the library.
|
using it in your project, to ensure binary compatibility and appropriate configuration of the library.
|
||||||
@@ -432,7 +431,7 @@ The contents of the OCCT-7.4.0 directory (called further "OCCT root", or $CASROO
|
|||||||
|
|
||||||
* **adm** This folder contains administration files, which allow rebuilding OCCT;
|
* **adm** This folder contains administration files, which allow rebuilding OCCT;
|
||||||
* **adm/cmake** This folder contains files of CMake building procedure;
|
* **adm/cmake** This folder contains files of CMake building procedure;
|
||||||
* **adm/msvc** This folder contains Visual Studio projects for Visual C++ 2010, 2012, 2013, 2015, 2017 and 2019 which allow rebuilding OCCT under Windows platform in 32 and 64-bit mode;
|
* **adm/msvc** This folder contains Visual Studio projects for Visual C++ 2013, 2015, 2017, 2019 and 2022 which allow rebuilding OCCT under Windows platform in 32 and 64-bit mode;
|
||||||
* **adm/scripts** This folder contains auxiliary scripts for semi-automated building and packaging of OCCT for different platforms;
|
* **adm/scripts** This folder contains auxiliary scripts for semi-automated building and packaging of OCCT for different platforms;
|
||||||
* **data** This folder contains CAD files in different formats, which can be used to test the OCCT functionality;
|
* **data** This folder contains CAD files in different formats, which can be used to test the OCCT functionality;
|
||||||
* **doc** This folder contains OCCT documentation in HTML and PDF format;
|
* **doc** This folder contains OCCT documentation in HTML and PDF format;
|
||||||
@@ -442,7 +441,7 @@ The contents of the OCCT-7.4.0 directory (called further "OCCT root", or $CASROO
|
|||||||
* **src** This folder contains OCCT source files. They are organized in folders, one per development unit;
|
* **src** This folder contains OCCT source files. They are organized in folders, one per development unit;
|
||||||
* **tests** This folder contains scripts for OCCT testing.
|
* **tests** This folder contains scripts for OCCT testing.
|
||||||
* **tools** This folder contains sources of Inspector tool.
|
* **tools** This folder contains sources of Inspector tool.
|
||||||
* **win64/vc10** This folder contains executable and library files built in optimize mode for Windows platform by Visual C++ 2010;
|
* **win64/vc14** This folder contains executable and library files built in optimize mode for Windows platform by Visual C++ 2015;
|
||||||
|
|
||||||
@subsection intro_install_linux Linux
|
@subsection intro_install_linux Linux
|
||||||
|
|
||||||
@@ -463,7 +462,7 @@ To run any Open CASCADE Technology application you need to set the environment v
|
|||||||
|
|
||||||
You can define the environment variables with env.bat script located in the
|
You can define the environment variables with env.bat script located in the
|
||||||
$CASROOT folder. This script accepts two arguments to be used:
|
$CASROOT folder. This script accepts two arguments to be used:
|
||||||
the version of Visual Studio (vc10 -- vc142) and the architecture (win32 or win64).
|
the version of Visual Studio (vc12 -- vc142) and the architecture (win32 or win64).
|
||||||
|
|
||||||
The additional environment settings necessary for compiling OCCT libraries and samples
|
The additional environment settings necessary for compiling OCCT libraries and samples
|
||||||
by Microsoft Visual Studio can be set using script custom.bat located in the same folder.
|
by Microsoft Visual Studio can be set using script custom.bat located in the same folder.
|
||||||
@@ -507,7 +506,7 @@ The scripts are located in the OCCT root folder.
|
|||||||
* **CSF_ShadersDirectory** (optional) defines the directory for GLSL programs for Ray Tracing renderer (embedded resources are used when variable is undefined);
|
* **CSF_ShadersDirectory** (optional) defines the directory for GLSL programs for Ray Tracing renderer (embedded resources are used when variable is undefined);
|
||||||
* **CSF_SHMessage** (optional) defines the path to the messages file for *ShapeHealing*;
|
* **CSF_SHMessage** (optional) defines the path to the messages file for *ShapeHealing*;
|
||||||
* **CSF_XSMessage** (optional) defines the path to the messages file for **STEP** and **IGES** translators;
|
* **CSF_XSMessage** (optional) defines the path to the messages file for **STEP** and **IGES** translators;
|
||||||
* **CSF_StandardDefaults**, **CSF_StandardLiteDefaults*, **CSF_XCAFDefaults**, and **CSF_PluginDefaults** define paths to directory where configuration files for OCAF persistence are located (required for open/save operations with OCAF documents);
|
* **CSF_StandardDefaults**, **CSF_StandardLiteDefaults**, **CSF_XCAFDefaults**, and **CSF_PluginDefaults** define paths to directory where configuration files for OCAF persistence are located (required for open/save operations with OCAF documents);
|
||||||
* **CSF_IGESDefaults** and **CSF_STEPDefaults** (optional) define paths to directory where resource files of **IGES** and **STEP** translators are located;
|
* **CSF_IGESDefaults** and **CSF_STEPDefaults** (optional) define paths to directory where resource files of **IGES** and **STEP** translators are located;
|
||||||
* **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar.
|
* **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar.
|
||||||
* **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*;
|
* **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*;
|
||||||
@@ -532,7 +531,7 @@ At minimum the following should be considered:
|
|||||||
the application should be provided separately in a modifiable form, with all materials needed for the user to be able to run the application with a modified version of OCCT.
|
the application should be provided separately in a modifiable form, with all materials needed for the user to be able to run the application with a modified version of OCCT.
|
||||||
|
|
||||||
If you want to use Open CASCADE Technology without being bound by LGPL requirements,
|
If you want to use Open CASCADE Technology without being bound by LGPL requirements,
|
||||||
please <a href="https://www.opencascade.com/contact">contact Open CASCADE company</a> for a commercial license.
|
please <a href="https://dev.opencascade.org/webform/contact_us">contact Open CASCADE company</a> for a commercial license.
|
||||||
|
|
||||||
Note that Open CASCADE Technology is provided on an "AS IS" basis, WITHOUT
|
Note that Open CASCADE Technology is provided on an "AS IS" basis, WITHOUT
|
||||||
WARRANTY OF ANY KIND. The entire risk related to any use of the OCCT code and
|
WARRANTY OF ANY KIND. The entire risk related to any use of the OCCT code and
|
||||||
@@ -593,10 +592,10 @@ If you need further information on VTK, refer to VTK Homepage https://www.vtk.or
|
|||||||
**Doxygen** developed by Dimitri van Heesch is open source documentation system for
|
**Doxygen** developed by Dimitri van Heesch is open source documentation system for
|
||||||
C++, C, Java, Objective-C, Python, IDL, PHP and C#. This product is used in Open CASCADE Technology
|
C++, C, Java, Objective-C, Python, IDL, PHP and C#. This product is used in Open CASCADE Technology
|
||||||
for automatic creation of Technical Documentation from C++ header files.
|
for automatic creation of Technical Documentation from C++ header files.
|
||||||
If you need further information on Doxygen, refer to https://www.stack.nl/~dimitri/doxygen/index.html.
|
If you need further information on Doxygen, refer to https://www.doxygen.nl/index.html.
|
||||||
|
|
||||||
**Graphviz** is open source graph visualization software developed by John Ellson, Emden Gansner, Yifan Hu and Arif Bilgin.
|
**Graphviz** is open source graph visualization software developed by John Ellson, Emden Gansner, Yifan Hu and Arif Bilgin.
|
||||||
Graph visualization is representiation of structured information as diagrams of abstract graphs and networks.
|
Graph visualization is representation of structured information as diagrams of abstract graphs and networks.
|
||||||
This product is used together with Doxygen in Open CASCADE Technology for automatic creation of Technical Documentation
|
This product is used together with Doxygen in Open CASCADE Technology for automatic creation of Technical Documentation
|
||||||
(generation of dependency graphs). Current versions of Graphviz are licensed on an open source
|
(generation of dependency graphs). Current versions of Graphviz are licensed on an open source
|
||||||
basis under The Eclipse Public License (EPL) (https://www.graphviz.org/license/).
|
basis under The Eclipse Public License (EPL) (https://www.graphviz.org/license/).
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Draw Demo Scripts {#samples__draw_scripts}
|
Draw: Demo Scripts {#samples__draw_scripts}
|
||||||
================
|
================
|
||||||
|
|
||||||
All demo scripts are provided with OCCT sources and locate in <i>CASROOT/samples/tcl</i>. To play around them please
|
All demo scripts are provided with OCCT sources and locate in <i>CASROOT/samples/tcl</i>. To play around them please
|
||||||
|
BIN
dox/samples/images/sample_overview_qt_geometry.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
dox/samples/images/sample_overview_qt_ocaf.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
dox/samples/images/sample_overview_qt_topology.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
dox/samples/images/sample_overview_qt_triangulation.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
dox/samples/images/sample_overview_qt_viewers.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
dox/samples/images/sample_overview_qt_xde.png
Normal file
After Width: | Height: | Size: 28 KiB |
115
dox/samples/novice_guide.md
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
Novice Guide {#samples__novice_guide}
|
||||||
|
=======
|
||||||
|
|
||||||
|
@tableofcontents
|
||||||
|
|
||||||
|
@section diffs Modeling with OCCT: Key differences
|
||||||
|
|
||||||
|
Open CASCADE Technology (OCCT) is an object-oriented C++ framework designed for rapid production of sophisticated CAD/CAM/CAE applications.
|
||||||
|
In other words, it provides endless possibilities for raw 2D and 3D modeling in C++ environment.
|
||||||
|
Unlike end-user software, it is used by the application developers and therefore strongly differs from the most popular CAD/CAM/CAE software packages.
|
||||||
|
OCCT provides building blocks enough for modeling, editing, visualization, and data interoperability of 2D and 3D objects.
|
||||||
|
|
||||||
|
By using OCCT, users can create the objects of their desire (or edit already existing ones) using raw code commands.
|
||||||
|
It is a more complicated process than using GUI-based software, but it provides much more flexibility than even script-based manipulations that are available within existing CAD/CAM/CAE applications.
|
||||||
|
However, to fully grasp the possibilities of OCCT it is best for the user to have previous experience in C++ at least at a basic level.
|
||||||
|
|
||||||
|
@section basics Understanding the principles
|
||||||
|
|
||||||
|
If you don't have any programming skills, grasping the full magnitude of OCCT workflow is still an option.
|
||||||
|
The documentation for OCCT contains several entry points for new users.
|
||||||
|
It will not explain all OCCT classes but will help to comprehend the workflow and help start thinking in terms of Open CASCADE Technology.
|
||||||
|
|
||||||
|
The most basic workflow is described in the @ref occt__tutorial "OCCT Tutorial" - this is an excellent starting point for new users.
|
||||||
|
In this tutorial you will create a solid model step-by-step using different classes and methods.
|
||||||
|
Each step of the tutorial contains code snippets and images.
|
||||||
|
|
||||||
|
The basics involved in the modeling process are explained.
|
||||||
|
When the basics of OCCT are clear, the next logical step is to check out @ref samples "sample applications" and examine those that suit your needs.
|
||||||
|
For these, the best starting point is **OCCTOverview** located in /samples/qt subfolder of OCCT installation.
|
||||||
|
|
||||||
|
This sample provides code examples for several actions as well as visualization of these code snippets output.
|
||||||
|
The Overview interface is dynamically changing based on selected **Category** at the menu.
|
||||||
|
Additional menu buttons will appear, providing users with subcategories and relevant commands to select one of the actions.
|
||||||
|
The result will appear in the viewer window, the code will appear at the top right, and in several cases the output will be produced at the bottom right window.
|
||||||
|
|
||||||
|
@figure{sample_overview_qt_viewers.png,"Comparison of 3D and 2D viewer windows",240} height=420px
|
||||||
|
|
||||||
|
The 3D viewer window has a row of preset interface buttons to customize the visual output.
|
||||||
|
|
||||||
|
Those buttons can be grouped into three types, left to right:
|
||||||
|
|
||||||
|
- View controls: **Fit all** and **Isometric**, will center the view and reset the camera angles respectively;
|
||||||
|
- Display mode customization: **HLR,** e.g. "Hidden line removal" (works only when shading is disabled) can be turned on and off;
|
||||||
|
solid models may be displayed either in **Shading** or **Wireframe** modes. **Transparency** level may be set for models in shading mode;
|
||||||
|
- The last four buttons in a row are beautifiers enabling Ray-tracing engine and configuring it's parameters.
|
||||||
|
|
||||||
|
At the bottom left of the screen the orientation cube (trihedron) is located.
|
||||||
|
The trihedron interactively shows the position of the camera in relation to the XYZ axis of the displayed data.
|
||||||
|
The sides of the trihedron are labeled to help with orientation.
|
||||||
|
Click on a side of the box to orient the camera view along the preferred axis.
|
||||||
|
|
||||||
|
The 2D viewer window lacks most of these elements and only have **Fit all** button.
|
||||||
|
|
||||||
|
The **Geometry** category of the Overview focuses on primitive objects like dots, lines (including vectors) or planes.
|
||||||
|
These objects will appear in the viewer after the subcategory is selected.
|
||||||
|
This section will demonstrate these entities both in 2D and 3D view mode and provide basic examples of parametric creation and data analysis.
|
||||||
|
|
||||||
|
@figure{sample_overview_qt_geometry.png,"",240} height=440px
|
||||||
|
|
||||||
|
The usage of the functions shown in the Overview is described more thoroughly at the @ref occt_user_guides__modeling_data "Modeling data" section of the documentation.
|
||||||
|
Additionally, @ref occt_user_guides__modeling_algos "Modeling Algorithms" are used in more complex cases.
|
||||||
|
|
||||||
|
The **Topology** section of the Overview demonstrates the functions used in 3D operations.
|
||||||
|
Multiple use cases are provided, including different object intersections, modifying and calculations.
|
||||||
|
Some of these use cases are described in the documentation, such as @ref occt_user_guides__inspector "Inspector" usage.
|
||||||
|
|
||||||
|
@figure{sample_overview_qt_topology.png,"",240} height=440px
|
||||||
|
|
||||||
|
The subsections are grouped as shown on the screenshot before.
|
||||||
|
Most shapes and primitive objects are introduced and then followed by a set of operations and interactions.
|
||||||
|
|
||||||
|
The **Triangulation** segment allows computing the number of triangles on a shape.
|
||||||
|
|
||||||
|
This may be inspected via [Poly_Triangulation Class Reference](https://dev.opencascade.org/doc/refman/html/class_poly___triangulation.html) -
|
||||||
|
a part of the [Reference manual](https://dev.opencascade.org/doc/refman/html/index.html),
|
||||||
|
an overall Open CASCADE code guide that may be used to inspect the key points in classes and their connections.
|
||||||
|
|
||||||
|
@figure{sample_overview_qt_triangulation.png,"",240} height=440px
|
||||||
|
|
||||||
|
The triangulation uses some of Mesh-related classes - see full description at @ref occt_user_guides__mesh "Mesh" documentation section.
|
||||||
|
|
||||||
|
The **Data exchange** section provides examples of how to export and import files of several different formats.
|
||||||
|
|
||||||
|
@figure{sample_overview_qt_xde.png,"",240} height=440px
|
||||||
|
|
||||||
|
The **OCAF** section gives an introduction for the @ref intro_overview_ocaf "Open CASCADE Application Framework" functionality.
|
||||||
|
To test these functions, create an object first (box or cylinder).
|
||||||
|
After that, the object may be modified and saved. Actions are recorded and may be undone or redone.
|
||||||
|
|
||||||
|
@figure{sample_overview_qt_ocaf.png,"",240} height=440px
|
||||||
|
|
||||||
|
**Viewers** section demonstrates examples of the 2D and 3D visualization outputs.
|
||||||
|
Check @ref occt_user_guides__visualization "Visualization" section of the documentation for a detailed description.
|
||||||
|
In addition to these two samples, there are much more that might be of use to a new user based on their particular use case.
|
||||||
|
|
||||||
|
Check Readme files in the sample directories to learn more about samples compilation.
|
||||||
|
|
||||||
|
**Note:** source code for OCCTOverview is stored at 'samples/qt/OCCTOverview/src' folder in your OCCT root,
|
||||||
|
and the source code files for examples presented in subsections are stored at 'samples/OCCTOverview/code folder'.
|
||||||
|
Several utility classes that are not presented in the example window may be found in example source code files.
|
||||||
|
|
||||||
|
The overall classes introduction may be found in the @ref occt_user_guides__foundation_classes "Foundation Classes" section of the documentation.
|
||||||
|
The "Introduction" section contains short descriptions of the most massive entries in the documentation.
|
||||||
|
|
||||||
|
@section helps Additional assistance
|
||||||
|
|
||||||
|
There are several places that may be of use for new users.
|
||||||
|
The first one is [Training & E-learning](https://dev.opencascade.org/resources/trainings) page that lists available trainings and describes their specifics.
|
||||||
|
|
||||||
|
The second one is the Overview documentation (this document is a part of it) - here you can find information that suits most of the use cases.
|
||||||
|
This may seem overwhelming at first, but if you have the clear understanding of what do you seek, you will most likely find the required information.
|
||||||
|
|
||||||
|
Aside from the Overview documentation itself, the [Reference manual](https://dev.opencascade.org/doc/refman/html/index.html) is present.
|
||||||
|
Use it to check classes descriptions, dependencies and examples.
|
||||||
|
Additionally, there is a [Forum](https://dev.opencascade.org/forums) where you can contact the OCCT community and developers.
|
@@ -1,4 +1,4 @@
|
|||||||
OCAF Usage {#samples__ocaf}
|
OCAF: Usage Tutorial {#samples__ocaf}
|
||||||
========
|
========
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Function Mechanism Usage {#samples__ocaf_func}
|
OCAF: Function Mechanism {#samples__ocaf_func}
|
||||||
========================
|
========================
|
||||||
|
|
||||||
Let us describe the usage of the "Function Mechanism" of Open CASCADE Application Framework on a simple example.
|
Let us describe the usage of the "Function Mechanism" of Open CASCADE Application Framework on a simple example.
|
||||||
|
@@ -1,176 +1,59 @@
|
|||||||
Tutorials and Samples {#samples}
|
Tutorials and Samples {#samples}
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Tutorial: Modelling a Bottle
|
- @subpage samples__tutorials
|
||||||
----------------------------
|
* @ref samples__novice_guide
|
||||||
The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object.
|
<br>A document providing an introductory information to newcomers.
|
||||||
The purpose of the tutorial is not to explain all OCCT classes but
|
* @ref samples__draw_scripts
|
||||||
to help start thinking in terms of the Open CASCADE Technology.
|
<br>A set of demo scripts demonstrating OCCT functionality from DRAW.
|
||||||
|
These scripts can be also considered as a tutorials on **Tcl** usage within @ref occt_user_guides__test_harness "Draw Harness".
|
||||||
|
* @ref occt__tutorial
|
||||||
|
<br>A programming tutorial teaching how to use OCCT services to model a 3D object.
|
||||||
|
See also @ref samples_qt_tutorial
|
||||||
|
* @ref samples__ocaf
|
||||||
|
<br>A set of code snippets performing typical actions with @ref occt_user_guides__ocaf "OCAF" services for newcomers.
|
||||||
|
* @ref samples__ocaf_func
|
||||||
|
<br>A simple example dedicated to the usage of "Function Mechanism" of @ref occt_user_guides__ocaf "OCCT Application Framework".
|
||||||
|
- @subpage samples__projects
|
||||||
|
* @ref samples_qt_iesample
|
||||||
|
<br>A cross-platform multi-document 3D Viewer sample with CAD import / export functionality based on **Qt Widgets** framework.
|
||||||
|
* @ref samples_qml_android_occt
|
||||||
|
<br>A cross-platform 3D Viewer sample with CAD import based on **QtQuick** framework.
|
||||||
|
* @ref samples_qt_tutorial
|
||||||
|
<br>A cross-platform sample application based on **Qt Widgets** framework and implementing @ref occt__tutorial.
|
||||||
|
* @ref samples_qt_overview
|
||||||
|
<br>A sample application interactively demonstrating OCCT C++ usage with code snippets for newcomers.
|
||||||
|
* @ref samples_mfc_standard
|
||||||
|
<br>A set of projects for Windows platform demonstrating OCCT usage based on **Microsoft Foundation Class** (**MFC**) library.
|
||||||
|
* @ref samples_csharp_occt
|
||||||
|
<br>A Multi-document 3D Viewer sample with CAD import / export functionality based on .NET and **Windows Forms** or **WPF**.
|
||||||
|
* @ref samples_csharp_direct3d
|
||||||
|
<br>3D Viewer sample wrapped into Direct3D context based on .NET and **Windows Presentation Foundation** (**WPF**).
|
||||||
|
* @ref occt_samples_webgl
|
||||||
|
<br>3D Viewer sample based on **Emscripten SDK** representing a static HTML page to be opened in Web Browser.
|
||||||
|
* @ref samples_java_android_occt
|
||||||
|
<br>3D Viewer sample with CAD import for Android mobile platform based on Android SDK and JNI layer.
|
||||||
|
* @ref occt_samples_ios_uikit
|
||||||
|
<br>3D Viewer sample for iOS platform based on Apple **UIKit** framework.
|
||||||
|
* @ref occt_samples_glfw
|
||||||
|
<br>A cross-platform 3D Viewer sample using **GLFW** library.
|
||||||
|
|
||||||
This tutorial assumes that the user has experience in using and setting up C++.
|
@page samples__tutorials Tutorials and Demos
|
||||||
From the viewpoint of programming, Open CASCADE Technology is designed
|
- @subpage samples__novice_guide
|
||||||
to enhance user's C++ tools with high performance modeling classes, methods and functions.
|
- @subpage samples__draw_scripts
|
||||||
The combination of these resources allows creating substantial applications.
|
- @subpage occt__tutorial
|
||||||
|
- @subpage samples__ocaf
|
||||||
|
- @subpage samples__ocaf_func
|
||||||
|
|
||||||
Read more about @subpage occt__tutorial
|
@page samples__projects Sample Projects
|
||||||
|
- @subpage samples_qt_iesample
|
||||||
MFC
|
- @subpage samples_qml_android_occt
|
||||||
---------
|
- @subpage samples_qt_tutorial
|
||||||
|
- @subpage samples_qt_overview
|
||||||
Visual C++ programming samples containing 10 Visual C++ projects
|
- @subpage samples_mfc_standard
|
||||||
illustrating how to use a particular module or functionality.
|
- @subpage samples_csharp_occt
|
||||||
|
- @subpage samples_csharp_direct3d
|
||||||
The list of MFC samples:
|
- @subpage occt_samples_webgl
|
||||||
|
- @subpage samples_java_android_occt
|
||||||
* Geometry
|
- @subpage occt_samples_ios_uikit
|
||||||
* Modeling
|
- @subpage occt_samples_glfw
|
||||||
* Viewer2d
|
|
||||||
* Viewer3d
|
|
||||||
* ImportExport
|
|
||||||
* Ocaf
|
|
||||||
* Triangulation
|
|
||||||
* HLR
|
|
||||||
* Animation
|
|
||||||
* Convert
|
|
||||||
|
|
||||||
@figure{/samples/images/samples_mvc.png}
|
|
||||||
|
|
||||||
**Remarks:**
|
|
||||||
|
|
||||||
* MFC samples are available only on Windows platform;
|
|
||||||
* To start a sample use Open CASCADE Technology\\Samples\\Mfc\\ item of the Start\\Programs menu;
|
|
||||||
* Read carefully readme.txt to learn about launching and compilation options.
|
|
||||||
|
|
||||||
See @subpage samples_mfc_standard "Readme" for details.
|
|
||||||
|
|
||||||
Qt
|
|
||||||
---
|
|
||||||
|
|
||||||
OCCT includes several samples based on Qt application framework.
|
|
||||||
These samples are available on all supported desktop platforms.
|
|
||||||
|
|
||||||
To start a sample on Windows use Open CASCADE Technology\\Samples\\Qt\\ item of the Start\\Programs menu.
|
|
||||||
|
|
||||||
Import Export
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Import Export programming sample contains 3D Viewer and Import / Export functionality.
|
|
||||||
|
|
||||||
@figure{/samples/images/samples_qt.png}
|
|
||||||
|
|
||||||
Tutorial
|
|
||||||
---------
|
|
||||||
|
|
||||||
The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object.
|
|
||||||
The purpose of the tutorial is not to explain all OCCT classes but
|
|
||||||
to help start thinking in terms of the Open CASCADE Technology.
|
|
||||||
|
|
||||||
This tutorial assumes that the user has experience in using and setting up C++.
|
|
||||||
From the viewpoint of programming, Open CASCADE Technology is designed
|
|
||||||
to enhance user's C++ tools with high performance modeling classes, methods and functions.
|
|
||||||
The combination of these resources allows creating substantial applications.
|
|
||||||
|
|
||||||
**See also:** @ref occt__tutorial "OCCT Tutorial"
|
|
||||||
|
|
||||||
Overview
|
|
||||||
---------
|
|
||||||
|
|
||||||
The Qt application providing samples for basic usage of C++ API of various OCCT functionality.
|
|
||||||
|
|
||||||
The samples are organized in several categories according to relevant module of OCCT:
|
|
||||||
|
|
||||||
* Geometry
|
|
||||||
* Topology,
|
|
||||||
* Triangulation
|
|
||||||
* DataExchange
|
|
||||||
* OCAF
|
|
||||||
* Viewer 2d
|
|
||||||
* Viewer 3d
|
|
||||||
|
|
||||||
Each sample presents geometry view, C++ code fragment and sample output window.
|
|
||||||
|
|
||||||
@figure{/samples/images/sample_overview_qt.png}
|
|
||||||
|
|
||||||
See \subpage samples_qt_overview "Readme" for details.
|
|
||||||
|
|
||||||
C#
|
|
||||||
---
|
|
||||||
|
|
||||||
C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality into .NET applications (using Windows Forms and WPF front ends).
|
|
||||||
|
|
||||||
@figure{/samples/images/samples_c__ie.png}
|
|
||||||
|
|
||||||
Import:
|
|
||||||
|
|
||||||
* BRep
|
|
||||||
* Iges
|
|
||||||
* Step
|
|
||||||
|
|
||||||
Export:
|
|
||||||
|
|
||||||
* Brep
|
|
||||||
* Iges
|
|
||||||
* Step
|
|
||||||
* Stl
|
|
||||||
* Vrml
|
|
||||||
|
|
||||||
See @subpage samples_csharp_occt "C# sample Readme" for details.
|
|
||||||
|
|
||||||
There is also another C# example with the same functionality, which demonstrates the integration of Direct3D Viewer into .NET applications using WPF front end.
|
|
||||||
|
|
||||||
See @subpage samples_csharp_direct3d "Direct3D C# sample Readme" for details.
|
|
||||||
|
|
||||||
Android
|
|
||||||
---------
|
|
||||||
|
|
||||||
There are two samples are representing usage OCCT framework on Android mobile platform. They represent an OCCT-based 3D-viewer with CAD import support in formats BREP, STEP and IGES: jniviewer (java) and AndroidQt (qt+qml)
|
|
||||||
|
|
||||||
jniviewer
|
|
||||||
@figure{/samples/images/samples_java_android_occt.jpg}
|
|
||||||
Java -- See @subpage samples_java_android_occt "Android Java sample Readme" for details.
|
|
||||||
|
|
||||||
AndroidQt
|
|
||||||
@figure{/samples/images/samples_qml_android_occt.jpg}
|
|
||||||
Qt -- See \subpage samples_qml_android_occt "Android Qt sample Readme" for details.
|
|
||||||
|
|
||||||
iOS
|
|
||||||
---
|
|
||||||
|
|
||||||
There is a sample demonstrating usage of OCCT on iOS with Apple UIKit framework.
|
|
||||||
|
|
||||||
@figure{/samples/images/sample_ios_uikit.png}
|
|
||||||
|
|
||||||
See @subpage occt_samples_ios_uikit "iOS sample Readme" for details.
|
|
||||||
|
|
||||||
Web
|
|
||||||
---------
|
|
||||||
|
|
||||||
WebGL Viewer sample demonstrating usage of OCCT 3D Viewer in Web browser with Emscripten SDK can be found in `samples/webgl`.
|
|
||||||
|
|
||||||
@figure{/samples/images/sample_webgl.png}
|
|
||||||
|
|
||||||
See @subpage occt_samples_webgl "WebGL sample Readme" for details.
|
|
||||||
|
|
||||||
OCAF Usage Sample
|
|
||||||
------------------
|
|
||||||
|
|
||||||
The provided set of samples dedicates to get initial knowledge about typical actions with OCAF services. It may be
|
|
||||||
useful for newcomers.
|
|
||||||
|
|
||||||
Read more about @subpage samples__ocaf
|
|
||||||
|
|
||||||
OCAF Function Mechanism Usage
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
This simple example dedicates to the usage of "Function Mechanism" of OCCT Application Framework. It represents a "nail"
|
|
||||||
composed by a cone and two cylinders of different radius and height.
|
|
||||||
|
|
||||||
Read more about @subpage samples__ocaf_func
|
|
||||||
|
|
||||||
Draw Demo Scripts
|
|
||||||
------------------
|
|
||||||
|
|
||||||
A set of demo scripts demonsrates using OCCT functionality from DRAW. These scripts can be also considered as a
|
|
||||||
tutorials on tcl usage within Draw.
|
|
||||||
|
|
||||||
Read more about @subpage samples__draw_scripts
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Tutorial {#occt__tutorial}
|
Modeling: Bottle Tutorial {#occt__tutorial}
|
||||||
=======
|
=======
|
||||||
|
|
||||||
@tableofcontents
|
@tableofcontents
|
||||||
|
@@ -2293,3 +2293,31 @@ void Perform(const Handle(Adaptor3d_CurveOnSurface)& theCurveOnSurface,
|
|||||||
- *BRepAlgo_Cut*
|
- *BRepAlgo_Cut*
|
||||||
- *BRepAlgo_Section*
|
- *BRepAlgo_Section*
|
||||||
The corresponding classes from the *BRepAlgoAPI* package have to be used instead.
|
The corresponding classes from the *BRepAlgoAPI* package have to be used instead.
|
||||||
|
|
||||||
|
@section upgrade_occt770 Upgrade to OCCT 7.7.0
|
||||||
|
|
||||||
|
Building OCCT now requires C++11-compliant compiler, so that some legacy compilers (Visual Studio 2010 and 2012) are no more supported.
|
||||||
|
It is recommended using Visual Studio 2015 or newer for building OCCT on Windows platform.
|
||||||
|
|
||||||
|
@subsection upgrade_occt770_parallel_flag_removed Removed parameter theIsParallel from Put/Compute/Perform
|
||||||
|
|
||||||
|
theIsParallel parameter has been removed from Put/Compute/Perform from the next classes:
|
||||||
|
- BRepCheck_Analyzer
|
||||||
|
- BRepCheck_Edge
|
||||||
|
- BRepLib_ValidateEdge
|
||||||
|
- GeomLib_CheckCurveOnSurface
|
||||||
|
- BRepLib_CheckCurveOnSurface
|
||||||
|
|
||||||
|
Now, to set this flag, it is necessary to use method SetParallel()
|
||||||
|
For example:
|
||||||
|
~~~~{.cpp}
|
||||||
|
BRepLib_ValidateEdge aValidateEdge(myHCurve, ACS, SameParameter);
|
||||||
|
aValidateEdge.SetParallel(toRunParallel);
|
||||||
|
aValidateEdge.Process();
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
@subsection upgrade_occt770_drawer_aspects Prs3d_Drawer aspects
|
||||||
|
|
||||||
|
`Prs3d_Drawer` getters no more implicitly create "default" aspects.
|
||||||
|
If specific property has not been set before to this drawer instance nor to linked drawer instance, then NULL property will be returned.
|
||||||
|
Make sure to set property beforehand or to call `SetOwn*` / `SetupOwn*` methods to derive from defaults.
|
||||||
|
@@ -1837,7 +1837,7 @@ bool areEqualAngles (double theAngle1, double theAngle2)
|
|||||||
{
|
{
|
||||||
return Abs(theAngle1 - theAngle2) < Precision::Angular();
|
return Abs(theAngle1 - theAngle2) < Precision::Angular();
|
||||||
}
|
}
|
||||||
~~~
|
~~~~
|
||||||
|
|
||||||
It is also possible to check parallelism of two vectors as follows:
|
It is also possible to check parallelism of two vectors as follows:
|
||||||
~~~~{.cpp}
|
~~~~{.cpp}
|
||||||
@@ -1845,7 +1845,7 @@ bool areParallelVectors (const gp_Vec& theVec1, const gp_Vec& theVec2)
|
|||||||
{
|
{
|
||||||
return theVec1.IsParallel (theVec2, Precision::Angular());
|
return theVec1.IsParallel (theVec2, Precision::Angular());
|
||||||
}
|
}
|
||||||
~~~
|
~~~~
|
||||||
|
|
||||||
Note that *Precision::Angular()* can be used on both dot and cross products because for small angles the *Sine* and the *Angle* are equivalent.
|
Note that *Precision::Angular()* can be used on both dot and cross products because for small angles the *Sine* and the *Angle* are equivalent.
|
||||||
So to test if two directions of type *gp_Dir* are perpendicular, it is legal to use the following code:
|
So to test if two directions of type *gp_Dir* are perpendicular, it is legal to use the following code:
|
||||||
@@ -1854,7 +1854,7 @@ bool arePerpendicular (const gp_Dir& theDir1, const gp_Dir& theDir2)
|
|||||||
{
|
{
|
||||||
return Abs(theDir1 * theDir2) < Precision::Angular();
|
return Abs(theDir1 * theDir2) < Precision::Angular();
|
||||||
}
|
}
|
||||||
~~~
|
~~~~
|
||||||
|
|
||||||
#### Precision::Confusion
|
#### Precision::Confusion
|
||||||
|
|
||||||
@@ -1875,7 +1875,7 @@ bool isNullVector (const gp_Vec& theVec)
|
|||||||
{
|
{
|
||||||
return theVec.Magnitude() < Precision::Confusion();
|
return theVec.Magnitude() < Precision::Confusion();
|
||||||
}
|
}
|
||||||
~~~
|
~~~~
|
||||||
|
|
||||||
#### Precision::Intersection
|
#### Precision::Intersection
|
||||||
|
|
||||||
|
@@ -2,41 +2,21 @@
|
|||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
width="500"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
height="240"
|
||||||
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="492.48849"
|
|
||||||
height="306.85541"
|
|
||||||
id="svg2"
|
id="svg2"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
inkscape:version="0.48.4 r9939"
|
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||||
sodipodi:docname="shape_heal.svg">
|
sodipodi:docname="shape_healing_image009.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
<defs
|
<defs
|
||||||
id="defs4">
|
id="defs4">
|
||||||
<clipPath
|
|
||||||
id="clipEmfPath1"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
id="rect3045"
|
|
||||||
height="188.43307"
|
|
||||||
width="602.36218"
|
|
||||||
y="0"
|
|
||||||
x="0" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipEmfPath2"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
id="rect3048"
|
|
||||||
height="168.77963"
|
|
||||||
width="461.37103"
|
|
||||||
y="13.50237"
|
|
||||||
x="1.4999058" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
<clipPath
|
||||||
id="clipEmfPath1-1"
|
id="clipEmfPath1-1"
|
||||||
clipPathUnits="userSpaceOnUse">
|
clipPathUnits="userSpaceOnUse">
|
||||||
@@ -115,9 +95,9 @@
|
|||||||
borderopacity="1.0"
|
borderopacity="1.0"
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="1"
|
inkscape:zoom="2.8284271"
|
||||||
inkscape:cx="346.95854"
|
inkscape:cx="260.39207"
|
||||||
inkscape:cy="41.972723"
|
inkscape:cy="156.2706"
|
||||||
inkscape:document-units="px"
|
inkscape:document-units="px"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer1"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
@@ -129,7 +109,9 @@
|
|||||||
fit-margin-top="0"
|
fit-margin-top="0"
|
||||||
fit-margin-left="0"
|
fit-margin-left="0"
|
||||||
fit-margin-right="0"
|
fit-margin-right="0"
|
||||||
fit-margin-bottom="0" />
|
fit-margin-bottom="0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
width="500px" />
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata7">
|
id="metadata7">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
@@ -138,7 +120,6 @@
|
|||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -159,240 +140,324 @@
|
|||||||
id="g3033" />
|
id="g3033" />
|
||||||
<g
|
<g
|
||||||
id="g3209" />
|
id="g3209" />
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="77.124359"
|
|
||||||
y="50.336628"
|
|
||||||
style="font-size:19.95194054px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
|
||||||
id="text3245"> </text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="384.65424"
|
|
||||||
y="50.336628"
|
|
||||||
style="font-size:19.95194054px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
|
||||||
id="text3249"> </text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="384.35422"
|
|
||||||
y="74.039337"
|
|
||||||
style="font-size:12.45121098px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
|
||||||
id="text3253"> </text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="43.821121"
|
|
||||||
y="95.941833"
|
|
||||||
style="font-size:12.45121098px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
|
||||||
id="text3255"> </text>
|
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
clip-path="url(#clipEmfPath1-1)"
|
clip-path="url(#clipEmfPath1-1)"
|
||||||
d="m -0.00937591,136.00926 0,21.24618 141.76378591,0 0,-21.24618 -141.76378591,0 z"
|
d="m -0.00937591,136.00926 v 21.24618 H 141.75441 v -21.24618 z"
|
||||||
id="path3257"
|
id="path3257"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(32.519633,-72.118896)" />
|
||||||
|
<g
|
||||||
|
id="g3196">
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 28.510257,137.89036 0,21.24618 141.763783,0 0,-21.24618 z"
|
d="M 32.510257,63.89036 V 85.13654 H 174.27404 V 63.89036 Z"
|
||||||
id="path3259" />
|
id="path3259" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="74.574112"
|
x="78.230995"
|
||||||
y="153.24837"
|
y="77.499275"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3261">ShapeFix</text>
|
id="text3261">ShapeFix</text>
|
||||||
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="124.52896"
|
x="128.52896"
|
||||||
y="153.24837"
|
y="79.248367"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3263"> </text>
|
id="text3263"> </text>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
clip-path="url(#clipEmfPath2-7)"
|
clip-path="url(#clipEmfPath2-7)"
|
||||||
d="m 176.82969,136.00926 0,21.24618 141.76378,0 0,-21.24618 -141.76378,0 z"
|
d="m 176.82969,136.00926 v 21.24618 h 141.76378 v -21.24618 z"
|
||||||
id="path3265"
|
id="path3265"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(28.519633,1.8811043)" />
|
||||||
|
<g
|
||||||
|
id="g3188"
|
||||||
|
transform="translate(-1.45134)">
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 205.34932,137.89036 0,21.24618 141.76378,0 0,-21.24618 z"
|
d="M 208.41918,63.89036 V 85.13654 H 350.18296 V 63.89036 Z"
|
||||||
id="path3267" />
|
id="path3267" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="236.58987"
|
x="239.62212"
|
||||||
y="153.24837"
|
y="77.42511"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3269">ShapeUpgrade</text>
|
id="text3269">ShapeUpgrade</text>
|
||||||
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="315.94757"
|
x="319.94757"
|
||||||
y="153.24837"
|
y="79.248367"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3271"> </text>
|
id="text3271"> </text>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
clip-path="url(#clipEmfPath3)"
|
clip-path="url(#clipEmfPath3)"
|
||||||
d="m 349.77776,135.82174 0,21.24617 141.76378,0 0,-21.24617 -141.76378,0 z"
|
d="m 349.77776,135.82174 v 21.24617 h 141.76378 v -21.24617 z"
|
||||||
id="path3273"
|
id="path3273"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(28.519633,1.8811043)" />
|
||||||
|
<g
|
||||||
|
id="g3192">
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 378.29739,137.70284 0,21.24617 141.76378,0 0,-21.24617 z"
|
d="M 382.29739,63.70284 V 84.94901 H 524.06117 V 63.70284 Z"
|
||||||
id="path3275" />
|
id="path3275" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="411.35684"
|
x="415.51996"
|
||||||
y="152.94833"
|
y="77.311752"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3277">ShapeCustom</text>
|
id="text3277">ShapeCustom</text>
|
||||||
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="486.9642"
|
x="490.9642"
|
||||||
y="152.94833"
|
y="78.948334"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3279"> </text>
|
id="text3279"> </text>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
clip-path="url(#clipEmfPath4)"
|
clip-path="url(#clipEmfPath4)"
|
||||||
d="m 174.44821,271.3997 0,21.24618 141.76378,0 0,-21.24618 -141.76378,0 z"
|
d="m 174.44821,271.3997 v 21.24618 H 316.21199 V 271.3997 Z"
|
||||||
id="path3281"
|
id="path3281"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(28.519633,1.8811043)" />
|
||||||
|
<g
|
||||||
|
id="g3180"
|
||||||
|
transform="translate(0,-5.3756104)">
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 202.96784,273.2808 0,21.24618 141.76378,0 0,-21.24618 z"
|
d="m 206.96784,199.2808 v 21.24618 H 348.73162 V 199.2808 Z"
|
||||||
id="path3283" />
|
id="path3283" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="238.39005"
|
x="242.36592"
|
||||||
y="288.56381"
|
y="212.88971"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3285">ShapeExtend</text>
|
id="text3285">ShapeExtend</text>
|
||||||
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="309.64694"
|
x="313.64694"
|
||||||
y="288.56381"
|
y="214.56381"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3287"> </text>
|
id="text3287"> </text>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
clip-path="url(#clipEmfPath5)"
|
clip-path="url(#clipEmfPath5)"
|
||||||
d="m 175.3858,208.95508 0,21.24617 141.76378,0 0,-21.24617 -141.76378,0 z"
|
d="m 175.3858,208.95508 v 21.24617 h 141.76378 v -21.24617 z"
|
||||||
id="path3289"
|
id="path3289"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(28.519633,1.8811043)" />
|
||||||
|
<g
|
||||||
|
id="g3184"
|
||||||
|
transform="translate(-0.93759,-7.9384003)">
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 203.90543,210.83618 0,21.24617 141.76378,0 0,-21.24617 z"
|
d="m 207.90543,136.83618 v 21.24617 h 141.76378 v -21.24617 z"
|
||||||
id="path3291" />
|
id="path3291" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="234.78969"
|
x="238.83438"
|
||||||
y="226.15668"
|
y="150.37093"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3293">ShapeAnalysis</text>
|
id="text3293">ShapeAnalysis</text>
|
||||||
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="314.89746"
|
x="318.89746"
|
||||||
y="226.15668"
|
y="152.15668"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3295"> </text>
|
id="text3295"> </text>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:0.937591px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||||
clip-path="url(#clipEmfPath6)"
|
clip-path="url(#clipEmfPath6)"
|
||||||
d="m 74.257219,158.83061 0,182.75835"
|
d="M 74.257219,158.83061 V 341.58896"
|
||||||
id="path3297"
|
id="path3297"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(28.519633,1.8811043)" />
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 103.83926,342.96989 92.18396,0 c 0.35629,0 0.63756,0.28128 0.63756,0.63757 0,0.33754 -0.28127,0.61882 -0.63756,0.61882 l -92.18396,0 c -0.35628,0 -0.63756,-0.28128 -0.63756,-0.61882 0,-0.35629 0.28128,-0.63757 0.63756,-0.63757 z m 90.94634,-3.11286 7.50073,3.75043 -7.50073,3.75043 z"
|
d="m 206.03025,258.9126 v 21.24618 H 347.79403 V 258.9126 Z"
|
||||||
id="path3299" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 103.70507,285.15091 94.06852,0 c 0.3469,0 0.62818,0.28128 0.62818,0.62819 0,0.34692 -0.28128,0.6282 -0.62818,0.6282 l -94.06852,0 c -0.34691,0 -0.62819,-0.28128 -0.62819,-0.6282 0,-0.34691 0.28128,-0.62819 0.62819,-0.62819 z m 92.82152,-3.12223 7.50073,3.75042 -7.50073,3.75043 z"
|
|
||||||
id="path3301" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 104.38951,221.9562 91.26512,0 c 0.34691,0 0.61881,0.28128 0.61881,0.6282 0,0.34691 -0.2719,0.62819 -0.61881,0.62819 l -91.26512,0 c -0.33753,0 -0.61881,-0.28128 -0.61881,-0.62819 0,-0.34692 0.28128,-0.6282 0.61881,-0.6282 z m 90.00875,-3.12223 7.50073,3.75043 -7.50073,3.75042 z"
|
|
||||||
id="path3303" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 276.34372,233.58253 0,33.00376 c 0,0.34691 -0.2719,0.6282 -0.61881,0.6282 -0.3469,0 -0.62818,-0.28129 -0.62818,-0.6282 l 0,-33.00376 c 0,-0.33754 0.28128,-0.61882 0.62818,-0.61882 0.34691,0 0.61881,0.28128 0.61881,0.61882 z m 3.13156,31.75674 -3.75037,7.50086 -3.75036,-7.50086 z"
|
|
||||||
id="path3305" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 453.74242,160.71171 0,59.06924"
|
|
||||||
id="path3307" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 452.98619,220.39977 -100.62228,0 c -0.35629,0 -0.63757,-0.28128 -0.63757,-0.61882 0,-0.35629 0.28128,-0.63757 0.63757,-0.63757 l 100.62228,0 c 0.35628,0 0.63756,0.28128 0.63756,0.63757 0,0.33754 -0.28128,0.61882 -0.63756,0.61882 z m -99.38466,3.13161 -7.50073,-3.75043 7.50073,-3.75043 z"
|
|
||||||
id="path3309" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 275.65928,158.82712 0,47.18976 c 0,0.34692 -0.28127,0.6282 -0.62818,0.6282 -0.33754,0 -0.61881,-0.28128 -0.61881,-0.6282 l 0,-47.18976 c 0,-0.34691 0.28127,-0.62819 0.61881,-0.62819 0.34691,0 0.62818,0.28128 0.62818,0.62819 z m 3.12218,45.94274 -3.75036,7.50086 -3.75037,-7.50086 z"
|
|
||||||
id="path3311" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
|
||||||
d="m 202.03025,332.9126 0,21.24618 141.76378,0 0,-21.24618 -141.76378,0 z"
|
|
||||||
id="path3313" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:0.93759114px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 202.03025,332.9126 0,21.24618 141.76378,0 0,-21.24618 z"
|
|
||||||
id="path3315" />
|
id="path3315" />
|
||||||
|
<g
|
||||||
|
id="g3176"
|
||||||
|
transform="translate(0.43759)">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
|
d="m 206.03025,258.9126 v 21.24618 H 347.79403 V 258.9126 Z"
|
||||||
|
id="path3313" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="249.19109"
|
x="252.97264"
|
||||||
y="348.2706"
|
y="272.37869"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3317">Message</text>
|
id="text3317">Message</text>
|
||||||
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
x="296.7457"
|
x="300.7457"
|
||||||
y="348.2706"
|
y="274.2706"
|
||||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
style="font-style:normal;font-weight:bold;font-size:11.2511px;line-height:0%;font-family:Arial;text-align:start;text-anchor:start;fill:#000000"
|
||||||
id="text3319"> </text>
|
id="text3319"> </text>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.150015px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-dasharray:none;stroke-opacity:1"
|
||||||
clip-path="url(#clipEmfPath7)"
|
clip-path="url(#clipEmfPath7)"
|
||||||
d="m 174.31695,148.19815 -25.62437,0 c -0.34691,0 -0.62818,-0.28128 -0.62818,-0.62819 0,-0.34692 0.28127,-0.6282 0.62818,-0.6282 l 25.62437,0 c 0.34691,0 0.62818,0.28128 0.62818,0.6282 0,0.34691 -0.28127,0.62819 -0.62818,0.62819 z m -24.37737,3.12223 -7.50073,-3.75042 7.50073,-3.75043 z"
|
d="m 174.31695,148.19815 h -25.62437 c -0.34691,0 -0.62818,-0.28128 -0.62818,-0.62819 0,-0.34692 0.28127,-0.6282 0.62818,-0.6282 h 25.62437 c 0.34691,0 0.62818,0.28128 0.62818,0.6282 0,0.34691 -0.28127,0.62819 -0.62818,0.62819 z m -24.37737,3.12223 -7.50073,-3.75042 7.50073,-3.75043 z"
|
||||||
id="path3321"
|
id="path3321"
|
||||||
transform="translate(28.519633,1.8811043)" />
|
transform="translate(28.519633,1.8811043)" />
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.15001458px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 277.91888,297.09602 0,33.00376 c 0,0.35629 -0.28128,0.61882 -0.63756,0.61882 -0.33754,0 -0.61881,-0.26253 -0.61881,-0.61882 l 0,-33.00376 c 0,-0.33754 0.28127,-0.61882 0.61881,-0.61882 0.35628,0 0.63756,0.28128 0.63756,0.61882 z m 3.1128,31.74737 -3.75036,7.50086 -3.75037,-7.50086 z"
|
|
||||||
id="path3323" />
|
|
||||||
<g
|
<g
|
||||||
id="g3389"
|
id="path2302">
|
||||||
transform="translate(103.61121,159.85132)">
|
|
||||||
<text
|
|
||||||
id="text3391"
|
|
||||||
style="font-size:21.59645653px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
|
|
||||||
y="197.34073"
|
|
||||||
x="-0.70423234"
|
|
||||||
xml:space="preserve"> </text>
|
|
||||||
<path
|
<path
|
||||||
id="path3393"
|
id="path1187"
|
||||||
d="m 0.74824682,0.41458137 0,183.67838863"
|
style="color:#000000;fill:#000000;fill-rule:evenodd;-inkscape-stroke:none"
|
||||||
style="fill:none;stroke:#000000;stroke-width:1.46715069px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
|
d="M 74.851562 35.234375 L 74.851562 219.70703 L 74.894531 219.70703 L 74.894531 219.70898 L 176.75 219.70898 L 176.75 218.70898 L 75.851562 218.70898 L 75.851562 154.70117 L 176.75 154.70117 L 176.75 153.70117 L 75.851562 153.70117 L 75.851562 89.695312 L 176.75 89.695312 L 176.75 88.695312 L 75.851562 88.695312 L 75.851562 35.234375 L 74.851562 35.234375 z "
|
||||||
inkscape:connector-curvature="0" />
|
transform="translate(28.041461,50.336628)" />
|
||||||
|
<g
|
||||||
|
id="g1177">
|
||||||
|
<g
|
||||||
|
id="path1179">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 199.56031,267.12506 6.55552,2.41063 -6.55552,2.41063 c 1.0473,-1.42323 1.04126,-3.37047 0,-4.82126 z"
|
||||||
|
id="path1183" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 199.625,266.94922 a 0.18751875,0.18751875 0 0 0 -0.2168,0.28515 c 0.99512,1.38651 1.00066,3.24437 0.002,4.60157 a 0.18751875,0.18751875 0 0 0 0.21484,0.28711 l 6.55469,-2.41211 a 0.18751875,0.18751875 0 0 0 0,-0.35157 z m 0.22266,0.48047 5.72461,2.10547 -5.72461,2.10546 c 0.76265,-1.31366 0.76042,-2.88007 0,-4.21093 z"
|
||||||
|
id="path1185" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="path2304">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;-inkscape-stroke:none"
|
||||||
|
d="m 278.79102,84.96875 v 43.67969 h 1 V 84.96875 Z"
|
||||||
|
id="path1113" />
|
||||||
|
<g
|
||||||
|
id="g1103">
|
||||||
|
<g
|
||||||
|
id="path1105">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 281.7117,123.41665 -2.41063,6.55552 -2.41063,-6.55552 c 1.42323,1.0473 3.37047,1.04126 4.82126,0 z"
|
||||||
|
id="path1109" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 281.75391,123.23438 a 0.18751875,0.18751875 0 0 0 -0.15235,0.0293 c -1.3865,0.99512 -3.24241,1.00066 -4.59961,0.002 a 0.18751875,0.18751875 0 0 0 -0.28711,0.21484 l 2.41016,6.55664 a 0.18751875,0.18751875 0 0 0 0.35156,0 l 2.41016,-6.55664 a 0.18751875,0.18751875 0 0 0 -0.13281,-0.24609 z m -0.34766,0.46875 -2.10547,5.72656 -2.10547,-5.72461 c 1.3136,0.76271 2.88007,0.75835 4.21094,-0.002 z"
|
||||||
|
id="path1111" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="path2820">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;-inkscape-stroke:none"
|
||||||
|
d="m 278.79102,149.77148 v 42.79688 h 1 v -42.79688 z"
|
||||||
|
id="path1127" />
|
||||||
|
<g
|
||||||
|
id="g1117">
|
||||||
|
<g
|
||||||
|
id="path1119">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 281.7117,187.3376 -2.41063,6.55552 -2.41063,-6.55552 c 1.42323,1.0473 3.37047,1.04126 4.82126,0 z"
|
||||||
|
id="path1123" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 281.75391,187.1543 a 0.18751875,0.18751875 0 0 0 -0.15235,0.0312 c -1.3865,0.99512 -3.24241,1.00066 -4.59961,0.002 a 0.18751875,0.18751875 0 0 0 -0.28711,0.21484 l 2.41016,6.55469 a 0.18751875,0.18751875 0 0 0 0.35156,0 l 2.41016,-6.55469 a 0.18751875,0.18751875 0 0 0 -0.13281,-0.24804 z m -4.5586,0.4707 c 1.31362,0.76277 2.88004,0.76032 4.21094,0 l -2.10547,5.72461 z"
|
||||||
|
id="path1125" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="path3035">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;-inkscape-stroke:none"
|
||||||
|
d="m 278.79102,215.0293 v 42.79882 h 1 V 215.0293 Z"
|
||||||
|
id="path1141" />
|
||||||
|
<g
|
||||||
|
id="g1131">
|
||||||
|
<g
|
||||||
|
id="path1133">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 281.7117,252.59679 -2.41063,6.55552 -2.41063,-6.55552 c 1.42323,1.0473 3.37047,1.04126 4.82126,0 z"
|
||||||
|
id="path1137" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 281.75391,252.41406 a 0.18751875,0.18751875 0 0 0 -0.15235,0.0312 c -1.3865,0.99512 -3.24241,0.99871 -4.59961,0 a 0.18751875,0.18751875 0 0 0 -0.28711,0.2168 l 2.41016,6.55469 a 0.18751875,0.18751875 0 0 0 0.35156,0 l 2.41016,-6.55469 a 0.18751875,0.18751875 0 0 0 -0.13281,-0.24805 z m -4.5586,0.47071 c 1.31358,0.76269 2.88008,0.76025 4.21094,0 l -2.10547,5.7246 z"
|
||||||
|
id="path1139" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="path4154">
|
||||||
|
<g
|
||||||
|
id="g1163">
|
||||||
|
<g
|
||||||
|
id="path1165">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 199.56031,202.11765 6.55552,2.41063 -6.55552,2.41063 c 1.0473,-1.42323 1.04126,-3.37047 0,-4.82126 z"
|
||||||
|
id="path1169" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 199.625,201.94141 a 0.18751875,0.18751875 0 0 0 -0.2168,0.28515 c 0.99512,1.3865 1.00066,3.24437 0.002,4.60156 a 0.18751875,0.18751875 0 0 0 0.21484,0.28711 l 6.55469,-2.41015 a 0.18751875,0.18751875 0 0 0 0,-0.35352 z m 0.22266,0.48046 5.72265,2.10547 -5.72265,2.10743 c 0.76282,-1.31371 0.76047,-2.88194 0,-4.2129 z"
|
||||||
|
id="path1171" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="path4236">
|
||||||
|
<g
|
||||||
|
id="g1145">
|
||||||
|
<g
|
||||||
|
id="path1147">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 199.56031,137.11023 6.55552,2.41063 -6.55552,2.41063 c 1.0473,-1.42323 1.04126,-3.37047 0,-4.82126 z"
|
||||||
|
id="path1151" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 199.625,136.93359 a 0.18751875,0.18751875 0 0 0 -0.2168,0.28516 c 0.99512,1.3865 1.00066,3.24437 0.002,4.60156 a 0.18751875,0.18751875 0 0 0 0.21484,0.28711 l 6.55469,-2.41015 a 0.18751875,0.18751875 0 0 0 0,-0.35157 z m 0.22266,0.48243 5.72461,2.10546 -5.72461,2.10547 c 0.7625,-1.31316 0.75952,-2.88028 0,-4.21093 z"
|
||||||
|
id="path1153" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="path4396">
|
||||||
|
<path
|
||||||
|
id="path958"
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;-inkscape-stroke:none"
|
||||||
|
d="M 424.63867 35.234375 L 424.63867 88.695312 L 321.84375 88.695312 L 321.84375 89.695312 L 425.64453 89.695312 L 425.64453 88.695312 L 425.63867 88.695312 L 425.63867 35.234375 L 424.63867 35.234375 z "
|
||||||
|
transform="translate(28.041461,50.336628)" />
|
||||||
|
<g
|
||||||
|
id="g948">
|
||||||
|
<g
|
||||||
|
id="path950">
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:0.375;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 355.11503,141.95071 -6.55552,-2.41063 6.55552,-2.41063 c -1.0473,1.42323 -1.04126,3.37047 0,4.82126 z"
|
||||||
|
id="path954" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:none"
|
||||||
|
d="m 355.05078,136.95312 -6.55664,2.41016 a 0.18751875,0.18751875 0 0 0 0,0.35352 l 6.55664,2.41015 a 0.18751875,0.18751875 0 0 0 0.2168,-0.28515 c -0.99512,-1.3865 -1.00066,-3.24437 -0.002,-4.60157 a 0.18751875,0.18751875 0 0 0 -0.21484,-0.28711 z m -0.22266,0.48047 c -0.76281,1.31371 -0.76047,2.88194 0,4.21289 l -5.72265,-2.10742 z"
|
||||||
|
id="path956" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 19 KiB |
@@ -1,8 +1,9 @@
|
|||||||
OCCT CSharp sample {#samples_csharp_occt}
|
.NET: Import/Export (C#|C++/CLI|WinForms|WPF) {#samples_csharp_occt}
|
||||||
==================
|
==================
|
||||||
|
|
||||||
This sample demonstrates how to use OCCT libraries in <b>.Net</b> application
|
This sample demonstrates how to use OCCT libraries in <b>.Net</b> application
|
||||||
written using **CSharp** and **Windows Forms** or **Windows Presentation Foundation** (WPF).
|
written using **CSharp** and **Windows Forms** or **Windows Presentation Foundation** (WPF).
|
||||||
|
The sample could be found within OCCT repository in folder `/samples/CSharp/`.
|
||||||
|
|
||||||
The connection between .Net and OCCT (C++) level is provided by proxy library
|
The connection between .Net and OCCT (C++) level is provided by proxy library
|
||||||
**OCCProxy**, written in C++/CLI. The proxy library contains a single *ref* class
|
**OCCProxy**, written in C++/CLI. The proxy library contains a single *ref* class
|
||||||
@@ -14,6 +15,8 @@ Both applications provide the same functionality as the standard OCCT Import/Exp
|
|||||||
The first project is called *IE_WinForms* and uses Windows Forms for GUI.
|
The first project is called *IE_WinForms* and uses Windows Forms for GUI.
|
||||||
The second application is called *IE_WPF_WinForms* and uses Windows Presentation Foundation.
|
The second application is called *IE_WPF_WinForms* and uses Windows Presentation Foundation.
|
||||||
|
|
||||||
|
@figure{samples_c__ie.png}
|
||||||
|
|
||||||
Note a few important details:
|
Note a few important details:
|
||||||
|
|
||||||
- OCCT template class *NCollection_Haft* is used to encapsulate C++ class into a field of *ref* class;
|
- OCCT template class *NCollection_Haft* is used to encapsulate C++ class into a field of *ref* class;
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
Direct3D CSharp sample {#samples_csharp_direct3d}
|
.NET: D3D/OpenGL Viewer (C#|C++/CLI|WPF) {#samples_csharp_direct3d}
|
||||||
==================
|
==================
|
||||||
|
|
||||||
This sample demonstrates how to use OCCT and DirectX libraries in <b>.Net</b> application
|
This sample demonstrates how to use OCCT and DirectX libraries in <b>.Net</b> application
|
||||||
written using **CSharp** and **Windows Presentation Foundation** (WPF).
|
written using **CSharp** and **Windows Presentation Foundation** (WPF).
|
||||||
|
The sample could be found within OCCT repository in folder `/samples/CSharp/`.
|
||||||
|
|
||||||
The connection between .Net, OCCT (C++) and DirectX level is provided by proxy libraries,
|
The connection between .Net, OCCT (C++) and DirectX level is provided by proxy libraries,
|
||||||
**OCCProxy** and **D3DProxy**, written in C++/CLI. The proxy library **OCCProxy** contains a single
|
**OCCProxy** and **D3DProxy**, written in C++/CLI. The proxy library **OCCProxy** contains a single
|
||||||
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
@@ -311,7 +311,7 @@ void OcafSamples::ModifyBoxOcafSample()
|
|||||||
Handle(TFunction_Function) aFunction;
|
Handle(TFunction_Function) aFunction;
|
||||||
if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
|
if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
|
||||||
{
|
{
|
||||||
myResult << "Object cannot be modify.";
|
myResult << "Object cannot be modified.";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Get the Standard_GUID of the TFunction_FunctionDriver of the selected object TFunction_Function attribute
|
// Get the Standard_GUID of the TFunction_FunctionDriver of the selected object TFunction_Function attribute
|
||||||
@@ -413,7 +413,7 @@ void OcafSamples::ModifyCylinderOcafSample()
|
|||||||
Handle(TFunction_Function) aFunction;
|
Handle(TFunction_Function) aFunction;
|
||||||
if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
|
if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
|
||||||
{
|
{
|
||||||
myResult << "Object cannot be modify.";
|
myResult << "Object cannot be modified.";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Get the Standard_GUID of the TFunction_FunctionDriver of the selected object TFunction_Function attribute
|
// Get the Standard_GUID of the TFunction_FunctionDriver of the selected object TFunction_Function attribute
|
||||||
|
@@ -1,4 +1,10 @@
|
|||||||
|
GLFW: 3D Viewer (C++|GLFW) {#occt_samples_glfw}
|
||||||
|
==================
|
||||||
|
|
||||||
A sample demonstrating usage of OCCT 3D Viewer within a window created using GLFW.
|
A sample demonstrating usage of OCCT 3D Viewer within a window created using GLFW.
|
||||||
|
|
||||||
|
Use CMake to build the sample.
|
||||||
|
|
||||||
Platforms: Windows, macOS, Linux
|
Platforms: Windows, macOS, Linux
|
||||||
|
|
||||||
Required: glfw
|
Required: glfw
|
||||||
|
@@ -1,12 +1,15 @@
|
|||||||
OCCT sample for iOS {#occt_samples_ios_uikit}
|
iOS: 3D Viewer (Objective-C++|UIKit) {#occt_samples_ios_uikit}
|
||||||
==================
|
==================
|
||||||
|
|
||||||
UIKitSample consists of the Open CASCADE 3D Viewer which provides import of STEP files and toolbar with three buttons.
|
UIKitSample consists of the Open CASCADE 3D Viewer which provides import of STEP files and toolbar with three buttons.
|
||||||
|
The sample could be found within OCCT repository in folder `/samples/ios/UIKitSample/`.
|
||||||
|
|
||||||
The first and second buttons serve for import hardcoded STEP files. The third button displays "About" dialog.
|
The first and second buttons serve for import hardcoded STEP files. The third button displays "About" dialog.
|
||||||
|
|
||||||
The viewer supports zoom, pan and rotate actions. The viewer supports selection of solids as well.
|
The viewer supports zoom, pan and rotate actions. The viewer supports selection of solids as well.
|
||||||
|
|
||||||
|
@figure{sample_ios_uikit.png}
|
||||||
|
|
||||||
Installation and configuration:
|
Installation and configuration:
|
||||||
1. Make sure you are running Mac OS version 10.12.1 or above and properly installed XCode version 8.1 or above.
|
1. Make sure you are running Mac OS version 10.12.1 or above and properly installed XCode version 8.1 or above.
|
||||||
2. Install Open CASCADE Technology (OCCT) and build static libraries for desired device or/and simulator on your workstation.
|
2. Install Open CASCADE Technology (OCCT) and build static libraries for desired device or/and simulator on your workstation.
|
||||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
@@ -1,7 +1,8 @@
|
|||||||
OCCT JniViewer sample for Android {#samples_java_android_occt}
|
Android: 3D Viewer (Java|C++|Android SDK|JNI) {#samples_java_android_occt}
|
||||||
==================
|
==================
|
||||||
|
|
||||||
This sample demonstrates simple way of using OCCT libraries in Android application written using Java.
|
This sample demonstrates simple way of using OCCT libraries in Android application written using Java.
|
||||||
|
The sample could be found within OCCT repository in folder `/samples/java/jniviewer/`.
|
||||||
|
|
||||||
The connection between Java and OCCT (C++) level is provided by proxy library, libTKJniSample.so, written in C++ with exported JNI methods of Java class OcctJniRenderer.
|
The connection between Java and OCCT (C++) level is provided by proxy library, libTKJniSample.so, written in C++ with exported JNI methods of Java class OcctJniRenderer.
|
||||||
The proxy library contains single C++ class OcctJni_Viewer encapsulating OCCT viewer and providing functionality to manipulate this viewer
|
The proxy library contains single C++ class OcctJni_Viewer encapsulating OCCT viewer and providing functionality to manipulate this viewer
|
||||||
@@ -13,6 +14,8 @@ and the code can be programmed on Java level similarly to C++ one.
|
|||||||
See description of OCCT Java Wrapper in Advanced Samples and Tools on OCCT web site at
|
See description of OCCT Java Wrapper in Advanced Samples and Tools on OCCT web site at
|
||||||
https://www.opencascade.com/content/advanced-samples-and-tools
|
https://www.opencascade.com/content/advanced-samples-and-tools
|
||||||
|
|
||||||
|
@figure{samples_java_android_occt.jpg}
|
||||||
|
|
||||||
Install Android Studio 4.0+ and install building tools (check Tools -> SDK Manager):
|
Install Android Studio 4.0+ and install building tools (check Tools -> SDK Manager):
|
||||||
- Android SDK (API level 21 or higher).
|
- Android SDK (API level 21 or higher).
|
||||||
- Android SDK build tools.
|
- Android SDK build tools.
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -983,6 +983,7 @@ if(NbResults>0){ \n\
|
|||||||
|
|
||||||
Handle(ISession_Surface) aSurface = new ISession_Surface(SP);
|
Handle(ISession_Surface) aSurface = new ISession_Surface(SP);
|
||||||
Handle(Prs3d_Drawer) CurDrawer = aSurface->Attributes();
|
Handle(Prs3d_Drawer) CurDrawer = aSurface->Attributes();
|
||||||
|
CurDrawer->SetOwnLineAspects();
|
||||||
CurDrawer->UIsoAspect()->SetNumber(10);
|
CurDrawer->UIsoAspect()->SetNumber(10);
|
||||||
CurDrawer->VIsoAspect()->SetNumber(10);
|
CurDrawer->VIsoAspect()->SetNumber(10);
|
||||||
aDoc->GetAISContext()->SetLocalAttributes(aSurface, CurDrawer, Standard_False);
|
aDoc->GetAISContext()->SetLocalAttributes(aSurface, CurDrawer, Standard_False);
|
||||||
|
@@ -51,7 +51,7 @@ ISession_Direction::ISession_Direction (const gp_Pnt2d& aPnt2d,
|
|||||||
myDir (gp_Dir(aDir2d.X(),aDir2d.Y(),0.0)),
|
myDir (gp_Dir(aDir2d.X(),aDir2d.Y(),0.0)),
|
||||||
myLength (aLength)
|
myLength (aLength)
|
||||||
{
|
{
|
||||||
myArrowLength = myDrawer->ArrowAspect()->Length();
|
myArrowLength = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ISession_Direction::ISession_Direction (const gp_Pnt2d& aPnt2d,
|
ISession_Direction::ISession_Direction (const gp_Pnt2d& aPnt2d,
|
||||||
@@ -60,7 +60,7 @@ ISession_Direction::ISession_Direction (const gp_Pnt2d& aPnt2d,
|
|||||||
myDir (gp_Dir(aVec2d.X(), aVec2d.Y(), 0.0))
|
myDir (gp_Dir(aVec2d.X(), aVec2d.Y(), 0.0))
|
||||||
{
|
{
|
||||||
myLength = aVec2d.Magnitude();
|
myLength = aVec2d.Magnitude();
|
||||||
myArrowLength = myDrawer->ArrowAspect()->Length();
|
myArrowLength = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -26,6 +26,7 @@ void ISession_Surface::Compute (const Handle(PrsMgr_PresentationManager)& ,
|
|||||||
Handle(GeomAdaptor_Surface) anAdaptorHSurface = new GeomAdaptor_Surface (mySurface);
|
Handle(GeomAdaptor_Surface) anAdaptorHSurface = new GeomAdaptor_Surface (mySurface);
|
||||||
|
|
||||||
Handle(Prs3d_Drawer) aPoleDrawer = new Prs3d_Drawer();
|
Handle(Prs3d_Drawer) aPoleDrawer = new Prs3d_Drawer();
|
||||||
|
aPoleDrawer->SetOwnLineAspects();
|
||||||
aPoleDrawer->SetLineAspect (new Prs3d_LineAspect (Quantity_NOC_YELLOW3, Aspect_TOL_SOLID, 1.0));
|
aPoleDrawer->SetLineAspect (new Prs3d_LineAspect (Quantity_NOC_YELLOW3, Aspect_TOL_SOLID, 1.0));
|
||||||
switch (theMode)
|
switch (theMode)
|
||||||
{
|
{
|
||||||
|
0
samples/mfc/standard/05_ImportExport/res/ImportExport.rc → samples/mfc/standard/03_ImportExport/res/ImportExport.rc
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/res/Toolbar.bmp → samples/mfc/standard/03_ImportExport/res/Toolbar.bmp
Executable file → Normal file
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
0
samples/mfc/standard/05_ImportExport/res/resource.h → samples/mfc/standard/03_ImportExport/res/resource.h
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/ColoredShapes.cpp → samples/mfc/standard/03_ImportExport/src/ColoredShapes.cpp
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/ColoredShapes.h → samples/mfc/standard/03_ImportExport/src/ColoredShapes.h
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/ImportExportApp.cpp → samples/mfc/standard/03_ImportExport/src/ImportExportApp.cpp
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/ImportExportApp.h → samples/mfc/standard/03_ImportExport/src/ImportExportApp.h
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/ImportExportDoc.cpp → samples/mfc/standard/03_ImportExport/src/ImportExportDoc.cpp
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/ImportExportDoc.h → samples/mfc/standard/03_ImportExport/src/ImportExportDoc.h
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/StdAfx.cpp → samples/mfc/standard/03_ImportExport/src/StdAfx.cpp
Executable file → Normal file
0
samples/mfc/standard/05_ImportExport/src/StdAfx.h → samples/mfc/standard/03_ImportExport/src/StdAfx.h
Executable file → Normal file
@@ -1,54 +0,0 @@
|
|||||||
cmake_minimum_required (VERSION 2.6)
|
|
||||||
|
|
||||||
project (Viewer2d)
|
|
||||||
|
|
||||||
add_definitions (-DWINVER=0x0501 -DUNICODE -D_UNICODE)
|
|
||||||
set (CMAKE_MFC_FLAG 2)
|
|
||||||
|
|
||||||
set (Viewer2d_SOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/03_Viewer2d/src)
|
|
||||||
set (Viewer2d_HEADER_FILES ${Viewer2d_SOURCE_DIR}/Viewer2dApp.h
|
|
||||||
${Viewer2d_SOURCE_DIR}/Viewer2dDoc.h
|
|
||||||
${Viewer2d_SOURCE_DIR}/StdAfx.h )
|
|
||||||
set (Viewer2d_SOURCE_FILES ${Viewer2d_SOURCE_DIR}/Viewer2dApp.cpp
|
|
||||||
${Viewer2d_SOURCE_DIR}/Viewer2dDoc.cpp
|
|
||||||
${Viewer2d_SOURCE_DIR}/StdAfx.cpp )
|
|
||||||
|
|
||||||
set (Viewer2d_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/03_Viewer2d/res)
|
|
||||||
set (Viewer2d_RESOURCE_HEADER ${Viewer2d_RESOURCE_DIR}/resource.h)
|
|
||||||
set (Viewer2d_RESOURCE_FILES ${Viewer2d_RESOURCE_DIR}/Toolbar.bmp
|
|
||||||
${Viewer2d_RESOURCE_DIR}/Viewer2d.rc)
|
|
||||||
|
|
||||||
# groups in the VS solution
|
|
||||||
source_group ("Source Files" FILES ${Viewer2d_SOURCE_FILES}
|
|
||||||
${COMMON_WINMAIN_FILE})
|
|
||||||
|
|
||||||
source_group ("Header Files" FILES ${Viewer2d_HEADER_FILES}
|
|
||||||
${Viewer2d_RESOURCE_HEADER})
|
|
||||||
|
|
||||||
source_group ("Resource Files" FILES ${Viewer2d_RESOURCE_FILES})
|
|
||||||
|
|
||||||
add_executable (Viewer2d WIN32 ${Viewer2d_SOURCE_FILES}
|
|
||||||
${Viewer2d_HEADER_FILES}
|
|
||||||
${COMMON_WINMAIN_FILE}
|
|
||||||
${Viewer2d_RESOURCE_HEADER}
|
|
||||||
${Viewer2d_RESOURCE_FILES})
|
|
||||||
|
|
||||||
set_property (TARGET Viewer2d PROPERTY FOLDER "Samples/mfc")
|
|
||||||
|
|
||||||
if (SINGLE_GENERATOR)
|
|
||||||
install (TARGETS Viewer2d DESTINATION "${INSTALL_DIR_BIN}")
|
|
||||||
else()
|
|
||||||
install (TARGETS Viewer2d
|
|
||||||
CONFIGURATIONS Release RelWithDebInfo
|
|
||||||
DESTINATION "${INSTALL_DIR_BIN}")
|
|
||||||
install (TARGETS Viewer2d
|
|
||||||
CONFIGURATIONS Debug
|
|
||||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include_directories (${CMAKE_BINARY_DIR}/inc
|
|
||||||
${MFC_STANDARD_SAMPLES_DIR}/03_Viewer2d
|
|
||||||
${Viewer2d_SOURCE_DIR}
|
|
||||||
${MFC_STANDARD_SAMPLES_DIR}/Common)
|
|
||||||
|
|
||||||
target_link_libraries (Viewer2d mfcsample)
|
|
@@ -1,16 +0,0 @@
|
|||||||
Viewer2d sample demonstrates how the functionality of TKV3d package can be
|
|
||||||
used for 2D visualization. It provides samples of 2D objects visualization,
|
|
||||||
dynamic selection and highlighting.
|
|
||||||
It illustrates how to:
|
|
||||||
1) implement 2D view behavior with V3d_View class, with interactive zooming
|
|
||||||
and panning of the 2D scene;
|
|
||||||
2) draw 2D primitives like rectangles, lines, curves;
|
|
||||||
3) draw different types of markers;
|
|
||||||
4) draw text defined by its font, height, style, angle;
|
|
||||||
5) display 2D curves of a face' edges and group them using orientation
|
|
||||||
criterion;
|
|
||||||
6) display zoomable images;
|
|
||||||
6) display circular and rectangular grids .
|
|
||||||
|
|
||||||
Viewer2d support zooming ,panning of displayed objects and
|
|
||||||
circular and rectangular grids.
|
|
@@ -1,354 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{6B905DC2-4E72-4EDA-99C2-7473634690FE}</ProjectGuid>
|
|
||||||
<RootNamespace>Viewer2d</RootNamespace>
|
|
||||||
<Keyword>MFCProj</Keyword>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(VCPlatformToolSet)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(VCPlatformToolSet)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(VCPlatformToolSet)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>$(VCPlatformToolSet)</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../win32\$(VCFMT)\bin\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\win32\obj\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../../../../win64\$(VCFMT)\bin\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\win64\obj\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../win32\$(VCFMT)\bind\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\win32\objd\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../../../../win64\$(VCFMT)\bind\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\win64\objd\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Midl>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<TargetEnvironment>Win32</TargetEnvironment>
|
|
||||||
<TypeLibraryName>.\win32\obj/Viewer2d.tlb</TypeLibraryName>
|
|
||||||
<HeaderFileName>
|
|
||||||
</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
|
||||||
<AdditionalIncludeDirectories>..\..\..\src\Properties;.;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>.\win32\obj/Viewer2d.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AssemblerListingLocation>.\win32\obj/</AssemblerListingLocation>
|
|
||||||
<ObjectFileName>.\win32\obj/</ObjectFileName>
|
|
||||||
<ProgramDataBaseFileName>.\win32\obj/</ProgramDataBaseFileName>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<CompileAs>Default</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Culture>0x0409</Culture>
|
|
||||||
</ResourceCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>../../../../win32\$(VCFMT)\bin/Viewer2d.exe</OutputFile>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<ProgramDatabaseFile>../../../../win32\$(VCFMT)\bin/Viewer2d.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Midl>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
|
||||||
<TypeLibraryName>.\win64\obj/Viewer2d.tlb</TypeLibraryName>
|
|
||||||
<HeaderFileName>
|
|
||||||
</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
|
||||||
<AdditionalIncludeDirectories>..\..\..\src\Properties;.;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>.\win64\obj/Viewer2d.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AssemblerListingLocation>.\win64\obj/</AssemblerListingLocation>
|
|
||||||
<ObjectFileName>.\win64\obj/</ObjectFileName>
|
|
||||||
<ProgramDataBaseFileName>.\win64\obj/</ProgramDataBaseFileName>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<CompileAs>Default</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Culture>0x0409</Culture>
|
|
||||||
</ResourceCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>../../../../win64\$(VCFMT)\bin/Viewer2d.exe</OutputFile>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<ProgramDatabaseFile>../../../../win64\$(VCFMT)\bin/Viewer2d.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Midl>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<TargetEnvironment>Win32</TargetEnvironment>
|
|
||||||
<TypeLibraryName>.\win32\objd/Viewer2d.tlb</TypeLibraryName>
|
|
||||||
<HeaderFileName>
|
|
||||||
</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories>..\..\..\src\Properties;.;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>.\win32\objd/Viewer2d.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AssemblerListingLocation>.\win32\objd/</AssemblerListingLocation>
|
|
||||||
<ObjectFileName>.\win32\objd/</ObjectFileName>
|
|
||||||
<ProgramDataBaseFileName>.\win32\objd/</ProgramDataBaseFileName>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
<CompileAs>Default</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Culture>0x0409</Culture>
|
|
||||||
</ResourceCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>../../../../win32\$(VCFMT)\bind/Viewer2d.exe</OutputFile>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<AdditionalLibraryDirectories>..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>../../../../win32\$(VCFMT)\bind/Viewer2d.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Midl>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
|
||||||
<TypeLibraryName>.\win64\objd/Viewer2d.tlb</TypeLibraryName>
|
|
||||||
<HeaderFileName>
|
|
||||||
</HeaderFileName>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories>..\..\..\src\Properties;.;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>.\win64\objd/Viewer2d.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AssemblerListingLocation>.\win64\objd/</AssemblerListingLocation>
|
|
||||||
<ObjectFileName>.\win64\objd/</ObjectFileName>
|
|
||||||
<ProgramDataBaseFileName>.\win64\objd/</ProgramDataBaseFileName>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<CompileAs>Default</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Culture>0x0409</Culture>
|
|
||||||
</ResourceCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<OutputFile>../../../../win64\$(VCFMT)\bind/Viewer2d.exe</OutputFile>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<AdditionalLibraryDirectories>..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>../../../../win64\$(VCFMT)\bind/Viewer2d.pdb</ProgramDatabaseFile>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\..\..\src\StdAfx.cpp">
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\src\Viewer2dApp.cpp">
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\src\Viewer2dDoc.cpp">
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\..\Common\WINMAIN.CPP">
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="..\..\..\res\Viewer2d.rc">
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\..\res\resource.h" />
|
|
||||||
<ClInclude Include="..\..\..\src\StdAfx.h" />
|
|
||||||
<ClInclude Include="..\..\..\src\Viewer2dApp.h" />
|
|
||||||
<ClInclude Include="..\..\..\src\Viewer2dDoc.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\..\..\res\Toolbar.bmp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\..\..\mfcsample\adm\win\vc10\mfcsample.vcxproj">
|
|
||||||
<Project>{2d6cbbe8-6965-4016-b503-0d715ae26691}</Project>
|
|
||||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
@@ -1,55 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{a5fbdc06-d5d7-4c8a-b829-e986d5c86642}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{c7319851-4cde-42ce-b4aa-8b7ddd5f0c21}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{ffedd656-2b68-4a6e-8df3-973a1a5b136e}</UniqueIdentifier>
|
|
||||||
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\..\..\src\StdAfx.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\src\Viewer2dApp.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\src\Viewer2dDoc.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\..\Common\WINMAIN.CPP">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="..\..\..\res\Viewer2d.rc">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\..\res\resource.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\src\StdAfx.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\src\Viewer2dApp.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\..\src\Viewer2dDoc.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\..\..\res\Toolbar.bmp">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,420 +0,0 @@
|
|||||||
// Microsoft Visual C++ generated resource script.
|
|
||||||
//
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
|
||||||
//
|
|
||||||
#include "afxres.h"
|
|
||||||
#include "..\..\Common\res\OCC_Resource.h"
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.S.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// TEXTINCLUDE
|
|
||||||
//
|
|
||||||
|
|
||||||
1 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"resource.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
2 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"#include ""afxres.h""\r\n"
|
|
||||||
"#include ""..\\..\\..\\Common\\res\\OCC_Resource.h""\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
3 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
|
||||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
|
||||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
|
||||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
|
||||||
"\r\n"
|
|
||||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
|
|
||||||
"#ifdef _WIN32\r\n"
|
|
||||||
"LANGUAGE 9, 1\r\n"
|
|
||||||
"#pragma code_page(1252)\r\n"
|
|
||||||
"#endif\r\n"
|
|
||||||
"#include ""afxres.rc"" // Standard components\r\n"
|
|
||||||
"#endif\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Toolbar
|
|
||||||
//
|
|
||||||
|
|
||||||
IDR_MAINFRAME TOOLBAR 16, 15
|
|
||||||
BEGIN
|
|
||||||
BUTTON ID_FILE_NEW
|
|
||||||
SEPARATOR
|
|
||||||
BUTTON ID_BUTTON_Test_Text
|
|
||||||
BUTTON ID_BUTTON_Test_Markers
|
|
||||||
BUTTON ID_BUTTON_Test_Line
|
|
||||||
SEPARATOR
|
|
||||||
BUTTON ID_BUTTON_Test_Face
|
|
||||||
SEPARATOR
|
|
||||||
BUTTON ID_BUTTON_Test_Rect
|
|
||||||
SEPARATOR
|
|
||||||
BUTTON ID_BUTTON_Test_Curve
|
|
||||||
SEPARATOR
|
|
||||||
BUTTON ID_BUTTON32793
|
|
||||||
BUTTON ID_BUTTON_Test_MultiImages
|
|
||||||
SEPARATOR
|
|
||||||
BUTTON ID_BUTTON_Erase
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_DIALOG_Color DIALOG 0, 0, 281, 186
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Color Map "
|
|
||||||
FONT 8, "MS Sans Serif"
|
|
||||||
BEGIN
|
|
||||||
LTEXT "Type Of The Color Map :",IDC_STATIC,20,10,87,10
|
|
||||||
LTEXT "To be updated ...",IDC_ColorMap_STATIC_Type,110,10,69,10
|
|
||||||
LTEXT "Size Of The Color Map :",IDC_STATIC,20,20,79,10
|
|
||||||
CONTROL "Tab1",IDC_ColorMap_TAB,"SysTabControl32",TCS_BUTTONS,19,53,242,15
|
|
||||||
LTEXT "To be updated ...",IDC_ColorMap_STATIC_Size,110,20,69,10
|
|
||||||
GROUPBOX "Entries :",IDC_STATIC,10,40,264,50
|
|
||||||
LTEXT "Color Name :",IDC_STATIC,20,75,50,10
|
|
||||||
LTEXT "To be updated ...",IDC_ColorMap_STATIC_EntryColorName,204,75,69,10
|
|
||||||
PUSHBUTTON "Add",IDC_ColorMap_BUTTON_AddNewEntry,110,145,55,15
|
|
||||||
GROUPBOX "New Entry",IDC_STATIC,10,100,267,79
|
|
||||||
PUSHBUTTON "Update Current",IDC_ColorMap_BUTTON_UpdateCurrentEntry,20,145,55,15
|
|
||||||
LTEXT "Color Name :",IDC_ColorMap_STATIC_NewEntryColorNameStatic,20,120,55,10
|
|
||||||
PUSHBUTTON "Edit...",IDC_ColorMap_BUTTON_NewEntry_EditColor,204,145,55,15
|
|
||||||
LTEXT "999",IDC_ColorMap_STATIC_EntryColorRed,75,75,35,10
|
|
||||||
LTEXT "999",IDC_ColorMap_STATIC_EntryColorGreen,120,75,35,10
|
|
||||||
LTEXT "999",IDC_ColorMap_STATIC_EntryColorBlue,165,75,35,10
|
|
||||||
EDITTEXT IDC_ColorMap_EDIT_NewEntryColorRed,75,120,35,12,ES_AUTOHSCROLL
|
|
||||||
EDITTEXT IDC_ColorMap_EDIT_NewEntryColorGreen,120,120,30,12,ES_AUTOHSCROLL
|
|
||||||
EDITTEXT IDC_ColorMap_EDIT_NewEntryColorBlue,165,120,35,12,ES_AUTOHSCROLL
|
|
||||||
COMBOBOX IDC_ColorMap_COMBO_NewEntryColorName,204,120,70,193,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
|
||||||
PUSHBUTTON "New Generic Color Map",IDC_ColorMap_BUTTON_NewGenericColorMap,179,4,95,13
|
|
||||||
LTEXT "Not available for this type of Color map",IDC_ColorMap_STATIC_NewEntryNotavailable,70,130,160,10
|
|
||||||
PUSHBUTTON "New Color Cube Color Map ",IDC_ColorMap_BUTTON_NewColorCubeColorMap,179,18,95,13
|
|
||||||
PUSHBUTTON "New Color Ramp Color Map",IDC_ColorMap_BUTTON_NewColorRampColorMap,179,31,95,13
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_DIALOG_Font DIALOGEX 0, 0, 287, 210
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Font Map"
|
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
|
||||||
BEGIN
|
|
||||||
LTEXT "Size Of The Font Map :",IDC_STATIC,20,10,80,10
|
|
||||||
LTEXT "To be updated ...",IDC_FontMap_STATIC_Size,110,10,80,10
|
|
||||||
GROUPBOX "Entries :",IDC_STATIC,10,28,270,97,0,WS_EX_TRANSPARENT
|
|
||||||
CONTROL "Tab1",IDC_FontMap_TAB,"SysTabControl32",TCS_BUTTONS,20,40,242,15
|
|
||||||
GROUPBOX "New Entry",IDC_STATIC,10,130,270,73
|
|
||||||
PUSHBUTTON "Update Current",IDC_FontMap_BUTTON_UpdateCurrent,158,181,55,15
|
|
||||||
PUSHBUTTON "Add",IDC_FontMap_BUTTON_NewEntry,221,179,55,16
|
|
||||||
LTEXT "To be updated...",IDC_FontMap_STATIC_CurrentEntryValue,63,75,217,10
|
|
||||||
LTEXT "Type :",IDC_STATIC,21,155,23,10
|
|
||||||
LTEXT "Type :",IDC_STATIC,21,60,40,10
|
|
||||||
LTEXT "To be updated ...",IDC_FontMap_STATIC_CurrentEntryType,63,60,80,10
|
|
||||||
LTEXT "Size :",IDC_STATIC,21,174,42,10
|
|
||||||
LTEXT "Slant :",IDC_STATIC,21,189,28,10
|
|
||||||
EDITTEXT IDC_FontMap_EDIT_NewEntrySize,63,172,62,12,ES_AUTOHSCROLL | ES_WANTRETURN
|
|
||||||
EDITTEXT IDC_FontMap_EDIT_NewEntrySlant,63,187,62,12,ES_AUTOHSCROLL | ES_WANTRETURN
|
|
||||||
LTEXT "Size :",IDC_STATIC,21,90,30,10
|
|
||||||
LTEXT "Slant :",IDC_STATIC,21,106,36,10
|
|
||||||
LTEXT "Value :",IDC_STATIC,21,75,40,10
|
|
||||||
LTEXT "Type :",IDC_STATIC,21,140,42,10
|
|
||||||
COMBOBOX IDC_FontMap_COMBO_NewEntryType,63,138,113,77,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
|
||||||
EDITTEXT IDC_FontMap_EDIT_NewEntryValue,63,153,209,12,ES_AUTOHSCROLL | ES_READONLY
|
|
||||||
LTEXT "To be updated...",IDC_FontMap_STATIC_CurrentEntrySize,63,90,70,10
|
|
||||||
LTEXT "To be updated...",IDC_FontMap_STATIC_CurrentEntrySlant,63,106,80,10
|
|
||||||
PUSHBUTTON "Edit...",IDC_FontMap_BUTTON_NewEntry_EditFont,191,138,55,12
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_DIALOG_Width DIALOG 0, 0, 281, 167
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Width Map "
|
|
||||||
FONT 8, "MS Sans Serif"
|
|
||||||
BEGIN
|
|
||||||
LTEXT "Size Of The Width Map :",IDC_STATIC,15,10,80,10
|
|
||||||
CONTROL "Tab1",IDC_WidthMap_TAB,"SysTabControl32",TCS_BUTTONS,21,40,242,15
|
|
||||||
LTEXT "To be updated ...",IDC_WidthMap_STATIC_Size,107,10,80,10
|
|
||||||
GROUPBOX "Entries :",IDC_STATIC,10,30,264,57
|
|
||||||
LTEXT "Type :",IDC_STATIC,15,60,80,10
|
|
||||||
LTEXT "Width :",IDC_STATIC,15,75,80,10
|
|
||||||
LTEXT "Type :",IDC_STATIC,15,115,49,10
|
|
||||||
LTEXT "Width :",IDC_STATIC,15,130,49,10
|
|
||||||
COMBOBOX IDC_WidthMap_COMBO_NewEntryType,70,113,113,77,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
|
||||||
EDITTEXT IDC_WidthMap_EDIT_NewEntryWidth,70,128,62,12,ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN
|
|
||||||
LTEXT "To be updated ...",IDC_WidthMap_STATIC_EntryType,107,60,80,10
|
|
||||||
LTEXT "To be updated ...",IDC_WidthMap_STATIC_EntryWidth,107,75,80,10
|
|
||||||
PUSHBUTTON "Add",IDC_WidthMap_BUTTON_AddNewEntry,200,130,55,15
|
|
||||||
GROUPBOX "New Entry",IDC_STATIC,7,101,267,51
|
|
||||||
PUSHBUTTON "Update Current",IDC_WidthMap_BUTTON_UpdateCurrentEntry,200,110,55,15
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_DIALOG_NewColorCube DIALOG 0, 0, 207, 156
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "New Color Cube"
|
|
||||||
FONT 8, "MS Sans Serif"
|
|
||||||
BEGIN
|
|
||||||
DEFPUSHBUTTON "OK",IDOK,150,10,50,13
|
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,150,30,50,14
|
|
||||||
LTEXT "base_pixel",IDC_STATIC,20,10,50,10
|
|
||||||
LTEXT "greenmax",IDC_STATIC,20,70,50,10
|
|
||||||
LTEXT "greenmult",IDC_STATIC,20,90,50,10
|
|
||||||
LTEXT "bluemax",IDC_STATIC,20,110,50,10
|
|
||||||
LTEXT "bluemult",IDC_STATIC,20,130,50,10
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_bluemult,80,130,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_bluemax,80,110,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_grennmult,80,90,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_greenmax,80,70,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_base_pixel,80,10,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
LTEXT "redmax",IDC_STATIC,20,30,50,10
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_redmax,80,30,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
LTEXT "redmult",IDC_STATIC,20,50,50,10
|
|
||||||
EDITTEXT IDC_NewColorCube_EDIT_redmult,80,50,50,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_DIALOG_NewColorRamp DIALOG 0, 0, 252, 121
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "New Color ramp"
|
|
||||||
FONT 8, "MS Sans Serif"
|
|
||||||
BEGIN
|
|
||||||
DEFPUSHBUTTON "OK",IDOK,150,10,50,13
|
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,150,30,50,14
|
|
||||||
LTEXT "base_pixel",-1,20,10,49,10
|
|
||||||
EDITTEXT IDC_NewColorRamp_EDIT_base_pixel,80,10,40,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
LTEXT "dimension",-1,20,30,49,10
|
|
||||||
EDITTEXT IDC_NewColorramp_EDIT_dimension,80,30,40,12,ES_AUTOHSCROLL | ES_NUMBER
|
|
||||||
LTEXT "Color Name :",IDC_ColorMap_STATIC_NewEntryColorNameStatic,20,50,49,10
|
|
||||||
PUSHBUTTON "Edit...",IDC_NewColorMapRamp_BUTTON_EditColor,145,70,55,10
|
|
||||||
EDITTEXT IDC_NewColorMapRamp_EDIT_ColorRed,28,70,35,12,ES_AUTOHSCROLL
|
|
||||||
EDITTEXT IDC_NewColorMapRamp_EDIT_ColorGreen,65,70,35,12,ES_AUTOHSCROLL
|
|
||||||
EDITTEXT IDC_NewColorMapRamp_EDIT_ColorBlue,103,70,35,12,ES_AUTOHSCROLL
|
|
||||||
COMBOBOX IDC_NewColorMap_COMBO_NewEntryColorName,80,50,70,193,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_DIALOG_Type DIALOGEX 0, 0, 287, 170
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Type Map"
|
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
|
||||||
BEGIN
|
|
||||||
LTEXT "Size Of The Type Map :",-1,20,10,80,10
|
|
||||||
LTEXT "To be updated ...",IDC_TypeMap_STATIC_Size,110,10,80,10
|
|
||||||
GROUPBOX "Entries :",-1,10,28,270,62,0,WS_EX_TRANSPARENT
|
|
||||||
CONTROL "Tab1",IDC_TypeMap_TAB,"SysTabControl32",TCS_BUTTONS,20,40,242,15
|
|
||||||
GROUPBOX "New Entry",-1,10,100,270,60
|
|
||||||
PUSHBUTTON "Update Current",IDC_FontMap_BUTTON_UpdateCurrent,160,140,55,15
|
|
||||||
PUSHBUTTON "Add",IDC_FontMap_BUTTON_NewEntry,220,140,55,15
|
|
||||||
LTEXT "To be updated...",IDC_TypeMap_STATIC_CurrentEntryValue,63,75,217,10
|
|
||||||
LTEXT "Value :",-1,21,126,42,10
|
|
||||||
LTEXT "Style :",-1,21,60,40,10
|
|
||||||
LTEXT "To be updated ...",IDC_TypeMap_STATIC_CurrentEntryStyle,63,60,80,10
|
|
||||||
LTEXT "Value :",-1,21,75,40,10
|
|
||||||
LTEXT "Style :",-1,21,111,42,10
|
|
||||||
COMBOBOX IDC_TypeMap_COMBO_NewEntryStyle,63,108,113,77,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
|
||||||
EDITTEXT IDC_TypeMap_EDIT_NewEntryValue,63,124,194,12,ES_AUTOHSCROLL | ES_READONLY
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_DIALOG_Mark DIALOGEX 0, 0, 287, 201
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Mark Map"
|
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
|
||||||
BEGIN
|
|
||||||
LTEXT "Size Of The Mark Map :",AFX_ID_PREVIEW_CLOSE,20,10,80,10
|
|
||||||
LTEXT "To be updated ...",IDC_MarkMap_STATIC_Size,110,10,80,10
|
|
||||||
GROUPBOX "Entries :",-1,10,28,270,92,0,WS_EX_TRANSPARENT
|
|
||||||
CONTROL "Tab1",IDC_MarkMap_TAB,"SysTabControl32",TCS_BUTTONS,20,40,242,15
|
|
||||||
LTEXT "To be updated...",IDC_MarkMap_STATIC_CurrentEntryXValue,63,75,217,9
|
|
||||||
LTEXT "Style :",-1,21,60,40,10
|
|
||||||
LTEXT "To be updated ...",IDC_MarkMap_STATIC_CurrentEntryStyle,63,60,80,10
|
|
||||||
LTEXT "XValue :",-1,21,75,40,9
|
|
||||||
LTEXT "To be updated...",IDC_MarkMap_STATIC_CurrentEntryYValue,63,90,217,10
|
|
||||||
LTEXT "YValue :",-1,21,90,40,10
|
|
||||||
LTEXT "To be updated...",IDC_MarkMap_STATIC_CurrentEntrySValue,63,105,217,10
|
|
||||||
LTEXT "SValue :",-1,21,105,40,10
|
|
||||||
LTEXT "To be updated...",IDC_MarkMap_STATIC_CurrentEntryValue,62,90,217,10
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Bitmap
|
|
||||||
//
|
|
||||||
|
|
||||||
IDR_MAINFRAME BITMAP "Toolbar.bmp"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Menu
|
|
||||||
//
|
|
||||||
|
|
||||||
IDR_2DTYPE MENU
|
|
||||||
BEGIN
|
|
||||||
POPUP "&File"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&New\tCtrl+N", ID_FILE_NEW
|
|
||||||
MENUITEM "&Close", ID_FILE_CLOSE
|
|
||||||
MENUITEM SEPARATOR
|
|
||||||
MENUITEM "Export Image...", ID_FILE_EXPORT_IMAGE
|
|
||||||
MENUITEM SEPARATOR
|
|
||||||
MENUITEM "E&xit", ID_APP_EXIT
|
|
||||||
END
|
|
||||||
POPUP "&View"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&Toolbar", ID_VIEW_TOOLBAR
|
|
||||||
MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR
|
|
||||||
END
|
|
||||||
POPUP "&Window"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&New Window", ID_WINDOW_NEW
|
|
||||||
MENUITEM "&Cascade", ID_WINDOW_CASCADE
|
|
||||||
MENUITEM "&Tile", ID_WINDOW_TILE_HORZ
|
|
||||||
MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE
|
|
||||||
END
|
|
||||||
POPUP "&Help"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&About Viewer2d...", ID_APP_ABOUT
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
IDR_MAINFRAME MENU
|
|
||||||
BEGIN
|
|
||||||
POPUP "&File"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&New\tCtrl+N", ID_FILE_NEW
|
|
||||||
MENUITEM SEPARATOR
|
|
||||||
MENUITEM "E&xit", ID_APP_EXIT
|
|
||||||
END
|
|
||||||
POPUP "&View"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&Toolbar", ID_VIEW_TOOLBAR
|
|
||||||
MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR
|
|
||||||
END
|
|
||||||
POPUP "&Help"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&About Viewer2d...", ID_APP_ABOUT
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Version
|
|
||||||
//
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION 1,0,0,1
|
|
||||||
PRODUCTVERSION 1,0,0,1
|
|
||||||
FILEFLAGSMASK 0x3fL
|
|
||||||
#ifdef _DEBUG
|
|
||||||
FILEFLAGS 0x1L
|
|
||||||
#else
|
|
||||||
FILEFLAGS 0x0L
|
|
||||||
#endif
|
|
||||||
FILEOS 0x4L
|
|
||||||
FILETYPE 0x1L
|
|
||||||
FILESUBTYPE 0x0L
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904B0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "FileDescription", "SAMPLEVIEWER2D MFC Application"
|
|
||||||
VALUE "FileVersion", "1, 0, 0, 1"
|
|
||||||
VALUE "InternalName", "SAMPLEVIEWER2D"
|
|
||||||
VALUE "LegalCopyright", "Copyright <20> 1997"
|
|
||||||
VALUE "OriginalFilename", "VIEWER2D.EXE"
|
|
||||||
VALUE "ProductName", "SAMPLEVIEWER2D Application"
|
|
||||||
VALUE "ProductVersion", "1, 0, 0, 1"
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// String Table
|
|
||||||
//
|
|
||||||
|
|
||||||
STRINGTABLE
|
|
||||||
BEGIN
|
|
||||||
IDR_MAINFRAME "Viewer2d"
|
|
||||||
IDR_2DTYPE "\nViewer2d\nViewer2d\n\n\nViewer2d.Document\nViewer2d Document"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGTABLE
|
|
||||||
BEGIN
|
|
||||||
ID_BUTTON_Test_Text "Test Text\nTest Text"
|
|
||||||
ID_BUTTON_Test_Markers "Test Markers\nTest Markers"
|
|
||||||
ID_BUTTON_Test_Line "Test Lines\nTest Lines"
|
|
||||||
ID_BUTTON_Erase "Erase all\nErase"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGTABLE
|
|
||||||
BEGIN
|
|
||||||
ID_BUTTONAxo "Face orientation\nFace orientation"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGTABLE
|
|
||||||
BEGIN
|
|
||||||
ID_BUTTON_Test_Curve "Test Curves\nTest Curves"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGTABLE
|
|
||||||
BEGIN
|
|
||||||
ID_BUTTON32793 "Test Image\nTest Image"
|
|
||||||
ID_BUTTON_Test_MultiImages "Test multi-images\nTest multi-images"
|
|
||||||
ID_BUTTON_Test_Rect "Test Rects\nTest Rects"
|
|
||||||
ID_BUTTON_Test_Face "Test Face\nTest Face"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
|
||||||
//
|
|
||||||
#define _AFX_NO_SPLITTER_RESOURCES
|
|
||||||
#define _AFX_NO_OLE_RESOURCES
|
|
||||||
#define _AFX_NO_TRACKER_RESOURCES
|
|
||||||
#define _AFX_NO_PROPERTY_RESOURCES
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE 9, 1
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif
|
|
||||||
#include "afxres.rc" // Standard components
|
|
||||||
#endif
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // not APSTUDIO_INVOKED
|
|
||||||
|
|
@@ -1,122 +0,0 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
|
||||||
// Microsoft Visual C++ generated include file.
|
|
||||||
// Used by Viewer2d.rc
|
|
||||||
//
|
|
||||||
#define ID_BUTTON_Test_Image 0
|
|
||||||
#define IDR_MAINFRAME2 130
|
|
||||||
#define IDR_2DTYPE2 131
|
|
||||||
#define ID_FILE_EXPORT_IMAGE2 133
|
|
||||||
#define ID_MENU_CASCADE_PROPERTIES 148
|
|
||||||
#define IDD_DIALOG_Font 160
|
|
||||||
#define IDD_DIALOG_Width 161
|
|
||||||
#define IDD_DIALOG_Color 162
|
|
||||||
#define IDD_DIALOG_NewColorCube 163
|
|
||||||
#define IDD_DIALOG_NewColorRamp 164
|
|
||||||
#define IDD_DIALOG_Type 165
|
|
||||||
#define IDD_DIALOG_Mark 166
|
|
||||||
#define ID_BUTTON_Test_Text 1043
|
|
||||||
#define ID_BUTTON_Test_Markers 1045
|
|
||||||
#define ID_BUTTON_Test_Line 1048
|
|
||||||
#define ID_BUTTON_Erase 1051
|
|
||||||
#define IDR_MAINFRAME1 1208
|
|
||||||
#define IDC_ColorMap_STATIC_Type 1420
|
|
||||||
#define IDC_ColorMap_STATIC_Size 1421
|
|
||||||
#define IDC_ColorMap_TAB 1422
|
|
||||||
#define IDC_ColorMap_STATIC_EntryColorGreen 1423
|
|
||||||
#define IDC_ColorMap_STATIC_EntryColorRed 1424
|
|
||||||
#define IDC_ColorMap_STATIC_EntryColorBlue 1425
|
|
||||||
#define IDC_ColorMap_STATIC_EntryColorName 1426
|
|
||||||
#define IDC_ColorMap_EDIT_NewEntryColorRed 1427
|
|
||||||
#define IDC_ColorMap_EDIT_NewEntryColorGreen 1428
|
|
||||||
#define IDC_ColorMap_EDIT_NewEntryColorBlue 1429
|
|
||||||
#define IDC_ColorMap_COMBO_NewEntryColorName 1430
|
|
||||||
#define IDC_ColorMap_BUTTON_NewEntry_EditColor 1431
|
|
||||||
#define IDC_ColorMap_BUTTON_UpdateCurrentEntry 1432
|
|
||||||
#define IDC_ColorMap_BUTTON_AddNewEntry 1433
|
|
||||||
#define IDC_ColorMap_BUTTON_NewGenericColorMap 1434
|
|
||||||
#define IDC_ColorMap_STATIC_NewEntryColorNameStatic 1435
|
|
||||||
#define IDC_ColorMap_STATIC_NewEntryNotavailable 1436
|
|
||||||
#define IDC_ColorMap_BUTTON_NewColorCubeColorMap 1437
|
|
||||||
#define IDC_ColorMap_BUTTON_NewColorRampColorMap 1438
|
|
||||||
#define IDC_NewColorMap_COMBO_NewEntryColorName 1439
|
|
||||||
#define IDC_NewColorMap_BUTTON_NewColorRampColorMap 1440
|
|
||||||
#define IDC_NewColorMapRamp_EDIT_ColorRed 1441
|
|
||||||
#define IDC_NewColorMapRamp_EDIT_ColorGreen 1442
|
|
||||||
#define IDC_NewColorMapRamp_EDIT_ColorBlue 1443
|
|
||||||
#define IDC_NewColorMapRamp_BUTTON_EditColor 1444
|
|
||||||
#define IDC_NewColorRamp_EDIT_base_pixel 1445
|
|
||||||
#define IDC_NewColorramp_EDIT_dimension 1446
|
|
||||||
#define IDC_NewColorCube_EDIT_bluemult 1447
|
|
||||||
#define IDC_NewColorCube_EDIT_base_pixel 1448
|
|
||||||
#define IDC_NewColorCube_EDIT_bluemax 1449
|
|
||||||
#define IDC_NewColorCube_EDIT_grennmult 1450
|
|
||||||
#define IDC_NewColorCube_EDIT_greenmax 1451
|
|
||||||
#define IDC_NewColorCube_EDIT_redmax 1452
|
|
||||||
#define IDC_NewColorCube_EDIT_redmult 1453
|
|
||||||
#define IDC_WidthMap_STATIC_Size 1454
|
|
||||||
#define IDC_WidthMap_TAB 1455
|
|
||||||
#define IDC_WidthMap_STATIC_EntryType 1456
|
|
||||||
#define IDC_WidthMap_STATIC_EntryWidth 1457
|
|
||||||
#define IDC_WidthMap_COMBO_NewEntryType 1458
|
|
||||||
#define IDC_WidthMap_EDIT_NewEntryWidth 1459
|
|
||||||
#define IDC_WidthMap_BUTTON_AddNewEntry 1460
|
|
||||||
#define IDC_WidthMap_BUTTON_UpdateCurrentEntry 1461
|
|
||||||
#define IDC_FontMap_STATIC_Size 1462
|
|
||||||
#define IDC_FontMap_TAB 1463
|
|
||||||
#define IDC_FontMap_STATIC_CurrentEntryValue 1464
|
|
||||||
#define IDC_FontMap_STATIC_CurrentEntryType 1465
|
|
||||||
#define IDC_FontMap_STATIC_CurrentEntrySize 1466
|
|
||||||
#define IDC_FontMap_STATIC_CurrentEntrySlant 1467
|
|
||||||
#define IDC_FontMap_BUTTON_NewEntry 1468
|
|
||||||
#define IDC_FontMap_BUTTON_UpdateCurrent 1469
|
|
||||||
#define IDC_FontMap_COMBO_NewEntryType 1470
|
|
||||||
#define IDC_FontMap_EDIT_NewEntryValue 1471
|
|
||||||
#define IDC_FontMap_EDIT_NewEntrySize 1472
|
|
||||||
#define IDC_FontMap_EDIT_NewEntrySlant 1473
|
|
||||||
#define IDC_FontMap_BUTTON_NewEntry_EditFont 1474
|
|
||||||
#define IDC_TypeMap_STATIC_Size 1475
|
|
||||||
#define IDC_TypeMap_TAB 1476
|
|
||||||
#define IDC_TypeMap_STATIC_CurrentEntryStyle 1477
|
|
||||||
#define IDC_TypeMap_STATIC_CurrentEntryValue 1478
|
|
||||||
#define IDC_TypeMap_COMBO_NewEntryStyle 1479
|
|
||||||
#define IDC_TypeMap_EDIT_NewEntryValue 1480
|
|
||||||
#define IDC_MarkMap_STATIC_Size 1481
|
|
||||||
#define IDC_MarkMap_TAB 1482
|
|
||||||
#define IDC_MarkMap_STATIC_CurrentEntryXValue 1483
|
|
||||||
#define IDC_MarkMap_STATIC_CurrentEntryStyle 1484
|
|
||||||
#define IDC_MarkMap_STATIC_CurrentEntryYValue 1485
|
|
||||||
#define IDC_MarkMap_STATIC_CurrentEntrySValue 1486
|
|
||||||
#define IDC_MarkMap_STATIC_CurrentEntryValue 1487
|
|
||||||
#define ID_BUTTON32791 32791
|
|
||||||
#define ID_BUTTON32793 32793
|
|
||||||
#define ID_BUTTON_Test_MultiImages 32794
|
|
||||||
#define ID_BUTTON_Test_Rect 32795
|
|
||||||
#define ID_BUTTON_Test_Face 32796
|
|
||||||
#define ID_BUTTON_Test_Curve 40016
|
|
||||||
#define ID_FILE_NEW2 57601
|
|
||||||
#define ID_FILE_OPEN2 57603
|
|
||||||
#define ID_FILE_CLOSE2 57604
|
|
||||||
#define ID_FILE_SAVE2 57605
|
|
||||||
#define ID_FILE_SAVE_AS2 57606
|
|
||||||
#define ID_WINDOW_NEW2 57652
|
|
||||||
#define ID_WINDOW_ARRANGE2 57653
|
|
||||||
#define ID_WINDOW_CASCADE2 57654
|
|
||||||
#define ID_WINDOW_TILE_HORZ2 57655
|
|
||||||
#define ID_WINDOW_TILE_VERT2 57656
|
|
||||||
#define ID_WINDOW_SPLIT2 57657
|
|
||||||
#define ID_APP_ABOUT2 57666
|
|
||||||
#define ID_APP_EXIT2 57667
|
|
||||||
#define ID_VIEW_TOOLBAR2 59394
|
|
||||||
#define ID_VIEW_STATUS_BAR2 59395
|
|
||||||
|
|
||||||
// Next default values for new objects
|
|
||||||
//
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
#define _APS_3D_CONTROLS 1
|
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 179
|
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32797
|
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1100
|
|
||||||
#define _APS_NEXT_SYMED_VALUE 170
|
|
||||||
#endif
|
|
||||||
#endif
|
|
@@ -1,6 +0,0 @@
|
|||||||
// stdafx.cpp : source file that includes just the standard includes
|
|
||||||
// SampleViewer2d.pch will be the pre-compiled header
|
|
||||||
// stdafx.obj will contain the pre-compiled type information
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
|
|
@@ -1,158 +0,0 @@
|
|||||||
// stdafx.h : include file for standard system include files,
|
|
||||||
// or project specific include files that are used frequently, but
|
|
||||||
// are changed infrequently
|
|
||||||
//
|
|
||||||
|
|
||||||
#if _MSC_VER >= 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER >= 1000
|
|
||||||
|
|
||||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
|
||||||
|
|
||||||
#include <afxwin.h> // MFC core and standard components
|
|
||||||
#include <afxext.h> // MFC extensions
|
|
||||||
#include <afxdisp.h> // MFC OLE automation classes
|
|
||||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
|
||||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
|
||||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
|
||||||
|
|
||||||
#pragma warning( disable : 4244 ) // Issue warning 4244
|
|
||||||
#include "Standard_ShortReal.hxx"
|
|
||||||
#pragma warning( default : 4244 ) // Issue warning 4244
|
|
||||||
|
|
||||||
#include <Standard.hxx>
|
|
||||||
/*
|
|
||||||
#ifndef Version15B
|
|
||||||
# ifndef Version15D
|
|
||||||
# ifndef Version20
|
|
||||||
# define Version15B
|
|
||||||
# endif // Version20
|
|
||||||
# endif // Version15D
|
|
||||||
#endif // Version15B
|
|
||||||
|
|
||||||
#pragma message ("=============================")
|
|
||||||
#ifdef Version15B
|
|
||||||
# pragma message ("Set the libs for version 1.5B")
|
|
||||||
#endif // Version15B
|
|
||||||
|
|
||||||
#ifdef Version15D
|
|
||||||
# pragma message ("Set the libs for version 1.5D")
|
|
||||||
#endif // Version15D
|
|
||||||
|
|
||||||
#ifdef Version20
|
|
||||||
# pragma message ("Set the libs for version 2.0 ")
|
|
||||||
#endif // Version20
|
|
||||||
#pragma message ("=============================")
|
|
||||||
|
|
||||||
#ifdef Version15B
|
|
||||||
# pragma comment (lib,"TKTop.lib")
|
|
||||||
# pragma comment (lib,"TShort.lib")
|
|
||||||
# pragma comment (lib,"TColQuantity.lib")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Version15D
|
|
||||||
# pragma comment (lib,"TKTop.lib")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Version20
|
|
||||||
# pragma comment (lib,"TKTop1.lib")
|
|
||||||
# pragma comment (lib,"TKTop2.lib")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma message ("Set the specific libs for the application")
|
|
||||||
# pragma comment (lib,"TKGeom.lib")
|
|
||||||
# pragma comment (lib,"TKGlt.lib")
|
|
||||||
# pragma comment (lib,"TKGraphic.lib")
|
|
||||||
# pragma comment (lib,"TKPrsMgr.lib")
|
|
||||||
# pragma comment (lib,"TKViewers.lib")
|
|
||||||
# pragma comment (lib,"gp.lib")
|
|
||||||
# pragma comment (lib,"TKernel.lib")
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <AIS_Circle.hxx>
|
|
||||||
#include <AIS_Line.hxx>
|
|
||||||
#include <AIS_InteractiveContext.hxx>
|
|
||||||
#include <AIS_InteractiveObject.hxx>
|
|
||||||
#include <AIS_TextLabel.hxx>
|
|
||||||
|
|
||||||
#include <Aspect_TypeOfline.hxx>
|
|
||||||
#include <Aspect_WidthOfline.hxx>
|
|
||||||
#include <Aspect_Background.hxx>
|
|
||||||
|
|
||||||
#include <BRepPrimAPI_MakeBox.hxx>
|
|
||||||
#include <BRep_Builder.hxx>
|
|
||||||
#include <BRepBuilderAPI_MakeEdge.hxx>
|
|
||||||
#include <BRepBuilderAPI_MakeWire.hxx>
|
|
||||||
#include <BRepBuilderAPI_MakeFace.hxx>
|
|
||||||
#include <BRepTools.hxx>
|
|
||||||
#include <Bnd_Box2d.hxx>
|
|
||||||
#include <BndLib_Add2dCurve.hxx>
|
|
||||||
|
|
||||||
#include <GCE2d_MakeSegment.hxx>
|
|
||||||
#include <GCPnts_TangentialDeflection.hxx>
|
|
||||||
#include <Geom2d_Curve.hxx>
|
|
||||||
#include <Geom_CartesianPoint.hxx>
|
|
||||||
#include <Geom_Circle.hxx>
|
|
||||||
#include <Geom_Curve.hxx>
|
|
||||||
#include <Geom_Line.hxx>
|
|
||||||
#include <Geom2d_Curve.hxx>
|
|
||||||
#include <Geom2d_TrimmedCurve.hxx>
|
|
||||||
#include <Geom2dAdaptor_Curve.hxx>
|
|
||||||
#include <GeomTools_Curve2dSet.hxx>
|
|
||||||
#include <Graphic3d_AspectText3d.hxx>
|
|
||||||
#include <Graphic3d_Group.hxx>
|
|
||||||
#include <Graphic3d_AspectMarker3d.hxx>
|
|
||||||
#include <Graphic3d_StructureManager.hxx>
|
|
||||||
#include <Graphic3d_Texture1Dsegment.hxx>
|
|
||||||
#include <gp_Ax2d.hxx>
|
|
||||||
#include <gp_Circ.hxx>
|
|
||||||
#include <gp_Circ2d.hxx>
|
|
||||||
#include <gp_Dir2d.hxx>
|
|
||||||
#include <gp_Lin2d.hxx>
|
|
||||||
#include <gp_Pln.hxx>
|
|
||||||
#include <gp_Pnt2d.hxx>
|
|
||||||
#include <gp_Vec2d.hxx>
|
|
||||||
#include <HLRAlgo_Projector.hxx>
|
|
||||||
#include <OSD_Environment.hxx>
|
|
||||||
#include <Precision.hxx>
|
|
||||||
#include <Prs3d_Drawer.hxx>
|
|
||||||
#include <Prs3d_LineAspect.hxx>
|
|
||||||
#include <Prs3d_PlaneAspect.hxx>
|
|
||||||
#include <Prs3d_Presentation.hxx>
|
|
||||||
#include <SelectMgr_EntityOwner.hxx>
|
|
||||||
#include <SelectMgr_Selection.hxx>
|
|
||||||
#include <SelectMgr_SelectableObject.hxx>
|
|
||||||
#include <SelectMgr_SelectionManager.hxx>
|
|
||||||
#include <Standard_ErrorHandler.hxx>
|
|
||||||
#include <Standard_Real.hxx>
|
|
||||||
#include <Standard_Integer.hxx>
|
|
||||||
#include <SelectMgr_Selection.hxx>
|
|
||||||
#include <Standard_OStream.hxx>
|
|
||||||
#include <Standard_IStream.hxx>
|
|
||||||
#include <Standard_CString.hxx>
|
|
||||||
#include <Standard_Boolean.hxx>
|
|
||||||
#include <Standard_Real.hxx>
|
|
||||||
#include <Standard_OStream.hxx>
|
|
||||||
#include <Standard_IStream.hxx>
|
|
||||||
#include <Standard_CString.hxx>
|
|
||||||
#include <TCollection_AsciiString.hxx>
|
|
||||||
#include <TColgp_Array1OfPnt2d.hxx>
|
|
||||||
#include <TColgp_HArray1OfPnt2d.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
||||||
#include <TopoDS.hxx>
|
|
||||||
#include <V3d_View.hxx>
|
|
||||||
#include <V3d_Viewer.hxx>
|
|
||||||
#include <WNT_Window.hxx>
|
|
||||||
|
|
||||||
#include <..\res\resource.h>
|
|
||||||
|
|
||||||
class ISession2D_InteractiveObject;
|
|
||||||
|
|
||||||
class V3d_Viewer;
|
|
||||||
class SelectMgr_SelectableObject;
|
|
||||||
class TCollection_AsciiString;
|
|
||||||
class gp_Pnt2d;
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
@@ -1,75 +0,0 @@
|
|||||||
// Viewer2dApp.cpp : Defines the class behaviors for the application.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
|
|
||||||
#include "Viewer2dApp.h"
|
|
||||||
|
|
||||||
#include "OCC_MainFrame.h"
|
|
||||||
#include "OCC_2dChildFrame.h"
|
|
||||||
#include "Viewer2dDoc.h"
|
|
||||||
#include "OCC_2dView.h"
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define new DEBUG_NEW
|
|
||||||
#undef THIS_FILE
|
|
||||||
static char THIS_FILE[] = __FILE__;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CViewer2dApp construction
|
|
||||||
|
|
||||||
CViewer2dApp::CViewer2dApp() : OCC_App()
|
|
||||||
{
|
|
||||||
SampleName = "Viewer2d"; //for about dialog
|
|
||||||
SetSamplePath (L"..\\..\\03_Viewer2d");
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// The one and only CViewer2dApp object
|
|
||||||
|
|
||||||
CViewer2dApp theApp;
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CViewer2dApp initialization
|
|
||||||
|
|
||||||
BOOL CViewer2dApp::InitInstance()
|
|
||||||
{
|
|
||||||
// Standard initialization
|
|
||||||
// If you are not using these features and wish to reduce the size
|
|
||||||
// of your final executable, you should remove from the following
|
|
||||||
// the specific initialization routines you do not need.
|
|
||||||
|
|
||||||
LoadStdProfileSettings(); // Load standard INI file options (including MRU)
|
|
||||||
|
|
||||||
// Register the application's document templates. Document templates
|
|
||||||
// serve as the connection between documents, frame windows and views.
|
|
||||||
|
|
||||||
CMultiDocTemplate* pDocTemplate;
|
|
||||||
pDocTemplate = new CMultiDocTemplate(
|
|
||||||
IDR_2DTYPE,
|
|
||||||
RUNTIME_CLASS(CViewer2dDoc),
|
|
||||||
RUNTIME_CLASS(OCC_2dChildFrame),
|
|
||||||
RUNTIME_CLASS(OCC_2dView));
|
|
||||||
AddDocTemplate(pDocTemplate);
|
|
||||||
|
|
||||||
// create main MDI Frame window
|
|
||||||
OCC_MainFrame* pMainFrame = new OCC_MainFrame;
|
|
||||||
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
|
|
||||||
return FALSE;
|
|
||||||
m_pMainWnd = pMainFrame;
|
|
||||||
|
|
||||||
// Parse command line for standard shell commands, DDE, file open
|
|
||||||
CCommandLineInfo cmdInfo;
|
|
||||||
ParseCommandLine(cmdInfo);
|
|
||||||
|
|
||||||
// Dispatch commands specified on the command line
|
|
||||||
if (!ProcessShellCommand(cmdInfo))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
// The main window has been initialized, so show and update it.
|
|
||||||
pMainFrame->ShowWindow(m_nCmdShow);
|
|
||||||
pMainFrame->UpdateWindow();
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
@@ -1,30 +0,0 @@
|
|||||||
// Viewer2dApp.h : main header file for the VIEWER2D application
|
|
||||||
//
|
|
||||||
|
|
||||||
#if !defined(AFX_VIEWER2DAPP_H__45F76B43_423D_11D7_8612_0060B0EE281E__INCLUDED_)
|
|
||||||
#define AFX_VIEWER2DAPP_H__45F76B43_423D_11D7_8612_0060B0EE281E__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
#include <OCC_App.h>
|
|
||||||
|
|
||||||
class CViewer2dApp : public OCC_App
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
CViewer2dApp();
|
|
||||||
|
|
||||||
// Overrides
|
|
||||||
// ClassWizard generated virtual function overrides
|
|
||||||
//{{AFX_VIRTUAL(CViewer2dApp)
|
|
||||||
public:
|
|
||||||
virtual BOOL InitInstance();
|
|
||||||
//}}AFX_VIRTUAL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#endif //(AFX_VIEWER2DAPP_H__45F76B43_423D_11D7_8612_0060B0EE281E__INCLUDED_)
|
|
@@ -1,405 +0,0 @@
|
|||||||
// Viewer2dDoc.cpp : implementation of the CViewer2dDoc class
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "Viewer2dDoc.h"
|
|
||||||
#include "OCC_App.h"
|
|
||||||
#include "Primitive\Sample2D_Markers.h"
|
|
||||||
#include "Primitive\Sample2D_Face.h"
|
|
||||||
#include "Primitive\Sample2D_Image.h"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CViewer2dDoc
|
|
||||||
|
|
||||||
IMPLEMENT_DYNCREATE(CViewer2dDoc, CDocument)
|
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CViewer2dDoc, CDocument)
|
|
||||||
//{{AFX_MSG_MAP(CViewer2dDoc)
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_Text, OnBUTTONTestText)
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_Markers, OnBUTTONTestMarkers)
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_Line, OnBUTTONTestLine)
|
|
||||||
ON_COMMAND(ID_BUTTON_Erase, OnBUTTONErase)
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_Face, OnBUTTONTestFace)
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_Rect, OnBUTTONTestRect)
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_Curve, OnBUTTONTestCurve)
|
|
||||||
ON_COMMAND(ID_BUTTON32793, OnBUTTONTestImage) // test image
|
|
||||||
ON_COMMAND(ID_BUTTON_Test_MultiImages, OnBUTTONMultipleImage)
|
|
||||||
|
|
||||||
//}}AFX_MSG_MAP
|
|
||||||
END_MESSAGE_MAP()
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CViewer2dDoc construction/destruction
|
|
||||||
|
|
||||||
CViewer2dDoc::CViewer2dDoc()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
CViewer2dDoc::~CViewer2dDoc()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
void CViewer2dDoc::AssertValid() const
|
|
||||||
{
|
|
||||||
CDocument::AssertValid();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CViewer2dDoc::Dump(CDumpContext& dc) const
|
|
||||||
{
|
|
||||||
CDocument::Dump(dc);
|
|
||||||
}
|
|
||||||
#endif //_DEBUG
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CViewer2dDoc commands
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONErase()
|
|
||||||
{
|
|
||||||
myAISContext->EraseAll (Standard_True);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONTestText()
|
|
||||||
{
|
|
||||||
int aColor = Quantity_NOC_MATRABLUE;
|
|
||||||
for (Standard_Real j = 15; j <= 20; j++)
|
|
||||||
{
|
|
||||||
Handle(AIS_TextLabel) aText = new AIS_TextLabel();
|
|
||||||
aText->SetText (TCollection_AsciiString ("font 0 scale ") + (j / 20.0));
|
|
||||||
aText->SetPosition (gp_Pnt (0.0, 15.0 * (j - 15.0), 0.0));
|
|
||||||
aText->SetAngle (30.0 * M_PI / 180.0);
|
|
||||||
aText->SetColor (Quantity_NameOfColor(aColor++));
|
|
||||||
aText->SetFontAspect (Font_FA_Regular);
|
|
||||||
aText->SetFont ("Courier");
|
|
||||||
aText->SetHeight (j);
|
|
||||||
aText->SetHJustification (Graphic3d_HTA_LEFT);
|
|
||||||
aText->SetVJustification (Graphic3d_VTA_BOTTOM);
|
|
||||||
aText->SetZoomable (Standard_False);
|
|
||||||
myAISContext->Display(aText, Standard_False);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Standard_Real j = 10; j <= 15; j++)
|
|
||||||
{
|
|
||||||
Handle(AIS_TextLabel) aText = new AIS_TextLabel();
|
|
||||||
aText->SetText (TCollection_AsciiString ("font 1 scale ") + (j / 10.0));
|
|
||||||
aText->SetPosition (gp_Pnt (80.0, 15.0 * (j - 10.0), 0.0));
|
|
||||||
aText->SetAngle (0.0);
|
|
||||||
aText->SetColor (Quantity_NameOfColor(aColor++));
|
|
||||||
aText->SetFontAspect (Font_FA_BoldItalic);
|
|
||||||
aText->SetFont ("Cambria");
|
|
||||||
aText->SetHeight (j * 2);
|
|
||||||
aText->SetHJustification (Graphic3d_HTA_LEFT);
|
|
||||||
aText->SetVJustification (Graphic3d_VTA_BOTTOM);
|
|
||||||
aText->SetZoomable (Standard_False);
|
|
||||||
myAISContext->Display(aText, Standard_False);
|
|
||||||
}
|
|
||||||
|
|
||||||
aColor = Quantity_NOC_MATRABLUE;
|
|
||||||
for (Standard_Real j = 5; j <= 10; j++)
|
|
||||||
{
|
|
||||||
Handle(AIS_TextLabel) aText = new AIS_TextLabel();
|
|
||||||
aText->SetText (TCollection_AsciiString ("font 2 scale ") + (j / 10.0));
|
|
||||||
aText->SetPosition (gp_Pnt (140.0, 15.0 * (j - 5.0), 0.0));
|
|
||||||
aText->SetAngle (0.0);
|
|
||||||
aText->SetColor (Quantity_NameOfColor(aColor++));
|
|
||||||
aText->SetFontAspect (Font_FA_Bold);
|
|
||||||
aText->SetFont ("Arial");
|
|
||||||
aText->SetHeight (j * 2);
|
|
||||||
aText->SetHJustification (Graphic3d_HTA_LEFT);
|
|
||||||
aText->SetVJustification (Graphic3d_VTA_BOTTOM);
|
|
||||||
aText->SetZoomable (Standard_False);
|
|
||||||
myAISContext->Display(aText, Standard_False);
|
|
||||||
}
|
|
||||||
for (Standard_Real j = 10; j <= 15; j++)
|
|
||||||
{
|
|
||||||
Handle(AIS_TextLabel) aText = new AIS_TextLabel();
|
|
||||||
aText->SetText (TCollection_AsciiString ("font 3 scale ") + (j / 10.0));
|
|
||||||
aText->SetPosition (gp_Pnt (200.0, 15.0 * (j - 10.0), 0.0));
|
|
||||||
aText->SetAngle (0.0);
|
|
||||||
aText->SetColor (Quantity_NameOfColor(aColor++));
|
|
||||||
aText->SetFontAspect (Font_FA_Italic);
|
|
||||||
aText->SetFont ("Georgia");
|
|
||||||
aText->SetHeight (j * 2);
|
|
||||||
aText->SetHJustification (Graphic3d_HTA_LEFT);
|
|
||||||
aText->SetVJustification (Graphic3d_VTA_BOTTOM);
|
|
||||||
aText->SetZoomable (Standard_False);
|
|
||||||
myAISContext->Display(aText, Standard_False);
|
|
||||||
}
|
|
||||||
|
|
||||||
FitAll2DViews(Standard_True); // Update Viewer
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONTestMarkers()
|
|
||||||
{
|
|
||||||
// generic Markers
|
|
||||||
Standard_Integer aColor = 20;
|
|
||||||
for (int i=1;i<=2;i++)
|
|
||||||
{
|
|
||||||
Handle (Sample2D_Markers) aMarker =
|
|
||||||
new Sample2D_Markers(10+5,5*i,Aspect_TOM_POINT,Quantity_NOC_YELLOW,2.0);
|
|
||||||
myAISContext->Display(aMarker, Standard_False);
|
|
||||||
}
|
|
||||||
for (int i=1;i<=2;i++)
|
|
||||||
{
|
|
||||||
Handle (Sample2D_Markers) aMarker =
|
|
||||||
new Sample2D_Markers(10+10,5*i,Aspect_TOM_O,(Quantity_NameOfColor)(aColor++));
|
|
||||||
myAISContext->Display(aMarker, Standard_False);
|
|
||||||
}
|
|
||||||
for (int i=1;i<=2;i++)
|
|
||||||
{
|
|
||||||
Handle (Sample2D_Markers) aMarker =
|
|
||||||
new Sample2D_Markers(10+15,5*i,Aspect_TOM_O_PLUS,(Quantity_NameOfColor)(aColor++));
|
|
||||||
myAISContext->Display(aMarker, Standard_False);
|
|
||||||
}
|
|
||||||
for (int i=1;i<=2;i++)
|
|
||||||
{
|
|
||||||
Handle (Sample2D_Markers) aMarker =
|
|
||||||
new Sample2D_Markers(10+20,5*i,Aspect_TOM_RING1,(Quantity_NameOfColor)(aColor++));
|
|
||||||
myAISContext->Display(aMarker, Standard_False);
|
|
||||||
}
|
|
||||||
for (int i=1;i<=2;i++)
|
|
||||||
{
|
|
||||||
|
|
||||||
Handle (Sample2D_Markers) aMarker =
|
|
||||||
new Sample2D_Markers(10+25,5*i,Aspect_TOM_STAR,(Quantity_NameOfColor)(aColor++));
|
|
||||||
myAISContext->Display(aMarker, Standard_False);
|
|
||||||
}
|
|
||||||
for (int i=1;i<=2;i++)
|
|
||||||
{
|
|
||||||
Handle (Sample2D_Markers) aMarker =
|
|
||||||
new Sample2D_Markers(10+30,5*i,Aspect_TOM_O_X,(Quantity_NameOfColor)(aColor++));
|
|
||||||
myAISContext->Display(aMarker, Standard_False);
|
|
||||||
}
|
|
||||||
|
|
||||||
FitAll2DViews(Standard_False); // Update Viewer
|
|
||||||
}
|
|
||||||
void CViewer2dDoc::OnBUTTONTestLine()
|
|
||||||
{
|
|
||||||
for (int i=0;i<=13;++i)
|
|
||||||
for (int j=0;j<=5;++j)
|
|
||||||
{
|
|
||||||
//set of rectangles here
|
|
||||||
TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(gp_Pnt(10*i,10*j,0.), gp_Pnt(10*i+7,10*j,0.));
|
|
||||||
TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(gp_Pnt(10*i+7,10*j,0.), gp_Pnt(10*i+7,10*j+5,0.));
|
|
||||||
TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(gp_Pnt(10*i+7,10*j+5,0.), gp_Pnt(10*i,10*j+5,0.));
|
|
||||||
TopoDS_Edge E4 = BRepBuilderAPI_MakeEdge(gp_Pnt(10*i,10*j+5,0.), gp_Pnt(10*i,10*j,0.));
|
|
||||||
TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3,E4);
|
|
||||||
TopoDS_Face F = BRepBuilderAPI_MakeFace(W);
|
|
||||||
Handle(AIS_Shape) aRect = new AIS_Shape(F);
|
|
||||||
//set attributes of boundaries
|
|
||||||
Handle(Prs3d_Drawer) aDrawer = new Prs3d_Drawer();
|
|
||||||
Handle(Prs3d_LineAspect) aLineAttrib =
|
|
||||||
new Prs3d_LineAspect(Quantity_NOC_YELLOW,
|
|
||||||
(Aspect_TypeOfLine)(Aspect_TOL_SOLID+j),1);
|
|
||||||
aDrawer->SetFaceBoundaryAspect(aLineAttrib);
|
|
||||||
aDrawer->SetFaceBoundaryDraw(Standard_True);
|
|
||||||
aRect->SetAttributes(aDrawer);
|
|
||||||
|
|
||||||
myAISContext->SetDisplayMode (aRect, 1, Standard_False);
|
|
||||||
myAISContext->SetColor(aRect,(Quantity_NameOfColor)(Quantity_NOC_CADETBLUE+2*i),Standard_False);
|
|
||||||
myAISContext->SetMaterial(aRect,Graphic3d_NOM_PLASTIC,Standard_False);
|
|
||||||
myAISContext->Display(aRect, Standard_False);
|
|
||||||
|
|
||||||
}
|
|
||||||
this->FitAll2DViews(Standard_True);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#include <AIS_Trihedron.hxx>
|
|
||||||
#include <Geom_Axis2Placement.hxx>
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONTestFace()
|
|
||||||
{
|
|
||||||
//erase all
|
|
||||||
myAISContext->EraseAll (Standard_True);
|
|
||||||
|
|
||||||
CFileDialog dlg(TRUE,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
|
|
||||||
L"BRep Files (*.brep)|*.brep; ||",
|
|
||||||
NULL );
|
|
||||||
|
|
||||||
CString initdir;
|
|
||||||
initdir.GetEnvironmentVariable (L"CSF_OCCTDataPath");
|
|
||||||
initdir += L"\\occ";
|
|
||||||
|
|
||||||
dlg.m_ofn.lpstrInitialDir = initdir;
|
|
||||||
|
|
||||||
if (dlg.DoModal() == IDOK)
|
|
||||||
{
|
|
||||||
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
|
|
||||||
|
|
||||||
std::filebuf aFileBuf;
|
|
||||||
std::istream aStream (&aFileBuf);
|
|
||||||
if (!aFileBuf.open (dlg.GetPathName(), std::ios::in))
|
|
||||||
{
|
|
||||||
AfxMessageBox (L"The shape must be not a null Face");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TopoDS_Shape aFaceShape;
|
|
||||||
BRep_Builder aBuilder;
|
|
||||||
BRepTools::Read (aFaceShape, aStream, aBuilder);
|
|
||||||
if(aFaceShape.IsNull() || aFaceShape.ShapeType() != TopAbs_FACE)
|
|
||||||
{
|
|
||||||
AfxMessageBox (L"The shape must be not a null Face");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TopoDS_Face aFace = TopoDS::Face(aFaceShape);
|
|
||||||
Handle(Sample2D_Face) anAISFace = new Sample2D_Face(aFaceShape);
|
|
||||||
myAISContext->Display(anAISFace,Standard_True);
|
|
||||||
//activate selection mode for edges selection
|
|
||||||
myAISContext->Activate(anAISFace,2);
|
|
||||||
|
|
||||||
FitAll2DViews(Standard_False);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONTestRect()
|
|
||||||
{
|
|
||||||
//First rectangle
|
|
||||||
TopoDS_Edge E11 = BRepBuilderAPI_MakeEdge(gp_Pnt(40.,0.,0.), gp_Pnt(82.5,25.,0.));
|
|
||||||
TopoDS_Edge E12 = BRepBuilderAPI_MakeEdge(gp_Pnt(82.5,25.,0.), gp_Pnt(42.5,93.,0.));
|
|
||||||
TopoDS_Edge E13 = BRepBuilderAPI_MakeEdge(gp_Pnt(42.5,93.,0.), gp_Pnt(0.,68.,0.));
|
|
||||||
TopoDS_Edge E14 = BRepBuilderAPI_MakeEdge(gp_Pnt(0.,68.,0.), gp_Pnt(40.,0.,0.));
|
|
||||||
TopoDS_Wire W1 = BRepBuilderAPI_MakeWire(E11,E12,E13,E14);
|
|
||||||
Handle(AIS_Shape) aRect1 = new AIS_Shape(W1);
|
|
||||||
myAISContext->Display (aRect1, Standard_False);
|
|
||||||
myAISContext->SetColor (aRect1, Quantity_NOC_YELLOW, Standard_False);
|
|
||||||
|
|
||||||
//Second rectangle
|
|
||||||
TopoDS_Edge E21 = BRepBuilderAPI_MakeEdge(gp_Pnt(110.,0.,0.), gp_Pnt(152.5,25.,0.));
|
|
||||||
TopoDS_Edge E22 = BRepBuilderAPI_MakeEdge(gp_Pnt(152.5,25.,0.), gp_Pnt(112.5,93.,0.));
|
|
||||||
TopoDS_Edge E23 = BRepBuilderAPI_MakeEdge(gp_Pnt(112.5,93.,0.), gp_Pnt(70.,68.,0.));
|
|
||||||
TopoDS_Edge E24 = BRepBuilderAPI_MakeEdge(gp_Pnt(70.,68.,0.), gp_Pnt(110.,0.,0.));
|
|
||||||
TopoDS_Wire W2 = BRepBuilderAPI_MakeWire(E21,E22,E23,E24);
|
|
||||||
Handle(AIS_Shape) aRect2 = new AIS_Shape(W2);
|
|
||||||
myAISContext->Display (aRect2, Standard_False);
|
|
||||||
myAISContext->SetColor (aRect2, Quantity_NOC_YELLOW, Standard_False);
|
|
||||||
myAISContext->Activate(aRect2,2);
|
|
||||||
|
|
||||||
FitAll2DViews(Standard_True); // Update Viewer
|
|
||||||
}
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONTestCurve()
|
|
||||||
{
|
|
||||||
for(int i=0;i<=5;++i)
|
|
||||||
for(int j=0;j<=5;++j)
|
|
||||||
{
|
|
||||||
Handle(Geom_Point) aStart = new Geom_CartesianPoint(gp_Pnt(10*i,10*j,0.));
|
|
||||||
Handle(Geom_Point) anEnd = new Geom_CartesianPoint(gp_Pnt(10*i+5,10*j+10,0.));
|
|
||||||
Handle(AIS_Line) aLine = new AIS_Line(aStart,anEnd);
|
|
||||||
Handle(Prs3d_LineAspect) aLineAttrib =
|
|
||||||
new Prs3d_LineAspect((Quantity_NameOfColor)(Quantity_NOC_CADETBLUE+2*i+2*j),
|
|
||||||
(Aspect_TypeOfLine)((Aspect_TOL_DASH+i+j)%5),2+i+j);
|
|
||||||
aLine->Attributes()->SetLineAspect(aLineAttrib);
|
|
||||||
myAISContext->Display(aLine,Standard_False);
|
|
||||||
}
|
|
||||||
FitAll2DViews(Standard_True);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONTestImage()
|
|
||||||
{
|
|
||||||
CFileDialog anOpenImageDlg (TRUE,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
|
|
||||||
SupportedImageFormats() + L"| all files (*.*)|*.*;||",
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
CString anInitDir;
|
|
||||||
anInitDir.GetEnvironmentVariable (L"CASROOT");
|
|
||||||
anInitDir += L"\\data\\images";
|
|
||||||
|
|
||||||
anOpenImageDlg.m_ofn.lpstrInitialDir = anInitDir;
|
|
||||||
if(anOpenImageDlg.DoModal() == IDOK)
|
|
||||||
{
|
|
||||||
SetCursor(AfxGetApp()->LoadStandardCursor (IDC_WAIT));
|
|
||||||
CString aFilePath = anOpenImageDlg.GetPathName();
|
|
||||||
TCollection_AsciiString aFileName ((const wchar_t* )aFilePath);
|
|
||||||
|
|
||||||
//erase viewer
|
|
||||||
myAISContext->EraseAll (Standard_False);
|
|
||||||
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (40,50) ;
|
|
||||||
anImage->SetScale (1.0);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
FitAll2DViews (Standard_True);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CViewer2dDoc::OnBUTTONMultipleImage()
|
|
||||||
{
|
|
||||||
CFileDialog anOpenImageDlg (TRUE,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
|
|
||||||
SupportedImageFormats() + L"| all files (*.*)|*.*;||",
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
CString anInitDir;
|
|
||||||
anInitDir.GetEnvironmentVariable (L"CASROOT");
|
|
||||||
anInitDir += L"\\data\\images";
|
|
||||||
|
|
||||||
anOpenImageDlg.m_ofn.lpstrInitialDir = anInitDir;
|
|
||||||
|
|
||||||
if (anOpenImageDlg.DoModal() == IDOK)
|
|
||||||
{
|
|
||||||
SetCursor(AfxGetApp()->LoadStandardCursor (IDC_WAIT));
|
|
||||||
CString aFilePath = anOpenImageDlg.GetPathName();
|
|
||||||
TCollection_AsciiString aFileName ((const wchar_t* )aFilePath);
|
|
||||||
|
|
||||||
//erase viewer
|
|
||||||
myAISContext->EraseAll (Standard_False);
|
|
||||||
|
|
||||||
//create images
|
|
||||||
{ // 1
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (40, 50);
|
|
||||||
anImage->SetScale (0.5);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
{ // 2
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (100, 50);
|
|
||||||
anImage->SetScale (0.9);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
{ // 3
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (40, 40);
|
|
||||||
anImage->SetScale (0.3);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
{ // 4
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (50, 40);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
{ // 5
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (80, 45);
|
|
||||||
anImage->SetScale (2);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
{ // 6
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (20, -20);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
{ // 7
|
|
||||||
Handle(Sample2D_Image) anImage = new Sample2D_Image (aFileName);
|
|
||||||
anImage->SetCoord (0, 0);
|
|
||||||
anImage->SetScale (0.5);
|
|
||||||
myAISContext->Display (anImage, AIS_Shaded, 0, Standard_False);
|
|
||||||
}
|
|
||||||
FitAll2DViews (Standard_True); // Update Viewer
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,42 +0,0 @@
|
|||||||
// Viewer2dDoc.h : interface of the CViewer2dDoc class
|
|
||||||
//
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#include <AIS_Shape.hxx>
|
|
||||||
#include <TopoDS_Face.hxx>
|
|
||||||
#include "OCC_2dDoc.h"
|
|
||||||
|
|
||||||
|
|
||||||
class CViewer2dDoc : public OCC_2dDoc
|
|
||||||
{
|
|
||||||
protected: // create from serialization only
|
|
||||||
CViewer2dDoc();
|
|
||||||
DECLARE_DYNCREATE(CViewer2dDoc)
|
|
||||||
|
|
||||||
// Implementation
|
|
||||||
public:
|
|
||||||
virtual ~CViewer2dDoc();
|
|
||||||
#ifdef _DEBUG
|
|
||||||
virtual void AssertValid() const;
|
|
||||||
virtual void Dump(CDumpContext& dc) const;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
// Generated message map functions
|
|
||||||
protected:
|
|
||||||
//{{AFX_MSG(CViewer2dDoc)
|
|
||||||
afx_msg void OnBUTTONTestText();
|
|
||||||
afx_msg void OnBUTTONTestMarkers();
|
|
||||||
afx_msg void OnBUTTONTestLine();
|
|
||||||
afx_msg void OnBUTTONErase();
|
|
||||||
afx_msg void OnBUTTONTestFace();
|
|
||||||
afx_msg void OnBUTTONTestRect();
|
|
||||||
afx_msg void OnBUTTONTestCurve();
|
|
||||||
afx_msg void OnBUTTONTestImage();
|
|
||||||
afx_msg void OnBUTTONMultipleImage();
|
|
||||||
//}}AFX_MSG
|
|
||||||
DECLARE_MESSAGE_MAP()
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
0
samples/mfc/standard/08_HLR/res/AXOVIEWU.bmp → samples/mfc/standard/04_HLR/res/AXOVIEWU.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/BACKVIEWD.bmp → samples/mfc/standard/04_HLR/res/BACKVIEWD.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/BACKVIEWF.bmp → samples/mfc/standard/04_HLR/res/BACKVIEWF.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/BACKVIEWU.bmp → samples/mfc/standard/04_HLR/res/BACKVIEWU.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/BOTTOMVIEWD.bmp → samples/mfc/standard/04_HLR/res/BOTTOMVIEWD.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/BOTTOMVIEWF.bmp → samples/mfc/standard/04_HLR/res/BOTTOMVIEWF.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/BOTTOMVIEWU.bmp → samples/mfc/standard/04_HLR/res/BOTTOMVIEWU.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/ChildFrame2D.bmp → samples/mfc/standard/04_HLR/res/ChildFrame2D.bmp
Executable file → Normal file
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
0
samples/mfc/standard/08_HLR/res/ChildFrame3D.bmp → samples/mfc/standard/04_HLR/res/ChildFrame3D.bmp
Executable file → Normal file
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
0
samples/mfc/standard/08_HLR/res/FRONTVIEWD.bmp → samples/mfc/standard/04_HLR/res/FRONTVIEWD.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/FRONTVIEWF.bmp → samples/mfc/standard/04_HLR/res/FRONTVIEWF.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/FRONTVIEWU.bmp → samples/mfc/standard/04_HLR/res/FRONTVIEWU.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
0
samples/mfc/standard/08_HLR/res/HLR.rc → samples/mfc/standard/04_HLR/res/HLR.rc
Executable file → Normal file
0
samples/mfc/standard/08_HLR/res/LEFTVIEWD.bmp → samples/mfc/standard/04_HLR/res/LEFTVIEWD.bmp
Executable file → Normal file
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |