Skip to content

Outlines

Azimuth adds extra outline types built on top of Catnip's LineOutline. These are particularly useful in ponders, where animated visual cues help guide the player's attention.

ExpandingLineOutline

A LineOutline that animates from its midpoint outward, expanding to full length over a configurable number of ticks. The expansion uses an ease-out cubic curve, so it decelerates naturally as it reaches full size.

java
ExpandingLineOutline outline = new ExpandingLineOutline();
outline
    .setGrowingTicks(10)        // how many ticks the expansion takes
    .set(start, end)            // Vec3 start and end points
    .setGrowingTicksElapsed(0); // tick counter increment each tick to drive the animation

Call tickGrowingTicksElapsed() each tick to advance the animation. Once elapsed reaches growingTicks, the outline stays at full size.

ExpandingOutlineInstruction

A ready-to-use Ponder TickingInstruction that wraps ExpandingLineOutline. Line width defaults to 1/16f but can be configured via an optional constructor parameter.

java
scene.addInstruction(new ExpandingOutlineInstruction(
    PonderPalette.WHITE,         // color palette
    new Vec3(0.5, 1.0, 0.5),    // start point
    new Vec3(2.5, 1.0, 0.5),    // end point
    40,                          // total duration in ticks
    10                           // growing ticks — how long the expand animation takes
));

To use a custom line width, pass it as the last argument:

java
scene.addInstruction(new ExpandingOutlineInstruction(
    PonderPalette.WHITE,
    new Vec3(0.5, 1.0, 0.5),
    new Vec3(2.5, 1.0, 0.5),
    40,
    10,
    1 / 8f                       // custom line width (default is 1/16f)
));