namespace graphics {
-Camera::Camera(int width, int height, const Vector<int> *target)
+Camera::Camera(int width, int height, const Vector<float> *target)
: target(target), halfWidth(width / 2), halfHeight(height / 2) {
- assert(target && "construct camera without target");
+
}
-void Camera::SetTarget(const Vector<int> *t) {
- assert(t && "cannot change camera target to 0");
+void Camera::SetTarget(const Vector<float> *t) {
target = t;
}
Vector<int> Camera::CalculateOffset() const {
- return Vector<int>(
- (target->X() - halfWidth) * -1,
- (target->Y() - halfHeight) * -1);
+ if (target) {
+ return Vector<int>(
+ (target->X() - halfWidth) * -1,
+ (target->Y() - halfHeight) * -1);
+ } else {
+ return Vector<int>();
+ }
}
}