The 2D readings over a Board: value labels, wire readings, watch marks and pinned tags. More...
| Import Statement: | import Clayground.Lab |
Four kinds of chip, all screen-space over the 3D board, all projected through the same camera with its scene transform listed as a dependency (without that the binding freezes the moment the rig moves - invisible with a static camera):
V cycles it through the monitor's quantities (off, first, ..., off); a one-quantity domain keeps a binary toggle;viewState().Every reading goes through readingOf, so the labels, the tags and the card cannot disagree; severityOf paints a reading past its band in alarm ink rather than hiding it. hidden takes the wire readings, marks and tags off while somebody is standing on the board - a professor's sentence says which part this is, and a tag repeating it is not carrying its weight.
See also Board, WatchMark, WatchMonitor, and PartCard.
attributes : var |
attributes \readonly \brief The monitor's quantity keys. : var |
board : Board |
camera : var |
keepOut : var |
A screen rectangle ({x, y, width, height}) nothing is drawn into, or null.
The overlay is screen space over a 3D scene, so nothing depth-tests a reading against a character standing in front of its part: a lab with a presenter hands over the presenter's projected box here, and a label whose anchor falls inside it steps aside for as long as it does. Softer than hidden, which takes everything off; the readings a lesson is about stay up everywhere the presenter is not.
labelOf : var |
labelOf \brief \c {(id) -> string}, the short name a watch mark carries. : var |
labelY : real |
labelY \brief World height the value labels and marks anchor at. : real |
monitor : var |
monitor \brief The \l WatchMonitor: quantities, colours, the watched set. : var |
readingOf : var |
readingOf \brief \c {(id, attr) -> string}, one reading, any attribute. : var |
severityOf : var |
severityOf \brief \c {(id, attr) -> "ok" | "warn"}. : var |
showValues : bool |
Labels on. Turning it on lights the first attribute; setting any attribute sets it.
The bool survives as a two-way twin so every read-site, flow verb and committed figure script (showValues = true) keeps meaning something.
solved : var |
Bind the domain's solve result here so every reading re-reads when it changes.
tagY : real |
tags : var |
tags \brief \c {{ id: attr }} - the pinned tags. : var |
valueAttr : string |
The attribute the value labels show; "" is off. Twin of showValues.
view : var |
view \brief The View3D to project through. : var |
wireAttr : string |
wireAttr \brief The one attribute a wire reading rides on; the first quantity. : string |
wireReadingOf : var |
wireReadingOf \brief \c {(wire) -> string | null}; null draws nothing. : var |
wireY : real |
void cycleValueAttr() |
void load(var s) |
void setTag(int id, string attr) |
var state() |