Interface Shape

All Known Implementing Classes:
CircleShape, ConeShape, CubeShape, LineShape, PointShape, SphereShape

public interface Shape
A geometric region that produces emission points + directions. Implementations are immutable and may sample randomly (ignoring t) or deterministically (using t as a normalized parameter, e.g. position along a line or angle around a circle).

Shapes have no scheduling, ticking, or world coordinate concept: they return offsets relative to an emitter origin. The emitter rotates and translates these into world space.

  • Method Summary

    Modifier and Type
    Method
    Description
    @NotNull ShapePoint
    getPoint(double t)
    Returns one sample from this shape.
    default @NotNull List<ShapePoint>
    getPoints(int count)
    Returns count samples.
  • Method Details

    • getPoint

      @NotNull @NotNull ShapePoint getPoint(double t)
      Returns one sample from this shape. For random shapes (sphere, cone, cube) t is ignored; for deterministic shapes (point, line, circle) t parameterizes the sample.
      Parameters:
      t - Normalized parameter in [0, 1).
      Returns:
      The non-null shape point.
    • getPoints

      @NotNull default @NotNull List<ShapePoint> getPoints(int count)
      Returns count samples. By default, samples at evenly distributed t values. Random shapes naturally ignore t and produce count random samples.
      Parameters:
      count - The non-negative number of samples.
      Returns:
      A non-null list of shape points.