pitch method
void
pitch(})
Implementation
void pitch(
double angle, {
bool lockView = false,
bool rotateAroundTarget = false,
bool rotateUp = false,
}) {
var localAngle = angle;
final up = this.up;
final targetPosition = target - position;
if (lockView) {
final maxAngleUp = up.angleTo(targetPosition);
if (localAngle > maxAngleUp) {
localAngle = maxAngleUp;
}
var maxAngleDown = (-up).angleTo(targetPosition);
maxAngleDown *= -1.0;
if (localAngle < maxAngleDown) {
localAngle = maxAngleDown;
}
}
final right = this.right;
targetPosition.applyAxisAngle(right, localAngle);
if (rotateAroundTarget) {
position.setValues(
target.x - targetPosition.x,
target.y - targetPosition.y,
target.z - targetPosition.z,
);
} else {
target.setValues(
position.x + targetPosition.x,
position.y + targetPosition.y,
position.z + targetPosition.z,
);
}
if (rotateUp) {
_up.applyAxisAngle(right, angle);
}
}