43 lines
882 B
C++
43 lines
882 B
C++
// -*- C++ -*-
|
|
|
|
#ifndef MBOSTOCK_TRANSLATING_H
|
|
#define MBOSTOCK_TRANSLATING_H
|
|
|
|
#include "model.h"
|
|
#include "physics/shape.h"
|
|
#include "physics/translation.h"
|
|
#include "physics/vector.h"
|
|
#include "room_object.h"
|
|
#include "transforming.h"
|
|
|
|
namespace mbostock {
|
|
|
|
class TranslatingModel : public Model {
|
|
public:
|
|
TranslatingModel(Model& m, const Translation& t);
|
|
|
|
virtual void initialize();
|
|
virtual void display();
|
|
|
|
private:
|
|
Model& model_;
|
|
const Translation& translation_;
|
|
};
|
|
|
|
class TranslatingRoomObject : public TransformingRoomObject {
|
|
public:
|
|
TranslatingRoomObject(RoomObject* o, const Translation& t);
|
|
|
|
virtual Model& model();
|
|
virtual const Shape& shape() const;
|
|
virtual Vector velocity(const Vector& x) const;
|
|
|
|
private:
|
|
const Translation& translation_;
|
|
TranslatingShape shape_;
|
|
TranslatingModel model_;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|