public override float WorldDirection() { PhysicalObject parentObj = (PhysicalObject)this.Parent; if (parentObj != null) { return(this.DirectionRelativeToParent + parentObj.WorldDirection()); } else { return(0); } }
public override Vector2 WorldPosition() { if (this.Parent == null) { return(new Vector2(0)); } else { PhysicalObject parentObj = (PhysicalObject)this.Parent; if (parentObj != null) { return(Vector2Utils.RotateVector2(this.PositionRelativeToParent, parentObj.WorldDirection()) + parentObj.WorldPosition()); } else { return(new Vector2(float.NaN)); } } }