public IReadOnlyList <IReadOnlyList <Vector2f> > GeneratePhysicsShape(Rectf rect, Vector2f pivot) { if (IsReadPhysicsShape(File.Version)) { Vector2f[][] shape = new Vector2f[PhysicsShape.Count][]; float pivotShiftX = rect.Width * pivot.X - rect.Width * 0.5f; float pivotShiftY = rect.Height * pivot.Y - rect.Height * 0.5f; Vector2f pivotShift = new Vector2f(pivotShiftX, pivotShiftY); for (int i = 0; i < PhysicsShape.Count; i++) { shape[i] = new Vector2f[PhysicsShape[i].Count]; for (int j = 0; j < PhysicsShape[i].Count; j++) { Vector2f point = PhysicsShape[i][j] * PixelsToUnits; shape[i][j] = point + pivotShift; } } return(shape); } else { return(new Vector2f[0][]); } }
public Vector2f(Vector2f copy) : this(copy.X, copy.Y) { }