Skip to content
Christophe Pradal edited this page May 25, 2016 · 1 revision

Specification Details

node types

node type properties property type (range) standard value notes

Node transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0

Sphere transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 radius float 1.0

Box transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 width float 1.0 depth float 1.0 height float 1.0

Cone transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 radius float 1.0 height float 1.0 bottom_open boolean false

Cylinder transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 radius float 1.0 height float 1.0 bottom_open boolean false top_open boolean false

Frustum transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 radius float 1.0 bottom_radius = radius height float 1.0 taper float 0.5 top_radius = radius * taper bottom_open boolean false top_open boolean false

new node types

Mesh transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 indices <list_of_int> [] coords <list_of_float> [] normals <list_of_float> [] texcoords <list_of_float> []

  • coords is a set of 3D coordinates

  • normals is a set of 3D normal vectors at the vertices

  • texcoords is set of 2D texture coordinates (at the vertices)

  • index field references the coords, normals and texcoords

  • a mesh consists of triangles, so every three indices describes a polygon

  • a index n references as follows:

  • the vertices in the coords field 3n+0, 3n+1, 3*n+2

    • the normals in the normals field 3n+0, 3n+1, 3*n+2
    • the texture coordinates in the texcoords field 2n+0, 2n+1
  • the coords field shall contain three times as many vertices as indices are given

  • the normals field shall contain three times as many normals as indices are given

  • the texcoords field shall contain two times as many texture coordinates as indices are given

  • the ordering of the vertex coordinates shall be counterclockwise

  • a mesh is not solid, so each polygon shall be visible regardless of the viewing direction

    Axiom - - -

      - no properties
    

    F transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0 length float 1 diameter float -1 turtle_color int (0 - 15) -1

      - it is always the length property used
      - if the diameter is not given or -1, then the turtle state is used (e.g. set with D(x))
      - if the color is not given or -1, then the turtle state is used (e.g. set with P(x))
    

    F0 transform - 16 floats identity matrix color - 3 floats (0.0 - 1.0) 0.0, 0.0, 0.0

      - the turtle state is used to set the appearance (length, diameter, color)
    

    M transform - 16 floats identity matrix length float 1

      - movement
    

    M0 transform - 16 floats identity matrix

      - the turtle state is used to set the length of movement
    

    RL angle float 0

      - a rotation about the x-axis specified in degrees
    

    RU angle float 0

      - a rotation about the negative y-axis specified in degrees
    

    RH angle float 0

      - a rotation about the z-axis specified in degrees
    

    RV strength float 0

      - gravitropism
    

    RG - - -

      - no properties
      - maximal gravitropism such that local z-direction points downwards
    

    AdjustLU - - -

      - no properties
      - rotate around local z-axis such that local y-axis points upwards as far as possible
    

    L length float 1

      - set the turtle state to the given length
    

    D diameter float 0.1

      - set the turtle state to the given diameter
    

    P color int (0 - 15) 14

      - set the turtle state to the given color
      - the color field specifies the color index in the palette of the EGA graphics standard
      	0	black
      	1	blue
      	2	green
      	3	cyan
      	4	red
      	5	magenta
      	6	brown
      	7	light gray
      	8	dark gray
      	9	bright blue
      	10	bright green
      	11	bright cyan
      	12	bright red
      	13	bright magenta
      	14	yellow
      	15	white