new C++ demo: realtime.cc (real-time scene viewer using SDL)
Quaternion, Camera::rotate and Camera::move
replace all printf's with infomsg wrapper
don't allocate memory in Raytracer::render, just blindly write to provided address
don't creat Container object in Raytracer, let user do it
#include "vector.h"
int main() {
Vector3 a(1, 2, 3);
cout << "=== Vector3 test ===" << endl;
cout << "a = " << a << endl;
Vector3 b(2, 3, 2);
cout << "b = " << b << endl;
cout << "a + b = " << a + b << endl;
cout << "b - a = " << b - a << endl;
cout << "dot(a,b) = " << dot(a,b) << endl;
cout << "cross(a,b) = " << cross(a,b) << endl;
cout << "a * 2 = " << a * 2 << endl;
cout << "3 * b = " << 3 * b << endl;
cout << "-a = " << -a << endl;
cout << "a.mag() = " << a.mag() << endl;
cout << "a.unit() = " << a.unit() << endl;
cout << "a.unit().mag() = " << a.unit().mag() << endl;
return 0;
}