Skip to content

Fillets

Decorative curved corners for separators.

Terminology Migration

Renamed from "gull wings" to "fillets" for industry-standard clarity.

Old (gull/wing)New (fillets)
Gull_Wings.svelteFillets.svelte
gull_wings()fillets()
gull_wings_bounds()fillets_bounds()
k.radius.gull_wingsk.radius.fillets
hasGullWingshasFillets
hasBothWingshasDoubleFillet
wingCenterfilletCenter
wingDirectionfilletDirection
gullWingsPathfilletsPath
has_gull_wingshas_fillets
has_both_wingshas_double_fillet

Location

src/lib/svelte/layout/Fillets.svelte

Purpose

Draws curved SVG arcs at the ends of separators. Creates a fillet shape — two quarter-circle arcs forming a half-circle that curves opposite to the direction.

Visual

Direction: right     Direction: left
    ╭                    ╮
    ╰                    ╯

Direction: down      Direction: up
    ╮╭                   ╯╰

Props

NameTypeDefaultDescription
radiusnumberk.radius.fillets.thickArc radius
thicknessnumberk.thickness.separator.mainStroke width
colorstring'black'Fill/stroke color
centerPointPoint.zeroPosition offset
directionDirectionDirection.rightWhich way separator extends

State

None — purely presentational.

Rendering

Uses svg_paths.fillets() to generate the SVG path string. The path consists of two quarter-circle arcs that form a half-circle fillet shape.

Path generation (from SVG_Paths.ts):

  1. Calculate baseAngle = direction + Angle.half (opposite to direction)
  2. Compute three points at leftEndAngle, baseAngle, and rightEndAngle
  3. Draw: start → arc to middle → arc to end → line back to start

Dependencies

  • Point — coordinate class
  • Direction — enum with angle values (up, down, left, right)
  • Angle — angle constants
  • svg_paths — singleton from draw/SVG_Paths.ts
FileWhat it provides
ts/draw/SVG_Paths.tssvg_paths.fillets() and svg_paths.fillets_bounds()
ts/types/Angle.tsDirection enum, Angle constants
ts/types/Coordinates.tsPoint class with fromPolar() and offsetBy()