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/01_Geometry)
|
||||
add_subdirectory(samples/mfc/standard/02_Modeling)
|
||||
add_subdirectory(samples/mfc/standard/03_Viewer2d)
|
||||
add_subdirectory(samples/mfc/standard/04_Viewer3d)
|
||||
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)
|
||||
add_subdirectory(samples/mfc/standard/03_ImportExport)
|
||||
add_subdirectory(samples/mfc/standard/04_HLR)
|
||||
|
||||
message (STATUS "Info: \(${CURRENT_TIME}\) MFC Sample projects added")
|
||||
endif()
|
||||
|
@@ -115,6 +115,9 @@ if (MSVC)
|
||||
endif()
|
||||
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")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
|
||||
endif()
|
||||
if (BUILD_SHARED_LIBS)
|
||||
if (APPLE)
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-lm ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
|
@@ -1251,13 +1251,13 @@ proc wokdep:SearchX11 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64
|
||||
return "$isFound"
|
||||
}
|
||||
|
||||
set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH"]
|
||||
if { "$aXmuLibPath" == "" } {
|
||||
set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH" "/usr/X11/lib"]
|
||||
if { "$aXmuLibPath" != "" } {
|
||||
set aX11LibPath [wokdep:SearchLib "X11" "$::ARCH"]
|
||||
if { "$aX11LibPath" == "" } {
|
||||
set aX11LibPath [wokdep:SearchLib "X11" "$::ARCH" "/usr/X11/lib"]
|
||||
if { "$aX11LibPath" != "" } {
|
||||
#lappend ::CSF_OPT_LIB$::ARCH "/usr/X11/lib"
|
||||
} 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"
|
||||
}
|
||||
}
|
||||
|
@@ -236,9 +236,11 @@ proc gendoc {args} {
|
||||
return -1
|
||||
}
|
||||
} 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
|
||||
}
|
||||
|
||||
if {$args_values(s) != "NULL"} {
|
||||
set SEARCH_MODE $args_values(s)
|
||||
} else {
|
||||
@@ -247,6 +249,9 @@ proc gendoc {args} {
|
||||
}
|
||||
} elseif {$arg_n == "mathjax"} {
|
||||
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)
|
||||
if {[file exist [file join $possible_mathjax_loc $mathjax_js_name]]} {
|
||||
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 " MathJax will be used from $MATHJAX_LOCATION"
|
||||
}
|
||||
} else {
|
||||
puts "Warning: MathJax is not used with pdf and will be ignored."
|
||||
}
|
||||
} else {
|
||||
puts "\nWrong argument: $arg_n"
|
||||
OCCDoc_PrintHelpMessage
|
||||
@@ -833,6 +835,7 @@ proc OCCDoc_MakeDoxyfile {docType outDir tagFileDir {doxyFileName} {generatorMod
|
||||
puts $doxyFile "PROJECT_NUMBER = $occt_version"
|
||||
puts $doxyFile "OUTPUT_DIRECTORY = $outDir/."
|
||||
puts $doxyFile "PROJECT_LOGO = [OCCDoc_GetDoxDir]/resources/occ_logo.png"
|
||||
puts $doxyFile "EXAMPLE_PATH = [OCCDoc_GetSourceDir $productsPath]"
|
||||
|
||||
set PARAM_INPUT "INPUT ="
|
||||
set PARAM_IMAGEPATH "IMAGE_PATH = [OCCDoc_GetDoxDir]/resources/ "
|
||||
|
@@ -39,6 +39,10 @@ win32 {
|
||||
DEFINES += _SCL_SECURE_NO_WARNINGS
|
||||
} else {
|
||||
CONFIG += c++11
|
||||
clang {
|
||||
QMAKE_CFLAGS_WARN_ON += -Wshorten-64-to-32
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Wshorten-64-to-32
|
||||
}
|
||||
QMAKE_CFLAGS += -fexceptions
|
||||
QMAKE_CXXFLAGS += -fexceptions
|
||||
QMAKE_CXXFLAGS += -fvisibility=default
|
||||
|
@@ -26,6 +26,7 @@ HAVE_FFMPEG { CSF_FFmpeg = -lavcodec -lavformat -lswscale -lavutil }
|
||||
HAVE_TBB { CSF_TBB = -ltbb -ltbbmalloc }
|
||||
HAVE_ZLIB { CSF_ZLIB = -lzlib }
|
||||
HAVE_LIBLZMA { CSF_LIBLZMA = -lliblzma }
|
||||
HAVE_DRACO { CSF_Draco = -ldraco }
|
||||
win32 {
|
||||
CSF_kernel32 = -lkernel32
|
||||
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%
|
||||
)
|
||||
|
||||
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 ["%TK_DIR%"] == [""] set "PATH=%TK_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 ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_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 -----
|
||||
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} "\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} "\nEXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/src")
|
||||
|
||||
set (OCCT_ARTICLE_PARAM_INPUT "INPUT =")
|
||||
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_D3D.md
|
||||
../samples/qt/AndroidQt/ReadMe.md
|
||||
../samples/qt/IESample/ReadMe.md
|
||||
../samples/qt/OCCTOverview/ReadMe.md
|
||||
../samples/qt/Tutorial/ReadMe.md
|
||||
../samples/java/jniviewer/ReadMe.md
|
||||
../samples/ios/UIKitSample/ReadMe.md
|
||||
../samples/webgl/ReadMe.md
|
||||
../samples/glfw/readme.md
|
||||
samples/ocaf.md
|
||||
samples/ocaf_func.md
|
||||
samples/draw_scripts.md
|
||||
|
||||
samples/novice_guide.md
|
||||
tutorial/tutorial.md
|
||||
|
||||
build/build_upgrade.md
|
||||
|
@@ -6,6 +6,8 @@
|
||||
|
||||
tutorial/tutorial.md
|
||||
|
||||
samples/novice_guide.md
|
||||
|
||||
upgrade/upgrade.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:
|
||||
- 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**.
|
||||
- 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.
|
||||
|
||||
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
|
||||
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:
|
||||
|
||||
|
@@ -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_iges_1 "IGES" (up to 5.3).
|
||||
* **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).
|
||||
* **STL** converter translates Open CASCADE shapes to STL files.
|
||||
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 |
|
||||
| --------- | ----------- |
|
||||
| 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+ |
|
||||
| OS X / macOS | XCode 6 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
|
||||
|
||||
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
|
||||
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 |
|
||||
| Intel TBB 4.x or later | https://www.threadingbuildingblocks.org/ | All | Optional (advanced parallelization of algorithms) |
|
||||
| OpenGL 3.3+, OpenGL ES 2.0+ | System | Visualization | Required |
|
||||
| OpenVR 1.10+ | https://github.com/ValveSoftware/openvr | Visualization | Optional (VR support) |
|
||||
| Direct3D 9 | Windows | Visualization | Optional (integration with GUI using Direct3D) |
|
||||
| FreeType 2.4+ | https://www.freetype.org/download.html | Visualization | Optional (text rendering) |
|
||||
| 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 | Optional (video recording) |
|
||||
| VTK 6.1+ | https://www.vtk.org/download/ | Visualization | Optional (VTK integration) |
|
||||
| Flex 2.6.4+ and Bison 3.7.1+ | https://sourceforge.net/projects/winflexbison/ | Data Exchange | Optional (update of STEP and ExprIntrp parsers) |
|
||||
| RapidJSON 1.1+ | https://rapidjson.org/ | Data Exchange | Optional (reading glTF files) |
|
||||
| Draco 1.4.1+ | https://github.com/google/draco | Data Exchange | Optional (reading compressed glTF files) |
|
||||
| Tcl/Tk 8.6.3+ <br> or ActiveTcl 8.6 | https://www.tcl.tk/software/tcltk/download.html <br> https://www.activestate.com/activetcl/downloads | DRAW Test Harness | Required |
|
||||
| Qt Desktop: Qt 4.8.6+ <br> Android: Qt 5.3.2+ | https://www.qt.io/download/ | Samples and demos | Optional (Qt samples) |
|
||||
| Doxygen 1.8.5+ | https://www.doxygen.nl/download.html | Documentation | Required |
|
||||
| Graphviz 2.38+ | https://graphviz.org/ | Documentation | Optional (dependency graphs) |
|
||||
| CMake 2.8+ | https://cmake.org/ | Configuration | Build from sources |
|
||||
| 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 for using 3D Viewer |
|
||||
| OpenVR 1.10+ | https://github.com/ValveSoftware/openvr | Visualization | VR (Virtual Reality) support in 3D Viewer |
|
||||
| FreeType 2.4+ | https://www.freetype.org/download.html | Visualization | Text rendering in 3D Viewer |
|
||||
| FreeImage 3.17+ | https://sourceforge.net/projects/freeimage/files | Visualization | Reading/writing image files |
|
||||
| FFmpeg 3.1+ | https://www.ffmpeg.org/download.html | Visualization | Video recording |
|
||||
| VTK 6.1+ | https://www.vtk.org/download/ | IVtk | VTK integration module |
|
||||
| Flex 2.6.4+ and Bison 3.7.1+ | https://sourceforge.net/projects/winflexbison/ | Data Exchange | Updating STEP and ExprIntrp parsers |
|
||||
| RapidJSON 1.1+ | https://rapidjson.org/ | Data Exchange | Reading glTF files |
|
||||
| Draco 1.4.1+ | https://github.com/google/draco | Data Exchange | Reading compressed glTF files |
|
||||
| Tcl/Tk 8.6.3+ | https://www.tcl.tk/software/tcltk/download.html | DRAW Test Harness | Tcl interpretor in Draw module |
|
||||
| Qt 5.3.2+ | https://www.qt.io/download/ | Inspector and Samples | Inspector Qt samples and |
|
||||
| Doxygen 1.8.5+ | https://www.doxygen.nl/download.html | Documentation | (Re)generating documentation |
|
||||
| Graphviz 2.38+ | https://graphviz.org/ | Documentation | Generating dependency graphs |
|
||||
|
||||
@subsection intro_req_hw Hardware
|
||||
|
||||
@@ -398,7 +397,7 @@ Don't forget to report these bugs to vendors.
|
||||
|
||||
@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
|
||||
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/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;
|
||||
* **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;
|
||||
@@ -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;
|
||||
* **tests** This folder contains scripts for OCCT testing.
|
||||
* **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
|
||||
|
||||
@@ -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
|
||||
$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
|
||||
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_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_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_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*;
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
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
|
||||
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.
|
||||
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.
|
||||
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
|
||||
(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/).
|
||||
|
@@ -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
|
||||
|
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
|
||||
|
@@ -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.
|
||||
|
@@ -1,176 +1,59 @@
|
||||
Tutorials and Samples {#samples}
|
||||
=====================
|
||||
|
||||
Tutorial: Modelling a Bottle
|
||||
----------------------------
|
||||
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.
|
||||
- @subpage samples__tutorials
|
||||
* @ref samples__novice_guide
|
||||
<br>A document providing an introductory information to newcomers.
|
||||
* @ref samples__draw_scripts
|
||||
<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++.
|
||||
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.
|
||||
@page samples__tutorials Tutorials and Demos
|
||||
- @subpage samples__novice_guide
|
||||
- @subpage samples__draw_scripts
|
||||
- @subpage occt__tutorial
|
||||
- @subpage samples__ocaf
|
||||
- @subpage samples__ocaf_func
|
||||
|
||||
Read more about @subpage occt__tutorial
|
||||
|
||||
MFC
|
||||
---------
|
||||
|
||||
Visual C++ programming samples containing 10 Visual C++ projects
|
||||
illustrating how to use a particular module or functionality.
|
||||
|
||||
The list of MFC samples:
|
||||
|
||||
* Geometry
|
||||
* Modeling
|
||||
* 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
|
||||
@page samples__projects Sample Projects
|
||||
- @subpage samples_qt_iesample
|
||||
- @subpage samples_qml_android_occt
|
||||
- @subpage samples_qt_tutorial
|
||||
- @subpage samples_qt_overview
|
||||
- @subpage samples_mfc_standard
|
||||
- @subpage samples_csharp_occt
|
||||
- @subpage samples_csharp_direct3d
|
||||
- @subpage occt_samples_webgl
|
||||
- @subpage samples_java_android_occt
|
||||
- @subpage occt_samples_ios_uikit
|
||||
- @subpage occt_samples_glfw
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Tutorial {#occt__tutorial}
|
||||
Modeling: Bottle Tutorial {#occt__tutorial}
|
||||
=======
|
||||
|
||||
@tableofcontents
|
||||
|
@@ -2293,3 +2293,31 @@ void Perform(const Handle(Adaptor3d_CurveOnSurface)& theCurveOnSurface,
|
||||
- *BRepAlgo_Cut*
|
||||
- *BRepAlgo_Section*
|
||||
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();
|
||||
}
|
||||
~~~
|
||||
~~~~
|
||||
|
||||
It is also possible to check parallelism of two vectors as follows:
|
||||
~~~~{.cpp}
|
||||
@@ -1845,7 +1845,7 @@ bool areParallelVectors (const gp_Vec& theVec1, const gp_Vec& theVec2)
|
||||
{
|
||||
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.
|
||||
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();
|
||||
}
|
||||
~~~
|
||||
~~~~
|
||||
|
||||
#### Precision::Confusion
|
||||
|
||||
@@ -1875,7 +1875,7 @@ bool isNullVector (const gp_Vec& theVec)
|
||||
{
|
||||
return theVec.Magnitude() < Precision::Confusion();
|
||||
}
|
||||
~~~
|
||||
~~~~
|
||||
|
||||
#### Precision::Intersection
|
||||
|
||||
|
@@ -2,41 +2,21 @@
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="492.48849"
|
||||
height="306.85541"
|
||||
width="500"
|
||||
height="240"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="shape_heal.svg">
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||
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
|
||||
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
|
||||
id="clipEmfPath1-1"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
@@ -115,9 +95,9 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="346.95854"
|
||||
inkscape:cy="41.972723"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="260.39207"
|
||||
inkscape:cy="156.2706"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
@@ -129,7 +109,9 @@
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
fit-margin-bottom="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
width="500px" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
@@ -138,7 +120,6 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
@@ -159,240 +140,324 @@
|
||||
id="g3033" />
|
||||
<g
|
||||
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
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
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"
|
||||
transform="translate(28.519633,1.8811043)" />
|
||||
transform="translate(32.519633,-72.118896)" />
|
||||
<g
|
||||
id="g3196">
|
||||
<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 28.510257,137.89036 0,21.24618 141.763783,0 0,-21.24618 z"
|
||||
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 32.510257,63.89036 V 85.13654 H 174.27404 V 63.89036 Z"
|
||||
id="path3259" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="74.574112"
|
||||
y="153.24837"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="78.230995"
|
||||
y="77.499275"
|
||||
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>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="124.52896"
|
||||
y="153.24837"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="128.52896"
|
||||
y="79.248367"
|
||||
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>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
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"
|
||||
transform="translate(28.519633,1.8811043)" />
|
||||
<g
|
||||
id="g3188"
|
||||
transform="translate(-1.45134)">
|
||||
<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 205.34932,137.89036 0,21.24618 141.76378,0 0,-21.24618 z"
|
||||
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 208.41918,63.89036 V 85.13654 H 350.18296 V 63.89036 Z"
|
||||
id="path3267" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="236.58987"
|
||||
y="153.24837"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="239.62212"
|
||||
y="77.42511"
|
||||
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>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="315.94757"
|
||||
y="153.24837"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="319.94757"
|
||||
y="79.248367"
|
||||
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>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
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"
|
||||
transform="translate(28.519633,1.8811043)" />
|
||||
<g
|
||||
id="g3192">
|
||||
<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 378.29739,137.70284 0,21.24617 141.76378,0 0,-21.24617 z"
|
||||
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 382.29739,63.70284 V 84.94901 H 524.06117 V 63.70284 Z"
|
||||
id="path3275" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="411.35684"
|
||||
y="152.94833"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="415.51996"
|
||||
y="77.311752"
|
||||
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>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="486.9642"
|
||||
y="152.94833"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="490.9642"
|
||||
y="78.948334"
|
||||
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>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
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"
|
||||
transform="translate(28.519633,1.8811043)" />
|
||||
<g
|
||||
id="g3180"
|
||||
transform="translate(0,-5.3756104)">
|
||||
<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.96784,273.2808 0,21.24618 141.76378,0 0,-21.24618 z"
|
||||
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 206.96784,199.2808 v 21.24618 H 348.73162 V 199.2808 Z"
|
||||
id="path3283" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="238.39005"
|
||||
y="288.56381"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="242.36592"
|
||||
y="212.88971"
|
||||
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>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="309.64694"
|
||||
y="288.56381"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="313.64694"
|
||||
y="214.56381"
|
||||
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>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
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"
|
||||
transform="translate(28.519633,1.8811043)" />
|
||||
<g
|
||||
id="g3184"
|
||||
transform="translate(-0.93759,-7.9384003)">
|
||||
<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 203.90543,210.83618 0,21.24617 141.76378,0 0,-21.24617 z"
|
||||
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 207.90543,136.83618 v 21.24617 h 141.76378 v -21.24617 z"
|
||||
id="path3291" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="234.78969"
|
||||
y="226.15668"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="238.83438"
|
||||
y="150.37093"
|
||||
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>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="314.89746"
|
||||
y="226.15668"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="318.89746"
|
||||
y="152.15668"
|
||||
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>
|
||||
<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"
|
||||
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)"
|
||||
d="m 74.257219,158.83061 0,182.75835"
|
||||
d="M 74.257219,158.83061 V 341.58896"
|
||||
id="path3297"
|
||||
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 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"
|
||||
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"
|
||||
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 206.03025,258.9126 v 21.24618 H 347.79403 V 258.9126 Z"
|
||||
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
|
||||
xml:space="preserve"
|
||||
x="249.19109"
|
||||
y="348.2706"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="252.97264"
|
||||
y="272.37869"
|
||||
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>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
x="296.7457"
|
||||
y="348.2706"
|
||||
style="font-size:11.25109386px;font-style:normal;font-weight:bold;text-align:start;text-anchor:start;fill:#000000;font-family:Arial"
|
||||
x="300.7457"
|
||||
y="274.2706"
|
||||
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>
|
||||
<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"
|
||||
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)"
|
||||
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"
|
||||
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
|
||||
id="g3389"
|
||||
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>
|
||||
id="path2302">
|
||||
<path
|
||||
id="path3393"
|
||||
d="m 0.74824682,0.41458137 0,183.67838863"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.46715069px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
id="path1187"
|
||||
style="color:#000000;fill:#000000;fill-rule:evenodd;-inkscape-stroke: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 "
|
||||
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>
|
||||
</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
|
||||
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
|
||||
**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 second application is called *IE_WPF_WinForms* and uses Windows Presentation Foundation.
|
||||
|
||||
@figure{samples_c__ie.png}
|
||||
|
||||
Note a few important details:
|
||||
|
||||
- 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
|
||||
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,
|
||||
**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;
|
||||
if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
|
||||
{
|
||||
myResult << "Object cannot be modify.";
|
||||
myResult << "Object cannot be modified.";
|
||||
return;
|
||||
}
|
||||
// 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;
|
||||
if (!aLabel.FindAttribute(TFunction_Function::GetID(), aFunction))
|
||||
{
|
||||
myResult << "Object cannot be modify.";
|
||||
myResult << "Object cannot be modified.";
|
||||
return;
|
||||
}
|
||||
// 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.
|
||||
|
||||
Use CMake to build the sample.
|
||||
|
||||
Platforms: Windows, macOS, Linux
|
||||
|
||||
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.
|
||||
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 viewer supports zoom, pan and rotate actions. The viewer supports selection of solids as well.
|
||||
|
||||
@figure{sample_ios_uikit.png}
|
||||
|
||||
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.
|
||||
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.
|
||||
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 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
|
||||
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):
|
||||
- Android SDK (API level 21 or higher).
|
||||
- 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(Prs3d_Drawer) CurDrawer = aSurface->Attributes();
|
||||
CurDrawer->SetOwnLineAspects();
|
||||
CurDrawer->UIsoAspect()->SetNumber(10);
|
||||
CurDrawer->VIsoAspect()->SetNumber(10);
|
||||
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)),
|
||||
myLength (aLength)
|
||||
{
|
||||
myArrowLength = myDrawer->ArrowAspect()->Length();
|
||||
myArrowLength = 1.0;
|
||||
}
|
||||
|
||||
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))
|
||||
{
|
||||
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(Prs3d_Drawer) aPoleDrawer = new Prs3d_Drawer();
|
||||
aPoleDrawer->SetOwnLineAspects();
|
||||
aPoleDrawer->SetLineAspect (new Prs3d_LineAspect (Quantity_NOC_YELLOW3, Aspect_TOL_SOLID, 1.0));
|
||||
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 |