Class HorizontalRuler

java.lang.Object
com.amalgamasimulation.graphicaleditor.views.Ruler
com.amalgamasimulation.graphicaleditor.views.HorizontalRuler

public class HorizontalRuler extends Ruler
Implements a horizontal ruler component that displays:
  • Model-space coordinate markings
  • Major and minor tick marks with labels
  • Dynamic scaling based on canvas zoom level

Key characteristics:

  • Position: Fixed at top of content area
  • Content Alignment: Synchronized with visible canvas region
  • Dynamic Scaling: Automatically adjusts tick density on zoom changes
  • Palette Awareness: Accounts for left-side palette offset

Rendering details:

  • Major ticks display labeled values
  • Minor ticks appear between major ticks
  • Labels avoid overlapping through collision detection
  • Coordinates reflect model-space values
See Also:
  • Method Details

    • update

      public void update()
      Description copied from class: Ruler
      Updates ruler rendering based on current:
      • Canvas viewport position
      • Zoom level
      • Content dimensions

      Rendering workflow:

      1. Clears existing ruler graphics
      2. Draws baseline along ruler bottom edge
      3. Calculates tick positions using Ruler.calculateStep(double, double)
      4. Draws major/minor ticks with labels
      5. Applies label collision avoidance

      Coordinate notes:

      • Uses model-space coordinates from parent canvas
      • Accounts for palette offset via adjusted coordinates
      Specified by:
      update in class Ruler