/*
 * Exercise the 3d point class.
 */
#include <iostream>
#include <string>
#include "point3d.h"
using namespace std;
int main()
{
        // Declare some point objects.  Note that each of these
        // calls the constructor, including the last two.
        Point3d v(3.7, 6.8, -7.1), w(4.5, 9.1), x(1.3, 7, 10.1), y = 2.4, z;
        // Print them.
        cout << "All the points: " << v.tos() << " " << w.tos() << "\n  "
             << x.tos() << " " << y.tos() << " " << z.tos() << endl;
        // Some random arithmetic.
        z = w.plus(y).minus(v);
        cout << w.tos() << " + " << y.tos() << " - " << v.tos() << " =\n  "
             << z.tos() << endl;
        // And let's try out move.
        Point3d start(452.12, 99.38, -118.25);
        Point3d me(start);
        cout << "Road trip." << endl;
        cout << "   " << me.tos() << endl;
        for(int i = 1; i <= 5; ++i) {
                me.move(2.1*i, 4.3*i, 1.2*i);
                cout << "   " << me.tos() << endl;
        }
        for(int i = 5; i > 0; --i) {
                me.move(3.5*i, 4.4, 2.7*i);
                cout << "   " << me.tos() << endl;
        }
        cout << "Net distance: " << start.distance(me) << endl;
        cout << "Volume crossed: " << start.volume(me) << endl;
}