update method

  1. @override
void update()
override

update

Implementation

@override
void update() {
  final bodyA = this.bodyA;
  final bodyB = this.bodyB;
  final motor = motorEquation;
  final r1 = rotationalEquation1;
  final r2 = rotationalEquation2;
  final worldAxisA = _hingeConstraintUpdateTmpVec1;
  final worldAxisB = _hingeConstraintUpdateTmpVec2;

  final axisA = this.axisA;
  final axisB = this.axisB;

  super.update();

  // Get world axes
  bodyA.quaternion.vmult(axisA, worldAxisA);
  bodyB.quaternion.vmult(axisB, worldAxisB);
  worldAxisA.tangents(r1.axisA, r2.axisA);
  r1.axisB.copy(worldAxisB);
  r2.axisB.copy(worldAxisB);

  if (motorEquation.enabled) {
    bodyA.quaternion.vmult(this.axisA, motor.axisA);
    bodyB.quaternion.vmult(this.axisB, motor.axisB);
  }
}