Include dependency graph for PanoramaOptions.cpp:
Go to the source code of this file.
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, see <http://www.gnu.org/licenses/>.
Revised 16JAN2010 by TKSharpless to support default projection parameters and dynamic FOV limits. libpano APIs panoProjectionFeaturesQuery( proj, &features ) returns constant values, including min, max, and default parameter values and absolute max FOV limits. queryFOVLimits(proj, &parms, &fovs ) returns dynamic hFOV and vFOV limits calculated for a given set of projection parameters.
A PanoramaOptions holds a copy of the pano_projection_features from panoProjectionFeaturesQuery(). Original implementation updated that oftener than necessary (it can change only when the projection does) possibly with the hope of tracking dynamic changes.
Revised implementation loads the full pano_projection_features only when projection changes, and updates its max FOV values only when parameter values change. Member fns getMaxHFOV() and getMaxVFOV() now return those local values.
setProjection() now posts default projection parameters that come from libpano in the pano_projection_features block. The default projection parameter values formerly set here are now in libpano (queryfeature.c)
Definition in file PanoramaOptions.cpp.