47 lines
930 B
C++
47 lines
930 B
C++
// -*- C++ -*-
|
|
|
|
#ifndef MBOSTOCK_BLOCK_H
|
|
#define MBOSTOCK_BLOCK_H
|
|
|
|
#include "model.h"
|
|
#include "physics/shape.h"
|
|
#include "room_object.h"
|
|
|
|
namespace mbostock {
|
|
|
|
class AxisAlignedBlock : public RoomObject {
|
|
public:
|
|
AxisAlignedBlock(const Vector& min, const Vector& max);
|
|
|
|
virtual Model& model();
|
|
virtual const Shape& shape() const;
|
|
virtual float slip() const;
|
|
|
|
void setMaterial(const Material& m);
|
|
void setTopMaterial(const Material& m);
|
|
|
|
protected:
|
|
const AxisAlignedBox box_;
|
|
AxisAlignedBoxModel model_;
|
|
};
|
|
|
|
class Block : public RoomObject {
|
|
public:
|
|
Block(const Vector& c, const Vector& x, const Vector& y, const Vector& z);
|
|
|
|
virtual Model& model();
|
|
virtual const Shape& shape() const;
|
|
virtual float slip() const;
|
|
|
|
void setMaterial(const Material& m);
|
|
void setTopMaterial(const Material& m);
|
|
|
|
private:
|
|
const Box box_;
|
|
BoxModel model_;
|
|
};
|
|
|
|
}
|
|
|
|
|
|
#endif
|