protected Rectangle GetDefaultRect(Rectangle parent) { Rectangle drawRect = new Rectangle(); if (Size.HasFlag(DrawingSize.XMin)) { drawRect.Width = (int)MinimumSize.X; } else if (Size.HasFlag(DrawingSize.XMax)) { drawRect.Width = parent.Size.X; } if (Size.HasFlag(DrawingSize.YMin)) { drawRect.Height = (int)MinimumSize.Y; } else if (Size.HasFlag(DrawingSize.YMax)) { drawRect.Height = parent.Size.Y; } if (drawRect.Width > MaximumSize.X && MaximumSize.X != -1) { drawRect.Width = (int)MaximumSize.X; } if (drawRect.Height > MaximumSize.Y && MaximumSize.Y != -1) { drawRect.Height = (int)MaximumSize.Y; } if (ScalingMethod == ScalingMethod.KeepRatio) { if (drawRect.Width * ratio > MaximumSize.Y) { drawRect.Width = (int)(MaximumSize.Y / ratio); } drawRect.Height = (int)(drawRect.Width * ratio); } if (drawRect.Width < MinimumSize.X && MinimumSize.X != -1) { drawRect.Width = (int)MinimumSize.X; } if (drawRect.Height < MinimumSize.Y && MinimumSize.Y != -1) { drawRect.Height = (int)MinimumSize.Y; } drawRect.Location = LocalPosition.ToPoint() + parent.Location; drawRect.Location += Offset.ToPoint(); drawRect.Location += (drawRect.Size.ToVector2() * -Origin).ToPoint(); // Origin return(drawRect); }
public override void Update(GameTime gameTime) { base.Update(gameTime); drawRectangle.Location = LocationOverride ? LocalPosition.ToPoint() : GlobalPosition.ToPoint(); }