added principal point
This commit is contained in:
parent
6c82c844b5
commit
2fe93647ab
|
@ -23,6 +23,9 @@
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
History
|
History
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.16 2005/01/18 16:40:50 ricciodimare
|
||||||
|
*** empty log message ***
|
||||||
|
|
||||||
Revision 1.15 2005/01/18 15:14:22 ponchio
|
Revision 1.15 2005/01/18 15:14:22 ponchio
|
||||||
Far and end are reserved.
|
Far and end are reserved.
|
||||||
|
|
||||||
|
@ -102,6 +105,7 @@ public:
|
||||||
vcg::Point2<S> c; // pin-hole position
|
vcg::Point2<S> c; // pin-hole position
|
||||||
|
|
||||||
vcg::Point2<int> viewport; // Size viewport (in pixels)
|
vcg::Point2<int> viewport; // Size viewport (in pixels)
|
||||||
|
vcg::Point2<double> p; // principal point (between -1 and 1) for distortion
|
||||||
S k[4]; // 1st & 2nd order radial lens distortion coefficient
|
S k[4]; // 1st & 2nd order radial lens distortion coefficient
|
||||||
|
|
||||||
S viewportM; // ratio between viewport in pixel and size (useful to avoid chancing s or viewport when
|
S viewportM; // ratio between viewport in pixel and size (useful to avoid chancing s or viewport when
|
||||||
|
@ -137,7 +141,6 @@ public:
|
||||||
inline vcg::Point2<S> LocalToViewport(const vcg::Point2<S> & p);
|
inline vcg::Point2<S> LocalToViewport(const vcg::Point2<S> & p);
|
||||||
inline vcg::Point2<S> LocalTo_0_1(const vcg::Point2<S> & p);
|
inline vcg::Point2<S> LocalTo_0_1(const vcg::Point2<S> & p);
|
||||||
inline vcg::Point2<S> LocalTo_neg1_1(const vcg::Point2<S> & p);
|
inline vcg::Point2<S> LocalTo_neg1_1(const vcg::Point2<S> & p);
|
||||||
inline vcg::Point3<S> UnProject(const vcg::Point2<S> & p);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// project a point in the camera plane (in space [-1,-1]x[1,1] )
|
/// project a point in the camera plane (in space [-1,-1]x[1,1] )
|
||||||
|
@ -149,15 +152,7 @@ vcg::Point2<S> Camera<S>::Project(const vcg::Point3<S> & p){
|
||||||
{
|
{
|
||||||
q[0] *= f/p.Z();
|
q[0] *= f/p.Z();
|
||||||
q[1] *= f/p.Z();
|
q[1] *= f/p.Z();
|
||||||
|
|
||||||
//q[0] = 2*q[0]/( s.X() * viewport[0]);
|
|
||||||
//q[1] = 2*q[1]/( s.Y() * viewport[1]);
|
|
||||||
}
|
}
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// q[0] = tx/(s.X()*viewportM)+c.X();
|
|
||||||
// q[1] = ty/(s.Y()*viewportM)+c.Y();
|
|
||||||
//}
|
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -185,26 +180,6 @@ vcg::Point2<S> Camera<S>::LocalTo_neg1_1(const vcg::Point2<S> & p){
|
||||||
return ps;
|
return ps;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// unproject a point from the camera plane
|
|
||||||
template<class S>
|
|
||||||
vcg::Point3<S> Camera<S>::UnProject(const vcg::Point2<S> & p){
|
|
||||||
S tx = p.X();
|
|
||||||
S ty = p.Y();
|
|
||||||
|
|
||||||
vcg::Point3<S> q(0,0,0);
|
|
||||||
|
|
||||||
if(!IsOrtho())
|
|
||||||
{
|
|
||||||
tx = (tx-c.X())*s.X();
|
|
||||||
ty = (tx-c.Y())*s.Y();
|
|
||||||
|
|
||||||
q[0] = tx/f;
|
|
||||||
q[1] = ty/f;
|
|
||||||
q[2] = f;
|
|
||||||
}
|
|
||||||
|
|
||||||
return q;
|
|
||||||
}
|
|
||||||
/// set the camera specifying the perspective view
|
/// set the camera specifying the perspective view
|
||||||
template<class S>
|
template<class S>
|
||||||
void Camera<S>::SetPerspective(S angle, S ratio, S near_thr, S far_thr, vcg::Point2<S> vp){
|
void Camera<S>::SetPerspective(S angle, S ratio, S near_thr, S far_thr, vcg::Point2<S> vp){
|
||||||
|
|
Loading…
Reference in New Issue