private CoordinateSystem LocallyRotated(Quaternion newRotation) { return new CoordinateSystem(Rotation * newRotation, Origin); }
private CoordinateSystem(Quaternion rotation, Point origin) { Rotation = rotation; Origin = origin; }
private CoordinateSystem GloballyRotated(Quaternion newRotation) { return new CoordinateSystem(newRotation * Rotation, newRotation * Origin); }