/********************************************************************
 * File: Camera.cpp
 * Author: Keith Schwarz (htiek@cs.stanford.edu)
 *
 * Implementation of the Camera object.
 */
#include "Camera.h"
#include <algorithm>
using namespace std;

/* Default constructor uses the default orientation and
 * positions everything at the origin.
 */
Copper3D::Camera::Camera()
{
	fill(mPosition.begin(), mPosition.end(), 0.0);
}

/* Parameterized constructor sets everything to the requested values. */
Copper3D::Camera::Camera(const Orientation& orientation, const Vector<3>& pos)
  : mOrientation(orientation), mPosition(pos) {
}

/* Set/get the orientation. */
Copper3D::Orientation Copper3D::Camera::orientation() const {
	return mOrientation;
}
void Copper3D::Camera::setOrientation(const Orientation& orientation) {
	mOrientation = orientation;
}

/* Set/get the position. */
Vector<3> Copper3D::Camera::position() const {
	return mPosition;
}
void Copper3D::Camera::setPosition(const Vector<3>& position) {
	mPosition = position;
}
