 # Titania X3D Editor

## Bring Colours to Your Life. # Titania v4.6.9

## Bring Colours to Your Life. # Motivation

Complex shapes are hard to build with primitive shapes:

• TerrainAnimals
• Plants
• Machinery

Instead, build shapes out of atomic components:

• Points, lines, and faces

# Building shapes using coordinates

Shape building is like a 3-D connect-the-dots game:

• Place dots at 3-D locations
• Connect-the-dots to form shapes

A coordinate specifies a 3-D dot location. Measured relative to a coordinate system origin. A geometry node specifies how to connect the dots.

# Syntax: Coordinate

A Coordinate node contains a list of coordinates for use in building a shape.

# Using geometry coordinates

Build coordinate-based shapes using geometry nodes:

For all three nodes, use a Coordinate node as the value of the coord field.

# Syntax: PointSet

A PointSet geometry node creates geometry out of points:

• One point (a dot) is placed at each coordinate

# Syntax: IndexedLineSet

An IndexedLineSet geometry node creates geometry out of lines:

• A straight line is drawn between pairs of selected coordinates

# Using line set coordinate indexes

Each coordinate in a Coordinate node is implicitly numbered

• Index 0 is the first coordinate
• Index 1 is the second coordinate, etc.

To build a line shape:

• Make a list of coordinates, using their indexes
• List coordinate indexes in the coordIndex field of the IndexedLineSet node

A line is drawn between pairs of coordinate indexes:

• -1 marks a break in the line
• A line is not automatically drawn from the last index back to the first
 coordIndex [ 1, 0, 3, 8, -1, 5, 9, 0, -1 ] 1, 0, 3, 8, Draw line from 1 to 0 to 3 to 8 -1, End line, start next 5, 9, 0 Draw line from 5 to 9 to 0 -1 End line

# Syntax: IndexedFaceSet

An IndexedFaceSet geometry node creates geometry out of faces:

• A flat face (polygon) is drawn using an outline specified by coordinate indexes

# Using face set coordinate index lists

To build a face shape

• Make a list of coordinates, using their indexes
• List coordinate indexes in the coordIndex field of the IndexedFaceSet node

A triangle is drawn connecting sequences of coordinate indexes:

• -1 marks a break in the sequence
• Each face is automatically closed, connecting the last index back to the first
 coordIndex [ 1, 0, 3, 8, -1, 5, 9, 0, -1 ] 1, 0, 3, 8 Draw face from 1 to 0 to 3 to 8 to 1 -1, End face, start next 5, 9, 0 Draw face from 5 to 9 to 0 to 5 -1 End face

# Syntax: IndexedFaceSet

An IndexedFaceSet geometry node creates geometry out of faces:

• solid - shape is solid
• ccw - faces are counter-clockwise
• convex - faces are convex

# Using shape control

A solid shape is one where the insides are never seen:

• If never seen, don't attempt to draw them
• When solid TRUE, the back sides (inside) of faces are not drawn

The front of a face has coordinates in counter-clockwise order:

• When ccw FALSE, the other side is the front

Faces are assumed to be convex

• When convex FALSE, concave faces are automatically broken into multiple convex faces

# Syntax: CoordinateInterpolator

A CoordinateInterpolator node describes a coordinate path:

• keys - key fractions
• keyValues - key coordinate lists (X, Y, Z lists)

## Classic Encoding

Typically route into a Coordinate node's set_point input.

# Interpolating coordinate lists

A CoordinateInterpolator node interpolates lists of coordinates:

• Each output is a list of coordinates

If n output coordinates are needed for t fractional times:

• n × t coordinates are needed in the key value list

# Summary

• Shapes are built by connecting together coordinates
• Coordinates are listed in a Coordinate node
• Coordinates are implicitly numbers starting at 0
• Coordinate index lists give the order in which to use coordinates

The PointSet node draws a dot at every coordinate

• The coord field value is a Coordinate node

The IndexedLineSet node draws lines between coordinates

• The coord field value is a Coordinate node
• The coordIndex field value is a list of coordinate indexes

The IndexedFaceSet node draws faces outlined by coordinates:

• The coord field value is a Coordinate node
• The coordIndex field value is a list of coordinate indexes

The CoordinateInterpolator node converts times to coordinates