Ejemplo n.º 1
0
void MoveComponent::update(double time) {
  auto user_transform(get_user()->Transform.get());

  if (IgnoreParentRotation() && get_user()->Parent()) {
    rotation_ += AngularSpeed.get() * time;
    math::set_rotation(user_transform, rotation_ - get_user()->Parent()->get_world_rotation());
  } else {
    math::rotate(user_transform, AngularSpeed.get() * time);
  }
  math::translate(user_transform, LinearSpeed.get() * time);
  get_user()->Transform.set(user_transform);

  LinearSpeed = LinearSpeed() - LinearSpeed()*time*LinearDamping();
  AngularSpeed = AngularSpeed() - AngularSpeed()*time*AngularDamping();
}
Ejemplo n.º 2
0
 void ICreature::CastEigenToInduced()
 {
   SetLinearVelocity(LinearVelocity(ZERO, GetTotalLinVelocity()));
   SetAngularSpeed(AngularSpeed(ZERO, GetTotalAngSpeed()));
 }