From: <tm...@us...> - 2009-07-31 05:27:19
|
Revision: 4132 http://hugin.svn.sourceforge.net/hugin/?rev=4132&view=rev Author: tmodes Date: 2009-07-31 05:27:05 +0000 (Fri, 31 Jul 2009) Log Message: ----------- More fixes for changed numeric locale [2826516] Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2009-07-31 05:25:37 UTC (rev 4131) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2009-07-31 05:27:05 UTC (rev 4132) @@ -2400,6 +2400,11 @@ if (optvec.size() != images.size()) { optvec = OptimizeVector(images.size()); } +#ifdef __unix__ + // reset locale + setlocale(LC_NUMERIC,old_locale); + free(old_locale); +#endif return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tm...@us...> - 2010-01-02 09:40:52
|
Revision: 4846 http://hugin.svn.sourceforge.net/hugin/?rev=4846&view=rev Author: tmodes Date: 2010-01-02 09:40:43 +0000 (Sat, 02 Jan 2010) Log Message: ----------- Parse float projections parameters correctly Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2009-12-31 14:46:18 UTC (rev 4845) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-02 09:40:43 UTC (rev 4846) @@ -1365,12 +1365,10 @@ using namespace PTScriptParsing; DEBUG_TRACE(""); -#ifdef __unix__ // set numeric locale to C, for correct number output char * p = setlocale(LC_NUMERIC,NULL); char * old_locale = strdup(p); setlocale(LC_NUMERIC,"C"); -#endif PTParseState state; string line; @@ -2030,11 +2028,7 @@ /** @todo Warn the user when the script links variables in a way not expressable * by SrcPanoImage. */ -#ifdef __unix__ #define RESET_LOCALE setlocale(LC_NUMERIC,old_locale); free(old_locale); -#else -#define RESET_LOCALE -#endif #define image_variable( name, type, default_value )\ PTOVariableConverterFor##name::addToVariableMap(name_src.get##name##IV(), vars_for_name);\ for (VariableMap::iterator vit = vars_for_name.begin();\ @@ -2090,11 +2084,9 @@ optvec = OptimizeVector(images.size()); } -#ifdef __unix__ // reset locale setlocale(LC_NUMERIC,old_locale); free(old_locale); -#endif return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tm...@us...> - 2010-01-05 06:42:52
|
Revision: 4851 http://hugin.svn.sourceforge.net/hugin/?rev=4851&view=rev Author: tmodes Date: 2010-01-05 06:42:40 +0000 (Tue, 05 Jan 2010) Log Message: ----------- Correctly link images in subset of panorama (fixes a optimization bug) Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-05 06:36:31 UTC (rev 4850) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-05 06:42:40 UTC (rev 4851) @@ -1193,7 +1193,7 @@ ic = 0; for (UIntSet::const_iterator i = imgs.begin(); i != imgs.end(); ++i) { - unsigned int jc = 0; + unsigned int jc = ic + 1; UIntSet::const_iterator j = i; for (++j; j != imgs.end(); ++j) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tm...@us...> - 2010-01-25 06:28:18
|
Revision: 4933 http://hugin.svn.sourceforge.net/hugin/?rev=4933&view=rev Author: tmodes Date: 2010-01-25 06:27:59 +0000 (Mon, 25 Jan 2010) Log Message: ----------- Some fix for optimisation of translation parameters Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-25 06:24:23 UTC (rev 4932) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-25 06:27:59 UTC (rev 4933) @@ -591,7 +591,10 @@ }\ if (((vit->first == "a" && set_contains(optvars[imgNr], "a") )|| \ (vit->first == "b" && set_contains(optvars[imgNr], "b") )|| \ - (vit->first == "c" && set_contains(optvars[imgNr], "c") )\ + (vit->first == "c" && set_contains(optvars[imgNr], "c") )|| \ + (vit->first == "TrX" && set_contains(optvars[imgNr], "TrX") )|| \ + (vit->first == "TrY" && set_contains(optvars[imgNr], "TrY") )|| \ + (vit->first == "TrZ" && set_contains(optvars[imgNr], "TrZ") )\ )\ && forPTOptimizer && vit->second.getValue() == 0.0) \ {\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tm...@us...> - 2010-01-29 21:18:09
|
Revision: 4944 http://hugin.svn.sourceforge.net/hugin/?rev=4944&view=rev Author: tmodes Date: 2010-01-29 21:17:58 +0000 (Fri, 29 Jan 2010) Log Message: ----------- Fixes writing of script file when script contains not all images Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-29 17:16:48 UTC (rev 4943) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-01-29 21:17:58 UTC (rev 4944) @@ -565,14 +565,17 @@ {\ bool linking = false;\ std::size_t link_target;\ - if (state.images[imgNr]->name##isLinked())\ + if (ic!=0)\ {\ - for (link_target = 0; link_target < imgNr; link_target++)\ + if (state.images[imgNr]->name##isLinked())\ {\ - if (state.images[imgNr]->name##isLinkedWith(*state.images[link_target]))\ + for (link_target = 0; link_target < imgNr; link_target++)\ {\ - linking = true;\ - break;\ + if (set_contains(imgs,link_target) && state.images[imgNr]->name##isLinkedWith(*state.images[link_target]))\ + {\ + linking = true;\ + break;\ + }\ }\ }\ }\ @@ -583,7 +586,7 @@ continue;\ else if (linking)\ {\ - o << vit->first << "=" << link_target << " ";\ + o << vit->first << "=" << imageNrMap[link_target] << " ";\ } else {\ if (set_contains(optvars[imgNr], vit->first))\ {\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tm...@us...> - 2010-02-19 20:55:53
|
Revision: 4999 http://hugin.svn.sourceforge.net/hugin/?rev=4999&view=rev Author: tmodes Date: 2010-02-19 20:55:44 +0000 (Fri, 19 Feb 2010) Log Message: ----------- Clip positive mask at image boundaries during internal processing Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-02-19 20:54:33 UTC (rev 4998) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-02-19 20:55:44 UTC (rev 4999) @@ -1019,29 +1019,33 @@ if(state.images[i]->getActive()) { MaskPolygon transformedMask=masks[j]; - //transform polygon in panorama space - HuginBase::PTools::Transform trans; - trans.createInvTransform(getImage(i),getOptions()); - transformedMask.transformPolygon(trans); - for(unsigned k=0;k<state.images.size();k++) + // clip positive mask to image boundaries + if(transformedMask.clipPolygon(vigra::Rect2D(0,0,state.images[i]->getWidth(),state.images[i]->getHeight()))) { - if(i==k) - continue; - //transform polygon in image space of other image - MaskPolygon targetMask=transformedMask; - PTools::Transform targetTrans; - targetTrans.createTransform(getImage(k),getOptions()); - targetMask.transformPolygon(targetTrans); - //now clip polygon to image rectangle, add mask only when polygon is inside image - if(targetMask.clipPolygon(vigra::Rect2D(-maskOffset,-maskOffset, - state.images[k]->getWidth()+maskOffset,state.images[k]->getHeight()+maskOffset))) + //transform polygon in panorama space + HuginBase::PTools::Transform trans; + trans.createInvTransform(getImage(i),getOptions()); + transformedMask.transformPolygon(trans); + for(unsigned k=0;k<state.images.size();k++) { - targetMask.setMaskType(MaskPolygon::Mask_negative); - targetMask.setImgNr(k); - state.images[k]->addActiveMask(targetMask); + if(i==k) + continue; + //transform polygon in image space of other image + MaskPolygon targetMask=transformedMask; + PTools::Transform targetTrans; + targetTrans.createTransform(getImage(k),getOptions()); + targetMask.transformPolygon(targetTrans); + //now clip polygon to image rectangle, add mask only when polygon is inside image + if(targetMask.clipPolygon(vigra::Rect2D(-maskOffset,-maskOffset, + state.images[k]->getWidth()+maskOffset,state.images[k]->getHeight()+maskOffset))) + { + targetMask.setMaskType(MaskPolygon::Mask_negative); + targetMask.setImgNr(k); + state.images[k]->addActiveMask(targetMask); + }; }; }; - } + }; break; }; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tm...@us...> - 2010-02-20 08:37:48
|
Revision: 5002 http://hugin.svn.sourceforge.net/hugin/?rev=5002&view=rev Author: tmodes Date: 2010-02-20 08:37:42 +0000 (Sat, 20 Feb 2010) Log Message: ----------- Better calculation of positive masks for non-overlapping images Modified Paths: -------------- hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-02-20 07:42:53 UTC (rev 5001) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2010-02-20 08:37:42 UTC (rev 5002) @@ -1030,18 +1030,27 @@ { if(i==k) continue; - //transform polygon in image space of other image - MaskPolygon targetMask=transformedMask; - PTools::Transform targetTrans; - targetTrans.createTransform(getImage(k),getOptions()); - targetMask.transformPolygon(targetTrans); - //now clip polygon to image rectangle, add mask only when polygon is inside image - if(targetMask.clipPolygon(vigra::Rect2D(-maskOffset,-maskOffset, - state.images[k]->getWidth()+maskOffset,state.images[k]->getHeight()+maskOffset))) + //check if images are overlapping + double maxShift = std::max(state.images[i]->getHFOV(),state.images[k]->getHFOV())*1.2; + double minShiftYaw = 360.0 - maxShift; + double minShiftPitch = 180.0 - maxShift; + double diffYaw=fabs(state.images[i]->getYaw()-state.images[k]->getYaw()); + double diffPitch=fabs(state.images[i]->getPitch()-state.images[k]->getPitch()); + if((diffYaw<maxShift || diffYaw>minShiftYaw) && (diffPitch<maxShift || diffPitch>minShiftPitch)) { - targetMask.setMaskType(MaskPolygon::Mask_negative); - targetMask.setImgNr(k); - state.images[k]->addActiveMask(targetMask); + //transform polygon in image space of other image only if images are overlapping + MaskPolygon targetMask=transformedMask; + PTools::Transform targetTrans; + targetTrans.createTransform(getImage(k),getOptions()); + targetMask.transformPolygon(targetTrans); + //now clip polygon to image rectangle, add mask only when polygon is inside image + if(targetMask.clipPolygon(vigra::Rect2D(-maskOffset,-maskOffset, + state.images[k]->getWidth()+maskOffset,state.images[k]->getHeight()+maskOffset))) + { + targetMask.setMaskType(MaskPolygon::Mask_negative); + targetMask.setImgNr(k); + state.images[k]->addActiveMask(targetMask); + }; }; }; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |