source files: [xc]lgt.[ch]
(SEND <light> :GET <:PROPERTY> [<default-value>]) (SEND <light> :SET <:PROPERTY> <value>) (SEND <light> :REMPROP <:PROPERTY>) (SEND <light> :PROPERTY-LIST-LENGTH) (SEND <light> :PROPERTY-LIST-NTH <fix:index> [<default-value>])
As usual, :GET/:SET are used to manipulate both values with special significance to the LIGHT instance, and propertylist values passively stored for the benefit of the user.
If :GET does not find the requested property, it returns <default-value> if one was provided, otherwise signals an error.
:REMPROP removes the given property from the propertylist, returning (:PROPERTY . <val>) if the property was successfully removed, else NIL.
:PROPERTY-LIST-LENGTH and :PROPERTY-LIST-NTH are provided to allow iteration through all properties on thing, the latter's <default-value> works just as on :GET.
The properties with special significance to class LIGHT are :LOCATION :TARGET :UP :RADIANS :DEGREES :DIAMETER :IS-LOCAL :COLOR :AMBIENT-COLOR :TRANSFORM.
:TRANSFORM returns the MATRIX44 which positions the light. The other properties are discussed on the :NEW node.