Titania X3D Editor

Bring Colours to Your Life.

Titania v4.3.4

Bring Colours to Your Life.

X3D Reference

Building shapes out of points, lines, and faces

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.

XML Encoding

Classic Encoding

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

XML Encoding

Classic Encoding

Syntax: IndexedLineSet

An IndexedLineSet geometry node creates geometry out of lines:

  • A straight line is drawn between pairs of selected coordinates

XML Encoding

Classic Encoding

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

XML Encoding

Classic Encoding

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

XML Encoding

Classic Encoding

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)

XML Encoding

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

Cookies and other Technologies

By clicking »Accept« or continuing to use the site, you agree to the use of CREATE3000 and third-party cookies and other similar technologies to enhance your browsing experience, analyze and measure your engagement with our content, and provide more relevant ads on CREATE3000 websites and others. Learn more about cookies. You can withdraw your consent at any time.