Class HorizontalRuler
java.lang.Object
com.amalgamasimulation.graphicaleditor.views.Ruler
com.amalgamasimulation.graphicaleditor.views.HorizontalRuler
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:
-
Field Summary
Fields inherited from class com.amalgamasimulation.graphicaleditor.views.Ruler
BACKGROUND_COLOR, canvas, infiniteCanvas, MAJOR_TICK_LENGTH, MIN_TICK_DISTANCE, MINOR_TICK_LENGTH, RULER_SIZE, VERTICAL_OFFSET -
Method Summary
Modifier and TypeMethodDescriptionvoidupdate()Updates ruler rendering based on current: Canvas viewport position Zoom level Content dimensionsMethods inherited from class com.amalgamasimulation.graphicaleditor.views.Ruler
calculateStep, getCanvas
-
Method Details
-
update
public void update()Description copied from class:RulerUpdates ruler rendering based on current:- Canvas viewport position
- Zoom level
- Content dimensions
Rendering workflow:
- Clears existing ruler graphics
- Draws baseline along ruler bottom edge
- Calculates tick positions using
Ruler.calculateStep(double, double) - Draws major/minor ticks with labels
- Applies label collision avoidance
Coordinate notes:
- Uses model-space coordinates from parent canvas
- Accounts for palette offset via adjusted coordinates
-