function out = cam_obj(cam,scl)
out = cam;
pos = cam.pos;
target = cam.target;
vn = pos - target;
up = [0 0 1];
vz = vn/norm(vn);
vx = cross(up,vz);
vx = vx/norm(vx);
vy = cross(vz,vx);
R = [vx; vy; -vz;];
T = [R -R*pos'];
out.T = T;
b = 1;
Tinv = [R' pos'];
out.Tinv = Tinv;
if nargin<2
return
end
fr = [-scl -scl b 1; scl -scl b 1; scl scl b 1; -scl scl b 1; -scl -scl b 1];
pts = Tinv*fr';
mypts = pos'*ones(1,2) + [ zeros(3,1) -b*vz' ];
plot3(mypts(1,:),mypts(2,:),mypts(3,:),'b','LineWidth',2);
hold on;
plot3(pts(1,:),pts(2,:),pts(3,:),'b');
hold off;
axis equal
xlabel('x axis');
ylabel('y axis');
zlabel('z axis');