Initial commit.
This commit is contained in:
commit
44b5f2392f
98 changed files with 11750 additions and 0 deletions
50
escalator.cpp
Normal file
50
escalator.cpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
// -*- C++ -*-
|
||||
|
||||
#include "escalator.h"
|
||||
#include "material.h"
|
||||
#include "model.h"
|
||||
#include "physics/particle.h"
|
||||
#include "physics/shape.h"
|
||||
#include "physics/vector.h"
|
||||
|
||||
using namespace mbostock;
|
||||
|
||||
Escalator::Escalator(const Vector& min, const Vector& max, const Vector& v)
|
||||
: box_(min, max), velocity_(v * ParticleSimulator::timeStep()),
|
||||
model_(box_) {
|
||||
model_.setTexOrientation((fabsf(v.x) > fabsf(v.z))
|
||||
? ((v.x > 0) ? AxisAlignedBoxModel::POSITIVE_X
|
||||
: AxisAlignedBoxModel::NEGATIVE_X)
|
||||
: ((v.z > 0) ? AxisAlignedBoxModel::POSITIVE_Z
|
||||
: AxisAlignedBoxModel::NEGATIVE_Z));
|
||||
}
|
||||
|
||||
Model& Escalator::model() {
|
||||
return model_;
|
||||
}
|
||||
|
||||
const Shape& Escalator::shape() const {
|
||||
return box_;
|
||||
}
|
||||
|
||||
void Escalator::step(const ParticleSimulator& s) {
|
||||
offset_.x = fmodf(offset_.x + velocity_.x, 1.f);
|
||||
offset_.z = fmodf(offset_.z + velocity_.z, 1.f);
|
||||
model_.setTexOffset(-offset_.x, -offset_.z);
|
||||
}
|
||||
|
||||
Vector Escalator::velocity(const Vector& x) const {
|
||||
return velocity_;
|
||||
}
|
||||
|
||||
void Escalator::setMaterial(const Material& m) {
|
||||
model_.setMaterial(m);
|
||||
}
|
||||
|
||||
void Escalator::setTopMaterial(const Material& m) {
|
||||
model_.setTopMaterial(m);
|
||||
}
|
||||
|
||||
float Escalator::slip() const {
|
||||
return model_.material().slip();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue