Schemas / Geometry / paint

rig.geometry.arc

v0.31.0 · draft 7 fields 6 required

Fields

FieldTypeMeaning
centerX float required Centre X, local space
centerY float required Centre Y, local space
radiusX float required Radius along local X
radiusY float required Radius along local Y
startAngleDegrees float required Start angle, 0 along +X, increasing toward +Y
endAngleDegrees float required End angle, same convention
pie bool optional Optional. Absent = false; true closes the contour through the centre

Circular or elliptical arc (or pie wedge). Format when present.

A circle is an arc with equal radii. Same fields as rig.geometry.ellipse, plus the angle span.

Rotation of an elliptical arc belongs on rig.spatial.transform - do not bake a major-axis angle into this component. Local (0,0) is the authored centre - see rig.spatial.anchor.

Angles are degrees, not radians, matching fovYDegrees on rig.spatial.camera.

Sweep runs from start to end in increasing angle. An end angle below the start wraps past 360; the values are not normalized, so a 720-degree sweep is a legal double loop and a host that cannot draw one clamps rather than takes the modulus.

Full axis-aligned ellipses (no start/end span) use rig.geometry.ellipse. Freeform resolved strokes use rig.geometry.path - do not put circular or elliptical arcs on path.

Appearance: rig.paint.fill_stroke.

JSON Schema

Resolves at https://rig.works/schemas/rig.geometry.arc.schema.jsonraw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.geometry.arc.schema.json",
  "title": "rig.geometry.arc",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "centerX": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "centerY": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "radiusX": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "radiusY": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "startAngleDegrees": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "endAngleDegrees": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "pie": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    }
  },
  "required": [
    "centerX",
    "centerY",
    "radiusX",
    "radiusY",
    "startAngleDegrees",
    "endAngleDegrees"
  ]
}