From: <hug...@li...> - 2010-06-06 16:56:12
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/8a42bb8b4015 changeset: 4067:8a42bb8b4015 user: Darko Makreshanski <dma...@gm...> date: Sat May 22 14:21:23 2010 +0200 description: Added branch gsoc2010_panorama_overview details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/d8cc7c295349 changeset: 4068:d8cc7c295349 user: Darko Makreshanski <dma...@gm...> date: Sun Jun 06 18:22:40 2010 +0200 description: added dockable gl window support with AUI details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/0520c80b8821 changeset: 4069:0520c80b8821 user: Darko Makreshanski <dma...@gm...> date: Sun Jun 06 18:43:16 2010 +0200 description: merged with default diffstat: .hgignore | 3 + CMakeLists.txt | 2 +- mac/ExternalPrograms/readme.txt | 68 +- mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt | 50 - mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt.org | 66 + mac/ExternalPrograms/scripts/SetEnv-leopard.txt | 66 - mac/ExternalPrograms/scripts/SetEnv-leopard.txt.org | 66 + mac/ExternalPrograms/scripts/SetEnv-universal.txt | 53 - mac/ExternalPrograms/scripts/SetEnv-universal.txt.org | 53 + mac/Hugin.xcodeproj/project.pbxproj | 8 +- mac/patch-xrc.sh | 15 +- src/hugin1/hugin/CPDetectorConfig_default.h | 4 +- src/hugin1/hugin/GLPreviewFrame.cpp | 109 +- src/hugin1/hugin/GLPreviewFrame.h | 59 + src/hugin1/hugin/GLViewer.cpp | 44 +- src/hugin1/hugin/GLViewer.h | 4 +- src/hugin1/hugin/LensPanel.cpp | 2 +- src/translations/bg.po | 1981 ++-- src/translations/ca_ES.po | 1998 ++-- src/translations/cs_CZ.po | 3553 +++---- src/translations/de.po | 4813 +++++----- src/translations/en_GB.po | 3411 ++++---- src/translations/es.po | 1978 ++-- src/translations/fi.po | 3913 +++----- src/translations/fr.po | 1978 ++-- src/translations/hu.po | 1978 ++-- src/translations/hugin.pot | 3515 ++++---- src/translations/it.po | 2017 ++-- src/translations/ja.po | 1979 ++-- src/translations/ko.po | 1974 ++-- src/translations/nl.po | 4910 ++++++----- src/translations/pl.po | 2094 ++-- src/translations/pt_BR.po | 1978 ++-- src/translations/ru.po | 1979 ++-- src/translations/sk.po | 2052 ++-- src/translations/sl.po | 1980 ++-- src/translations/sv.po | 4258 ++++----- src/translations/uk.po | 1980 ++-- src/translations/zh_CN.po | 3598 +++----- src/translations/zh_TW.po | 1974 ++-- 40 files changed, 30477 insertions(+), 32086 deletions(-) diffs (truncated from 126663 to 500 lines): diff -r c43fd725ca69 -r 0520c80b8821 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Sun Jun 06 18:43:16 2010 +0200 @@ -0,0 +1,3 @@ +# ignore editors backup file +glob:*~$ +glob:rev.txt diff -r c43fd725ca69 -r 0520c80b8821 CMakeLists.txt --- a/CMakeLists.txt Thu May 20 11:38:11 2010 -0700 +++ b/CMakeLists.txt Sun Jun 06 18:43:16 2010 +0200 @@ -138,7 +138,7 @@ # This must come before FINDs for tiff, jpeg, png, zlib to enable # finding the wxWidgets distributions of those packages (Win32 only). -SET(wxWidgets_USE_LIBS base core xrc html xml adv gl net) +SET(wxWidgets_USE_LIBS base core aui xrc html xml adv gl net) FIND_PACKAGE(wxWidgets REQUIRED) # hugin requires wxwidgets 2.7.0 or above diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/readme.txt --- a/mac/ExternalPrograms/readme.txt Thu May 20 11:38:11 2010 -0700 +++ b/mac/ExternalPrograms/readme.txt Sun Jun 06 18:43:16 2010 +0200 @@ -1,1 +1,67 @@ -External Programs (This is for 10.4 or above) HOWTO: 1. Download the source package of the external programs. You typically want to place it in the "ExternalPrograms" folder. 2. Edit ExternalPrograms/scripts/SetEnv-*.txt file appropriately, especially the myREPOSITORYDIR variable. 3. Open a Terminal window (bash is preferred). 5. 'cd' into the directory of source you want to compile. (eg. 'cd ExternalPrograms/jpeg-6b') 4. Set the variables for the compilation. (eg. 'source ../scripts/SetEnv-universal.txt') 6. Using the appropriate shell script, build the source. (eg. 'sh ../scripts/libjpeg.sh') RESULT: The programs and libraries will be installed into $myREPOSITORYDIR, which you can manage independently from the systems you are currently using (e.g /usr, /usr/local, /opt, /sw). USAGE: When compiling programs from source specifying the above directory as prefix. You probably have to specify the correct SDK (-isysroot) and MacOS target version (-mmacosx-version-min) as well. You can make multiple 'repositories' as well. For example, you can make one for statically and one for dynamically linked product, or ones with different target architecture/OS versions. PROGRAMS: The following sets are recommended and assumed for building Hugin. Different versions may require editing the version numbers in the scripts. [Dynamic Build for distributable Hugin.app and PTBatcherGUI.app] boost (1.39) libexpat (2.0.1) libjpeg (6b) libpng (1.2.38) libtiff (3.8.2) ilmbase (1.0.1) openexr16 (1.6.1) pano13 (2.9.14) wxmac28 (2.8.10) static/libexiv2 (0.18.2) static/lcms (1.17) static/libxmi (1.2) static/libglew (1.5.1) gnumake (Darwin 9/gnumake-119/make) enblend (3.2) [Static Build for distributable command-line tools] static/boost (1.39) static/libexpat (2.0.1) static/libjpeg (6b) static/libpng (1.2.38) static/libtiff (3.8.2) static/ilmbase (1.0.1) static/openexr16 (1.6.1) static/pano13 (2.9.14) static/wxmac28 (2.8.10) static/libexiv2 (0.18.2) static/lcms (1.17) static/libxmi (1.2) static/libglew (1.5.1) gnumake (Darwin 9 source: gnumake-119/make) enblend31 (3.2) LICENSE: The scripts for compiling universal builds are originally copyrighted by Ippei Ukai (2007-2008), and distributed under the modified BSD license. $Id: howto.txt 1902 2007-02-04 22:27:47Z ippei $ \ No newline at end of file +External Programs +(This is for 10.4 or above) + + +HOWTO: +1. Download the source package of the external programs. You typically want to place it in the "ExternalPrograms" folder. +2. Edit ExternalPrograms/scripts/SetEnv-*.txt.org file appropriately, especially the myREPOSITORYDIR variable and + save it as SetEnv-*.txt. +3. Open a Terminal window (bash is preferred). +5. 'cd' into the directory of source you want to compile. (eg. 'cd ExternalPrograms/jpeg-6b') +4. Set the variables for the compilation. (eg. 'source ../scripts/SetEnv-universal.txt') +6. Using the appropriate shell script, build the source. (eg. 'sh ../scripts/libjpeg.sh') + + +RESULT: +The programs and libraries will be installed into $myREPOSITORYDIR, which you can manage independently from the systems you are currently using (e.g /usr, /usr/local, /opt, /sw). + + +USAGE: +When compiling programs from source specifying the above directory as prefix. You probably have to specify the correct SDK (-isysroot) and MacOS target version (-mmacosx-version-min) as well. +You can make multiple 'repositories' as well. For example, you can make one for statically and one for dynamically linked product, or ones with different target architecture/OS versions. + + +PROGRAMS: +The following sets are recommended and assumed for building Hugin. Different versions may require editing the version numbers in the scripts. + +[Dynamic Build for distributable Hugin.app and PTBatcherGUI.app] +boost (1.41) +libexpat (2.0.1) +libiconv +gettext (0.17) +libjpeg (8) +libpng (1.2.41) +libtiff (3.8.2) +ilmbase (1.0.1) +openexr16 (1.6.2) +pano13 (2.9.17) +wxmac28 (2.8.11) +libexiv2 (0.19) +lcms (1.17) +libxmi (1.2) +libglew (1.5.1) +gnumake (Darwin 9/gnumake-119/make) +enblend (4.0) + +[Static Build for distributable command-line tools] +static/boost (1.39) +static/libexpat (2.0.1) +static/libjpeg (6b) +static/libpng (1.2.38) +static/libtiff (3.8.2) +static/ilmbase (1.0.1) +static/openexr16 (1.6.1) +static/pano13 (2.9.14) +static/wxmac28 (2.8.10) +static/libexiv2 (0.18.2) +static/lcms (1.17) +static/libxmi (1.2) +static/libglew (1.5.1) +gnumake (Darwin 9 source: gnumake-119/make) +enblend31 (3.2) + +LICENSE: +The scripts for compiling universal builds are originally copyrighted by Ippei Ukai (2007-2008), and distributed under the modified BSD license. + + +$Id: howto.txt 1902 2007-02-04 22:27:47Z ippei diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt --- a/mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt Thu May 20 11:38:11 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -# Configuration for 4 part universal build, only possible from Leopard -# Copyright (c) 2008, Ippei Ukai - - -# has to be the absolute path from / -myREPOSITORYDIR="/PATH2HUGIN/mac/ExternalPrograms/repository"; - -# number of jobs that make can use, probably same as the number of CPUs. -#PROCESSNUM=2 -PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); - - -#export \ -# CC="gcc-4.2" \ -# CXX="g++-4.2"; - -mkdir -p $myREPOSITORYDIR; - -export \ - REPOSITORYDIR="$myREPOSITORYDIR" \ - ARCHS="ppc i386" \ - \ - ppcTARGET="powerpc-apple-darwin9" \ - ppcOSVERSION="10.5" \ - ppcMACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - ppcOPTIMIZE="-mtune=G5 -ftree-vectorize" \ - ppcCC="gcc-4.2" \ - ppcCXX="g++-4.2" \ - \ - i386TARGET="i386-apple-darwin9" \ - i386OSVERSION="10.5" \ - i386MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ - i386CC="gcc-4.2" \ - i386CXX="g++-4.2" \ - \ - OTHERARGs="" \ - OTHERMAKEARGs="--jobs=$PROCESSNUM"; - - -# Deprecated: -export \ - ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ - i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION" \ - -# cmake settings -export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" -export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" - -# $Id: SetEnv-universal.txt 2238 2007-07-08 11:19:04Z ippei $ diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt.org Sun Jun 06 18:43:16 2010 +0200 @@ -0,0 +1,66 @@ +# Configuration for 4 part universal build, only possible from Leopard +# Copyright (c) 2008, Ippei Ukai + + +# has to be the absolute path from / +myREPOSITORYDIR="/Users/Shared/development/hugin_related/ExternalPrograms/repository"; + +# number of jobs that make can use, probably same as the number of CPUs. +#PROCESSNUM=2 +PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); + + +#export \ +# CC="gcc-4.2" \ +# CXX="g++-4.2"; + +mkdir -p $myREPOSITORYDIR; + +export \ + REPOSITORYDIR="$myREPOSITORYDIR" \ + ARCHS="ppc i386 ppc64 x86_64" \ + \ + ppcTARGET="powerpc-apple-darwin9" \ + ppcOSVERSION="10.5" \ + ppcMACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + ppcOPTIMIZE="-mcpu=G3 -mtune=G4 -ftree-vectorize" \ + ppcCC="gcc-4.2" \ + ppcCXX="g++-4.2" \ + \ + i386TARGET="i386-apple-darwin9" \ + i386OSVERSION="10.5" \ + i386MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ + i386CC="gcc-4.2" \ + i386CXX="g++-4.2" \ + \ + ppc64TARGET="powerpc64-apple-darwin9" \ + ppc64OSVERSION="10.5" \ + ppc64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + ppc64OPTIMIZE="-mcpu=G5 -mtune=G5 -ftree-vectorize" \ + ppc64CC="gcc-4.2" \ + ppc64CXX="g++-4.2" \ + \ + x64TARGET="x86_64-apple-darwin9" \ + x64OSVERSION="10.5" \ + x64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + x64OPTIMIZE="-march=core2 -mtune=core2 -ftree-vectorize" \ + x64CC="gcc-4.2" \ + x64CXX="g++-4.2" \ + \ + OTHERARGs="" \ + OTHERMAKEARGs="--jobs=$PROCESSNUM"; + + +# Deprecated: +export \ + ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ + i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION" \ + ppc64ONLYARG="$ppc64OPTIMIZE -mmacosx-version-min=$ppc64OSVERSION" \ + x64ONLYARG="$x64OPTIMIZE -mmacosx-version-min=$x64OSVERSION"; + +# cmake settings +export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" +export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" + +# $Id: SetEnv-universal.txt 2238 2007-07-08 11:19:04Z ippei $ diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/scripts/SetEnv-leopard.txt --- a/mac/ExternalPrograms/scripts/SetEnv-leopard.txt Thu May 20 11:38:11 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -# Configuration for 4 part universal build, only possible from Leopard -# Copyright (c) 2008, Ippei Ukai - - -# has to be the absolute path from / -myREPOSITORYDIR="/PATH2HUGIN/mac/ExternalPrograms/repository"; - -# number of jobs that make can use, probably same as the number of CPUs. -#PROCESSNUM=2 -if [ $(uname -p) = i386 ] ; then - PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); -else - PROCESSNUM="1" -fi - -mkdir -p $myREPOSITORYDIR; - -export \ - REPOSITORYDIR="$myREPOSITORYDIR" \ - ARCHS="ppc i386 ppc64 x86_64" \ - \ - ppcTARGET="powerpc-apple-darwin8" \ - ppcOSVERSION="10.4" \ - ppcMACSDKDIR="/Developer/SDKs/MacOSX10.4u.sdk" \ - ppcOPTIMIZE="-mcpu=G3 -mtune=G4 -ftree-vectorize" \ - ppcCC="gcc-4.0" \ - ppcCXX="g++-4.0" \ - \ - i386TARGET="i386-apple-darwin8" \ - i386OSVERSION="10.4" \ - i386MACSDKDIR="/Developer/SDKs/MacOSX10.4u.sdk" \ - i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ - i386CC="gcc-4.0" \ - i386CXX="g++-4.0" \ - \ - ppc64TARGET="powerpc64-apple-darwin9" \ - ppc64OSVERSION="10.5" \ - ppc64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - ppc64OPTIMIZE="-mcpu=G5 -mtune=G5 -ftree-vectorize" \ - ppc64CC="gcc-4.2" \ - ppc64CXX="g++-4.2" \ - \ - x64TARGET="x86_64-apple-darwin9" \ - x64OSVERSION="10.5" \ - x64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - x64OPTIMIZE="-march=core2 -mtune=core2 -ftree-vectorize" \ - x64CC="gcc-4.2" \ - x64CXX="g++-4.2" \ - \ - OTHERARGs="" \ - OTHERMAKEARGs="--jobs=$PROCESSNUM"; - - -# Deprecated: -export \ - ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ - i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION" \ - ppc64ONLYARG="$ppc64OPTIMIZE -mmacosx-version-min=$ppc64OSVERSION" \ - x64ONLYARG="$x64OPTIMIZE -mmacosx-version-min=$x64OSVERSION"; - - -# cmake settings -export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" -export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" - -# $Id: SetEnv-universal.txt 2238 2007-07-08 11:19:04Z ippei $ diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/scripts/SetEnv-leopard.txt.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mac/ExternalPrograms/scripts/SetEnv-leopard.txt.org Sun Jun 06 18:43:16 2010 +0200 @@ -0,0 +1,66 @@ +# Configuration for 4 part universal build, only possible from Leopard +# Copyright (c) 2008, Ippei Ukai + + +# has to be the absolute path from / +myREPOSITORYDIR="/PATH2HUGIN/mac/ExternalPrograms/repository"; + +# number of jobs that make can use, probably same as the number of CPUs. +#PROCESSNUM=2 +if [ $(uname -p) = i386 ] ; then + PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); +else + PROCESSNUM="1" +fi + +mkdir -p $myREPOSITORYDIR; + +export \ + REPOSITORYDIR="$myREPOSITORYDIR" \ + ARCHS="ppc i386 ppc64 x86_64" \ + \ + ppcTARGET="powerpc-apple-darwin8" \ + ppcOSVERSION="10.4" \ + ppcMACSDKDIR="/Developer/SDKs/MacOSX10.4u.sdk" \ + ppcOPTIMIZE="-mcpu=G3 -mtune=G4 -ftree-vectorize" \ + ppcCC="gcc-4.0" \ + ppcCXX="g++-4.0" \ + \ + i386TARGET="i386-apple-darwin8" \ + i386OSVERSION="10.4" \ + i386MACSDKDIR="/Developer/SDKs/MacOSX10.4u.sdk" \ + i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ + i386CC="gcc-4.0" \ + i386CXX="g++-4.0" \ + \ + ppc64TARGET="powerpc64-apple-darwin9" \ + ppc64OSVERSION="10.5" \ + ppc64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + ppc64OPTIMIZE="-mcpu=G5 -mtune=G5 -ftree-vectorize" \ + ppc64CC="gcc-4.2" \ + ppc64CXX="g++-4.2" \ + \ + x64TARGET="x86_64-apple-darwin9" \ + x64OSVERSION="10.5" \ + x64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + x64OPTIMIZE="-march=core2 -mtune=core2 -ftree-vectorize" \ + x64CC="gcc-4.2" \ + x64CXX="g++-4.2" \ + \ + OTHERARGs="" \ + OTHERMAKEARGs="--jobs=$PROCESSNUM"; + + +# Deprecated: +export \ + ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ + i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION" \ + ppc64ONLYARG="$ppc64OPTIMIZE -mmacosx-version-min=$ppc64OSVERSION" \ + x64ONLYARG="$x64OPTIMIZE -mmacosx-version-min=$x64OSVERSION"; + + +# cmake settings +export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" +export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" + +# $Id: SetEnv-universal.txt 2238 2007-07-08 11:19:04Z ippei $ diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/scripts/SetEnv-universal.txt --- a/mac/ExternalPrograms/scripts/SetEnv-universal.txt Thu May 20 11:38:11 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -# Configuration for 2 part universal build -# Copyright (c) 2007-2008, Ippei Ukai - - -# has to be the absolute path from / -myREPOSITORYDIR="/PATH2HUGIN/mac/ExternalPrograms/repository"; - -# number of jobs that make can use, probably same as the number of CPUs. -#PROCESSNUM=2 -if [ $(uname -p) = i386 ] ; then - PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); -else - PROCESSNUM="1" -fi - -mkdir -p $myREPOSITORYDIR; - -export \ - REPOSITORYDIR="$myREPOSITORYDIR" \ - ARCHS="ppc i386" \ - \ - ppcTARGET="powerpc-apple-darwin8" \ - ppcOSVERSION="10.4" \ - ppcMACSDKDIR="/Developer/SDKs/MacOSX10.4u.sdk" \ - ppcOPTIMIZE="-mcpu=G3 -mtune=G4 -ftree-vectorize" \ - ppcCC="gcc-4.0" \ - ppcCXX="g++-4.0" \ - \ - i386TARGET="i386-apple-darwin8" \ - i386OSVERSION="10.4" \ - i386MACSDKDIR="/Developer/SDKs/MacOSX10.4u.sdk" \ - i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ - i386CC="gcc-4.0" \ - i386CXX="g++-4.0" \ - \ - OTHERARGs="" \ - OTHERMAKEARGs="--jobs=$PROCESSNUM"; - - -# Deprecated: -export \ - ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ - i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION"; - - - -# cmake settings -export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" -export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" - - - -# $Id: SetEnv-universal.txt 1902 2007-02-04 22:27:47Z ippei $ diff -r c43fd725ca69 -r 0520c80b8821 mac/ExternalPrograms/scripts/SetEnv-universal.txt.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mac/ExternalPrograms/scripts/SetEnv-universal.txt.org Sun Jun 06 18:43:16 2010 +0200 @@ -0,0 +1,53 @@ +# Configuration for 2 part universal build +# Copyright (c) 2007-2008, Ippei Ukai + + +# has to be the absolute path from / +myREPOSITORYDIR="/PATH2HUGIN/mac/ExternalPrograms/repository"; + +# number of jobs that make can use, probably same as the number of CPUs. +#PROCESSNUM=2 +if [ $(uname -p) = i386 ] ; then + PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); +else + PROCESSNUM="1" +fi + +mkdir -p $myREPOSITORYDIR; + +export \ + REPOSITORYDIR="$myREPOSITORYDIR" \ + ARCHS="ppc i386" \ |
From: <hug...@li...> - 2010-07-07 14:21:06
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/9fa807d6fadd changeset: 4114:9fa807d6fadd user: Florian Achleitner <flo...@gm...> date: Wed Jul 07 10:03:45 2010 +0200 description: Add variable reference pattern in quoting regex details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/d945efd815b3 changeset: 4115:d945efd815b3 user: Florian Achleitner <flo...@gm...> date: Wed Jul 07 15:57:49 2010 +0200 description: add item storage functionality to Makefile details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/49ba80f5e1f2 changeset: 4116:49ba80f5e1f2 user: Florian Achleitner <flo...@gm...> date: Wed Jul 07 16:20:42 2010 +0200 description: add cast operator to string for MakefileItem and remove needless class. Not sure how useful that is .. diffstat: src/hugin_base/makefilelib/Makefile.cpp | 35 ++++++++++++++++++------ src/hugin_base/makefilelib/Makefile.h | 16 ++++++++++- src/hugin_base/makefilelib/MakefileItem.h | 15 +++------- src/hugin_base/makefilelib/Variable.h | 4 +- src/hugin_base/makefilelib/main.cpp | 44 ++++++++++++++++++++++++++++-- 5 files changed, 88 insertions(+), 26 deletions(-) diffs (240 lines): diff -r 0902ad5f07e7 -r 49ba80f5e1f2 src/hugin_base/makefilelib/Makefile.cpp --- a/src/hugin_base/makefilelib/Makefile.cpp Tue Jul 06 23:52:37 2010 +0200 +++ b/src/hugin_base/makefilelib/Makefile.cpp Wed Jul 07 16:20:42 2010 +0200 @@ -6,8 +6,10 @@ */ #include "Makefile.h" +#include "MakefileItem.h" #include <boost/regex.hpp> +using namespace std; namespace makefile { @@ -36,6 +38,8 @@ * - WIN32: $ --> $$, [ #=] --> escape with backslash * - others: $ --> $$, [ #:=] --> escape with backslash * + * All replacements take care of variable references and do not replace $(varname) patterns. + * * @note src/hugin_base/hugin_utils/platform.h is where the information is from. * Unfortunately there are lots of comments in that code, which say that the correctness * of the escaping rules is rather unsure. @@ -52,28 +56,41 @@ { case Makefile::SHELL: #ifdef WIN32 - toescape.assign("(\\$)|(\\\\)|(\\#)"); + toescape.assign("(\\$[^\\(])|(\\\\)|(\\#)"); // uses a nice regex feature "recursive expressions" for doing it all in one (subexpression) cascade. - output.assign("\\\"(?1\\$$&)(?2/)(?3\\\\$&)\\\""); + output.assign("(?1\\$$&)(?2/)(?3\\\\$&)"); + return std::string("\"") + boost::regex_replace(in, toescape, output, boost::match_default | boost::format_all) + "\""; #else - toescape.assign("(\\$)|([\\\\ \\~\"\\|\\'\\`\\{\\}\\[\\]\\(\\)\\*\\#\\:\\=])"); - output.assign("(?1\\\\\\$$&)(?2\\\\$&)"); + // because parenthesis are replaced too, the first pattern detects variable references and passes them unchanged. + toescape.assign("(\\$\\([^\\)]+\\))|(\\$)|([\\\\ \\~\"\\|\\'\\`\\{\\}\\[\\]\\(\\)\\*\\#\\:\\=])"); + output.assign("(?1$&)(?2\\\\\\$$&)(?3\\\\$&)"); + return boost::regex_replace(in, toescape, output, boost::match_default | boost::format_all); #endif break; case Makefile::MAKE: #ifdef WIN32 - toescape.assign("(\\$)|([ \\#\\=])"); + toescape.assign("(\\$[^\\(])|([ \\#\\=])"); output.assign("(?1\\$$&)(?2\\\\$&)"); + return boost::regex_replace(in, toescape, output, boost::match_default | boost::format_all); #else - toescape.assign("(\\$)|([ \\#\\:\\=])"); + // do not replace $ if followed by a (. To allow variable references. + toescape.assign("(\\$[^\\(])|([ \\#\\:\\=])"); output.assign("(?1\\$$&)(?2\\\\$&)"); + return boost::regex_replace(in, toescape, output, boost::match_default | boost::format_all); #endif break; default: - toescape.assign(".*"); - output.assign("$&"); + return std::string(in); } - return boost::regex_replace(in, toescape, output, boost::match_default | boost::format_all); +} + +int Makefile::writeMakefile(ostream& out) +{ + for(vector<MakefileItem*>::iterator i = items.begin(); i != items.end(); i++) + { + out << **i; + } + return items.size(); } } diff -r 0902ad5f07e7 -r 49ba80f5e1f2 src/hugin_base/makefilelib/Makefile.h --- a/src/hugin_base/makefilelib/Makefile.h Tue Jul 06 23:52:37 2010 +0200 +++ b/src/hugin_base/makefilelib/Makefile.h Wed Jul 07 16:20:42 2010 +0200 @@ -9,25 +9,39 @@ #define MAKEFILE_H_ #include <string> +#include <vector> +#include <iostream> /** * */ namespace makefile { - +class MakefileItem; /** * Container and Manager for all our \ref MakefileItem "MakefileItems". * It also contains some static utils and enums. */ class Makefile { + std::vector<MakefileItem*> items; public: Makefile(); virtual ~Makefile(); enum QuoteMode {MAKE, SHELL}; static std::string quote(const std::string& in, Makefile::QuoteMode mode); + + void add(MakefileItem& item) + { + items.push_back(&item); + } + void add(MakefileItem* item) + { + items.push_back(item); + } + + int writeMakefile(std::ostream& out); }; } diff -r 0902ad5f07e7 -r 49ba80f5e1f2 src/hugin_base/makefilelib/MakefileItem.h --- a/src/hugin_base/makefilelib/MakefileItem.h Tue Jul 06 23:52:37 2010 +0200 +++ b/src/hugin_base/makefilelib/MakefileItem.h Wed Jul 07 16:20:42 2010 +0200 @@ -34,21 +34,16 @@ { os << toString(); } + /// Allow casts to string, very nice! + operator std::string() + { + return toString(); + } }; std::ostream& operator<<(std::ostream& stream, MakefileItem& item); -class MakefileItemString : public std::string -{ -public: - MakefileItemString(MakefileItem& m) - : std::string(m.toString()) - {} - virtual ~MakefileItemString() - {} -}; - } #endif /* MAKEFILEITEM_H_ */ diff -r 0902ad5f07e7 -r 49ba80f5e1f2 src/hugin_base/makefilelib/Variable.h --- a/src/hugin_base/makefilelib/Variable.h Tue Jul 06 23:52:37 2010 +0200 +++ b/src/hugin_base/makefilelib/Variable.h Wed Jul 07 16:20:42 2010 +0200 @@ -46,8 +46,8 @@ private: Variable(const Variable&); // no implicite copies! public: - Variable(std::string name_, std::string value_) - : name(name_), value(value_), def(*this), ref(*this) + Variable(std::string name_, std::string value_, Makefile::QuoteMode quotemode_ = Makefile::SHELL) + : name(name_), value(value_), def(*this), ref(*this), quotemode(quotemode_) { checkName(); } diff -r 0902ad5f07e7 -r 49ba80f5e1f2 src/hugin_base/makefilelib/main.cpp --- a/src/hugin_base/makefilelib/main.cpp Tue Jul 06 23:52:37 2010 +0200 +++ b/src/hugin_base/makefilelib/main.cpp Wed Jul 07 16:20:42 2010 +0200 @@ -16,6 +16,7 @@ #include "AutoVariable.h" #include <boost/regex.hpp> +#include <boost/scoped_ptr.hpp> using namespace std; using namespace makefile; @@ -35,6 +36,8 @@ Variable myfullname("MYFULLNAME", myname.getRef().toString() + " Achleitner"); cout << myfullname.getDef() << myfullname.getRef() << endl; + myfullname.setQuoteMode(Makefile::MAKE); + cout << myfullname.getDef() << myfullname.getRef() << endl; try { @@ -60,20 +63,53 @@ int tryreplace() { - boost::regex toescape("(\\$)|([\\\\ \\~\\$\"\\|\\'\\`\\{\\}\\[\\]\\(\\)\\*\\#\\:\\=])"); + boost::regex toescape; // boost::regex toescape("(p)|([Da])"); - std::string output("(?1\\$$&)(?2\\\\$&)"); + std::string output; // std::string output("(?1--$&--)(?2__$&__)"); - std::string text("Ein_Dollar$ $ und_paar_andere Sachen werden richtig escaped. backslash\\__ ein sternchen * doppelpunkt :=*~"); + toescape.assign("(\\$\\([^\\)]+\\))|(\\$[^\\(])|([\\\\ \\~\"\\|\\'\\`\\{\\}\\[\\]\\(\\)\\*\\#\\:\\=])"); + output.assign("(?1$&)(?2\\\\\\$$&)(?3\\\\$&)"); + std::string text("Ein_Dollar$ $ und_paar_andere (Sachen) werden $(richtig) escaped. backslash\\__ ein sternchen * doppelpunkt :=*~"); cout << boost::regex_replace(text, toescape, output, boost::match_default | boost::format_all) << endl; + return 0; cout << "SHELL mode" << endl << Makefile::quote(text, Makefile::SHELL) << endl; cout << "MAKE mode" << endl << Makefile::quote(text, Makefile::MAKE) << endl; return 0; } + +int trymakefile() +{ + boost::scoped_ptr<Makefile> mf(new Makefile()); + + Comment comment("First line"); + mf->add(comment); + mf->add(&comment); + comment.appendLine("second line"); + comment.appendLine("third line\nfourth line\rfifth line"); + + + Variable myname("MYNAME", "Flo"); + mf->add(myname.getDef()); + mf->add(myname.getRef()); + + Variable myfullname("MYFULLNAME", myname.getRef().toString() + " Achleitner"); + mf->add(myfullname.getDef()); + mf->add(myfullname.getRef()); + + Comment c1("Escaping modes:"); mf->add(c1); + Variable shellvar("SHELLVAR", "'has some special (char)s # [or] {not}", Makefile::SHELL); + Variable makevar("MAKEVAR", "'has some special (char)s # [or] {not}", Makefile::MAKE); + mf->add(shellvar.getDef()); + mf->add(makevar.getDef()); + + mf->writeMakefile(cout); + cout << (string(c1)); +} int main(int argc, char *argv[]) { - return tryreplace() || tryall(); + return trymakefile(); +// return tryreplace() || tryall(); return 0; } |
From: <hug...@li...> - 2010-07-07 20:47:24
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/f641d81bb04e changeset: 4118:f641d81bb04e user: Bruno Postle <br...@po...> date: Wed Jul 07 21:33:56 2010 +0100 description: Outdated info is now on the wiki details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/c9df36df86dd changeset: 4119:c9df36df86dd user: Bruno Postle <br...@po...> date: Wed Jul 07 21:34:46 2010 +0100 description: Remove ancient unused script details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/8cf00462e9cf changeset: 4120:8cf00462e9cf user: Bruno Postle <br...@po...> date: Wed Jul 07 21:45:54 2010 +0100 description: Add some historic release notes diffstat: admin/update_tarball.sh | 22 - doc/batch-processing/README.batch | 129 - doc/releases/hugin-0.8.0.txt | 3023 +++++++++++++++++++++++++++++++++++ doc/releases/hugin-0.8.0_rc1.txt | 120 + doc/releases/hugin-0.8.0_rc2.txt | 329 +++ doc/releases/hugin-0.8.0_rc3.txt | 73 + doc/releases/hugin-0.8.0_rc4.txt | 88 + doc/releases/hugin-0.8.0_rc5.txt | 96 + doc/releases/hugin-2009.4.0.txt | 111 + doc/releases/hugin-2009.4.0_rc3.txt | 52 + doc/releases/hugin-2010.0.0.txt | 116 + doc/releases/hugin-2010.0.0_rc1.txt | 862 +++++++++ 12 files changed, 4870 insertions(+), 151 deletions(-) diffs (truncated from 5069 to 500 lines): diff -r 9fb6e9f16ef8 -r 8cf00462e9cf admin/update_tarball.sh --- a/admin/update_tarball.sh Tue Jun 29 23:36:30 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -#!/bin/sh -# download the developer cvs and put it on the website. -# change for your sf account.. - -SF_USER=dangelo - -CVS_RSH=ssh - -cdate=`date +"%Y_%m_%d-%H_%M"` - -cd /tmp -if [ -d hugin ]; -then - echo "removing old checkout" - rm -rf hugin; -fi -cvs -d:ext:${SF_USER}@cvs.sourceforge.net:/cvsroot/hugin export -r HEAD hugin -fname=hugin_${cdate}.tgz -tar cvzf $fname hugin -echo "copying to sf site" -scp $fname ${SF_USER}@shell1.sf.net:/home/groups/h/hu/hugin/htdocs/snapshots/ - diff -r 9fb6e9f16ef8 -r 8cf00462e9cf doc/batch-processing/README.batch --- a/doc/batch-processing/README.batch Tue Jun 29 23:36:30 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -= Hugin batch processing = - -== Stitching process overview == - -With the 0.7.0 release, hugin changes the stitching system entirely. Instead -of running each of the steps directly from the hugin application, a -''Makefile'' is written containing all the rules necessary to create the final -output files - This Makefile is then processed by the ''make'' tool as a -separate process. - -The advantage of this is that it allows more efficient use of resources and -plenty of new customisation options. - -When a hugin project is saved, two files are created: - -* The .pto file is portable across systems and contains all the information -describing the relationship between the input photos in the project. - -* The .pto.mk file contains all the specific instructions to create all -intermediate and output files that need to be generated to actually stitch the -panorama. - -== Stitching on the command-line == - -When you click on '''Save project and stitch''', hugin writes a .pto file and -launches a separate tool called ''hugin_stitch_project'' that creates a .pto.mk -file, processes it with 'make all clean' and displays all progress messages. - -Alternatively, if you just save a project, both these files are created but -''make'' isn't run. This allows you to simply stitch the project at a later -date using ''make'' on the command-line: - - make -f DSC_01-DSC_16.pto.mk - -This will create all the intermediate files and final output. One of the -advantages of using make is that re-running this command will only redo -necessary work - If none of the input files have changed, then 'make' will -finish immediately. - -[[pto2mk]] is a command-line tool for creating one of these Makefiles. - -=== make options === - -''make'' supports multiple ''targets'', by default hugin creates an 'all' and a -'clean' target that deletes intermediate files. So you can clean up afterwards -like so: - - make -f DSC_01-DSC_16.pto.mk clean - -Internal variables can be overridden using the '-e' flag, so to stitch using the -alternative ''nona-mask'' tool instead of ''nona'', use something like this: - - make -e -f DSC_01-DSC_16.pto.mk NONA=nona-mask - -In a shell such as ''bash'', setting the environment will modify internal -variables for the rest of the session: - - export ENFUSE='enfuse -l 29' - -(note that this will override any existing useful enfuse options) - -=== Parallel make === - -''make'' supports parallel processing for machines with multiple -cores/processors with the '-j' parameter, so for a 16 core system this command -will stitch using 16 parallel processes: - - make -j 16 -f DSC_01-DSC_16.pto.mk NONA='nona -t 1' - -(note that by default ''nona'' uses all available cores, in this case it needs -to be limited to one thread so that 16 instances of nona can run at the same -time) - -=== Stitching queues === - -Processing a series of projects one after another is simple enough, this will -stitch all the projects in a folder: - - for file in *.pto.mk; do make -f $file; done - -For more advanced command-line stitching, a tool like ''distmake'' will manage -a queue of ''Makefile'' stitching jobs, and even load-balance multiple machines -over a network: - -http://sourceforge.net/projects/distmake/ - -== Makefile 'plugins' == - -A Makefile can be extended with additional targets by creating a second -Makefile that includes the original hugin project Makefile. For instance a -''plugin'' Makefile called 'Makefile.psd.mk' might define a new target called -'ldr_psd' that assembles a multilayer PSD file for manual blending in a tool -such as the Gimp: - - make -f Makefile.psd.mk ldr_psd PTO=DSC_01-DSC_16.pto - -=== Useful Makefile variables === - -Each PATH in this table has a matching PATH_SHELL version with special -characters escaped - This is the version that should be used in command-lines -themselves. - -{| -| $(INPUT_IMAGES) | list of input files -| $(INPUT_IMAGE_1) | first input file -| $(PROJECT_FILE) | .pto project file -|- -| $(HUGIN_PROJECTION) | output projection type in panotools numeric format -| $(HUGIN_HFOV) | output horizontal angle of view in degrees -| $(HUGIN_WIDTH) | output width in pixels -| $(HUGIN_HEIGHT) | output height in pixels -|- -| $(DO_LDR_BLENDED) | set if 'normal' stitching with no exposure blending set -| $(DO_LDR_STACKED_BLENDED) | set if stitching with 'exposure blending' set -| $(DO_HDR_BLENDED) | set if HDR merging set -|- -| $(LDR_REMAPPED_PREFIX) | normal blended output prefix -| $(LDR_EXPOSURE_REMAPPED_PREFIX) | exposure blended output prefix -| $(HDR_STACK_REMAPPED_PREFIX) | HDR merged output prefix -|- -| $(LDR_BLENDED) | normal blended output file -| $(LDR_STACKED_BLENDED) | exposure blended output file -| $(HDR_BLENDED) | HDR merged output file -|- -| $(LDR_LAYERS) | list of normal unblended output files -| $(LDR_STACKS) | list of exposure blended stack files -| $(HDR_STACKS) | list of HDR merged stack files -|} - diff -r 9fb6e9f16ef8 -r 8cf00462e9cf doc/releases/hugin-0.8.0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/releases/hugin-0.8.0.txt Wed Jul 07 21:45:54 2010 +0100 @@ -0,0 +1,3023 @@ +Hugin-0.8.0 release notes + +Hugin is a panorama stitcher and more. + +Changes since 0.7.0 + +The last release in October 2008 introduced major changes to the way +hugin worked. Although this new release looks and feels much the +same as 0.7.0, it adds some great new features and makes a lot of +small improvements: + +Fast Preview window + +A new Fast Preview window has been added, this uses OpenGL graphics +acceleration to show changes as they happen. You can drag photos +around the window and they will warp to their new positions in +real-time. Everything else you need to turn, pan and crop your +panorama can now be done interactively in the Fast Preview. + +This Fast Preview also now acts as a hub for working with a panorama +project: the Identify mode lets you click on the overlap between two +photos to bring up the Control Point editor for that pair of photos. + +Celeste sky identification + +Stitching makes use of static scenery such as buildings to match +photos together, however objects that move cause misalignments, and +clouds move enough to be a particular problem. To make better +panoramas, Hugin has now been trained as a Support Vector Machine to +ignore clouds when matching photos. + +New panorama projections + +Panoramas tend to have a very large field of view, and Hugin does a +good job simulating virtual wide-angle lenses for output. But +painters and artists can do better than photographers, often +spanning scenes that look absurdly distorted when squeezed into +photographic perspective. Influenced by these vedutismo artists, +Hugin introduces some new projections for more elegant wide-angle +perspectives: Pannini, Biplane and Triplane. + +In addition, Orthographic and Equisolid output have been added to +Hugin's already extensive set of azimuthal projections. + +Batch Processor + +Creating Hugin projects is now easier than ever, but actually +stitching large panoramas slows your computer - Usually at the same +time that you want to do something else. Now with the Hugin Batch +Processor, stitching can be postponed until it is convenient for +you. + +Projects can be added to the queue from Hugin itself, or directly by +drag-and-drop from a file manager. In the Batch Processor you get an +overview of progress where the projects can be easily rearranged, +paused or canceled. + +Online help + +The manual has been updated to cover the new features and adds more +glossary pages explaining panorama and photography related words. + +Languages + +Most translations have been updated, plus Hugin is now available in +Slovenian and Chinese Traditional. The manual has been completely +translated into Italian. + +Other improvements + +There are many more changes in this release, here are just some of +them: a Reset... button in the Camera and Lens tab, better support +for 'special' characters in folder and file names, Align... now +works properly when loading saved lens .ini files, hints added to +Control Point tab pull-down lists, stitching now starts with a +series of tests, gcc-4.4.0 support, better Makefile plugin support, +man pages for command-line tools, new button icons throughout and a +command-line version of Celeste + +Control point generators + +Hugin doesn't yet ship with a 'Patent Free' control point generator. +So you either need to pick control points manually - Not as +difficult as it sounds - or install and configure one of the +following control-point generators as 'plug-ins': + +* autopano-sift-C +* panomatic +* match-n-shift +* Autopano-SIFT +* Autopano freeware version + +Upgrading + +Upgrading from previous versions of hugin should be seamless. If you +do have problems with old settings, these can be reset in the +Preferences by clicking 'Load defaults'. + +For users compiling from source: note that the minimum version of +wxWidgets supported is now 2.7.0, libpano13 needs to be at least +2.9.14, and that hugin now requires GLEW, the OpenGL Extension +Wrangler Library. + +See the the README and INSTALL_cmake files for more information. + +Thanks to all the contributors to this release and members of the +hugin-ptx mailing list, too many to mention here. + +Hugin can be found at http://hugin.sourceforge.net/ + +Hugin sourcecode can be downloaded from sourceforge: + +https://sourceforge.net/projects/hugin/files/ + +SHA1SUM: 698f0a7c4bb25efdf06313d05e3980f20d088ce5 hugin-0.8.0.tar.gz + +This release is identical to 0.8.0_rc5 and equivalent to svn 4008. + +2009-07-07 16:46 yuv + + * src/translations/it.po: Italian translation: + - "Assemblaggio" instead of "assemblatura" + - "orientamento" instead of "orientazione" + - "immagine ancora" instead of "ancora immagine" (ancora = + anchor, not ancora = more) + +2009-07-07 15:36 yuv + + * src/hugin1/hugin/TextureManager.cpp: fix potential endless loop + (Bart van Andel) + http://groups.google.com/group/hugin-ptx/msg/6b530f52b6e0629f + +2009-07-07 09:54 brunopostle + + * src/translations/es.po: Spanish translation update (José + Alejandro Carrillo Neira) + +2009-07-05 10:38 tmodes + + * src/hugin1/hugin/GLPreviewFrame.cpp, + src/hugin1/hugin/GLPreviewFrame.h: Put wxToggleButtons for images + on fast preview frame in a wxPanel to allow colouring from + Identify tool under windows + +2009-07-01 21:19 brunopostle + + * src/hugin1/hugin/xrc/data/hugin.png: Fixed-up version of the + pixmap icon + +2009-07-01 10:33 yuv + + * src/hugin1/hugin/CPImagesComboBox.cpp: removed rainbow and use + single color to qualify quality of link between images. + +2009-06-30 11:02 yuv + + * src/hugin1/hugin/CPImagesComboBox.cpp: Add color / quality + indication to CP tab + http://groups.google.com/group/hugin-ptx/browse_thread/thread/fbfe40c0fb208c4b + +2009-06-28 22:30 gpatters1 + + * src/hugin1/hugin/CPEditorPanel.cpp: [2805325] Fix for assertion + triggered when F is pressed during CP creation. + +2009-06-25 20:17 brunopostle + + * src/hugin1/hugin/hugin.xml: .pto files are now 'Hugin projects' + not 'PToptimizer scripts' + +2009-06-24 21:00 harryvanderwolf + + * mac/Hugin.xcodeproj/project.pbxproj: [OSX] Remove HAVE_LAPACK + settings from XCode project + +2009-06-23 05:34 tmodes + + * src/hugin1/hugin/LensPanel.cpp: Reset panorama ev value after + reset exposure values + +2009-06-23 05:33 tmodes + + * src/hugin1/hugin/ResetDialog.cpp: Fixes initialization of + combobox in reset dialog + +2009-06-18 08:20 yuv + + * src/hugin1/hugin/xrc/data/about.htm.in: added Thomas Modes to + authors in splash screen + +2009-06-17 17:46 brunopostle + + * ChangeLog: Update ChangeLog for rc4 + +2009-06-17 05:34 tmodes + + * src/hugin1/PT/PanoImage.h, src/hugin1/hugin/AssistantPanel.cpp, + src/hugin1/hugin/LensPanel.cpp, + src/hugin1/hugin/wxPanoCommand.cpp, + src/hugin_base/algorithms/basic/StraightenPanorama.cpp, + src/hugin_base/panodata/SrcPanoImage.cpp, + src/hugin_base/panodata/SrcPanoImage.h, + src/tools/align_image_stack.cpp, src/tools/autooptimiser.cpp: + More fixes for reading eV value [2805120] + +2009-06-14 11:53 brunopostle + + * src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp: + Don't test 'rm' as behaviour is inconsistent across platforms + +2009-06-13 15:13 gpatters1 + + * src/hugin_base/panodata/SrcPanoImage.cpp, + src/tools/autooptimiser.cpp: [2805120] Fix autoopmitizer from + updating the Ev values of images when recomputing the HFOV. + +2009-06-12 05:14 gpatters1 + + * src/hugin1/hugin/GLPreviewFrame.cpp: [2801663] - fix for crash + when pressing crop button on empty GL preview. + +2009-06-10 18:16 brunopostle + + * src/hugin1/hugin/hugin.desktop, + src/hugin1/ptbatcher/PTBatcherGUI.desktop: Hungarian translation + (Höss Lajos) + +2009-06-09 05:55 tmodes + + * src/hugin_base/panotools/PanoToolsUtils.cpp: Don't calculate CP + error for projects without images (fix for loading of + empty/corrupt projects) + +2009-06-08 18:14 dangelo + + * doc/Makefile.am, src/foreign/levmar/Makefile.am, + src/hugin1/hugin/Makefile.am, src/hugin1/hugin/xrc/Makefile.am, + src/hugin1/hugin/xrc/data/Makefile.am, + src/hugin1/hugin/xrc/data/help_common/Makefile.am, + src/hugin1/hugin/xrc/data/help_en_EN/Makefile.am, + src/hugin1/hugin/xrc/data/help_fr_FR/Makefile.am, + src/hugin1/nona_gui/Makefile.am, src/hugin1/tests/Makefile.am, + src/hugin1/tools/Makefile.am: removed obselete Makefile.am files. + +2009-06-07 16:17 stativ + + * CMakeLists.txt: Disable LAPACK by default. Enable it by running + cmake with -DENABLE_LAPACK=YES. + +2009-06-07 15:35 stativ + + * CMakeModules/FindLAPACK.cmake: Fixed LAPACK detection on OpenBSD. + +2009-06-05 22:05 brunopostle + + * ChangeLog: Update ChangeLog for rc3 + +2009-06-05 17:50 stativ + + * src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp: + Fixed test target check for rm on OS X. Thanks to Yulia Kotseruba + for the idea. + +2009-06-05 05:53 tmodes + + * src/hugin1/hugin/GLPreviewFrame.cpp, + src/hugin1/hugin/GLPreviewFrame.h, src/hugin1/hugin/GLViewer.cpp, + src/hugin1/hugin/PreviewDifferenceTool.cpp, + src/hugin1/hugin/PreviewDifferenceTool.h: Fixes detection of + difference mode capability of Fast Preview Frame + +2009-06-05 05:17 tmodes + + * src/hugin1/hugin/hugin.desktop, + src/hugin1/ptbatcher/PTBatcherGUI.desktop, + src/translations/de.po: Updated german translation + +2009-06-03 07:13 dangelo + + * src/translations/es.po: updated spanisch translation (Jorge + Gonzalez) + +2009-06-03 02:00 gpatters1 + + * src/hugin1/hugin/PreviewDragTool.cpp: Fix for GL Preview crash + when dragging after image has been removed. + +2009-06-02 05:48 tmodes + + * src/hugin1/hugin/ImagesPanel.cpp: Some more fix for translations + with wide characters + +2009-06-02 05:44 tmodes + + * src/hugin1/ptbatcher/Batch.cpp, src/hugin1/ptbatcher/Batch.h, + src/hugin1/ptbatcher/BatchFrame.cpp: [PTBatcherGUI] Allow + toggling of verbose output window during running batch + +2009-06-02 05:19 gpatters1 + + * src/hugin1/hugin/TextureManager.cpp: Fix for slowdown of GL + preview after changes made to images. + +2009-06-01 20:38 brunopostle + + * ChangeLog: Update ChangeLog for 0.8.0_rc2 + +2009-06-01 20:16 brunopostle + + * src/translations/zh_TW.po: Chinese traditional update (Rick + Langford) + +2009-05-29 22:20 gkohlmeyer + + * src/hugin1/hugin/TextureManager.cpp: Fixed crash when opening + OpenGL preview with image containing alpha channel + +2009-05-29 17:32 brunopostle + + * src/translations/zh_TW.po: Updated Chinese Traditional (Rick + Langford) + +2009-05-29 05:23 tmodes + + * src/hugin1/hugin/MainFrame.cpp, + src/hugin_base/huginapp/ImageCache.cpp, + src/hugin_base/huginapp/ImageCache.h: Image cache use memory + setting from preferences dialog + +2009-05-27 17:48 brunopostle + + * src/translations/it.po: Updated Italian translation (Cristian + Marchi, Milo Casagrande) + +2009-05-27 08:59 harryvanderwolf + + * mac/ExternalPrograms/scripts/pano13.sh: [OSX] minor update |
From: <hug...@li...> - 2010-08-12 07:42:40
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/b03a7f70a61f changeset: 4205:b03a7f70a61f user: Florian Achleitner <flo...@gm...> date: Wed Aug 11 19:51:37 2010 +0200 description: more.. details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/b7e8acd39411 changeset: 4206:b7e8acd39411 user: Florian Achleitner <flo...@gm...> date: Wed Aug 11 19:52:19 2010 +0200 description: Add a Generic MakefileItem for not included features. details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/67281cfc4200 changeset: 4207:67281cfc4200 user: Florian Achleitner <flo...@gm...> date: Thu Aug 12 09:42:09 2010 +0200 description: fast fertig! diffstat: src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp | 304 +++++++++- src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h | 26 +- src/hugin_base/makefilelib/Anything.h | 49 + src/hugin_base/makefilelib/CMakeLists.txt | 2 +- 4 files changed, 358 insertions(+), 23 deletions(-) diffs (truncated from 512 to 500 lines): diff -r 0eb940c237ac -r 67281cfc4200 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Tue Aug 10 18:45:18 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Thu Aug 12 09:42:09 2010 +0200 @@ -24,6 +24,7 @@ #include <makefilelib/Rule.h> #include <makefilelib/Conditional.h> #include <makefilelib/Manager.h> +#include <makefilelib/Anything.h> #include <panodata/PanoramaData.h> #include <hugin_utils/utils.h> @@ -44,12 +45,14 @@ /// constants static const string hdrgrayRemappedExt = "_gray.pgm"; static const string hdrRemappedExt = ".exr"; -const string ldrRemappedExt(".tif"); +static const string ldrRemappedExt(".tif"); +static const std::string ldrRemappedMode("TIFF_m"); +static const std::string hdrRemappedMode("EXR_m"); std::vector<UIntSet> getHDRStacks(const PanoramaData & pano, UIntSet allImgs); std::vector<UIntSet> getExposureLayers(const PanoramaData & pano, UIntSet allImgs); -bool PanoramaMakefilelibExport::create() +bool PanoramaMakefilelibExport::createItems() { mgr.own_add((new Comment( "makefile for panorama stitching, created by hugin using the new makefilelib"))); @@ -326,23 +329,264 @@ std::vector<mf::Variable*> hdr_stacks, hdr_stacks_shell, hdr_stacks_input, hdr_stacks_input_shell; mgr.own_add(new Comment("stacked hdr images")); std::vector<UIntSet> stacks = getHDRStacks(pano, images); + mf::Variable* vhdrstacks,* vhdrstacksshell; createstacks(stacks, "HDR_STACK", "_stack_hdr_", "_hdr_", hdrRemappedExt, - hdr_stacks, hdr_stacks_shell, hdr_stacks_input, hdr_stacks_input_shell); + hdr_stacks, hdr_stacks_shell, hdr_stacks_input, hdr_stacks_input_shell, vhdrstacks, vhdrstacksshell); std::vector<mf::Variable*> ldrexp_stacks, ldrexp_stacks_shell, ldrexp_stacks_input, ldrexp_stacks_input_shell; mgr.own_add(new Comment("number of image sets with similar exposure")); - createexposure(getExposureLayers(pano, images), "LDR_EXPOSURE_LAYER", "_exposure_", "_exposure_layers_", ldrRemappedExt, - ldrexp_stacks, ldrexp_stacks_shell, ldrexp_stacks_input, ldrexp_stacks_input_shell); + mf::Variable* vldrexposurelayers,* vldrexposurelayersshell,* vldrexposurelayersremapped,* vldrexposurelayersremappedshell; + std::vector<UIntSet> exposures = getExposureLayers(pano, images); + std::vector<std::string> exposureremappedimgs; + createexposure(exposures, "LDR_EXPOSURE_LAYER", "_exposure_", "_exposure_layers_", ldrRemappedExt, + ldrexp_stacks, ldrexp_stacks_shell, ldrexp_stacks_input, ldrexp_stacks_input_shell, + vldrexposurelayers, vldrexposurelayersshell, vldrexposurelayersremapped, vldrexposurelayersremappedshell, + exposureremappedimgs); std::vector<mf::Variable*> ldr_stacks, ldr_stacks_shell, ldr_stacks_input, ldr_stacks_input_shell; mgr.own_add(new Comment("stacked ldr images")); + mf::Variable* vldrstacks,* vldrstacksshell; createstacks(stacks, "LDR_STACK", "_stack_ldr_", "_exposure_layers_", ldrRemappedExt, - ldr_stacks, ldr_stacks_shell, ldr_stacks_input, ldr_stacks_input_shell); + ldr_stacks, ldr_stacks_shell, ldr_stacks_input, ldr_stacks_input_shell, vldrstacks, vldrstacksshell); + //---------- + if(!includePath.empty()) + { + mgr.own_add(new Anything("include " + Makefile::quote(includePath, Makefile::MAKE))); + return true; + } - Makefile::getSingleton().writeMakefile(makefile); - Makefile::getSingleton().clean(); + //---------- + // Collect prerequisites + + std::vector<mf::Variable*> allprereqs, cleanprereqs; + + if(opts.outputLDRBlended) + { + allprereqs.push_back(vldrblended); + newVarDef(vdoldrblend, "DO_LDR_BLENDED", 1); + if(!opts.outputLDRLayers) + cleanprereqs.push_back(vldrlayersshell); + } + + if(opts.outputLDRLayers) + allprereqs.push_back(vldrlayers); + + if(opts.outputLDRExposureRemapped) + allprereqs.push_back(vldrexposurelayersremapped); + + if(opts.outputLDRExposureLayers) + { + allprereqs.push_back(vldrexposurelayers); + if(!opts.outputLDRExposureRemapped) + cleanprereqs.push_back(vldrexposurelayersremappedshell); + } + + if(opts.outputLDRExposureBlended) + { + allprereqs.push_back(vldrstackedblended); + newVarDef(vdoldrstackedblended, "DO_LDR_STACKED_BLENDED", 1); + cleanprereqs.push_back(vldrstacksshell); + if(!opts.outputLDRExposureRemapped && !opts.outputLDRExposureLayers) + cleanprereqs.push_back(vldrexposurelayersremappedshell); + } + + if(opts.outputLDRExposureLayersFused) + { + allprereqs.push_back(vldrexposurelayersfused); + newVarDef(vdoldrexposurelayersfused, "DO_LDR_EXPOSURE_LAYERS_FUSED", 1); + if(!opts.outputLDRExposureRemapped && !opts.outputLDRExposureLayers) + { + cleanprereqs.push_back(vldrexposurelayersremappedshell); + cleanprereqs.push_back(vldrexposurelayersshell); + } + } + + if(opts.outputHDRLayers) + allprereqs.push_back(vhdrlayers); + + if(opts.outputHDRStacks) + { + allprereqs.push_back(vhdrstacks); + if(!opts.outputHDRLayers) + { + cleanprereqs.push_back(vhdrlayersshell); + cleanprereqs.push_back(vhdrgraylayersshell); + } + } + + if(opts.outputHDRBlended) + { + allprereqs.push_back(vhdrblended); + newVarDef(vdohdrblended, "DO_HDR_BLENDED", 1); + if(!opts.outputHDRStacks) + { + cleanprereqs.push_back(vhdrstacksshell); + if(!opts.outputHDRLayers) + { + cleanprereqs.push_back(vhdrlayersshell); + cleanprereqs.push_back(vhdrgraylayersshell); + } + } + } + + //---------- + // Assemble all and clean rules + + Rule* all = mgr.own(new Rule()); + all->addTarget("all"); + for(std::vector<mf::Variable*>::iterator it = allprereqs.begin(); it != allprereqs.end(); it++) + { + all->addPrereq((*it)->getRef().toString()); + } + all->add(); + + Rule* clean = mgr.own(new Rule()); + clean->addTarget("clean"); + { + std::string vdefs; + for(std::vector<mf::Variable*>::iterator it = cleanprereqs.begin(); it != cleanprereqs.end(); it++) + { + vdefs += (*it)->getRef().toString() + " "; + } + clean->addCommand('-' + vrm->getRef().toString() + ' ' + vdefs); + } + clean->add(); + + //---------- + // Test rules check if programs exist. + Rule* test = mgr.own(new Rule()); + test->addTarget("test"); + // test remapper + switch(opts.remapper) { + case PanoramaOptions::NONA: + createcheckProgCmd(*test,"nona","@-$(NONA) --help"); + break; + case PanoramaOptions::PTMENDER: + break; + } + // test blender + switch(opts.blendMode) { + case PanoramaOptions::ENBLEND_BLEND: + createcheckProgCmd(*test,"enblend","@-$(ENBLEND) -h"); + break; + case PanoramaOptions::PTBLENDER_BLEND: + createcheckProgCmd(*test,"PTblender","@-$(PTBLENDER) -h"); + break; + case PanoramaOptions::SMARTBLEND_BLEND: + createcheckProgCmd(*test,"smartblend","@-$(SMARTBLEND)"); + break; + } + // test enfuse + createcheckProgCmd(*test,"enfuse","@-$(ENFUSE) -h"); + // test hugin_hdrmerge + createcheckProgCmd(*test,"hugin_hdrmerge","@-$(HDRMERGE) -h"); + // test exiftool + createcheckProgCmd(*test,"exiftool","@-$(EXIFTOOL) -ver"); + test->add(); + + //---------- + // Rules for every single file + if(opts.remapper == PanoramaOptions::NONA) + { + mgr.own_add(new Comment("Rules for ordinary TIFF_m and hdr output")); + UIntSet::iterator it = images.begin(); + size_t i=0; + for(; it != images.end(); it++, i++) + { + std::string source = Makefile::quote(pano.getImage(*it).getFilename(), Makefile::MAKE); + std::ostringstream imgnr; + imgnr << *it; + + // ldr part + Rule* ruleldr = mgr.own(new Rule()); ruleldr->add(); + ruleldr->addTarget(Makefile::quote(remappedImages[i], Makefile::MAKE)); + ruleldr->addPrereq(source); + ruleldr->addPrereq(vprojectfile->getRef().toString()); + ruleldr->addCommand( + vnona->getRef().toString() +' '+ vnonaopts->getRef().toString() +' '+ vnonaldr->getRef().toString() + + " -r ldr -m " + ldrRemappedMode + " -o " + vldrremappedprefixshell->getRef().toString() + + " -i " + imgnr.str() +' '+ vprojectfileshell->getRef().toString()); + + // hdr part + Rule* rulehdr = mgr.own(new Rule()); rulehdr->add(); + rulehdr->addTarget(Makefile::quote(remappedHDRImages[i], Makefile::MAKE)); + rulehdr->addPrereq(source); + rulehdr->addPrereq(vprojectfile->getRef().toString()); + rulehdr->addCommand( + vnona->getRef().toString() +' '+ vnonaopts->getRef().toString() +" -r hdr -m " + hdrRemappedMode + " -o " + + vhdrstackremappedprefixshell->getRef().toString() + " -i " + imgnr.str() +' '+ vprojectfileshell->getRef().toString()); + } + + mgr.own_add(new Comment("Rules for exposure layer output")); + + for(i=0; i < exposures.size(); i++) + { + size_t j=0; + for(UIntSet::iterator it = exposures[i].begin(); it != exposures[i].end(); it++, j++) + { + std::ostringstream expvalue, imgnr; + imgnr << *it; + expvalue.imbue(Makefile::locale); + expvalue << pano.getSrcImage(*it).getExposureValue(); + Rule* rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(Makefile::quote(exposureremappedimgs[j], Makefile::MAKE)); + rule->addPrereq(pano.getImage(*it).getFilename()); + rule->addPrereq(vprojectfile->getRef().toString()); + rule->addCommand( + vnona->getRef().toString() +' '+ vnonaopts->getRef().toString() +' '+ vnonaldr->getRef().toString() + + " -r ldr -e " + expvalue.str() + " -m " + ldrRemappedMode + " -o " + vldrexposureremappedprefixshell->getRef().toString() + + " -i " + imgnr.str() +' '+ vprojectfileshell->getRef().toString()); + + } + } + } + + if(opts.remapper == PanoramaOptions::PTMENDER) + { + Rule* rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrlayers->getRef().toString()); + rule->addPrereq(vinimages->getRef().toString()); + rule->addPrereq(vprojectfile->getRef().toString()); + rule->addCommand(vPTmender->getRef().toString() + " -o " + vldrremappedprefixshell->getRef().toString() +' '+ + vprojectfileshell->getRef().toString()); + } + + //---------- + // Rules for LDR and HDR stack merging, a rule for each stack + mgr.own_add(new Comment("Rules for LDR and HDR stack merging, a rule for each stack")); + for(size_t i=0; i< stacks.size(); i++) + { + std::ostringstream imgnr; + imgnr << i; + + Rule* ruleldr = mgr.own(new Rule()); ruleldr->add(); + ruleldr->addTarget(ldr_stacks[i]->getRef().toString()); + ruleldr->addPrereq(ldr_stacks_input[i]->getRef().toString()); + ruleldr->addCommand(venfuse->getRef().toString() +' '+ venfuseopts->getRef().toString() + " -o " + + ldr_stacks_shell[i]->getRef().toString() +' '+ ldr_stacks_input_shell[i]->getRef().toString()); + ruleldr->addCommand('-' + vexiftool->getRef().toString() + "-overwrite_original_in_place -TagsFromFile " + + vinimage1shell->getRef().toString() +' '+ vexiftoolcopyargs->getRef().toString() +' '+ ldr_stacks_shell[i]->getRef().toString()); + + Rule* rulehdr = mgr.own(new Rule()); rulehdr->add(); + rulehdr->addTarget(hdr_stacks[i]->getRef().toString()); + rulehdr->addPrereq(hdr_stacks_input[i]->getRef().toString()); + rulehdr->addCommand(vhdrmerge->getRef().toString() +' '+ vhdrmergeopts->getRef().toString() + " -o " + + hdr_stacks_shell[i]->getRef().toString() +' '+ hdr_stacks_input_shell[i]->getRef().toString()); + } + //---------- + // Blend modes + if(opts.blendMode == PanoramaOptions::ENBLEND_BLEND) + { + + } + + + if(opts.blendMode == PanoramaOptions::NO_BLEND) + { + + } return true; } @@ -353,7 +597,9 @@ std::vector<mf::Variable*>& stacks, std::vector<mf::Variable*>& stacks_shell, std::vector<mf::Variable*>& stacks_input, - std::vector<makefile::Variable*>& stacks_input_shell) + std::vector<makefile::Variable*>& stacks_input_shell, + mf::Variable*& vstacks, + mf::Variable*& vstacksshell) { std::ostringstream stknrs; for (unsigned i=0; i < stackdata.size(); i++) @@ -399,8 +645,10 @@ stackrefs += (*it)->getRef().toString() + " "; stackrefsshell += (*it2)->getRef().toString() + " "; } - newVarDef(vstacks, stkname + "S", stackrefs, Makefile::NONE); - newVarDef(vstacksshell, stkname + "S_SHELL", stackrefsshell, Makefile::NONE); + vstacks = mgr.own(new mf::Variable(stkname + "S", stackrefs, Makefile::NONE)); + vstacks->getDef().add(); + vstacksshell = mgr.own(new mf::Variable(stkname + "S_SHELL", stackrefsshell, Makefile::NONE)); + vstacksshell->getDef().add(); } void PanoramaMakefilelibExport::createexposure(const std::vector<UIntSet> stackdata, @@ -409,7 +657,12 @@ std::vector<mf::Variable*>& stacks, std::vector<mf::Variable*>& stacks_shell, std::vector<mf::Variable*>& stacks_input, - std::vector<makefile::Variable*>& stacks_input_shell) + std::vector<makefile::Variable*>& stacks_input_shell, + mf::Variable*& vstacks, + mf::Variable*& vstacksshell, + mf::Variable*& vstacksrem, + mf::Variable*& vstacksremshell, + std::vector<std::string>& inputs) { std::vector<std::string> allimgs; std::ostringstream stknrs; @@ -420,7 +673,7 @@ filename << outputPrefix << filenamecenter << std::setfill('0') << std::setw(4) << i << filenameext; stackname << stkname << "_" << i; - std::vector<std::string> inputs, inputspt; + std::vector<std::string> inputspt; double exposure = 0; for (UIntSet::iterator it = stackdata[i].begin(); it != stackdata[i].end(); it++) { @@ -473,9 +726,26 @@ stackrefs += (*it)->getRef().toString() + " "; stackrefsshell += (*it2)->getRef().toString() + " "; } - newVarDef(vstacks, stkname + "S", stackrefs, Makefile::NONE); - newVarDef(vstacksshell, stkname + "S_SHELL", stackrefsshell, Makefile::NONE); - newVarDef(vstackrem, stkname + "S_REMAPPED", allimgs.begin(), allimgs.end(), Makefile::MAKE, "\\\n"); - newVarDef(vstackremshell, stkname + "S_REMAPPED_SHELL", allimgs.begin(), allimgs.end(), Makefile::SHELL, "\\\n"); + vstacks = mgr.own(new mf::Variable(stkname + "S", stackrefs, Makefile::NONE)); + vstacks->getDef().add(); + vstacksshell = mgr.own(new mf::Variable(stkname + "S_SHELL", stackrefsshell, Makefile::NONE)); + vstacksshell->getDef().add(); + vstacksrem = mgr.own( new mf::Variable(stkname + "S_REMAPPED", allimgs.begin(), allimgs.end(), Makefile::MAKE, "\\\n")); + vstacksrem->getDef().add(); + vstacksremshell = mgr.own( new mf::Variable(stkname + "S_REMAPPED_SHELL", allimgs.begin(), allimgs.end(), Makefile::SHELL, "\\\n")); + vstacksremshell->getDef().add(); } + +void PanoramaMakefilelibExport::createcheckProgCmd(Rule& testrule, const std::string& progName, const std::string& progCommand) +{ + std::string command; +#ifdef _WINDOWS + testrule.addCommand("@echo Checking " + progName + "..."); + testrule.addCommand(progCommand + " > NUL 2>&1 && echo " + progName + " is ok || echo " + + progName + " failed"); +#else + testrule.addCommand("@echo -n 'Checking " + progName + "..."); + testrule.addCommand(progCommand + " > /dev/null 2>&1 && echo '[OK]' || echo '[FAILED]'"); +#endif } +} diff -r 0eb940c237ac -r 67281cfc4200 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h Tue Aug 10 18:45:18 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h Thu Aug 12 09:42:09 2010 +0200 @@ -15,6 +15,7 @@ #include <makefilelib/Manager.h> #include <makefilelib/Makefile.h> #include <makefilelib/Variable.h> +#include <makefilelib/Rule.h> /** @@ -74,7 +75,7 @@ makefile::Manager mgr; std::ostringstream valuestream; - bool create(); + bool createItems(); void createstacks(const std::vector<UIntSet> stackdata, const std::string stkname, @@ -82,14 +83,28 @@ std::vector<makefile::Variable*>& stacks, std::vector<makefile::Variable*>& stacks_shell, std::vector<makefile::Variable*>& stacks_input, - std::vector<makefile::Variable*>& stacks_input_shell); + std::vector<makefile::Variable*>& stacks_input_shell, + makefile::Variable*& vstacks, + makefile::Variable*& vstacksshell); void createexposure(const std::vector<UIntSet> stackdata, const std::string stkname, const std::string filenamecenter, const std::string inputfilenamecenter, const std::string filenameext, std::vector<makefile::Variable*>& stacks, std::vector<makefile::Variable*>& stacks_shell, std::vector<makefile::Variable*>& stacks_input, - std::vector<makefile::Variable*>& stacks_input_shell); + std::vector<makefile::Variable*>& stacks_input_shell, + makefile::Variable*& vstacks, + makefile::Variable*& vstacksshell, + makefile::Variable*& vstacksrem, + makefile::Variable*& vstacksremshell, + std::vector<std::string>& inputs); + + void createcheckProgCmd(makefile::Rule& testrule, const std::string& progName, const std::string& progCommand); + + bool writeMakefile() + { + return makefile::Makefile::getSingleton().writeMakefile(makefile) != 0; + } public: PanoramaMakefilelibExport(PanoramaData & pano_, const UIntSet & images_, @@ -122,7 +137,8 @@ PanoramaMakefilelibExport* instance = new PanoramaMakefilelibExport( pano_, images_, ptofile_, outputPrefix_, progs_, includePath_, outputFiles_, makefile_, tmpDir_); - instance->create(); + instance->createItems(); + instance->writeMakefile(); delete instance; } @@ -132,7 +148,7 @@ } bool runAlgorithm() { - return create(); + return createItems() && writeMakefile(); } virtual ~PanoramaMakefilelibExport() diff -r 0eb940c237ac -r 67281cfc4200 src/hugin_base/makefilelib/Anything.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hugin_base/makefilelib/Anything.h Thu Aug 12 09:42:09 2010 +0200 @@ -0,0 +1,49 @@ +/** + * @file Anything.h + * @brief + * Created on: Aug 11, 2010 + * @author Florian Achleitner <flo...@gm...> + */ + +#ifndef ANYTHING_H_ +#define ANYTHING_H_ + +/** + * + */ +#include "MakefileItem.h" + +namespace makefile +{ +/** + * This one only inserts some Text, not doing anything else. + * It can be used to include make feautures not supported by the lib in a + * makefile. + */ +class Anything: public PrimaryMakefileItem +{ + string text; +public: + Anything() + { + // TODO Auto-generated constructor stub + + } + Anything(const string& text_) + : text(text_) + {} + + virtual ~Anything() {} + void setText(const string& text_) + { + text.assign(text_); + } + virtual string toString() + { + return text; + } +}; + +} + +#endif /* ANYTHING_H_ */ |
From: <hug...@li...> - 2010-08-13 12:58:40
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/b94e44fdda57 changeset: 4210:b94e44fdda57 user: Florian Achleitner <flo...@gm...> date: Fri Aug 13 14:45:50 2010 +0200 description: more lines, now the end is reached! - using new features of the lib, code gets a littler more compact.. details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/2c984e2d6b60 changeset: 4211:2c984e2d6b60 user: Florian Achleitner <flo...@gm...> date: Fri Aug 13 14:47:42 2010 +0200 description: Usability improvements: - add operator+ for MakefileItem + string to save a lot of .toString() calls - add additional add.. - members in Rule that take Variables - Comments - use all that in the tester details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/9a0eac864930 changeset: 4212:9a0eac864930 user: Florian Achleitner <flo...@gm...> date: Fri Aug 13 14:56:41 2010 +0200 description: Prevent potential segfault: change Varialbe* initial value for those which only get a value depending on conditions to a dummy Variable, not NULL diffstat: src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp | 186 +++++++-- src/hugin_base/makefilelib/MakefileItem.cpp | 12 + src/hugin_base/makefilelib/MakefileItem.h | 5 + src/hugin_base/makefilelib/Rule.h | 40 ++- src/hugin_base/makefilelib/test_makefilelib.cpp | 14 +- 5 files changed, 208 insertions(+), 49 deletions(-) diffs (441 lines): diff -r 67281cfc4200 -r 9a0eac864930 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Thu Aug 12 09:42:09 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Fri Aug 13 14:56:41 2010 +0200 @@ -54,6 +54,9 @@ bool PanoramaMakefilelibExport::createItems() { + // we use this Variable for initializing pointers that get an object only under certain conditions + mf::Variable* nullvar = mgr.own(new mf::Variable("NOT_DEFINED", "This_variable_has_not_been_defined")); + mgr.own_add((new Comment( "makefile for panorama stitching, created by hugin using the new makefilelib"))); @@ -131,8 +134,8 @@ // options for the programs mgr.own_add(new Comment("options for the programs")); // set remapper specific settings - mf::Variable* vnonaldr = NULL; - mf::Variable* vnonaopts = NULL; + mf::Variable* vnonaldr = nullvar; + mf::Variable* vnonaopts = nullvar; if(opts.remapper == PanoramaOptions::NONA) { string val; @@ -150,9 +153,9 @@ } // set blender specific settings - mf::Variable* venblendopts = NULL; - mf::Variable* venblendldrcomp = NULL; - mf::Variable* venblendhdrcomp = NULL; + mf::Variable* venblendopts = nullvar; + mf::Variable* venblendldrcomp = nullvar; + mf::Variable* venblendhdrcomp = nullvar; if(opts.blendMode == PanoramaOptions::ENBLEND_BLEND) { @@ -192,7 +195,7 @@ } } - mf::Variable* vptblenderopts = NULL; + mf::Variable* vptblenderopts = nullvar; if(opts.blendMode == PanoramaOptions::PTBLENDER_BLEND) { valuestream.str(""); @@ -215,7 +218,7 @@ } //---------- - mf::Variable* vsmartblendopts = NULL; + mf::Variable* vsmartblendopts = nullvar; if(opts.blendMode == PanoramaOptions::SMARTBLEND_BLEND) { vsmartblendopts = mgr.own(new mf::Variable( @@ -226,7 +229,7 @@ } //---------- - mf::Variable* vhdrmergeopts = NULL; + mf::Variable* vhdrmergeopts = nullvar; if(opts.hdrMergeMode == PanoramaOptions::HDRMERGE_AVERAGE) { vhdrmergeopts = mgr.own(new mf::Variable( @@ -438,7 +441,7 @@ all->addTarget("all"); for(std::vector<mf::Variable*>::iterator it = allprereqs.begin(); it != allprereqs.end(); it++) { - all->addPrereq((*it)->getRef().toString()); + all->addPrereq((*it)); } all->add(); @@ -448,9 +451,9 @@ std::string vdefs; for(std::vector<mf::Variable*>::iterator it = cleanprereqs.begin(); it != cleanprereqs.end(); it++) { - vdefs += (*it)->getRef().toString() + " "; + vdefs += (*it)->getRef() + " "; } - clean->addCommand('-' + vrm->getRef().toString() + ' ' + vdefs); + clean->addCommand("-" + vrm->getRef() + ' ' + vdefs); } clean->add(); @@ -503,20 +506,20 @@ Rule* ruleldr = mgr.own(new Rule()); ruleldr->add(); ruleldr->addTarget(Makefile::quote(remappedImages[i], Makefile::MAKE)); ruleldr->addPrereq(source); - ruleldr->addPrereq(vprojectfile->getRef().toString()); + ruleldr->addPrereq(vprojectfile); ruleldr->addCommand( - vnona->getRef().toString() +' '+ vnonaopts->getRef().toString() +' '+ vnonaldr->getRef().toString() - + " -r ldr -m " + ldrRemappedMode + " -o " + vldrremappedprefixshell->getRef().toString() + - " -i " + imgnr.str() +' '+ vprojectfileshell->getRef().toString()); + vnona->getRef() +" "+ vnonaopts->getRef() +" "+ vnonaldr->getRef() + + " -r ldr -m " + ldrRemappedMode + " -o " + vldrremappedprefixshell->getRef() + + " -i " + imgnr.str() +" "+ vprojectfileshell->getRef()); // hdr part Rule* rulehdr = mgr.own(new Rule()); rulehdr->add(); rulehdr->addTarget(Makefile::quote(remappedHDRImages[i], Makefile::MAKE)); rulehdr->addPrereq(source); - rulehdr->addPrereq(vprojectfile->getRef().toString()); + rulehdr->addPrereq(vprojectfile); rulehdr->addCommand( - vnona->getRef().toString() +' '+ vnonaopts->getRef().toString() +" -r hdr -m " + hdrRemappedMode + " -o " + - vhdrstackremappedprefixshell->getRef().toString() + " -i " + imgnr.str() +' '+ vprojectfileshell->getRef().toString()); + vnona->getRef() +" "+ vnonaopts->getRef() +" -r hdr -m " + hdrRemappedMode + " -o " + + vhdrstackremappedprefixshell->getRef() + " -i " + imgnr.str() +" "+ vprojectfileshell->getRef()); } mgr.own_add(new Comment("Rules for exposure layer output")); @@ -533,11 +536,11 @@ Rule* rule = mgr.own(new Rule()); rule->add(); rule->addTarget(Makefile::quote(exposureremappedimgs[j], Makefile::MAKE)); rule->addPrereq(pano.getImage(*it).getFilename()); - rule->addPrereq(vprojectfile->getRef().toString()); + rule->addPrereq(vprojectfile); rule->addCommand( - vnona->getRef().toString() +' '+ vnonaopts->getRef().toString() +' '+ vnonaldr->getRef().toString() - + " -r ldr -e " + expvalue.str() + " -m " + ldrRemappedMode + " -o " + vldrexposureremappedprefixshell->getRef().toString() + - " -i " + imgnr.str() +' '+ vprojectfileshell->getRef().toString()); + vnona->getRef() +" "+ vnonaopts->getRef() +" "+ vnonaldr->getRef() + + " -r ldr -e " + expvalue.str() + " -m " + ldrRemappedMode + " -o " + vldrexposureremappedprefixshell->getRef() + + " -i " + imgnr.str() +" "+ vprojectfileshell->getRef()); } } @@ -546,11 +549,11 @@ if(opts.remapper == PanoramaOptions::PTMENDER) { Rule* rule = mgr.own(new Rule()); rule->add(); - rule->addTarget(vldrlayers->getRef().toString()); - rule->addPrereq(vinimages->getRef().toString()); - rule->addPrereq(vprojectfile->getRef().toString()); - rule->addCommand(vPTmender->getRef().toString() + " -o " + vldrremappedprefixshell->getRef().toString() +' '+ - vprojectfileshell->getRef().toString()); + rule->addTarget(vldrlayers); + rule->addPrereq(vinimages); + rule->addPrereq(vprojectfile); + rule->addCommand(vPTmender->getRef() + " -o " + vldrremappedprefixshell->getRef() +" "+ + vprojectfileshell->getRef()); } //---------- @@ -562,30 +565,131 @@ imgnr << i; Rule* ruleldr = mgr.own(new Rule()); ruleldr->add(); - ruleldr->addTarget(ldr_stacks[i]->getRef().toString()); - ruleldr->addPrereq(ldr_stacks_input[i]->getRef().toString()); - ruleldr->addCommand(venfuse->getRef().toString() +' '+ venfuseopts->getRef().toString() + " -o " + - ldr_stacks_shell[i]->getRef().toString() +' '+ ldr_stacks_input_shell[i]->getRef().toString()); - ruleldr->addCommand('-' + vexiftool->getRef().toString() + "-overwrite_original_in_place -TagsFromFile " + - vinimage1shell->getRef().toString() +' '+ vexiftoolcopyargs->getRef().toString() +' '+ ldr_stacks_shell[i]->getRef().toString()); + ruleldr->addTarget(ldr_stacks[i]); + ruleldr->addPrereq(ldr_stacks_input[i]); + ruleldr->addCommand(venfuse->getRef() +" "+ venfuseopts->getRef() + " -o " + + ldr_stacks_shell[i]->getRef() +" "+ ldr_stacks_input_shell[i]->getRef()); + ruleldr->addCommand("-" + vexiftool->getRef() + "-overwrite_original_in_place -TagsFromFile " + + vinimage1shell->getRef() +" "+ vexiftoolcopyargs->getRef() +" "+ ldr_stacks_shell[i]->getRef()); Rule* rulehdr = mgr.own(new Rule()); rulehdr->add(); - rulehdr->addTarget(hdr_stacks[i]->getRef().toString()); - rulehdr->addPrereq(hdr_stacks_input[i]->getRef().toString()); - rulehdr->addCommand(vhdrmerge->getRef().toString() +' '+ vhdrmergeopts->getRef().toString() + " -o " + - hdr_stacks_shell[i]->getRef().toString() +' '+ hdr_stacks_input_shell[i]->getRef().toString()); + rulehdr->addTarget(hdr_stacks[i]); + rulehdr->addPrereq(hdr_stacks_input[i]); + rulehdr->addCommand(vhdrmerge->getRef() +" "+ vhdrmergeopts->getRef() + " -o " + + hdr_stacks_shell[i]->getRef() +" "+ hdr_stacks_input_shell[i]->getRef()); } //---------- // Blend modes + // these commands are often occuring + const std::string enblendcmd = venblend->getRef() +" "+ venblendldrcomp->getRef() +" "+ + venblendopts->getRef() + " -o "; + const std::string exifcmd = "-" + vexiftool->getRef() + " -overwrite_original_in_place -TagsFromFile " + + vinimage1shell->getRef() +" "+ vexiftoolcopyargs->getRef() +' '; + const std::string ptrollercmd = vPTroller->getRef() + " -o "; + if(opts.blendMode == PanoramaOptions::ENBLEND_BLEND) { + Rule* rule = mgr.own(new Rule()); rule->add(); + // write rules for blending with enblend + rule->addTarget(vldrblended); + rule->addPrereq(vldrlayers); + rule->addCommand(enblendcmd + vldrblendedshell->getRef() +" "+ vldrlayersshell->getRef()); + rule->addCommand(exifcmd + vldrblendedshell->getRef()); + + // for LDR exposure blend planes + for(unsigned i=0; i < exposures.size(); i++) + { + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(ldrexp_stacks[i]); + rule->addPrereq(ldrexp_stacks_input[i]); + rule->addCommand(enblendcmd + ldrexp_stacks_shell[i]->getRef() +" "+ ldrexp_stacks_input_shell[i]->getRef()); + rule->addCommand(exifcmd + ldrexp_stacks_shell[i]->getRef()); + } + + // rules for enfuse blending + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrstackedblended); + rule->addPrereq(vldrstacks); + rule->addCommand(enblendcmd + vldrstackedblendedshell->getRef() +" "+ vldrstacksshell->getRef()); + rule->addCommand(exifcmd + vldrstackedblendedshell->getRef()); + + // rules for fusing blended layers + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrexposurelayersfused); + rule->addPrereq(vldrexposurelayers); + rule->addCommand(venfuse->getRef() +" "+ venblendldrcomp->getRef() +" "+ venfuseopts->getRef() + " -o " + + vldrexposurelayersfusedshell->getRef() +" "+ vldrexposurelayersshell->getRef()); + rule->addCommand(exifcmd + vldrexposurelayersfusedshell->getRef()); + + // rules for hdr blending + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vhdrblended); + rule->addPrereq(vhdrstacks); + rule->addCommand(venblend->getRef() +" "+ venblendhdrcomp->getRef() +" "+ venblendopts->getRef() + " -o " + + vhdrblendedshell->getRef() +" "+ vhdrstacksshell->getRef()); + + // rules for multilayer output + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrremappedprefix->getRef() + "_multilayer.tif"); + rule->addPrereq(vldrlayers); + rule->addCommand("tiffcp " + vldrlayersshell->getRef() +" "+ vldrremappedprefixshell->getRef() + "_multilayer.tif"); + + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrremappedprefix->getRef() + "_fused_multilayer.tif"); + rule->addPrereq(vldrstacks); + rule->addPrereq(vldrexposurelayers); + rule->addCommand("tiffcp " + vldrstacksshell->getRef() +" "+ vldrexposurelayersshell->getRef() +" "+ vldrremappedprefixshell->getRef() + "_fused_multilayer.tif"); + + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrremappedprefix->getRef() + "_multilayer.psd"); + rule->addPrereq(vldrlayers); + rule->addCommand("PTtiff2psd -o " + vldrremappedprefixshell->getRef() + "_multilayer.psd " + vldrlayersshell->getRef()); + + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrremappedprefix->getRef() + "_fused_multilayer.psd"); + rule->addPrereq(vldrstacks); + rule->addPrereq(vldrexposurelayers); + rule->addCommand("PTtiff2psd -o " + vldrremappedprefixshell->getRef() + "_fused_multilayer.psd " + vldrstacksshell->getRef() + + vldrexposurelayersshell->getRef()); } if(opts.blendMode == PanoramaOptions::NO_BLEND) { + Rule* rule = mgr.own(new Rule()); rule->add(); + // write rules for blending with enblend + rule->addTarget(vldrblended); + rule->addPrereq(vldrlayers); + rule->addCommand("-" + vrm->getRef() +" "+ vldrblendedshell->getRef()); + rule->addCommand(ptrollercmd + vldrblendedshell->getRef() +" "+ vldrlayersshell->getRef()); + rule->addCommand(exifcmd + vldrblendedshell->getRef()); + + // for LDR exposure blend planes + for(unsigned i=0; i < exposures.size(); i++) + { + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(ldrexp_stacks[i]); + rule->addPrereq(ldrexp_stacks_input[i]); + rule->addCommand("-" + vrm->getRef() +" "+ ldrexp_stacks_shell[i]->getRef()); + rule->addCommand(ptrollercmd + ldrexp_stacks_shell[i]->getRef()); + rule->addCommand(exifcmd + ldrexp_stacks_shell[i]->getRef()); + } + + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vldrstackedblended); + rule->addPrereq(vldrstacks); + rule->addCommand("-" + vrm->getRef() +" "+ vldrstackedblendedshell->getRef()); + rule->addCommand(ptrollercmd + vldrstackedblendedshell->getRef() +" "+ vldrstacksshell->getRef()); + rule->addCommand(exifcmd + vldrstackedblendedshell->getRef()); + + // rules for non-blended HDR panoramas + rule = mgr.own(new Rule()); rule->add(); + rule->addTarget(vhdrblended); + rule->addPrereq(vhdrlayers); + rule->addCommand(vhdrmerge->getRef() +" "+ vhdrmergeopts->getRef() + " -o " + + vhdrblendedshell->getRef() +" "+ vhdrlayersshell->getRef()); } return true; } @@ -642,8 +746,8 @@ it2 = stacks_shell.begin(); for(; it != stacks.end() && it2 != stacks_shell.end(); it++, it2++) { - stackrefs += (*it)->getRef().toString() + " "; - stackrefsshell += (*it2)->getRef().toString() + " "; + stackrefs += (*it)->getRef() + " "; + stackrefsshell += (*it2)->getRef() + " "; } vstacks = mgr.own(new mf::Variable(stkname + "S", stackrefs, Makefile::NONE)); vstacks->getDef().add(); @@ -723,8 +827,8 @@ it2 = stacks_shell.begin(); for(; it != stacks.end() && it2 != stacks_shell.end(); it++, it2++) { - stackrefs += (*it)->getRef().toString() + " "; - stackrefsshell += (*it2)->getRef().toString() + " "; + stackrefs += (*it)->getRef() + " "; + stackrefsshell += (*it2)->getRef() + " "; } vstacks = mgr.own(new mf::Variable(stkname + "S", stackrefs, Makefile::NONE)); vstacks->getDef().add(); diff -r 67281cfc4200 -r 9a0eac864930 src/hugin_base/makefilelib/MakefileItem.cpp --- a/src/hugin_base/makefilelib/MakefileItem.cpp Thu Aug 12 09:42:09 2010 +0200 +++ b/src/hugin_base/makefilelib/MakefileItem.cpp Fri Aug 13 14:56:41 2010 +0200 @@ -16,5 +16,17 @@ return stream; } +string operator+(const string& str, MakefileItem& item) +{ + string out(str); + out.append(item.toString()); + return out; +} +string operator+(MakefileItem& item, const string& str) +{ + string out(item.toString()); + out.append(str); + return out; +} } diff -r 67281cfc4200 -r 9a0eac864930 src/hugin_base/makefilelib/MakefileItem.h --- a/src/hugin_base/makefilelib/MakefileItem.h Thu Aug 12 09:42:09 2010 +0200 +++ b/src/hugin_base/makefilelib/MakefileItem.h Fri Aug 13 14:56:41 2010 +0200 @@ -58,6 +58,11 @@ /// Allows writing to ostreams. ostream& operator<<(ostream& stream, MakefileItem& item); +/// Allows adding strings an MakefileItems +string operator+(const string& str, MakefileItem& item); +/// Allows adding strings an MakefileItems +string operator+(MakefileItem& item, const string& str); + /** * This class is used to mark MakefileItems that can be used directly, like most can. * The only exception is currently VariableDef and VariableRef, they can only be used diff -r 67281cfc4200 -r 9a0eac864930 src/hugin_base/makefilelib/Rule.h --- a/src/hugin_base/makefilelib/Rule.h Thu Aug 12 09:42:09 2010 +0200 +++ b/src/hugin_base/makefilelib/Rule.h Fri Aug 13 14:56:41 2010 +0200 @@ -9,6 +9,8 @@ #define RULE_H_ #include "MakefileItem.h" +#include "Variable.h" +#include "VariableRef.h" #include <vector> @@ -33,14 +35,50 @@ virtual string toString(); - void addTarget(string t) + /** + * Adds a target string. + * @param t + */ + void addTarget(const string& t) { targets.push_back(t); } + /** + * Adds a Variable as a Target. A VariableRef is taken from the Variable and added. + * @param t + */ + void addTarget(Variable& t) + { + addTarget(t.getRef().toString()); + } + void addTarget(Variable* t) + { + addTarget(t->getRef().toString()); + } + /** + * Adds a string as a prerequisite. + * @param p + */ void addPrereq(string p) { prerequisites.push_back(p); } + /** + * Adds a Variable as a prerequisite. A VariableRef is taken from the Variable and added. + * @param p + */ + void addPrereq(Variable& p) + { + addPrereq(p.getRef().toString()); + } + void addPrereq(Variable* p) + { + addPrereq(p->getRef().toString()); + } + /** + * Adds a string as a command to the Rule. + * @param c + */ void addCommand(string c) { commands.push_back(c); diff -r 67281cfc4200 -r 9a0eac864930 src/hugin_base/makefilelib/test_makefilelib.cpp --- a/src/hugin_base/makefilelib/test_makefilelib.cpp Thu Aug 12 09:42:09 2010 +0200 +++ b/src/hugin_base/makefilelib/test_makefilelib.cpp Fri Aug 13 14:56:41 2010 +0200 @@ -122,10 +122,10 @@ var3.getDef().add(); rule.addTarget(cstr("all")); rule.addCommand(cstr("@echo Results:")); - rule.addCommand(cstr("@echo ") + ifvar1.getRef().toString()); - rule.addCommand(cstr("@echo ") + ifvar2.getRef().toString()); - rule.addCommand(cstr("@echo ") + ifvar3.getRef().toString()); - rule.addCommand(cstr("@echo ") + ifvar4.getRef().toString()); + rule.addCommand(cstr("@echo ") + ifvar1.getRef()); + rule.addCommand(cstr("@echo ") + ifvar2.getRef()); + rule.addCommand(cstr("@echo ") + ifvar3.getRef()); + rule.addCommand(cstr("@echo ") + ifvar4.getRef()); cdef1.addToIf(ifvar1.getDef()); cdef1.addToElse(elsevar1.getDef()); @@ -171,9 +171,9 @@ Rule* rule = mgr.own_add(new Rule()); rule->addTarget(cstr("all")); - rule->addCommand(cstr("@echo ") + v1->getRef().toString()); - rule->addCommand(cstr("@echo ") + v2->getRef().toString()); - rule->addCommand(cstr("@echo ") + v3->getRef().toString()); + rule->addCommand(cstr("@echo ") + v1->getRef()); + rule->addCommand(cstr("@echo ") + v2->getRef()); + rule->addCommand(cstr("@echo ") + v3->getRef()); } }; |
From: <hug...@li...> - 2010-08-13 21:33:07
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/fa8724cf3e51 changeset: 4213:fa8724cf3e51 user: Florian Achleitner <flo...@gm...> date: Fri Aug 13 22:44:59 2010 +0200 description: Patch from Thomas - use const_iterator where applicable - typo in Windows part details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/345ebffbe1ee changeset: 4214:345ebffbe1ee user: Florian Achleitner <flo...@gm...> date: Fri Aug 13 23:22:00 2010 +0200 description: - fix missing enblendOptions details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/8004934d1784 changeset: 4215:8004934d1784 user: Florian Achleitner <flo...@gm...> date: Fri Aug 13 23:23:22 2010 +0200 description: - change default quotemode for numeric value constructor to NONE, quoting not needed. diffstat: src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp | 23 +++++---- src/hugin_base/makefilelib/Variable.h | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diffs (115 lines): diff -r 9a0eac864930 -r 8004934d1784 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Fri Aug 13 14:56:41 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Fri Aug 13 23:23:22 2010 +0200 @@ -78,7 +78,7 @@ } #ifdef _WINDOWS - mgr.own_add(new Comment("Force using cmd.exe"); + mgr.own_add(new Comment("Force using cmd.exe")); mf::Variable* winshell = mgr_own(new mf::Variable("SHELL", getenv("ComSpec"))); winshell->getDef().add(); #endif @@ -160,7 +160,8 @@ if(opts.blendMode == PanoramaOptions::ENBLEND_BLEND) { { - valuestream.str(opts.enblendOptions); + valuestream.str(""); // clear the streams buffer + valuestream << opts.enblendOptions; if (opts.getHFOV() == 360.0) // blend over the border valuestream << " -w"; @@ -305,7 +306,7 @@ std::vector<std::string> remappedHDRImages; std::vector<std::string> remappedHDRgrayImages; - for (UIntSet::iterator it = images.begin(); it != images.end(); it++) + for (UIntSet::const_iterator it = images.begin(); it != images.end(); it++) { std::ostringstream fn1, fn2, fn3; fn1 << outputPrefix << std::setfill('0') << std::setw(4) << *it << ldrRemappedExt; @@ -439,7 +440,7 @@ Rule* all = mgr.own(new Rule()); all->addTarget("all"); - for(std::vector<mf::Variable*>::iterator it = allprereqs.begin(); it != allprereqs.end(); it++) + for(std::vector<mf::Variable*>::const_iterator it = allprereqs.begin(); it != allprereqs.end(); it++) { all->addPrereq((*it)); } @@ -449,7 +450,7 @@ clean->addTarget("clean"); { std::string vdefs; - for(std::vector<mf::Variable*>::iterator it = cleanprereqs.begin(); it != cleanprereqs.end(); it++) + for(std::vector<mf::Variable*>::const_iterator it = cleanprereqs.begin(); it != cleanprereqs.end(); it++) { vdefs += (*it)->getRef() + " "; } @@ -494,7 +495,7 @@ if(opts.remapper == PanoramaOptions::NONA) { mgr.own_add(new Comment("Rules for ordinary TIFF_m and hdr output")); - UIntSet::iterator it = images.begin(); + UIntSet::const_iterator it = images.begin(); size_t i=0; for(; it != images.end(); it++, i++) { @@ -527,7 +528,7 @@ for(i=0; i < exposures.size(); i++) { size_t j=0; - for(UIntSet::iterator it = exposures[i].begin(); it != exposures[i].end(); it++, j++) + for(UIntSet::const_iterator it = exposures[i].begin(); it != exposures[i].end(); it++, j++) { std::ostringstream expvalue, imgnr; imgnr << *it; @@ -714,7 +715,7 @@ stackname << stkname << "_" << i; std::vector<std::string> inputs; - for (UIntSet::iterator it = stackdata[i].begin(); it != stackdata[i].end(); it++) + for (UIntSet::const_iterator it = stackdata[i].begin(); it != stackdata[i].end(); it++) { std::ostringstream fns; fns << outputPrefix << inputfilenamecenter << std::setfill('0') << std::setw(4) << *it << filenameext; @@ -741,7 +742,7 @@ std::string stackrefs; std::string stackrefsshell; - std::vector<mf::Variable*>::iterator it, it2; + std::vector<mf::Variable*>::const_iterator it, it2; it = stacks.begin(); it2 = stacks_shell.begin(); for(; it != stacks.end() && it2 != stacks_shell.end(); it++, it2++) @@ -779,7 +780,7 @@ std::vector<std::string> inputspt; double exposure = 0; - for (UIntSet::iterator it = stackdata[i].begin(); it != stackdata[i].end(); it++) + for (UIntSet::const_iterator it = stackdata[i].begin(); it != stackdata[i].end(); it++) { std::ostringstream fns, fnpt; fns << outputPrefix << inputfilenamecenter << std::setfill('0') << std::setw(4) << *it << filenameext; @@ -822,7 +823,7 @@ std::string stackrefs; std::string stackrefsshell; - std::vector<mf::Variable*>::iterator it, it2; + std::vector<mf::Variable*>::const_iterator it, it2; it = stacks.begin(); it2 = stacks_shell.begin(); for(; it != stacks.end() && it2 != stacks_shell.end(); it++, it2++) diff -r 9a0eac864930 -r 8004934d1784 src/hugin_base/makefilelib/Variable.h --- a/src/hugin_base/makefilelib/Variable.h Fri Aug 13 14:56:41 2010 +0200 +++ b/src/hugin_base/makefilelib/Variable.h Fri Aug 13 23:23:22 2010 +0200 @@ -59,7 +59,7 @@ /// Takes a string value Variable(string name_, string value_, Makefile::QuoteMode quotemode_ = Makefile::SHELL); /// Takes a numeric value - Variable(string name_, double value_, Makefile::QuoteMode quotemode_ = Makefile::SHELL); + Variable(string name_, double value_, Makefile::QuoteMode quotemode_ = Makefile::NONE); /** Takes values and appends them using seperator. The seperators will not be quoted * so using this, it's possible to have a list of filenames with spaces in them, quote * those correctly, but have a space seperated list of filenames. |
From: <hug...@li...> - 2010-08-14 22:16:52
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/f5f5d56e3000 changeset: 4222:f5f5d56e3000 user: Florian Achleitner <flo...@gm...> date: Sat Aug 14 23:51:41 2010 +0200 description: add a getter for Variable::values vector details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/751f02a2c323 changeset: 4223:751f02a2c323 user: Florian Achleitner <flo...@gm...> date: Sat Aug 14 23:53:40 2010 +0200 description: add outputFiles feature (and overlap->10) details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/7f0ac9682168 changeset: 4224:7f0ac9682168 user: Florian Achleitner <flo...@gm...> date: Sun Aug 15 00:10:35 2010 +0200 description: - fix error in outputFiles - don't quote del on windows diffstat: src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp | 2 +- src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp | 66 ++++++++- src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h | 22 +++- src/hugin_base/makefilelib/AutoVariable.cpp | 4 + src/hugin_base/makefilelib/AutoVariable.h | 1 + src/hugin_base/makefilelib/Variable.h | 8 + 6 files changed, 92 insertions(+), 11 deletions(-) diffs (308 lines): diff -r 31d66bc80688 -r 7f0ac9682168 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp Sat Aug 14 12:21:56 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp Sun Aug 15 00:10:35 2010 +0200 @@ -56,7 +56,7 @@ UIntSet stack; HuginBase::CalculateImageOverlap overlap(&pano); - overlap.calculate(50); // we are testing 50*50=2500 points + overlap.calculate(10); // we are testing 50*50=2500 points do { unsigned srcImg = *(allImgs.begin()); stack.insert(srcImg); diff -r 31d66bc80688 -r 7f0ac9682168 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Sat Aug 14 12:21:56 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Sun Aug 15 00:10:35 2010 +0200 @@ -94,7 +94,7 @@ newVarDef(vsmartblend, "SMARTBLEND", progs.smartblend); newVarDef(vhdrmerge, "HDRMERGE", progs.hdrmerge); #ifdef _WINDOWS - newVarDef(vrm, "RM", "del"); + newVarDef(vrm, "RM", "del", Makefile::NONE); #else newVarDef(vrm, "RM", "rm"); #endif @@ -331,24 +331,26 @@ mgr.own_add(new Comment("stacked hdr images")); std::vector<UIntSet> stacks = getHDRStacks(pano, images); mf::Variable* vhdrstacks,* vhdrstacksshell; + std::vector<std::string> stackedhdrImgs; createstacks(stacks, "HDR_STACK", "_stack_hdr_", "_hdr_", hdrRemappedExt, - hdr_stacks, hdr_stacks_shell, hdr_stacks_input, hdr_stacks_input_shell, vhdrstacks, vhdrstacksshell); + hdr_stacks, hdr_stacks_shell, hdr_stacks_input, hdr_stacks_input_shell, vhdrstacks, vhdrstacksshell, stackedhdrImgs); std::vector<mf::Variable*> ldrexp_stacks, ldrexp_stacks_shell, ldrexp_stacks_input, ldrexp_stacks_input_shell, ldrexp_stacks_pt_input, ldrexp_stacks_input_pt_shell; mgr.own_add(new Comment("number of image sets with similar exposure")); mf::Variable* vldrexposurelayers,* vldrexposurelayersshell,* vldrexposurelayersremapped,* vldrexposurelayersremappedshell; std::vector<UIntSet> exposures = getExposureLayers(pano, images); - std::vector<std::string> exposureremappedimgs; + std::vector<std::string> exposureimgs; createexposure(exposures, "LDR_EXPOSURE_LAYER", "_exposure_", "_exposure_layers_", ldrRemappedExt, ldrexp_stacks, ldrexp_stacks_shell, ldrexp_stacks_input, ldrexp_stacks_input_shell, ldrexp_stacks_pt_input, ldrexp_stacks_input_pt_shell, vldrexposurelayers, vldrexposurelayersshell, vldrexposurelayersremapped, vldrexposurelayersremappedshell, - exposureremappedimgs); + exposureimgs); std::vector<mf::Variable*> ldr_stacks, ldr_stacks_shell, ldr_stacks_input, ldr_stacks_input_shell; mgr.own_add(new Comment("stacked ldr images")); mf::Variable* vldrstacks,* vldrstacksshell; + std::vector<std::string> stackedldrimgs; createstacks(stacks, "LDR_STACK", "_stack_ldr_", "_exposure_layers_", ldrRemappedExt, - ldr_stacks, ldr_stacks_shell, ldr_stacks_input, ldr_stacks_input_shell, vldrstacks, vldrstacksshell); + ldr_stacks, ldr_stacks_shell, ldr_stacks_input, ldr_stacks_input_shell, vldrstacks, vldrstacksshell, stackedldrimgs); //---------- @@ -366,68 +368,101 @@ if(opts.outputLDRBlended) { allprereqs.push_back(vldrblended); + append(outputFiles, vldrblended->getValues()); newVarDef(vdoldrblend, "DO_LDR_BLENDED", 1); if(!opts.outputLDRLayers) + { cleanprereqs.push_back(vldrlayersshell); + append(outputFiles, vldrlayers->getValues()); + } } if(opts.outputLDRLayers) + { allprereqs.push_back(vldrlayers); + append(outputFiles, vldrlayers->getValues()); + } if(opts.outputLDRExposureRemapped) + { allprereqs.push_back(vldrexposurelayersremapped); + append(outputFiles, vldrexposurelayersremapped->getValues()); + } if(opts.outputLDRExposureLayers) { allprereqs.push_back(vldrexposurelayers); + append(outputFiles, exposureimgs); if(!opts.outputLDRExposureRemapped) + { cleanprereqs.push_back(vldrexposurelayersremappedshell); + append(outputFiles, vldrexposurelayersremapped->getValues()); + } } if(opts.outputLDRExposureBlended) { allprereqs.push_back(vldrstackedblended); + append(outputFiles, vldrstackedblended->getValues()); newVarDef(vdoldrstackedblended, "DO_LDR_STACKED_BLENDED", 1); cleanprereqs.push_back(vldrstacksshell); + append(outputFiles, stackedldrimgs); if(!opts.outputLDRExposureRemapped && !opts.outputLDRExposureLayers) + { cleanprereqs.push_back(vldrexposurelayersremappedshell); + append(outputFiles, vldrexposurelayersremapped->getValues()); + } } if(opts.outputLDRExposureLayersFused) { allprereqs.push_back(vldrexposurelayersfused); + append(outputFiles, vldrexposurelayersfused->getValues()); newVarDef(vdoldrexposurelayersfused, "DO_LDR_EXPOSURE_LAYERS_FUSED", 1); + append(outputFiles, exposureimgs); if(!opts.outputLDRExposureRemapped && !opts.outputLDRExposureLayers) { cleanprereqs.push_back(vldrexposurelayersremappedshell); + append(outputFiles, vldrexposurelayersremapped->getValues()); cleanprereqs.push_back(vldrexposurelayersshell); } } if(opts.outputHDRLayers) + { allprereqs.push_back(vhdrlayers); + append(outputFiles, vhdrlayers->getValues()); + append(outputFiles, vhdrgraylayers->getValues()); + } if(opts.outputHDRStacks) { allprereqs.push_back(vhdrstacks); + append(outputFiles, stackedhdrImgs); if(!opts.outputHDRLayers) { cleanprereqs.push_back(vhdrlayersshell); cleanprereqs.push_back(vhdrgraylayersshell); + append(outputFiles, vhdrlayers->getValues()); + append(outputFiles, vhdrgraylayers->getValues()); } } if(opts.outputHDRBlended) { allprereqs.push_back(vhdrblended); + append(outputFiles, vhdrblended->getValues()); newVarDef(vdohdrblended, "DO_HDR_BLENDED", 1); if(!opts.outputHDRStacks) { cleanprereqs.push_back(vhdrstacksshell); + append(outputFiles, stackedhdrImgs); if(!opts.outputHDRLayers) { cleanprereqs.push_back(vhdrlayersshell); cleanprereqs.push_back(vhdrgraylayersshell); + append(outputFiles, vhdrlayers->getValues()); + append(outputFiles, vhdrgraylayers->getValues()); } } } @@ -532,7 +567,7 @@ expvalue.imbue(Makefile::locale); expvalue << pano.getSrcImage(*it).getExposureValue(); Rule* rule = mgr.own(new Rule()); rule->add(); - rule->addTarget(Makefile::quote(exposureremappedimgs[j], Makefile::MAKE)); + rule->addTarget(Makefile::quote(vldrexposurelayersremapped->getValues()[j], Makefile::MAKE)); rule->addPrereq(pano.getImage(*it).getFilename()); rule->addPrereq(vprojectfile); rule->addCommand( @@ -701,7 +736,8 @@ std::vector<mf::Variable*>& stacks_input, std::vector<makefile::Variable*>& stacks_input_shell, mf::Variable*& vstacks, - mf::Variable*& vstacksshell) + mf::Variable*& vstacksshell, + std::vector<std::string>& allfiles) { std::ostringstream stknrs; for (unsigned i=0; i < stackdata.size(); i++) @@ -710,6 +746,7 @@ std::ostringstream filename, stackname; filename << outputPrefix << filenamecenter << std::setfill('0') << std::setw(4) << i << filenameext; stackname << stkname << "_" << i; + allfiles.push_back(filename.str()); std::vector<std::string> inputs; for (UIntSet::const_iterator it = stackdata[i].begin(); it != stackdata[i].end(); it++) @@ -766,7 +803,7 @@ mf::Variable*& vstacksshell, mf::Variable*& vstacksrem, mf::Variable*& vstacksremshell, - std::vector<std::string>& allinputs) + std::vector<std::string>& alllayers) { std::vector<std::string> allimgs; std::ostringstream stknrs; @@ -776,6 +813,7 @@ std::ostringstream filename, stackname; filename << outputPrefix << filenamecenter << std::setfill('0') << std::setw(4) << i << filenameext; stackname << stkname << "_" << i; + alllayers.push_back(filename.str()); std::vector<std::string> inputs, inputspt; double exposure = 0; @@ -785,7 +823,6 @@ fns << outputPrefix << inputfilenamecenter << std::setfill('0') << std::setw(4) << *it << filenameext; fnpt << outputPrefix << std::setfill('0') << std::setw(4) << *it << filenameext; inputs.push_back(fns.str()); - allinputs.push_back(fns.str()); inputspt.push_back(fnpt.str()); exposure += pano.getSrcImage(*it).getExposureValue(); @@ -866,4 +903,15 @@ std::cout << "\n"; } } + +template<typename T> +void append(std::vector<T>& dst, const std::vector<T>& src) +{ + dst.insert(dst.end(), src.begin(), src.end()); } +template<typename T> +void append(std::vector<T>& vec, const T& element) +{ + vec.push_back(element); +} +} diff -r 31d66bc80688 -r 7f0ac9682168 src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h Sat Aug 14 12:21:56 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h Sun Aug 15 00:10:35 2010 +0200 @@ -85,7 +85,8 @@ std::vector<makefile::Variable*>& stacks_input, std::vector<makefile::Variable*>& stacks_input_shell, makefile::Variable*& vstacks, - makefile::Variable*& vstacksshell); + makefile::Variable*& vstacksshell, + std::vector<std::string>& allfiles); void createexposure(const std::vector<UIntSet> stackdata, const std::string stkname, const std::string filenamecenter, const std::string inputfilenamecenter, const std::string filenameext, @@ -160,7 +161,26 @@ }; +/** + * Simple helper to output stacks for debugging. + * @param stackdata + */ void printstacks(const std::vector<UIntSet>& stackdata); +/** + * Simply calls push_back, convinience function. + * @param vec + * @param element + */ +template<typename T> +void append(std::vector<T>& vec, const T& element); +/** + * Copys all of src to the end of test. Just calls insert. + * Convinience function. + * @param dst + * @param src + */ +template<typename T> +void append(std::vector<T>& dst, const std::vector<T>& src); } #endif /* PANORAMAMAKEFILELIBEXPORT_H_ */ diff -r 31d66bc80688 -r 7f0ac9682168 src/hugin_base/makefilelib/AutoVariable.cpp --- a/src/hugin_base/makefilelib/AutoVariable.cpp Sat Aug 14 12:21:56 2010 +0200 +++ b/src/hugin_base/makefilelib/AutoVariable.cpp Sun Aug 15 00:10:35 2010 +0200 @@ -23,6 +23,10 @@ { return getValue(); } +const std::vector<string>& AutoVariable::getValues() +{ + throw(std::runtime_error("AutoVariables have no predefined value.")); +} VariableDef& AutoVariable::getDef() { diff -r 31d66bc80688 -r 7f0ac9682168 src/hugin_base/makefilelib/AutoVariable.h --- a/src/hugin_base/makefilelib/AutoVariable.h Sat Aug 14 12:21:56 2010 +0200 +++ b/src/hugin_base/makefilelib/AutoVariable.h Sun Aug 15 00:10:35 2010 +0200 @@ -35,6 +35,7 @@ /// Has no value, exception. virtual const string getValue(); virtual const string getquotedValue(); + virtual const std::vector<string>& getValues(); /// Has no definition, exception. virtual VariableDef& getDef(); diff -r 31d66bc80688 -r 7f0ac9682168 src/hugin_base/makefilelib/Variable.h --- a/src/hugin_base/makefilelib/Variable.h Sat Aug 14 12:21:56 2010 +0200 +++ b/src/hugin_base/makefilelib/Variable.h Sun Aug 15 00:10:35 2010 +0200 @@ -82,6 +82,14 @@ */ virtual const string getquotedValue(); + /** + * @return The value vector. + */ + virtual const std::vector<string>& getValues() + { + return values; + } + virtual VariableDef& getDef() { return def; |
From: <hug...@li...> - 2010-08-26 17:54:12
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/74941976f2e8 changeset: 4247:74941976f2e8 user: tmodes date: Thu Aug 26 19:04:59 2010 +0200 description: Bugfix for projects which does not require stereographic remapping details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/72e8b6455103 changeset: 4248:72e8b6455103 user: tmodes date: Thu Aug 26 19:11:20 2010 +0200 description: Added version check for boost Makefilelib branches requires at least Boost 1.34 details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/c6268a6e8ec3 changeset: 4249:c6268a6e8ec3 user: tmodes date: Thu Aug 26 19:53:20 2010 +0200 description: Fixes compilation on windows But hugin crashes at startup. diffstat: .hgignore | 3 + CMakeLists.txt | 3 +- CMakeModules/FindBoostPython.cmake | 151 - TODO | 28 +- mac/ExternalPrograms/readme.txt | 68 +- mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt | 66 - mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt.org | 66 + mac/ExternalPrograms/scripts/SetEnv-leopard.txt | 66 - mac/ExternalPrograms/scripts/SetEnv-leopard.txt.org | 66 + mac/ExternalPrograms/scripts/SetEnv-universal.txt | 53 - mac/ExternalPrograms/scripts/SetEnv-universal.txt.org | 53 + src/CMakeLists.txt | 8 +- src/CMakeLists.txt~ | 59 - src/foreign/CMakeLists.txt | 1 - src/foreign/CMakeLists.txt~ | 12 - src/foreign/tclap/Arg.h | 586 - src/foreign/tclap/ArgException.h | 189 - src/foreign/tclap/CmdLine.h | 494 - src/foreign/tclap/CmdLineInterface.h | 137 - src/foreign/tclap/CmdLineOutput.h | 74 - src/foreign/tclap/Constraint.h | 68 - src/foreign/tclap/DocBookOutput.h | 274 - src/foreign/tclap/HelpVisitor.h | 69 - src/foreign/tclap/IgnoreRestVisitor.h | 52 - src/foreign/tclap/MultiArg.h | 525 - src/foreign/tclap/MultiSwitchArg.h | 202 - src/foreign/tclap/OptionalUnlabeledTracker.h | 62 - src/foreign/tclap/StdOutput.h | 291 - src/foreign/tclap/SwitchArg.h | 206 - src/foreign/tclap/UnlabeledMultiArg.h | 303 - src/foreign/tclap/UnlabeledValueArg.h | 341 - src/foreign/tclap/ValueArg.h | 522 - src/foreign/tclap/ValuesConstraint.h | 147 - src/foreign/tclap/VersionVisitor.h | 70 - src/foreign/tclap/Visitor.h | 53 - src/foreign/tclap/XorHandler.h | 156 - src/foreign/vigra/vigra/basicimage.hxx~ | 1441 -- src/foreign/vigra/vigra/impex.hxx | 4 - src/foreign/vigra/vigra/impex.hxx~ | 996 -- src/foreign/zthread/AUTHORS | 4 - src/foreign/zthread/COPYING | 19 - src/foreign/zthread/LICENSE | 19 - src/foreign/zthread/MIT.TXT | 19 - src/foreign/zthread/README | 62 - src/foreign/zthread/ReadMe.txt | 21 - src/foreign/zthread/include/zthread/AtomicCount.h | 74 - src/foreign/zthread/include/zthread/Barrier.h | 330 - src/foreign/zthread/include/zthread/BiasedReadWriteLock.h | 319 - src/foreign/zthread/include/zthread/BlockingQueue.h | 245 - src/foreign/zthread/include/zthread/BoundedQueue.h | 387 - src/foreign/zthread/include/zthread/Cancelable.h | 86 - src/foreign/zthread/include/zthread/ClassLockable.h | 74 - src/foreign/zthread/include/zthread/ConcurrentExecutor.h | 124 - src/foreign/zthread/include/zthread/Condition.h | 154 - src/foreign/zthread/include/zthread/Config.h | 221 - src/foreign/zthread/include/zthread/CountedPtr.h | 289 - src/foreign/zthread/include/zthread/CountingSemaphore.h | 138 - src/foreign/zthread/include/zthread/Exceptions.h | 244 - src/foreign/zthread/include/zthread/Executor.h | 94 - src/foreign/zthread/include/zthread/FairReadWriteLock.h | 183 - src/foreign/zthread/include/zthread/FastMutex.h | 111 - src/foreign/zthread/include/zthread/FastRecursiveMutex.h | 106 - src/foreign/zthread/include/zthread/Guard.h | 511 - src/foreign/zthread/include/zthread/GuardedClass.h | 103 - src/foreign/zthread/include/zthread/Lockable.h | 96 - src/foreign/zthread/include/zthread/LockedQueue.h | 188 - src/foreign/zthread/include/zthread/MonitoredQueue.h | 345 - src/foreign/zthread/include/zthread/Mutex.h | 135 - src/foreign/zthread/include/zthread/NonCopyable.h | 60 - src/foreign/zthread/include/zthread/PoolExecutor.h | 178 - src/foreign/zthread/include/zthread/Priority.h | 39 - src/foreign/zthread/include/zthread/PriorityCondition.h | 89 - src/foreign/zthread/include/zthread/PriorityInheritanceMutex.h | 93 - src/foreign/zthread/include/zthread/PriorityMutex.h | 86 - src/foreign/zthread/include/zthread/PrioritySemaphore.h | 111 - src/foreign/zthread/include/zthread/Queue.h | 189 - src/foreign/zthread/include/zthread/ReadWriteLock.h | 80 - src/foreign/zthread/include/zthread/RecursiveMutex.h | 123 - src/foreign/zthread/include/zthread/Runnable.h | 58 - src/foreign/zthread/include/zthread/Semaphore.h | 150 - src/foreign/zthread/include/zthread/Singleton.h | 249 - src/foreign/zthread/include/zthread/SynchronousExecutor.h | 126 - src/foreign/zthread/include/zthread/Task.h | 78 - src/foreign/zthread/include/zthread/Thread.h | 381 - src/foreign/zthread/include/zthread/ThreadLocal.h | 382 - src/foreign/zthread/include/zthread/ThreadLocalImpl.h | 108 - src/foreign/zthread/include/zthread/ThreadedExecutor.h | 136 - src/foreign/zthread/include/zthread/Time.h | 225 - src/foreign/zthread/include/zthread/Waitable.h | 94 - src/foreign/zthread/include/zthread/ZThread.h | 67 - src/foreign/zthread/share/acinclude.m4 | 29 - src/foreign/zthread/share/atomic-gcc.m4 | 74 - src/foreign/zthread/share/atomic-linux.m4 | 94 - src/foreign/zthread/share/doxygen.m4 | 54 - src/foreign/zthread/share/ftime.m4 | 105 - src/foreign/zthread/share/pthread.m4 | 163 - src/foreign/zthread/share/zthread.m4 | 195 - src/foreign/zthread/src/AtomicCount.cxx | 57 - src/foreign/zthread/src/CMakeLists.txt | 29 - src/foreign/zthread/src/ConcurrentExecutor.cxx | 54 - src/foreign/zthread/src/Condition.cxx | 80 - src/foreign/zthread/src/ConditionImpl.h | 377 - src/foreign/zthread/src/CountingSemaphore.cxx | 92 - src/foreign/zthread/src/Debug.h | 32 - src/foreign/zthread/src/DeferredInterruptionScope.h | 63 - src/foreign/zthread/src/FastLock.h | 71 - src/foreign/zthread/src/FastMutex.cxx | 53 - src/foreign/zthread/src/FastRecursiveLock.h | 74 - src/foreign/zthread/src/FastRecursiveMutex.cxx | 53 - src/foreign/zthread/src/IntrusivePtr.h | 99 - src/foreign/zthread/src/Makefile.am | 58 - src/foreign/zthread/src/Makefile.in | 594 - src/foreign/zthread/src/Monitor.cxx | 39 - src/foreign/zthread/src/Monitor.h | 60 - src/foreign/zthread/src/Mutex.cxx | 68 - src/foreign/zthread/src/MutexImpl.h | 377 - src/foreign/zthread/src/PoolExecutor.cxx | 629 - src/foreign/zthread/src/PriorityCondition.cxx | 80 - src/foreign/zthread/src/PriorityInheritanceMutex.cxx | 109 - src/foreign/zthread/src/PriorityMutex.cxx | 69 - src/foreign/zthread/src/PrioritySemaphore.cxx | 104 - src/foreign/zthread/src/RecursiveMutex.cxx | 61 - src/foreign/zthread/src/RecursiveMutexImpl.cxx | 286 - src/foreign/zthread/src/RecursiveMutexImpl.h | 78 - src/foreign/zthread/src/Scheduling.h | 96 - src/foreign/zthread/src/Semaphore.cxx | 101 - src/foreign/zthread/src/SemaphoreImpl.h | 348 - src/foreign/zthread/src/State.h | 151 - src/foreign/zthread/src/Status.h | 179 - src/foreign/zthread/src/SynchronousExecutor.cxx | 90 - src/foreign/zthread/src/TSS.h | 52 - src/foreign/zthread/src/Thread.cxx | 127 - src/foreign/zthread/src/ThreadImpl.cxx | 468 - src/foreign/zthread/src/ThreadImpl.h | 122 - src/foreign/zthread/src/ThreadLocalImpl.cxx | 66 - src/foreign/zthread/src/ThreadOps.cxx | 54 - src/foreign/zthread/src/ThreadOps.h | 67 - src/foreign/zthread/src/ThreadQueue.cxx | 266 - src/foreign/zthread/src/ThreadQueue.h | 134 - src/foreign/zthread/src/ThreadedExecutor.cxx | 464 - src/foreign/zthread/src/Time.cxx | 45 - src/foreign/zthread/src/TimeStrategy.h | 86 - src/foreign/zthread/src/linux/AtomicCount.cxx | 73 - src/foreign/zthread/src/linux/AtomicFastLock.h | 117 - src/foreign/zthread/src/linux/FastRecursiveLock.h | 83 - src/foreign/zthread/src/macos/FastLock.h | 139 - src/foreign/zthread/src/macos/Monitor.cxx | 280 - src/foreign/zthread/src/macos/Monitor.h | 156 - src/foreign/zthread/src/macos/TSS.h | 120 - src/foreign/zthread/src/macos/ThreadOps.cxx | 103 - src/foreign/zthread/src/macos/ThreadOps.h | 167 - src/foreign/zthread/src/macos/UpTimeStrategy.h | 86 - src/foreign/zthread/src/posix/ConditionRecursiveLock.h | 146 - src/foreign/zthread/src/posix/FastLock.h | 121 - src/foreign/zthread/src/posix/FtimeStrategy.h | 84 - src/foreign/zthread/src/posix/GetTimeOfDayStrategy.h | 75 - src/foreign/zthread/src/posix/Monitor.cxx | 257 - src/foreign/zthread/src/posix/Monitor.h | 153 - src/foreign/zthread/src/posix/PriorityOps.h | 51 - src/foreign/zthread/src/posix/TSS.h | 104 - src/foreign/zthread/src/posix/ThreadOps.cxx | 147 - src/foreign/zthread/src/posix/ThreadOps.h | 154 - src/foreign/zthread/src/solaris/FastRecursiveLock.h | 122 - src/foreign/zthread/src/vanilla/DualMutexRecursiveLock.h | 173 - src/foreign/zthread/src/vanilla/SimpleAtomicCount.cxx | 100 - src/foreign/zthread/src/vanilla/SimpleRecursiveLock.h | 130 - src/foreign/zthread/src/win32/AtomicCount.cxx | 60 - src/foreign/zthread/src/win32/AtomicFastLock.h | 122 - src/foreign/zthread/src/win32/AtomicFastRecursiveLock.h | 158 - src/foreign/zthread/src/win32/FastLock.h | 146 - src/foreign/zthread/src/win32/FastRecursiveLock.h | 109 - src/foreign/zthread/src/win32/Monitor.cxx | 242 - src/foreign/zthread/src/win32/Monitor.h | 153 - src/foreign/zthread/src/win32/PerformanceCounterStrategy.h | 108 - src/foreign/zthread/src/win32/TSS.h | 108 - src/foreign/zthread/src/win32/ThreadOps.cxx | 197 - src/foreign/zthread/src/win32/ThreadOps.h | 152 - src/foreign/zthread/src/win9x/AtomicCount.cxx | 115 - src/foreign/zthread/src/win9x/AtomicFastLock.h | 130 - src/foreign/zthread/zthread.vcproj | 422 - src/hugin1/hugin/CMakeLists.txt | 8 +- src/hugin1/hugin/CPDetectorConfig_default.h | 4 +- src/hugin1/hugin/ChoosyRemapper.cpp | 20 +- src/hugin1/hugin/ChoosyRemapper.h | 4 +- src/hugin1/hugin/GLPreviewFrame.cpp | 598 +- src/hugin1/hugin/GLPreviewFrame.h | 147 +- src/hugin1/hugin/GLRenderer.cpp | 398 +- src/hugin1/hugin/GLRenderer.h | 93 +- src/hugin1/hugin/GLViewer.cpp | 233 +- src/hugin1/hugin/GLViewer.h | 105 +- src/hugin1/hugin/GreatCircles.cpp | 255 +- src/hugin1/hugin/GreatCircles.h | 27 +- src/hugin1/hugin/LayoutRemapper.cpp | 16 +- src/hugin1/hugin/LayoutRemapper.h | 4 +- src/hugin1/hugin/MeshManager.cpp | 291 +- src/hugin1/hugin/MeshManager.h | 186 +- src/hugin1/hugin/MeshRemapper.cpp | 34 +- src/hugin1/hugin/MeshRemapper.h | 10 +- src/hugin1/hugin/OverviewCameraTool.cpp | 186 + src/hugin1/hugin/OverviewCameraTool.h | 92 + src/hugin1/hugin/OverviewDragTool.cpp | 43 + src/hugin1/hugin/OverviewDragTool.h | 28 + src/hugin1/hugin/OverviewOutlinesTool.cpp | 588 + src/hugin1/hugin/OverviewOutlinesTool.h | 149 + src/hugin1/hugin/PreviewControlPointTool.cpp | 8 +- src/hugin1/hugin/PreviewControlPointTool.h | 6 +- src/hugin1/hugin/PreviewCropTool.cpp | 29 +- src/hugin1/hugin/PreviewCropTool.h | 2 +- src/hugin1/hugin/PreviewDifferenceTool.cpp | 25 +- src/hugin1/hugin/PreviewDifferenceTool.h | 7 +- src/hugin1/hugin/PreviewDragTool.cpp | 349 +- src/hugin1/hugin/PreviewDragTool.h | 31 +- src/hugin1/hugin/PreviewIdentifyTool.cpp | 264 +- src/hugin1/hugin/PreviewIdentifyTool.h | 18 +- src/hugin1/hugin/PreviewLayoutLinesTool.cpp | 57 +- src/hugin1/hugin/PreviewLayoutLinesTool.h | 10 +- src/hugin1/hugin/PreviewPanoMaskTool.h | 2 +- src/hugin1/hugin/ProjectionGridTool.cpp | 467 + src/hugin1/hugin/ProjectionGridTool.h | 81 + src/hugin1/hugin/TexCoordRemapper.cpp | 34 +- src/hugin1/hugin/TexCoordRemapper.h | 4 +- src/hugin1/hugin/TextureManager.cpp | 11 +- src/hugin1/hugin/TextureManager.h | 2 +- src/hugin1/hugin/Tool.cpp | 48 + src/hugin1/hugin/Tool.h | 156 + src/hugin1/hugin/ToolHelper.cpp | 794 + src/hugin1/hugin/ToolHelper.h | 249 + src/hugin1/hugin/VertexCoordRemapper.cpp | 42 +- src/hugin1/hugin/VertexCoordRemapper.h | 4 +- src/hugin1/hugin/ViewState.cpp | 469 +- src/hugin1/hugin/ViewState.h | 272 +- src/hugin1/hugin/xrc/preview_frame.xrc | 20 + src/hugin_base/hugin_utils/utils.h | 96 +- src/hugin_base/panodata/PanoramaOptions.cpp | 4 +- src/hugin_shared.h | 2 +- src/libpanomatic/AUTHORS | 2 - src/libpanomatic/CMakeLists.txt | 7 - src/libpanomatic/COPYING | 340 - src/libpanomatic/LICENSE | 340 - src/libpanomatic/README | 36 - src/libpanomatic/keypoints/CMakeLists.txt | 8 - src/libpanomatic/keypoints/keypoints.cpp | 432 - src/libpanomatic/localfeatures/BoundedSet.h | 113 - src/libpanomatic/localfeatures/BoxFilter.h | 161 - src/libpanomatic/localfeatures/CMakeLists.txt | 29 - src/libpanomatic/localfeatures/CircularKeyPointDescriptor.cpp | 280 - src/libpanomatic/localfeatures/CircularKeyPointDescriptor.h | 62 - src/libpanomatic/localfeatures/Homography.cpp | 322 - src/libpanomatic/localfeatures/Homography.h | 84 - src/libpanomatic/localfeatures/Image.cpp | 130 - src/libpanomatic/localfeatures/Image.h | 78 - src/libpanomatic/localfeatures/KeyPoint.h | 120 - src/libpanomatic/localfeatures/KeyPointDescriptor.h | 41 - src/libpanomatic/localfeatures/KeyPointDetector.cpp | 345 - src/libpanomatic/localfeatures/KeyPointDetector.h | 85 - src/libpanomatic/localfeatures/KeyPointIO.cpp | 177 - src/libpanomatic/localfeatures/KeyPointIO.h | 134 - src/libpanomatic/localfeatures/MathStuff.cpp | 100 - src/libpanomatic/localfeatures/MathStuff.h | 63 - src/libpanomatic/localfeatures/PointMatch.h | 65 - src/libpanomatic/localfeatures/RansacFiltering.cpp | 147 - src/libpanomatic/localfeatures/RansacFiltering.h | 56 - src/libpanomatic/localfeatures/Sieve.h | 91 - src/libpanomatic/localfeatures/WaveFilter.h | 112 - src/libpanomatic/localfeatures/python_wrapper.cpp | 98 - src/libpanomatic/panomatic/CMakeLists.txt | 12 - src/libpanomatic/panomatic/ImageImport.h | 42 - src/libpanomatic/panomatic/KDTree.h | 152 - src/libpanomatic/panomatic/KDTreeImpl.h | 485 - src/libpanomatic/panomatic/PanoDetector.cpp | 404 - src/libpanomatic/panomatic/PanoDetector.h | 232 - src/libpanomatic/panomatic/PanoDetectorDefs.h | 54 - src/libpanomatic/panomatic/PanoDetectorLogic.cpp | 537 - src/libpanomatic/panomatic/TestCode.cpp | 238 - src/libpanomatic/panomatic/TestCode.h | 40 - src/libpanomatic/panomatic/Tracer.h | 47 - src/libpanomatic/panomatic/Utils.cpp | 50 - src/libpanomatic/panomatic/Utils.h | 78 - src/libpanomatic/panomatic/grep | 16 - src/libpanomatic/panomatic/main.cpp | 207 - src/translations/bg.po | 1981 ++- src/translations/ca_ES.po | 1998 ++-- src/translations/cs_CZ.po | 3553 +++---- src/translations/de.po | 4813 ++++---- src/translations/en_GB.po | 3411 +++--- src/translations/es.po | 1978 ++- src/translations/fi.po | 3913 +++---- src/translations/fr.po | 1978 ++- src/translations/hu.po | 1978 ++- src/translations/hugin.pot | 3515 +++--- src/translations/it.po | 2017 ++-- src/translations/ja.po | 1979 ++- src/translations/ko.po | 1974 ++- src/translations/nl.po | 4910 +++++---- src/translations/pl.po | 2094 ++-- src/translations/pt_BR.po | 1978 ++- src/translations/ru.po | 1979 ++- src/translations/sk.po | 2052 ++-- src/translations/sl.po | 1980 ++- src/translations/sv.po | 4258 +++---- src/translations/uk.po | 1980 ++- src/translations/zh_CN.po | 3598 ++---- src/translations/zh_TW.po | 1974 ++- 303 files changed, 36492 insertions(+), 67640 deletions(-) diffs (truncated from 171264 to 500 lines): diff -r c07b7c4a48f4 -r c6268a6e8ec3 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Thu Aug 26 19:53:20 2010 +0200 @@ -0,0 +1,3 @@ +# ignore editors backup file +glob:*~$ +glob:rev.txt diff -r c07b7c4a48f4 -r c6268a6e8ec3 CMakeLists.txt --- a/CMakeLists.txt Mon Aug 16 18:25:45 2010 +0200 +++ b/CMakeLists.txt Thu Aug 26 19:53:20 2010 +0200 @@ -137,8 +137,7 @@ ## # This must come before FINDs for tiff, jpeg, png, zlib to enable # finding the wxWidgets distributions of those packages (Win32 only). - -SET(wxWidgets_USE_LIBS base core xrc html xml adv gl net) +SET(wxWidgets_USE_LIBS base core aui xrc html xml adv gl net) FIND_PACKAGE(wxWidgets REQUIRED) # hugin requires wxwidgets 2.7.0 or above diff -r c07b7c4a48f4 -r c6268a6e8ec3 CMakeModules/FindBoostPython.cmake --- a/CMakeModules/FindBoostPython.cmake Mon Aug 16 18:25:45 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -# - Try to find the a valid boost+python combination -# Once done this will define -# -# BOOST_PYTHON_FOUND - system has a valid boost+python combination -# BOOST_PYTHON_INCLUDES - the include directory for boost+python -# BOOST_PYTHON_LIBS - the needed libs for boost+python - -# Copyright (c) 2006, Pino Toscano, <tos...@ti...> -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -if(BOOST_PYTHON_INCLUDES AND BOOST_PYTHON_LIBS) - # Already in cache, be silent - set(BOOST_PYTHON_FIND_QUIETLY TRUE) -endif(BOOST_PYTHON_INCLUDES AND BOOST_PYTHON_LIBS) - -# some needed includes -include(CheckCXXSourceCompiles) -include(CheckIncludeFileCXX) -include(CheckLibraryExists) - -# reset vars -set(BOOST_PYTHON_INCLUDES) -set(BOOST_PYTHON_LIBS) - -IF(WIN32) - FIND_PACKAGE(PythonLibs) - FIND_PACKAGE(Boost COMPONENTS Python) - - IF(PYTHONLIBS_FOUND) - IF(Boost_PYTHON_FOUND) - set(BOOST_PYTHON_INCLUDES ${PYTHON_INCLUDE_DIRS} ${Boost_INCLUDE_DIR}) - set(BOOST_PYTHON_LIBS ${PYTHON_LIBRARIES} ${Boost_PYTHON_LIBRARY}) - # assuming that boost is build as dynamic lib - STRING(REPLACE ".lib" ".dll" BOOST_PYTHON_DLL ${Boost_PYTHON_LIBRARY}) - ENDIF(Boost_PYTHON_FOUND) - ENDIF(PYTHONLIBS_FOUND) - -ELSE(WIN32) - -# handy arrays -set(PYTHON_VERSIONS "python;python2.6;python2.5;python2.4;python2.3;python2.2") -set(PYTHON_INCLUDE_DIRS "/usr/include/$pyver;/usr/local/include/$pyver;/usr/$pyver/include;/usr/local/$pyver/include;$prefix/include/$pyver;$prefix/$pyver/include") -set(PYTHON_LIBRARY_DIRS "/usr/lib${LIB_SUFFIX};/usr/local/lib${LIB_SUFFIX};/usr/lib${LIB_SUFFIX}/$pyver/config") -set(PYTHON_LIBS "boost_python-gcc-mt;boost_python-mt;boost_python-gcc-mt-1_33;boost_python-gcc-mt-1_33_1;boost_python;boost_python-gcc-mt-1_32;boost_python") - -# 1st: check for boost/shared_ptr.hpp -check_include_file_cxx(boost/shared_ptr.hpp HAVE_BOOST_SHARED_PTR_HPP) - -if(HAVE_BOOST_SHARED_PTR_HPP) - - set(_found FALSE) - - # save the old flags and setting the new ones - set(_save_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}") - - foreach(_pyver ${PYTHON_VERSIONS}) - if(NOT _found) - foreach(_pydir ${PYTHON_INCLUDE_DIRS}) - - if(NOT _found) - string(REPLACE "$pyver" "${_pyver}" _pydir ${_pydir}) - string(REPLACE "$prefix" "${CMAKE_INSTALL_PREFIX}" _pydir ${_pydir}) - - if(EXISTS ${_pydir}) - if(EXISTS ${_pydir}/Python.h) - - foreach(_pylibdir ${PYTHON_LIBRARY_DIRS}) - - if(NOT _found) - string(REPLACE "$pyver" ${_pyver} _pylibdir ${_pylibdir}) - - foreach(_pblib ${PYTHON_LIBS}) - - if(NOT _found) - - set(CMAKE_REQUIRED_FLAGS "-L${_pylibdir}") - set(CMAKE_REQUIRED_INCLUDES ${_pydir}) - set(CMAKE_REQUIRED_LIBRARIES ${_pblib} ${_pyver}) - - check_cxx_source_compiles(" -#include <boost/python.hpp> -const char* greet() { return \"Hello world!\"; } -BOOST_PYTHON_MODULE(hello) { boost::python::def(\"greet\", greet); } - -int main() { return 0; } - -// some vars, in case of the compilation fail... -// python include dir: ${_pydir} -// python lib dir: ${_pylibdir} -// boost python lib: ${_pblib} - -" boost_python_${_pylibdir}_${_pydir}_${_pblib}_compile ) - - set(CMAKE_REQUIRED_FLAGS) - set(CMAKE_REQUIRED_INCLUDES) - set(CMAKE_REQUIRED_LIBRARIES) - - if(boost_python_${_pylibdir}_${_pydir}_${_pblib}_compile) - - set(_found TRUE) - - set(BOOST_PYTHON_INCLUDES ${_pydir}) - set(BOOST_PYTHON_LIBS "-l${_pyver} -L${_pylibdir} -l${_pblib}") - - endif(boost_python_${_pylibdir}_${_pydir}_${_pblib}_compile) - - endif(NOT _found) - - endforeach(_pblib ${PYTHON_LIBS}) - - endif(NOT _found) - - endforeach(_pylibdir ${PYTHON_LIBRARY_DIRS}) - - endif(EXISTS ${_pydir}/Python.h) - endif(EXISTS ${_pydir}) - - endif(NOT _found) - - endforeach(_pydir ${PYTHON_INCLUDE_DIRS}) - - endif(NOT _found) - - endforeach(_pyver ${PYTHON_VERSIONS}) - - set(CMAKE_CXX_FLAGS ${_save_CMAKE_CXX_FLAGS}) - -endif(HAVE_BOOST_SHARED_PTR_HPP) -ENDIF(WIN32) - -if(BOOST_PYTHON_INCLUDES AND BOOST_PYTHON_LIBS) - set(BOOST_PYTHON_FOUND TRUE) -endif(BOOST_PYTHON_INCLUDES AND BOOST_PYTHON_LIBS) - -if(BOOST_PYTHON_FOUND) - if(NOT BoostPython_FIND_QUIETLY) - message(STATUS "Found Boost+Python: ${BOOST_PYTHON_LIBS}") - endif(NOT BoostPython_FIND_QUIETLY) - set(KIG_ENABLE_PYTHON_SCRIPTING 1) - INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS}) -else (BOOST_PYTHON_FOUND) - if (BoostPython_FIND_REQUIRED) - message(FATAL_ERROR "Could NOT find Boost+Python") - endif(BoostPython_FIND_REQUIRED) - set(KIG_ENABLE_PYTHON_SCRIPTING 0) -endif(BOOST_PYTHON_FOUND) - -mark_as_advanced(BOOST_PYTHON_INCLUDES BOOST_PYTHON_LIBS) diff -r c07b7c4a48f4 -r c6268a6e8ec3 TODO --- a/TODO Mon Aug 16 18:25:45 2010 +0200 +++ b/TODO Thu Aug 26 19:53:20 2010 +0200 @@ -1,3 +1,29 @@ [TODO] -- compile a todo list \ No newline at end of file +- compile a todo list + + +Panorama Overview Related TODO list: + + - Check the system in windows and mac (I can only test in windows) + - Bug (at least in my computer) with wxAUI which causes the program to crash when both canvases are undocked and then docked. + - DragTool: add lines from starting to ending point + - Improve performance of calculating panosphere meshes by using GPU + - Create realtime adjustments for the other viewer when dragging images + - Add a switch for the projection grid or make it automatic for certain tabs. + - The projection grid is not included in the mosaic plane currently because just adding it as a rectilinear projection of the current grid will be ugly and not useful. So first I need to come up with some representation of the grid on the mosaic plane which will be useful. + - The mosaic plane could use some things like: + - rendering of the hypothetical camera positions for each image + - rendering of the panosphere together with the plane to create a sense of what is going on. This also needs some thought + - Dragging in the mosaic plane should support changing of the Z parameter as well + - Test the system with masks for the issues that James pointed out + - Highlighting an image in identify mode also highlights the image in the other viewer. This currently only works when the mouse is over the image buttons + - Improve performance for great circles by using display lists and meshes also for the crosses. Also keep the old method by just using lines, which is useful for the preview + - Check the issue with double difference choices + - Add the interactive circles + - Implement the better handling of image groups + - Bug, sometimes changing the FOV sliders doesn't cause the overview to be redrawn + - Add informative status messages + - Automatic adjustment of the zoom level for the mosaic plane + - Toggle buttons to show hide the overview and preview canvases + diff -r c07b7c4a48f4 -r c6268a6e8ec3 mac/ExternalPrograms/readme.txt --- a/mac/ExternalPrograms/readme.txt Mon Aug 16 18:25:45 2010 +0200 +++ b/mac/ExternalPrograms/readme.txt Thu Aug 26 19:53:20 2010 +0200 @@ -1,1 +1,67 @@ -External Programs (This is for 10.4 or above) HOWTO: 1. Download the source package of the external programs. You typically want to place it in the "ExternalPrograms" folder. 2. Edit ExternalPrograms/scripts/SetEnv-*.txt file appropriately, especially the myREPOSITORYDIR variable. 3. Open a Terminal window (bash is preferred). 5. 'cd' into the directory of source you want to compile. (eg. 'cd ExternalPrograms/jpeg-6b') 4. Set the variables for the compilation. (eg. 'source ../scripts/SetEnv-universal.txt') 6. Using the appropriate shell script, build the source. (eg. 'sh ../scripts/libjpeg.sh') RESULT: The programs and libraries will be installed into $myREPOSITORYDIR, which you can manage independently from the systems you are currently using (e.g /usr, /usr/local, /opt, /sw). USAGE: When compiling programs from source specifying the above directory as prefix. You probably have to specify the correct SDK (-isysroot) and MacOS target version (-mmacosx-version-min) as well. You can make multiple 'repositories' as well. For example, you can make one for statically and one for dynamically linked product, or ones with different target architecture/OS versions. PROGRAMS: The following sets are recommended and assumed for building Hugin. Different versions may require editing the version numbers in the scripts. [Dynamic Build for distributable Hugin.app and PTBatcherGUI.app] boost (1.39) libexpat (2.0.1) libjpeg (6b) libpng (1.2.38) libtiff (3.8.2) ilmbase (1.0.1) openexr16 (1.6.1) pano13 (2.9.14) wxmac28 (2.8.10) static/libexiv2 (0.18.2) static/lcms (1.17) static/libxmi (1.2) static/libglew (1.5.1) gnumake (Darwin 9/gnumake-119/make) enblend (3.2) [Static Build for distributable command-line tools] static/boost (1.39) static/libexpat (2.0.1) static/libjpeg (6b) static/libpng (1.2.38) static/libtiff (3.8.2) static/ilmbase (1.0.1) static/openexr16 (1.6.1) static/pano13 (2.9.14) static/wxmac28 (2.8.10) static/libexiv2 (0.18.2) static/lcms (1.17) static/libxmi (1.2) static/libglew (1.5.1) gnumake (Darwin 9 source: gnumake-119/make) enblend31 (3.2) LICENSE: The scripts for compiling universal builds are originally copyrighted by Ippei Ukai (2007-2008), and distributed under the modified BSD license. $Id: howto.txt 1902 2007-02-04 22:27:47Z ippei $ \ No newline at end of file +External Programs +(This is for 10.4 or above) + + +HOWTO: +1. Download the source package of the external programs. You typically want to place it in the "ExternalPrograms" folder. +2. Edit ExternalPrograms/scripts/SetEnv-*.txt.org file appropriately, especially the myREPOSITORYDIR variable and + save it as SetEnv-*.txt. +3. Open a Terminal window (bash is preferred). +5. 'cd' into the directory of source you want to compile. (eg. 'cd ExternalPrograms/jpeg-6b') +4. Set the variables for the compilation. (eg. 'source ../scripts/SetEnv-universal.txt') +6. Using the appropriate shell script, build the source. (eg. 'sh ../scripts/libjpeg.sh') + + +RESULT: +The programs and libraries will be installed into $myREPOSITORYDIR, which you can manage independently from the systems you are currently using (e.g /usr, /usr/local, /opt, /sw). + + +USAGE: +When compiling programs from source specifying the above directory as prefix. You probably have to specify the correct SDK (-isysroot) and MacOS target version (-mmacosx-version-min) as well. +You can make multiple 'repositories' as well. For example, you can make one for statically and one for dynamically linked product, or ones with different target architecture/OS versions. + + +PROGRAMS: +The following sets are recommended and assumed for building Hugin. Different versions may require editing the version numbers in the scripts. + +[Dynamic Build for distributable Hugin.app and PTBatcherGUI.app] +boost (1.41) +libexpat (2.0.1) +libiconv +gettext (0.17) +libjpeg (8) +libpng (1.2.41) +libtiff (3.8.2) +ilmbase (1.0.1) +openexr16 (1.6.2) +pano13 (2.9.17) +wxmac28 (2.8.11) +libexiv2 (0.19) +lcms (1.17) +libxmi (1.2) +libglew (1.5.1) +gnumake (Darwin 9/gnumake-119/make) +enblend (4.0) + +[Static Build for distributable command-line tools] +static/boost (1.39) +static/libexpat (2.0.1) +static/libjpeg (6b) +static/libpng (1.2.38) +static/libtiff (3.8.2) +static/ilmbase (1.0.1) +static/openexr16 (1.6.1) +static/pano13 (2.9.14) +static/wxmac28 (2.8.10) +static/libexiv2 (0.18.2) +static/lcms (1.17) +static/libxmi (1.2) +static/libglew (1.5.1) +gnumake (Darwin 9 source: gnumake-119/make) +enblend31 (3.2) + +LICENSE: +The scripts for compiling universal builds are originally copyrighted by Ippei Ukai (2007-2008), and distributed under the modified BSD license. + + +$Id: howto.txt 1902 2007-02-04 22:27:47Z ippei diff -r c07b7c4a48f4 -r c6268a6e8ec3 mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt --- a/mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt Mon Aug 16 18:25:45 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -# Configuration for 4 part universal build, only possible from Leopard -# Copyright (c) 2008, Ippei Ukai - - -# has to be the absolute path from / -myREPOSITORYDIR="/Users/Shared/development/hugin_related/ExternalPrograms/repository"; - -# number of jobs that make can use, probably same as the number of CPUs. -#PROCESSNUM=2 -PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); - - -#export \ -# CC="gcc-4.2" \ -# CXX="g++-4.2"; - -mkdir -p $myREPOSITORYDIR; - -export \ - REPOSITORYDIR="$myREPOSITORYDIR" \ - ARCHS="ppc i386 ppc64 x86_64" \ - \ - ppcTARGET="powerpc-apple-darwin9" \ - ppcOSVERSION="10.5" \ - ppcMACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - ppcOPTIMIZE="-mcpu=G3 -mtune=G4 -ftree-vectorize" \ - ppcCC="gcc-4.2" \ - ppcCXX="g++-4.2" \ - \ - i386TARGET="i386-apple-darwin9" \ - i386OSVERSION="10.5" \ - i386MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ - i386CC="gcc-4.2" \ - i386CXX="g++-4.2" \ - \ - ppc64TARGET="powerpc64-apple-darwin9" \ - ppc64OSVERSION="10.5" \ - ppc64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - ppc64OPTIMIZE="-mcpu=G5 -mtune=G5 -ftree-vectorize" \ - ppc64CC="gcc-4.2" \ - ppc64CXX="g++-4.2" \ - \ - x64TARGET="x86_64-apple-darwin9" \ - x64OSVERSION="10.5" \ - x64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ - x64OPTIMIZE="-march=core2 -mtune=core2 -ftree-vectorize" \ - x64CC="gcc-4.2" \ - x64CXX="g++-4.2" \ - \ - OTHERARGs="" \ - OTHERMAKEARGs="--jobs=$PROCESSNUM"; - - -# Deprecated: -export \ - ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ - i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION" \ - ppc64ONLYARG="$ppc64OPTIMIZE -mmacosx-version-min=$ppc64OSVERSION" \ - x64ONLYARG="$x64OPTIMIZE -mmacosx-version-min=$x64OSVERSION"; - -# cmake settings -export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" -export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" - -# $Id: SetEnv-universal.txt 2238 2007-07-08 11:19:04Z ippei $ diff -r c07b7c4a48f4 -r c6268a6e8ec3 mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mac/ExternalPrograms/scripts/SetEnv-leopard-OpenMP.txt.org Thu Aug 26 19:53:20 2010 +0200 @@ -0,0 +1,66 @@ +# Configuration for 4 part universal build, only possible from Leopard +# Copyright (c) 2008, Ippei Ukai + + +# has to be the absolute path from / +myREPOSITORYDIR="/Users/Shared/development/hugin_related/ExternalPrograms/repository"; + +# number of jobs that make can use, probably same as the number of CPUs. +#PROCESSNUM=2 +PROCESSNUM=$(hostinfo | grep "Processors active:" | sed 's/^.*://' | wc -w | sed 's/[^[:digit:]]//g'); + + +#export \ +# CC="gcc-4.2" \ +# CXX="g++-4.2"; + +mkdir -p $myREPOSITORYDIR; + +export \ + REPOSITORYDIR="$myREPOSITORYDIR" \ + ARCHS="ppc i386 ppc64 x86_64" \ + \ + ppcTARGET="powerpc-apple-darwin9" \ + ppcOSVERSION="10.5" \ + ppcMACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + ppcOPTIMIZE="-mcpu=G3 -mtune=G4 -ftree-vectorize" \ + ppcCC="gcc-4.2" \ + ppcCXX="g++-4.2" \ + \ + i386TARGET="i386-apple-darwin9" \ + i386OSVERSION="10.5" \ + i386MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + i386OPTIMIZE="-march=prescott -mtune=pentium-m -ftree-vectorize" \ + i386CC="gcc-4.2" \ + i386CXX="g++-4.2" \ + \ + ppc64TARGET="powerpc64-apple-darwin9" \ + ppc64OSVERSION="10.5" \ + ppc64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + ppc64OPTIMIZE="-mcpu=G5 -mtune=G5 -ftree-vectorize" \ + ppc64CC="gcc-4.2" \ + ppc64CXX="g++-4.2" \ + \ + x64TARGET="x86_64-apple-darwin9" \ + x64OSVERSION="10.5" \ + x64MACSDKDIR="/Developer/SDKs/MacOSX10.5.sdk" \ + x64OPTIMIZE="-march=core2 -mtune=core2 -ftree-vectorize" \ + x64CC="gcc-4.2" \ + x64CXX="g++-4.2" \ + \ + OTHERARGs="" \ + OTHERMAKEARGs="--jobs=$PROCESSNUM"; + + +# Deprecated: +export \ + ppcONLYARG="$ppcOPTIMIZE -mmacosx-version-min=$ppcOSVERSION" \ + i386ONLYARG="$i386OPTIMIZE -mmacosx-version-min=$i386OSVERSION" \ + ppc64ONLYARG="$ppc64OPTIMIZE -mmacosx-version-min=$ppc64OSVERSION" \ + x64ONLYARG="$x64OPTIMIZE -mmacosx-version-min=$x64OSVERSION"; + +# cmake settings +export CMAKE_INCLUDE_PATH="$REPOSITORYDIR/include" +export CMAKE_LIBRARY_PATH="$REPOSITORYDIR/lib" + +# $Id: SetEnv-universal.txt 2238 2007-07-08 11:19:04Z ippei $ diff -r c07b7c4a48f4 -r c6268a6e8ec3 mac/ExternalPrograms/scripts/SetEnv-leopard.txt --- a/mac/ExternalPrograms/scripts/SetEnv-leopard.txt Mon Aug 16 18:25:45 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -# Configuration for 4 part universal build, only possible from Leopard -# Copyright (c) 2008, Ippei Ukai - - -# has to be the absolute path from / -myREPOSITORYDIR="/PATH2HUGIN/mac/ExternalPrograms/repository"; - -# number of jobs that make can use, probably same as the number of CPUs. -#PROCESSNUM=2 -if [ $(uname -p) = i386 ] ; then |
From: <hug...@li...> - 2010-08-29 23:40:16
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/cc8d0c234ceb changeset: 4267:cc8d0c234ceb user: James Legg <jl...@us...> date: Mon Aug 30 00:36:19 2010 +0100 description: Fix crash when trying to draw control points on the fast preview that are not in the projectable region. details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/a264d29891ac changeset: 4268:a264d29891ac user: James Legg <jl...@us...> date: Mon Aug 30 00:38:25 2010 +0100 description: merge details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/a1bdf93f59b0 changeset: 4269:a1bdf93f59b0 user: James Legg <jl...@us...> date: Mon Aug 30 00:39:53 2010 +0100 description: Fix crash when trying to draw control points on the fast preview that are not in the projectable region. diffstat: CMakeLists.txt | 2 +- ChangeLog | 292 +- doc/releases/hugin-2010.2.0_beta1.txt | 2444 ---------- mac/copyExtraTools.sh | 2 +- src/hugin1/hugin/GreatCircles.cpp | 4 +- src/hugin1/hugin/MainFrame.cpp | 104 +- src/hugin1/hugin/MainFrame.h | 1 + src/hugin1/hugin/xrc/data/help_en_EN/Fulla.html | 15 +- src/hugin1/hugin/xrc/data/help_en_EN/Hugin.html | 17 +- src/hugin1/hugin/xrc/data/help_en_EN/Hugin_FAQ.html | 3 + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Preferences.html | 2 +- src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Reset_Values_window.html | 4 +- src/hugin1/hugin/xrc/data/help_en_EN/Pano_modify.html | 6 +- src/hugin1/hugin/xrc/data/help_en_EN/Panorama_tools.html | 15 +- src/hugin1/hugin/xrc/data/help_en_EN/Panotools.html | 15 +- src/hugin1/hugin/xrc/data/help_en_EN/Pto_merge.html | 4 +- src/hugin1/hugin/xrc/main_menu.xrc | 46 + src/hugin_base/algorithms/control_points/CleanCP.cpp | 49 + src/hugin_base/algorithms/control_points/CleanCP.h | 3 + src/hugin_base/panodata/ControlPoint.cpp | 14 + src/hugin_base/panodata/ControlPoint.h | 7 + src/hugin_base/panodata/Panorama.cpp | 28 + src/hugin_base/panodata/Panorama.h | 4 + src/hugin_base/panodata/PanoramaData.h | 4 + src/translations/ja.po | 1069 +-- 25 files changed, 933 insertions(+), 3221 deletions(-) diffs (truncated from 6494 to 500 lines): diff -r c4ded35d3f73 -r a1bdf93f59b0 CMakeLists.txt --- a/CMakeLists.txt Wed Aug 25 20:49:46 2010 +0200 +++ b/CMakeLists.txt Mon Aug 30 00:39:53 2010 +0100 @@ -16,7 +16,7 @@ # version set(V_MAJOR 2010) -set(V_MINOR 2) +set(V_MINOR 3) set(V_PATCH 0) # diff -r c4ded35d3f73 -r a1bdf93f59b0 ChangeLog --- a/ChangeLog Wed Aug 25 20:49:46 2010 +0200 +++ b/ChangeLog Mon Aug 30 00:39:53 2010 +0100 @@ -1,110 +1,248 @@ +2010-08-28 Bruno Postle <br...@po...> + + * src/translations/ja.po: + Remove some \n from Japanese translation that caused fatal error + [33c9f4471693] + +2010-08-28 Masahiro Kitagawa <arc...@gm...> + + * src/translations/ja.po: + updated Japanese translation + [e36f788bf17f] + +2010-08-25 tmodes <tmodes> + + * src/hugin1/hugin/ImagesPanel.cpp: + Ignore empty input fields in Images tab + [db6a0a66364a] + +2010-08-23 Bruno Postle <br...@po...> + + * src/translations/it.po: + Updated Italian translation (Cristian Marchi) + [3bed0a85cc33] + +2010-08-07 tmodes <tmodes> + + * src/hugin_base/algorithms/basic/CalculateOverlap.cpp, + src/hugin_base/algorithms/basic/CalculateOverlap.h, + src/hugin_base/panodata/Panorama.cpp, + src/hugin_base/panodata/SrcPanoImage.cpp, + src/hugin_base/panodata/SrcPanoImage.h: + Faster mask calculation for bigger projects + [7865fdc91695] + + * src/hugin1/hugin/MainFrame.cpp, + src/hugin_base/algorithms/control_points/CleanCP.cpp: + Fixes bug in last commit (652ab1e4d937) + [8e0fa9d64380] + +2010-08-05 tmodes <tmodes> + + * src/hugin1/hugin/MainFrame.cpp, + src/hugin_base/algorithms/control_points/CleanCP.cpp, + src/hugin_base/algorithms/control_points/CleanCP.h: + Refactored code for removing control points in masks + [652ab1e4d937] + + * src/hugin_base/panodata/ControlPoint.cpp, + src/hugin_base/panodata/ControlPoint.h, + src/hugin_base/panodata/Panorama.cpp, + src/hugin_base/panodata/Panorama.h, + src/hugin_base/panodata/PanoramaData.h: + Added code to remove duplicate control points after merging + [c6244856168f] + +2010-08-04 tmodes <tmodes> + + * src/hugin_base/algorithms/basic/CalculateOptimalROI.cpp, + src/hugin_base/algorithms/basic/CalculateOptimalROI.h: + Several improvements for autocrop + * Better memory management + * Make autocrop aware of crops and masks + * Works now also with bigger dimensions + [090323ed8e65] + +2010-08-01 tmodes <tmodes> + + * src/hugin_base/algorithms/basic/CalculateOptimalROI.cpp, + src/hugin_base/algorithms/basic/CalculateOptimalROI.h: + Do autocrop to active images only and not all images Clean up code + (removed unused lines) + [729147f7db0c] + + * src/hugin_base/algorithms/basic/CalculateOverlap.cpp, + src/hugin_base/algorithms/point_sampler/PointSampler.h, + src/hugin_base/nona/RemappedPanoImage.h, + src/hugin_base/panotools/PanoToolsInterface.cpp: + Check, if transformImgCoord was successfull This should fix the bug, + that the fov was calculated wrong for projects with non-zero + translations parameters. Now also the photometric optimisation + should work for these projects. + [ebece9c9319d] + +2010-07-29 harryvanderwolf <hv...@gm...> + + * CMakeLists.txt: + [OSX] typo corrected + [c5c9bb0923a3] + + * CMakeLists.txt: + [OSX] neccessary adjustment for cmake compilation + [27b53a38eb7e] + +2010-07-28 tmodes <tmodes> + + * src/hugin1/hugin/MainFrame.cpp: + Fixes possible bug in 5e631cee4cc5 (It's not sure, that the + constants ID_SHOW_PANEL_IMAGES ... ID_SHOW_PANEL_PANORAMA are + consecutive. They can have random values.) + [31fdaa8ffc2c] + +2010-07-27 Vaclav Cerny <va...@se...> + + * src/hugin1/hugin/MainFrame.cpp, src/hugin1/hugin/MainFrame.h, + src/hugin1/hugin/xrc/main_menu.xrc: + Add menuitems Show panel ... with shortcut + [5e631cee4cc5] + +2010-07-24 Andreas <Andreas Metzler> + + * CMakeLists.txt, CMakeModules/FindPANO13.cmake: + Added version checking for libpano13 (transplanted from + 6e072258d9510951f49c37962332c682cc78d9ac) + [2fc209cbb6ee] + +2010-07-23 tmodes <tmodes> + + * src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.c + pp: + Reduce resolution for overlap detection in makefile generation (This + should speed up of writing of makefile) + [8cbe07845ccf] + +2010-07-22 Bruno Postle <br...@po...> + + * src/hugin1/hugin/xrc/data/help_en_EN/Autooptimiser.html, + src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift-C.html, + src/hugin1/hugin/xrc/data/help_en_EN/Chromatic_aberration.html, + src/hugin1/hugin/xrc/data/help_en_EN/DSLR_spherical_resolution.html, + src/hugin1/hugin/xrc/data/help_en_EN/Enfuse.html, + src/hugin1/hugin/xrc/data/help_en_EN/Field_of_View.html, + src/hugin1/hugin/xrc/data/help_en_EN/HDR_workflow_with_hugin.html, + src/hugin1/hugin/xrc/data/help_en_EN/Horizontal_control_points.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Camera_and_Lens_tab.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Control_Points_tab.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_FAQ.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Fast_Preview_window.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Images_tab.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Mask_tab.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Optimizer_tab.html, src/h + ugin1/hugin/xrc/data/help_en_EN/Hugin_Parameters_for_Control_Point_D + etectors_dialog.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Preferences.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_Reset_Values_window.html, + src/hugin1/hugin/xrc/data/help_en_EN/Hugin_translation_guide.html, + src/hugin1/hugin/xrc/data/help_en_EN/Pano_modify.html, src/hugin1/hu + gin/xrc/data/help_en_EN/Panorama_scripting_in_a_nutshell.html, + src/hugin1/hugin/xrc/data/help_en_EN/Pitch.html, + src/hugin1/hugin/xrc/data/help_en_EN/Projections.html, + src/hugin1/hugin/xrc/data/help_en_EN/Pto_merge.html, + src/hugin1/hugin/xrc/data/help_en_EN/SmartBlend.html, src/hugin1/hug + in/xrc/data/help_en_EN/Straight_line_control_points.html, + src/hugin1/hugin/xrc/data/help_en_EN/Swing_rod.html, src/hugin1/hugi + n/xrc/data/help_en_EN/The_General_Panini_Projection.html, + src/hugin1/hugin/xrc/data/help_en_EN/Vertical_control_points.html, + src/hugin1/hugin/xrc/data/help_en_EN/Wavy_distortion.html, + src/hugin1/hugin/xrc/data/help_en_EN/Yaw.html: + Update manual from wiki + [f408e18d7ed7] + + * src/hugin1/hugin/xrc/data/help_en_EN/pages.txt: + New pages from wiki + [014cdfa994d2] + +2010-07-18 Bruno Postle <br...@po...> + + * doc/pano_trafo.1: + Regenerate pano_trafo man page (Andreas Metzler) + [87026235e9ca] + 2010-07-15 James Legg <jl...@us...> * src/hugin1/hugin/ViewState.cpp: Fix bug where fast preview interactions could disconnect image's lenses introduced in 66f626bf15aa. - [32dc50543204] [tip] + [275fb96ee614] 2010-07-15 tmodes <tmodes> * CMakeModules/win_bundle.cmake: Added missing files to install target for windows - [a94c74257dc7] + [690b85e84096] 2010-07-13 tmodes <tmodes> * src/hugin_base/panodata/Panorama.cpp: Fixes an issue with positive masks and fisheye images - [497b2b9fb40f] + [a7e8dc9da841] 2010-07-07 Bruno Postle <br...@po...> - * ChangeLog, doc/releases/hugin-2010.2.0_beta1.txt: - Unfinished announcement for a 2010.2.0_beta1 release - [7e19d5bea985] - -2010-06-29 Kornel Benko <Kor...@be...> - - * CMakeLists.txt, ChangeLog, admin/update_tarball.sh, doc/batch- - processing/README.batch, doc/releases/hugin-0.8.0.txt, - doc/releases/hugin-0.8.0_rc1.txt, doc/releases/hugin-0.8.0_rc2.txt, - doc/releases/hugin-0.8.0_rc3.txt, doc/releases/hugin-0.8.0_rc4.txt, - doc/releases/hugin-0.8.0_rc5.txt, doc/releases/hugin-2009.4.0.txt, - doc/releases/hugin-2009.4.0_rc3.txt, doc/releases/hugin- - 2010.0.0.txt, doc/releases/hugin-2010.0.0_rc1.txt, - src/hugin1/hugin/ViewState.cpp, src/hugin1/hugin/wxPanoCommand.cpp, + * doc/releases/hugin-0.8.0.txt, doc/releases/hugin-0.8.0_rc1.txt, + doc/releases/hugin-0.8.0_rc2.txt, doc/releases/hugin-0.8.0_rc3.txt, + doc/releases/hugin-0.8.0_rc4.txt, doc/releases/hugin-0.8.0_rc5.txt, + doc/releases/hugin-2009.4.0.txt, doc/releases/hugin- + 2009.4.0_rc3.txt, doc/releases/hugin-2010.0.0.txt, doc/releases/ + hugin-2010.0.0_rc1.txt: + Add some historic release notes + [8cf00462e9cf] + + * admin/update_tarball.sh: + Remove ancient unused script + [c9df36df86dd] + + * doc/batch-processing/README.batch: + Outdated info is now on the wiki + [f641d81bb04e] + +2010-06-29 James Legg <jl...@us...> + + * merge + [9fb6e9f16ef8] + + * src/hugin1/hugin/ViewState.cpp, src/hugin1/hugin/wxPanoCommand.cpp, src/hugin_base/algorithms/basic/CalculateOverlap.cpp, src/hugin_base /algorithms/panorama_makefile/PanoramaMakefileExport.cpp: + Don't call Panorama::getSrcImage when a const reference would do, + use Panorama::getImage instead. Most performance improvements are + from CalculateImageOverlap::calculate. In my test saving a project + was three times faster. + [66f626bf15aa] + +2010-06-29 Kornel Benko <Kor...@be...> + + * CMakeLists.txt: Enable creation of ChangeLog from build-dir - [f9fc675ab021] - -2010-07-07 Bruno Postle <br...@po...> - - * ChangeLog: - Update ChangeLog file - [2b6dba1d7651] + [b60ba225e103] 2010-06-28 Bruno Postle <br...@po...> - * CMakeLists.txt: - Set minor version to 2 for stable branch - [58c0c6a4f777] + * merge (I'm not sure why) + [a69d9c1929c5] 2010-06-28 harryvanderwolf <hv...@gm...> - * mac/Hugin.xcodeproj/project.pbxproj: - [OSX] Change version stamp to only hexadecimal part - [9fa03ec044ad] + * mac/copyExtraTools.sh: + [OSX] correct stupid enblend enfuse copy error + [640f8f2af986] 2010-06-28 Bruno Postle <br...@po...> - * src/translations/zh_TW.po: - Updated Traditional Chinese translation (Rick Langford) - [d017edd0161f] - - * src/translations/hu.po: - Updated Hungarian translation #3021348 (Höss Lajos) - [8ce1c813f7a1] - -2010-06-28 Terry Duell <td...@us...> - - * ChangeLog, authors.txt: - Update authors.txt - [38ed0587798b] - -2010-06-28 Bruno Postle <br...@po...> - - * CMakeLists.txt: - Set minor version to 2 for stable branch - [58c0c6a4f777] - -2010-06-28 harryvanderwolf <hv...@gm...> - - * mac/Hugin.xcodeproj/project.pbxproj: - [OSX] Change version stamp to only hexadecimal part - [9fa03ec044ad] - -2010-06-28 Bruno Postle <br...@po...> - - * src/translations/zh_TW.po: - Updated Traditional Chinese translation (Rick Langford) - [d017edd0161f] - - * src/translations/hu.po: - Updated Hungarian translation #3021348 (Höss Lajos) - [8ce1c813f7a1] - -2010-06-28 Terry Duell <td...@us...> - - * ChangeLog, authors.txt: - Update authors.txt - [38ed0587798b] - -2010-06-28 Bruno Postle <br...@po...> - - * CMakeLists.txt: - Set minor version to 2 for stable branch - [58c0c6a4f777] + * CMakeLists.txt: + Set minor version to 3 for unstable trunk + [f2ec72d1d228] 2010-06-28 harryvanderwolf <hv...@gm...> diff -r c4ded35d3f73 -r a1bdf93f59b0 doc/releases/hugin-2010.2.0_beta1.txt --- a/doc/releases/hugin-2010.2.0_beta1.txt Wed Aug 25 20:49:46 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2444 +0,0 @@ -Hugin is a Panorama stitcher and more. A powerful software package -for creating and processing panoramic images. - -A hugin-2010.2.0_beta1 (beta 1) tarball is available here: -https://sourceforge.net/projects/hugin/files/hugin-2010.2_beta/ - -This is a beta release for testing, i.e. The final release is likely to have -further bugfixes, help/manual and translation updates. - -More information about this release can be found in the full ChangeLog below -and the unfinished release notes: -http://hugin.sourceforge.net/releases/2010.2.0/ - -Summary of major changes since 2010.0.0: - -* New Layout tab in the Hugin Fast Preview window, shows an undirected graph view -of the control point connections within the current project. - -* New Mask tab in the Hugin main window, allows you to add and edit 'exclude' -and 'include' masks for each photo, this replaces previous techniques -involving editing alpha channels. - -* Mosaic mode. Hugin now supports optimisation of X, Y & Z positions of -cameras, this allows you to assemble a panorama of a planar object such as a -mural with photos taken from different positions. - -* Linked bracketing. Previously photos within a bracketed set needed to -connected by control points, it is now possible to tell Hugin that photos -share a position in a way analagous to the existing system for sharing lens -parameters. - -* Control point generator modes. Previously only a single control point -generator could be used at any one time. Hugin now has support for -combinations of panoramas and bracketed stacks, stacks that are already linked -with the linked bracketing feature, multi-row heuristics including support for -bracketed stacks, and for panoramas that are already roughly laid out in the -preview. - -* New equisolid, orthographic and stereographic lenses are supported, requires -libpano13-2.9.17_beta2 or later. - -* General Pannini projection is now fully suppoprted. - -* Migration to Mercurial. Hugin has switched from Subversion to Mercurial for -source control. This 2010.2.0 release is being stabilised in the '2010.2' -branch in mercurial. - -* New CLI tools. pano_trafo for querying control point transformations, -pto_merge to merge project files, and pano_modify to change output -parameters of project files. autooptimiser now has a photometric optimisation -mode. - -* libpano13-2.7.17 is required, note that this is still in beta itself. - -* Lots of bugfixes, translation updates and build system changes. - -See README, ChangeLog and INSTALL_cmake for more information. - -SHA1SUM: -5f1dc68bf928ec84c9f91a3fc28545ccfbd44ac4 hugin-2010.2.0_beta1.tar.gz - -This release is equivalent to hg branch 2010.2 -r 4138:69545ba63586 - -A detailed ChangeLog of every commit since 2010.0.0 follows: - -2010-07-15 James Legg <jl...@us...> - - * src/hugin1/hugin/ViewState.cpp: - Fix bug where fast preview interactions could disconnect image's - lenses introduced in 66f626bf15aa. - [32dc50543204] [tip] - -2010-07-15 tmodes <tmodes> - - * CMakeModules/win_bundle.cmake: - Added missing files to install target for windows - [a94c74257dc7] - -2010-07-13 tmodes <tmodes> - - * src/hugin_base/panodata/Panorama.cpp: - Fixes an issue with positive masks and fisheye images - [497b2b9fb40f] - -2010-07-07 Bruno Postle <br...@po...> - - * ChangeLog, doc/releases/hugin-2010.2.0_beta1.txt: - Unfinished announcement for a 2010.2.0_beta1 release - [7e19d5bea985] - -2010-06-29 Kornel Benko <Kor...@be...> - - * CMakeLists.txt, ChangeLog, admin/update_tarball.sh, doc/batch- - processing/README.batch, doc/releases/hugin-0.8.0.txt, - doc/releases/hugin-0.8.0_rc1.txt, doc/releases/hugin-0.8.0_rc2.txt, - doc/releases/hugin-0.8.0_rc3.txt, doc/releases/hugin-0.8.0_rc4.txt, - doc/releases/hugin-0.8.0_rc5.txt, doc/releases/hugin-2009.4.0.txt, - doc/releases/hugin-2009.4.0_rc3.txt, doc/releases/hugin- - 2010.0.0.txt, doc/releases/hugin-2010.0.0_rc1.txt, - src/hugin1/hugin/ViewState.cpp, src/hugin1/hugin/wxPanoCommand.cpp, - src/hugin_base/algorithms/basic/CalculateOverlap.cpp, src/hugin_base - /algorithms/panorama_makefile/PanoramaMakefileExport.cpp: - Enable creation of ChangeLog from build-dir - [f9fc675ab021] - -2010-07-07 Bruno Postle <br...@po...> - - * ChangeLog: - Update ChangeLog file - [2b6dba1d7651] - -2010-06-28 Bruno Postle <br...@po...> - - * CMakeLists.txt: - Set minor version to 2 for stable branch - [58c0c6a4f777] - -2010-06-28 harryvanderwolf <hv...@gm...> - - * mac/Hugin.xcodeproj/project.pbxproj: - [OSX] Change version stamp to only hexadecimal part - [9fa03ec044ad] - -2010-06-28 Bruno Postle <br...@po...> - - * src/translations/zh_TW.po: - Updated Traditional Chinese translation (Rick Langford) - [d017edd0161f] - - * src/translations/hu.po: - Updated Hungarian translation #3021348 (Höss Lajos) - [8ce1c813f7a1] - -2010-06-28 Terry Duell <td...@us...> - - * ChangeLog, authors.txt: - Update authors.txt - [38ed0587798b] - -2010-06-27 Terry Duell <td...@us...> - - * CMakeLists.txt: - change CMakeLists.txt to produce Hg log file when UPDATE_CHANGELOG=1 - switch is used - [a7c760281f3c] [tip] - -2010-06-25 harryvanderwolf <hv...@gm...> - - * mac/Hugin.xcodeproj/project.pbxproj, mac/complete-bundle.sh, - mac/copyExtraTools.sh, mac/copyTools.sh: - [OSX] Considerable change of design of the XCode project to - facilitate building of 32bit vs. 32/64 bit vs. 64bit and other - architecures from one project out of multiple folders. This wasn't - possible with the original project as it completely ruined the - internal library paths. Copies of binaries and libraries are now |
From: <hug...@li...> - 2010-08-30 16:21:31
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/f69d28f0ff2d changeset: 4270:f69d28f0ff2d user: tmodes date: Mon Aug 30 18:19:55 2010 +0200 description: Remove now obsolote program keypoints details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/238953b1f537 changeset: 4271:238953b1f537 user: tmodes date: Mon Aug 30 18:20:23 2010 +0200 description: Use hugins version numbering for panomatic details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/79fdb698be70 changeset: 4272:79fdb698be70 user: tmodes date: Mon Aug 30 18:20:51 2010 +0200 description: Correct check load success with -k parameter diffstat: src/libpanomatic/CMakeLists.txt | 1 - src/libpanomatic/keypoints/CMakeLists.txt | 8 - src/libpanomatic/keypoints/keypoints.cpp | 432 ---------------------------- src/libpanomatic/panomatic/PanoDetector.cpp | 20 +- src/libpanomatic/panomatic/main.cpp | 8 +- 5 files changed, 19 insertions(+), 450 deletions(-) diffs (truncated from 521 to 500 lines): diff -r 74941976f2e8 -r 79fdb698be70 src/libpanomatic/CMakeLists.txt --- a/src/libpanomatic/CMakeLists.txt Thu Aug 26 19:04:59 2010 +0200 +++ b/src/libpanomatic/CMakeLists.txt Mon Aug 30 18:20:51 2010 +0200 @@ -3,5 +3,4 @@ include_directories(.) add_subdirectory(localfeatures) -add_subdirectory(keypoints) add_subdirectory(panomatic) diff -r 74941976f2e8 -r 79fdb698be70 src/libpanomatic/keypoints/CMakeLists.txt --- a/src/libpanomatic/keypoints/CMakeLists.txt Thu Aug 26 19:04:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -include_directories( ${CMAKE_SOURCE_DIR} ) - -# the liblocalfeature library -add_executable(keypoints keypoints.cpp) - -target_link_libraries(keypoints localfeatures ${image_libs}) - -INSTALL(TARGETS keypoints DESTINATION ${BINDIR}) diff -r 74941976f2e8 -r 79fdb698be70 src/libpanomatic/keypoints/keypoints.cpp --- a/src/libpanomatic/keypoints/keypoints.cpp Thu Aug 26 19:04:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,432 +0,0 @@ -/* - * Copyright (C) 2007-2008 Anael Orlinski - * - * This file is part of Panomatic. - * - * Panomatic is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Panomatic is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Panomatic; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include <iostream> -#include <fstream> -#include <vector> -#include <string> -#include <boost/foreach.hpp> -#include <boost/shared_ptr.hpp> - -#include <tclap/CmdLine.h> - -#include <localfeatures/KeyPointDetector.h> -#ifdef SURF_ENABLED -#include <localfeatures/SurfKeyPointDescriptor.h> -#endif -#include <localfeatures/CircularKeyPointDescriptor.h> -#include <localfeatures/Sieve.h> -#include <localfeatures/KeyPointIO.h> - -#include <vigra/impex.hxx> -#include <vigra/stdimage.hxx> -#include <vigra/stdimagefunctions.hxx> -#include <vigra/rgbvalue.hxx> - -using namespace std; -using namespace TCLAP; -using namespace lfeat; - -const char* kVersion="0.9.5"; - -#define TRACE_IMG(A) cerr << A << std::endl -#define TRACE_INFO(A) cerr << A << std::endl - - -//typedef boost::shared_ptr<lfeat::KeyPoint> KeyPointPtr; -//typedef std::vector<KeyPointPtr> KeyPointVect_t; -//typedef std::vector<KeyPointPtr>::iterator KeyPointVectIt_t; - - -// define a Keypoint insertor -class KeyPointVectInsertor : public lfeat::KeyPointInsertor -{ - public: - KeyPointVectInsertor ( KeyPointVect_t& iVect ) : _v ( iVect ) {}; - inline virtual void operator() ( const lfeat::KeyPoint &k ) - { - _v.push_back ( KeyPointPtr ( new lfeat::KeyPoint ( k ) ) ); - } - - private: - KeyPointVect_t& _v; -}; - -// define a sieve extractor -class SieveExtractorKP : public lfeat::SieveExtractor<KeyPointPtr> -{ - public: - SieveExtractorKP ( KeyPointVect_t& iV ) : _v ( iV ) {}; - inline virtual void operator() ( const KeyPointPtr &k ) - { - _v.push_back ( k ); - } - private: - KeyPointVect_t& _v; -}; - -bool DetectKeypoints ( const std::string & imgfile, bool downscale, - double useGradientDescr, - double surfScoreThreshold, bool surfExtended, - bool onlyInterestPoints, int sieveWidth, - int sieveHeight, int sieveSize, KeypointWriter & writer ) -{ - TRACE_IMG ( "Analyze image..." ); - try - - { - vigra::ImageImportInfo aImageInfo ( imgfile.c_str() ); - - int aNewImgWidth = aImageInfo.width(); - int aNewImgHeight = aImageInfo.height(); - - int aOrigImgWidth = aNewImgWidth; - int aOrigImgHeight = aNewImgHeight; - - int scale = 1; - if ( downscale ) - { - aNewImgWidth >>= 1; - aNewImgHeight >>= 1; - scale = 2; - } - - vigra::DImage aImageDouble ( aNewImgWidth, aNewImgHeight ); - - if ( aImageInfo.isGrayscale() ) - { - if ( downscale ) - { - TRACE_IMG ( "Load greyscale..." ); - vigra::DImage aImageG ( aImageInfo.width(), aImageInfo.height() ); - importImage ( aImageInfo, destImage ( aImageG ) ); - vigra::resizeImageNoInterpolation ( - aImageG.upperLeft(), - aImageG.upperLeft() + vigra::Diff2D ( aNewImgWidth * 2, aNewImgHeight * 2 ), - vigra::DImage::Accessor(), - aImageDouble.upperLeft(), - aImageDouble.lowerRight(), - vigra::DImage::Accessor() ); - } - else - { - TRACE_IMG ( "Load greyscale..." ); - importImage ( aImageInfo, destImage ( aImageDouble ) ); - } - } - else - { - TRACE_IMG ( "Load RGB..." ); - //open the image in RGB - vigra::DRGBImage aImageRGB ( aImageInfo.width(), aImageInfo.height() ); - - if ( aImageInfo.numExtraBands() == 1 ) - - { - - TRACE_INFO ( "Image with alpha channels are not supported" ); - return false; - - } - - else if ( aImageInfo.numExtraBands() == 0 ) - - { - - vigra::importImage ( aImageInfo, destImage ( aImageRGB ) ); - } - else - { - TRACE_INFO ( "Image with multiple alpha channels are not supported" ); - return false; - } - - if ( downscale ) - { - TRACE_IMG ( "Resize to greyscale double..." ); - vigra::resizeImageNoInterpolation ( - aImageRGB.upperLeft(), - aImageRGB.upperLeft() + vigra::Diff2D ( aNewImgWidth * 2, aNewImgHeight * 2 ), - vigra::RGBToGrayAccessor<vigra::RGBValue<double> >(), - aImageDouble.upperLeft(), - aImageDouble.lowerRight(), - vigra::DImage::Accessor() ); - - } - else - { - // convert to greyscale - TRACE_IMG ( "Convert to greyscale double..." ); - vigra::copyImage ( aImageRGB.upperLeft(), - aImageRGB.lowerRight(), - vigra::RGBToGrayAccessor<vigra::RGBValue<double> >(), - aImageDouble.upperLeft(), - vigra::DImage::Accessor() ); - } - } - - - ImageInfo imginfo(imgfile, aOrigImgWidth, aOrigImgHeight); - - TRACE_IMG ( "Build integral image..." ); - // create integral image - lfeat::Image img; - img.init ( aImageDouble.begin(), aImageDouble.width(), aImageDouble.height() ); - - // setup the detector - lfeat::KeyPointDetector aKP; - aKP.setScoreThreshold ( surfScoreThreshold ); - - // detect the keypoints - KeyPointVect_t kp; - KeyPointVectInsertor aInsertor = KeyPointVectInsertor ( kp ); - aKP.detectKeypoints ( img, aInsertor ); - - TRACE_IMG ( "Found "<< kp.size() << " interest points." ); - - TRACE_IMG ( "Filtering keypoints..." ); - - lfeat::Sieve<lfeat::KeyPointPtr, lfeat::KeyPointPtrSort > aSieve ( sieveWidth, sieveHeight, sieveSize ); - // insert the points in the Sieve - double aXF = ( double ) sieveWidth / ( double ) aImageDouble.width(); - double aYF = ( double ) sieveHeight / ( double ) aImageDouble.height(); - BOOST_FOREACH ( KeyPointPtr& aK, kp ) - aSieve.insert ( aK, ( int ) ( aK->_x * aXF ), ( int ) ( aK->_y * aYF ) ); - - // pull remaining values from the sieve - kp.clear(); - - // make an extractor and pull the points - SieveExtractorKP aSieveExt ( kp ); - aSieve.extract ( aSieveExt ); - - TRACE_IMG ( "Kept " << kp.size() << " interest points." ); - - - lfeat::KeyPointDescriptor * aKPD; - aKPD = new lfeat::CircularKeyPointDescriptor( img ); - TRACE_IMG ( "Generating descriptors and writing output..." ); - - writer.writeHeader ( imginfo, kp.size(), aKPD->getDescriptorLength() ); - - int dims = aKPD->getDescriptorLength(); - if ( onlyInterestPoints ) - { - dims = 0; - } - - BOOST_FOREACH ( KeyPointPtr& aK, kp ) - { - if ( !onlyInterestPoints ) - { - aKPD->assignOrientation ( *aK ); - aKPD->makeDescriptor ( *aK ); - } - else - { - aKPD->assignOrientation ( *aK ); - } - writer.writeKeypoint ( aK->_x * scale, aK->_y * scale, aK->_scale * scale, aK->_ori, - dims, aK->_vec ); - } - writer.writeFooter(); - delete aKPD; - } - - catch ( std::exception & e ) - - { - - TRACE_INFO ( "An error happened while computing keypoints : caught exception: " << e.what() << endl ); - - return false; - - } - - return true; -} - - -class MyOutput : public StdOutput -{ - public: - - virtual void failure ( CmdLineInterface& c, ArgException& e ) - { - std::cerr << "Parse error: " << e.argId() << std::endl << " " << e.error() << std::endl << std::endl << endl; - usage ( c ); - } - - virtual void usage ( CmdLineInterface& c ) - { - int iML = 30; - cout << "Basic usage : " << endl; - cout << " "<< c.getProgramName() << " [options ] IMG" << endl; - - cout << endl <<"All options : " << endl; - list<Arg*> args = c.getArgList(); - for ( ArgListIterator it = args.begin(); it != args.end(); it++ ) - { - string aL = ( *it )->longID(); - string aD = ( *it )->getDescription(); - // replace tabs by n spaces. - size_t p = aD.find_first_of ( "\t" ); - while ( p != string::npos ) - { - string aD1 = aD.substr ( 0, p ); - string aD2 = aD.substr ( p+1, aD.size() - p + 1 ); - - aD = aD1 + "\n" + string ( iML, ' ' ) + aD2; - p = aD.find_first_of ( "\t" ); - } - - - if ( (int)aL.size() > iML ) - cout << aL << endl << string ( iML, ' ' ) << aD << endl; - else - cout << aL << string ( iML - aL.size(), ' ' ) << aD << endl; - } - } - - virtual void version ( CmdLineInterface& c ) - { - cout << "my version message: 0.1" << endl; - } -}; - - - -void parseOptions ( int argc, char** argv ) -{ - try - { - - CmdLine cmd ( "keypoints", ' ', kVersion ); - - MyOutput my; - cmd.setOutput ( &my ); - - SwitchArg aArgFullScale ( "","fullscale", "Uses full scale image to detect keypoints (default:false)\n", false ); - ValueArg<int> aArgSurfScoreThreshold ( "","surfscore", "Detection score threshold (default : 1000)\n", false, 1000, "int" ); - ValueArg<int> aArgSieve1Width ( "","sievewidth", "Interest point sieve: Number of buckets on width (default : 10)", false, 10, "int" ); - ValueArg<int> aArgSieve1Height ( "","sieveheight", "Interest point sieve : Number of buckets on height (default : 10)", false, 10, "int" ); - ValueArg<int> aArgSieve1Size ( "","sievesize", "Interest point sieve : Max points per bucket (default : 10)\n", false, 10, "int" ); - ValueArg<std::string> aArgOutputFormat ( "","format", "Output format (text, autopano-xml, descperf), default text\n", false, "text", "string" ); - ValueArg<std::string> aArgOutputFile ( "o","output", "Output file. If not specified, print to standard out\n", false, "", "string" ); - SwitchArg aArgInterestPoints ( "","interestpoints", "output only the interest points and the scale (default:false)\n", false ); - - cmd.add ( aArgSurfScoreThreshold ); - cmd.add ( aArgFullScale ); - cmd.add ( aArgSieve1Width ); - cmd.add ( aArgSieve1Height ); - cmd.add ( aArgSieve1Size ); - cmd.add ( aArgOutputFormat ); - cmd.add ( aArgOutputFile ); - cmd.add ( aArgInterestPoints ); - - /* - SwitchArg aArgTest("t","test", "Enables test mode\n", false); - cmd.add( aArgTest ); - */ - - UnlabeledMultiArg<string> aArgFiles ( "fileName", "Image files", true, "string" ); - cmd.add ( aArgFiles ); - - cmd.parse ( argc,argv ); - - // - // Set variables - // - vector<string> aFiles = aArgFiles.getValue(); - if ( aFiles.size() != 1 ) - { - exit ( 1 ); - } - - bool useGradDescriptor = true; - bool extendedSurf = false; - double surfScoreThreshold=1000; - if ( aArgSurfScoreThreshold.isSet() ) - surfScoreThreshold = ( aArgSurfScoreThreshold.getValue() ); - - bool downscale = true; - if ( aArgFullScale.isSet() ) - downscale = false; - - int sieveWidth = 10; - if ( aArgSieve1Width.isSet() ) sieveWidth = aArgSieve1Width.getValue(); - int sieveHeight = 10; - if ( aArgSieve1Height.isSet() ) sieveHeight = aArgSieve1Height.getValue(); - int sieveSize = 10; - if ( aArgSieve1Size.isSet() ) sieveSize = aArgSieve1Size.getValue(); - - bool onlyInterestPoints = false; - if ( aArgInterestPoints.isSet() ) - onlyInterestPoints = true; - - std::ostream * outstream; - if ( aArgOutputFile.isSet() ) { - outstream = new std::ofstream(aArgOutputFile.getValue().c_str()); - } else { - outstream = & std::cout; - } - - KeypointWriter * writer = 0; - std::string outputformat = "text"; - if ( aArgOutputFormat.isSet() ) - { - outputformat = aArgOutputFormat.getValue(); - } - if (outputformat == "text") { - writer = new SIFTFormatWriter(*outstream); - } else if (outputformat == "autopano-sift-xml") { - writer = new AutopanoSIFTWriter(*outstream); - } else if (outputformat == "descperf") { - writer = new DescPerfFormatWriter(*outstream); - } - else - { - std::cerr << "Unknown output format, valid values are text, autopano-sift-xml, descperf" << std::endl; - exit(1); - } - - DetectKeypoints ( aFiles[0], downscale, useGradDescriptor, surfScoreThreshold, extendedSurf, onlyInterestPoints, sieveWidth, sieveHeight, sieveSize, *writer ); - - if ( aArgOutputFile.isSet() ) { - delete outstream; - } - - } - catch ( ArgException& e ) - { - cout << "ERROR: " << e.error() << " " << e.argId() << endl; - } -} - -int main ( int argc, char **argv ) -{ - std::cerr << "keypoints " << kVersion << " by Anael Orlinski - na...@na..." << endl << endl; - - // create a panodetector object - parseOptions ( argc, argv ); - - return 0; - -} diff -r 74941976f2e8 -r 79fdb698be70 src/libpanomatic/panomatic/PanoDetector.cpp --- a/src/libpanomatic/panomatic/PanoDetector.cpp Thu Aug 26 19:04:59 2010 +0200 +++ b/src/libpanomatic/panomatic/PanoDetector.cpp Mon Aug 30 18:20:51 2010 +0200 @@ -370,12 +370,24 @@ bool PanoDetector::checkLoadSuccess() { - for (unsigned int aFileN = 0; aFileN < _filesData.size(); ++aFileN) + if(_keyPointsIdx.size()!=0) { - ImgData& aID = _filesData[aFileN]; - if (aID._loadFail) - return false; + for (unsigned int i = 0; i < _keyPointsIdx.size(); ++i) + { + ImgData& aID = _filesData[_keyPointsIdx[i]]; + if (aID._loadFail) + return false; + } } + else + { + for (unsigned int aFileN = 0; aFileN < _filesData.size(); ++aFileN) + { + ImgData& aID = _filesData[aFileN]; + if (aID._loadFail) + return false; + } + }; return true; } diff -r 74941976f2e8 -r 79fdb698be70 src/libpanomatic/panomatic/main.cpp --- a/src/libpanomatic/panomatic/main.cpp Thu Aug 26 19:04:59 2010 +0200 +++ b/src/libpanomatic/panomatic/main.cpp Mon Aug 30 18:20:51 2010 +0200 @@ -31,9 +31,6 @@ #include "PanoDetector.h" -const char* kVersion="0.9.4"; - - class MyOutput : public StdOutput |
From: <hug...@li...> - 2010-09-02 18:00:03
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/9069289b1af7 changeset: 4289:9069289b1af7 user: cri <cri...@gm...> date: Thu Sep 02 15:41:39 2010 +0200 description: updated Italian translation (transplanted from ed650c5174727dc9f7282f9893143081099e22df) details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/4275b94d63a1 changeset: 4290:4275b94d63a1 user: tmodes date: Thu Sep 02 19:40:46 2010 +0200 description: Updated german translation details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/62e7b524fc3a changeset: 4291:62e7b524fc3a user: tmodes date: Thu Sep 02 19:40:46 2010 +0200 description: Updated german translation (transplanted from 4275b94d63a1364883674e39cd45a00dfdcc37f7) diffstat: src/translations/de.po | 20 +- src/translations/it.po | 4237 ++++------------------------------------------- 2 files changed, 420 insertions(+), 3837 deletions(-) diffs (truncated from 5274 to 500 lines): diff -r 34b2c06b04e9 -r 62e7b524fc3a src/translations/de.po --- a/src/translations/de.po Wed Sep 01 20:50:42 2010 +0100 +++ b/src/translations/de.po Thu Sep 02 19:40:46 2010 +0200 @@ -10,7 +10,7 @@ "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=77506&atid=550441\n" "POT-Creation-Date: 2010-06-03 18:09+0200\n" -"PO-Revision-Date: 2010-06-03 18:18+0100\n" +"PO-Revision-Date: 2010-09-02 19:40+0100\n" "Last-Translator: T. Modes\n" "Language-Team: deutsch <de...@li...>\n" "MIME-Version: 1.0\n" @@ -883,7 +883,7 @@ #: hugin1/hugin/GLPreviewFrame.cpp:363 msgid "mosaic" -msgstr "" +msgstr "Mosaik" #: hugin1/hugin/GLPreviewFrame.cpp:401 #: hugin1/hugin/PreviewFrame.cpp:297 @@ -1005,12 +1005,16 @@ "Error initialising GLEW\n" "Fast preview window can not be opened." msgstr "" +"Fehler bei Initialisierung von GLEW.\n" +"Schnelles Vorschaufenster kann nicht geöffnet werden." #: hugin1/hugin/GLViewer.cpp:138 msgid "" "Sorry, the fast preview window requires a system which supports OpenGL version 1.1 with the GL_ARB_multitexture extension.\n" "The fast preview cannot be opened." msgstr "" +"Die schnelle Panoramavorschau erfordert ein System mit mindestens OpenGL 1.1 und der GL_ARB_multitexture Erweiterung.\n" +"Schnelles Vorschaufenster kann nicht geöffnet werden." #: hugin1/hugin/HDRMergeOptionDialog.cpp:147 msgid "Invalid input\n" @@ -1396,6 +1400,11 @@ "\n" "(Error code: %s)" msgstr "" +"Kann Projekt-Makefile \"%s\" nicht speichern.\n" +"Aber die Projekt-Datei wurde erfolgreich gespeichert.\n" +"Möglicherweise ist die Datei oder der Ordner schreibgeschützt.\n" +"\n" +"(Error-Code %s)" #: hugin1/hugin/MainFrame.cpp:594 #, c-format @@ -1405,6 +1414,10 @@ "\n" "(Error code: %s)" msgstr "" +"Kann Datei \"%s\" nicht speichern.\n" +"Möglicherweise ist die Datei oder der Ordner schreibgeschützt.\n" +"\n" +"(Error-Code %s)" #: hugin1/hugin/MainFrame.cpp:607 msgid "Save project file" @@ -5706,9 +5719,8 @@ #: translations/xrc.cpp:742 #: xrc.cpp:742 -#, fuzzy msgid "Drag mode:" -msgstr "Ziehen zum Bewegen" +msgstr "Zieh-Mode:" #: translations/xrc.cpp:743 #: xrc.cpp:743 diff -r 34b2c06b04e9 -r 62e7b524fc3a src/translations/it.po --- a/src/translations/it.po Wed Sep 01 20:50:42 2010 +0100 +++ b/src/translations/it.po Thu Sep 02 19:40:46 2010 +0200 @@ -1,6 +1,6 @@ # Italian translations for Hugin package. # Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 The Free Software Foundation, Inc. -# This file is distributed under the same license as the Hugin package. +# This file is distributed under the same license as the Hhugin package. # Luca Vascon <cri...@ya...>, 2005. # Cristian Marchi <cri...@gm...>, 2009, 2010 # Milo Casagrande <mi...@ub...>, 2007-2009 @@ -33,8 +33,8 @@ msgstr "" "Project-Id-Version: hugin 0.8\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=77506&atid=550441\n" -"POT-Creation-Date: 2010-03-25 21:05+0100\n" -"PO-Revision-Date: 2010-04-30 16:55+0100\n" +"POT-Creation-Date: 2010-09-01 09:06+0200\n" +"PO-Revision-Date: 2010-09-01 09:10+0100\n" "Last-Translator: Cristian Marchi <cri...@gm...>\n" "Language-Team: Italian <tp...@li...>\n" "MIME-Version: 1.0\n" @@ -53,19 +53,23 @@ #: hugin1/base_wx/huginConfig.cpp:69 #: hugin1/base_wx/huginConfig.cpp:82 #: hugin1/base_wx/RunStitchPanel.cpp:251 -#: hugin1/hugin/AssistantPanel.cpp:374 -#: hugin1/hugin/AssistantPanel.cpp:543 -#: hugin1/hugin/AssistantPanel.cpp:572 -#: hugin1/hugin/AssistantPanel.cpp:716 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:163 -#: hugin1/hugin/CPEditorPanel.cpp:2142 -#: hugin1/hugin/MainFrame.cpp:833 -#: hugin1/hugin/OptimizePhotometricPanel.cpp:503 -#: hugin1/hugin/OptimizePhotometricPanel.cpp:523 +#: hugin1/hugin/AssistantPanel.cpp:376 +#: hugin1/hugin/AssistantPanel.cpp:545 +#: hugin1/hugin/AssistantPanel.cpp:574 +#: hugin1/hugin/AssistantPanel.cpp:720 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:164 +#: hugin1/hugin/CPEditorPanel.cpp:2158 +#: hugin1/hugin/GLViewer.cpp:128 +#: hugin1/hugin/GLViewer.cpp:138 +#: hugin1/hugin/MainFrame.cpp:608 +#: hugin1/hugin/MainFrame.cpp:858 +#: hugin1/hugin/MainFrame.cpp:1368 +#: hugin1/hugin/OptimizePhotometricPanel.cpp:505 +#: hugin1/hugin/OptimizePhotometricPanel.cpp:525 #: hugin1/hugin/PanoPanel.cpp:970 #: hugin1/ptbatcher/BatchFrame.cpp:419 #: hugin1/ptbatcher/ProjectListBox.cpp:171 -#: hugin1/stitch_project/hugin_stitch_project.cpp:380 +#: hugin1/stitch_project/hugin_stitch_project.cpp:377 msgid "Error" msgstr "Errore" @@ -97,9 +101,10 @@ #: hugin1/base_wx/huginConfig.cpp:194 #: hugin1/base_wx/huginConfig.cpp:199 #: hugin1/hugin/CPDetectorConfig.cpp:307 -#: hugin1/hugin/GLPreviewFrame.cpp:853 -#: hugin1/hugin/GLPreviewFrame.cpp:861 -#: hugin1/hugin/GLPreviewFrame.cpp:869 +#: hugin1/hugin/GLPreviewFrame.cpp:859 +#: hugin1/hugin/GLPreviewFrame.cpp:867 +#: hugin1/hugin/GLPreviewFrame.cpp:875 +#: hugin1/hugin/MainFrame.cpp:604 #: hugin1/hugin/PreferencesDialog.cpp:811 msgid "Warning" msgstr "Avviso" @@ -152,14 +157,6 @@ #: hugin1/base_wx/MyExternalCmdExecDialog.cpp:602 #: hugin1/ptbatcher/RunStitchFrame.cpp:43 #: hugin1/stitch_project/hugin_stitch_project.cpp:123 -#: translations/xrc.cpp:134 -#: translations/xrc.cpp:417 -#: translations/xrc.cpp:689 -#: translations/xrc.cpp:777 -#: xrc.cpp:134 -#: xrc.cpp:417 -#: xrc.cpp:689 -#: xrc.cpp:777 msgid "Cancel" msgstr "Annulla" @@ -182,8 +179,6 @@ #: hugin1/base_wx/PTWXDlg.cpp:48 #: hugin1/base_wx/PTWXDlg.cpp:66 #: hugin1/base_wx/PTWXDlg.cpp:118 -#: translations/xrc.cpp:691 -#: xrc.cpp:691 msgid "Panorama Tools" msgstr "Panorama Tools" @@ -243,59 +238,59 @@ msgid "Error during stitching" msgstr "Errore durante l'assemblaggio" -#: hugin1/hugin/AssistantPanel.cpp:236 +#: hugin1/hugin/AssistantPanel.cpp:238 msgid "Please load images by pressing on the Load images button." msgstr "Caricare le immagini premendo il pulsante «Carica immagini»." -#: hugin1/hugin/AssistantPanel.cpp:266 +#: hugin1/hugin/AssistantPanel.cpp:268 #, c-format msgid "%d images loaded." msgstr "%d immagini caricate." -#: hugin1/hugin/AssistantPanel.cpp:300 +#: hugin1/hugin/AssistantPanel.cpp:302 #, c-format msgid "Images are connected by %d control points.\n" msgstr "Le immagini sono collegate da %d punti di controllo.\n" -#: hugin1/hugin/AssistantPanel.cpp:309 +#: hugin1/hugin/AssistantPanel.cpp:311 #, c-format msgid "%d unconnected image groups found: " msgstr "Trovati %d gruppi non connessi: " -#: hugin1/hugin/AssistantPanel.cpp:310 +#: hugin1/hugin/AssistantPanel.cpp:312 msgid "Please use the Control Points tab to connect all images with control points.\n" msgstr "Usare la scheda «Punti di controllo» per collegare tutte le immagini attraverso i punti di controllo.\n" -#: hugin1/hugin/AssistantPanel.cpp:313 +#: hugin1/hugin/AssistantPanel.cpp:315 msgid "Images or control points have changed, new alignment is needed." msgstr "Le immagini o i punti di controllo sono cambiati; è necessario un nuovo allineamento." -#: hugin1/hugin/AssistantPanel.cpp:324 +#: hugin1/hugin/AssistantPanel.cpp:326 msgid "Very good fit." msgstr "Adattamento ottimo." -#: hugin1/hugin/AssistantPanel.cpp:326 +#: hugin1/hugin/AssistantPanel.cpp:328 msgid "Good fit." msgstr "Adattamento buono." -#: hugin1/hugin/AssistantPanel.cpp:328 +#: hugin1/hugin/AssistantPanel.cpp:330 msgid "Bad fit, some control points might be bad, or there are parallax and movement errors" msgstr "Adattamento sufficiente, alcuni punti di controllo potrebbero essere errati o sono presenti errori di parallasse e di movimento" -#: hugin1/hugin/AssistantPanel.cpp:330 +#: hugin1/hugin/AssistantPanel.cpp:332 msgid "Very bad fit. Check for bad control points, lens parameters, or images with parallax or movement. The optimizer might have failed. Manual intervention required." msgstr "Adattamento insufficiente. Controllare i punti di controllo errati, i parametri della lente o immagini con parallasse o movimento. L'ottimizzatore potrebbe aver fallito, è necessario un intervento manuale." -#: hugin1/hugin/AssistantPanel.cpp:332 +#: hugin1/hugin/AssistantPanel.cpp:334 #, c-format msgid "Mean error after optimization: %.1f pixel, max: %.1f\n" msgstr "Errore medio dopo l'ottimizzazione: %.1f pixel, massimo: %.1f\n" -#: hugin1/hugin/AssistantPanel.cpp:340 +#: hugin1/hugin/AssistantPanel.cpp:342 msgid "Note: automatic alignment uses default settings from the preferences. If you customize settings for this project in the advanced tabs and want to use these customized settings, run the CP detection from the Images Tab, the geometrical optimization from the the Optimizer tab and the photometric optimization from the Exposure tab." msgstr "Nota: l'allineamento automatico utilizza le impostazioni predefinite dalle preferenze. Se si personalizzano le impostazioni per questo progetto nelle schede avanzate e si desidera utilizzarle, si deve eseguire la ricerca dei punti di controllo dalla scheda «Immagini», l'ottimizzazione geometrica dalla scheda «Ottimizzatore» e l'ottimizzazione fotometrica dalla scheda «Esposizione»." -#: hugin1/hugin/AssistantPanel.cpp:374 +#: hugin1/hugin/AssistantPanel.cpp:376 msgid "" "At least two images are required.\n" "Please add more images." @@ -303,60 +298,60 @@ "Sono richieste almeno due immagini.\n" "Caricare altre immagini." -#: hugin1/hugin/AssistantPanel.cpp:394 +#: hugin1/hugin/AssistantPanel.cpp:396 msgid "Aligning images" msgstr "Allineamento delle immagini in corso..." -#: hugin1/hugin/AssistantPanel.cpp:394 +#: hugin1/hugin/AssistantPanel.cpp:396 msgid "Finding corresponding points" msgstr "Ricerca dei punti corrispondenti in corso..." -#: hugin1/hugin/AssistantPanel.cpp:410 -#: hugin1/hugin/AssistantPanel.cpp:425 -#: hugin1/hugin/CPEditorPanel.cpp:2146 -#: hugin1/hugin/CPEditorPanel.cpp:2195 -#: hugin1/hugin/CPEditorPanel.cpp:2205 -#: hugin1/hugin/CPEditorPanel.cpp:2230 -#: hugin1/hugin/ImagesPanel.cpp:1001 -#: hugin1/hugin/ImagesPanel.cpp:1019 +#: hugin1/hugin/AssistantPanel.cpp:412 +#: hugin1/hugin/AssistantPanel.cpp:427 +#: hugin1/hugin/CPEditorPanel.cpp:2162 +#: hugin1/hugin/CPEditorPanel.cpp:2211 +#: hugin1/hugin/CPEditorPanel.cpp:2221 +#: hugin1/hugin/CPEditorPanel.cpp:2246 +#: hugin1/hugin/ImagesPanel.cpp:1005 +#: hugin1/hugin/ImagesPanel.cpp:1023 msgid "Running Celeste" msgstr "Celeste in esecuzione..." -#: hugin1/hugin/AssistantPanel.cpp:480 -#: hugin1/hugin/CPEditorPanel.cpp:2148 -#: hugin1/hugin/ImagesPanel.cpp:1078 +#: hugin1/hugin/AssistantPanel.cpp:482 +#: hugin1/hugin/CPEditorPanel.cpp:2164 +#: hugin1/hugin/ImagesPanel.cpp:1082 msgid "searching for cloud-like control points..." msgstr "Ricerca dei punti di controllo simil nuvole in corso..." -#: hugin1/hugin/AssistantPanel.cpp:508 +#: hugin1/hugin/AssistantPanel.cpp:510 msgid "Celeste model file not found, Hugin needs to be properly installed." msgstr "File modello di Celeste non trovato, Hugin deve essere installato correttamente." -#: hugin1/hugin/AssistantPanel.cpp:508 -#: hugin1/hugin/CPEditorPanel.cpp:2186 +#: hugin1/hugin/AssistantPanel.cpp:510 +#: hugin1/hugin/CPEditorPanel.cpp:2202 #: hugin1/hugin/huginApp.cpp:150 #: hugin1/hugin/huginApp.cpp:162 #: hugin1/hugin/huginApp.cpp:175 -#: hugin1/hugin/ImagesPanel.cpp:1013 +#: hugin1/hugin/ImagesPanel.cpp:1017 #: hugin1/ptbatcher/PTBatcherGUI.cpp:71 #: hugin1/ptbatcher/PTBatcherGUI.cpp:77 -#: hugin1/ptbatcher/PTBatcherGUI.cpp:101 +#: hugin1/ptbatcher/PTBatcherGUI.cpp:98 #: hugin1/stitch_project/hugin_stitch_project.cpp:277 msgid "Fatal Error" msgstr "Errore fatale" -#: hugin1/hugin/AssistantPanel.cpp:516 +#: hugin1/hugin/AssistantPanel.cpp:518 msgid "Checking for outlying control points" msgstr "Verifica della presenza di punti di controllo anomali in corso...." -#: hugin1/hugin/AssistantPanel.cpp:542 -#: hugin1/hugin/AssistantPanel.cpp:571 +#: hugin1/hugin/AssistantPanel.cpp:544 +#: hugin1/hugin/AssistantPanel.cpp:573 #, c-format msgid "Warning %d unconnected image groups found:" msgstr "Attenzione, trovati %d gruppi non collegati:" -#: hugin1/hugin/AssistantPanel.cpp:543 -#: hugin1/hugin/AssistantPanel.cpp:572 +#: hugin1/hugin/AssistantPanel.cpp:545 +#: hugin1/hugin/AssistantPanel.cpp:574 msgid "" "Please create control points between unconnected images using the Control Points tab.\n" "\n" @@ -366,30 +361,30 @@ "\n" "Fatto questo, premere nuovamente il pulsante «Allinea»" -#: hugin1/hugin/AssistantPanel.cpp:556 +#: hugin1/hugin/AssistantPanel.cpp:558 msgid "Determining placement of the images" msgstr "Determinazione del posizionamento delle immagini in corso..." -#: hugin1/hugin/AssistantPanel.cpp:607 +#: hugin1/hugin/AssistantPanel.cpp:609 msgid "Leveling the panorama" msgstr "Livellamento del panorama in corso..." -#: hugin1/hugin/AssistantPanel.cpp:642 -#: hugin1/hugin/OptimizePhotometricPanel.cpp:492 +#: hugin1/hugin/AssistantPanel.cpp:644 +#: hugin1/hugin/OptimizePhotometricPanel.cpp:494 msgid "Loading images" msgstr "Caricamento delle immagini in corso..." -#: hugin1/hugin/AssistantPanel.cpp:715 -#: hugin1/hugin/OptimizePhotometricPanel.cpp:503 +#: hugin1/hugin/AssistantPanel.cpp:719 +#: hugin1/hugin/OptimizePhotometricPanel.cpp:505 msgid "Error: could not load all images" msgstr "Errore: impossibile caricare tutte le immagini" # (ndt) titolo -#: hugin1/hugin/AssistantPanel.cpp:736 +#: hugin1/hugin/AssistantPanel.cpp:740 msgid "Vignetting and exposure correction" msgstr "Correzione della vignettatura e dell'esposizione" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:162 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:163 #, c-format msgid "" "Could not find \"%s\" in path.\n" @@ -398,20 +393,20 @@ "Impossibile trovare \"%s\" nel percorso fornito.\n" "Potrebbe non essere stato installato correttamente o potrebbe essere stato fornito un percorso errato nelle impostazioni." -#: hugin1/hugin/AutoCtrlPointCreator.cpp:320 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:321 #, c-format msgid "Please use %namefile, %i or %s to specify the input files for control point detector" msgstr "Usare %namefile, %i o %s per specificare i file di input per il programma di ricerca dei punti di controllo" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:321 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:466 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:472 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:322 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:467 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:473 msgid "Error in control point detector command" msgstr "Errore nel comando per il programma di ricerca dei punti di controllo" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:369 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:550 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:656 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:370 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:551 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:657 msgid "" "Command line for control point detector too long.\n" "This is a windows limitation\n" @@ -423,14 +418,14 @@ "Usare meno immagini o posizionare le immagini in una cartella\n" "con un percorso più corto" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:370 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:551 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:657 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:371 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:552 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:658 msgid "Too many images selected" msgstr "Troppe immagini selezionate" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:383 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:668 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:384 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:669 #, c-format msgid "" "Too many arguments (images). Try using the %%s parameter in preferences.\n" @@ -441,38 +436,38 @@ "\n" " Impossibile eseguire il comando: %s" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:383 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:394 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:399 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:506 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:514 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:567 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:579 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:587 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:668 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:679 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:684 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:384 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:395 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:400 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:507 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:515 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:568 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:580 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:588 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:669 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:680 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:685 msgid "wxExecute Error" msgstr "Errore di wxExecute" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:389 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:572 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:674 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:390 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:573 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:675 msgid "finding control points" msgstr "Ricerca dei punti di controllo in corso..." -#: hugin1/hugin/AutoCtrlPointCreator.cpp:394 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:506 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:579 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:679 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:395 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:507 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:580 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:680 #, c-format msgid "Could not execute command: %s" msgstr "Impossibile eseguire il comando: %s" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:398 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:513 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:586 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:683 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:399 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:514 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:587 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:684 #, c-format msgid "" "Command: %s\n" @@ -481,9 +476,9 @@ "Comando: %s\n" "non riuscito con codice di errore: %d" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:404 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:593 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:691 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:405 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:594 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:692 #, c-format msgid "" "Could not open %s for reading\n" @@ -499,25 +494,25 @@ "\n" "Comando eseguito: %s" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:405 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:594 -#: hugin1/hugin/AutoCtrlPointCreator.cpp:692 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:406 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:595 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:693 msgid "Control point detector failure" msgstr "Errore del programma di ricerca dei punti di controllo" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:465 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:466 msgid "Please use %i to specify the input files and %k to specify the keypoint file for generate keys step" |
From: <hug...@li...> - 2010-09-05 09:39:52
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/ec959309d843 changeset: 4304:ec959309d843 user: tmodes date: Sun Sep 05 11:37:46 2010 +0200 description: Allow switching on/off of grid over preview window details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/aacffe1b3ef2 changeset: 4305:aacffe1b3ef2 user: tmodes date: Sun Sep 05 11:38:12 2010 +0200 description: Fixes some compiler warnings details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/baa490d5be90 changeset: 4306:baa490d5be90 user: tmodes date: Sun Sep 05 11:38:25 2010 +0200 description: Better quality of grid lines diffstat: src/hugin1/hugin/GLPreviewFrame.cpp | 34 +++++++++++++++++++++++---- src/hugin1/hugin/GLPreviewFrame.h | 3 ++ src/hugin1/hugin/GLViewer.cpp | 1 - src/hugin1/hugin/OverviewOutlinesTool.cpp | 14 +++-------- src/hugin1/hugin/PreviewControlPointTool.cpp | 2 +- src/hugin1/hugin/ProjectionGridTool.cpp | 2 + src/hugin1/hugin/ViewState.cpp | 4 +- src/hugin1/hugin/ViewState.h | 2 +- src/hugin1/hugin/xrc/preview_frame.xrc | 20 ++++++++++----- 9 files changed, 55 insertions(+), 27 deletions(-) diffs (298 lines): diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/GLPreviewFrame.cpp --- a/src/hugin1/hugin/GLPreviewFrame.cpp Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/GLPreviewFrame.cpp Sun Sep 05 11:38:25 2010 +0200 @@ -137,6 +137,7 @@ EVT_CHOICE(XRCID("projection_choice"), GLPreviewFrame::OnProjectionChoice) EVT_CHOICE(XRCID("overview_mode_choice"), GLPreviewFrame::OnOverviewModeChoice) EVT_TOGGLEBUTTON(XRCID("overview_toggle"), GLPreviewFrame::OnOverviewToggle) + EVT_CHECKBOX(XRCID("preview_show_grid"), GLPreviewFrame::OnSwitchPreviewGrid) #ifndef __WXMAC__ // wxMac does not process these EVT_SCROLL_CHANGED(GLPreviewFrame::OnChangeFOV) @@ -294,6 +295,8 @@ SetStatusWidths(3, widths); SetStatusText(wxT(""),1); SetStatusText(wxT(""),2); + wxConfigBase * config = wxConfigBase::Get(); + wxPanel *tool_panel = wxXmlResource::Get()->LoadPanel(this,wxT("mode_panel")); m_tool_notebook = XRCCTRL(*this,"mode_toolbar_notebook",wxNotebook); m_ToolBar_Identify = XRCCTRL(*this,"preview_mode_toolbar",wxToolBar); @@ -313,7 +316,8 @@ wxPanel *overview_toggle_panel = wxXmlResource::Get()->LoadPanel(toggle_panel,wxT("overview_toggle_panel")); toggle_panel_sizer->Add(overview_toggle_panel, 0, wxALL | wxEXPAND | wxALIGN_CENTER_VERTICAL, 0); - bool overview_hidden = wxConfig::Get()->Read(wxT("/GLPreviewFrame/overview_hidden"), 0l); + bool overview_hidden; + config->Read(wxT("/GLPreviewFrame/overview_hidden"), &overview_hidden, false); m_OverviewToggle = XRCCTRL(*this, "overview_toggle", wxToggleButton); if (overview_hidden) { m_OverviewToggle->SetValue(false); @@ -446,9 +450,14 @@ m_OverviewModeChoice->SetSelection(0); overview_command_panel->SetSize(0,0,200,20,wxSIZE_AUTO_WIDTH); - overview_sizer->Add(overview_command_panel, 0, wxSHAPED); + overview_sizer->Add(overview_command_panel, 0, wxEXPAND); overview_sizer->Add(m_GLOverview, 1, wxEXPAND); + m_previewGrid = XRCCTRL(*this, "preview_show_grid", wxCheckBox); + bool showGrid; + config->Read(wxT("/GLPreviewFrame/showPreviewGrid"),&showGrid,true); + m_previewGrid->SetValue(showGrid); + preview_panel->SetSizer(flexSizer); overview_panel->SetSizer(overview_sizer); @@ -581,8 +590,6 @@ // do not show projection param sizer m_projection_panel->GetSizer()->Show(m_projParamSizer, false, true); - wxConfigBase * config = wxConfigBase::Get(); - // the initial size as calculated by the sizers this->SetSizer( m_topsizer ); m_topsizer->SetSizeHints( this ); @@ -648,6 +655,7 @@ config->Write(wxT("/GLPreviewFrame/blendMode"), m_BlendModeChoice->GetSelection()); config->Write(wxT("/GLPreviewFrame/OpenGLLayout"), m_mgr->SavePerspective()); config->Write(wxT("/GLPreviewFrame/overview_hidden"), !(m_OverviewToggle->GetValue())); + config->Write(wxT("/GLPreviewFrame/showPreviewGrid"), m_previewGrid->GetValue()); // delete all of the tools. When the preview is never used we never get an // OpenGL context and therefore don't create the tools. @@ -1039,6 +1047,19 @@ } } +void GLPreviewFrame::OnSwitchPreviewGrid(wxCommandEvent & e) +{ + if(m_previewGrid->GetValue()) + { + preview_helper->ActivateTool(preview_projection_grid); + } + else + { + preview_helper->DeactivateTool(preview_projection_grid); + } + m_GLPreview->Refresh(); +} + void GLPreviewFrame::OnClose(wxCloseEvent& event) { DEBUG_TRACE("OnClose") @@ -1521,7 +1542,10 @@ m_preview_layoutLinesTool = new PreviewLayoutLinesTool(preview_helper); preview_projection_grid = new PreviewProjectionGridTool(preview_helper); - preview_helper->ActivateTool(preview_projection_grid); + if(m_previewGrid->GetValue()) + { + preview_helper->ActivateTool(preview_projection_grid); + }; // // activate tools that are always active. diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/GLPreviewFrame.h --- a/src/hugin1/hugin/GLPreviewFrame.h Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/GLPreviewFrame.h Sun Sep 05 11:38:25 2010 +0200 @@ -218,6 +218,8 @@ void OnProjParameterChanged(wxCommandEvent & e); /** event handler for reset projection parameters */ void OnProjParameterReset(wxCommandEvent & e); + /** event handler for switch on/off grid on preview */ + void OnSwitchPreviewGrid(wxCommandEvent & e); void OnDefaultExposure( wxCommandEvent & e ); void OnDecreaseExposure( wxSpinEvent & e ); @@ -280,6 +282,7 @@ wxTextCtrl * m_exposureTextCtrl; wxBitmapButton * m_defaultExposureBut; wxSpinButton * m_exposureSpinBut; + wxCheckBox * m_previewGrid; wxString m_choices[3]; int m_oldProjFormat; diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/GLViewer.cpp --- a/src/hugin1/hugin/GLViewer.cpp Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/GLViewer.cpp Sun Sep 05 11:38:25 2010 +0200 @@ -310,7 +310,6 @@ } DEBUG_DEBUG("RESIZED_OUT"); - GLPreview * test; if (frame->CanResize()) { DEBUG_DEBUG("RESIZED_IN"); diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/OverviewOutlinesTool.cpp --- a/src/hugin1/hugin/OverviewOutlinesTool.cpp Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/OverviewOutlinesTool.cpp Sun Sep 05 11:38:25 2010 +0200 @@ -276,8 +276,6 @@ float steps = 40; - double x,y,xs,ys,xd,yd; - double wstep = (float)(right - left) / steps; double hstep = (float)(bottom - top) / steps; @@ -374,7 +372,6 @@ glBegin(GL_POLYGON); #endif for (int s = 0 ; s < 4 ; s++) { - double x,y,z; double tx,ty; tx = tr.val[s][0]; ty = tr.val[s][1]; @@ -440,8 +437,6 @@ Rect tr = rect.transformImgCoord(&transform); - double xcs,ycs,xcd,ycd; - double edge1 = (tr.val[0][0]-tr.val[1][0])*(tr.val[0][0]-tr.val[1][0]) + (tr.val[0][1]-tr.val[1][1])*(tr.val[0][1]-tr.val[1][1]); double edge2 = (tr.val[1][0]-tr.val[2][0])*(tr.val[1][0]-tr.val[2][0]) + (tr.val[1][1]-tr.val[2][1])*(tr.val[1][1]-tr.val[2][1]); double edge3 = (tr.val[2][0]-tr.val[3][0])*(tr.val[2][0]-tr.val[3][0]) + (tr.val[2][1]-tr.val[3][1])*(tr.val[2][1]-tr.val[3][1]); @@ -515,10 +510,10 @@ if (outline) { // glBegin(GL_LINES); bool edges[4]; - edges[0] = edge.left; - edges[1] = edge.bottom; - edges[2] = edge.right; - edges[3] = edge.top; + edges[0] = edge.left!=0; + edges[1] = edge.bottom!=0; + edges[2] = edge.right!=0; + edges[3] = edge.top!=0; for (int i = 0 ; i < 4 ; i++) { if (edges[i]) { // std::cout << "outlines line!!" << i << "\n"; @@ -565,7 +560,6 @@ glBegin(GL_POLYGON); #endif for (int s = 0 ; s < 4 ; s++) { - double x,y,z; double tx,ty; tx = tr.val[s][0]; ty = tr.val[s][1]; diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/PreviewControlPointTool.cpp --- a/src/hugin1/hugin/PreviewControlPointTool.cpp Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/PreviewControlPointTool.cpp Sun Sep 05 11:38:25 2010 +0200 @@ -59,7 +59,7 @@ // now draw each control point in turn: helper->GetViewStatePtr()->GetTextureManager()->DisableTexture(); glColor3f(1.0, 0.5, 0.0); - int cp_count = control_points.size(); + size_t cp_count = control_points.size(); for (size_t cp_index = 0; cp_index < cp_count; cp_index++) { const HuginBase::ControlPoint &cp = control_points[cp_index]; diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/ProjectionGridTool.cpp --- a/src/hugin1/hugin/ProjectionGridTool.cpp Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/ProjectionGridTool.cpp Sun Sep 05 11:38:25 2010 +0200 @@ -452,6 +452,8 @@ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, anisotropy); } + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); if (error) { diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/ViewState.cpp --- a/src/hugin1/hugin/ViewState.cpp Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/ViewState.cpp Sun Sep 05 11:38:25 2010 +0200 @@ -387,7 +387,7 @@ if (difference > 1.25) { genscale = scale; - int number_of_images = m_pano->getNrOfImages(); + unsigned int number_of_images = m_pano->getNrOfImages(); for (unsigned int img = 0; img < number_of_images; img++) { dirty_mesh[img].val = true; @@ -415,7 +415,7 @@ bool VisualizationState::RequireRecalculateMesh (unsigned int image_nr) { - int number_of_images = m_pano->getNrOfImages(); + unsigned int number_of_images = m_pano->getNrOfImages(); if (number_of_images > image_nr) { return dirty_mesh[image_nr].val; diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/ViewState.h --- a/src/hugin1/hugin/ViewState.h Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/ViewState.h Sun Sep 05 11:38:25 2010 +0200 @@ -170,7 +170,7 @@ refreshArg = arg; dirty_draw = true; dirty_viewport = true; - int number_of_images = m_pano->getNrOfImages(); + unsigned int number_of_images = m_pano->getNrOfImages(); for (unsigned int img = 0; img < number_of_images; img++) { dirty_mesh[img].val = true; diff -r d2cef3abb956 -r baa490d5be90 src/hugin1/hugin/xrc/preview_frame.xrc --- a/src/hugin1/hugin/xrc/preview_frame.xrc Thu Sep 02 19:24:54 2010 +0200 +++ b/src/hugin1/hugin/xrc/preview_frame.xrc Sun Sep 05 11:38:25 2010 +0200 @@ -120,7 +120,6 @@ <packing>3</packing> <style>wxTB_DOCKABLE</style> </object> - <object class="wxDialog" name="dlg_numtrans"> <title>Numerical Transform</title> <object class="wxBoxSizer"> @@ -307,7 +306,7 @@ </object> <object class="sizeritem"> <object class="wxBitmapButton" name="exposure_default_button"> - <bitmap stock_id="wxART_REDO"/> + <bitmap stock_id="wxART_REDO"></bitmap> <tooltip>Sets the exposure value of the panorama to the mean exposure of all images.</tooltip> </object> <flag>wxLEFT|wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag> @@ -559,7 +558,7 @@ </object> </object> <flag>wxALIGN_CENTRE_VERTICAL</flag> - </object> + </object> </object> <tooltip>Move the panorama or drag images into position</tooltip> </object> @@ -661,7 +660,7 @@ </object> <object class="wxPanel" name="overview_toggle_panel"> <object class="wxStaticBoxSizer" name="overview_toggle_sizer"> - <label>toggle overview</label> + <label>Overview</label> <orient>wxHORIZONTAL</orient> <object class="sizeritem"> <object class="wxToggleButton" name="overview_toggle"> @@ -684,13 +683,20 @@ </object> <object class="sizeritem"> <object class="wxChoice" name="overview_mode_choice"> - <label>Mode:</label> + <label>Mode:</label> <content/> </object> <option>1</option> - <flag>wxEXPAND|wxALL|wxALIGN_CENTRE_VERTICAL</flag> + <flag>wxALL|wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag> + <border>5</border> + </object> + <object class="sizeritem"> + <object class="wxCheckBox" name="preview_show_grid"> + <label>Grid</label> + </object> + <flag>wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag> <border>5</border> </object> </object> </object> -</resource> +</resource> \ No newline at end of file |
From: <hug...@li...> - 2010-09-09 11:06:15
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/b737a640d3b4 changeset: 4317:b737a640d3b4 user: tmodes date: Thu Sep 09 13:04:40 2010 +0200 description: Improvements for building dynamic lib on windows details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/6f8185028bea changeset: 4318:6f8185028bea user: tmodes date: Thu Sep 09 13:04:56 2010 +0200 description: Removed debug output details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/9b8bf4a91b1b changeset: 4319:9b8bf4a91b1b user: tmodes date: Thu Sep 09 13:05:38 2010 +0200 description: Added info target to makefile to get better bug reports diffstat: src/hugin1/base_wx/RunStitchPanel.cpp | 4 +- src/hugin1/icpfind/AutoCtrlPointCreator.h | 14 +- src/hugin1/icpfind/CPDetectorConfig.h | 6 +- src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp | 193 +++++++++- src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h | 3 +- src/hugin_base/makefilelib/Anything.h | 2 +- src/hugin_base/makefilelib/AutoVariable.h | 2 +- src/hugin_base/makefilelib/CMakeLists.txt | 2 +- src/hugin_base/makefilelib/Comment.h | 2 +- src/hugin_base/makefilelib/Conditional.h | 2 +- src/hugin_base/makefilelib/Makefile.h | 4 +- src/hugin_base/makefilelib/MakefileItem.h | 10 +- src/hugin_base/makefilelib/Manageable.h | 2 +- src/hugin_base/makefilelib/Manager.h | 2 +- src/hugin_base/makefilelib/Newline.h | 2 +- src/hugin_base/makefilelib/Rule.h | 2 +- src/hugin_base/makefilelib/StringAdapter.h | 2 +- src/hugin_base/makefilelib/Variable.h | 2 +- src/hugin_base/makefilelib/VariableDef.h | 2 +- src/hugin_base/makefilelib/VariableRef.h | 2 +- src/hugin_shared.h | 16 +- src/tools/pto2mk.cpp | 4 - 22 files changed, 241 insertions(+), 39 deletions(-) diffs (truncated from 603 to 500 lines): diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin1/base_wx/RunStitchPanel.cpp --- a/src/hugin1/base_wx/RunStitchPanel.cpp Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin1/base_wx/RunStitchPanel.cpp Thu Sep 09 13:05:38 2010 +0200 @@ -263,9 +263,9 @@ } #if defined __WXMSW__ - wxString args = wxT("-f ") + wxQuoteFilename(m_currentMakefn) + wxT(" test all clean"); + wxString args = wxT("-f ") + wxQuoteFilename(m_currentMakefn) + wxT(" info test all clean"); #else - wxString args = wxT("-f ") + wxQuoteString(m_currentMakefn) + wxT(" test all clean"); + wxString args = wxT("-f ") + wxQuoteString(m_currentMakefn) + wxT(" info test all clean"); #endif wxString caption = wxString::Format(_("Stitching %s"), scriptFile.c_str()); diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin1/icpfind/AutoCtrlPointCreator.h --- a/src/hugin1/icpfind/AutoCtrlPointCreator.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin1/icpfind/AutoCtrlPointCreator.h Thu Sep 09 13:05:38 2010 +0200 @@ -36,7 +36,7 @@ /** Base class for control point creators. * */ -class IMPEX AutoCtrlPointCreator +class ICPIMPEX AutoCtrlPointCreator { public: @@ -62,7 +62,7 @@ }; /** A matcher that uses Sebastians Nowozin's excellent sift matcher */ -class IMPEX AutoPanoSift : public AutoCtrlPointCreator +class ICPIMPEX AutoPanoSift : public AutoCtrlPointCreator { public: @@ -81,7 +81,7 @@ }; /** A matcher that uses Alexandres sift matcher */ -class IMPEX AutoPanoKolor : public AutoCtrlPointCreator +class ICPIMPEX AutoPanoKolor : public AutoCtrlPointCreator { public: @@ -98,7 +98,7 @@ }; /** A matcher that uses Sebastians Nowozin's excellent sift matcher and considers stacks */ -class IMPEX AutoPanoSiftStack : public AutoCtrlPointCreator +class ICPIMPEX AutoPanoSiftStack : public AutoCtrlPointCreator { public: @@ -115,7 +115,7 @@ }; /** A matcher for multi-row panoramas based on an idea by Bruno Postle */ -class IMPEX AutoPanoSiftMultiRow : public AutoCtrlPointCreator +class ICPIMPEX AutoPanoSiftMultiRow : public AutoCtrlPointCreator { public: @@ -132,7 +132,7 @@ }; /** A matcher for multi-rows, which considers stacks */ -class IMPEX AutoPanoSiftMultiRowStack : public AutoCtrlPointCreator +class ICPIMPEX AutoPanoSiftMultiRowStack : public AutoCtrlPointCreator { public: @@ -149,7 +149,7 @@ }; /** A matcher that uses the align information in the panorama to generate cp between overlapping images */ -class IMPEX AutoPanoSiftPreAlign : public AutoCtrlPointCreator +class ICPIMPEX AutoPanoSiftPreAlign : public AutoCtrlPointCreator { public: diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin1/icpfind/CPDetectorConfig.h --- a/src/hugin1/icpfind/CPDetectorConfig.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin1/icpfind/CPDetectorConfig.h Thu Sep 09 13:05:38 2010 +0200 @@ -44,7 +44,7 @@ }; /** class, which stores all settings of one cp detector */ -class IMPEX CPDetectorSetting +class ICPIMPEX CPDetectorSetting { public: /** constructor @@ -108,13 +108,13 @@ }; #if _WINDOWS && defined Hugin_shared -WX_DECLARE_USER_EXPORTED_OBJARRAY(CPDetectorSetting,ArraySettings,IMPEX); +WX_DECLARE_USER_EXPORTED_OBJARRAY(CPDetectorSetting,ArraySettings,ICPIMPEX); #else WX_DECLARE_OBJARRAY(CPDetectorSetting,ArraySettings); #endif /** class for storing settings of different control point generators */ -class IMPEX CPDetectorConfig +class ICPIMPEX CPDetectorConfig { public: /** constructor */ diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Thu Sep 09 13:05:38 2010 +0200 @@ -45,9 +45,12 @@ #include <panodata/PanoramaData.h> #include <hugin_utils/utils.h> +#include <hugin_version.h> #include <algorithms/basic/CalculateOverlap.h> #include <algorithms/nona/ComputeImageROI.h> - +#ifdef _WINDOWS +#include "windows.h" +#endif /// Automates an very often occuring sequence #define newVarDef(var, name, ...) \ mf::Variable* var = mgr.own(new mf::Variable(name, __VA_ARGS__)); \ @@ -633,6 +636,114 @@ test->add(); //---------- + // Info rule to get some infomation about project + Rule* info = mgr.own(new Rule()); + info->addTarget("info"); + echoInfo(*info,"==========================================================================="); + echoInfo(*info,"*************** Panorama makefile generated by Hugin ***************"); + echoInfo(*info,"==========================================================================="); + echoInfo(*info,"System information"); + echoInfo(*info,"==========================================================================="); + std::ostringstream infostream; + infostream.imbue(makefile::GetMakefileLocale()); + infostream << fixed; + printSystemInfo(*info); + infostream.str(""); + infostream << DISPLAY_VERSION; + echoInfo(*info,"==========================================================================="); + echoInfo(*info,"Output options"); + echoInfo(*info,"==========================================================================="); + echoInfo(*info,"Hugin Version: "+infostream.str()); + echoInfo(*info,"Output prefix: "+outputPrefix); + pano_projection_features proj; + if (panoProjectionFeaturesQuery(opts.getProjection(), &proj)) + { + infostream.str(""); + infostream << proj.name << " (" << opts.getProjection() << ")"; + echoInfo(*info,"Projection: "+infostream.str()); + } + std::vector<double> parameters=opts.getProjectionParameters(); + if(parameters.size()>0) + { + infostream.str(""); + unsigned int i=0; + infostream << setprecision(2) << parameters[i]; + i++; + while(i<parameters.size()) + { + infostream << ", " << parameters[i]; + i++; + }; + echoInfo(*info,"Projection parameters: "+infostream.str()); + }; + infostream.str(""); + infostream << setprecision(0) << opts.getHFOV() << " x " << setprecision(0) << opts.getVFOV(); + echoInfo(*info,"Field of view: "+infostream.str()); + infostream.str(""); + infostream << opts.getWidth() << " x " << opts.getHeight(); + echoInfo(*info,"Canvas dimensions: "+infostream.str()); + infostream.str(""); + infostream << "(" << opts.getROI().left() << "," << opts.getROI().top() << ") - (" << opts.getROI().right() << "," << opts.getROI().bottom() << ")"; + echoInfo(*info,"Crop area: "+infostream.str()); + infostream.str(""); + infostream << setprecision(2) << opts.outputExposureValue; + echoInfo(*info,"Output exposure value: "+infostream.str()); + echoInfo(*info,"Selected outputs"); + if(opts.outputLDRBlended || opts.outputLDRLayers) + { + echoInfo(*info,"Normal panorama"); + if(opts.outputLDRBlended) + echoInfo(*info,"* Blended panorama"); + if(opts.outputLDRLayers) + echoInfo(*info,"* Remapped images"); + }; + if(opts.outputLDRExposureBlended || opts.outputLDRExposureLayersFused || opts.outputLDRExposureLayers || opts.outputLDRExposureRemapped) + { + echoInfo(*info,"Exposure fusion"); + if(opts.outputLDRExposureBlended) + echoInfo(*info,"* Fused and blended panorama"); + if(opts.outputLDRExposureLayersFused) + echoInfo(*info,"* Blended and fused panorama"); + if(opts.outputLDRExposureLayers) + echoInfo(*info,"* Blended exposure layers"); + if(opts.outputLDRExposureRemapped) + echoInfo(*info,"* Remapped images"); + }; + if(opts.outputHDRBlended || opts.outputHDRLayers || opts.outputHDRStacks) + { + echoInfo(*info,"HDR merging"); + if(opts.outputHDRBlended) + echoInfo(*info,"* Merged and blended panorama"); + if(opts.outputHDRStacks) + echoInfo(*info,"* Remapped merged stacks"); + if(opts.outputHDRLayers) + echoInfo(*info,"* Remapped images"); + }; + if(opts.remapUsingGPU) + echoInfo(*info,"Using GPU for remapping"); + + echoInfo(*info,"==========================================================================="); + echoInfo(*info,"Input images"); + echoInfo(*info,"==========================================================================="); + infostream.str(""); + infostream << pano.getNrOfImages(); + echoInfo(*info,"Number of images in project file: "+infostream.str()); + infostream.str(""); + infostream << images.size(); + echoInfo(*info,"Number of active images: "+infostream.str()); + for(UIntSet::const_iterator it=images.begin();it!=images.end();it++) + { + infostream.str(""); + const HuginBase::SrcPanoImage &img=pano.getImage(*it); + infostream << "Image " << *it << ": " << img.getFilename(); + echoInfo(*info,infostream.str()); + infostream.str(""); + infostream << "Image " << *it << ": Size " << img.getSize().width() << "x" << img.getSize().height() << ", Exposure: " << setprecision(2) << img.getExposureValue(); + echoInfo(*info,infostream.str()); + }; + info->add(); + + //---------- // Rules for every single file if(opts.remapper == PanoramaOptions::NONA) { @@ -1001,6 +1112,86 @@ #endif } +void PanoramaMakefilelibExport::echoInfo(Rule& inforule, const std::string& info) +{ + std::string command; +#ifdef _WINDOWS + inforule.addCommand("@echo " + info); +#else + inforule.addCommand("@echo -n '"+info+"'"); +#endif +} + +void PanoramaMakefilelibExport::printSystemInfo(Rule& inforule) +{ + std::ostringstream infostream(""); + infostream.imbue(makefile::GetMakefileLocale()); +#ifdef _WINDOWS + OSVERSIONINFOEX osvi; + ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + if(!GetVersionEx((OSVERSIONINFO *) &osvi)) + return; + SYSTEM_INFO siSysInfo; + GetSystemInfo(&siSysInfo); + + infostream << "Windows "; + + if(osvi.dwPlatformId==VER_PLATFORM_WIN32_NT && osvi.dwMajorVersion > 4) + { + if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==0) + infostream << "2000 "; + if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==1) + infostream << "XP "; + if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==2 && osvi.wProductType==VER_NT_WORKSTATION && siSysInfo.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) + infostream << "XP Professional x64 Edition "; + if(osvi.dwMajorVersion==6) + { + if(osvi.dwMinorVersion==0) + { + if(osvi.wProductType==VER_NT_WORKSTATION) + infostream << "Vista "; + else + infostream << "Server 2008 "; + } + if(osvi.dwMinorVersion==1) + { + if(osvi.wProductType==VER_NT_WORKSTATION) + infostream << "7 "; + else + infostream << "Server 2008 R2 "; + } + }; + } + + infostream << "(" << osvi.dwMajorVersion << "." << osvi.dwMinorVersion << " " << osvi.szCSDVersion << ")"; + echoInfo(inforule,"Operating System: "+infostream.str()); + switch(siSysInfo.wProcessorArchitecture) + { + case PROCESSOR_ARCHITECTURE_INTEL: + infostream.str("x86"); + break; + case PROCESSOR_ARCHITECTURE_AMD64: + infostream.str("AMD64"); + break; + default: + infostream.str("unknown"); + break; + }; + echoInfo(inforule,"Architecture: "+infostream.str()); + infostream.str(""); + infostream << siSysInfo.dwNumberOfProcessors; + echoInfo(inforule,"Number of logical processors: "+infostream.str()); + +#else +#ifdef __APPLE__ + echoInfo(inforule,"Operating System: MacOS"); +#else + echoInfo(inforule,"Operating System: Unix/Linux"); +#endif +#endif +}; + void printstacks(const std::vector<UIntSet>& stackdata) { std::cout << "printstacks: \n"; diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.h Thu Sep 09 13:05:38 2010 +0200 @@ -124,7 +124,8 @@ std::vector<std::string>& inputs); void createcheckProgCmd(makefile::Rule& testrule, const std::string& progName, const std::string& progCommand); - + void echoInfo(makefile::Rule& inforule, const std::string& info); + void printSystemInfo(makefile::Rule& inforule); bool writeMakefile() { return makefile::Makefile::getSingleton().writeMakefile(makefile) != 0; diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Anything.h --- a/src/hugin_base/makefilelib/Anything.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Anything.h Thu Sep 09 13:05:38 2010 +0200 @@ -37,7 +37,7 @@ * It can be used to include make feautures not supported by the lib in a * makefile. */ -class IMPEX Anything: public PrimaryMakefileItem +class MAKEIMPEX Anything: public PrimaryMakefileItem { string text; public: diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/AutoVariable.h --- a/src/hugin_base/makefilelib/AutoVariable.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/AutoVariable.h Thu Sep 09 13:05:38 2010 +0200 @@ -36,7 +36,7 @@ * Use this class to refer to such variables. * http://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html#Automatic-Variables */ -class IMPEX AutoVariable: public makefile::Variable +class MAKEIMPEX AutoVariable: public makefile::Variable { /// Automatic Variables have special names, so we omit checking. virtual int checkStrings(); diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/CMakeLists.txt --- a/src/hugin_base/makefilelib/CMakeLists.txt Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/CMakeLists.txt Thu Sep 09 13:05:38 2010 +0200 @@ -2,7 +2,7 @@ Makefile.cpp Rule.cpp VariableDef.cpp AutoVariable.cpp Conditional.cpp) SET(MAKEFILELIB_HEADER Comment.h Makefile.h Rule.h Variable.h MakefileItem.h VariableDef.h VariableRef.h AutoVariable.h Newline.h Conditional.h - char_type.h StringAdapter.h Manager.h Anything.h) + char_type.h StringAdapter.h Manager.h Anything.h Manageable.h) # use -Wall not on Windows, there are thousands of pointless padding warnings. IF(NOT WIN32) diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Comment.h --- a/src/hugin_base/makefilelib/Comment.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Comment.h Thu Sep 09 13:05:38 2010 +0200 @@ -34,7 +34,7 @@ * Makefile comments are prefixed with # for every line. * Currently only full line comments are supported. */ -class IMPEX Comment : public PrimaryMakefileItem +class MAKEIMPEX Comment : public PrimaryMakefileItem { string text; diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Conditional.h --- a/src/hugin_base/makefilelib/Conditional.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Conditional.h Thu Sep 09 13:05:38 2010 +0200 @@ -45,7 +45,7 @@ * @note The output does intentionally not have intentions. Maybe that would be good and unproblematic * but I'm not sure, and intention matters in makefiles (see rules). */ -class IMPEX Conditional: public PrimaryMakefileItem +class MAKEIMPEX Conditional: public PrimaryMakefileItem { /// Output the header line, like ifeq (arg1, arg2). virtual string printif()=0; diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Makefile.h --- a/src/hugin_base/makefilelib/Makefile.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Makefile.h Thu Sep 09 13:05:38 2010 +0200 @@ -43,7 +43,7 @@ * Container and Manager for all our \ref MakefileItem "MakefileItems". * It also contains some static utils and enums. */ -class IMPEX Makefile +class MAKEIMPEX Makefile { /// Holds pointers to every existing MakefileItem. std::vector<MakefileItem*> items; @@ -103,7 +103,7 @@ int writeMakefile(ostream& out); }; -IMPEX const std::locale GetMakefileLocale(); +MAKEIMPEX const std::locale GetMakefileLocale(); } diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/MakefileItem.h --- a/src/hugin_base/makefilelib/MakefileItem.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/MakefileItem.h Thu Sep 09 13:05:38 2010 +0200 @@ -38,7 +38,7 @@ * The various implementations of \ref print have to take care of proper * makefile compatible output. */ -class IMPEX MakefileItem +class MAKEIMPEX MakefileItem { public: MakefileItem() @@ -73,19 +73,19 @@ }; /// Allows writing to ostreams. -IMPEX ostream& operator<<(ostream& stream, MakefileItem& item); +MAKEIMPEX ostream& operator<<(ostream& stream, MakefileItem& item); /// Allows adding strings an MakefileItems -IMPEX string operator+(const string& str, MakefileItem& item); +MAKEIMPEX string operator+(const string& str, MakefileItem& item); /// Allows adding strings an MakefileItems -IMPEX string operator+(MakefileItem& item, const string& str); +MAKEIMPEX string operator+(MakefileItem& item, const string& str); /** * This class is used to mark MakefileItems that can be used directly, like most can. * The only exception is currently VariableDef and VariableRef, they can only be used * together with their parent Variable. */ -class IMPEX PrimaryMakefileItem : public MakefileItem, public Manageable +class MAKEIMPEX PrimaryMakefileItem : public MakefileItem, public Manageable { public: PrimaryMakefileItem() {} diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Manageable.h --- a/src/hugin_base/makefilelib/Manageable.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Manageable.h Thu Sep 09 13:05:38 2010 +0200 @@ -30,7 +30,7 @@ * Marks classes that the Manager should handle. */ -class IMPEX Manageable +class MAKEIMPEX Manageable { public: Manageable() {} diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Manager.h --- a/src/hugin_base/makefilelib/Manager.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Manager.h Thu Sep 09 13:05:38 2010 +0200 @@ -55,7 +55,7 @@ * @note This can only work with heap allocated objects (new!). */ -class IMPEX Manager +class MAKEIMPEX Manager { // boost::ptr_vector is perfect here, and it handles deletion. boost::ptr_vector<Manageable> mitems; diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Newline.h --- a/src/hugin_base/makefilelib/Newline.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Newline.h Thu Sep 09 13:05:38 2010 +0200 @@ -35,7 +35,7 @@ /** * Simply prints newlines. Can be used to give some structure. */ -class IMPEX Newline: public PrimaryMakefileItem +class MAKEIMPEX Newline: public PrimaryMakefileItem { int newlines; public: diff -r 2471dd521d53 -r 9b8bf4a91b1b src/hugin_base/makefilelib/Rule.h --- a/src/hugin_base/makefilelib/Rule.h Sun Sep 05 13:15:26 2010 +0200 +++ b/src/hugin_base/makefilelib/Rule.h Thu Sep 09 13:05:38 2010 +0200 @@ -38,7 +38,7 @@ * Represents a makefile rule, including Prerequisite and Command. * |
From: <hug...@li...> - 2010-09-10 06:33:50
|
details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/2c15e1c853dc changeset: 4328:2c15e1c853dc user: tmodes date: Fri Sep 10 07:49:48 2010 +0200 description: More info for info target details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/c5b7df549f2d changeset: 4329:c5b7df549f2d user: tmodes date: Fri Sep 10 08:28:41 2010 +0200 description: Added system information to About screen details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/fc38b89e608e changeset: 4330:fc38b89e608e user: tmodes date: Fri Sep 10 08:33:26 2010 +0200 description: Disable send to batch button (on assistant tab) if project contains less than 2 images diffstat: src/hugin1/hugin/AboutDialog.cpp | 54 ++++++++++ src/hugin1/hugin/AboutDialog.h | 2 + src/hugin1/hugin/AssistantPanel.cpp | 5 + src/hugin1/hugin/AssistantPanel.h | 1 + src/hugin1/hugin/xrc/about.xrc | 24 ++++- src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp | 36 ++++++- 6 files changed, 119 insertions(+), 3 deletions(-) diffs (206 lines): diff -r 781e333ae8d6 -r fc38b89e608e src/hugin1/hugin/AboutDialog.cpp --- a/src/hugin1/hugin/AboutDialog.cpp Thu Sep 09 21:31:11 2010 +0200 +++ b/src/hugin1/hugin/AboutDialog.cpp Fri Sep 10 08:33:26 2010 +0200 @@ -94,6 +94,7 @@ strFile = huginApp::Get()->GetXRCPath() + wxT("data/upstream.txt"); textCtrl->SetFont(font); textCtrl->LoadFile(strFile); + GetSystemInformation(&font); // load the appropriate icon (.ico for Windows, .png for other systems) #ifdef __WXMSW__ @@ -119,3 +120,56 @@ { return; } + +void AboutDialog::GetSystemInformation(wxFont *font) +{ + wxTextCtrl* infoText=XRCCTRL(*this,"system_txt",wxTextCtrl); + infoText->SetFont(*font); + wxString text; + text=wxString::Format(_("Operating System: %s"),wxGetOsDescription().c_str()); + wxString is64; + if(wxIsPlatform64Bit()) + is64=_("64 bit"); + else + is64=_("32 bit"); + text=text+wxT("\n")+wxString::Format(_("Architecture: %s"),is64.c_str()); + text=text+wxT("\n")+wxString::Format(_("Free memory: %d kiB"),wxGetFreeMemory().GetValue()/1024); +#ifdef _WINDOWS + UINT cp=GetACP(); + text=text+wxT("\n")+wxString::Format(_("Active Codepage: %d"),cp); + switch(cp) + { + case 1250: + text=text+wxT(" (Central European Windows)"); + break; + case 1251: + text=text+wxT(" (Cyrillic Windows)"); + break; + case 1252: + text=text+wxT(" (Western European Windows)"); + break; + case 1253: + text=text+wxT(" (Greek Windows)"); + break; + case 1254: + text=text+wxT(" (Turkish Windows)"); + break; + case 1255: + text=text+wxT(" (Hebrew Windows)"); + break; + case 1256: + text=text+wxT(" (Arabic Windows)"); + break; + case 1257: + text=text+wxT(" (Baltic Windows)"); + break; + case 1258: + text=text+wxT(" (Vietnamese Windows)"); + break; + }; +#endif + text=text+wxT("\n\nHugin\n")+wxString::Format(_("Version: %s"),wxString(DISPLAY_VERSION,wxConvLocal).c_str()); + text=text+wxT("\n")+wxString::Format(_("Path to ressources: %s"),huginApp::Get()->GetXRCPath().c_str()); + text=text+wxT("\n")+wxString::Format(_("Path to data: %s"),huginApp::Get()->GetDataPath().c_str()); + infoText->SetValue(text); +} \ No newline at end of file diff -r 781e333ae8d6 -r fc38b89e608e src/hugin1/hugin/AboutDialog.h --- a/src/hugin1/hugin/AboutDialog.h Thu Sep 09 21:31:11 2010 +0200 +++ b/src/hugin1/hugin/AboutDialog.h Fri Sep 10 08:33:26 2010 +0200 @@ -53,6 +53,8 @@ /** button to fill the space */ void OnAboutMe(wxCommandEvent & e); + /** retrieves the system informations */ + void GetSystemInformation(wxFont *font); }; diff -r 781e333ae8d6 -r fc38b89e608e src/hugin1/hugin/AssistantPanel.cpp --- a/src/hugin1/hugin/AssistantPanel.cpp Thu Sep 09 21:31:11 2010 +0200 +++ b/src/hugin1/hugin/AssistantPanel.cpp Fri Sep 10 08:33:26 2010 +0200 @@ -139,6 +139,10 @@ DEBUG_ASSERT(m_alignButton); m_alignButton->Disable(); + m_alignBatchButton = XRCCTRL(*this, "ass_align_batch_button", wxButton); + DEBUG_ASSERT(m_alignBatchButton); + m_alignBatchButton->Disable(); + m_alignText = XRCCTRL(*this, "ass_align_text", wxStaticText); DEBUG_ASSERT(m_alignText); @@ -209,6 +213,7 @@ m_variable_groups->update(); m_alignButton->Enable(pano.getNrOfImages() > 1); + m_alignBatchButton->Enable(pano.getNrOfImages() > 1); if (pano.getNrOfImages() == 0) { m_createButton->Disable(); diff -r 781e333ae8d6 -r fc38b89e608e src/hugin1/hugin/AssistantPanel.h --- a/src/hugin1/hugin/AssistantPanel.h Thu Sep 09 21:31:11 2010 +0200 +++ b/src/hugin1/hugin/AssistantPanel.h Fri Sep 10 08:33:26 2010 +0200 @@ -83,6 +83,7 @@ wxPanel * m_panel; wxStaticText * m_imagesText; wxButton * m_alignButton; + wxButton * m_alignBatchButton; wxStaticText * m_alignText; wxButton * m_createButton; wxCheckBox * m_exifToggle; diff -r 781e333ae8d6 -r fc38b89e608e src/hugin1/hugin/xrc/about.xrc --- a/src/hugin1/hugin/xrc/about.xrc Thu Sep 09 21:31:11 2010 +0200 +++ b/src/hugin1/hugin/xrc/about.xrc Fri Sep 10 08:33:26 2010 +0200 @@ -146,6 +146,28 @@ </object> <label>License</label> </object> + <object class="notebookpage"> + <label>System</label> + <object class="wxPanel" name="system_tab"> + <object class="wxBoxSizer"> + <orient>wxVERTICAL</orient> + <object class="sizeritem"> + <object class="wxTextCtrl" name="system_txt"> + <font> + <size>8</size> + <size platform="mac">10</size> + <family>modern</family> + </font> + <style platform="win">wxTE_MULTILINE|wxTE_READONLY</style> + <style platform="unix|mac">wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER</style> + </object> + <flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> + <option>1</option> + <border platform="unix|mac">0</border> + </object> + </object> + </object> + </object> </object> <flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP</flag> <border>8</border> @@ -161,4 +183,4 @@ </object> </object> </object> -</resource> +</resource> \ No newline at end of file diff -r 781e333ae8d6 -r fc38b89e608e src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp --- a/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Thu Sep 09 21:31:11 2010 +0200 +++ b/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefilelibExport.cpp Fri Sep 10 08:33:26 2010 +0200 @@ -54,8 +54,6 @@ #ifdef __APPLE__ #include <CoreFoundation/CoreFoundation.h> #else -#include <sys/utsname.h> -#include <sys/sysinfo.h> #endif #endif /// Automates an very often occuring sequence @@ -1202,6 +1200,40 @@ infostream << freeBytes/(1024*1024) << " MiB"; echoInfo(inforule,"Free space on disc: " + infostream.str()); }; + infostream.str(""); + UINT cp=GetACP(); + infostream << cp; + switch(cp) + { + case 1250: + infostream << " (Central European Windows)"; + break; + case 1251: + infostream << " (Cyrillic Windows)"; + break; + case 1252: + infostream << " (Western European Windows)"; + break; + case 1253: + infostream << " (Greek Windows)"; + break; + case 1254: + infostream << " (Turkish Windows)"; + break; + case 1255: + infostream << " (Hebrew Windows)"; + break; + case 1256: + infostream << " (Arabic Windows)"; + break; + case 1257: + infostream << " (Baltic Windows)"; + break; + case 1258: + infostream << " (Vietnamese Windows)"; + break; + }; + echoInfo(inforule,"Active codepage: " + infostream.str()); #else #ifdef __APPLE__ infostream.str(""); |