Community Place Version 2.0 Preview Release D1b
Functional Mapping for VRML2.0 Specification
History
- Feb 24 1997 :
copied from mw-latest-spec.htm.
Restrictions
General
- SE-VRML and draft versions of VRML 2.0 are not supported. Files
in these formats may cause mulfunctioning of this product.
- JavaScript/VrmlScript are not supported.
Browser.createVrmlFromString / Browser.createVrmlFromUrl
- When you create nodes using those Java APIs, you cannot put textures
on graphical objects.
PROTO / EXTERNPROTO
- You cannot use instances of PROTO / EXTERNPROTO as a value of
Sony_BindSharedNode's transformNode field.
- You can route events from/to fields in PROTO instances. But it
depends on nodes in the PROTO definition whether the events work correctly.
Please refer to the table below to see which fields work properly.
Nodes of VRML2.0
How to Read Tables
Columns
- func:
Is this functionality implemented.
- route:
event routing is available by ROUTE statement.
- read:
Using Java, you can read the current value of a field, or the last event value for an
eventOut by getting the reference to the field or eventOut.
- write:
Using Java, you can change the current value of a field, or send an event to an eventIn
by getting the reference to the field or eventIn.
Meaning of the marks
- - : not applicable.
- O : implemented.
- X : not implemented yet.
- * : partly implemented.
Implementation of each node
Following tables are categorized by VRML 2.0 Specification on Aug 4, 1996.
Anchor
| | | func | route | read | write |
eventIn | MFNode | addChildren | - | O | - | O |
eventIn | MFNode | removeChildren | - | O | - | O |
exposedField | MFNode | children | O | X | X | X |
exposedField | SFString | description | O | O | O | O |
exposedField | MFString | parameter | O | O | O | O |
exposedField | MFString | url | * | O | O | O |
field | SFVec3f | bboxCenter | * | - | - | - |
field | SFVec3f | bboxSize | * | - | - | - |
Notes:
url field does not support the initial viewpoint described by
"#ViewpointName". Even if you specify a viewpoint, it is ignored.
The place/size of bbox is calculated from the objects in an Anchor
automatically. So, you cannot set them.
Appearance
| | | func | route | read | write |
exposedField | SFNode | material | O | X | X | X |
exposedField | SFNode | texture | O | X | X | X |
exposedField | SFNode | textureTransform | O | X | X | X |
AudioClip
| | | func | route | read | write |
exposedField | SFString | description | O | O | O | O |
exposedField | SFBool | loop | O | O | O | O |
exposedField | SFFloat | pitch | O | O | O | O |
exposedField | SFTime | startTime | O | O | O | O |
exposedField | SFTime | stopTime | O | O | O | O |
exposedField | MFString | url | O | X | X | X |
eventOut | SFTime | duraction_changed | - | X | X | - |
eventOut | SFBool | isActive | - | O | X | - |
Background
| | | func | route | read | write |
eventIn | SFBool | set_bind | - | X | - | X |
exposedField | MFFloat | groundAngle | X | | | |
exposedField | MFFloat | groundColor | X | | | |
exposedField | MFString | backUrl | O | O | O | O |
exposedField | MFString | bottomUrl | O | O | O | O |
exposedField | MFString | frontUrl | O | O | O | O |
exposedField | MFString | leftUrl | O | O | O | O |
exposedField | MFString | rightUrl | O | O | O | O |
exposedField | MFString | topUrl | O | O | O | O |
exposedField | MFFloat | skyAngle | X | | | |
exposedField | MFFloat | skyColor | * | O | | |
eventOut | SFBool | isBound | - | X | X | - |
Notes:
Due to the restriction of our rendering engine, values except for
skyColor[0] will be ignored and the background will be drawn with
it.
Billboard
| | | func | route | read | write |
eventIn | MFNode | addChildren | - | O | - | O |
eventIn | MFNode | removeChildren | - | O | - | O |
exposedField | SFVec3f | axisOfRotation | O | O | O | O |
exposedField | MFNode | children | O | X | X | X |
field | SFVec3f | bboxCenter | * | - | - | - |
field | SFVec3f | bboxSize | * | - | - | - |
Notes:
The place/size of bbox is calculated from the objects in a Billboard
automatically. So, you cannot set them.
Box
| | | func | route | read | write |
field | SFVec3f | size | O | - | - | - |
Collision
| | | func | route | read | write |
eventIn | MFNode | addChildren | - | O | - | O |
eventIn | MFNode | removeChildren | - | O | - | O |
exposedField | MFNode | children | O | X | X | X |
exposedField | SFBool | collide | O | X | X | X |
field | SFVec3f | bboxCenter | X | - | - | - |
field | SFVec3f | bboxSize | X | - | - | - |
field | SFNode | proxy | O | - | - | - |
eventOut | SFTime | collideTime | - | X | X | - |
Color
| | | func | route | read | write |
exposedField | MFColor | color | O | O | O | O |
ColorInterpolator
| | | func | route | read | write |
eventIn | SFFloat | set_fraction | - | O | - | O |
exposedField | MFFloat | key | O | O | O | O |
exposedField | MFColor | keyValue | O | O | O | O |
eventOut | SFColor | value_changed | - | O | O | - |
Cone
| | | func | route | read | write |
field | SFFloat | bottomRadius | O | - | - | - |
field | SFFloat | height | O | - | - | - |
field | SFBool | side | O | - | - | - |
field | SFBool | bottom | O | - | - | - |
Coordinate
| | | func | route | read | write |
exposedField | MFVec3f | point | O | O | O | O |
CoordinateInterpolator
| | | func | route | read | write |
eventIn | SFFloat | set_fraction | - | O | - | O |
exposedField | MFFloat | key | O | O | O | O |
exposedField | MFVec3f | keyValue | O | O | O | O |
eventOut | MFVec3f | value_changed | - | O | O | - |
Cylinder
| | | func | route | read | write |
field | SFBool | bottom | O | - | - | - |
field | SFFloat | height | O | - | - | - |
field | SFFloat | radius | O | - | - | - |
field | SFBool | side | O | - | - | - |
field | SFBool | top | O | - | - | - |
CylinderSensor
Not implemented yet.
DirectionalLight
| | | func | route | read | write |
exposedField | SFFloat | ambientIntensity | X | O | O | O |
exposedField | SFColor | color | O | O | O | O |
exposedField | SFVec3f | direction | O | O | O | O |
exposedField | SFFloat | intensity | O | O | O | O |
exposedField | SFBool | on | O | O | O | O |
Notes:
Our rendering engine doesn't support ambientIntensity.
ElevationGrid
| | | func | route | read | write |
eventIn | MFFloat | set_height | - | | | |
exposedField | SFNode | color | X | X | X | X |
exposedField | SFNode | normal | O | X | X | X |
exposedField | SFNode | texCoord | O | X | X | X |
field | MFFloat | height | O | - | - | - |
field | SFBool | ccw | O | - | - | - |
field | SFBool | colorPerVertex | X | - | - | - |
field | SFFloat | creaseAngle | * | - | - | - |
field | SFBool | normalPerVertex | X | - | - | - |
field | SFBool | solid | O | - | - | - |
field | SFInt32 | xDimension | O | - | - | - |
field | SFFloat | xSpacing | O | - | - | - |
field | SFInt32 | zDimension | O | - | - | - |
field | SFFloat | zSpacing | O | - | - | - |
Notes:
The current implementation assumes 'normalPerVertex' field is always TRUE.
The current implementation ignores 'color' field and 'colorPerVertex' field.
Parameter "creaseAngle" effects as following:
When the normalPerVertex field is TRUE and the normal field is NULL,
normal vectors of each vertex are calculated for smooth shading.
The value of creaseAngle is ignored.
Extrusion
| | | func | route | read | write |
eventIn | MFVec2f | set_crossSection | - | X | - | X |
eventIn | MFRotation | set_orientation | - | X | - | X |
eventIn | MFVec2f | set_scale | - | X | - | X |
eventIn | MFVec3f | set_spine | - | X | - | X |
field | SFBool | beginCap | O | - | - | - |
field | SFBool | ccw | O | - | - | - |
field | SFBool | convex | O | - | - | - |
field | SFFloat | creaseAngle | X | - | - | - |
field | MFVec2f | crossSection | O | - | - | - |
field | SFBool | endCap | O | - | - | - |
field | MFRotation | orientation | O | - | - | - |
field | MFVec2f | scale | O | - | - | - |
field | SFBool | solid | O | - | - | - |
field | MFVec3f | spine | O | - | - | - |
Notes:
The value of creaseAngle is ignored.
Fog
| | | func | route | read | write |
exposedField | SFColor | color | O | O | O | O |
exposedField | SFString | fogType | * | O | O | O |
exposedField | SFFloat | visibilityRange | X | O | O | O |
eventIn | SFBool | set_bind | - | X | - | X |
eventOut | SFBool | isBound | - | X | X | - |
| | | | | | |
Notes:
'fogType' field is ignored and LINEAR blending is assumed.
Only last defined Fog node works.
FontStyle
| | | func | route | read | write |
field | SFString | family | O | - | - | - |
field | SFBool | horizontal | X | - | - | - |
field | MFString | justify | O | - | - | - |
field | SFString | language | X | - | - | - |
field | SFBool | leftToRight | O | - | - | - |
field | SFFloat | size | O | - | - | - |
field | SFFloat | spacing | O | - | - | - |
field | SFString | style | O | - | - | - |
field | SFBool | topToBottom | O | - | - | - |
Notes:
The current implementation does not support multi-byte characters.
Group
| | | func | route | read | write |
eventIn | MFNode | addChildren | - | O | - | O |
eventIn | MFNode | removeChildren | - | O | - | O |
exposedField | MFNode | children | O | X | X | X |
field | SFVec3f | bboxCenter | * | - | - | - |
field | SFVec3f | bboxSize | * | - | - | - |
Notes:
The place/size of bbox is calculated from the objects in a Group
automatically. So, you cannot set them.
ImageTexture
| | | func | route | read | write |
exposedField | MFString | url | O | O | O | O |
field | SFBool | repeatS | * | - | - | - |
field | SFBool | repeatT | * | - | - | - |
Notes:
Our rendering engine supports only repeatS = repeatT = TRUE.
Color of ImageTexture is affected by color of Material.
IndexedFaceSet
| | | func | route | read | write |
eventIn | MFInt32 | set_colorIndex | - | X | - | X |
eventIn | MFInt32 | set_coordIndex | - | X | - | X |
eventIn | MFInt32 | set_normalIndex | - | X | - | X |
eventIn | MFInt32 | set_texCoordIndex | - | X | - | X |
exposedField | SFNode | color | X | | | |
exposedField | SFNode | coord | O | O | X | X |
exposedField | SFNode | normal | O | X | X | X |
exposedField | SFNode | texCoord | O | X | X | X |
field | SFBool | ccw | O | - | - | - |
field | MFInt32 | colorIndex | X | - | - | - |
field | SFBool | colorPerVertex | X | - | - | - |
field | SFBool | convex | O | - | - | - |
field | MFInt32 | coordIndex | O | - | - | - |
field | SFFloat | creaseAngle | * | - | - | - |
field | MFInt32 | normalIndex | O | - | - | - |
field | SFBool | normalPerVertex | O | - | - | - |
field | SFBool | solid | O | - | - | - |
field | MFInt32 | texCoordIndex | O | - | - | - |
Notes:
The current implementation ignores 'color', 'colorIndex' and 'colorPerVertex' fields.
Parameter "normalPerVertex" effects as following:
When the normalPerVertex field is TRUE, smooth shading is used,
and when the normalPerVertex field is FALSE, flat shading is used.
Parameter "creaseAngle" effects as following:
When the normalPerVertex field is TRUE and the normal field is NULL,
normal vectors of each vertex are calculated for smooth shading.
The value of creaseAngle is ignored.
IndexedLineSet
not implemented yet.
Inline
| | | func | route | read | write |
exposedField | MFString | url | * | X | X | X |
field | SFVec3f | bboxCenter | * | - | - | - |
field | SFVec3f | bboxSize | * | - | - | - |
Notes:
If you set more than one URL, only the first one will be loaded.
All the files consisting of a world are loaded at the first stage
of entering the world.
The place/size of bbox is calculated from the objects in a Inline
automatically. So, you cannot set them.
LOD
| | | func | route | read | write |
exposedField | MFNode | level | O | X | X | X |
field | SFVec3f | center | O | - | - | - |
field | MFFloat | range | O | - | - | - |
Notes:
You can specify "level" to be only Shape, Sound, or grouping nodes such as
Transform.
Material
| | | func | route | read | write |
exposedField | SFFloat | ambientIntensity | 0 | O | O | O |
exposedField | SFColor | diffuseColor | O | O | O | O |
exposedField | SFColor | emissiveColor | O | O | O | O |
exposedField | SFFloat | shininess | O | O | O | O |
exposedField | SFColor | specularColor | O | O | O | O |
exposedField | SFFloat | transparency | O | O | O | O |
MovieTexture
| | | func | route | read | write |
exposedField | SFBool | loop | O | O | O | O |
exposedField | SFFloat | speed | O | O | O | O |
exposedField | SFTime | startTime | O | O | O | O |
exposedField | SFTime | stopTime | O | O | O | O |
exposedField | MFString | url | O | X | X | X |
field | SFBool | repeatS | X | - | - | - |
field | SFBool | repeatT | X | - | - | - |
eventOut | SFFloat | duration_changed | - | X | X | - |
eventOut | SFBool | isActive | - | X | X | - |
NavigationInfo
| | | func | route | read | write |
eventIn | SFBool | set_bind | - | X | - | X |
exposedField | MFFloat | avatarSize | X | O | O | O |
exposedField | SFBool | headlight | O | O | O | O |
exposedField | SFFloat | speed | O | O | O | O |
exposedField | MFString | type | O | O | O | O |
exposedField | SFFloat | visibilityLimit | O | O | O | O |
eventOut | SFBool | isBound | - | X | X | - |
Notes:
When the value of visibilityLimit is 0.0, it is replaced with 10000.0,
which is the infinite visibility limit.
Normal
| | | func | route | read | write |
exposedField | MFVec3f | vector | O | X | X | X |
NormalInterpolator
| | | func | route | read | write |
eventIn | SFFloat | set_fraction | - | O | - | O |
exposedField | MFFloat | key | O | O | O | O |
exposedField | MFVec3f | keyValue | O | O | O | O |
eventOut | MFVec3f | value_changed | - | O | O | - |
OrientationInterpolator
| | | func | route | read | write |
eventIn | SFFloat | set_fraction | - | O | - | O |
exposedField | MFFloat | key | O | O | O | O |
exposedField | MFRotation | keyValue | O | O | O | O |
eventOut | SFRotation | value_changed | - | O | O | - |
PixelTexture
not implemented yet.
PlaneSensor
| | | func | route | read | write |
exposedField | SFBool | autoOffset | * | X | X | X |
exposedField | SFBool | enabled | * | X | X | X |
exposedField | SFVec2f | maxPosition | * | X | X | X |
exposedField | SFVec2f | minPosition | * | X | X | X |
exposedField | SFVec3f | offset | * | X | X | X |
eventOut | SFBool | isActive | - | X | X | - |
eventOut | SFVec3f | trackPoint_changed | - | X | X | - |
eventOut | SFVec3f | translation_changed | - | O | X | - |
Notes:
All fields act as having default values.
PointLight
| | | func | route | read | write |
exposedField | SFFloat | ambientIntensity | X | O | O | O |
exposedField | SFVec3f | attenuation | O | O | O | O |
exposedField | SFColor | color | O | O | O | O |
exposedField | SFFloat | intensity | O | O | O | O |
exposedField | SFVec3f | location | O | O | O | O |
exposedField | SFBool | on | O | O | O | O |
exposedField | SFFloat | radius | O | O | O | O |
Notes:
Our rendering engine doesn't support ambientIntensity.
PointSet
not implemented yet.
PositionInterpolator
| | | func | route | read | write |
eventIn | SFFloat | set_fraction | - | O | - | O |
exposedField | MFFloat | key | O | O | O | O |
exposedField | MFVec3f | keyValue | O | O | O | O |
eventOut | SFVec3f | value_changed | - | O | O | - |
ProximitySensor
| | | func | route | read | write |
exposedField | SFVec3f | center | O | O | O | O |
exposedField | SFVec3f | size | O | O | O | O |
exposedField | SFBool | enabled | O | O | O | O |
eventOut | SFBool | isActive | - | O | O | - |
eventOut | SFVec3f | position_changed | - | O | O | - |
eventOut | SFRotation | orientation_changed | - | O | O | - |
eventOut | SFTime | enterTime | - | O | O | - |
eventOut | SFTime | exitTime | - | O | O | - |
ScalarInterpolator
| | | func | route | read | write |
eventIn | SFFloat | set_fraction | - | O | - | O |
exposedField | MFFloat | key | O | O | O | O |
exposedField | MFFloat | keyValue | O | O | O | O |
eventOut | SFFloat | value_changed | - | O | O | - |
Script
| | | func | route | read | write |
exposedField | MFString | url | O | X | X | X |
field | SFBool | directOutput | * | - | - | - |
field | SFBool | mustEvaluate | * | - | - | - |
Notes:
The current implementation assumes 'directOutput' field is always TRUE.
The current implementation assumes 'mustEvaluate' field is always TRUE.
Shape
| | | func | route | read | write |
exposedField | SFNode | appearance | O | X | X | X |
exposedField | SFNode | geometry | O | X | X | X |
Sound
| | | func | route | read | write |
exposedField | SFVec3f | direction | O | O | O | O |
exposedField | SFFloat | intensity | O | O | O | O |
exposedField | SFVec3f | location | O | O | O | O |
exposedField | SFFloat | maxBack | O | O | O | O |
exposedField | SFFloat | maxFront | O | O | O | O |
exposedField | SFFloat | minBack | O | O | O | O |
exposedField | SFFloat | minFront | O | O | O | O |
exposedField | SFFloat | priority | O | O | O | O |
exposedField | SFNode | source | O | X | X | X |
field | SFBool | spatialize | O | - | - | - |
Sphere
| | | func | route | read | write |
field | SFFloat | radius | O | - | - | - |
SphereSensor
| | | func | route | read | write |
exposedField | SFBool | autoOffset | * | X | X | X |
exposedField | SFBool | enabled | * | X | X | X |
exposedField | SFRotation | offset | * | X | X | X |
eventOut | SFBool | isActive | - | X | X | - |
eventOut | SFRotation | rotation_changed | - | O | X | - |
eventOut | SFVec3f | trackPoint_changed | - | X | X | - |
Notes:
All fields act as having default values.
SpotLight
| | | func | route | read | write |
exposedField | SFFloat | ambientIntensity | X | O | O | O |
exposedField | SFVec3f | attenuation | O | O | O | O |
exposedField | SFFloat | beamWidth | O | O | O | O |
exposedField | SFColor | color | O | O | O | O |
exposedField | SFFloat | cutOffAngle | O | O | O | O |
exposedField | SFVec3f | direction | O | O | O | O |
exposedField | SFFloat | intensity | O | O | O | O |
exposedField | SFVec3f | location | O | O | O | O |
exposedField | SFBool | on | O | O | O | O |
exposedField | SFFloat | radius | O | O | O | O |
Notes:
Our rendering engine doesn't support ambientIntensity.
Switch
| | | func | route | read | write |
exposedField | MFNode | choice | O | X | X | X |
exposedField | SFInt32 | whichChoice | O | O | O | O |
Notes:
You can specify "choice" to be only Shape, Sound, or grouping nodes such as
Transform.
Text
| | | func | route | read | write |
exposedField | MFString | string | O | O | O | O |
exposedField | SFNode | fontStyle | O | X | X | X |
exposedField | MFFloat | length | O | X | X | X |
exposedField | SFFloat | maxExtent | O | X | X | X |
Notes:
The current implementation does not support multi-byte characters.
TextureCoordinate
| | | func | route | read | write |
exposedField | MFVec2f | point | O | X | X | X |
TextureTransform
| | | func | route | read | write |
exposedField | SFVec2f | center | O | O | X | X |
exposedField | SFFloat | rotation | O | O | X | X |
exposedField | SFVec2f | scale | O | O | X | X |
exposedField | SFVec2f | translation | O | O | X | X |
TimeSensor
| | | func | route | read | write |
exposedField | SFTime | cycleInterval | O | O | O | O |
exposedField | SFBool | enabled | O | O | O | O |
exposedField | SFBool | loop | O | O | O | O |
exposedField | SFTime | startTime | O | O | O | O |
exposedField | SFTime | stopTime | O | O | O | O |
eventOut | SFTime | cycleTime | - | O | O | - |
eventOut | SFFloat | fraction_changed | - | O | O | - |
eventOut | SFBool | isActive | - | O | O | - |
eventOut | SFTime | time | - | O | O | - |
TouchSensor
| | | func | route | read | write |
exposedField | SFBool | enabled | O | O | O | O |
eventOut | SFVec3f | hitNormal_changed | - | X | X | - |
eventOut | SFVec3f | hitPoint_changed | - | X | X | - |
eventOut | SFVec2f | hitTexCoord_changed | - | X | X | - |
eventOut | SFBool | isActive | - | O | O | - |
eventOut | SFBool | isOver | - | O | O | - |
eventOut | SFTime | touchTime | - | O | O | - |
Transform
| | | func | route | read | write |
eventIn | MFNode | addChildren | - | O | - | O |
eventIn | MFNode | removeChildren | - | O | - | O |
exposedField | SFVec3f | center | O | O | O | O |
exposedField | MFNode | children | O | X | X | X |
exposedField | SFRotation | rotation | O | O | O | O |
exposedField | SFVec3f | scale | O | O | O | O |
exposedField | SFRotation | scaleOrientation | O | O | O | O |
exposedField | SFVec3f | translation | O | O | O | O |
field | SFVec3f | bboxCenter | * | - | - | - |
field | SFVec3f | bboxSize | * | - | - | - |
Notes:
The place/size of bbox is calculated from the objects in Transform
automatically. So, you cannot set them.
Viewpoint
| | | func | route | read | write |
eventIn | SFBool | set_bind | - | O | - | O |
exposedField | SFFloat | fieldOfView | O | O | O | O |
exposedField | SFBool | jump | O | O | O | O |
exposedField | SFRotation | orientation | O | O | O | O |
exposedField | SFVec3f | position | O | O | O | O |
field | SFString | description | * | - | - | - |
eventOut | SFTime | bindTime | - | X | X | - |
eventOut | SFBool | isBound | - | X | X | - |
Notes:
"Go" Menu lists up Viewpoint's descriptions. You can select one of them to
bind the viewpoint.
VisibilitySensor
| | | func | route | read | write |
exposedField | SFVec3f | center | O | O | O | O |
exposedField | SFBool | enabled | O | O | O | O |
exposedField | SFVec3f | size | O | O | O | O |
eventOut | SFTime | enterTime | - | O | O | - |
eventOut | SFTime | exitTime | - | O | O | - |
eventOut | SFBool | isActive | - | O | O | - |
WorldInfo
| | | func | route | read | write |
field | MFString | info | O | - | - | - |
field | SFString | title | O | - | - | - |