58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
// -*- C++ -*-
|
|
|
|
#include "block.h"
|
|
#include "material.h"
|
|
#include "model.h"
|
|
#include "physics/shape.h"
|
|
#include "physics/vector.h"
|
|
#include "room.h"
|
|
|
|
using namespace mbostock;
|
|
|
|
AxisAlignedBlock::AxisAlignedBlock(const Vector& min, const Vector& max)
|
|
: box_(min, max), model_(box_) {
|
|
}
|
|
|
|
Model& AxisAlignedBlock::model() {
|
|
return model_;
|
|
}
|
|
|
|
const Shape& AxisAlignedBlock::shape() const {
|
|
return box_;
|
|
}
|
|
|
|
void AxisAlignedBlock::setMaterial(const Material& m) {
|
|
model_.setMaterial(m);
|
|
}
|
|
|
|
void AxisAlignedBlock::setTopMaterial(const Material& m) {
|
|
model_.setTopMaterial(m);
|
|
}
|
|
|
|
float AxisAlignedBlock::slip() const {
|
|
return model_.material().slip();
|
|
}
|
|
|
|
Block::Block(const Vector& c, const Vector& x, const Vector& y, const Vector& z)
|
|
: box_(c, x, y, z), model_(box_) {
|
|
}
|
|
|
|
Model& Block::model() {
|
|
return model_;
|
|
}
|
|
|
|
const Shape& Block::shape() const {
|
|
return box_;
|
|
}
|
|
|
|
void Block::setMaterial(const Material& m) {
|
|
model_.setMaterial(m);
|
|
}
|
|
|
|
void Block::setTopMaterial(const Material& m) {
|
|
model_.setTopMaterial(m);
|
|
}
|
|
|
|
float Block::slip() const {
|
|
return model_.material().slip();
|
|
}
|