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. *

Hierarchy (view full)

Constructors

Properties

__jsonld: any
context: string
externalResource: IExternalResource
id: string
isAnnotationBody: boolean = true
isCamera: boolean = false
isLight: boolean = false
isModel: boolean = true
isSpecificResource: boolean = false

Accessors

  • get Angle(): undefined | number
  • Returns undefined | number

Methods

  • As 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

    Returns undefined | number

    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 number

  • Returns null | object | PointSelector

    : 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.

    Parameters

    • name: string

    Returns any