Optional
jsonld: anyOptional
options: IManifestoOptionsAs defined in the temp-draft-4.md ( https://github.com/IIIF/3d/blob/main/temp-draft-4.md#lights ; 12 May 2024) this quantity is the half-angle of the cone of the spotlight.
The inconsistency between this definition of the angle and the definition of fieldOfView for PerspectiveCamera (where the property value defines the full angle) has already been noted: https://github.com/IIIF/api/issues/2284
provisional decision is to return undefined in case that this property is accessed in a light that is not a spotlight
number
The implementation of the intensity is based on temp-draft-4.md and the example 3D manifests lights on 24 Mar 2024. The intensity property in the manifest is an object with declared type 'Value', a numeric property named 'value' and a property named unit . This implementation will only work with a unit == 'relative' and it will be assumed that a relative unit value of 1.0 corresponds to the brightest light source a rendering engine supports.
This code will implement a default intensity of 1.0
returns the PropertyValue which in turn allows a language-specific string encoded in the json as the "label" property
var label = manifest.getLabel().getValue(); // returns the string for default locale
var label = manifest.getLabel().getValue(locale); // locale a string , examples
// would be "fr", "en-US",
: if not null, is either a PointSelector, or an object with an id matching the id of an Annotation instance.
A function that wraps the getProperty function, which client code can use if it is needed to identify when the json value of a property is an IRI -- Internationalized Resource Identifier
If the value of the json value is a bare string, then it will be wrapped in a json object with the string in the property 'id', additionally that property will have a property 'isIRI' which will be true for the literal string case, otherwise false meaning the returned getProperty should be parsed as before.
With the 3D extensions to the IIIF Presentation API the name of this class is misleading, but for now is being retained for the sake backward compatibility with earlier manifesto code and tests.
The 3D extensions allow that the body property of an annotation can be a light, camera, or model, or a SpecificResource object wrapping a light, camera, or model. *