aeronautic

<Countermeasures>

Every prop of the component.

<Countermeasures> takes every <group> prop, and these:

proptypewhat it is
airframePartial<CountermeasuresAirframe>Where the dispensers are. Compared array by array: keep it in a memo.
flareFlareName | Partial<Flare>The flare: a make's name, or fields over the MJU-7's.
chaffChaffName | Partial<Chaff>The chaff: a cartridge's name, or fields over the RR-178's.
programPartial<Program>What firing lets go.
flightPartial<CountermeasuresFlight>How the aircraft moves through the air.
airPartial<CountermeasuresAir>The altitude and the day's visibility.
lookPartial<CountermeasuresLook>The exposure, and the eye the glare is for.
firenumberFires the program each time it changes. Its first value fires nothing.
targetObject3D | nullSit on this object rather than where the component is. position is then in its frame.
forward[x, y, z]Which way the aircraft flies, in the group's frame. -Z by default.
up[x, y, z]Which way is up for it. +Y by default.
qualityCountermeasuresQualityName | {...}How many flares and chaff clouds are drawn, how many light: low to ultra.
sourceFlight | nullA shared flight for the airspeed, the angles, the altitude and the air's density.
pass`VolumePassnull`
refRef<CountermeasuresHandle>The Countermeasures itself: fire, release, stop, clear, burning, pending.

On the ref, release(dispenser, payload) lets one go, "flare" by default. chaffClouds is how many clouds are drawn, chaffFallMPerS how fast they sink in the air's temperature, chaffTiltRad how far from level their fibres lie, and updateChaff(chaff) changes the cartridge for those to come.