VRML::VRML1::Standard.pm - implements the VRML 1.x standard nodes

- NAME
- SYNOPSIS
- DESCRIPTION

- Group Nodes
- Geometry Nodes
- Property Nodes
- Appearance Nodes
- Transform Nodes
- Common Nodes
- other

- SEE ALSO
- BUGS
- AUTHOR

# NAME

VRML::VRML1::Standard.pm - implements the VRML 1.x standard nodes

# SYNOPSIS

        use VRML::VRML1::Standard;

# DESCRIPTION

Following nodes are currently implemented.

[`Group Nodes`] [`Geometry Nodes`] [`Property Nodes`]

[`Appearance Nodes`] [`Transform Nodes`] [`Common Nodes`]

## Group Nodes

These nodes NEED `End` !

Group
  `Group()`

Separator
  `Separator()`

Switch
  `Switch($whichChild)`

WWWAnchor
  `WWWAnchor($url, $description, $target)`

  $target works only with some browsers

LOD
  `LOD($range, $center)`

  $range = MFFloat

  $center = SFVec3f

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

SpinGroup
  `SpinGroup($rotation, $local)` is supported only by some browsers

## Geometry Nodes

AsciiText
  `AsciiText($string, $width, $justification, $spacing)`

  $justification is a string ('LEFT','CENTER','RIGHT')

Cone
  `Cone($radius, $height, @parts)`

  @parts is an array of strings ('SIDES', 'BOTTOM', 'ALL')

Cube
  `Cube($width, $height, $depth)`

Cylinder
  `Cylinder($radius, $height, @parts)`

  @parts is a list of strings ('SIDES', 'TOP', 'BOTTOM', 'ALL')

IndexedFaceSet
  `IndexedFaceSet($coordIndex_ref, $materialIndex_ref, $normalIndex_ref, $textureCoordIndex_ref)`

  $coordIndex_ref is a reference of a list of point index strings like `['0 1 3 2', '2 3 5 4', ...]`

  $materialIndex_ref is a reference of a list of materials

  $normalIndex_ref is a reference of a list of normals

  $textureCoordIndex_ref is a reference of a list of textures

IndexedLineSet
  `IndexedLineSet($coordIndex_ref, $materialIndex_ref, $normalIndex_ref, $textureCoordIndex_ref)`

  $coordIndex_ref is a reference of a list of point index strings like `['0 1 3 2', '2 3 5 4', ...]`

  $materialIndex_ref is a reference of a list of materials

  $normalIndex_ref is a reference of a list of normals

  $textureCoordIndex_ref is a reference of a list of textures

PointSet
  `PointSet($numPoints, $startIndex)`

Sphere
  `Sphere($radius)`

  $radius must be > 0

## Property Nodes

Coordinate3
  `Coordinate3(@points)`

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

Fontstyle
  `FontStyle($size, $family, $style)` defines the current font style for all subsequent `AsciiText` Nodes

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

  $style can be 'NONE','BOLD','ITALIC'

## Appearance Nodes

Material
  `Material(%materials)`

MaterialBinding
  `MaterialBinding($value)`

  $value can be

          DEFAULT     Use default bindng
          OVERALL     Whole object has same material
          PER_PART    One material for each part of object
          PER_PART_INDEXED    One material for each part, indexed
          PER_FACE    One material for each face of object
          PER_FACE_INDEXED    One material for each face, indexed
          PER_VERTEX  One material for each vertex of object
          PER_VERTEX_INDEXED  One material for each vertex, indexed

Normal
  `Normal(@vector)`

  @vector is a list of vectors with strings like `'1.0 0.0 0.0', '.5 .2 0'`

NormalBinding
  `NormalBinding($value)`

  $value is the same as `MaterialBinding`

Texture2
  `Texture2($value)`

## Transform Nodes

Transform
  `Transform($translation, $rotation, $scaleFactor, $scaleOrientation, $center)`

  $translation is a string like ``0 1 -2''

  $rotation is a string like ``0 0 1 1.57''

  $scaleFactor is a string like ``1 1 1''

  $scaleOrientation is a string like ``0 0 1 0''

  $center is a string like ``0 0 0''

Rotation
  `Rotation($rotation)`

  $rotation is a string like ``0 0 1 1.57''

  `This node is not supported under VRML 2.0. Use Transform`

Scale
  `Scale($scaleFactor)`

  $scaleFactor is a string like ``1 1 1''

  `This node is not supported under VRML 2.0. Use Transform`

Translation
  `Translation($translation)`

  $translation is a string like ``0 1 -2''

  `This node is not supported under VRML 2.0. Use Transform`

## Common Nodes

PerspectiveCamera
  `PerspectiveCamera($position, $orientation, $heightAngle, $focalDistance, $nearDistance, $farDistance)`

OrthographicCamera
  `OrthographicCamera($position, $orientation, $height, $focalDistance, $nearDistance, $farDistance)`

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

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

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

DirectedSound
  `DirectedSound($name, $description, $location, $direction, $intensity, $maxFrontRange, $maxBackRange, $minFrontRange, $minBackRange, $loop, $pause)`

## other

WWWInline
  `WWWInline($name, $bboxSize, $bboxCenter)`

Info
  `Info($string)`

NavigationInfo
  `NavigationInfo($type, $speed, $headlight)`

  Works only with Live3D and WebFX

USE
  `USE($name)`

DEF
  `DEF($name)`

# SEE ALSO

VRML::VRML1::Standard

VRML::Base

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

# BUGS

`IndexedFaceSet` and `IndexedLineSet` work currently only with references

# AUTHOR

Hartmut Palm <palm@gfz-potsdam.de>

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