E: The MOVIE.BYU file format

 

The MOVIE.BYU file format is an old format used to described 3D objects.

 

The Header

 

The first line of the format contains 4 integer values:

·The number of objects in the file

·The number of nodes in the file

·The number of elements in the file (points, lines and polygons)

·The number of edges in the file

 

The part list

 

The next lines contain a series of 2 integers per object in the file.  For each object we have the index of the first and last elements in the connectivity array that describe this object.

 

The Nodes

 

Next, we have the X, Y and Z positions of all the nodes in the geometries.  Originally, these float values (E12.5 in FORTRAN) should be placed 6 to a line, but for clarity, we only place 1 node (3 values) on each line and the formating is not important.

 

The connectivity array

 

Last, we have a series of integer vales describing each element in the objects.  These are index in the node array (the first one being "1"), Each element is created by connecting one or more nodes together, the connectivity tell us how many and which nodes.  The "how many" is given by having the last node of each element being negative.  For example a triangle created by connecting the first 3 nodes will be expressed as: "1 2 -3". Originally, the format requested that the values of the connectivity array be written 10 integers per lines.  We only place the connectivity of one element per line.

 

Note:

 

The original MOVIE.BYU program was written in FORTRAN. In those days, file formats were rather strict, integer values in the MOVIE.BUY format had to be I8, meaning 8 characters long (no more, no less) and float had to be E12.5 (12 characters, with 5 for the fraction).  The nodes had to be written 6 values to a line, while most integers were 10 values to a line.  Nowadays, the programming languages are much more flexible and Baby SliceO does not respect these strict constraints.

 

Note:

 

The original MOVIE.BYU file format could describe elements having 3 to 8 nodes (it could be used to create finite element meshes).  In Baby SliceO, we have extended the element definition to 1 and 2 nodes elements (point and line segments) but we will not accept shapes with more than 4 nodes (quads).

 

 

Example (using the original MOVIE.BYU syntax):

 

1       8       6      24

1       6

0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00

1.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 0.00000e+00

0.00000e+00 0.00000e+00 1.00000e+00 1.00000e+00 0.00000e+00 1.00000e+00

1.00000e+00 1.00000e+00 1.00000e+00 0.00000e+00 1.00000e+00 1.00000e+00

1       4       3      -2       5       6       7      -8       1       2

6      -5       2       3       7      -6       3       4       8      -7

4       1       5      -8

 

 

 

The 6 faces of a cube as 4 nodes polygons

 

 

 

Example (using Baby SliceO syntax):

 

1          8          8          8

1          8

-1 -1 -1

 1 -1 -1

 1  1 -1

-1  1 -1

-1 -1  1

 1 -1  1

 1  1  1

-1  1  1

-1

-2

-3

-4

-5

-6

-7

-8

1          8          12          24

1          12

-1 -1 -1

 1 -1 -1

 1  1 -1

-1  1 -1

-1 -1  1

 1 -1  1

 1  1  1

-1  1  1

1 -2

2 -3

3 -4

4 -1

5 -6

6 -7

7 -8

8 -5

1 -5

2 -6

3 -7

4 -8

1          8          6          24

1          6

-1 -1 -1

 1 -1 -1

 1  1 -1

-1  1 -1

-1 -1  1

 1 -1  1

 1  1  1

-1  1  1

1 2 3 -4

8 7 6 -5

2 6 7 -3

4 8 5 -1

3 7 8 -4

1 5 6 -2

 

The 8 corners of a cube as points

The 12 edges of a cube as line segments

The 6 faces of a cube as 4 nodes polygons