#VRML++ draft utf8 # # ************************************************** # * VRML++ Parser # * Class Definitions for Standard Nodes of VRML 2.0 # * (c) stephan diehl, 1997 # * # * based on standardNodes.wrl of the VRML 2.0 Parser # * Copyright (C) 1996 Silicon Graphics, Inc. # * Author(s) : Gavin Bell,Daniel Woods (first port) # ************************************************** # # Definitions for all of the nodes built-in to the spec. # Taken almost directly from the VRML 2.0 final spec: # Some Abstract Classes first: CLASS AbstractInterpolator [ eventIn SFFloat set_fraction exposedField MFFloat key [] ] EXTENDS SFNode { } CLASS AbstractSensor [ exposedField SFBool enabled TRUE eventOut SFBool isActive ] EXTENDS SFNode { } CLASS AbstractTexture [ field SFBool repeatS TRUE field SFBool repeatT TRUE ] EXTENDS SFNode { } CLASS AbstractGroup [ eventIn MFNode addChildren eventIn MFNode removeChildren exposedField MFNode children [] field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 -1 ] EXTENDS SFNode { } CLASS AbstractLight [ exposedField SFFloat ambientIntensity 0 exposedField SFColor color 1 1 1 exposedField SFFloat intensity 1 exposedField SFBool on TRUE ] EXTENDS SFNode { } ######## CLASS Anchor [ exposedField SFString description "" exposedField MFString parameter [] exposedField MFString url [] ] EXTENDS AbstractGroup { } CLASS Appearance [ exposedField SFNode material NULL exposedField SFNode texture NULL exposedField SFNode textureTransform NULL ] EXTENDS SFNode { } CLASS AudioClip [ exposedField SFString description "" exposedField SFBool loop FALSE exposedField SFFloat pitch 1.0 exposedField SFTime startTime 0 exposedField SFTime stopTime 0 exposedField MFString url [] eventOut SFTime duration_changed eventOut SFBool isActive ] EXTENDS SFNode { } CLASS Background [ eventIn SFBool set_bind exposedField MFFloat groundAngle [] exposedField MFColor groundColor [] exposedField MFString backUrl [] exposedField MFString bottomUrl [] exposedField MFString frontUrl [] exposedField MFString leftUrl [] exposedField MFString rightUrl [] exposedField MFString topUrl [] exposedField MFFloat skyAngle [] exposedField MFColor skyColor [ 0 0 0 ] eventOut SFBool isBound ] EXTENDS SFNode { } CLASS Billboard [ exposedField SFVec3f axisOfRotation 0 1 0 ] EXTENDS AbstractGroup { } CLASS Box [ field SFVec3f size 2 2 2 ] EXTENDS SFNode { } CLASS Collision [ exposedField SFBool collide TRUE field SFNode proxy NULL eventOut SFTime collideTime ] EXTENDS AbstractGroup { } CLASS Color [ exposedField MFColor color [] ] EXTENDS SFNode { } CLASS ColorInterpolator [ exposedField MFColor keyValue [] eventOut SFColor value_changed ] EXTENDS AbstractInterpolator { } CLASS Cone [ field SFFloat bottomRadius 1 field SFFloat height 2 field SFBool side TRUE field SFBool bottom TRUE ] EXTENDS SFNode { } CLASS Coordinate [ exposedField MFVec3f point [] ] EXTENDS SFNode { } CLASS CoordinateInterpolator [ exposedField MFVec3f keyValue [] eventOut MFVec3f value_changed ] EXTENDS AbstractInterpolator { } CLASS Cylinder [ field SFBool bottom TRUE field SFFloat height 2 field SFFloat radius 1 field SFBool side TRUE field SFBool top TRUE ] EXTENDS SFNode { } CLASS CylinderSensor [ exposedField SFBool autoOffset TRUE exposedField SFFloat diskAngle 0.262 exposedField SFFloat maxAngle -1 exposedField SFFloat minAngle 0 exposedField SFFloat offset 0 eventOut SFRotation rotation_changed eventOut SFVec3f trackPoint_changed ] EXTENDS AbstractSensor { } CLASS DirectionalLight [ exposedField SFVec3f direction 0 0 -1 ] EXTENDS AbstractLight { } CLASS ElevationGrid [ eventIn MFFloat set_height exposedField SFNode color NULL exposedField SFNode normal NULL exposedField SFNode texCoord NULL field SFBool ccw TRUE field SFBool colorPerVertex TRUE field SFFloat creaseAngle 0 field MFFloat height [] field SFBool normalPerVertex TRUE field SFBool solid TRUE field SFInt32 xDimension 0 field SFFloat xSpacing 0.0 field SFInt32 zDimension 0 field SFFloat zSpacing 0.0 ] EXTENDS SFNode { } CLASS Extrusion [ eventIn MFVec2f set_crossSection eventIn MFRotation set_orientation eventIn MFVec2f set_scale eventIn MFVec3f set_spine field SFBool beginCap TRUE field SFBool ccw TRUE field SFBool convex TRUE field SFFloat creaseAngle 0 field MFVec2f crossSection [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ] field SFBool endCap TRUE field MFRotation orientation 0 0 1 0 field MFVec2f scale 1 1 field SFBool solid TRUE field MFVec3f spine [ 0 0 0, 0 1 0 ] ] EXTENDS SFNode { } CLASS Fog [ exposedField SFColor color 1 1 1 exposedField SFString fogType "LINEAR" exposedField SFFloat visibilityRange 0 eventIn SFBool set_bind eventOut SFBool isBound ] EXTENDS SFNode { } CLASS FontStyle [ field SFString family "SERIF" field SFBool horizontal TRUE field MFString justify "BEGIN" field SFString language "" field SFBool leftToRight TRUE field SFFloat size 1.0 field SFFloat spacing 1.0 field SFString style "PLAIN" field SFBool topToBottom TRUE ] EXTENDS SFNode { } CLASS Group [ ] EXTENDS AbstractGroup { } CLASS ImageTexture [ exposedField MFString url [] ] EXTENDS AbstractTexture { } CLASS IndexedFaceSet [ eventIn MFInt32 set_colorIndex eventIn MFInt32 set_coordIndex eventIn MFInt32 set_normalIndex eventIn MFInt32 set_texCoordIndex exposedField SFNode color NULL exposedField SFNode coord NULL exposedField SFNode normal NULL exposedField SFNode texCoord NULL field SFBool ccw TRUE field MFInt32 colorIndex [] field SFBool colorPerVertex TRUE field SFBool convex TRUE field MFInt32 coordIndex [] field SFFloat creaseAngle 0 field MFInt32 normalIndex [] field SFBool normalPerVertex TRUE field SFBool solid TRUE field MFInt32 texCoordIndex [] ] EXTENDS SFNode { } CLASS IndexedLineSet [ eventIn MFInt32 set_colorIndex eventIn MFInt32 set_coordIndex exposedField SFNode color NULL exposedField SFNode coord NULL field MFInt32 colorIndex [] field SFBool colorPerVertex TRUE field MFInt32 coordIndex [] ] EXTENDS SFNode { } CLASS Inline [ exposedField MFString url [] field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 -1 ] EXTENDS SFNode { } CLASS LOD [ exposedField MFNode level [] field SFVec3f center 0 0 0 field MFFloat range [] ] EXTENDS SFNode { } CLASS Material [ exposedField SFFloat ambientIntensity 0.2 exposedField SFColor diffuseColor 0.8 0.8 0.8 exposedField SFColor emissiveColor 0 0 0 exposedField SFFloat shininess 0.2 exposedField SFColor specularColor 0 0 0 exposedField SFFloat transparency 0 ] EXTENDS SFNode { } CLASS MovieTexture [ exposedField SFBool loop FALSE exposedField SFFloat speed 1 exposedField SFTime startTime 0 exposedField SFTime stopTime 0 exposedField MFString url [] eventOut SFFloat duration_changed eventOut SFBool isActive ] EXTENDS AbstractTexture { } CLASS NavigationInfo [ eventIn SFBool set_bind exposedField MFFloat avatarSize [ 0.25, 1.6, 0.75 ] exposedField SFBool headlight TRUE exposedField SFFloat speed 1.0 exposedField MFString type "WALK" exposedField SFFloat visibilityLimit 0.0 eventOut SFBool isBound ] EXTENDS SFNode { } CLASS Normal [ exposedField MFVec3f vector [] ] EXTENDS SFNode { } CLASS NormalInterpolator [ exposedField MFVec3f keyValue [] eventOut MFVec3f value_changed ] EXTENDS AbstractInterpolator { } CLASS OrientationInterpolator [ exposedField MFRotation keyValue [] eventOut SFRotation value_changed ] EXTENDS AbstractInterpolator { } CLASS PixelTexture [ exposedField SFImage image 0 0 0 ] EXTENDS AbstractTexture { } CLASS PlaneSensor [ exposedField SFBool autoOffset TRUE exposedField SFVec2f maxPosition -1 -1 exposedField SFVec2f minPosition 0 0 exposedField SFVec3f offset 0 0 0 eventOut SFVec3f trackPoint_changed eventOut SFVec3f translation_changed ] EXTENDS AbstractSensor { } CLASS PointLight [ exposedField SFVec3f attenuation 1 0 0 exposedField SFVec3f location 0 0 0 exposedField SFFloat radius 100 ] EXTENDS AbstractLight { } CLASS PointSet [ exposedField SFNode color NULL exposedField SFNode coord NULL ] EXTENDS SFNode { } CLASS PositionInterpolator [ exposedField MFVec3f keyValue [] eventOut SFVec3f value_changed ] EXTENDS AbstractInterpolator { } CLASS ProximitySensor [ exposedField SFVec3f center 0 0 0 exposedField SFVec3f size 0 0 0 eventOut SFVec3f position_changed eventOut SFRotation orientation_changed eventOut SFTime enterTime eventOut SFTime exitTime ] EXTENDS AbstractSensor { } CLASS ScalarInterpolator [ exposedField MFFloat keyValue [] eventOut SFFloat value_changed ] EXTENDS AbstractInterpolator { } CLASS Script [ exposedField MFString url [ ] field SFBool directOutput FALSE field SFBool mustEvaluate FALSE ] EXTENDS SFNode { } CLASS Shape [ field SFNode appearance NULL field SFNode geometry NULL ] EXTENDS SFNode { } CLASS Sound [ exposedField SFVec3f direction 0 0 1 exposedField SFFloat intensity 1 exposedField SFVec3f location 0 0 0 exposedField SFFloat maxBack 10 exposedField SFFloat maxFront 10 exposedField SFFloat minBack 1 exposedField SFFloat minFront 1 exposedField SFFloat priority 0 exposedField SFNode source NULL field SFBool spatialize TRUE ] EXTENDS SFNode { } CLASS Sphere [ field SFFloat radius 1 ] EXTENDS SFNode { } CLASS SphereSensor [ exposedField SFBool autoOffset TRUE exposedField SFRotation offset 0 1 0 0 eventOut SFRotation rotation_changed eventOut SFVec3f trackPoint_changed ] EXTENDS AbstractSensor { } CLASS SpotLight [ exposedField SFVec3f attenuation 1 0 0 exposedField SFFloat beamWidth 1.570796 exposedField SFFloat cutOffAngle 0.785398 exposedField SFVec3f direction 0 0 -1 exposedField SFVec3f location 0 0 0 exposedField SFFloat radius 100 ] EXTENDS AbstractLight { } CLASS Switch [ exposedField MFNode choice [] exposedField SFInt32 whichChild -1 ] EXTENDS SFNode { } CLASS Text [ exposedField MFString string [] field SFNode fontStyle NULL field MFFloat length [] field SFFloat maxExtent 0.0 ] EXTENDS SFNode { } CLASS TextureCoordinate [ exposedField MFVec2f point [] ] EXTENDS SFNode { } CLASS TextureTransform [ exposedField SFVec2f center 0 0 exposedField SFFloat rotation 0 exposedField SFVec2f scale 1 1 exposedField SFVec2f translation 0 0 ] EXTENDS SFNode { } CLASS TimeSensor [ exposedField SFTime cycleInterval 1 exposedField SFBool loop FALSE exposedField SFTime startTime 0 exposedField SFTime stopTime 0 eventOut SFTime cycleTime eventOut SFFloat fraction_changed eventOut SFTime time ] EXTENDS AbstractSensor { } CLASS TouchSensor [ eventOut SFVec3f hitNormal_changed eventOut SFVec3f hitPoint_changed eventOut SFVec2f hitTexCoord_changed eventOut SFBool isOver eventOut SFTime touchTime ] EXTENDS AbstractSensor { } CLASS Transform [ exposedField SFVec3f center 0 0 0 exposedField SFRotation rotation 0 0 1 0 exposedField SFVec3f scale 1 1 1 exposedField SFRotation scaleOrientation 0 0 1 0 exposedField SFVec3f translation 0 0 0 ] EXTENDS AbstractGroup { } CLASS Viewpoint [ eventIn SFBool set_bind exposedField SFFloat fieldOfView 0.785398 exposedField SFBool jump TRUE exposedField SFRotation orientation 0 0 1 0 exposedField SFVec3f position 0 0 10 field SFString description "" eventOut SFTime bindTime eventOut SFBool isBound ] EXTENDS SFNode { } CLASS VisibilitySensor [ exposedField SFVec3f center 0 0 0 exposedField SFVec3f size 0 0 0 eventOut SFTime enterTime eventOut SFTime exitTime ] EXTENDS AbstractSensor { } CLASS WorldInfo [ field MFString info [] field SFString title "" ] EXTENDS SFNode { }