X3D
type: NamedIndividual
has head: head
has scene: Scene
profile: Immersive
version: 3.2
no namespace schema location: https://www.web3d.org/specifications/x3d-3.2.xsd

meta 1 1
type: NamedIndividual
type: meta
has parent: head
content: CameraPrototypes.x3d
name: title

meta 1 2
type: NamedIndividual
type: meta
has parent: head
content: Camera, CameraShot and CameraMovement prototypes that demonstrate storyboard capabilities and precise camera operation. This is a developmental effort for potential X3D Specification improvement.
name: description

meta 1 3
type: NamedIndividual
type: meta
has parent: head
content: Don Brutzman and Jeff Weekley
name: creator

meta 1 4
type: NamedIndividual
type: meta
has parent: head
content: 16 March 2009
name: created

meta 1 5
type: NamedIndividual
type: meta
has parent: head
content: 20 January 2020
name: modified

meta 1 6
type: NamedIndividual
type: meta
has parent: head
content: Schematron rules, backed up by initialize() checks
name: TODO

meta 1 7
type: NamedIndividual
type: meta
has parent: head
content: BeyondViewpointCameraNodesWeb3D2009.pdf
name: reference

meta 1 8
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html
name: reference

meta 1 9
type: NamedIndividual
type: meta
has parent: head
content: Camera nodes for Viewpoint navigation control
name: subject

meta 1 10
type: NamedIndividual
type: meta
has parent: head
content: CameraExamples.x3d
name: reference

meta 1 11
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d
name: identifier

meta 1 12
type: NamedIndividual
type: meta
has parent: head
content: http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d
name: reference

meta 1 13
type: NamedIndividual
type: meta
has parent: head
content: X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit
name: generator

meta 1 14
type: NamedIndividual
type: meta
has parent: head
content: ../license.html
name: license

CameraPrototypes.x3d
description: Camera, CameraShot and CameraMovement prototypes that demonstrate storyboard capabilities and precise camera operation. This is a developmental effort for potential X3D Specification improvement.
creator: Don Brutzman and Jeff Weekley
created: 16 March 2009
modified: 20 January 2020
reference: BeyondViewpointCameraNodesWeb3D2009.pdf
reference: https://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html
subject: Camera nodes for Viewpoint navigation control
reference: CameraExamples.x3d
reference: http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d
generator: X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit
license: ../license.html

WorldInfo 2 1
type: NamedIndividual
type: WorldInfo
has parent: Scene
title: CameraPrototypes.x3d

ProtoDeclare 2 2
type: NamedIndividual
type: ProtoDeclare
has parent: Scene
has proto interface: ProtoInterface 2 2 1
has proto body: ProtoBody 2 2 2
appinfo: Camera node provides direct control of scene view to enable cinematic camera animation shot by shot and move by move along with still digital-photography settings for offline rendering of camera images.
name: Camera

field 2 2 1 1
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Text description to be displayed for this Camera
name: description
type: SFString

field 2 2 1 2
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Camera position in local transformation frame, which is default prior to first CameraShot initialPosition getting activated
name: position
type: SFVec3f
value: 0
value: 10

field 2 2 1 3
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Camera rotation in local transformation frame, which is default prior to first CameraShot initialPosition getting activated
name: orientation
type: SFRotation
value: 0
value: 1

field 2 2 1 4
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: pi/4
name: fieldOfView
type: SFFloat
value: 0.7854

field 2 2 1 5
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOnly
appinfo: input fraction drives interpolators
name: set_fraction
type: SFFloat

field 2 2 1 6
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOnly
appinfo: input event binds or unbinds this Camera
name: set_bind
type: SFBool

field 2 2 1 7
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: outputOnly
appinfo: output event indicates when this Camera is bound
name: bindTime
type: SFTime

field 2 2 1 8
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: outputOnly
appinfo: output event indicates whether this Camera is bound or unbound
name: isBound
type: SFBool

field 2 2 1 9
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Vector distance to near clipping plane corresponds to NavigationInfo.avatarSize[0]
name: nearClipPlane
type: SFFloat
value: 0.25

field 2 2 1 10
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Vector distance to far clipping plane corresponds to NavigationInfo.visibilityLimit
name: farClipPlane
type: SFFloat
value: 0.0

field 2 2 1 11
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Array of CameraShot nodes which in turn contain CameraMovement nodes
name: shots
type: MFNode

field 2 2 1 12
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Whether camera headlight is on or off
name: headlight
type: SFBool
value: true

field 2 2 1 13
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Camera headlight color
name: headlightColor
type: SFColor
value: 1

field 2 2 1 14
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Camera headlight intensity
name: headlightIntensity
type: SFFloat
value: 1

field 2 2 1 15
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Camera filter color that modifies virtual lens capture
name: filterColor
type: SFColor
value: 1

field 2 2 1 16
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Camera filter transparency that modifies virtual lens capture
name: filterTransparency
type: SFFloat
value: 1

field 2 2 1 17
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: upVector changes modify camera orientation (and possibly vice versa)
name: upVector
type: SFVec3f
value: 0
value: 1

field 2 2 1 18
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Focal length divided effective aperture diameter indicating width of focal plane
name: fStop
type: SFFloat
value: 5.6

field 2 2 1 19
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: Distance to focal plane of sharpest focus
name: focusDistance
type: SFFloat
value: 10

field 2 2 1 20
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: outputOnly
appinfo: Mark start/stop with true/false output respectively useful to trigger external animations
name: isActive
type: SFBool

field 2 2 1 21
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: outputOnly
appinfo: Total duration of contained enabled CameraShot (and thus CameraMovement) move durations
name: totalDuration
type: SFTime

field 2 2 1 22
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: inputOutput
appinfo: OfflineRender node
name: offlineRender
type: SFNode

field 2 2 1 23
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool
value: false

CameraViewpoint
type: NamedIndividual
type: Viewpoint
has parent: ProtoBody 2 2 2
has IS: IS 2 2 2 1 1
DEF: CameraViewpoint

connect 2 2 2 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: description
proto field: description

connect 2 2 2 1 1 2
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: position
proto field: position

connect 2 2 2 1 1 3
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: orientation
proto field: orientation

connect 2 2 2 1 1 4
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: fieldOfView
proto field: fieldOfView

connect 2 2 2 1 1 5
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: set_bind
proto field: set_bind

connect 2 2 2 1 1 6
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: bindTime
proto field: bindTime

connect 2 2 2 1 1 7
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1
node field: isBound
proto field: isBound

CameraNavInfo
type: NamedIndividual
type: NavigationInfo
has parent: ProtoBody 2 2 2
has IS: IS 2 2 2 2 1
DEF: CameraNavInfo
type: "EXAMINE" "FLY" "ANY"

connect 2 2 2 2 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 2 1
node field: set_bind
proto field: set_bind

connect 2 2 2 2 1 2
type: NamedIndividual
type: connect
has parent: IS 2 2 2 2 1
node field: headlight
proto field: headlight

connect 2 2 2 2 1 3
type: NamedIndividual
type: connect
has parent: IS 2 2 2 2 1
node field: visibilityLimit
proto field: farClipPlane

CameraDirectionalLight
type: NamedIndividual
type: DirectionalLight
has parent: ProtoBody 2 2 2
has IS: IS 2 2 2 3 1
DEF: CameraDirectionalLight
global: true

connect 2 2 2 3 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 3 1
node field: on
proto field: headlight

connect 2 2 2 3 1 2
type: NamedIndividual
type: connect
has parent: IS 2 2 2 3 1
node field: color
proto field: headlightColor

connect 2 2 2 3 1 3
type: NamedIndividual
type: connect
has parent: IS 2 2 2 3 1
node field: intensity
proto field: headlightIntensity

CameraPositionInterpolator
type: NamedIndividual
type: PositionInterpolator
has parent: ProtoBody 2 2 2
has IS: IS 2 2 2 4 1
DEF: CameraPositionInterpolator
key: 0
key: 1
key value: 0

connect 2 2 2 4 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 4 1
node field: set_fraction
proto field: set_fraction

CameraOrientationInterpolator
type: NamedIndividual
type: OrientationInterpolator
has parent: ProtoBody 2 2 2
has IS: IS 2 2 2 5 1
DEF: CameraOrientationInterpolator
key: 0
key: 1
key value: 0
key value: 1

connect 2 2 2 5 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 5 1
node field: set_fraction
proto field: set_fraction

ROUTE 2 2 2 6
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: value_changed
from node: CameraPositionInterpolator
to field: position
to node: CameraViewpoint

ROUTE 2 2 2 7
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: value_changed
from node: CameraOrientationInterpolator
to field: orientation
to node: CameraViewpoint

CameraScript
type: NamedIndividual
type: Script
has parent: ProtoBody 2 2 2
has field: field 2 2 2 8 1
has field: field 2 2 2 8 2
has field: field 2 2 2 8 3
has field: field 2 2 2 8 4
has field: field 2 2 2 8 5
has field: field 2 2 2 8 6
has field: field 2 2 2 8 7
has field: field 2 2 2 8 8
has field: field 2 2 2 8 9
has field: field 2 2 2 8 10
has field: field 2 2 2 8 11
has field: field 2 2 2 8 12
has field: field 2 2 2 8 13
has field: field 2 2 2 8 14
has field: field 2 2 2 8 15
has field: field 2 2 2 8 16
has field: field 2 2 2 8 17
has field: field 2 2 2 8 18
has field: field 2 2 2 8 19
has field: field 2 2 2 8 20
has field: field 2 2 2 8 21
has field: field 2 2 2 8 22
has field: field 2 2 2 8 23
has field: field 2 2 2 8 24
has field: field 2 2 2 8 25
has field: field 2 2 2 8 26
has field: field 2 2 2 8 27
has field: field 2 2 2 8 28
has field: field 2 2 2 8 29
has field: field 2 2 2 8 30
has field: field 2 2 2 8 31
has field: field 2 2 2 8 32
has IS: IS 2 2 2 8 33
DEF: CameraScript
direct output: true
must evaluate: true
source code: ecmascript: function initialize () // CameraScript { // tracePrint ('initialize start...'); NavInfoNode.avatarSize[0] = nearClipPlane; // remaining setups deferred to invocation of checkShots() method // thanks to Yvonne Jung Fraunhofer for diagnosing better approach to function initialization alwaysPrint ('initialize complete'); } function checkShots (eventValue) { tracePrint ('checkShots() method should only occur after initialize() methods in all other Scripts are complete'); // compute totalDuration by summing durations from contained CameraShot and CameraMovement nodes totalDuration= 0; shotCount = shots.length; movesCount = 0; for (i = 0; i < shotCount; i++) // shots index { tracePrint ('shots[' + i + '].moves.length=' + shots[i].moves.length); movesCount += shots[i].moves.length; totalDuration = totalDuration + shots[i].shotDuration; if (shots[i].moves.length == 0) { alwaysPrint ('warning: CameraShot[' + i + '][' + shots[i].description + '] has no contained CameraMove nodes'); } } // size checks before proceeding if (shotCount == 0) { alwaysPrint ('warning: no CameraShot nodes found for the shots, nothing to do!'); return; } else if (movesCount == 0) { alwaysPrint ('warning: no CameraMove nodes found for the shots, nothing to do!'); return; } else if (totalDuration == 0) { alwaysPrint ('warning: totalDuration = 0 seconds, nothing to do!'); return; } tracePrint ('number of contained CameraShot nodes=' + shotCount); tracePrint ('number of contained CameraMove nodes=' + movesCount); tracePrint ('totalDuration=' + totalDuration + ' seconds for all shots and moves'); // compute interpolators var k = 0; // index for latest key, keyValuePosition, keyValueOrientation for (i = 0; i < shotCount; i++) // shots index { if (i==0) // initial entries { key[0] = 0.0; // no previous move keyValuePosition[0] = shots[i].initialPosition; keyValueOrientation[0] = shots[i].initialOrientation; } else // new shot repositions, reorients camera as clean break from preceding shot/move …

field 2 2 2 8 1
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Text description to be displayed for this Camera
name: description
type: SFString

field 2 2 2 8 2
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Camera position in local transformation frame
name: position
type: SFVec3f

field 2 2 2 8 3
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Camera rotation in local transformation frame
name: orientation
type: SFRotation

field 2 2 2 8 4
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOnly
appinfo: input fraction drives interpolators
name: set_fraction
type: SFFloat

field 2 2 2 8 5
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOnly
appinfo: input event binds or unbinds this Camera
name: set_bind
type: SFBool

field 2 2 2 8 6
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: pi/4
name: fieldOfView
type: SFFloat

field 2 2 2 8 7
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Vector distance to near clipping plane
name: nearClipPlane
type: SFFloat

field 2 2 2 8 8
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Vector distance to far clipping plane
name: farClipPlane
type: SFFloat

field 2 2 2 8 9
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Array of CameraShot nodes which in turn contain CameraMovement nodes
name: shots
type: MFNode

field 2 2 2 8 10
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Camera filter color that modifies virtual lens capture
name: filterColor
type: SFColor

field 2 2 2 8 11
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Camera filter transparency that modifies virtual lens capture
name: filterTransparency
type: SFFloat

field 2 2 2 8 12
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: upVector changes modify camera orientation (and possibly vice versa)
name: upVector
type: SFVec3f

field 2 2 2 8 13
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Focal length divided effective aperture diameter indicating width of focal plane
name: fStop
type: SFFloat

field 2 2 2 8 14
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: Distance to focal plane of sharpest focus
name: focusDistance
type: SFFloat

field 2 2 2 8 15
type: NamedIndividual
type: field
has parent: CameraScript
access type: outputOnly
appinfo: Mark start/stop with true/false output respectively useful to trigger external animations
name: isActive
type: SFBool

field 2 2 2 8 16
type: NamedIndividual
type: field
has parent: CameraScript
access type: outputOnly
appinfo: Total duration of contained enabled CameraShot (and thus CameraMovement) move durations
name: totalDuration
type: SFTime

field 2 2 2 8 17
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: OfflineRender node
name: offlineRender
type: SFNode

field 2 2 2 8 18
type: NamedIndividual
type: field
has parent: CameraScript
has children: CameraViewpoint-USE-1
access type: initializeOnly
appinfo: node reference to permit getting setting fields from within Script
name: ViewpointNode
type: SFNode

field 2 2 2 8 19
type: NamedIndividual
type: field
has parent: CameraScript
has children: CameraNavInfo-USE-1
access type: initializeOnly
appinfo: node reference to permit getting setting fields from within Script
name: NavInfoNode
type: SFNode

field 2 2 2 8 20
type: NamedIndividual
type: field
has parent: CameraScript
has children: CameraPositionInterpolator-USE-1
access type: initializeOnly
appinfo: node reference to permit getting setting fields from within Script
name: CameraPI
type: SFNode

field 2 2 2 8 21
type: NamedIndividual
type: field
has parent: CameraScript
has children: CameraOrientationInterpolator-USE-1
access type: initializeOnly
appinfo: node reference to permit getting setting fields from within Script
name: CameraOI
type: SFNode

field 2 2 2 8 22
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: key array for interpolators
name: key
type: MFFloat

field 2 2 2 8 23
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: keyValue array for PositionInterpolator
name: keyValuePosition
type: MFVec3f

field 2 2 2 8 24
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: keyValue array for OrientationInterpolator
name: keyValueOrientation
type: MFRotation

field 2 2 2 8 25
type: NamedIndividual
type: field
has parent: CameraScript
access type: inputOutput
appinfo: whether internal CameraShot and CameraMove nodes are tracking or changed via ROUTE events
name: animated
type: SFBool
value: false

field 2 2 2 8 26
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: perform checkShots() function once immediately after initialization
name: initialized
type: SFBool
value: false

field 2 2 2 8 27
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: how many CameraShot nodes are contained in shots array
name: shotCount
type: SFInt32
value: 0

field 2 2 2 8 28
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: how many CameraMove nodes are contained in moves array
name: movesCount
type: SFInt32
value: 0

field 2 2 2 8 29
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: how many frames were created in current loop
name: frameCount
type: SFFloat
value: 0

field 2 2 2 8 30
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: holding variable
name: startTime
type: SFTime
value: 0

field 2 2 2 8 31
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: holding variable
name: priorTraceTime
type: SFTime
value: 0

field 2 2 2 8 32
type: NamedIndividual
type: field
has parent: CameraScript
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool

connect 2 2 2 8 33 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: description
proto field: description

connect 2 2 2 8 33 2
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: position
proto field: position

connect 2 2 2 8 33 3
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: orientation
proto field: orientation

connect 2 2 2 8 33 4
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: set_fraction
proto field: set_fraction

connect 2 2 2 8 33 5
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: set_bind
proto field: set_bind

connect 2 2 2 8 33 6
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: fieldOfView
proto field: fieldOfView

connect 2 2 2 8 33 7
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: nearClipPlane
proto field: nearClipPlane

connect 2 2 2 8 33 8
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: farClipPlane
proto field: farClipPlane

connect 2 2 2 8 33 9
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: shots
proto field: shots

connect 2 2 2 8 33 10
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: filterColor
proto field: filterColor

connect 2 2 2 8 33 11
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: filterTransparency
proto field: filterTransparency

connect 2 2 2 8 33 12
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: upVector
proto field: upVector

connect 2 2 2 8 33 13
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: fStop
proto field: fStop

connect 2 2 2 8 33 14
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: focusDistance
proto field: focusDistance

connect 2 2 2 8 33 15
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: isActive
proto field: isActive

connect 2 2 2 8 33 16
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: totalDuration
proto field: totalDuration

connect 2 2 2 8 33 17
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: offlineRender
proto field: offlineRender

connect 2 2 2 8 33 18
type: NamedIndividual
type: connect
has parent: IS 2 2 2 8 33
node field: traceEnabled
proto field: traceEnabled

ROUTE 2 2 2 9
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: position
from node: CameraScript
to field: position
to node: CameraViewpoint

ROUTE 2 2 2 10
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: orientation
from node: CameraScript
to field: orientation
to node: CameraViewpoint

ROUTE 2 2 2 11
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: isActive
from node: CameraScript
to field: set_bind
to node: CameraViewpoint

ROUTE 2 2 2 12
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: isActive
from node: CameraScript
to field: set_bind
to node: CameraNavInfo

ROUTE 2 2 2 13
type: NamedIndividual
type: ROUTE
has parent: ProtoBody 2 2 2
from field: isActive
from node: CameraScript
to field: on
to node: CameraDirectionalLight

ProtoDeclare 2 3
type: NamedIndividual
type: ProtoDeclare
has parent: Scene
has proto interface: ProtoInterface 2 3 1
has proto body: ProtoBody 2 3 2
appinfo: CameraShot collects a specific set of CameraMovement animations that make up an individual shot.
name: CameraShot

field 2 3 1 1
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Text description to be displayed for this CameraShot
name: description
type: SFString

field 2 3 1 2
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Whether this CameraShot can be activated
name: enabled
type: SFBool
value: true

field 2 3 1 3
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Set of CameraMovement nodes
name: moves
type: MFNode

field 2 3 1 4
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Setup to reinitialize camera position for this shot
name: initialPosition
type: SFVec3f
value: 0
value: 10

field 2 3 1 5
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Setup to reinitialize camera rotation for this shot
name: initialOrientation
type: SFRotation
value: 0
value: 1

field 2 3 1 6
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Setup to reinitialize aimpoint (relative location for camera direction) for this shot
name: initialAimPoint
type: SFVec3f
value: 0

field 2 3 1 7
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: pi/4
name: initialFieldOfView
type: SFFloat
value: 0.7854

field 2 3 1 8
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Focal length divided effective aperture diameter indicating width of focal plane
name: initialFStop
type: SFFloat
value: 5.6

field 2 3 1 9
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: inputOutput
appinfo: Distance to focal plane of sharpest focus
name: initialFocusDistance
type: SFFloat
value: 10

field 2 3 1 10
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: outputOnly
appinfo: Subtotal duration of contained CameraMovement move durations
name: shotDuration
type: SFTime

field 2 3 1 11
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: outputOnly
appinfo: Mark start/stop with true/false output respectively useful to trigger external animations
name: isActive
type: SFBool

field 2 3 1 12
type: NamedIndividual
type: field
has parent: ProtoInterface 2 3 1
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool
value: false

CameraShotScript
type: NamedIndividual
type: Script
has parent: ProtoBody 2 3 2
has field: field 2 3 2 1 1
has field: field 2 3 2 1 2
has field: field 2 3 2 1 3
has field: field 2 3 2 1 4
has field: field 2 3 2 1 5
has field: field 2 3 2 1 6
has field: field 2 3 2 1 7
has field: field 2 3 2 1 8
has field: field 2 3 2 1 9
has field: field 2 3 2 1 10
has field: field 2 3 2 1 11
has field: field 2 3 2 1 12
has field: field 2 3 2 1 13
has field: field 2 3 2 1 14
has field: field 2 3 2 1 15
has IS: IS 2 3 2 1 16
DEF: CameraShotScript
direct output: true
must evaluate: true
source code: ecmascript: function initialize () // CameraShotScript { // tracePrint ('initialize start...'); // compute shotDuration by summing durations from contained CameraMovement nodes shotDuration = 0; for (i = 0; i < moves.length; i++) { shotDuration = shotDuration + moves[i].duration; } alwaysPrint ('number of contained CameraMove nodes=' + moves.length + ', shotDuration=' + shotDuration + ' seconds'); // tracePrint ('... initialize() complete'); } function set_description (eventValue) // input event received for inputOutput field { description = eventValue; } function set_enabled (eventValue) // input event received for inputOutput field { enabled = eventValue; } function set_moves (eventValue) // input event received for inputOutput field { moves = eventValue; } function set_initialPosition (eventValue) // input event received for inputOutput field { initialPosition = eventValue; } function set_initialOrientation (eventValue) // input event received for inputOutput field { initialOrientation = eventValue; } function set_initialAimPoint (eventValue) // input event received for inputOutput field { initialAimPoint = eventValue; } function set_initialFieldOfView (eventValue) // input event received for inputOutput field { initialFieldOfView = eventValue; } function set_initialFStop (eventValue) // input event received for inputOutput field { initialFStop = eventValue; } function set_initialFocusDistance (eventValue) // input event received for inputOutput field { initialFocusDistance = eventValue; } function set_key (eventValue) // input event received for inputOutput field { key = eventValue; } function set_keyValuePosition (eventValue) // input event received for inputOutput field { keyValuePosition = eventValue; } function set_keyValueOrientation (eventValue) // input event received for inputOutput field { keyValueOrientation = eventValue; } // TODO consider method set_active for constructed Camera node BooleanSequencer to send isActive function tracePrint (outputValue)…

field 2 3 2 1 1
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Text description to be displayed for this CameraShot
name: description
type: SFString

field 2 3 2 1 2
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Whether this CameraShot can be activated
name: enabled
type: SFBool

field 2 3 2 1 3
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Set of CameraMovement nodes
name: moves
type: MFNode

field 2 3 2 1 4
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Setup to reinitialize camera position for this shot
name: initialPosition
type: SFVec3f

field 2 3 2 1 5
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Setup to reinitialize camera rotation for this shot
name: initialOrientation
type: SFRotation

field 2 3 2 1 6
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Setup to reinitialize aimpoint (relative location for camera direction) for this shot
name: initialAimPoint
type: SFVec3f

field 2 3 2 1 7
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: pi/4
name: initialFieldOfView
type: SFFloat

field 2 3 2 1 8
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Focal length divided effective aperture diameter indicating width of focal plane
name: initialFStop
type: SFFloat

field 2 3 2 1 9
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: Distance to focal plane of sharpest focus
name: initialFocusDistance
type: SFFloat

field 2 3 2 1 10
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: outputOnly
appinfo: Subtotal duration of contained CameraMovement move durations
name: shotDuration
type: SFTime

field 2 3 2 1 11
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: outputOnly
appinfo: Mark start/stop with true/false output respectively useful to trigger external animations
name: isActive
type: SFBool

field 2 3 2 1 12
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool

field 2 3 2 1 13
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: key array for interpolators
name: key
type: MFFloat

field 2 3 2 1 14
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: keyValue array for PositionInterpolator
name: keyValuePosition
type: MFVec3f

field 2 3 2 1 15
type: NamedIndividual
type: field
has parent: CameraShotScript
access type: inputOutput
appinfo: keyValue array for OrientationInterpolator
name: keyValueOrientation
type: MFRotation

connect 2 3 2 1 16 1
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: description
proto field: description

connect 2 3 2 1 16 2
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: enabled
proto field: enabled

connect 2 3 2 1 16 3
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: moves
proto field: moves

connect 2 3 2 1 16 4
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: initialPosition
proto field: initialPosition

connect 2 3 2 1 16 5
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: initialOrientation
proto field: initialOrientation

connect 2 3 2 1 16 6
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: initialAimPoint
proto field: initialAimPoint

connect 2 3 2 1 16 7
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: initialFieldOfView
proto field: initialFieldOfView

connect 2 3 2 1 16 8
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: initialFStop
proto field: initialFStop

connect 2 3 2 1 16 9
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: initialFocusDistance
proto field: initialFocusDistance

connect 2 3 2 1 16 10
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: shotDuration
proto field: shotDuration

connect 2 3 2 1 16 11
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: isActive
proto field: isActive

connect 2 3 2 1 16 12
type: NamedIndividual
type: connect
has parent: IS 2 3 2 1 16
node field: traceEnabled
proto field: traceEnabled

ProtoDeclare 2 4
type: NamedIndividual
type: ProtoDeclare
has parent: Scene
has proto interface: ProtoInterface 2 4 1
has proto body: ProtoBody 2 4 2
appinfo: CameraMovement node defines a single camera movement animation including goalPosition, goalOrientation, goalAimPoint and goalFieldOfView.
name: CameraMovement

field 2 4 1 1
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Text description to be displayed for this CameraMovement
name: description
type: SFString

field 2 4 1 2
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Whether this CameraMovement can be activated
name: enabled
type: SFBool
value: true

field 2 4 1 3
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Duration in seconds for this move
name: duration
type: SFFloat
value: 0

field 2 4 1 4
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Goal camera position for this move
name: goalPosition
type: SFVec3f
value: 0
value: 10

field 2 4 1 5
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Goal camera rotation for this move
name: goalOrientation
type: SFRotation
value: 0
value: 1

field 2 4 1 6
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Whether or not camera direction is tracking towards the aimPoint
name: tracking
type: SFBool
value: false

field 2 4 1 7
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Goal aimPoint for this move, ignored if tracking=false
name: goalAimPoint
type: SFVec3f
value: 0

field 2 4 1 8
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Goal fieldOfView for this move
name: goalFieldOfView
type: SFFloat
value: 0.7854

field 2 4 1 9
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Focal length divided effective aperture diameter indicating width of focal plane
name: goalFStop
type: SFFloat
value: 5.6

field 2 4 1 10
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: inputOutput
appinfo: Distance to focal plane of sharpest focus
name: goalFocusDistance
type: SFFloat
value: 10

field 2 4 1 11
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: outputOnly
appinfo: Mark start/stop with true/false output respectively useful to trigger external animations
name: isActive
type: SFBool

field 2 4 1 12
type: NamedIndividual
type: field
has parent: ProtoInterface 2 4 1
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool
value: false

CameraMovementScript
type: NamedIndividual
type: Script
has parent: ProtoBody 2 4 2
has field: field 2 4 2 1 1
has field: field 2 4 2 1 2
has field: field 2 4 2 1 3
has field: field 2 4 2 1 4
has field: field 2 4 2 1 5
has field: field 2 4 2 1 6
has field: field 2 4 2 1 7
has field: field 2 4 2 1 8
has field: field 2 4 2 1 9
has field: field 2 4 2 1 10
has field: field 2 4 2 1 11
has field: field 2 4 2 1 12
has IS: IS 2 4 2 1 13
DEF: CameraMovementScript
direct output: true
must evaluate: true
source code: ecmascript: function initialize () // CameraMovementScript { // tracePrint ('initialize start...'); alwaysPrint ('initialize goalPosition=' + goalPosition.toString() + ', goalOrientation=' + goalOrientation.toString() + ', goalAimPoint=' + goalAimPoint.toString() // + ', tracking=' + tracking.toString() ); if (duration < 0) { alwaysPrint ('error: negative duration=' + duration + ', reset to 0 and ignored'); duration = 0; } else if (duration == 0) { alwaysPrint ('warning: duration=0, nothing to do!'); } tracePrint ('... initialize complete'); } function set_goalAimPoint (eventValue) // input event received for inputOutput field { goalAimPoint_changed = eventValue; tracePrint ('goalAimPoint=' + goalAimPoint.toString()); // updated goalOrientation tracking is handled by Camera recomputing the OrientationInterpolator } function set_description (eventValue) // input event received for inputOutput field { description = eventValue; } function set_enabled (eventValue) // input event received for inputOutput field { enabled = eventValue; } function set_duration (eventValue) // input event received for inputOutput field { duration = eventValue; } function set_goalPosition (eventValue) // input event received for inputOutput field { goalPosition = eventValue; } function set_goalOrientation (eventValue) // input event received for inputOutput field { goalOrientation = eventValue; } function set_tracking (eventValue) // input event received for inputOutput field { tracking = eventValue; } function set_goalFieldOfView (eventValue) // input event received for inputOutput field { goalFieldOfView = eventValue; } function set_goalFStop (eventValue) // input event received for inputOutput field { goalFStop = eventValue; } function set_goalFocusDistance (eventValue) // input event received for inputOutput field { goalFocusDistance = eventValue; } // TODO consider method set_active for constructed Camera node BooleanSequencer to send isActive function tracePrint (outputValue) { if (trac…

field 2 4 2 1 1
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Text description to be displayed for this CameraMovement
name: description
type: SFString

field 2 4 2 1 2
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Whether this CameraMovement can be activated
name: enabled
type: SFBool

field 2 4 2 1 3
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Duration in seconds for this move
name: duration
type: SFFloat

field 2 4 2 1 4
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Goal camera position for this move
name: goalPosition
type: SFVec3f

field 2 4 2 1 5
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Goal camera rotation for this move
name: goalOrientation
type: SFRotation

field 2 4 2 1 6
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Whether or not camera direction is tracking towards the aimPoint
name: tracking
type: SFBool

field 2 4 2 1 7
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Goal aimPoint for this move, ignored if tracking=false
name: goalAimPoint
type: SFVec3f

field 2 4 2 1 8
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Goal fieldOfView for this move
name: goalFieldOfView
type: SFFloat

field 2 4 2 1 9
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Focal length divided effective aperture diameter indicating width of focal plane
name: goalFStop
type: SFFloat

field 2 4 2 1 10
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: inputOutput
appinfo: Distance to focal plane of sharpest focus
name: goalFocusDistance
type: SFFloat

field 2 4 2 1 11
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: outputOnly
appinfo: Mark start/stop with true/false output respectively useful to trigger external animations
name: isActive
type: SFBool

field 2 4 2 1 12
type: NamedIndividual
type: field
has parent: CameraMovementScript
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool

connect 2 4 2 1 13 1
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: description
proto field: description

connect 2 4 2 1 13 2
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: enabled
proto field: enabled

connect 2 4 2 1 13 3
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: duration
proto field: duration

connect 2 4 2 1 13 4
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: goalPosition
proto field: goalPosition

connect 2 4 2 1 13 5
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: goalOrientation
proto field: goalOrientation

connect 2 4 2 1 13 6
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: tracking
proto field: tracking

connect 2 4 2 1 13 7
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: goalAimPoint
proto field: goalAimPoint

connect 2 4 2 1 13 8
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: goalFieldOfView
proto field: goalFieldOfView

connect 2 4 2 1 13 9
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: goalFStop
proto field: goalFStop

connect 2 4 2 1 13 10
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: goalFocusDistance
proto field: goalFocusDistance

connect 2 4 2 1 13 11
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: isActive
proto field: isActive

connect 2 4 2 1 13 12
type: NamedIndividual
type: connect
has parent: IS 2 4 2 1 13
node field: traceEnabled
proto field: traceEnabled

ProtoDeclare 2 5
type: NamedIndividual
type: ProtoDeclare
has parent: Scene
has proto interface: ProtoInterface 2 5 1
has proto body: ProtoBody 2 5 2
appinfo: OfflineRender defines a parameters for offline rendering of Camera animation output to a movie file (or possibly a still shot).
name: OfflineRender

field 2 5 1 1
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: inputOutput
appinfo: Text description to be displayed for this OfflineRender
name: description
type: SFString

field 2 5 1 2
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: inputOutput
appinfo: Whether this OfflineRender can be activated
name: enabled
type: SFBool
value: true

field 2 5 1 3
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: inputOutput
appinfo: Frames per second recorded for this rendering
name: frameRate
type: SFFloat
value: 30

field 2 5 1 4
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: inputOutput
appinfo: Size of frame in number of pixels width and height
name: frameSize
type: SFVec2f
value: 640
value: 480

field 2 5 1 5
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: inputOutput
appinfo: Relative dimensions of pixel height/width typically 1.33 or 1
name: pixelAspectRatio
type: SFFloat
value: 1.33

field 2 5 1 6
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: inputOnly
appinfo: Begin render operation
name: set_startTime
type: SFTime

field 2 5 1 7
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: outputOnly
appinfo: Progress performing render operation (0..1)
name: progress
type: SFFloat

field 2 5 1 8
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: outputOnly
appinfo: Render operation complete
name: renderCompleteTime
type: SFTime

field 2 5 1 9
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: initializeOnly
appinfo: Format of rendered output movie (mpeg mp4 etc.), use first supported format
name: movieFormat
type: MFString
value: "mpeg"

field 2 5 1 10
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: initializeOnly
appinfo: Format of rendered output images (png jpeg gif tiff etc.) use first supported format
name: imageFormat
type: MFString
value: "png"

field 2 5 1 11
type: NamedIndividual
type: field
has parent: ProtoInterface 2 5 1
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool
value: false

OfflineRenderScript
type: NamedIndividual
type: Script
has parent: ProtoBody 2 5 2
has field: field 2 5 2 1 1
has field: field 2 5 2 1 2
has field: field 2 5 2 1 3
has field: field 2 5 2 1 4
has field: field 2 5 2 1 5
has field: field 2 5 2 1 6
has field: field 2 5 2 1 7
has field: field 2 5 2 1 8
has field: field 2 5 2 1 9
has field: field 2 5 2 1 10
has field: field 2 5 2 1 11
has IS: IS 2 5 2 1 12
DEF: OfflineRenderScript
must evaluate: true
source code: ecmascript: function initialize () // OfflineRenderScript { // tracePrint ('initialize start...'); tracePrint ('... initialize complete'); } function set_description (eventValue) // input event received for inputOutput field { description = eventValue; } function set_enabled (eventValue) // input event received for inputOutput field { enabled = eventValue; } function set_frameRate (eventValue) // input event received for inputOutput field { frameRate = eventValue; } function set_frameSize (eventValue) // input event received for inputOutput field { frameSize = eventValue; } function set_pixelAspectRatio (eventValue) // input event received for inputOutput field { pixelAspectRatio = eventValue; } function set_startTime (eventValue) // input event received for inputOnly field { // do something with input eventValue; } function tracePrint (outputValue) { if (traceEnabled) alwaysPrint (outputValue); } function alwaysPrint (outputValue) { // try to ensure outputValue is converted to string despite browser idiosyncracies var outputString = outputValue.toString(); // utility function according to spec if (outputString == null) outputString = outputValue; // direct cast if (description.length > 0) Browser.println ('[OfflineRender: ' + description + '] ' + outputString); else Browser.println ('[OfflineRender] ' + outputString); }

field 2 5 2 1 1
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: inputOutput
appinfo: Text description to be displayed for this OfflineRender
name: description
type: SFString

field 2 5 2 1 2
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: inputOutput
appinfo: Whether this OfflineRender can be activated
name: enabled
type: SFBool

field 2 5 2 1 3
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: inputOutput
appinfo: Frames per second recorded for this rendering
name: frameRate
type: SFFloat

field 2 5 2 1 4
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: inputOutput
appinfo: Size of frame in number of pixels width and height
name: frameSize
type: SFVec2f

field 2 5 2 1 5
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: inputOutput
appinfo: Relative dimensions of pixel height/width typically 1.33 or 1
name: pixelAspectRatio
type: SFFloat

field 2 5 2 1 6
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: inputOnly
appinfo: Begin render operation
name: set_startTime
type: SFTime

field 2 5 2 1 7
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: outputOnly
appinfo: Progress performing render operation (0..1)
name: progress
type: SFFloat

field 2 5 2 1 8
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: outputOnly
appinfo: Render operation complete
name: renderCompleteTime
type: SFTime

field 2 5 2 1 9
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: initializeOnly
appinfo: Format of rendered output movie (mpeg mp4 etc.)
name: movieFormat
type: MFString

field 2 5 2 1 10
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: initializeOnly
appinfo: Format of rendered output images (png jpeg gif tiff etc.)
name: imageFormat
type: MFString

field 2 5 2 1 11
type: NamedIndividual
type: field
has parent: OfflineRenderScript
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool

connect 2 5 2 1 12 1
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: description
proto field: description

connect 2 5 2 1 12 2
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: enabled
proto field: enabled

connect 2 5 2 1 12 3
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: frameRate
proto field: frameRate

connect 2 5 2 1 12 4
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: frameSize
proto field: frameSize

connect 2 5 2 1 12 5
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: pixelAspectRatio
proto field: pixelAspectRatio

connect 2 5 2 1 12 6
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: set_startTime
proto field: set_startTime

connect 2 5 2 1 12 7
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: progress
proto field: progress

connect 2 5 2 1 12 8
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: renderCompleteTime
proto field: renderCompleteTime

connect 2 5 2 1 12 9
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: movieFormat
proto field: movieFormat

connect 2 5 2 1 12 10
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: imageFormat
proto field: imageFormat

connect 2 5 2 1 12 11
type: NamedIndividual
type: connect
has parent: IS 2 5 2 1 12
node field: traceEnabled
proto field: traceEnabled

Background 2 6
type: NamedIndividual
type: Background
has parent: Scene
sky color: 0.282353
sky color: 0.380392
sky color: 0.470588

Anchor 2 7
type: NamedIndividual
type: Anchor
has parent: Scene
has children: Transform 2 7 1
description: launch CameraExample scene
url: "CameraExamples.x3d" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.x3d" "CameraExamples.wrl" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.wrl"

Text 2 7 1 1 1
type: NamedIndividual
type: Text
has parent: Shape 2 7 1 1
has font style: FontStyle 2 7 1 1 1 1
string: "CameraPrototypes.x3d" "defines multiple prototype nodes" "" "Click on this text to see" "CameraExamples.x3d scene"

FontStyle 2 7 1 1 1 1
type: NamedIndividual
type: FontStyle
has parent: Text 2 7 1 1 1
justify: "MIDDLE" "MIDDLE"

Material 2 7 1 1 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 7 1 1 2
diffuse color: 1
diffuse color: 0.2