Status : suggestion Implementations : none RCS info : $Id: scenefileformat.html,v 2.2 1999/10/15 12:47:24 andersr Exp $
This file format descibe a static scene of 3d objects. Using keyframes to generate simple animations of transformations. Allows to include other scenes files as nodes.
| scene file | = Scene head + Assembly list | 
| Scene head | = (Version) | 
| Assembly list | = { Assembly } | 
| Assembly | = (Name)+ (Visibility range) + [ Tranformation | Animation list ] + (Visual) + (Light) + (Child) | 
| Visibility range | = (Min range) + (Max range) | 
| Animation list | = {Animation} | 
| Animation | = (Name) + Length + Repeat + {KeyFrame} | 
| KeyFrame | = (Time) + Transformation | 
| Transformation | = (Translation) + (Rotation) | 
| Rotation | = * Rotation = rotx roty rotz; * | 
| Translation | = * Translation = xx yy zz ; * | 
| Visual | = [ Geometry | Scene ] | 
| Light | = * Don't know how this look yet * | 
| Child | = Assembly list | 
| Geometry | = * Geometry = "Geofile"; * | 
| Scene | = * Scene = "Scenefile"; * | 
| Name | = * Name that identify element * | 
Scene(Version=1)
Assembly {
  Visual {
    Geometry = "Terrain";
  }
}
Assembly {
  Transformation {
    Translation = 200.0 100.0 0.0;
    Rotation = 45.0 0.0 0.0;
  }
  Visual {
    Geometry = "Tree";
  }
  Assembly(Name = "Bird nest";Max=10.0) {
    Transformation {
      Translation = 0.7 0.3 9.0;
    }
    Visual {
      Scene = "Bird_Nest";
    }
  }
  Assembly ( Name = "Moving branch" ) {
    Animation ( Name = "default"; Time = 20; Repeat = TRUE ) {
      KeyFrame ( Time = 0 ){
        Rotation = 0.0 0.0 0.0;
      }
      KeyFrame ( Time = 5 ){
        Rotation = 5.0 0.0 0.0;
      }
      KeyFrame {
        Rotation = 0.0 0.0 0.0;
      }
    }
    Visual {
      Geometry = "Branch";
    }
}