variant NObject { | Mesh { Color : float * float * float; Center : float * float * float; Scale : float * float * float; Triangles : list [NObject.Triangle]; } | Scene { Objects : list [NObject]; Root : NObject.Octree; } | Octree { Nodes : array[NObject]; } | Triangle { Points : NObject.Point * NObject.Point * NObject.Point; } | Point { Pos : float * float * float; } | Group { GroupObjects : list [NObject]; } }