26 #ifndef __BIAS_ProjectionParametersGreatCircles_hh__
27 #define __BIAS_ProjectionParametersGreatCircles_hh__
28 #include "bias_config.h"
30 #include <Base/Common/BIASpragmaStart.hh>
31 #include <Geometry/ProjectionParametersBase.hh>
32 #include <Base/Geometry/KMatrix.hh>
33 #include <Geometry/PMatrix.hh>
34 #include <Base/Common/CompareFloatingPoint.hh>
57 const unsigned int height = 0)
61 SetInternals(-M_PI, M_PI, 0, M_PI, width, height);
80 bool IgnoreDistortion =
false)
const;
95 bool GetAngleInterval(
const HomgPoint3D& worldPoint,
96 const double halfAngleRange,
97 double& thetaMin,
double& thetaMax,
98 double& phiMin,
double& phiMax)
const;
109 bool SetAngleInterval(
const HomgPoint3D& worldPoint,
110 const double& halfAngleRange);
120 bool IgnoreDistortion =
false)
const;
134 bool IgnoreDistortion =
false)
const;
140 const double& depth = 1.0,
141 bool IgnoreDistortion =
false)
const;
161 virtual void Rescale(
double ratio,
const double offset = 0.0);
163 virtual void Rescale(
unsigned int width,
unsigned int height);
165 #ifdef BIAS_HAVE_XML2
167 virtual int XMLGetClassName(std::string& TopLevelTag,
168 double& Version)
const;
171 virtual int XMLOut(
const xmlNodePtr Node,
XMLIO& XMLObject)
const;
174 virtual int XMLIn(
const xmlNodePtr Node,
XMLIO& XMLObject);
187 static bool LocalEuclideanCamCoordinates2SphericalAngles(
193 return LocalEuclideanCamCoordinates2SphericalAngles(euc, phi, theta);
208 static bool SphericalAngles2LocalEuclideanRay(
214 return SphericalAngles2LocalEuclideanRay(phi, theta, ray);
221 void Angle2Image(
double phi,
double theta,
229 double& phi,
double& theta)
const;
245 void SetInternals(
const double minPhi,
const double maxPhi,
246 const double minTheta,
const double maxTheta,
247 const unsigned int imgWidth,
const unsigned int imgHeight);
249 double GetFocallengthTheta();
265 os <<
"ProjectionParametersGreatCircles:" << std::endl;
276 #include <Base/Common/BIASpragmaEnd.hh>
class HomgPoint2D describes a point with 2 degrees of freedom in projective coordinates.
ProjectionParametersGreatCircles(const unsigned int width=0, const unsigned int height=0)
virtual ProjectionParametersGreatCircles * Clone() const
covariant virtual copy constructor for use in Projection
Down-, Upsampling routines and Resize.
spherical camera that samples along big circles containig the H vector.
virtual ~ProjectionParametersGreatCircles()
double focallengthTheta_
scale from angles to image
static bool LocalEuclidianCamCoordinates2SphericalAngles(const BIAS::Vector3< double > &euc, double &phi, double &theta)
deprecated version
Wrapper class for reading and writing XML files based on the XML library libxml2. ...
static bool SphericalAngles2LocalEuclidianRay(const double phi, const double theta, BIAS::Vector3< double > &ray)
deprecated version
class HomgPoint3D describes a point with 3 degrees of freedom in projective coordinates.
std::ostream & operator<<(std::ostream &os, const Array2D< T > &arg)
ProjectionParametersGreatCircles(const ProjectionParametersGreatCircles &P)
double aspectratio_
aspect ratio of the camera CCD
Camera parameters which define the mapping between rays in the camera coordinate system and pixels in...