Client and server utility library to support draft 3D extensions to to the IIIF Presentation API client and server utility library.
Forked from IIIF-Commons/manifesto.
Goal of implementing the Draft API under development by the IIIF 3D Technical Study Group.
npm install manifesto-3d.js --save
Example manifests conforming to the Draft API .
Prototype Viewers rendering the example manifests.
From start point of the version distributed from JulieWinchester/manifesto
distributed from vincentmarchetti/manifesto#3dtsg-main there were these changes:
This test is no longer useful for the Target of an Annotation:
if ( typeof(target) === "string" ){
// handle case where target is a Scene
}
Draft manifest 3_lights/direction_light_transform uses two ways of encoding the value of a target property for an Annotation: with a json string value of the IRI, or with an object with id
property of the IRI for the Scene. To avoid exponential expansion of if-else code when combined with target property which can also be SpecificResource
resources, the parsing code was changed so tha the value returned from getTarget()
is always an object.
Since the Target property will always be an object referencing a Scene
, or a SpecificResource
whose source
property is a Scene
, the code for handling either would be
if (target.isSpecificResource){
// handle a SpecificResource, with selector property
// and whose source property is the Scene
}
else{
// handle a Scene directly
}
Annotation.getBody3D() is deprecated.
The Annotation.getBody()
from the Presentation 3 code has been extended to support the resources that can be included in a 3d Annotation body property. An important difference is that the getBody()
function returns an array of objects, while the getBody3D()
returns a single object. The deprecated function getBody3D()
should be replaced with getBody()[0]