From: <dm...@us...> - 2010-01-18 01:13:39
|
Revision: 1233 http://panotools.svn.sourceforge.net/panotools/?rev=1233&view=rev Author: dmg Date: 2010-01-18 01:13:33 +0000 (Mon, 18 Jan 2010) Log Message: ----------- Bumped version one notch and added PaniniGeneral.h Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/Makefile.am trunk/libpano/configure.ac trunk/libpano/version.h Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2010-01-17 23:26:23 UTC (rev 1232) +++ trunk/libpano/ChangeLog 2010-01-18 01:13:33 UTC (rev 1233) @@ -1,5 +1,7 @@ 2010-01-17 dmg <dm...@uv...> + * configure.ac, version.h: Updated version number to 2.9.16 + * Makefile.am: Added new panini source code files to the building of the library. Modified: trunk/libpano/Makefile.am =================================================================== --- trunk/libpano/Makefile.am 2010-01-17 23:26:23 UTC (rev 1232) +++ trunk/libpano/Makefile.am 2010-01-18 01:13:33 UTC (rev 1233) @@ -6,7 +6,7 @@ optimize.c morpher.c Triangulate.c \ seamer.c hdrfile.c rgbe.c rgbe.h \ tiff.c ZComb.c jpeg.c png.c multilayer.c sys_common.c PTcommon.c ColourBrightness.c\ - metadata.c jpegicc.c ptstitch.c ptfeather.c PaniniGeneral.c + metadata.c jpegicc.c ptstitch.c ptfeather.c PaniniGeneral.c PaniniGeneral.h if HasJava JAVA_SRC = ptpicker.c pteditor.c Modified: trunk/libpano/configure.ac =================================================================== --- trunk/libpano/configure.ac 2010-01-17 23:26:23 UTC (rev 1232) +++ trunk/libpano/configure.ac 2010-01-18 01:13:33 UTC (rev 1233) @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.5) -AC_INIT([pano13], [2.9.15], BUG-REPORT-ADDRESS) +AC_INIT([pano13], [2.9.16], BUG-REPORT-ADDRESS) AC_CONFIG_SRCDIR([PTDialogs.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config.h]) Modified: trunk/libpano/version.h =================================================================== --- trunk/libpano/version.h 2010-01-17 23:26:23 UTC (rev 1232) +++ trunk/libpano/version.h 2010-01-18 01:13:33 UTC (rev 1233) @@ -24,13 +24,13 @@ #define VERS2 0x00 //version of preferences file, used to verify data -#define PREF_VERSION "2.9.15 " +#define PREF_VERSION "2.9.16 " // String style of global version -#define VERSION "2.9.15 " +#define VERSION "2.9.16 " // Numeric style of global version, same as VERSION with more precision -#define PTVERSION_FILEVERSIONNUMBER 2,9,15,0 +#define PTVERSION_FILEVERSIONNUMBER 2,9,16,0 #define PTVERSION_NAME_LONG "LongVersion" #define LONGVERSION VERSION ", Copyright (c) 1998-2006, H. Dersch, de...@fh..." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tks...@us...> - 2010-01-18 02:14:40
|
Revision: 1234 http://panotools.svn.sourceforge.net/panotools/?rev=1234&view=rev Author: tksharpless Date: 2010-01-18 02:14:32 +0000 (Mon, 18 Jan 2010) Log Message: ----------- Changed PaniniGeneral license to BSD 3-clause Modified Paths: -------------- trunk/libpano/PaniniGeneral.c trunk/libpano/PaniniGeneral.h Modified: trunk/libpano/PaniniGeneral.c =================================================================== --- trunk/libpano/PaniniGeneral.c 2010-01-18 01:13:33 UTC (rev 1233) +++ trunk/libpano/PaniniGeneral.c 2010-01-18 02:14:32 UTC (rev 1234) @@ -1,21 +1,35 @@ /* PaniniGeneral.c 15Jan2010 TKS +Copyright (c) 2010, Thomas K Sharpless +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the <organization> nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + This is the reference implementation of the General Pannini Projection, an elaboration of the basic Pannini projection discovered by Bruno Postle and Thomas Sharpless in December 2008 in paintings by Gian Paolo Pannini (1691-1765). - (C) copyright 2010 Thomas K Sharpless -Free license is hereby granted for noncommercial use -under the terms of the GNU Lesser General Public License -version 2.1 as published by the Free Software Foundation -and appearing in the file LICENSE.LGPL included in the -packaging of this file. Please review the following -information to ensure the requirementsGeneral of the GNU Lesser -General Public License version 2.1 will be met: -http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. - - */ #include "PaniniGeneral.h" Modified: trunk/libpano/PaniniGeneral.h =================================================================== --- trunk/libpano/PaniniGeneral.h 2010-01-18 01:13:33 UTC (rev 1233) +++ trunk/libpano/PaniniGeneral.h 2010-01-18 02:14:32 UTC (rev 1234) @@ -1,20 +1,36 @@ /* PaniniGeneral.h 15Jan2010 TKS +Copyright (c) 2010, Thomas K Sharpless +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the <organization> nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + This is the reference implementation of the General Pannini Projection, an elaboration of the basic Pannini projection discovered by Bruno Postle and Thomas Sharpless in December 2008 in paintings by Gian Paolo Pannini (1691-1765). - (C) copyright 2010 Thomas K Sharpless -Free license is hereby granted for noncommercial use -under the terms of the GNU Lesser General Public License -version 2.1 as published by the Free Software Foundation -and appearing in the file LICENSE.LGPL included in the -packaging of this file. Please review the following -information to ensure the requirementsGeneral of the GNU Lesser -General Public License version 2.1 will be met: -http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. - It is a parameterized mapping between sphere and plane, that gives synthetic perspective views on the plane when the sphere holds a linear projection of the scene. Sphere This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tks...@us...> - 2010-01-19 15:35:55
|
Revision: 1236 http://panotools.svn.sourceforge.net/panotools/?rev=1236&view=rev Author: tksharpless Date: 2010-01-19 15:35:46 +0000 (Tue, 19 Jan 2010) Log Message: ----------- Add PaniniGeneral files to libpano.vcproj (the "Watters" VC project) Add code for biplane and triplane dynamic fovs to queryfeature.c Thanks to Thomas Modes for both patches Modified Paths: -------------- trunk/libpano/libpano.vcproj trunk/libpano/queryfeature.c Modified: trunk/libpano/libpano.vcproj =================================================================== --- trunk/libpano/libpano.vcproj 2010-01-18 05:53:48 UTC (rev 1235) +++ trunk/libpano/libpano.vcproj 2010-01-19 15:35:46 UTC (rev 1236) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="9.00" + Version="9,00" Name="pano13" ProjectGUID="{9B19A5C0-8DB0-448B-BF99-DC6374E9751B}" RootNamespace="Panotools" @@ -671,6 +671,10 @@ > </File> <File + RelativePath=".\PaniniGeneral.c" + > + </File> + <File RelativePath=".\parser.c" > </File> @@ -981,6 +985,10 @@ > </File> <File + RelativePath=".\PaniniGeneral.h" + > + </File> + <File RelativePath=".\panorama.h" > </File> Modified: trunk/libpano/queryfeature.c =================================================================== --- trunk/libpano/queryfeature.c 2010-01-18 05:53:48 UTC (rev 1235) +++ trunk/libpano/queryfeature.c 2010-01-19 15:35:46 UTC (rev 1236) @@ -519,6 +519,12 @@ case PANO_FORMAT_PANINI_GENERAL: maxFOVs_panini_general (params, lims ); break; + case PANO_FORMAT_BIPLANE: + lims[0] = params[0] + 179; + break; + case PANO_FORMAT_TRIPLANE: + lims[0] = 2 * params[0] + 179; + break; case PANO_FORMAT_ALBERS_EQUAL_AREA_CONIC: break; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2010-01-30 06:52:56
|
Revision: 1244 http://panotools.svn.sourceforge.net/panotools/?rev=1244&view=rev Author: dmg Date: 2010-01-30 06:52:49 +0000 (Sat, 30 Jan 2010) Log Message: ----------- Avoid processing of T[xyz] code when values are zero Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/parser.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2010-01-25 23:51:10 UTC (rev 1243) +++ trunk/libpano/ChangeLog 2010-01-30 06:52:49 UTC (rev 1244) @@ -1,3 +1,10 @@ +2010-01-29 dmg <dm...@uv...> + + * parser.c (ReadImageDescription): Expanded patch by Pablo to + avoid Translation processing when T[xyz] parms are added to the + line. I hate our parser. + + 2010-01-17 dmg <dm...@uv...> * configure.ac, version.h: Updated version number to 2.9.16 Modified: trunk/libpano/parser.c =================================================================== --- trunk/libpano/parser.c 2010-01-25 23:51:10 UTC (rev 1243) +++ trunk/libpano/parser.c 2010-01-30 06:52:49 UTC (rev 1244) @@ -1745,7 +1745,11 @@ PrintError("Unknown variable name Ti%c in script", *ch); return -1; } - im.cP.trans = TRUE; + if (im.cP.trans_x != 0.0 || + im.cP.trans_y != 0.0 || + im.cP.trans_z != 0.0) { + im.cP.trans = TRUE; + } break; case 'e': ch++; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2010-01-30 07:29:41
|
Revision: 1246 http://panotools.svn.sourceforge.net/panotools/?rev=1246&view=rev Author: dmg Date: 2010-01-30 07:29:35 +0000 (Sat, 30 Jan 2010) Log Message: ----------- bumped version Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/configure.ac trunk/libpano/version.h Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2010-01-30 06:59:05 UTC (rev 1245) +++ trunk/libpano/ChangeLog 2010-01-30 07:29:35 UTC (rev 1246) @@ -1,3 +1,7 @@ +2010-01-29 dmg <dmg@Iridium.local> + + * version.h, configure.ac: bumped version to 2.9.17 + 2010-01-29 dmg <dm...@uv...> * parser.c (ReadImageDescription): Expanded patch by Pablo to Modified: trunk/libpano/configure.ac =================================================================== --- trunk/libpano/configure.ac 2010-01-30 06:59:05 UTC (rev 1245) +++ trunk/libpano/configure.ac 2010-01-30 07:29:35 UTC (rev 1246) @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.5) -AC_INIT([pano13], [2.9.16], BUG-REPORT-ADDRESS) +AC_INIT([pano13], [2.9.17], BUG-REPORT-ADDRESS) AC_CONFIG_SRCDIR([PTDialogs.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config.h]) Modified: trunk/libpano/version.h =================================================================== --- trunk/libpano/version.h 2010-01-30 06:59:05 UTC (rev 1245) +++ trunk/libpano/version.h 2010-01-30 07:29:35 UTC (rev 1246) @@ -24,10 +24,10 @@ #define VERS2 0x00 //version of preferences file, used to verify data -#define PREF_VERSION "2.9.16 " +#define PREF_VERSION "2.9.17 " // String style of global version -#define VERSION "2.9.16 " +#define VERSION "2.9.17 " // Numeric style of global version, same as VERSION with more precision #define PTVERSION_FILEVERSIONNUMBER 2,9,16,0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tks...@us...> - 2010-02-16 20:11:41
|
Revision: 1251 http://panotools.svn.sourceforge.net/panotools/?rev=1251&view=rev Author: tksharpless Date: 2010-02-16 20:11:32 +0000 (Tue, 16 Feb 2010) Log Message: ----------- Improved soft squeeze (PaniniGeneral.c) Modified Paths: -------------- trunk/libpano/PaniniGeneral.c trunk/libpano/math.c Modified: trunk/libpano/PaniniGeneral.c =================================================================== --- trunk/libpano/PaniniGeneral.c 2010-02-14 06:25:58 UTC (rev 1250) +++ trunk/libpano/PaniniGeneral.c 2010-02-16 20:11:32 UTC (rev 1251) @@ -47,6 +47,7 @@ double S, cl, q, t; if( d < 0 ) return 0; + q = v < 0 ? top : bot; if( h == 0 ){ *lon = 0; S = 1; @@ -68,17 +69,17 @@ *lat = atan(S * v); /* squeeze */ - q = v < 0 ? top : bot; - if( q < 0 ){ - q = -q; - /* soft squeeze */ - t = q * 2 * (cl - 0.707) / PI; - *lat *= t + 1; - } else if( q > 0 ){ + if( q > 0 ){ /* hard squeeze */ t = atan( v * cl ); t = q * (t - *lat); *lat += t; + } else if( q < 0 ){ + /* soft squeeze version 2 */ + double cc = cos(0.92 * *lon) - 1; + double ss = 2 * d / (d + 1); + t = v / (1 + ss * q * cc ); + *lat = atan( S * t ); } return 1; @@ -99,10 +100,10 @@ /* squeeze */ q = lat < 0 ? top : bot; if( q < 0 ){ - q = -q; - /* soft squeeze */ - t = q * 2 * (cos(lon) - 0.707) / PI; - *v = S * tan(lat /(t + 1)); + /* soft squeeze version 2 */ + double cc = cos(0.92 * lon) - 1; + double ss = 2 * d / (d + 1); + *v *= 1 + ss * q * cc; } else if( q > 0 ){ /* hard squeeze */ t = cos(lon); Modified: trunk/libpano/math.c =================================================================== --- trunk/libpano/math.c 2010-02-14 06:25:58 UTC (rev 1250) +++ trunk/libpano/math.c 2010-02-16 20:11:32 UTC (rev 1251) @@ -1063,7 +1063,7 @@ Image * setup_panini_general(struct MakeParams* pmp) { int i; - double s,t,d,a,v, vl[2]; + double s,t,d,a,b,v, vl[2]; Image * ppg = NULL; // Only act if it is panini_general @@ -1075,7 +1075,7 @@ return NULL; /* check number of precomputed param values */ - if( ppg->precomputedCount == 5 ) + if( ppg->precomputedCount == 7 ) return ppg; // OK /* default unspecified values to 0, giving @@ -1091,31 +1091,31 @@ return NULL; d = ppg->precomputedValue[0]; - /* post max feasible half-FOV as angle and x value */ + /* get max feasible half-FOVs */ if( !panini_general_maxVAs( d, - DEG_TO_RAD( 80 ), // max projection angle + DEG_TO_RAD( 80 ), // max projection angle vl // max view angles h, v ) ) return 0; - a = vl[0]; + // angle and coordinate limits + s = (d + 1) / (d + cos(a)); + ppg->precomputedValue[3] = vl[0]; // max lambda + ppg->precomputedValue[4] = s * sin( vl[0] ); // max x + ppg->precomputedValue[5] = vl[1]; // max phi + ppg->precomputedValue[6] = s * tan( vl[1] ); // max y + // clip hFOV to feasible limit v = 0.5 * DEG_TO_RAD( ppg->hfov ); - if( v > a ) - v = a; + if( v > vl[0] ) + v = vl[0]; - // x coordinate limit - s = sin( a ) * (d + 1) / (d + cos(a)); - - // distance param + // set distance param t = sin(v) * (d+1) / (d + cos(v)); pmp->distance = 0.5 * ppg->width / t; - ppg->precomputedValue[3] = a; // max lambda - ppg->precomputedValue[4] = s; // max x - - ppg->precomputedCount = 5; + ppg->precomputedCount = 7; return ppg; } @@ -1134,9 +1134,12 @@ y = y_dest/distance; x = x_dest/distance; - // fail if outside feasible FOV - if( fabs(x) > ppg->precomputedValue[4] ) - return 0; + // fail if outside max image +/* if( fabs(x) > ppg->precomputedValue[4] + || fabs(y) > ppg->precomputedValue[6] + ) + return 0; +*/ // call mapping fn if( !panini_general_toSphere( &lambda, &phi, x, y, ppg->precomputedValue[0], @@ -1145,7 +1148,7 @@ ) return 0; - *lambda_src = lambda * distance; + *lambda_src = lambda * distance; *phi_src = phi * distance; return TRUE; @@ -1172,9 +1175,11 @@ phi = phi_dest/distance; // fail if outside feasible FOV - if( fabs(lambda) > ppg->precomputedValue[3] ) - return 0; - +/* if( fabs(lambda) > ppg->precomputedValue[3] + || fabs(phi) > ppg->precomputedValue[5] + ) + return 0; +*/ // call mapping fn if( !panini_general_toPlane( lambda, phi, &x, &y, ppg->precomputedValue[0], @@ -1183,6 +1188,12 @@ ) return 0; + // fail if coords outside max image (needed for squeeze) +/* if( fabs(x) > ppg->precomputedValue[4] + || fabs(y) > ppg->precomputedValue[6] + ) + return 0; +*/ *y_src = distance * y; *x_src = distance * x; return 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2010-03-29 03:31:58
|
Revision: 1259 http://panotools.svn.sourceforge.net/panotools/?rev=1259&view=rev Author: dmg Date: 2010-03-29 03:31:51 +0000 (Mon, 29 Mar 2010) Log Message: ----------- we now have equisolid and stereographic input lenses Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/adjust.c trunk/libpano/filter.h trunk/libpano/math.c trunk/libpano/panorama.h trunk/libpano/parser.c Added Paths: ----------- trunk/libpano/TODO.org Removed Paths: ------------- trunk/libpano/TODO Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/ChangeLog 2010-03-29 03:31:51 UTC (rev 1259) @@ -1,3 +1,11 @@ +2010-03-28 dmg <dm...@uv...> + + * math.c, adjust.c, parser.c: enabled other input projections, in + particular: stereographic and equisolid (which is really lambert + equal area). We need to clean up a lot of the code from math.c, + because there are redundant functions. + + 2010-01-29 dmg <dmg@Iridium.local> * version.h, configure.ac: bumped version to 2.9.17 Deleted: trunk/libpano/TODO =================================================================== --- trunk/libpano/TODO 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/TODO 2010-03-29 03:31:51 UTC (rev 1259) @@ -1,286 +0,0 @@ - -This file documents the activities required before we release version -3.0.0 of the library. - -* Very little testing has been done in 16 bit images. - - -* Perhaps the most pressing issue is to create a good set of tests for - each of the tools. So far we only have tests for PTmender (and only 2). - -What we need: - -* PTmender. We need to test each of the projections, and each of the - different types of input projections. - -* All others: they desperately need a test. - -Issues with creating the tests: - -* tiffcmp is good for comparing just the data in tiffs. But once one - starts using the non-deterministic parts of panotools (such as - colour correction and feathering) it is impossible to use them. What - we need is some type of program that reads the data inside an image - and compares it to be "similar" within certain threshold. - -* we also need the equivalent of tiffcmp for PSDs, where we can - specify we want to compare the data, not the metadata. The small - parser I have written might be exactly what we need: ignore all - metadata. It might be necessary to compare the "layer and masks - block", but not the ColorModedDataBlock or the Metadata block. It - might not be as easy as it sounds, because offset might have - shifted. - -====================================================================== -KNOWN BUGS: - ----------------------------------------------------------------------- -All tools: - -- Update make file to include resource files for version info. - -- perspective.c, and remap.c are all using transForm - instead of the new transformEx. This is needed to take advantage of the - new AntiAliasing functions. Requires creating inverse stack. - -- Command line processing. All tools should have similar command line - processing. This needs to be checked, and updated, if - necessary. - - * I have updated most of them to be consistent, but I might have - missed something. Needs to be checked. - -- PTcrop tries to read the entire image at once. With a huge image I - got a segfault from inside libtiff. It needs to be rewritten to read - only one line at a time (not critical for 3.0.0, but it would be nice). - -- PTroller runs _extremely_ slow. I need to find out why. (not - critical for 3.0.0) - -- PTtiff2psd. I fixed a major bug in the implementation of writing the - metadata. I suspect that there are still some "issues" regarding - this. I have also written a small top-down parser to verify the data - written. - ----------------------------------------------------------------------- - -panoinfo: - ----------------------------------------------------------------------- - -PTmender: - -- The Albers projection is ignoring the field-of-view and it is - computing a 360 degrees in all cases. - - -DESIRABLE: - -- PTmender is not properly calculating ROI for some images. In - particular (at least) circular fisheyes that cover the zenit or the - nadir. Currently these types of images require full size processing - (as opposed to cropped processing). - ----------------------------------------------------------------------- -PTtiff2psd: - -DESIRABLE: - -Create PSDs of one layer 8 and 16 bit images - -====================================================================== - -After 3.0.0: - -DESIRABLE FEATURES: - - - Output a text file with the names of the files processed and extra - information, such as size - - - If somebody wants full compatibility with PTstitcher, a new program - can be added that does all the work. It will be a "superset" of many - of the current pano tools. - ----------------------------------------------------------------------- -PTblender: - -DESIRABLE: - - - Feature: Create photoshop curves and maps for HSV colour - corrections. Probably not for 3.0.0 - ----------------------------------------------------------------------- -PTroller: - -DESIRABLE: - -- PTroller: Add the ability to stack and add composing - images (PTtiff2psd is able to do stacking and compositing) - ----------------------------------------------------------------------- - PTuncrop: - ----------------------------------------------------------------------- - PTcrop: - -DESIRABLE - -- It needs to be able to crop images as a "set" (that is, compute the - bounding rectangle of a group of images) not only as a single one. - -- Compute the inner rectangle with the largest area (not a priority) - - ----------------------------------------------------------------------- - -PTtiff2psd: - -DESIRABLE: - -Create PSDs of one layer 8 and 16 bit images - - ---------------------------------------------------------------------- -PToptimizer: - -* Ready for 3.0.0 - ----------------------------------------------------------------------- - - ----------------------------------------------------------------------- - LONGER TERM: - - * Allow tools to read their parameters from the PTstitcher script. - - * Add support to all the tools for 16 bit, and 32 bit images (it is - kind of mixed at this point) - ----------------------------------------------------------------------- -PTblender: - -- Pre-compute which images could actually overlap from their TIFF - offsets, adding only these to a linked list of pairs. Might as well - support cropped TIFFs where possible. This will really help people - who do >20 image multi-row sphericals (since the current algorithm - loops over all pixels in the image N^2 times). For such panos, it - may even be worth calling PTcrop (when it exists) first on the - uncropped images. - -- Replace the two inner nested loops in ReadHistogram with one loop - over the linked list of "possible match" images, and invert the - order of the loops: - - for (each row) { - read_row_from_images(row,&row_buffer); // careful with crop - for (each match in matching_images_list) { - if (row intersects both image boundaries) { - for (each pix in row) { - if pixel_include(row,pix,im1,im2,trim) - add_to_histogram(pix,match); - } - } - } - } - -- Factor out the code which decides whether to use a given pixel in - the histogram into a separate function (pixel_include() above), and - pass it an options structure which gives it what it needs to know - (the optional trim factors, etc., called 'trim' above). This is - also where separate mask data could be used, but the "graymask" - method currently employed may obviate that. - -- Simplify the actual histogram remapping and subsequent color - correction code: - - 1. Always match all three histograms, RGB. Impose "brightness only" - or other constraints on the mapping functions at the very end - (see below). No HSV computations are ever performed. - - 2. Use a single routine to compute a mapping function (table) from - histogram 1 (source) to histogram 2 (target). This routine will - simply: - - a. Form cumulative totals of the both histograms. - b. Create the 256 element floating point mapping function z - which maps between them (one for each of RGB). - - This function will be called many times, so needs to be short and - sweet. - - 3. Build a ragged array of length n_images, with each element - holding a linked list of all other images to which it matches, - keeping track of pixel overlap count, and omitting matches - without enough pixels in overlap. - - 3. Compute the floating point mapping functions z for all pairs in - the ragged array.. There is one z per pair for each of RBG. - - 4. "Anneal" the (potentially long list of) mapping functions z over - the entire image: - - a. For each image, compute a master mapping function m for the - image, from the overlapping pixel count-weighted average of - all the modified sub-functions to all neighbors. - - b. The modified sub-function z' to a neighbor will depend on - i) the mapping function between the two, z, and ii) the - master function m of the neighbor, as: - - z'=m^-1 z - - The inverse of a mapping function m is that function which, - when m is run through it, produces the unit vector - (0..255). In the first round, all master functions are set - to the unit vector (0..255), and z'=z. - - c. Repeatedly iterate over all images in this way until all - master mapping functions converge. Convergence can - progress non-uniformly (image by image); each image is - marked as converged once its master function converges. - - Note that a reference image is no longer needed... the average - best mapping to make all images compatible is automatically - developed (e.g. for a range of brightnesses, the "average" - brightness will be targeted). If a reference image is desired, - it is marked "converged" before the first round of annealing, and - everything proceeds in the same manner. - - 5. Normalize each image's annealed master mapping function, subject - to the (optional) user constraints: - - -t 1 (brightness only): m(r) = m(g) = m(b) (one average table). - -t 2 (color only): m(r) + m(g) + m(b) = I (unit vector) - - 6. Convert all normalized, annealed master mapping tables to byte, - by rounding, perhaps with some care taken to avoid banding caused - by large gaps. - - 7. Run each image's data through its master mapping table and write - out to output image. - -- No flattening (separate tool). - -- Add an optional debug switch to enable all that Debug.txt output - (just to stdout). ----------------------------------------------------------------------- - -GetROI - - Hello - I used ptmender to play with the projections. I use the SVN-source from - SF. I converted a equirectangular panorama to lambertazimuthal projection. - I had the problem that the resulting image-file often displays not the - whole projection. The reason for this problem seems to be the x_jump in - the getROI-function: - - Depending on the image size and because of the x_jumping getROI - calculates sometimes wrong left/right values. - - I could solve my problems by changing the line 504 in PTcommon.c from - x_jump = (y==0 || y==TrPtr->src->height) ? 1 : TrPtr->src->width/2; - into - x_jump = (y==0 || y==TrPtr->src->height || - abs(y - TrPtr->src->height/2)<=5) ? 1 : TrPtr->src->width/2; - - - Copied: trunk/libpano/TODO.org (from rev 1258, trunk/libpano/TODO) =================================================================== --- trunk/libpano/TODO.org (rev 0) +++ trunk/libpano/TODO.org 2010-03-29 03:31:51 UTC (rev 1259) @@ -0,0 +1,296 @@ + +This file documents the activities required before we release version +3.0.0 of the library. + +* TODO Very little testing has been done in 16 bit images. + + +* TODO Perhaps the most pressing issue is to create a good set of tests for + each of the tools. So far we only have tests for PTmender (and only 2). + +* Input formats + +** TODO Create tests for various input formats, particularly stereographic and equisolid. + +** TODO Equisolid + +- equisolid and Albert Equal Area are the same. + +- We need to correctly implement + +What we need: + +* PTmender. We need to test each of the projections, and each of the + different types of input projections. + +* All others: they desperately need a test. + +Issues with creating the tests: + +* tiffcmp is good for comparing just the data in tiffs. But once one + starts using the non-deterministic parts of panotools (such as + colour correction and feathering) it is impossible to use them. What + we need is some type of program that reads the data inside an image + and compares it to be "similar" within certain threshold. + +* we also need the equivalent of tiffcmp for PSDs, where we can + specify we want to compare the data, not the metadata. The small + parser I have written might be exactly what we need: ignore all + metadata. It might be necessary to compare the "layer and masks + block", but not the ColorModedDataBlock or the Metadata block. It + might not be as easy as it sounds, because offset might have + shifted. + +====================================================================== +KNOWN BUGS: + +---------------------------------------------------------------------- +All tools: + +- Update make file to include resource files for version info. + +- perspective.c, and remap.c are all using transForm + instead of the new transformEx. This is needed to take advantage of the + new AntiAliasing functions. Requires creating inverse stack. + +- Command line processing. All tools should have similar command line + processing. This needs to be checked, and updated, if + necessary. + + * I have updated most of them to be consistent, but I might have + missed something. Needs to be checked. + +- PTcrop tries to read the entire image at once. With a huge image I + got a segfault from inside libtiff. It needs to be rewritten to read + only one line at a time (not critical for 3.0.0, but it would be nice). + +- PTroller runs _extremely_ slow. I need to find out why. (not + critical for 3.0.0) + +- PTtiff2psd. I fixed a major bug in the implementation of writing the + metadata. I suspect that there are still some "issues" regarding + this. I have also written a small top-down parser to verify the data + written. + +---------------------------------------------------------------------- + +panoinfo: + +---------------------------------------------------------------------- + +PTmender: + +- The Albers projection is ignoring the field-of-view and it is + computing a 360 degrees in all cases. + + +DESIRABLE: + +- PTmender is not properly calculating ROI for some images. In + particular (at least) circular fisheyes that cover the zenit or the + nadir. Currently these types of images require full size processing + (as opposed to cropped processing). + +---------------------------------------------------------------------- +PTtiff2psd: + +DESIRABLE: + +Create PSDs of one layer 8 and 16 bit images + +====================================================================== + +After 3.0.0: + +DESIRABLE FEATURES: + + - Output a text file with the names of the files processed and extra + information, such as size + + - If somebody wants full compatibility with PTstitcher, a new program + can be added that does all the work. It will be a "superset" of many + of the current pano tools. + +---------------------------------------------------------------------- +PTblender: + +DESIRABLE: + + - Feature: Create photoshop curves and maps for HSV colour + corrections. Probably not for 3.0.0 + +---------------------------------------------------------------------- +PTroller: + +DESIRABLE: + +- PTroller: Add the ability to stack and add composing + images (PTtiff2psd is able to do stacking and compositing) + +---------------------------------------------------------------------- + PTuncrop: + +---------------------------------------------------------------------- + PTcrop: + +DESIRABLE + +- It needs to be able to crop images as a "set" (that is, compute the + bounding rectangle of a group of images) not only as a single one. + +- Compute the inner rectangle with the largest area (not a priority) + + +---------------------------------------------------------------------- + +PTtiff2psd: + +DESIRABLE: + +Create PSDs of one layer 8 and 16 bit images + + ---------------------------------------------------------------------- +PToptimizer: + +* Ready for 3.0.0 + +---------------------------------------------------------------------- + + +---------------------------------------------------------------------- + LONGER TERM: + + * Allow tools to read their parameters from the PTstitcher script. + + * Add support to all the tools for 16 bit, and 32 bit images (it is + kind of mixed at this point) + +---------------------------------------------------------------------- +PTblender: + +- Pre-compute which images could actually overlap from their TIFF + offsets, adding only these to a linked list of pairs. Might as well + support cropped TIFFs where possible. This will really help people + who do >20 image multi-row sphericals (since the current algorithm + loops over all pixels in the image N^2 times). For such panos, it + may even be worth calling PTcrop (when it exists) first on the + uncropped images. + +- Replace the two inner nested loops in ReadHistogram with one loop + over the linked list of "possible match" images, and invert the + order of the loops: + + for (each row) { + read_row_from_images(row,&row_buffer); // careful with crop + for (each match in matching_images_list) { + if (row intersects both image boundaries) { + for (each pix in row) { + if pixel_include(row,pix,im1,im2,trim) + add_to_histogram(pix,match); + } + } + } + } + +- Factor out the code which decides whether to use a given pixel in + the histogram into a separate function (pixel_include() above), and + pass it an options structure which gives it what it needs to know + (the optional trim factors, etc., called 'trim' above). This is + also where separate mask data could be used, but the "graymask" + method currently employed may obviate that. + +- Simplify the actual histogram remapping and subsequent color + correction code: + + 1. Always match all three histograms, RGB. Impose "brightness only" + or other constraints on the mapping functions at the very end + (see below). No HSV computations are ever performed. + + 2. Use a single routine to compute a mapping function (table) from + histogram 1 (source) to histogram 2 (target). This routine will + simply: + + a. Form cumulative totals of the both histograms. + b. Create the 256 element floating point mapping function z + which maps between them (one for each of RGB). + + This function will be called many times, so needs to be short and + sweet. + + 3. Build a ragged array of length n_images, with each element + holding a linked list of all other images to which it matches, + keeping track of pixel overlap count, and omitting matches + without enough pixels in overlap. + + 3. Compute the floating point mapping functions z for all pairs in + the ragged array.. There is one z per pair for each of RBG. + + 4. "Anneal" the (potentially long list of) mapping functions z over + the entire image: + + a. For each image, compute a master mapping function m for the + image, from the overlapping pixel count-weighted average of + all the modified sub-functions to all neighbors. + + b. The modified sub-function z' to a neighbor will depend on + i) the mapping function between the two, z, and ii) the + master function m of the neighbor, as: + + z'=m^-1 z + + The inverse of a mapping function m is that function which, + when m is run through it, produces the unit vector + (0..255). In the first round, all master functions are set + to the unit vector (0..255), and z'=z. + + c. Repeatedly iterate over all images in this way until all + master mapping functions converge. Convergence can + progress non-uniformly (image by image); each image is + marked as converged once its master function converges. + + Note that a reference image is no longer needed... the average + best mapping to make all images compatible is automatically + developed (e.g. for a range of brightnesses, the "average" + brightness will be targeted). If a reference image is desired, + it is marked "converged" before the first round of annealing, and + everything proceeds in the same manner. + + 5. Normalize each image's annealed master mapping function, subject + to the (optional) user constraints: + + -t 1 (brightness only): m(r) = m(g) = m(b) (one average table). + -t 2 (color only): m(r) + m(g) + m(b) = I (unit vector) + + 6. Convert all normalized, annealed master mapping tables to byte, + by rounding, perhaps with some care taken to avoid banding caused + by large gaps. + + 7. Run each image's data through its master mapping table and write + out to output image. + +- No flattening (separate tool). + +- Add an optional debug switch to enable all that Debug.txt output + (just to stdout). +---------------------------------------------------------------------- + +GetROI + + Hello + I used ptmender to play with the projections. I use the SVN-source from + SF. I converted a equirectangular panorama to lambertazimuthal projection. + I had the problem that the resulting image-file often displays not the + whole projection. The reason for this problem seems to be the x_jump in + the getROI-function: + + Depending on the image size and because of the x_jumping getROI + calculates sometimes wrong left/right values. + + I could solve my problems by changing the line 504 in PTcommon.c from + x_jump = (y==0 || y==TrPtr->src->height) ? 1 : TrPtr->src->width/2; + into + x_jump = (y==0 || y==TrPtr->src->height || + abs(y - TrPtr->src->height/2)<=5) ? 1 : TrPtr->src->width/2; + + + Modified: trunk/libpano/adjust.c =================================================================== --- trunk/libpano/adjust.c 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/adjust.c 2010-03-29 03:31:51 UTC (rev 1259) @@ -790,6 +790,7 @@ // calculate final scaling factor, that reverses the mp->distance // scaling and applies the required output scaling factor + printf("im format %d\n", im->format); switch (im->format) { case _rectilinear: @@ -864,6 +865,25 @@ i = 0; + + // Building the stack + // + // - Convert from panorama projection to equirectangular + // - Rotate horizontally + // - Convert to spherical from equirectangular + // - Apply perspective correction (pitch and roll) in spherical coordinates + // - Convert to image format (rectilinear, pano, equirectangular) + // - Scale output image + // - Do radial correction + // - Do tilt + // - Do vertical shift + // - Do horizontal shift + // - Do shear + + + ////////////////////////////////////////////////////////////////////// + // Convert from output projection to spherical coordinates + // if(pn->format == _rectilinear) // rectilinear panorama { SetDesc(stack[i], erect_rect, &(mp->distance) ); i++; // Convert rectilinear to equirect @@ -874,6 +894,7 @@ } else if(pn->format == _fisheye_circ || pn->format == _fisheye_ff) { + // the sphere coordinates are actually equivalent to the equidistant fisheye projection SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert fisheye to equirect } else if(pn->format == _equisolid) @@ -950,9 +971,11 @@ else if(pn->format == _equirectangular) { // no conversion needed - } else { - PrintError("Projection type %d not supported, using equirectangular", pn->format); - } + } + else + { + PrintError("Projection type %d not supported. Assuming equirectangular", pn->format); + } if (im->cP.trans) { SetDesc(stack[i], plane_transfer_to_camera, mp); i++; @@ -962,21 +985,55 @@ SetDesc( stack[i], sphere_tp_erect, &(mp->distance) ); i++; // Convert spherical image to equirect. SetDesc( stack[i], persp_sphere, mp->perspect ); i++; // Perspective Control spherical Image + ////////////////////////////////////////////////////////////////////// + // Convert from spherical coordinates to input projection + // if(im->format == _rectilinear) // rectilinear image { - SetDesc(stack[i], rect_sphere_tp, &(mp->distance) ); i++; // Convert rectilinear to spherical + SetDesc(stack[i], rect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to rectilinear } else if(im->format == _panorama) // pamoramic image { - SetDesc(stack[i], pano_sphere_tp, &(mp->distance) ); i++; // Convert panoramic to spherical + SetDesc(stack[i], pano_sphere_tp, &(mp->distance) ); i++; // Convert spherical to pano } else if(im->format == _equirectangular) // equirectangular image { - SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert equirectangular to spherical + SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to equirect } + else if (im->format == _fisheye_circ || im->format == _fisheye_ff) + { + ; // no conversion needed. It is already in spherical coordinates + } + else if (im->format == _mirror) + { + SetDesc(stack[i], mirror_sphere_tp, &(mp->distance) ); i++; // Convert spherical to mirror + } + else if (im->format == _stereographic) + { + SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to equirectangular + SetDesc(stack[i], stereographic_erect, &(mp->distance) ); i++; // Convert equirectangular to stereographic + } + else if (im->format == _orthographic) + { + SetDesc(stack[i], orthographic_sphere_tp, &(mp->distance) ); i++; // Convert spherical to orthographic + } + else if (im->format == _equisolid) + { + SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to equirectangular + SetDesc(stack[i], lambertazimuthal_erect, &(mp->distance) ); i++; // Convert equirectangular to stereographic + } + else + { + PrintError("Invalid input projection %d. Assumed fisheye.", im->format); + } + SetDesc( stack[i], resize, mp->scale ); i++; // Scale image + ////////////////////////////////////////////////////////////////////// + // Apply lens corrections + // + if( im->cP.radial ) { switch( im->cP.correction_mode & 3 ) @@ -1065,7 +1122,7 @@ // Set inverse Makeparameters depending on adjustprefs, color and source image - +// This code is executed when optimization void SetInvMakeParams( struct fDesc *stack, struct MakeParams *mp, Image *im , Image *pn, int color ) { @@ -1276,6 +1333,9 @@ } SetDesc( stack[i], resize, mp->scale ); i++; // Scale image + + // printf("values %d %d\n", i, im->format); + if(im->format == _rectilinear) // rectilinear image { @@ -1291,11 +1351,14 @@ } else if (im->format == _mirror) // Mirror image { -//todo SetDesc(stack[i], sphere_tp_mirror, &(mp->distance) ); i++; // Convert mirror to spherical + SetDesc(stack[i], sphere_tp_mirror, &(mp->distance) ); i++; // Convert mirror to spherical } else if (im->format == _equisolid) // Fisheye equisolid image { - SetDesc(stack[i], sphere_tp_equisolid, &(mp->distance) ); i++; // Convert equisolid to spherical + + SetDesc(stack[i], erect_lambertazimuthal, &(mp->distance) ); i++; // Convert lambert to equirectangular + SetDesc(stack[i], sphere_tp_erect, &(mp->distance) ); i++; // Convert equirectangular to spherical + //SetDesc(stack[i], sphere_tp_equisolid, &(mp->distance) ); i++; // Convert equisolid to spherical } else if (im->format == _orthographic) // Fisheye orthographic image { @@ -1303,10 +1366,11 @@ } else if (im->format == _stereographic) // Fisheye orthographic image { - //SetDesc(stack[i], sphere_tp_stereographic, &(mp->distance) ); i++; // Convert stereographic to spherical + SetDesc(stack[i], erect_stereographic, &(mp->distance) ); i++; // Convert orthographic to spherical + SetDesc(stack[i], sphere_tp_erect, &(mp->distance) ); i++; // Convert equirectangular to spherical } - + // printf("values %d %d\n", i, im->format); SetDesc( stack[i], persp_sphere, mp->perspect ); i++; // Perspective Control spherical Image SetDesc( stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical image to equirect. SetDesc( stack[i], rotate_erect, mp->rot ); i++; // Rotate equirect. image horizontally @@ -2499,8 +2563,11 @@ }else{ optInfo->im[i].cP.radial_params[0][3] = optInfo->im[k-2].cP.radial_params[0][3];} } if( (k = optInfo->opt[i].b) > 0 ){ - if( k == 1 ){ optInfo->im[i].cP.radial_params[0][2] = x[j++] / C_FACTOR; - }else{ optInfo->im[i].cP.radial_params[0][2] = optInfo->im[k-2].cP.radial_params[0][2];} + if( k == 1 ){ + optInfo->im[i].cP.radial_params[0][2] = x[j++] / C_FACTOR; + }else{ + optInfo->im[i].cP.radial_params[0][2] = optInfo->im[k-2].cP.radial_params[0][2]; + } } if( (k = optInfo->opt[i].c) > 0 ){ if( k == 1 ){ optInfo->im[i].cP.radial_params[0][1] = x[j++] / C_FACTOR; Modified: trunk/libpano/filter.h =================================================================== --- trunk/libpano/filter.h 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/filter.h 2010-03-29 03:31:51 UTC (rev 1259) @@ -909,8 +909,8 @@ int sphere_tp_pano ( double x_dest,double y_dest, double* x_src, double* y_src, void* params ); int pano_sphere_tp ( double x_dest,double y_dest, double* x_src, double* y_src, void* params ); -//int sphere_tp_mirror( double x_dest,double y_dest, double* x_src, double* y_src, void* params); -//int mirror_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params); +int sphere_tp_mirror( double x_dest,double y_dest, double* x_src, double* y_src, void* params); +int mirror_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params); int sphere_tp_equisolid( double x_dest,double y_dest, double* x_src, double* y_src, void* params); int equisolid_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params); int sphere_tp_orthographic( double x_dest,double y_dest, double* x_src, double* y_src, void* params); Modified: trunk/libpano/math.c =================================================================== --- trunk/libpano/math.c 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/math.c 2010-03-29 03:31:51 UTC (rev 1259) @@ -1754,14 +1754,7 @@ // params: double distanceparam, double b register double phi, theta; -#if 0 phi = - x_dest / ( var0 * PI / 2.0); - theta = - ( y_dest + var1 ) / (var0 * PI / 2.0) ; - - *x_src = var0 * theta * cos( phi ); - *y_src = var0 * theta * sin( phi ); -#endif - phi = - x_dest / ( var0 * PI / 2.0); theta = - ( y_dest + var1 ) / ( PI / 2.0) ; *x_src = theta * cos( phi ); @@ -1790,19 +1783,7 @@ phi += PI; } -#if 0 - v[2] = *((double*)params) * sin( theta ) * cos( phi ); // x' -> z - v[0] = *((double*)params) * sin( theta ) * sin( phi ); // y' -> x - v[1] = *((double*)params) * cos( theta ); // z' -> y - - theta = atan2( sqrt( v[0]*v[0] + v[1]*v[1] ) , v[2] ); - - phi = atan2( v[1], v[0] ); - - *x_src = *((double*)params) * theta * cos( phi ); - *y_src = *((double*)params) * theta * sin( phi ); -#endif s = sin( theta ); v[0] = s * sin( phi ); // y' -> x v[1] = cos( theta ); // z' -> y @@ -2386,6 +2367,7 @@ else *y_src = *((double*)params) * (-theta - PI /2.0); #endif + r = sqrt( x_dest * x_dest + y_dest * y_dest ); theta = r / distanceparam; if(theta == 0.0) @@ -2471,17 +2453,42 @@ return 1; } -/* -int sphere_tp_mirror( double x_dest,double y_dest, double* x_src, double* y_src, void* params); +int sphere_tp_mirror( double x_dest,double y_dest, double* x_src, double* y_src, void* params) { + register double c; + register double normalizedX, normalizedY; + register double azi; + + normalizedX = x_dest/ distanceparam; + normalizedY = y_dest/ distanceparam; + + c = 2 * asin(hypot(normalizedX, normalizedY)); + azi = atan2( y_dest , x_dest ); + + *x_src = distanceparam * c * cos(azi); + *y_src = distanceparam * c * sin(azi); + return 1; } -int mirror_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params); +int mirror_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params) { + + register double c; + register double normalizedX, normalizedY; + register double azi; + normalizedY = y_dest/ distanceparam; + normalizedX = x_dest/ distanceparam; + + + c = hypot(normalizedX, normalizedY); + azi = atan2( y_dest , x_dest ); + + *x_src = distanceparam * sin(c/2) * cos(azi); + *y_src = distanceparam * sin(c/2) * sin(azi); + return 1; } -*/ int sphere_tp_equisolid( double x_dest,double y_dest, double* x_src, double* y_src, void* params) { @@ -2526,9 +2533,11 @@ theta = 1.0 * asin( rho/(1.0*((double*)params)[0]) ); phi = atan2( y_dest , x_dest ); + *x_src = ((double*)params)[0] * theta * cos( phi ); *y_src = ((double*)params)[0] * theta * sin( phi ); + return 1; } Modified: trunk/libpano/panorama.h =================================================================== --- trunk/libpano/panorama.h 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/panorama.h 2010-03-29 03:31:51 UTC (rev 1259) @@ -323,7 +323,7 @@ IMAGE_FORMAT_MIRROR = 7, IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC = 8, IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC = 10, - IMAGE_FORMAT_FISHEYE_EQUISOLID = 19, + IMAGE_FORMAT_FISHEYE_EQUISOLID = 21, }; #define IMAGE_FORMAT_COUNT 9 Modified: trunk/libpano/parser.c =================================================================== --- trunk/libpano/parser.c 2010-03-25 00:23:09 UTC (rev 1258) +++ trunk/libpano/parser.c 2010-03-29 03:31:51 UTC (rev 1259) @@ -283,7 +283,8 @@ case IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC: im->format = _orthographic; break; case IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC: im->format = _stereographic; break; case IMAGE_FORMAT_FISHEYE_EQUISOLID: im->format = _equisolid; break; - default: PrintError("Syntax error in script: Line %d", lineNum); + break; + default: PrintError("Syntax error in script. Projection not known: Line %d", lineNum); goto fail; break; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2010-04-24 22:35:24
|
Revision: 1271 http://panotools.svn.sourceforge.net/panotools/?rev=1271&view=rev Author: brunopostle Date: 2010-04-24 22:35:18 +0000 (Sat, 24 Apr 2010) Log Message: ----------- Add some files to tarball Modified Paths: -------------- trunk/libpano/Makefile.am trunk/libpano/tests/Makefile.am trunk/libpano/tests/simpleTiff16/Makefile.am Modified: trunk/libpano/Makefile.am =================================================================== --- trunk/libpano/Makefile.am 2010-04-18 19:37:49 UTC (rev 1270) +++ trunk/libpano/Makefile.am 2010-04-24 22:35:18 UTC (rev 1271) @@ -108,7 +108,7 @@ rm -rf `find $(distdir) -name .cvsignore` EXTRA_DIST = gpl.txt README.linux README.windows \ - makefile.win32 \ + makefile.win32 TODO.org \ CMakeLists.txt \ ChangeLog.svn \ bootstrap filter.r libpano13.def pano13.rc \ Modified: trunk/libpano/tests/Makefile.am =================================================================== --- trunk/libpano/tests/Makefile.am 2010-04-18 19:37:49 UTC (rev 1270) +++ trunk/libpano/tests/Makefile.am 2010-04-24 22:35:18 UTC (rev 1271) @@ -1,5 +1,5 @@ EXTRA_DIST = panoAutomateTest.pl ChangeLog \ - CMakeLists.txt + CMakeLists.txt compareImages.pl README.TXT SUBDIRS = simpleStitch simpleTiff16 Modified: trunk/libpano/tests/simpleTiff16/Makefile.am =================================================================== --- trunk/libpano/tests/simpleTiff16/Makefile.am 2010-04-18 19:37:49 UTC (rev 1270) +++ trunk/libpano/tests/simpleTiff16/Makefile.am 2010-04-24 22:35:18 UTC (rev 1271) @@ -1,6 +1,6 @@ EXTRA_DIST = 060520_3398.TIF \ CMakeLists.txt \ - ChangeLog simple.txt + ChangeLog simple.txt README.TXT SUBDIRS = reference This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2010-04-27 16:50:08
|
Revision: 1273 http://panotools.svn.sourceforge.net/panotools/?rev=1273&view=rev Author: dmg Date: 2010-04-27 16:50:02 +0000 (Tue, 27 Apr 2010) Log Message: ----------- 2010-04-27 dmg <dm...@uv...> * jpeg.c: Removed dependency from file which was braking build for some Windows people. The change seems to be harmless under Linux. Reported by Volker Grabsch. Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/jpeg.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2010-04-24 22:42:27 UTC (rev 1272) +++ trunk/libpano/ChangeLog 2010-04-27 16:50:02 UTC (rev 1273) @@ -1,3 +1,9 @@ +2010-04-27 dmg <dm...@uv...> + + * jpeg.c: Removed dependency from file which was braking build + for some Windows people. The change seems to be harmless under + Linux. Reported by Volker Grabsch. + 2010-03-28 dmg <dm...@uv...> * math.c, adjust.c, parser.c: enabled other input projections, in Modified: trunk/libpano/jpeg.c =================================================================== --- trunk/libpano/jpeg.c 2010-04-24 22:42:27 UTC (rev 1272) +++ trunk/libpano/jpeg.c 2010-04-27 16:50:02 UTC (rev 1273) @@ -1,5 +1,5 @@ #include <stdio.h> -#include <jpeglib.h> +//#include <jpeglib.h> //#define __NO_SYSTEM__ #include "filter.h" #include "metadata.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2010-07-06 23:23:53
|
Revision: 1283 http://panotools.svn.sourceforge.net/panotools/?rev=1283&view=rev Author: brunopostle Date: 2010-07-06 23:23:47 +0000 (Tue, 06 Jul 2010) Log Message: ----------- Add some visual c related files to the tarball (Aron Helser) Modified Paths: -------------- trunk/libpano/Makefile.am trunk/libpano/tools/Makefile.am Modified: trunk/libpano/Makefile.am =================================================================== --- trunk/libpano/Makefile.am 2010-07-06 01:24:21 UTC (rev 1282) +++ trunk/libpano/Makefile.am 2010-07-06 23:23:47 UTC (rev 1283) @@ -114,6 +114,7 @@ bootstrap filter.r libpano13.def pano13.rc \ seamer_.c sys_X11.c sys_win.c bmp.c shell_mac.c \ sys_mac.c ppm.c sys_ansi.c ppm.c ZComb.h adjust.h \ + libpano.sln LocalDefs.vsprops \ pano13vc.def libpano.vcproj PanoTools.pbproj.tgz MAINTAINERCLEANFILES = \ Modified: trunk/libpano/tools/Makefile.am =================================================================== --- trunk/libpano/tools/Makefile.am 2010-07-06 01:24:21 UTC (rev 1282) +++ trunk/libpano/tools/Makefile.am 2010-07-06 23:23:47 UTC (rev 1283) @@ -82,6 +82,8 @@ EXTRA_DIST = README.PTmender \ compat_win32/getopt.h compat_win32/getopt.c compat_win32/dirent.h \ + PTAInterpolate.vcproj PTblender.vcproj PTcrop.vcproj PTinfo.vcproj PTmasker.vcproj \ + PTmender.vcproj PTOptimizer.vcproj PTroller.vcproj PTtiff2psd.vcproj PTtiffdump.vcproj PTuncrop.vcproj \ CMakeLists.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2010-07-24 21:23:56
|
Revision: 1288 http://panotools.svn.sourceforge.net/panotools/?rev=1288&view=rev Author: brunopostle Date: 2010-07-24 21:23:50 +0000 (Sat, 24 Jul 2010) Log Message: ----------- Fixes for building on Solaris (Robert Campbell) Note this is for autotools not cmake Modified Paths: -------------- trunk/libpano/Makefile.am trunk/libpano/configure.ac trunk/libpano/tools/Makefile.am Modified: trunk/libpano/Makefile.am =================================================================== --- trunk/libpano/Makefile.am 2010-07-20 02:18:12 UTC (rev 1287) +++ trunk/libpano/Makefile.am 2010-07-24 21:23:50 UTC (rev 1288) @@ -81,13 +81,23 @@ endif -AM_CPPFLAGS = $(JAVA_FLAGS) $(JPEG_FLAGS) $(PNG_FLAGS) $(TIFF_FLAGS) $(ZLIB_FLAGS) $(WIN_DEFS) $(LIN_DEFS) $(DAR_DEFS) $(ENDIAN_FLAG) +if HAVE_SOLARIS +SOL_SRC = sys_ansi.c ppm.c +SOL_DEFS = -D__Ansi__=1 +SOL_LDFS = -version-info 2:0:0 -lxnet -lm -lsunmath +install-exec-hook: + @true + +endif + +AM_CPPFLAGS = $(JAVA_FLAGS) $(JPEG_FLAGS) $(PNG_FLAGS) $(TIFF_FLAGS) $(ZLIB_FLAGS) $(WIN_DEFS) $(LIN_DEFS) $(DAR_DEFS) $(SOL_DEFS) $(ENDIAN_FLAG) + lib_LTLIBRARIES = libpano13.la -libpano13_la_SOURCES = $(STD_SRC) $(JAVA_SRC) $(X11_SRC) $(WIN_SRC) $(MAC_SRC) $(LIN_SRC) $(DAR_SRC) +libpano13_la_SOURCES = $(STD_SRC) $(JAVA_SRC) $(X11_SRC) $(WIN_SRC) $(MAC_SRC) $(LIN_SRC) $(DAR_SRC) $(SOL_SRC) libpano13_la_LIBADD = $(LIB_JPEG) $(LIB_PNG) $(LIB_TIFF) $(LIB_ZLIB) @PANO_WIN32_RESOURCE@ -libpano13_la_LDFLAGS = $(LIN_LDFS) $(WIN_LDFS) $(DAR_LDFS) +libpano13_la_LDFLAGS = $(LIN_LDFS) $(WIN_LDFS) $(DAR_LDFS) $(SOL_LDFS) libpano13_la_DEPENDENCIES = @PANO_WIN32_RESOURCE@ pkginclude_HEADERS = $(STD_HDR) $(TOOL_HDR) Modified: trunk/libpano/configure.ac =================================================================== --- trunk/libpano/configure.ac 2010-07-20 02:18:12 UTC (rev 1287) +++ trunk/libpano/configure.ac 2010-07-24 21:23:50 UTC (rev 1288) @@ -50,6 +50,11 @@ HSYS=darwin HCPU="${host_cpu}" ;; + *solaris*) + PANO_WIN32_RESOURCE= + HSYS=solaris + HCPU="${host_cpu}" + ;; *mingw32*) PANO_WIN32_RESOURCE=pano13.lo HSYS=mingw32 @@ -72,6 +77,7 @@ esac AM_CONDITIONAL(HAVE_DARWIN, test "${HSYS}" = "darwin") +AM_CONDITIONAL(HAVE_SOLARIS, test "${HSYS}" = "solaris") AM_CONDITIONAL(HAVE_LINUX, test "${HSYS}" = "linux") AM_CONDITIONAL(HAVE_MAC, test "${HSYS}" = "classic") AM_CONDITIONAL(HAVE_MINGW, test "${HSYS}" = "mingw32") Modified: trunk/libpano/tools/Makefile.am =================================================================== --- trunk/libpano/tools/Makefile.am 2010-07-20 02:18:12 UTC (rev 1287) +++ trunk/libpano/tools/Makefile.am 2010-07-24 21:23:50 UTC (rev 1288) @@ -32,7 +32,15 @@ DAR_DEFS = endif -AM_CPPFLAGS = $(JAVA_FLAGS) $(LIN_DEFS) $(DAR_DEFS) $(TIFF_FLAGS) $(JPEG_FLAGS) +if HAVE_SOLARIS +SOL_SRC = panoinfo_unix.c +SOL_DEFS = -D__Ansi__=1 +else +SOL_SRC = +SOL_DEFS = +endif + +AM_CPPFLAGS = $(JAVA_FLAGS) $(LIN_DEFS) $(DAR_DEFS) $(SOL_DEFS) $(TIFF_FLAGS) $(JPEG_FLAGS) AM_LDFLAGS = -L${top_builddir} # PTAInterpolate can only be compiled with ptpicker.h, which in turn depends on java @@ -77,7 +85,7 @@ PToptimizer_SOURCES = PToptimizer.c PToptimizer_LDADD = -l${PANOLIB} -panoinfo_SOURCES = $(WIN_SRC) $(LIN_SRC) $(DAR_SRC) +panoinfo_SOURCES = $(WIN_SRC) $(LIN_SRC) $(DAR_SRC) $(SOL_SRC) panoinfo_LDADD = -l${PANOLIB} EXTRA_DIST = README.PTmender \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2010-10-06 19:31:16
|
Revision: 1303 http://panotools.svn.sourceforge.net/panotools/?rev=1303&view=rev Author: brunopostle Date: 2010-10-06 19:31:06 +0000 (Wed, 06 Oct 2010) Log Message: ----------- Fix powerpc command-line tools endless loop #3082342, debian #599092 (Andreas Metzler) Modified Paths: -------------- trunk/libpano/PTcommon.c trunk/libpano/tools/PTblender.c trunk/libpano/tools/PTinfo.c trunk/libpano/tools/PTmasker.c trunk/libpano/tools/PTmender.c trunk/libpano/tools/PTroller.c trunk/libpano/tools/PTtiff2psd.c trunk/libpano/tools/PTtiffdump.c Modified: trunk/libpano/PTcommon.c =================================================================== --- trunk/libpano/PTcommon.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/PTcommon.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -1798,7 +1798,7 @@ int panoCroppingMain(int argc,char *argv[], int operation, char *version, char *usage, char *defaultPrefix) { - char opt; + int opt; int ptForceProcessing = 0; int filesCount; int retVal; Modified: trunk/libpano/tools/PTblender.c =================================================================== --- trunk/libpano/tools/PTblender.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTblender.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -70,7 +70,7 @@ int main(int argc,char *argv[]) { int returnValue = -1; - char opt; + int opt; int referenceImage = 0; fullPath *ptrInputFiles = NULL; fullPath *ptrOutputFiles = NULL; Modified: trunk/libpano/tools/PTinfo.c =================================================================== --- trunk/libpano/tools/PTinfo.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTinfo.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -56,7 +56,7 @@ int main(int argc,char *argv[]) { - char opt; + int opt; fullPath *ptrInputFiles = NULL; int i; int filesCount = 0; Modified: trunk/libpano/tools/PTmasker.c =================================================================== --- trunk/libpano/tools/PTmasker.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTmasker.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -83,7 +83,7 @@ int main(int argc,char *argv[]) { int returnValue = -1; - char opt; + int opt; fullPath *ptrInputFiles = NULL; fullPath *ptrOutputFiles = NULL; Modified: trunk/libpano/tools/PTmender.c =================================================================== --- trunk/libpano/tools/PTmender.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTmender.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -257,7 +257,7 @@ fullPath scriptFileName; fullPath panoFileName; - char opt; + int opt; char *currentParm; ptrImageFileNames = NULL; Modified: trunk/libpano/tools/PTroller.c =================================================================== --- trunk/libpano/tools/PTroller.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTroller.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -62,7 +62,7 @@ int main(int argc,char *argv[]) { int returnValue = -1; - char opt; + int opt; fullPath *ptrInputFiles = NULL; fullPath *ptrOutputFiles = NULL; Modified: trunk/libpano/tools/PTtiff2psd.c =================================================================== --- trunk/libpano/tools/PTtiff2psd.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTtiff2psd.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -68,7 +68,7 @@ int main(int argc,char *argv[]) { - char opt; + int opt; char *endPtr; fullPath *ptrInputFiles; int counter; Modified: trunk/libpano/tools/PTtiffdump.c =================================================================== --- trunk/libpano/tools/PTtiffdump.c 2010-09-10 23:00:21 UTC (rev 1302) +++ trunk/libpano/tools/PTtiffdump.c 2010-10-06 19:31:06 UTC (rev 1303) @@ -74,7 +74,7 @@ int main(int argc,char *argv[]) { - char opt; + int opt; int overwrite = 0; int filesCount; char *inputFile, *otherFile; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2011-01-05 12:20:34
|
Revision: 1306 http://panotools.svn.sourceforge.net/panotools/?rev=1306&view=rev Author: dmg Date: 2011-01-05 12:20:27 +0000 (Wed, 05 Jan 2011) Log Message: ----------- added thoby projection for Nikkor 10.5 Modified Paths: -------------- trunk/libpano/CMakeLists.txt trunk/libpano/ChangeLog trunk/libpano/PTcommon.c trunk/libpano/adjust.c trunk/libpano/doc/stitch.txt trunk/libpano/filter.h trunk/libpano/math.c trunk/libpano/panorama.h trunk/libpano/parser.c Added Paths: ----------- trunk/libpano/debian/ trunk/libpano/debian/README.source trunk/libpano/debian/TODO trunk/libpano/debian/changelog trunk/libpano/debian/compat trunk/libpano/debian/control trunk/libpano/debian/copyright trunk/libpano/debian/libpano13-2.install trunk/libpano/debian/libpano13-bin.docs trunk/libpano/debian/libpano13-bin.install trunk/libpano/debian/libpano13-dev.install trunk/libpano/debian/patches/ trunk/libpano/debian/patches/10_workaround_libtool_link_as_needed_bug trunk/libpano/debian/patches/20_bumpsoname.diff trunk/libpano/debian/patches/series trunk/libpano/debian/rules trunk/libpano/debian/watch trunk/libpano/dump.c Modified: trunk/libpano/CMakeLists.txt =================================================================== --- trunk/libpano/CMakeLists.txt 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/CMakeLists.txt 2011-01-05 12:20:27 UTC (rev 1306) @@ -177,6 +177,7 @@ bmp.c ColourBrightness.c correct.c + dump.c fftn.c file.c filter.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/ChangeLog 2011-01-05 12:20:27 UTC (rev 1306) @@ -1,3 +1,14 @@ +2011-01-05 <dm...@uv...> + + * doc/stitch.txt: updated for new projection. + + * dump.c, dump.f: Functions to dump the contents of internal + variables (for debugging purposes) + + * math.c (thoby_sphere_tp, sphere_tp_thoby), adjust.c, parser.c, + filter.h, panorama.h: implemented Michel Thoby projection for + Nikkor 10.5, which is called Thoby Projection, and number 20. + 2010-04-27 dmg <dm...@uv...> * jpeg.c: Removed dependency from file which was braking build Modified: trunk/libpano/PTcommon.c =================================================================== --- trunk/libpano/PTcommon.c 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/PTcommon.c 2011-01-05 12:20:27 UTC (rev 1306) @@ -533,6 +533,7 @@ newX = (int)(Dx2 + 0.5 + sw2); newY = (int)(Dy2 + 0.5 + sh2); + #ifdef XXXXX if (newX != x || newY != y) { printf(" X,Y: %7.1f,%7.1f (%5d,%5d) -> OUT: %9.1f, %9.1f inv -> %9.1f %9.1f (%5d, %5d) -- error %5d,%5d\n", x_d, y_d, @@ -544,6 +545,7 @@ newY - y ); } + #endif // If this assertion fails, there is an error. The question is, how big? See the values above. // it is possible that the error is so small that it does not matter. /* Modified: trunk/libpano/adjust.c =================================================================== --- trunk/libpano/adjust.c 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/adjust.c 2011-01-05 12:20:27 UTC (rev 1306) @@ -774,6 +774,9 @@ case _orthographic: mp->distance = (double) pn->width / (2.0 * sin(b/2.0)); break; + case _thoby: + mp->distance = (double) pn->width / (2.0 * THOBY_K1_PARM * sin(b * THOBY_K2_PARM/2.0)); + break; case _biplane: biplane_distance(pn->width,b,mp); break; @@ -812,6 +815,9 @@ case _orthographic: mp->scale[0] = (double) image_selection_width / (2.0 * sin(a/2.0)) / mp->distance; break; + case _thoby: + mp->scale[0] = (double) image_selection_width / (2.0 * THOBY_K1_PARM * sin(a * THOBY_K2_PARM /2.0)) / mp->distance; + break; case _stereographic: mp->scale[0] = (double) image_selection_width / (4.0 * tan(a/4.0)) / mp->distance; break; @@ -912,6 +918,11 @@ SetDesc(stack[i], sphere_tp_orthographic, &(mp->distance) ); i++; // Convert fisheye orthographic to spherical SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to equirect } + else if(pn->format == _thoby) + { + SetDesc(stack[i], sphere_tp_thoby, &(mp->distance) ); i++; // Convert thoby to spherical + SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to equirect + } else if(pn->format == _mercator) { SetDesc(stack[i], erect_mercator, &(mp->distance) ); i++; // Convert mercator to equirect @@ -1017,6 +1028,10 @@ { SetDesc(stack[i], orthographic_sphere_tp, &(mp->distance) ); i++; // Convert spherical to orthographic } + else if (im->format == _thoby) + { + SetDesc(stack[i], thoby_sphere_tp, &(mp->distance) ); i++; // Convert spherical to thoby + } else if (im->format == _equisolid) { SetDesc(stack[i], erect_sphere_tp, &(mp->distance) ); i++; // Convert spherical to equirectangular @@ -1207,6 +1222,9 @@ case _orthographic: mp->distance = (double) pn->width / (2.0 * sin(b/2.0)); break; + case _thoby: + mp->distance = (double) pn->width / (2.0 * THOBY_K1_PARM * sin(b * THOBY_K2_PARM/2.0)); + break; case _biplane: biplane_distance(pn->width,b,mp); break; @@ -1243,6 +1261,9 @@ case _orthographic: mp->scale[0] = (double) im->width / (2.0 * sin(a/2.0)) / mp->distance; break; + case _thoby: + mp->scale[0] = (double) im->width / (2.0 * THOBY_K1_PARM * sin(a * THOBY_K2_PARM/2.0)) / mp->distance; + break; case _stereographic: mp->scale[0] = (double) im->width / (4.0 * tan(a/4.0)) / mp->distance; break; @@ -1364,9 +1385,13 @@ { SetDesc(stack[i], sphere_tp_orthographic, &(mp->distance) ); i++; // Convert orthographic to spherical } - else if (im->format == _stereographic) // Fisheye orthographic image + else if (im->format == _thoby) // thoby projected image { - SetDesc(stack[i], erect_stereographic, &(mp->distance) ); i++; // Convert orthographic to spherical + SetDesc(stack[i], sphere_tp_thoby, &(mp->distance) ); i++; // Convert thoby to spherical + } + else if (im->format == _stereographic) // Fisheye stereographic image + { + SetDesc(stack[i], erect_stereographic, &(mp->distance) ); i++; // Convert stereographic to spherical SetDesc(stack[i], sphere_tp_erect, &(mp->distance) ); i++; // Convert equirectangular to spherical } @@ -1455,6 +1480,11 @@ SetDesc(stack[i], sphere_tp_erect, &(mp->distance) ); i++; // Convert equirectangular to spherical SetDesc(stack[i], orthographic_sphere_tp, &(mp->distance) ); i++; // Convert spherical to orthographic } + else if(pn->format == _thoby ) + { + SetDesc(stack[i], sphere_tp_erect, &(mp->distance) ); i++; // Convert equirectangular to spherical + SetDesc(stack[i], thoby_sphere_tp, &(mp->distance) ); i++; // Convert spherical to thoby + } else if(pn->format == _biplane) { SetDesc(stack[i], biplane_erect, mp ); i++; // Convert equirectangular to biplane @@ -2972,7 +3002,7 @@ g->im[i].format != _fisheye_circ && g->im[i].format != _fisheye_ff && g->im[i].format != _equirectangular && g->im[i].format != _orthographic && g->im[i].format != _mirror && g->im[i].format != _stereographic && - g->im[i].format != _equisolid) + g->im[i].format != _equisolid && g->im[i].format != _thoby) err = 7; } Added: trunk/libpano/debian/README.source =================================================================== --- trunk/libpano/debian/README.source (rev 0) +++ trunk/libpano/debian/README.source 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,4 @@ +This debian package is using cdbs with quilt as patch management system. + +debian/rules patch produces a patched source directory, see quilt's +documentation for how to manage/add patches. Added: trunk/libpano/debian/TODO =================================================================== --- trunk/libpano/debian/TODO (rev 0) +++ trunk/libpano/debian/TODO 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,13 @@ +TODO for libpano13: +------------------- + + * Check whether relibtoolizing would help getting rid of the rpath + set on some architectures, instead of using chrpath. + * [Upstream#1861166] Needed LIBS="-lm" option for ./configure. + * [BTS#347650] Additional linking even with -Wl,--as-needed because + of libtool's reordering its arguments. Keep an eye on this bug so + as to drop the workaround once the bug is closed (if ever): + - debian/patches/10_workaround_libtool_link_as_needed_bug. + * Eventually move GPLv2+ to GPL-2+. + + -- Cyril Brulebois <cyr...@en...> Tue, 25 Dec 2007 23:02:45 +0100 Added: trunk/libpano/debian/changelog =================================================================== --- trunk/libpano/debian/changelog (rev 0) +++ trunk/libpano/debian/changelog 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,170 @@ +libpano13 (2.9.15~beta2-1) experimental; urgency=low + + * New upstream version. + * Drop patches applied upstream: + + 20_libpano13+kbsd.diff + + 30_undo_soname.bump + * 20_bumpsoname.diff: Bump soname, now that the ABI really has changed. + * Change library packagename to match soname. + * Tighten libpano13-2 shlibs file to exactly match upstream version while + still preserving binNMU-ability. Upstream might break the ABI another time + without wanting to change the soname again before 2.9.15 is finally + released. This tight dependency should be removed after the final release. + + -- Andreas Metzler <ame...@de...> Thu, 17 Sep 2009 15:20:46 +0200 + +libpano13 (2.9.15~beta1-1) experimental; urgency=low + + * New upstream pre-release. + + debian/patches/30_undo_soname.bump - Undo unnecessary soname change. + + Bump shlibs. (Newly added function.) + + Ship newly available pkgconfig file. + * Run upstream testsuite. Since it requires tiffcmp add libtiff-tools to + build-depends. The upstream tarball is incomplete, it is missing some + reference files for the testsuite. Pull them from upstream SVN and add + them to the (repackaged) tarball. + + -- Andreas Metzler <ame...@de...> Mon, 14 Sep 2009 10:29:22 +0200 + +libpano13 (2.9.14-2) unstable; urgency=low + + * Stop shipping la file in -dev package. (Squeeze release goal). + * debian/patches/20_libpano13+kbsd.diff - Fix FTBFS on GNU/kFreeBSD. Patch + by Cyril Brulebois. Closes: #543998 + + -- Andreas Metzler <ame...@de...> Sat, 29 Aug 2009 14:36:20 +0200 + +libpano13 (2.9.14-1) unstable; urgency=low + + * Upload to unstable. + * [Lintian] Fix typo in debian control: s/algorithmical/algorithmic/. + * Standards-Version: 3.8.2, no changes required. + * Improve on watchfile to handle rc and beta versions. + + -- Andreas Metzler <ame...@de...> Sun, 09 Aug 2009 14:01:24 +0200 + +libpano13 (2.9.14~rc1-1) experimental; urgency=low + + * New upstream prerelease. + + New soname due to ABI breakage (new member in public struct). Change + package name of library package. + + Does not contain non-free files PixMap.c PixMap.h, no need for .dfsg + version anymore. Also does away with the need for a complex + get-orig-source + target. + + debian/manpages/* now shipped in upstream-tarball. Adapt build-system + accordingly. + * [lintian] Add ${misc:Depends}. + * Standards version 3.8.1. + + [debian/control] Add Homepage field. + + Add rudimentary debian/README.source, basically pointing to quilt + documentation. + + -- Andreas Metzler <ame...@de...> Sun, 03 May 2009 19:56:34 +0200 + +libpano13 (2.9.12.dfsg-2) unstable; urgency=low + + * Drop Java support altogether (Closes: #477884). While checking that + bugreport, it appeared that “HasJava” is only used in a single source + file, which happens to be commented out. + - debian/control: Drop libgcj-dev from Build-Depends. + - debian/rules: Turn “--with-java” into “--without-java”. + - debian/rules: Not bumping shlibs since no symbols changed (as + expected given the above explanation). + * Update my mail address in Uploaders. + + -- Cyril Brulebois <ki...@de...> Sat, 26 Apr 2008 12:29:49 +0200 + +libpano13 (2.9.12.dfsg-1) unstable; urgency=low + + * Initial release (Closes: #433261), based on libpano12/2.8.6-0.1. + * Repack because of the license of PixMap.{c,h}. These files seem to be + needed only on Mac anyway: + - Add a get-orig-source target to debian/rules. + - Add version mangling to debian/watch. + * The following glitches have been forwarded upstream so that these + files will get proper copyright and license statements in further + releases: + - Copyright years are missing for jpegicc.{c,h}. + - Copyright and license are missing for f2c.h. This file is available + in the libf2c2 source package, and its copyright file has been used + to complete this one. + - Copyright and license are missing for rgbe.{c,h}. These files are + available in the enblend source package, and its copyright file has + been used to complete this one. The copyright by Bruce Walter is + the original copyright notice, these files are now public domain. + * Move from libpano12 to libpano13: + - Update debian/copyright. + - Update debian/watch, get rid of “debian uupdate”. + - Update package names in debian/control, and clear the following + fields: Provides, Conflicts, Replaces. + - Add “Conflicts: libpano12-bin” and “Replaces: libpano12-bin” to + libpano13-bin. + - Rename debian/libpano12* into debian/libpano13*. + - Update debian/libpano13-bin.install: + - Rename pano12info into panoinfo. + - Rename PTOptimizer into PToptimizer. + - Update debian/libpano13-bin.manpages accordingly. + - Rename the manpages accordingly. + - Update debian/manpages/panoinfo.1. + - Update debian/manpages/PToptimizer.1. + * debian/rules adjustments: + - Delete unneeded variable declarations (major, version). + - Delete useless comments. + - Delete trailing spaces. + * Move Maintainer to the pkg-phototools team, add Florent Bayle and + myself to Uploaders. + * Bump Standards-Version to 3.7.3 (no change needed). + * Add Vcs-Git and Vcs-Browser. Note that both libpano12 and libpano13 + are maintained within the same libpano.git repository. + * Bump debhelper compatibility from 4 to 5. Changes needed: + - Remove “usr/lib/pkgconfig/*” from debian/libpano13-dev.install + since “--fail-missing” is now the default behaviour of dh_install. + * Use “LDFLAGS="-Wl,--as-needed"” on the ./configure line to avoid extra + linking. + * To achieve that, it is needed to patch config/ltmain.sh (libtool) + because of very long-standing (and will-be-very-long-standing) libtool + bug, see #347650: + - Add quilt as Build-Depends, and to debian/rules. + - Add 10_workaround_libtool_link_as_needed_bug to workaround libtool + bug. + - Add a TODO item about that bug, basically “keep an eye on it in + case it ever gets fixed”. + * Since that might break things sometimes, add “-Wl,-z,defs” before + “-Wl,--as-needed”, so as to catch undefined references as early as + possible in the build process. That done, it appears that “-lm” is + missing, thus: add “LIBS="-lm"” on the ./configure line. + * Remove debian/*.dirs files, since they aren't needed. + * Clear the rpath set on some architectures (e.g. amd64) instead of + relibtoolizing (at least at the moment): + - Add chrpath to Build-Depends. + - Add “chrpath -d” calls on debian/tmp/usr/{bin/*,lib/*.so} after + the “make install” call. + - Add a TODO item about that. + * Switch from plain debhelper to cdbs. The build is conventional enough + to drop lengthy makefiles in favour of shorter ones: + - Add cdbs to Build-Depends. + - Add autotools-dev as well, to get config.{guess,sub} updated during + the build. + - Use only some includes and variables in debian/rules, but keep the + additional get-orig-source target. + - Drop debian/libpano13-0.docs, cdbs is smart enough to install those + files. + - A single trick is needed: dh_install is called for each binary + when using debhelper.mk, which makes the use of “--*-missing” a + bit tricky. That's why a hook between “make install” and “dh_*” + is needed, removing the RPATH's as well running dh_install with + one of the “--*-missing” option. This is cdbs's #461368. + * Ship all binaries, using a wildcard in debian/libpano13-bin.install. + * Update the long description of libpano13-bin accordingly, listing all + binaries along with an oneliner description for each. + * Write manpages for all binaries, in the perlpod format. Generate them + using pod2man at build-time. Ship them through libpano13.manpages, by + using a wildcard. + * Get rid of strange (strictly-versioned) interdependencies, leading to + a dependency loop: + - Remove “Suggests: libpano13-dev” from libpano13-0. + - Downgrade “Recommends: libpano13-bin” to a “Suggests:”, still in + libpano13-0. + + -- Cyril Brulebois <cyr...@en...> Thu, 24 Jan 2008 23:37:28 +0100 Added: trunk/libpano/debian/compat =================================================================== --- trunk/libpano/debian/compat (rev 0) +++ trunk/libpano/debian/compat 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1 @@ +5 Added: trunk/libpano/debian/control =================================================================== --- trunk/libpano/debian/control (rev 0) +++ trunk/libpano/debian/control 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,58 @@ +Source: libpano13 +Section: libs +Priority: optional +Maintainer: Debian PhotoTools Maintainers <pkg...@li...> +Uploaders: Cyril Brulebois <ki...@de...>, Florent Bayle <fb...@bi...>, Andreas Metzler <ame...@de...> +Build-Depends: debhelper (>= 5), quilt, libpng12-dev, libjpeg62-dev, libtiff4-dev, autotools-dev, libtiff-tools +Standards-Version: 3.8.3 +Vcs-Browser: http://git.debian.org/?p=pkg-phototools/libpano.git +Vcs-Git: git://git.debian.org/git/pkg-phototools/libpano.git +Homepage: http://panotools.sourceforge.net/ + +Package: libpano13-dev +Section: libdevel +Architecture: any +Depends: libpano13-2 (= ${binary:Version}), ${misc:Depends} +Description: panorama tools library development files + This package contains the panoramatools library. It provides basic + algorithmic tools to generate, edit and transform many kinds of + panoramic images. + . + This package holds static libraries and headers needed by developers + who wish to use libpano13 in their programs. + +Package: libpano13-2 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: libpano13-bin +Description: panorama tools library + This package contains the panoramatools library. It provides basic + algorithmic tools to generate, edit and transform many kinds of + panoramic images. + . + Panorama Tools was originally created by Professor Helmut Dersch of the + University of Applied Sciences Furtwangen. Professor Dersch's site no + longer has links to download the tools, which is why this panotools + sourceforge project exists. + +Package: libpano13-bin +Section: graphics +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Conflicts: libpano12-bin +Replaces: libpano12-bin +Description: panorama tools utilities + This package contains the following tools, all part of the Panorama Tools + library, and supposed to make it easy to work with panoramic images: + * panoinfo - List details about the libpano13 library + * PTblender - Colour and brightness correction of panoramas + * PTcrop - Crop TIFF images + * PTinfo - Display information about a panotools-generated image + * PTmasker - Compute stitching masks + * PTmender - Replacement for PTStitcher + * PToptimizer - Wrapper around control point optimization routines + * PTroller - Merge several images into a single one + * PTtiff2psd - Convert a set of TIFF files into a Photoshop PSD file + * PTtiffdump - Compare two TIFF images + * PTuncrop - Uncrop TIFF images Added: trunk/libpano/debian/copyright =================================================================== --- trunk/libpano/debian/copyright (rev 0) +++ trunk/libpano/debian/copyright 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,127 @@ +This package is based on the libpano12 package, debianized by Florent +Bayle <fb...@bi...> on Fri, 29 Apr 2005 19:01:28 +0200. + +It was downloaded from <http://sourceforge.net/projects/panotools/>. + +Upstream Authors and Copyright Holders: + + Daniel M. German <dmg...@uv...>, 2005-2006 + Jim Watters <jim...@ro...>, 2003-2007 + Bruno Postle <br...@po...>, 2006 + Max Lyons <max...@ta...>, 2006 + + +Other Authors: + + Helmut Dersch <de...@fh...>, 1998-2006 + Author of PTStitcher (licensed under the same terms), from + which some parts of code are borrowed. + Tom Lane, Marti Maria + See jpegicc.* below. + Kevin Kratzke + Rik Littlefield + Fulvio Senore + Thomas Rauscher + Pablo d'Angelo + Bret McKee + Robert Platt + + +Copyright: + + This program 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. + + This program is distributed in the hope that it will be useful, + but WITHOUTANY 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 this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301, USA. + +On Debian systems, the complete text of the GNU General Public License +can be found in /usr/share/common-licenses/GPL file. + + +Some parts of the software are derived from other sources, which are +distributed under different copyrights. These are: + +(1) The public domain Levenberg-Marquardt solver of the Argonne + National Laboratories MINPACK mathematical library, C translation + by Steve Moshier (file lmdif.c). + +(2) Fast fourier transformation (fftn.c, fftn.h), code by: + RC Singleton, Stanford Research Institute, Sept. 1968 + Copyright MJ Olesen, Queen's University at Kingston, 1995-97. + +Licence: + + Permission to use, copy, modify, and distribute this software for + any purpose without fee is hereby granted, provided that this + entire notice is included in all copies of any software which is + or includes a copy or modification of this software and in all + copies of the supporting documentation for such software. + + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR + IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR QUEEN'S + UNIVERSITY AT KINGSTON MAKES ANY REPRESENTATION OR WARRANTY OF ANY + KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS + FITNESS FOR ANY PARTICULAR PURPOSE. + + All of which is to say that you can do what you like with this + source code provided you don't try to sell it as your own and you + include an unaltered copy of this message (including the + copyright). + + It is also implicitly understood that bug fixes and improvements + should make their way back to the general Internet community so + that everyone benefits. + + + +Files: jpegicc.c, jpegicc.h: +Copyright: Tom Lane + Marti Maria +License: GPL-2+ + | This source file was originally part of the LCMS package. I asked + | Marti for permission to change its license from MIT to GPL (Aug 4, + | 2006). -- Daniel German + + + +Files: f2c.h +Copyright: © 1990-1995 AT&T Bell Laboratories and Bellcore +License: + | Permission to use, copy, modify, and distribute this software + | and its documentation for any purpose and without fee is hereby + | granted, provided that the above copyright notice appear in all + | copies and that both that the copyright notice and this + | permission notice and warranty disclaimer appear in supporting + | documentation, and that the names of AT&T Bell Laboratories or + | Bellcore or any of their entities not be used in advertising or + | publicity pertaining to distribution of the software without + | specific, written prior permission. + | + | AT&T and Bellcore disclaim all warranties with regard to this + | software, including all implied warranties of merchantability + | and fitness. In no event shall AT&T or Bellcore be liable for + | any special, indirect or consequential damages or any damages + | whatsoever resulting from loss of use, data or profits, whether + | in an action of contract, negligence or other tortious action, + | arising out of or in connection with the use or performance of + | this software. + + + +Files: rgbe.c, rgbe.h +Copyright: © 1995 Bruce Walter <bj...@gr...> +License: + | The license of these files has been clarified by Bruce Walter during + | a private email conversation. + | + | These files are public domain. Added: trunk/libpano/debian/libpano13-2.install =================================================================== --- trunk/libpano/debian/libpano13-2.install (rev 0) +++ trunk/libpano/debian/libpano13-2.install 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1 @@ +usr/lib/lib*.so.* Added: trunk/libpano/debian/libpano13-bin.docs =================================================================== --- trunk/libpano/debian/libpano13-bin.docs (rev 0) +++ trunk/libpano/debian/libpano13-bin.docs 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1 @@ +doc/Optimize.txt Added: trunk/libpano/debian/libpano13-bin.install =================================================================== --- trunk/libpano/debian/libpano13-bin.install (rev 0) +++ trunk/libpano/debian/libpano13-bin.install 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,2 @@ +usr/bin/* +usr/share/man/man1/*.1 Added: trunk/libpano/debian/libpano13-dev.install =================================================================== --- trunk/libpano/debian/libpano13-dev.install (rev 0) +++ trunk/libpano/debian/libpano13-dev.install 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/lib*.a +usr/lib/lib*.so +usr/lib/pkgconfig/*.pc Added: trunk/libpano/debian/patches/10_workaround_libtool_link_as_needed_bug =================================================================== --- trunk/libpano/debian/patches/10_workaround_libtool_link_as_needed_bug (rev 0) +++ trunk/libpano/debian/patches/10_workaround_libtool_link_as_needed_bug 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,30 @@ +--- a/config/ltmain.sh 2007-12-26 07:21:34.000000000 +0100 ++++ b/config/ltmain.sh 2007-12-26 07:21:40.000000000 +0100 +@@ -1517,6 +1517,11 @@ + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + ++ -Wl,--as-needed) ++ deplibs="$deplibs $arg" ++ continue ++ ;; ++ + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= +@@ -1853,6 +1858,15 @@ + lib= + found=no + case $deplib in ++ -Wl,--as-needed) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" Added: trunk/libpano/debian/patches/20_bumpsoname.diff =================================================================== --- trunk/libpano/debian/patches/20_bumpsoname.diff (rev 0) +++ trunk/libpano/debian/patches/20_bumpsoname.diff 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,37 @@ +diff -NurBBp a/Makefile.am b/Makefile.am +--- a/Makefile.am 2009-09-14 21:54:06.000000000 +0200 ++++ b/Makefile.am 2009-09-17 16:33:51.000000000 +0200 +@@ -64,7 +64,7 @@ endif + if HAVE_LINUX + LIN_SRC = sys_ansi.c ppm.c + LIN_DEFS = -D__Ansi__=1 +-LIN_LDFS = -version-info 1:0:0 ++LIN_LDFS = -version-info 2:0:0 + + install-exec-hook: + @true +@@ -74,7 +74,7 @@ endif + if HAVE_DARWIN + DAR_SRC = sys_ansi.c ppm.c + DAR_DEFS = -D__Ansi__=1 +-DAR_LDFS = -version-info 1:0:0 ++DAR_LDFS = -version-info 2:0:0 + + install-exec-hook: + @true +diff -NurBBp a/Makefile.in b/Makefile.in +--- a/Makefile.in 2009-09-16 19:53:37.000000000 +0200 ++++ b/Makefile.in 2009-09-17 16:34:12.000000000 +0200 +@@ -295,10 +295,10 @@ SYS_HDR = sys_X11.h sys_ansi.h sys_mac.h + @HAVE_MAC_TRUE@MAC_HDR = + @HAVE_LINUX_TRUE@LIN_SRC = sys_ansi.c ppm.c + @HAVE_LINUX_TRUE@LIN_DEFS = -D__Ansi__=1 +-@HAVE_LINUX_TRUE@LIN_LDFS = -version-info 1:0:0 ++@HAVE_LINUX_TRUE@LIN_LDFS = -version-info 2:0:0 + @HAVE_DARWIN_TRUE@DAR_SRC = sys_ansi.c ppm.c + @HAVE_DARWIN_TRUE@DAR_DEFS = -D__Ansi__=1 +-@HAVE_DARWIN_TRUE@DAR_LDFS = -version-info 1:0:0 ++@HAVE_DARWIN_TRUE@DAR_LDFS = -version-info 2:0:0 + AM_CPPFLAGS = $(JAVA_FLAGS) $(JPEG_FLAGS) $(PNG_FLAGS) $(TIFF_FLAGS) $(ZLIB_FLAGS) $(WIN_DEFS) $(LIN_DEFS) $(DAR_DEFS) $(ENDIAN_FLAG) + lib_LTLIBRARIES = libpano13.la + libpano13_la_SOURCES = $(STD_SRC) $(JAVA_SRC) $(X11_SRC) $(WIN_SRC) $(MAC_SRC) $(LIN_SRC) $(DAR_SRC) Added: trunk/libpano/debian/patches/series =================================================================== --- trunk/libpano/debian/patches/series (rev 0) +++ trunk/libpano/debian/patches/series 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,2 @@ +10_workaround_libtool_link_as_needed_bug +20_bumpsoname.diff Added: trunk/libpano/debian/rules =================================================================== --- trunk/libpano/debian/rules (rev 0) +++ trunk/libpano/debian/rules 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,57 @@ +#!/usr/bin/make -f + +# We don't use tarball.mk but there's a .tgz in the way +DEB_TARBALL= + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk +include /usr/share/cdbs/1/class/autotools.mk + + +# For the repack: package name, mangled upstream version, non-free files +PACKAGE=libpano13 +VERSION=$(shell dpkg-parsechangelog | perl -ne 'print "$$1\n" if (/^Version: (.*?)(?:\.dfsg)?\-.*?$$/)') + + +# --{list,fail}-missing don't make sense when dh_install is called for each +# package rather than once for all. See the hook below, only used to check +# the list of installed files. This is cdbs's #461368. +DEB_DH_INSTALL_ARGS=--autodest --sourcedir=debian/tmp + +# What to pass to ./configure +DEB_CONFIGURE_EXTRA_FLAGS= \ + --prefix=/usr \ + --enable-shared \ + --enable-static \ + --with-jpeg \ + --with-png \ + --with-tiff \ + --with-zlib \ + --without-java + +# Could be merged into the former, but cleaner this way +DEB_CONFIGURE_SCRIPT_ENV += \ + LDFLAGS="-Wl,-z,defs -Wl,--as-needed" \ + LIBS="-lm" + +DEB_DH_MAKESHLIBS_ARGS_libpano13-2 := -V 'libpano13-2 (>=2.9.15~beta2-0), libpano13-2 (<<2.9.15~beta3-0)' +DEB_MAKE_CHECK_TARGET = check + + +# Between "make install" and "dh_*" calls +common-install-arch:: + # Clear the rpath set on some architectures (e.g. amd64) + chrpath -d $(CURDIR)/debian/tmp/usr/bin/* + chrpath -d $(CURDIR)/debian/tmp/usr/lib/*.so + + rm -f $(CURDIR)/debian/tmp/usr/lib/*.la + + # Check the list of installed files, see the comment above the + # DEB_DH_INSTALL_ARGS declaration + dh_install --fail-missing $(DEB_DH_INSTALL_ARGS) + +# Build the DFSG-free source tarball +get-orig-source: + # Download + uscan --force-download --rename + Added: trunk/libpano/debian/watch =================================================================== --- trunk/libpano/debian/watch (rev 0) +++ trunk/libpano/debian/watch 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,5 @@ +version=3 + +opts=dversionmangle=s/\.dfsg$//,\ +uversionmangle=s/_rc/~rc/;s/_beta/~beta/ \ +http://sf.net/panotools/libpano13-(.*)\.tar\.gz Modified: trunk/libpano/doc/stitch.txt =================================================================== --- trunk/libpano/doc/stitch.txt 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/doc/stitch.txt 2011-01-05 12:20:27 UTC (rev 1306) @@ -118,7 +118,9 @@ # 8 - Fisheye Orthographic (This is only allowed in PTStereo and # for the first image. This indicates a map or ground plan) # 10 - Fisheye Stereographic -# 19 - Fisheye Equisolid +# 20 - Thoby Projection (rho = THOBY_K1_PARM * sin( +# theta * THOBY_K2_PARM), defaults to Nikkor 10.5 +# 21 - Fisheye Equisolid # v82 horizontal field of view of image (required) # y0 yaw angle (required) # p43 pitch angle (required) Added: trunk/libpano/dump.c =================================================================== --- trunk/libpano/dump.c (rev 0) +++ trunk/libpano/dump.c 2011-01-05 12:20:27 UTC (rev 1306) @@ -0,0 +1,255 @@ +/* + * dump.c + * + * Routines to dump data structures for debugging purposes + * + * Copyright Daniel M. German + * + * June 2010 + * + * This program 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. + * + * This software 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 this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * + * Author: Daniel M German dmgerman at uvic doooot ca + * + */ + +#include <stdio.h> +#include <assert.h> +#include "dump.h" + +#define MAX_INDENT 20 + +// Macro to generalize printing the fields. Notice the heavey use of stringification +// var can be preceeded with a cast, such as (int)var and it applies to the field +// i.e. (int)var->field due to the higher precedence of the -> operator +#define PRINT_GENERIC(field, format, var) fprintf(stderr, "%s\t" #field " " format "\n", ind, var->field) + +static void panoDumpSetIndent(char *ind, int size) +{ + assert(size < MAX_INDENT && size >= 0); + memset(ind, '\t', size); + ind[size] = 0; +} + +void panoDumpPTRect(PTRect *rect, char *label, int indent) +{ + char ind[MAX_INDENT+1]; + panoDumpSetIndent(ind, indent); + + if (label != NULL) { + fprintf(stderr, "%s%s\n", ind, label); + } + + fprintf(stderr, "%sRectangle\n", ind); + +#define PRINT_INT(a) PRINT_GENERIC(a, "%d", (int)rect) + PRINT_INT(top); + PRINT_INT(bottom); + PRINT_INT(left); + PRINT_INT(right); +#undef PRINT_INT +} + +void panoDumpCropInfo(CropInfo *crop, char *label, int indent) +{ + char ind[MAX_INDENT+1]; + panoDumpSetIndent(ind, indent); + +#define PRINT_INT(a) PRINT_GENERIC(a, "%d", (int)crop) + + fprintf(stderr, "%sCrop Info\n", ind); + PRINT_INT(full_width); + PRINT_INT(full_height); + PRINT_INT(cropped_width); + PRINT_INT(cropped_height); + PRINT_INT(x_offset); + PRINT_INT(y_offset); + +#undef PRINT_INT +} + + +void panoDumpCorrectPrefs(cPrefs *cP, char *label, int indent) +{ + char ind[MAX_INDENT+1]; + + panoDumpSetIndent(ind, indent); + int i,j; + + + +#define PRINT_INT(a) PRINT_GENERIC(a,"%d", (int)cP) +#define PRINT_F(a) PRINT_GENERIC(a,"%f", cP) + + if (label != NULL) { + fprintf(stderr, "%s%s\n", ind, label); + } + + fprintf(stderr, "%sCorrect Preferences\n", ind); + + if (cP->radial) { + for (i=0;i<3;i++) { + for (j=0;j<5;j++) { + fprintf(stderr, "%s\tradial_params[%d][%d]\t%f\n", ind, i, j, cP->radial_params[i][j]); + } + } + } + if (cP->vertical) { + for (i=0;i<3;i++) { + fprintf(stderr, "%s\tvertical_params[%d]\t%f\n", ind, i, cP->vertical_params[i]); + } + } + if (cP->horizontal) { + for (i=0;i<3;i++) { + fprintf(stderr, "%s\thorizontal_params[%d]\t%f\n", ind, i, cP->horizontal_params[i]); + } + } + + if (cP->shear) { + PRINT_F(shear_x); + PRINT_F(shear_y); + } + + if (cP->tilt) { + PRINT_F(tilt_x); + PRINT_F(tilt_y); + PRINT_F(tilt_z); + PRINT_F(tilt_scale); + } + + if (cP->trans) { + PRINT_F(trans_x); + PRINT_F(trans_y); + PRINT_F(trans_z); + } + + if (cP->test) { + PRINT_F(test_p0); + PRINT_F(test_p1); + PRINT_F(test_p2); + PRINT_F(test_p3); + } + /* I don't think these files are read as parameters... we'll see + int resize; + pt_int32 width; + pt_int32 height; + int luminance; + double lum_params[3]; + int correction_mode; + int cutFrame; + int fwidth; + int fheight; + int frame; + int fourier; + int fourier_mode; + fullPath psf; + int fourier_nf; + fullPath nff; + double filterfactor; + double fourier_frame; + */ +#undef PRINT_INT +#undef PRINT_F + +} + + + +void panoDumpImage(Image *im, char *label, int indent) +{ + char ind[MAX_INDENT+1]; + int i; + + if (im == NULL) return; + // prepare indent + + panoDumpSetIndent(ind, indent); + + if (label != NULL) { + fprintf(stderr, "%s%s\n", ind, label); + } + +#define PRINT_INT(a) PRINT_GENERIC(a,"%d", (int)im) +#define PRINT_F(a) PRINT_GENERIC(a,"%f", im) +#define PRINT_S(a) PRINT_GENERIC(a,"\"%s\"", im) + + fprintf(stderr, "%sImage Data\n", ind); + PRINT_INT(width); + PRINT_INT(height); + PRINT_INT(bytesPerLine); + PRINT_INT(bitsPerPixel); + PRINT_INT(dataSize); + PRINT_INT(dataformat); + PRINT_INT(format); + PRINT_INT(formatParamCount); + + for (i=0;i< im->formatParamCount; i++) { + fprintf(stderr, "%s\t\tformat Param[%d] %f\n", ind, i, im->formatParam[i]); + } + PRINT_F(hfov); + PRINT_F(yaw); + PRINT_F(roll); + PRINT_F(pitch); + + PRINT_S(name); + + panoDumpCorrectPrefs(&im->cP, NULL, indent+1); + panoDumpPTRect(&im->selection, NULL,indent+1); + panoDumpCropInfo(&im->cropInformation, NULL, indent+1); + +#undef PRINT_INT +#undef PRINT_F +#undef PRINT_S + +} + + +void panoDumpAdjustData(aPrefs* aP, char *label, int indent) +{ + + char ind[MAX_INDENT+1]; + + assert (aP != NULL); + + panoDumpSetIndent(ind, indent); + + if (label != NULL) { + fprintf(stderr, "%s%s\n", ind, label); + } + + fprintf(stderr, "%s\tAdjust Data\n", ind); + +#define PRINT_INT(a) PRINT_GENERIC(a,"%d", (int)aP) +#define PRINT_F(a) PRINT_GENERIC(a,"%f", aP) +#define PRINT_S(a) PRINT_GENERIC(a,"\"%s\"", aP) + + + PRINT_INT(mode); + PRINT_S(scriptFile.name); + PRINT_INT(nt); + PRINT_INT(interpolator); + PRINT_F(gamma); + PRINT_INT(fastStep); + +#undef PRINT_INT +#undef PRINT_F +#undef PRINT_S + + + panoDumpImage(&aP->im, "Input Image", indent + 1); + panoDumpImage(&aP->pano, "Panorama", indent + 1); + +} Modified: trunk/libpano/filter.h =================================================================== --- trunk/libpano/filter.h 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/filter.h 2011-01-05 12:20:27 UTC (rev 1306) @@ -916,6 +916,15 @@ int sphere_tp_orthographic( double x_dest,double y_dest, double* x_src, double* y_src, void* params); int orthographic_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params); +int sphere_tp_thoby( double x_dest,double y_dest, double* x_src, double* y_src, void* params); +int thoby_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params); + + + +#define THOBY_K1_PARM 1.47 +#define THOBY_K2_PARM 0.713 + + int rotate_erect ( double x_dest, double y_dest, double* x_src, double* y_src, void* params ); int inv_radial ( double x_dest, double y_dest, double* x_src, double* y_src, void* params ); int inv_radial_brown ( double x_dest, double y_dest, double* x_src, double* y_src, void* params ); Modified: trunk/libpano/math.c =================================================================== --- trunk/libpano/math.c 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/math.c 2011-01-05 12:20:27 UTC (rev 1306) @@ -2541,7 +2541,6 @@ return 1; } - int orthographic_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params) { // params: double distance @@ -2558,6 +2557,52 @@ return 1; } +// the Thoby projection is an empirically found projection for the Nikkor 10.5 lens +// rho = THOBY_K1_PARM * sin( theta * THOBY_K2_PARM); + +int sphere_tp_thoby( double x_dest,double y_dest, double* x_src, double* y_src, void* params) +{ + // params: double distance + + register double phi, theta, rho; +#define SCALE (((double*)params)[0]) + + rho = sqrt( x_dest*x_dest + y_dest*y_dest )/ SCALE; + + + theta = asin( rho/THOBY_K1_PARM) / THOBY_K2_PARM; + phi = atan2( y_dest , x_dest ); + + *x_src = SCALE * theta * cos( phi ); + *y_src = SCALE * theta * sin( phi ); + +#undef SCALE + + return 1; +} + + +int thoby_sphere_tp( double x_dest,double y_dest, double* x_src, double* y_src, void* params) +{ + // params: double distance + + register double rho, phi, theta; + +#define SCALE (((double*)params)[0]) + + theta = sqrt( x_dest * x_dest + y_dest * y_dest ) / SCALE; + phi = atan2( y_dest , x_dest ); + + rho = THOBY_K1_PARM * sin( theta * THOBY_K2_PARM ); + + *x_src = SCALE * rho * cos( phi ); + *y_src = SCALE * rho * sin( phi ); + +#undef SCALE + return 1; +} + + int shift_scale_rotate( double x_dest,double y_dest, double* x_src, double* y_src, void* params){ // params: double shift_x, shift_y, scale, cos_phi, sin_phi Modified: trunk/libpano/panorama.h =================================================================== --- trunk/libpano/panorama.h 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/panorama.h 2011-01-05 12:20:27 UTC (rev 1306) @@ -284,7 +284,9 @@ _equipanini = 22, _biplane = 23, _triplane = 24, - _panini_general = 25 + _panini_general = 25, + _thoby = 26, // generalizes the model found in modern fisheye lenses. It is + // parametrizable but it defaults to the Nikkor 10.5 fisheye lens }; enum @@ -306,12 +308,13 @@ PANO_FORMAT_ORTHOGRAPHIC = 14, PANO_FORMAT_EQUISOLID = 15, PANO_FORMAT_EQUI_PANINI = 16, - PANO_FORMAT_BIPLANE = 17, - PANO_FORMAT_TRIPLANE = 18, - PANO_FORMAT_PANINI_GENERAL = 19, + PANO_FORMAT_BIPLANE = 17, + PANO_FORMAT_TRIPLANE = 18, + PANO_FORMAT_PANINI_GENERAL = 19, + PANO_FORMAT_THOBY = 20, }; -#define PANO_FORMAT_COUNT 20 +#define PANO_FORMAT_COUNT 21 enum { // Enumerates external number of image f<index> @@ -324,8 +327,9 @@ IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC = 8, IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC = 10, IMAGE_FORMAT_FISHEYE_EQUISOLID = 21, + IMAGE_FORMAT_FISHEYE_THOBY = PANO_FORMAT_THOBY, }; -#define IMAGE_FORMAT_COUNT 9 +#define IMAGE_FORMAT_COUNT 10 // A large rectangle Modified: trunk/libpano/parser.c =================================================================== --- trunk/libpano/parser.c 2010-12-07 00:43:00 UTC (rev 1305) +++ trunk/libpano/parser.c 2011-01-05 12:20:27 UTC (rev 1306) @@ -59,6 +59,7 @@ static int ReadModeDescription ( sPrefs *sP, char *line ); static int ReadCoordinates( CoordInfo *cp, char *line ); +static int panoExternalToInternalInputProjection(pt_int32 input); #define MY_SSCANF( str, format, ptr ) if( sscanf( str, format, ptr ) != 1 ) \ { \ @@ -283,6 +284,7 @@ case IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC: im->format = _orthographic; break; case IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC: im->format = _stereographic; break; case IMAGE_FORMAT_FISHEYE_EQUISOLID: im->format = _equisolid; break; + case IMAGE_FORMAT_FISHEYE_THOBY: im->format = _thoby; exit(1);break; break; default: PrintError("Syntax error in script. Projection not known: Line %d", lineNum); goto fail; @@ -710,6 +712,9 @@ case PANO_FORMAT_ORTHOGRAPHIC: gl->pano.format = _orthographic; break; + case PANO_FORMAT_THOBY: + gl->pano.format = _thoby; + break; case PANO_FORMAT_EQUISOLID: gl->pano.format = _equisolid; break; @@ -926,6 +931,7 @@ case _biplane: format = PANO_FORMAT_BIPLANE; break; case _triplane: format = PANO_FORMAT_TRIPLANE; break; case _panini_general: format = PANO_FORMAT_PANINI_GENERAL; break; + case _thoby: format = PANO_FORMAT_THOBY; break; default: format = -1; break; } @@ -947,6 +953,7 @@ case _orthographic: format = IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC; break; case _stereographic: format = IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC; break; case _equisolid: format = IMAGE_FORMAT_FISHEYE_EQUISOLID; break; + case _thoby: format = IMAGE_FORMAT_FISHEYE_THOBY; break; default: format = -1; break; } @@ -1303,6 +1310,9 @@ case PANO_FORMAT_EQUISOLID: p->pano.format = _equisolid; break; + case PANO_FORMAT_THOBY: + p->pano.format = _thoby; + break; case PANO_FORMAT_BIPLANE: p->pano.format = _biplane; break; @@ -1662,7 +1672,8 @@ int cropping = 0; int tempInt; char typeParm; - + pt_int32 tempInt32; + memcpy( &im, imPtr, sizeof(Image) ); memcpy( &sBuf, sPtr, sizeof(stBuf )); @@ -1670,7 +1681,13 @@ // printf("************************************* Before Cut Frame %d \n", im.cP.cutFrame); while( *ch != 0) { switch(*ch) { - case 'f': READ_VAR( FMT_INT32, &im.format ); + case 'f': READ_VAR( FMT_INT32, &tempInt32 ); + tempInt = panoExternalToInternalInputProjection(tempInt32); + if (tempInt < 0) { + PrintError("Syntax error in script. Projection not known: %ud", tempInt32); + return -1; + } + im.format = tempInt; if( im.format == _panorama || im.format == _equirectangular ) im.cP.correction_mode |= correction_mode_vertical; break; @@ -2388,6 +2405,10 @@ free( script ); } } + + //panoDumpAdjustData(aP, "readAdjustLine", 0); + + return aP; } @@ -2433,3 +2454,24 @@ } return NULL; } + + +int panoExternalToInternalInputProjection(pt_int32 input) +{ + // Internal and external projection do not match, unfortunately. + // So this code does the remapping + + switch (input) { + case IMAGE_FORMAT_RECTILINEAR: return(_rectilinear); + case IMAGE_FORMAT_PANORAMA: return(_panorama); + case IMAGE_FORMAT_FISHEYE_EQUIDISTANCECIRC: return(_fisheye_circ); + case IMAGE_FORMAT_FISHEYE_EQUIDISTANCEFF: return(_fisheye_ff); + case IMAGE_FORMAT_EQUIRECTANGULAR: return(_equirectangular); + case IMAGE_FORMAT_MIRROR: return(_mirror); + case IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC: return(_orthographic); + case IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC: return(_stereographic); + case IMAGE_FORMAT_FISHEYE_EQUISOLID: return(_equisolid); + case IMAGE_FORMAT_FISHEYE_THOBY: return(_thoby); + default: return -1; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2011-01-05 20:12:52
|
Revision: 1310 http://panotools.svn.sourceforge.net/panotools/?rev=1310&view=rev Author: dmg Date: 2011-01-05 20:12:44 +0000 (Wed, 05 Jan 2011) Log Message: ----------- removed code I shouldnnot have committed Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/parser.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-05 18:59:38 UTC (rev 1309) +++ trunk/libpano/ChangeLog 2011-01-05 20:12:44 UTC (rev 1310) @@ -1,5 +1,8 @@ 2011-01-05 <dm...@uv...> + * parser.c (ParseScript): Removed a bogus statement added during + debugging. + * PTcommon.c: Added debugging code to verify how stable the transformations are. Modified: trunk/libpano/parser.c =================================================================== --- trunk/libpano/parser.c 2011-01-05 18:59:38 UTC (rev 1309) +++ trunk/libpano/parser.c 2011-01-05 20:12:44 UTC (rev 1310) @@ -284,7 +284,7 @@ case IMAGE_FORMAT_FISHEYE_ORTHOGRAPHIC: im->format = _orthographic; break; case IMAGE_FORMAT_FISHEYE_STEREOGRAPHIC: im->format = _stereographic; break; case IMAGE_FORMAT_FISHEYE_EQUISOLID: im->format = _equisolid; break; - case IMAGE_FORMAT_FISHEYE_THOBY: im->format = _thoby; exit(1);break; + case IMAGE_FORMAT_FISHEYE_THOBY: im->format = _thoby; break; break; default: PrintError("Syntax error in script. Projection not known: Line %d", lineNum); goto fail; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2011-01-05 21:54:48
|
Revision: 1311 http://panotools.svn.sourceforge.net/panotools/?rev=1311&view=rev Author: dmg Date: 2011-01-05 21:54:40 +0000 (Wed, 05 Jan 2011) Log Message: ----------- patch by T. Modes to add thoby to queryfeatures Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/dump.c trunk/libpano/queryfeature.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-05 20:12:44 UTC (rev 1310) +++ trunk/libpano/ChangeLog 2011-01-05 21:54:40 UTC (rev 1311) @@ -1,5 +1,12 @@ 2011-01-05 <dm...@uv...> + * queryfeature.c: Added data for thoby projection. Patch by + T. Modes. + + * dump.c: removed unused variables. Patch by T. Modes. + +2011-01-05 <dm...@uv...> + * parser.c (ParseScript): Removed a bogus statement added during debugging. Modified: trunk/libpano/dump.c =================================================================== --- trunk/libpano/dump.c 2011-01-05 20:12:44 UTC (rev 1310) +++ trunk/libpano/dump.c 2011-01-05 21:54:40 UTC (rev 1311) @@ -85,9 +85,9 @@ void panoDumpCorrectPrefs(cPrefs *cP, char *label, int indent) { char ind[MAX_INDENT+1]; + int i,j; panoDumpSetIndent(ind, indent); - int i,j; Modified: trunk/libpano/queryfeature.c =================================================================== --- trunk/libpano/queryfeature.c 2011-01-05 20:12:44 UTC (rev 1310) +++ trunk/libpano/queryfeature.c 2011-01-05 21:54:40 UTC (rev 1311) @@ -343,6 +343,7 @@ "Biplane", "Triplane", "Panini General", + "Thoby Projection", }; static int panoFormatID[] = { @@ -366,6 +367,7 @@ _biplane, _triplane, _panini_general, + _thoby, }; @@ -437,6 +439,7 @@ break; case PANO_FORMAT_FISHEYE_FF: + case PANO_FORMAT_THOBY: features->maxVFOV = 360; features->maxHFOV = 360; break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2011-01-06 19:28:34
|
Revision: 1312 http://panotools.svn.sourceforge.net/panotools/?rev=1312&view=rev Author: dmg Date: 2011-01-06 19:28:26 +0000 (Thu, 06 Jan 2011) Log Message: ----------- upgraded version to 2.9.18 Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/configure.ac trunk/libpano/version.h Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-05 21:54:40 UTC (rev 1311) +++ trunk/libpano/ChangeLog 2011-01-06 19:28:26 UTC (rev 1312) @@ -1,3 +1,7 @@ +2011-01-06 <dm...@uv...> + + * configure.ac, version.h: Moved to version 2.9.18 + 2011-01-05 <dm...@uv...> * queryfeature.c: Added data for thoby projection. Patch by Modified: trunk/libpano/configure.ac =================================================================== --- trunk/libpano/configure.ac 2011-01-05 21:54:40 UTC (rev 1311) +++ trunk/libpano/configure.ac 2011-01-06 19:28:26 UTC (rev 1312) @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.5) -AC_INIT([pano13], [2.9.17], BUG-REPORT-ADDRESS) +AC_INIT([pano13], [2.9.18], BUG-REPORT-ADDRESS) AC_CONFIG_SRCDIR([PTDialogs.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config.h]) Modified: trunk/libpano/version.h =================================================================== --- trunk/libpano/version.h 2011-01-05 21:54:40 UTC (rev 1311) +++ trunk/libpano/version.h 2011-01-06 19:28:26 UTC (rev 1312) @@ -24,13 +24,13 @@ #define VERS2 0x00 //version of preferences file, used to verify data -#define PREF_VERSION "2.9.17 " +#define PREF_VERSION "2.9.18 " // String style of global version -#define VERSION "2.9.17 " +#define VERSION "2.9.18 " // Numeric style of global version, same as VERSION with more precision -#define PTVERSION_FILEVERSIONNUMBER 2,9,16,0 +#define PTVERSION_FILEVERSIONNUMBER 2,9,18,0 #define PTVERSION_NAME_LONG "LongVersion" #define LONGVERSION VERSION ", Copyright (c) 1998-2006, H. Dersch, de...@fh..." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dm...@us...> - 2011-01-07 03:42:14
|
Revision: 1313 http://panotools.svn.sourceforge.net/panotools/?rev=1313&view=rev Author: dmg Date: 2011-01-07 03:42:08 +0000 (Fri, 07 Jan 2011) Log Message: ----------- Thoby should crop as a ciruclar fisheye Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/PTcommon.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-06 19:28:26 UTC (rev 1312) +++ trunk/libpano/ChangeLog 2011-01-07 03:42:08 UTC (rev 1313) @@ -1,5 +1,9 @@ 2011-01-06 <dm...@uv...> + * PTcommon.c (Clear_Area_Outside_Selected_Region): thoby should + crop as a circular fisheye, not a rectangular region when using + the S parameter. + * configure.ac, version.h: Moved to version 2.9.18 2011-01-05 <dm...@uv...> Modified: trunk/libpano/PTcommon.c =================================================================== --- trunk/libpano/PTcommon.c 2011-01-06 19:28:26 UTC (rev 1312) +++ trunk/libpano/PTcommon.c 2011-01-07 03:42:08 UTC (rev 1313) @@ -314,7 +314,7 @@ } - if (image->format == _fisheye_circ) { + if (image->format == _fisheye_circ || image->format == _thoby) { // TODO This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jim...@us...> - 2011-01-11 19:56:12
|
Revision: 1315 http://panotools.svn.sourceforge.net/panotools/?rev=1315&view=rev Author: jim0watters Date: 2011-01-11 19:56:04 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Update version description to indicate if build is 32 or 64 bit Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/version.h Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-08 23:34:41 UTC (rev 1314) +++ trunk/libpano/ChangeLog 2011-01-11 19:56:04 UTC (rev 1315) @@ -1,3 +1,7 @@ +2011-01-11 jim0watters + + *version.h Update version description to indicate if build is 32 or 64 bit + 2011-01-06 <dm...@uv...> * PTcommon.c (Clear_Area_Outside_Selected_Region): thoby should Modified: trunk/libpano/version.h =================================================================== --- trunk/libpano/version.h 2011-01-08 23:34:41 UTC (rev 1314) +++ trunk/libpano/version.h 2011-01-11 19:56:04 UTC (rev 1315) @@ -19,6 +19,11 @@ #ifndef PTVERSIONINFO #define PTVERSIONINFO +#if defined(_IA64_) || defined(_AMD64_) || defined(_M_IA64) || defined(_M_AMD64) || defined(WIN64) || defined(_WIN64) + #define PTVERSIONBIT "64 bit" +#else + #define PTVERSIONBIT "32 bit" +#endif #define VERS1 0x2 #define VERS2 0x00 @@ -34,6 +39,8 @@ #define PTVERSION_NAME_LONG "LongVersion" #define LONGVERSION VERSION ", Copyright (c) 1998-2006, H. Dersch, de...@fh..." +#define PTVERSION_FILEDESCRIPTION "Panorama Tools " PTVERSIONBIT " Library\0" + #define PTVERSION_NAME_FILEVERSION "FileVersion" #define PTVERSION_FILEVERSION VERSION "\0" #define PROGRESS_VERSION VERSION "\0" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jim...@us...> - 2011-01-11 20:08:51
|
Revision: 1316 http://panotools.svn.sourceforge.net/panotools/?rev=1316&view=rev Author: jim0watters Date: 2011-01-11 20:08:43 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Update SetStitchDefaults to include psdOpacity and psdBlendingMode Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/adjust.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-11 19:56:04 UTC (rev 1315) +++ trunk/libpano/ChangeLog 2011-01-11 20:08:43 UTC (rev 1316) @@ -1,7 +1,9 @@ 2011-01-11 jim0watters - *version.h Update version description to indicate if build is 32 or 64 bit + * adjust.c Update SetStitchDefaults to include psdOpacity and psdBlendingMode + * version.h Update version description to indicate if build is 32 or 64 bit + 2011-01-06 <dm...@uv...> * PTcommon.c (Clear_Area_Outside_Selected_Region): thoby should Modified: trunk/libpano/adjust.c =================================================================== --- trunk/libpano/adjust.c 2011-01-11 19:56:04 UTC (rev 1315) +++ trunk/libpano/adjust.c 2011-01-11 20:08:43 UTC (rev 1316) @@ -2897,9 +2897,11 @@ { *sBuf->srcName = 0; *sBuf->destName = 0; - sBuf->feather = 10; - sBuf->colcorrect = 0; - sBuf->seam = _middle; + sBuf->feather = 10; + sBuf->colcorrect = 0; + sBuf->seam = _middle; + sBuf->psdOpacity = 255; + sBuf->psdBlendingMode = PSD_NORMAL; } void SetOptDefaults( optVars *opt ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jim...@us...> - 2011-01-11 20:38:31
|
Revision: 1317 http://panotools.svn.sourceforge.net/panotools/?rev=1317&view=rev Author: jim0watters Date: 2011-01-11 20:38:25 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Update version description to indicate if build is 32 or 64 bit Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/pano13.rc Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-11 20:08:43 UTC (rev 1316) +++ trunk/libpano/ChangeLog 2011-01-11 20:38:25 UTC (rev 1317) @@ -2,7 +2,8 @@ * adjust.c Update SetStitchDefaults to include psdOpacity and psdBlendingMode - * version.h Update version description to indicate if build is 32 or 64 bit + * version.h, pano13.rc Update version description to indicate if build is + 32 or 64 bit 2011-01-06 <dm...@uv...> Modified: trunk/libpano/pano13.rc =================================================================== --- trunk/libpano/pano13.rc 2011-01-11 20:08:43 UTC (rev 1316) +++ trunk/libpano/pano13.rc 2011-01-11 20:38:25 UTC (rev 1317) @@ -333,7 +333,7 @@ BEGIN VALUE "Comments", PTVERSION_COMMENT VALUE "CompanyName", PTVERSION_COMPNAME - VALUE "FileDescription", "Panorama Tools Library\0" + VALUE "FileDescription", PTVERSION_FILEDESCRIPTION VALUE PTVERSION_NAME_FILEVERSION, PTVERSION_FILEVERSION VALUE "InternalName", "pano13.dll\0" VALUE PTVERSION_NAME_LEGALCOPYRIGHT, PTVERSION_LEGALCOPYRIGHT This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2011-01-20 20:24:31
|
Revision: 1322 http://panotools.svn.sourceforge.net/panotools/?rev=1322&view=rev Author: dangelo Date: 2011-01-20 20:24:25 +0000 (Thu, 20 Jan 2011) Log Message: ----------- removed debug printf Modified Paths: -------------- trunk/libpano/ChangeLog trunk/libpano/parser.c Modified: trunk/libpano/ChangeLog =================================================================== --- trunk/libpano/ChangeLog 2011-01-19 23:34:57 UTC (rev 1321) +++ trunk/libpano/ChangeLog 2011-01-20 20:24:25 UTC (rev 1322) @@ -1,3 +1,7 @@ +2011-01-20 <pab...@we...> + + * parser.c: disabled debug printf in parsing code + 2011-01-11 jim0watters * adjust.c Update SetStitchDefaults to include psdOpacity and psdBlendingMode Modified: trunk/libpano/parser.c =================================================================== --- trunk/libpano/parser.c 2011-01-19 23:34:57 UTC (rev 1321) +++ trunk/libpano/parser.c 2011-01-20 20:24:25 UTC (rev 1322) @@ -188,7 +188,7 @@ // end mask-from-focus Rik's hacking SetImageDefaults(&(gl->pano)); SetStitchDefaults(&(gl->st)); strcpy( gl->st.srcName, "buf" ); // Default: Use buffer 'buf' for stitching - printf("Number of images %d\n",gl-> numIm); + // printf("Number of images %d\n",gl-> numIm); for(i=0; i<gl->numIm; i++) { SetImageDefaults( &(gl->im[i]) ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2011-02-07 21:17:57
|
Revision: 1323 http://panotools.svn.sourceforge.net/panotools/?rev=1323&view=rev Author: brunopostle Date: 2011-02-07 21:17:50 +0000 (Mon, 07 Feb 2011) Log Message: ----------- Add some more files to the tarball Modified Paths: -------------- trunk/libpano/Makefile.am trunk/libpano/doc/Makefile.am trunk/libpano/man/Makefile.am Modified: trunk/libpano/Makefile.am =================================================================== --- trunk/libpano/Makefile.am 2011-01-20 20:24:25 UTC (rev 1322) +++ trunk/libpano/Makefile.am 2011-02-07 21:17:50 UTC (rev 1323) @@ -121,6 +121,7 @@ makefile.win32 TODO.org \ CMakeLists.txt \ ChangeLog.svn \ + dump.c dump.h \ bootstrap filter.r libpano13.def pano13.rc \ seamer_.c sys_X11.c sys_win.c bmp.c shell_mac.c \ sys_mac.c ppm.c sys_ansi.c ppm.c ZComb.h adjust.h \ Modified: trunk/libpano/doc/Makefile.am =================================================================== --- trunk/libpano/doc/Makefile.am 2011-01-20 20:24:25 UTC (rev 1322) +++ trunk/libpano/doc/Makefile.am 2011-02-07 21:17:50 UTC (rev 1323) @@ -1,4 +1,4 @@ -EXTRA_DIST = Optimize.txt stitch.txt PTblender.readme PTmender.readme +EXTRA_DIST = Optimize.txt stitch.txt PTblender.readme PTmender.readme developmentPolicy.txt MAINTAINERCLEANFILES = \ Makefile.in Modified: trunk/libpano/man/Makefile.am =================================================================== --- trunk/libpano/man/Makefile.am 2011-01-20 20:24:25 UTC (rev 1322) +++ trunk/libpano/man/Makefile.am 2011-02-07 21:17:50 UTC (rev 1323) @@ -12,3 +12,5 @@ install-data-local: install-man +MAINTAINERCLEANFILES = Makefile.in + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |