/* camera.h 
* This class is for setting up camera objects that can be used to
* keep track of parameters that affect how the view is rendered.
* #cxe- Started Wed Apr  3 13:22:34 PST 2002 */
/* $Date$ - $Revision$ */

#include "vector.h"

class camera {
public:
void campoint( Vector & ); Vector campoint();
void tarpoint( Vector & ); Vector tarpoint();
void aratio( float & ); float aratio();
void zoom( float & ); float zoom();
void roll( float & ); float roll();
void hlr_on();
      bool hlr(); 
            void hlr_off();
void trilines_on();
      bool trilines(); 
            void trilines_off(); 
void ppmark(float size);
      float ppmark();
void shallowcull(float ang);
      float shallowcull();
void hidscolor(char *color);
      char * hidscolor();

void print(ostream *os);

private:
/* parameters that govern the scene - supplied by options */
Vector          CameraPos,
                TargetPos;
float         AspectRatio, 
               CameraZoom,
               CameraRoll,
              ShallowCull,
            PiercePtMarks;
char *          HidsColor;
bool             HideFlag,
           AddLinesToTris;
};

ostream &operator<<(ostream &os, camera &C);
