forEachWorldCorner method

void forEachWorldCorner(
  1. Vec3 pos,
  2. Quaternion quat,
  3. void callback(
    1. num x,
    2. num y,
    3. num z
    )
)

Implementation

void forEachWorldCorner(Vec3 pos, Quaternion quat, void Function(num x, num y, num z) callback) {
  final Vec3 e = halfExtents;
  final List<List<double>> corners = [
    [e.x, e.y, e.z],
    [-e.x, e.y, e.z],
    [-e.x, -e.y, e.z],
    [-e.x, -e.y, -e.z],
    [e.x, -e.y, -e.z],
    [e.x, e.y, -e.z],
    [-e.x, e.y, -e.z],
    [e.x, -e.y, e.z],
  ];
  for (int i = 0; i < corners.length; i++) {
    _worldCornerTempPos.set(corners[i][0], corners[i][1], corners[i][2]);
    quat.vmult(_worldCornerTempPos, _worldCornerTempPos);
    pos.vadd(_worldCornerTempPos, _worldCornerTempPos);
    callback(_worldCornerTempPos.x, _worldCornerTempPos.y, _worldCornerTempPos.z);
  }
}