source files: [xc]mdl.[ch]
(SEND <lighting-model> :GET <:PROPERTY> [<default-value>]) (SEND <lighting-model> :SET <:PROPERTY> <value>) (SEND <lighting-model> :REMPROP <:PROPERTY>) (SEND <lighting-model> :PROPERTY-LIST-LENGTH) (SEND <lighting-model> :PROPERTY-LIST-NTH <fix:index> [<default-value>])
As usual, :GET/:SET are used to manipulate both values with special significance to the LIGHT-MODEL instance, and propertylist values passively stored for the benefit of the user. The properties with special signficance are those discussed under :NEW.
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.