Skip to content

Commit 0498298

Browse files
committed
Add type: ClassName to all Classes
1 parent 99fb71e commit 0498298

File tree

2 files changed

+78
-44
lines changed

2 files changed

+78
-44
lines changed

source/presentation/4.0/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1289,7 +1289,7 @@ If you go backwards from step n in a linear-nav, **and** you have applied one or
12891289

12901290
Before applying the content state to the Scene, the client should reset the Scene to its original state as provided by the Manifest.
12911291

1292-
// I am assuming reset is always true except in `sequence` - otherwise it's completely unpredictable!! or is it... arbitrary navigation, state provided by initialization content states, etc...
1292+
// I am assuming reset is always true except in `linear-nav` - otherwise it's completely unpredictable!! or is it... arbitrary navigation, state provided by initialization content states, etc...
12931293

12941294
#### Contribute additional information permanently
12951295

source/presentation/4.0/model.md

+77-43
Original file line numberDiff line numberDiff line change
@@ -245,16 +245,22 @@ FIXME: It is an error to select a temporal region of a Scene that does not have
245245

246246
#### Timeline
247247

248+
`"type": "Timeline"`
249+
248250
A Timeline is a Container that represents only a temporal duration, measured in seconds. Timelines allow audio content to be presented, but do not allow anything with a height or width like an image or video. The duration of the Timeline is given in the `duration` property.
249251

250252
#### Canvas
251253

254+
`"type": "Canvas"`
255+
252256
A Canvas is a Container that represents a particular rectangular 2 dimensional view of the object and has content resources associated with it or with parts of it. This aspect ratio is defined by the `height` and `width` properties. A Canvas _MAY_ also have a duration, given in the `duration` property, allowing audio and video to be correctly positioned in time as well as the 2 dimensional space.
253257

254258
FIXME: arbitrary units
255259

256260
#### Scene
257261

262+
`"type": "Scene"`
263+
258264
A Scene is a Container that represents an infinitely large three-dimensional space, with an optional `duration` property. Scenes have infinite height (y axis), width (x axis) and depth (z axis), where 0 on each axis (the origin of the coordinate system) is treated as the center of the scene's space. From a perspective looking along the z axis towards negative infinity, the positive y axis points upwards and the positive x axis points to the right (a [right-handed Cartesian coordinate system](https://en.wikipedia.org/wiki/Right-hand_rule)).
259265

260266
<img src="https://raw.githubusercontent.com/IIIF/3d/eds/assets/images/right-handed-cartesian.png" title="Right handed cartesian coordinate system" alt="diagram of Right handed cartesian coordinate system" width=200 />
@@ -274,6 +280,8 @@ The following set of classes are defined by the W3C's [Web Annotation Data Model
274280

275281
#### Annotation
276282

283+
`"type": "Annotation"`
284+
277285
Annotations are used to associate content resources with Containers, as well as for transcriptions, commentary, tags and the association of other content. This provides a single, unified method for aligning information, and provides a standards-based framework for distinguishing parts of resources and parts of Canvases.
278286

279287
Annotations _MUST_ have their own HTTP(S) URIs, conveyed in the `id` property. The JSON-LD description of the Annotation _SHOULD_ be returned if the URI is dereferenced, according to the [Web Annotation Protocol][org-w3c-webanno-protocol].
@@ -287,6 +295,8 @@ Note that the Web Annotation data model defines different patterns for the `valu
287295

288296
#### Annotation Collection
289297

298+
`"type": "AnnotationCollection"`
299+
290300
Annotation Collections allow groups of Annotations to be recorded. For example, all of the English translation Annotations of a medieval French document could be kept separate from the transcription or an edition in modern French, or the director's commentary on a film can be separated from the script.
291301

292302
Annotation Collections _MUST_ have a URI, and it _SHOULD_ be an HTTP(S) URI. They _SHOULD_ have a `label` and _MAY_ have any of the other descriptive, linking or rights properties.
@@ -296,6 +306,8 @@ Annotation Collections are paged rather than enumerated. The first page of items
296306

297307
#### Annotation Page
298308

309+
`"type": "AnnotationPage"`
310+
299311
An ordered list of Annotations, typically associated with a Container, but may be referenced from other types of resource as well. Annotation Pages enumerate and order lists of Annotations, in the same way that Collection Pages order lists of Manifests and Collections within the containing Collection.
300312

301313
An Annotation Page _MUST_ have an HTTP(S) URI given in `id`, and _MAY_ have any of the other properties defined in this specification or the Web Annotation specification. The Annotations are listed in the `items` property of the Annotation Page.
@@ -309,14 +321,20 @@ The definition of `label` in the Web Annotation specification does not produce J
309321

310322
#### Specific Resource
311323

324+
`"type": "SpecificResource"`
325+
312326
A Specific Resource is a resource in the context of an Annotation. They are used to record further properties or relationships needed to understand the particular contextual use, such as which part of the resource is used or how it should be rendered. In IIIF, the Specific Resource model from the Web Annotation Data Model has some additional properties beyond those defined by the W3C, such as `transform`.
313327

314328
#### Textual Body
315329

330+
`"type": "TextualBody"`
331+
316332
A Textual Body is an embedded resource within an Annotation that carries, as the name suggests, a text as the body of the Annotation. It is defined by the Web Annotation Data Model, and this specification defines a new property for `position` that allows it to be positioned within a Container.
317333

318334
#### Choice
319335

336+
`"type": "Choice"`
337+
320338
A Choice is a Web Annotation construction that allows one entry from a list to be selected for processing or display. This specification allows `behavior` to be added to a Choice to influence how it is processed.
321339

322340

@@ -370,15 +388,11 @@ There are common use cases in which a point, rather than a range or area, is the
370388

371389
#### WKT Selector
372390

373-
Well-known text, or WKT, is an ISO standard method for describing 2 and 3 dimensional geometries. This selector thus goes beyond what the Web Annotation's SvgSelector enables by incorporating the z axis, as well as additional types of selection such as MultiPolygon. Additional types, such as CIRCULARSTRING may also be supported.
391+
`"type": "WktSelector"`
374392

375-
WKT Selectors have the following properties:
393+
Well-known text, or WKT, is an ISO standard method for describing 2 and 3 dimensional geometries. This selector thus goes beyond what the Web Annotation's SvgSelector enables by incorporating the z axis, as well as additional types of selection such as MultiPolygon. Additional types, such as CIRCULARSTRING may also be supported.
376394

377-
| Name | Description |
378-
|-------|-------------|
379-
| id | The HTTP(S) URI of the selector |
380-
| type | The class of the selector, which must be "WktSelector" |
381-
| value | The WKT string that defines the geometry to be selected |
395+
WKT Selectors _MUST_ have a `value` property, which is the WKT string that defines the geometry to be selected.
382396

383397
```json
384398
{
@@ -393,14 +407,9 @@ WKT Selectors have the following properties:
393407

394408
#### Audio Content Selector
395409

396-
Video content resources consist of both visual and audio content within the same bit-level representation. There are situations when it is useful to refer to only one aspect of the content – either the visual or the audio, but not both. For example, an Annotation might associate only the visual content of a video that has spoken English in the audio, and an audio file that has the translation of that content in Spanish. The Audio Content Selector selects all of the audio content from an A/V content resource, and may be further refined with subsequent selectors to select a segment of it.
397-
398-
Audio Content Selectors have the following properties:
410+
`"type": "AudioContentSelector"`
399411

400-
| Name | Description |
401-
|------|-------------|
402-
| id | The HTTP(S) URI of the selector |
403-
| type | The class of the selector, which must be "AudioContentSelector" |
412+
Video content resources consist of both visual and audio content within the same bit-level representation. There are situations when it is useful to refer to only one aspect of the content – either the visual or the audio, but not both. For example, an Annotation might associate only the visual content of a video that has spoken English in the audio, and an audio file that has the translation of that content in Spanish. The Audio Content Selector selects all of the audio content from an A/V content resource, and may be further refined with subsequent selectors to select a segment of it.
404413

405414

406415
```json
@@ -413,14 +422,9 @@ Audio Content Selectors have the following properties:
413422

414423
#### Visual Content Selector
415424

416-
Similar to Audio Content Selectors, Visual Content Selectors select the visual aspects of the content of an A/V content resource. They may be further refined by subsequent selectors that select an area or temporal segment of it.
417-
418-
Visual Content Selectors have the following properties:
425+
`"type": "VisualContentSelector"`
419426

420-
| Name | Description |
421-
|------|-------------|
422-
| id | The HTTP(S) URI of the selector |
423-
| type | The class of the selector, which must be "VisualContentSelector" |
427+
Similar to Audio Content Selectors, Visual Content Selectors select the visual aspects of the content of an A/V content resource. They may be further refined by subsequent selectors that select an area or temporal segment of it.
424428

425429
```json
426430
{
@@ -432,16 +436,11 @@ Visual Content Selectors have the following properties:
432436

433437
#### Animation Selector
434438

435-
More interactive content resources, such as 3d models, may have activatable animations or similar features. For example, a model of a box might have an animation that opens the lid and a second animation that closes the lid. In order to activate those animations, they need to be selectable, and thus the specification defines an Animation Selector.
436-
437-
Animation Selectors have the following properties:
439+
`"type": "AnimationSelector"`
438440

439-
| Name | Description |
440-
|-------|-------------|
441-
| id | The HTTP(S) URI of the selector |
442-
| type | The class of the selector, which must be "AnimationSelector" |
443-
| value | The identity of the animation in whichever form is used by the source resource |
441+
More interactive content resources, such as 3D models, may have animations or similar features that can be _activated_ by user interaction. For example, a model of a box might have an animation that opens the lid and a second animation that closes the lid. In order to activate those animations, they need to be selectable, and thus the specification defines an Animation Selector.
444442

443+
Animation Selectors _MUST_ have a `value` property, which is the identity of the animation in whichever form is used by the source resource.
445444

446445
```json
447446
{
@@ -451,7 +450,9 @@ Animation Selectors have the following properties:
451450
}
452451
```
453452

454-
#### ImageApiSelector
453+
#### IIIF Image API Selector
454+
455+
`"type": "ImageApiSelector"`
455456

456457
FIXME: write this
457458

@@ -460,6 +461,8 @@ FIXME: write this
460461

461462
### Range
462463

464+
`"type": "Range"`
465+
463466
Ranges are used to represent structure within a Manifest beyond the default order of the Containers in the `items` property.
464467

465468
Ranges _MUST_ have URIs and they _SHOULD_ be HTTP(S) URIs. Top level Ranges are [embedded][prezi30-terminology] or externally [referenced][prezi30-terminology] within the Manifest in a `structures` property. These top level Ranges then embed or reference other Ranges, Containers or parts of Containers in the `items` property. Each entry in the `items` property _MUST_ be a JSON object, and it _MUST_ have the `id` and `type` properties. If a top level Range needs to be dereferenced by the client, then it _MUST NOT_ have the `items` property, such that clients are able to recognize that it should be retrieved in order to be processed.
@@ -480,17 +483,20 @@ FIXME: If either the position or direction is not specified, then the position d
480483
The region of the Scene's space that is observable by the camera is bounded by two planes orthogonal to the direction the camera is facing, given in the `near` and `far` properties, (PERSPECTIVE) and a vertical projection angle that provides the top and bottom planes of the region. (viewHeight?)
481484

482485

483-
##### OrthographicCamera
486+
##### Orthographic Camera
487+
488+
`"type": "OrthographicCamera"`
484489

485490
`OrthographicCamera` removes visual perspective, resulting in object size remaining constant regardless of its distance from the camera
486491

487492

488-
##### PerspectiveCamera
493+
##### Perspective Camera
494+
495+
`"type": "PerspectiveCamera"`
489496

490497
`PerspectiveCamera` mimics the way the human eye sees, in that objects further from the camera are smaller
491498

492-
!!! Properties
493-
...
499+
Properties...
494500

495501

496502
```json
@@ -519,29 +525,37 @@ The region of the Scene's space that is observable by the camera is bounded by t
519525

520526
##### Ambient Light
521527

528+
`"type": "AmbientLight"`
529+
522530
Ambient Lights evenly illuminates all objects in the scene, and does not have a direction or position.
523531

524532

525533
##### Directional Light
526534

527-
Directional Lights emits in a specific direction as if it is infinitely far away and the rays produced from it are all parallel. It does not have a specific position.
535+
`"type": "DirectionalLight"`
528536

529-
If a DirectionalLight does not have an explicit direction, then the default is in the negative y direction (downwards).
537+
Directional Lights emits in a specific direction as if it is infinitely far away and the rays produced from it are all parallel. It does not have a specific position.
530538

539+
If a DirectionalLight does not have an explicit direction, then the default is in the negative y direction (downwards).
531540

532-
this is really that the light always has a direction of (-y) and is rotated from there. So no rotation = "default" direction.
541+
This is really that the light always has a direction of (-y) and is rotated from there. So no rotation = "default" direction.
533542

534543

535544

536545
##### Point Light
537546

538-
Point Lights emits from a single point within the scene in all directions.
547+
`"type": "PointLight"`
548+
549+
Point Lights emits from a single point within the scene in all directions.
550+
539551

540552
##### Spot Light
541553

554+
`"type": "SpotLight"`
555+
542556
Spot Lights emit a cone of light from a single point in a given direction.
543557

544-
If a SpotLight does not have an explicit direction, then the default is in the negative y direction (downwards).
558+
If a SpotLight does not have an explicit direction, then the default is in the negative y direction (downwards).
545559

546560

547561

@@ -551,12 +565,16 @@ All have `source`, `volume`
551565

552566
##### Ambient Audio
553567

568+
`"type": "AmbientAudio"`
569+
554570

555571
##### Point Audio
556572

573+
`"type": "PointAudio"`
557574

558575
##### Spot Audio
559576

577+
`"type": "SpotAudio"`
560578

561579
```json
562580
{
@@ -582,24 +600,39 @@ here are the rules about transforms?
582600

583601

584602

585-
##### RotateTransform
603+
##### Rotate Transform
604+
605+
`"type": "RotateTransform"`
586606

587607
A RotateTransform rotates the local coordinate space around the given axis in a counter-clockwise direction around the axis itself (e.g. around a pivot point of 0 on the axis). A point that was at x=1,y=1 and was rotated 90 degrees around the x axis would be at x=1,y=0,z=1. If an axis value is not specified, then it is not changed, resulting in a default of 0.0
588608

589609

590-
##### ScaleTransform
610+
##### Scale Transform
611+
612+
`"type": "ScaleTransform"`
591613

592614
A ScaleTransform applies a multiplier to one or more axes in the local coordinate space. A point that was at 3.5, after applying a ScaleTransform of 2.0 would then be at 7.0. If an axis value is not specified, then it is not changed, resulting in a default of 1.0
593615

594-
##### TranslateTransform
616+
##### Translate Transform
617+
618+
`"type": "TranslateTransform"`
595619

596620
A TranslateTransform moves all of the objects in the local coordinate space the given distance along the axis. A point that was at x=1.0, after applying a TranslateTransform of x=1.0 would be at x=2.0. If an axis value is not specified then it is not changed, resulting in a default of 0.0
597621

598622

599623
### Utility Classes
624+
600625
#### Agent
626+
627+
`"type": "Agent"`
628+
601629
#### Service
602-
#### UnitValue
630+
631+
`"type": "Service"`
632+
633+
#### Unit Value
634+
635+
`"type": "UnitValue"`
603636

604637

605638

@@ -650,6 +683,7 @@ The value _MUST_ be a floating point number greater than 0 and less than 90, and
650683
```json
651684
"angle": 15.0
652685
```
686+
653687
##### annotations
654688
{: #annotations}
655689

0 commit comments

Comments
 (0)