VRML::VRML2::Standard.pm - implements VRML 2.0/97 standard nodes

- NAME
- SYNOPSIS
- DESCRIPTION
  - Grouping Nodes
  - Special Groups
  - Common Nodes
  - Geometry
  - Geometric Properties
  - Appearance
  - Sensors
  - Interpolators
  - Bindable Nodes
  - other
- SEE ALSO
- AUTHOR

# NAME

VRML::VRML2::Standard.pm - implements VRML 2.0/97 standard nodes

# SYNOPSIS

        use VRML::VRML2::Standard;

# DESCRIPTION

Following nodes are currently implemented.

[`Grouping Nodes`] [`Special Groups`] [`Common Nodes`]

[`Geometry`] [`Geometric Properties`] [Appearance]

[`Sensors`] [`Interpolators`] [`Bindable Nodes`]

## Grouping Nodes

These nodes NEED End if the `$children` parameter is empty !

Anchor
  Anchor($url, $description, $parameter, $bboxSize, $bboxCenter, $children)

  Currently only the first part of $parameter is supported.

Billboard
  Billboard($axisOfRotation, $children)

Collision
  Collision($collide, $proxy, $children)

Group
  Group($bboxSize, $bboxCenter)

Transform
  Transform($translation, $rotation, $scale, $scaleOrientation, $center, $bboxSize, $bboxCenter)

  `$translation` is a SFVec3f

  `$rotation` is a SFRotation

  `$scale` is a SFVec3f

  `$scaleOrientation` is a SFRotation

  `$center` is a SFVec3f

## Special Groups

Inline
  Inline($url, $bboxSize, $bboxCenter)

LOD
  LOD($range, $center)

  `$range` is a MFFloat

  `$center` is a SFVec3f

  Example: LOD([1, 2, 5], '0 0 0')

Switch
  Switch($whichChoice)

## Common Nodes

DirectionalLight
  DirectionalLight($direction, $intensity, $ambientIntensity, $color, $on)

PointLight
  PointLight($location, $intensity, $ambientIntensity, $color, $on)

SpotLight
  SpotLight($location, $direction, $intensity, $color, $on)

Sound
  Sound($source, $location, $direction, $intensity, $maxFront, $maxBack, $minFront, $minBack, $priority, $spatialize)

AudioClip
  AudioClip($url, $description, $loop, $pitch, $startTime, $stopTime)

WorldInfo
  WorldInfo($title, $info)

Shape
  Shape($geometry, $appearance)

## Geometry

Box
  Box($size)

Cone
  Cone($radius, $height, $side, $bottom)

Cylinder
  Cylinder($radius, $height, $top, $side, $bottom)

ElevationGrid
  ElevationGrid($xDimension, $zDimension, $xSpacing, $zSpacing, $height, $creaseAngle, $color, $colorPerVertex, $solid)

  `$height` should be a reference of a list of height values like `['0 1 3 2', '2 3 5 4', ...]`

  `$color` should be a reference to a subroutine or list of color values

Extrusion
  Extrusion($crossSection, $spine, $scale, $orientation, $beginCap, $endCap, $creaseAngle, $solid, $convex, $ccw)

  `$spine` should be a reference of a list of spine values like `['0 0 0', '0 1 0', ...]`

IndexedFaceSet
  IndexedFaceSet($coord, $coordIndex, $color, $coordIndex, $colorPerVertex, $normal, $normalIndex_ref, $texCoord, $texCoordIndex_ref)

  `$coordIndex` should be a list of point index strings or a reference like `'0 1 3 2', '2 3 5 4', ...`

  `$coordIndex` should be a reference of a list of colors

  `$normalIndex_ref` should be a reference of a list of normals

  `$texCoordIndex_ref` should be a reference of a list of textures

IndexedLineSet
  IndexedLineSet($coord, $coordIndex, $color, $colorIndex, $colorPerVertex)

  `$coord` should be a reference to a Coordinate method or a string with a Coordinate node.

  `$coordIndex` should be a reference of a list of point index strings like `'0, 1, 3, 2', '2, 3, 5, 4', ...`

  `$colorIndex` should be a reference of a list of colors

PointSet
  PointSet($coord, $color)

Sphere
  Sphere($radius)

  `$radius` have to be > 0

Text
  Text($string, $fontStyle, $length, $maxExtent)

## Geometric Properties

Coordinate
  Coordinate(@point)

  `@point` should be a list of points with strings like `'1.0 0.0 0.0', '-1 2 0'`

Color
  Color(@color)

  `@color` should be a list of colors with strings like `'1.0 0.0 0.0', '.3 .2 .1'`

Normal
  Normal(@vector)

  `@vector` should be a list of vectors with strings like `'1.0 0.0 0.0', '.4 .2 0'`

## Appearance

Appearance
  Appearance

Fontstyle
  `FontStyle($size, $family, $style, $justify)` defines the current font style for the current Text Nodes

  `$style` can be 'PLAIN','BOLD','ITALIC','BOLD ITALIC'

  `$familiy` can be 'SERIF','SANS','TYPEWRITER'

  `$justify` can be 'BEGIN', 'MIDDLE', 'END'

Material
  Material(%materials)

ImageTexture
  ImageTexture($url)

MovieTexture
  MovieTexture($url)

## Sensors

CylinderSensor
  CylinderSensor($maxAngle, $minAngle, $diskAngle, $offset, $autoOffset, $enabled)

PlaneSensor
  PlaneSensor($maxPosition, $minPosition, $offset, $autoOffset, $enabled)

ProximitySensor
  ProximitySensor($size, $center, $enabled)

SphereSensor
  SphereSensor($offset, $autoOffset, $enabled)

TimeSensor
  TimeSensor($cycleInterval, $loop, $startTime, $stopTime, $enabled)

TouchSensor
  TouchSensor($enabled)

VisibilitySensor
  VisibilitySensor($size, $center, $enabled)

## Interpolators

ColorInterpolator
  ColorInterpolator($key, $keyValue)

CoordinateInterpolator
  CoordinateInterpolator($key, $keyValue)

OrientationInterpolator
  OrientationInterpolator($key, $keyValue)

NormalInterpolator
  NormalInterpolator($key, $keyValue)

PositionInterpolator
  PositionInterpolator($key, $keyValue)

ScalarInterpolator
  ScalarInterpolator($key, $keyValue)

  `$key` MFFloat `$keyValue` MFFloat

## Bindable Nodes

Background
  Background($hash)

  You only can use a hash. Parameter see VRML Spec

NavigationInfo
  NavigationInfo($type, $speed, $headlight, $visibilityLimit, $avatarSize)

  You can use a hash reference or all parameter in the same order above

Viewpoint
  Viewpoint($description, $position, $orientation, $fieldOfView, $jump)

PROTO
  PROTO($name, $declaration, $definition)

## other

USE
  USE($name)

DEF
  DEF($name)

ROUTE
  ROUTE($from, $to)

End
  End($comment)

  Close an open node with }

EndChildren
  EndChildren($comment)

  Close an open children part with ]

EndTransform
  EndTransform($comment)

  Close an open children part with ] and the node with }

# SEE ALSO

VRML::VRML2::Standard

VRML::Base

http://www.gfz-potsdam.de/~palm/vrmlperl/ for a description of VRML-modules and how to obtain it.

# AUTHOR

Hartmut Palm <palm@gfz-potsdam.de>

Homepage http://www.gfz-potsdam.de/~palm/