This document describes how to create, interpret, and modify Infini-D 3.0-3.5 scene files and object library files. A scene file describes either a static 3D scene or a 3D animation, and includes parameters for geometric objects, lights, cameras, surfaces, effects, and time-based transformation parameters. An object library file describes the geometry of a single SplineForm&tm; object, which describes a path, 4 rails, and 1 or more cross-sections to form a cubic Bezier-patch surface.
Infini-D versions 3.0 and later use the Elmo file format. Elmo is a nested block structure which brings order to an otherwise chaotic collection of data. Elmo's main features are:
a) Each file is a list of 1 or more blocks.
b) Each block has a list of 0 or more subblocks after the main block data.
c) Each block has a header containing the block type, a unique block ID (the Tag), the block size, and the position of the first subblock.
d) Blocks have a fixed or variable size depending on the block type.
e) Any block can have extra data added by adding a subblock of a new type.
f) Any unrecognized block types are ignored, to allow backward compatibility.
g) Blocks are written in a standard order for efficiency of reading.
h) File readers can take advantage of the expected order for efficiency, but should not expect blocks in a particular order to allow for new and unrecognized block types.
i) Integers and other values are ordered with the most-significant byte first (big-endian), as is typical with Mactinosh data.
Offset |
Size in Bytes |
Contents |
Description |
| 0 |
4 |
Elmo type |
a 4-character code which determines the block contents, e.g. "scen" for scene files. |
| 4 |
4 |
Elmo tag |
unique identifying number for each block in a file. |
| 8 |
4 |
block size |
block size in bytes, including header and subblocks. |
| 12 |
4 |
subblock offset |
subblock
offset: the number of bytes from the start of the block to the first subblock.
If there are no subblocks then the offset equals the block size. |
| 16 |
varies |
block
data |
The
contents here depends on the block type, and extends from byte 16 to
(subblock_offset - 1) |
| subblock_offset |
varies |
1st
subblock |
(subblocks
are optional, according to block type) |
| subblock_offset
+ 1st subblock block size |
varies |
2nd
subblock |
(subblocks
are optional, according to block type) |
| subblock_offset
+ 2nd subblock block size |
varies |
3nd
subblock |
(subblocks
are optional, according to block type) |
| ... |
... |
... |
... |
| block
size |
start
of next block |
Type |
Name |
Subblock of |
Possible subblocks |
Subblock offset |
Page |
| elmo |
File header |
- |
(many) |
28 |
12 |
| scen |
Scene |
elmo |
surf |
48 |
12 |
| csrf |
Composite surface |
elmo |
csla |
100 |
13 |
| csla |
Composite surface layer |
csrf |
- |
156 |
14 |
| surf |
Basic surface |
elmo |
rgb, tile, frct, nois, marb, wood, natw, imag |
104 |
15 |
| rgb |
RGB color |
surf |
- |
28 |
16 |
| tile |
Tile surface |
surf |
- |
192 |
17 |
| frct |
Fractal surface |
surf, terr |
- |
72 |
17 |
| nois |
Noise surface |
surf |
- |
48 |
18 |
| marb |
Marble surface |
surf |
- |
64 |
18 |
| wood |
Wood surface |
surf |
- |
56 |
18 |
| natw |
Natural wood surface |
surf |
- |
64 |
19 |
| wave |
Wave surface |
surf |
- |
64 |
19 |
| imag |
Image map |
surf, terr |
alis, qtsp |
80 |
19 |
| alis |
File Alias |
imag |
- |
varies |
20 |
| qtsp |
QuickTime surface parameters |
imag |
- |
42 |
21 |
| lite |
Light |
elmo |
lnsf |
124 |
21 |
| lnsf |
Lens Flare |
lite |
- |
20 |
22 |
| obj |
Object |
elmo |
obx1, evtm, terr, modl |
236 |
22 |
| obx1 |
Object extended |
obj |
- |
20 |
24 |
| terr |
Terrain data |
obj |
imag, frct |
28 |
25 |
| modl |
Polygonal Mesh data |
obj |
verl, edgl, facl |
25 |
|
| verl |
Vertex list |
modl |
- |
varies |
26 |
| edgl |
Edge list |
modl |
- |
varies |
26 |
| facl |
Face list |
modl |
indl |
varies |
27 |
| indl |
Index list |
facl |
- |
varies |
27 |
| evtm |
Event mark |
obj |
afev, raev, sfev, olev, txev, ptev, liev, caev, trev, ppev |
varies |
28 |
| afev |
Affine event mark |
evtm |
- |
72 |
29 |
| raev |
Rotation Affine event mark |
evtm |
- |
88 |
30 |
| sfev |
Surface event mark |
evtm |
- |
28 |
30 |
| olev |
Outline event mark |
evtm |
- |
28 |
31 |
| txev |
Text object event mark |
evtm |
- |
varies |
31 |
| liev |
Light object event mark |
evtm |
lfev |
72 |
32 |
| lfev |
Lens flare event |
liev |
- |
106 |
32 |
| caev |
Camera object event mark |
evtm |
- |
28 |
33 |
| trev |
Terrain object event mark |
evtm |
frct |
28 |
33 |
| ppev |
Path-profile obj. event mark |
evtm |
pmdl |
28 |
34 |
| ptev |
Path-Profile text obj. event mark |
evtm |
pmdl |
varies |
35 |
| pmdl |
Path Model |
ppev, ptev |
ppro |
40 |
35 |
| ppro |
Path Profile |
pmdl |
ol3d, pf2d |
varies |
36 |
| pf2d |
Cross Section (Profile 2D) |
ppro |
ol2d |
varies |
37 |
| ol3d |
3D Spline (Outline 3D) |
ppro |
- |
varies |
38 |
| ol2d |
2D Spline (Outline 2D) |
pf2d |
- |
varies |
38 |
| envv |
Environment Variables |
elmo |
- |
64 |
39 |
| seqv |
Sequence Variables |
elmo |
- |
64 |
40 |
| bkmk |
Bookmark |
elmo |
- |
96 |
41 |
| view |
View of scene |
elmo |
vwx2 |
196 |
41 |
| vwx2 |
View extended |
view |
- |
20 |
43 |
| outl |
Outline Model (5-way Polyline) |
elmo |
pypt |
58 |
44 |
| pypt |
Polypoint |
outl |
pylp |
varies |
45 |
| pylp |
Polypoint Loop |
pypt |
- |
varies |
45 |
| sqin |
Sequencer Info |
elmo |
sqob |
20 |
46 |
| sqob |
Sequencer Object data |
sqin |
- |
32 |
46 |
| sprf |
Scene preferences |
elmo |
- |
24 |
46 |
| end! |
End of file |
elmo |
- |
16 |
47 |
Type |
Name |
Subblock of |
Possible subblocks |
Subblock offset |
Page |
| afev |
Affine event mark |
evtm |
- |
72 |
27 |
| alis |
File Alias |
imag |
- |
varies |
20 |
| bkmk |
Bookmark |
elmo |
- |
96 |
38 |
| caev |
Camera object event mark |
evtm |
- |
28 |
31 |
| csla |
Composite surface layer |
csrf |
- |
156 |
14 |
| csrf |
Composite surface |
elmo |
csla |
100 |
13 |
| edgl |
Edge list |
modl |
- |
varies |
25 |
| elmo |
File header |
- |
(many) |
28 |
12 |
| end! |
End of file |
elmo |
- |
16 |
44 |
| envv |
Environment Variables |
elmo |
- |
64 |
37 |
| evtm |
Event mark |
obj |
afev, raev, sfev, olev, txev, ptev, liev, caev, trev, ppev |
varies |
26 |
| facl |
Face list |
modl |
indl |
varies |
25 |
| frct |
Fractal surface |
surf, terr |
- |
72 |
17 |
| imag |
Image map |
surf, terr |
alis, qtsp |
80 |
19 |
| indl |
Index list |
facl |
- |
varies |
26 |
| lfev |
Lens flare event |
liev |
- |
106 |
|
| liev |
Light
object event mark |
evtm |
lfev |
72 |
30 |
| lite |
Light |
elmo |
lnsf |
124 |
21 |
| lnsf |
Lens
Flare |
lite |
- |
20 |
|
| marb |
Marble
surface |
surf |
- |
64 |
18 |
| modl |
Polygonal
Mesh data |
obj |
verl,
edgl, facl |
24 |
|
| natw |
Natural
wood surface |
surf |
- |
64 |
19 |
| nois |
Noise
surface |
surf |
- |
48 |
18 |
| obj |
Object |
elmo |
obx1,
evtm, terr, modl |
236 |
22 |
| obx1 |
Object
extended |
obj |
- |
20 |
|
| ol2d |
2D
Spline (Outline 2D) |
pf2d |
- |
varies |
36 |
| ol3d |
3D
Spline (Outline 3D) |
ppro |
- |
varies |
35 |
| olev |
Outline
event mark |
evtm |
- |
28 |
29 |
| outl |
Outline
Model (5-way Polyline) |
elmo |
pypt |
58 |
41 |
| pf2d |
Cross
Section (Profile 2D) |
ppro |
ol2d |
varies |
35 |
| pmdl |
Path
Model |
ppev,
ptev |
ppro |
40 |
33 |
| ppev |
Path-profile
obj. event mark |
evtm |
pmdl |
28 |
32 |
| ppro |
Path
Profile |
pmdl |
ol3d, pf2d |
varies |
33 |
| ptev |
Path-Profile text obj. event mark |
evtm |
pmdl |
varies |
32 |
| pylp |
Polypoint Loop |
pypt |
- |
varies |
42 |
| pypt |
Polypoint |
outl |
pylp |
varies |
42 |
| qtsp |
QuickTime surface parameters |
imag |
- |
42 |
|
| raev |
Rotation Affine event mark |
evtm |
- |
88 |
28 |
| rgb |
RGB color |
surf |
- |
28 |
16 |
| scen |
Scene |
elmo |
surf |
48 |
12 |
| seqv |
Sequence
Variables |
elmo |
- |
64 |
37 |
| sfev |
Surface
event mark |
evtm |
- |
28 |
29 |
| sprf |
Scene
preferences |
elmo |
- |
24 |
|
| sqin |
Sequencer
Info |
elmo |
sqob |
20 |
43 |
| sqob |
Sequencer
Object data |
sqin |
- |
32 |
43 |
| surf |
Basic
surface |
elmo |
rgb,
tile, frct, nois, marb, wood, natw, imag |
104 |
15 |
| terr |
Terrain
data |
obj |
imag,
frct |
28 |
23 |
| tile |
Tile
surface |
surf |
- |
192 |
17 |
| trev |
Terrain
object event mark |
evtm |
frct |
28 |
31 |
| txev |
Text
object event mark |
evtm |
- |
varies |
30 |
| verl |
Vertex
list |
modl |
- |
varies |
25 |
| view |
View
of scene |
elmo |
vwx2 |
196 |
39 |
| vwx2 |
View
extended |
view |
- |
20 |
|
| wave |
Wave
surface |
surf |
- |
64 |
19 |
| wood |
Wood surface |
surf |
- |
56 |
18 |
elmo |
-------file header |
|||||||
| scen |
-------one scene block |
|||||||
| csrf |
-------one
block per composite surface, in a mixed list of basic and composite surfaces. |
|||||||
| csla |
-------one block per composite surface layer |
|||||||
| surf |
-------one
block per basic surface, in a mixed list of basic and composite surfaces.
Basic surfaces have 1 or 2 surface mapping subblocks:
-------one image mapping subblock from list below. |
|||||||
| rgb
|
-------RGB
color parameter. |
|||||||
| tile |
-------tiling
parameters. |
|||||||
| frct |
-------fractal
parameters. |
|||||||
| nois |
-------noise
parameters. |
|||||||
| marb |
-------marble
parameters. |
|||||||
| wood |
-------(old
style) wood parameters. |
|||||||
| natw |
-------natural
wood parameters. |
|||||||
| imag |
-------image
map parameters. |
|||||||
| alis |
-------one
file alias block. |
|||||||
| qtsp |
-------one
QuickTime surface parameter block. |
|||||||
| -------optionally
one bump maping subblock from list below. |
||||||||
| nois |
-------noise
parameters. |
|||||||
| wave |
-------wave
parameters. |
|||||||
| lite |
-------one
per light |
|||||||
| lnsf |
-------one
lens flare block per light. |
|||||||
| obj |
-------one
per object, including cameras and lights, in a tree structure. |
|||||||
| obx1 |
-------one
object extended block per object. |
|||||||
| terr |
-------one
terrain block for terrain objects |
|||||||
| frct |
-------one
fractal data block for fractal terrains. |
|||||||
| imag |
-------one
image block for image mapped terrains. |
|||||||
| alis |
-------one
file alias block |
|||||||
| modl |
-------one
model block for polygonal mesh objects. |
|||||||
| verl |
-------one
vertex list. |
|||||||
| edgl |
-------one
edge list. |
|||||||
| facl |
-------one
face list. |
|||||||
| indl |
-------multiple
edge or neighbor index lists blocks. |
|||||||
| evtm |
-------one
for each eventmark of object. Event marks have different sets of parameters
stored with the subblocks below: |
|||||||
| afev |
-------affine
event data. |
|||||||
| raev |
-------rotation
Affine event data. |
|||||||
| caev |
-------camera
event data. |
|||||||
| liev |
-------light
event data. |
|||||||
| lfev |
-------one
lens flare event data. block. |
|||||||
| sfev |
-------surface
event data. |
|||||||
| ppev |
-------path-profile
event data. |
|||||||
| pmdl |
-------one
path model data block. |
|||||||
| ppro |
-------one
path-profile data block. |
|||||||
| ol3d |
-------5
outline 3D data blocks (path & 4 rails). |
|||||||
| pf2d |
-------one
profile2D block for each cross-section. |
|||||||
| ol2d |
-------one
outline2D block for each curve in a cross-section. |
|||||||
| ptev |
-------path-profile
text event data. |
|||||||
| pmdl |
-------one
path model data block (see above for subblocks) |
|||||||
| trev |
-------terrain
event data. |
|||||||
| frct |
-------Fractal
parameters. |
|||||||
| envv |
-------one
environment variables block. |
|||||||
| seqv |
-------one
sequence variables block. |
|||||||
| bkmk |
-------one
per bookmark, forming a linked list of blocks. |
|||||||
| view |
-------one
per view, forming a linked list of blocks. |
|||||||
| vwx2 |
-------one
view extended block per view. |
|||||||
| outl |
-------one
per outline object, forming a link list of blocks. |
|||||||
| pypt |
-------5
polypoint lists per outline object. |
|||||||
| pylp |
-------one
or more Polypoint Loop blocks per Polypoint block. |
|||||||
| sqin |
-------one
sequencer info block. |
|||||||
| sqob |
-------one
per object listed in sequencer. |
|||||||
| sprf |
-------one
scene preferences block. |
|||||||
| end! |
-------one
EOF block. |
|||||||
elmo |
-------file
header |
|||||||
| pmdl |
-------one
path model data block |
|||||||
| ppro |
-------one
path-profile data block |
|||||||
| ol3d |
-------5
outline 3D data blocks (path & 4 rails) |
|||||||
| pf2d |
-------one
profile2D block for each cross-section |
|||||||
| ol2d |
-------one
outline2D block for each curve in a cross-section |
|||||||
| end! |
-------one
EOF block |
|||||||
Infini-D version 3.0.1 was released shortly after 3.0. This bug-fix release did not have any file format changes.
Infini-D version 3.1 was released in October 1995. The QuickTime -Surface-Parameters block (`qtsp') was introduced, and the ElmoIndexUnion type was modified to correct smoothing problems with polygonal mesh models having 65,535 or more faces.
Infini-D version 3.2 was released in April 1996. This version did not have any file format changes.
Infini-D version 3.5 was released in August 1996. New block types were Lens-Flare (`lnsf'), Lens-Flare-Event (`lfev'), Object-Extended (`obx1'), View-Extended (`vwx2'), Scene-Preferences (`sprf').
Please note that all elmo scene files are backward compatible to Infini-D version 3.0, since unrecognized block types are ignored. See "About the Elmo Block Structure" for more information.
General Types |
||||||
| Name |
Bytes |
Description |
||||
| ElmoUInt8 |
1 |
8
bit unsigned integer |
||||
| ElmoUInt16 |
2 |
16
bit unsigned integer |
||||
| ElmoUInt32 |
4 |
32
bit unsigned integer |
||||
| ElmoInt8 |
1 |
8
bit signed integer |
||||
| ElmoInt16 |
2 |
16
bit signed integer |
||||
| ElmoInt32 |
4 |
32
bit signed integer |
||||
| ElmoFloat32 |
4 |
32
bit floating point number (IEEE single precision) |
||||
| ElmoBoolean |
1 |
8
bit boolean value. 1 = TRUE, 0 = FALSE. |
||||
| ElmoPString |
varies |
A
Macintosh "Pascal" string, where the first byte is the number of characters
(0-255) in the string that follows. There is no terminating character. Note
that the maximum string length is one less than the number of bytes available. |
||||
| Block
header types |
||||||
| Name |
Bytes |
Description |
||||
| ElmoType |
4 |
4-character
code, e.g. 'elmo'. Characters must be in the range 32-216 ($20-$D8). |
||||
| ElmoTag |
4 |
An
identifying number unique to each block in an elmo file. A 32 bit unsigned
value. |
||||
| Reserved
block numbers are: |
||||||
| kNotAnElmoTag
= 0 |
No
block or end of block list. |
|||||
| kElmoEOFTag
= -1 |
Tag
of "end!" block. |
|||||
| Elmo
file header = 1 |
Tag
of file header block. |
|||||
| ElmoBlockHeader |
16 |
The
standard header for each Elmo block: |
||||
| 4 |
ElmoType |
a
4-character code which determines the block contents, e.g. "scen" for scene
files. Characters must be in the range 32-2216 ($20-$D8). |
||||
| 4 |
ElmoTag |
unique
identifying number for each block in a file. |
||||
| 4 |
ElmoUInt32 |
block
size in bytes, including header and subblocks. |
||||
| 4 |
ElmoUInt32 |
subblock
offset: the number of bytes from the start of the block to the first subblock.
If there are no subblocks then the offset equals the block size. |
||||
| Geometric
types |
||||||
| Name |
Bytes |
Description |
||||
| ElmoPoint2D |
8 |
A
2D point (ElmoFloat32: x, y) |
||||
| ElmoIntPoint2D |
4 |
A
2D Macintosh-style point (ElmoInt16: x, y) |
||||
| ElmoPointST |
8 |
A
point for texture mapping (ElmoFloat32: s, t) |
||||
| ElmoPoint3D |
12 |
a
3D point or 3D vector (x, y, z) |
||||
| ElmoPoint4D |
16 |
a
4D point or 4D vector (x, y, z, w) |
||||
| ElmoQuaternion |
16 |
a
quaternion (a useful way to represent rotation: c, x, y, z) |
||||
| ElmoRect |
16 |
a
rectangle (left, top, right, bottom) |
||||
| ElmoIntRect |
8 |
an
integer, Macintosh-style rect (top, left, bottom, right) |
Color types |
||||||
| Name |
Bytes |
Description |
||||
| ElmoRGBInt8Color |
4 |
A
Macintosh-style RGB color |
||||
| 1 |
ElmoUInt8 |
red |
||||
| 1 |
ElmoUInt8 |
green |
||||
| 1 |
ElmoUInt8 |
blue |
||||
| 1 |
ElmoUInt8 |
padding
(reserved, set to 0) |
||||
| ElmoRGBIntColor |
6 |
A
Macintosh-style RGB color |
||||
| 2 |
ElmoUInt16 |
red |
||||
| 2 |
ElmoUInt16 |
green |
||||
| 2 |
ElmoUInt16 |
blue |
||||
| ElmoRGBColor |
12 |
an RGB color (each component ranges from 0.0--1.0) |
||||
| 4 |
ElmoFloat32 |
red |
||||
| 4 |
ElmoFloat32 |
green |
||||
| 4 |
ElmoFloat32 |
blue |
||||
| ElmoHSVColor |
12 |
an HSV color (each component ranges from 0.0--1.0) |
||||
| 4 |
ElmoFloat32 |
hue |
||||
| 4 |
ElmoFloat32 |
saturation |
||||
| 4 |
ElmoFloat32 |
value |
||||
| ElmoColorTransition |
28 |
an RGB or HSV transition from one color to another |
||||
| 2 |
ElmoUInt16 |
padding (reserved, set to 0) |
||||
| 2 |
ElmoUInt16 |
transition type (ElmoRGBTransition = 0, ElmoHSVTransition = 1) |
||||
| 12 |
ElmoRGBColor / ElmoHSVColor |
start |
||||
| 12 |
ElmoRGBColor / ElmoHSVColor |
end |
||||
| ElmoAlphaMode |
1 |
What
kind of alpha channel for an image? |
||||
| kElmoNoAlpha
= 0 |
||||||
| kElmoStraightAlpha
= 1 |
||||||
| kElmoMultipliedAlpha
= 2 |
||||||
| Object
transform types |
||||||
| Name |
Bytes |
Description |
||||
| ElmoAffine |
72 |
An
object's affine data. |
||||
| 12 |
ElmoVector3D |
scale |
local
scale; does not affect children |
|||
| 12 |
ElmoVector3D |
offset |
local
offset; does not affect children |
|||
| 12 |
ElmoVector3D |
tree_scale |
"uniform
scale"; passed down to children |
|||
| 12 |
ElmoVector3D |
rotation |
passed
down to children |
|||
| 12 |
ElmoVector3D |
shear |
passed
down to children |
|||
| 12 |
ElmoVector3D |
position |
passed
down to children |
|||
| ElmoConstraint3D |
28 |
An
object's constraint information (rotation, scale, or position). |
||||
| 12 |
ElmoVector3D |
min |
||||
| 12 |
ElmoVector3D |
max |
||||
| 1 |
ElmoBoolean |
xLocked |
||||
| 1 |
ElmoBoolean |
yLocked |
||||
| 1 |
ElmoBoolean |
zLocked |
||||
| 1 |
ElmoBoolean |
reserved |
||||
Bezier spline types |
||||||
| Name |
Bytes |
Description |
||||
| PtNode2D_Elmo_Struct |
28 |
A
point node on a 2D cubic Bezier spline. |
||||
| 2 |
ElmoUInt16 |
reserved |
||||
| 1 |
ElmoUInt8 |
reserved |
||||
| 1 |
ElmoUInt8 |
kind |
kPlainKind=0 |
|||
| kCornerKind=1 |
||||||
| kCurveKind=2 |
||||||
| kSmoothKind=3 |
||||||
| 8 |
ElmoPoint2D |
position |
||||
| 8 |
ElmoPoint2D |
LControl |
||||
| 8 |
ElmoPoint2D |
RControl |
||||
| PtNode3D_Elmo_Struct |
40 |
A
point node on a 3D cubic Bezier spline. |
||||
| 2 |
ElmoUInt16 |
reserved |
||||
| 1 |
ElmoUInt8 |
reserved |
||||
| 1 |
ElmoUInt8 |
kind |
kPlainKind=0 |
|||
| kCornerKind=1 |
||||||
| kCurveKind=2 |
||||||
| kSmoothKind=3 |
||||||
| 12 |
ElmoPoint3D |
position |
||||
| 12 |
ElmoPoint3D |
LControl |
||||
| 12 |
ElmoPoint3D |
RControl |
||||
| Polygonal
Model types |
||||||
| Name |
Bytes |
Description |
||||
| ElmoModelIndex |
4 |
An
index into a Polygonal model's face, edge, or vertex list (an unsigned integer) |
||||
| ElmoEdge |
8 |
An
edge of a polygonal mesh model. |
||||
| 4 |
ElmoModelIndex |
index1 |
Index
into vertex list; vertex has coordinates of 1st endpoint. |
|||
| 4 |
ElmoModelIndex |
index2 |
Index
into vertex list; vertex has coordinates of 2nd endpoint. |
|||
| ElmoFace |
40 |
A
"face", a 3 or more sided 3D polygon; a facet of a polygonal mesh model. |
||||
| 4 |
ElmoUInt16 |
flags |
kElmoFlatFace
= 0 (face is planar) |
|||
| kElmoInterpFace
= 1 (face not planar) |
||||||
| 4 |
ElmoModelIndex |
edgeCount |
Number
of edges |
|||
| 16 |
ElmoIndexUnion |
edgeList |
4
edge indexes or Tag of (edge) index list, in CCW order. |
|||
| 16 |
ElmoIndexUnion |
neighborList |
4
neighboring face indexes or Tag of (neighboring face) index list, in CCW order
and corresponding to the above edgeList. |
|||
| ElmoIndexUnion |
16 |
A
list of up to 4 indices *OR* the tag of a subblock with a list of 5 or more
indicies. Used for a face's edge and neighbor lists - since most faces have 3
or 4 edges and 3 or 4 neighbors, we optimize for that case. Edges and Faces
must be listed in counter-clockwise order (CCW from the ouside perspective).
If a face does not exist, or smoothing towards the neighboring face is not
desired, the constant K_no_neighboring_face is used. K_no_neighboring_face is
0xFFFFFFFF for version 3.1 or later, 0xFFFF for version 3.0 or 3.0.1. |
||||
| (if
ElmoFace.edgeCount is 4 or less) |
||||||
| 4 |
ElmoModelIndex |
index[0] |
Index
of the first edge or neighbor |
|||
| 4 |
ElmoModelIndex |
index[1] |
Index
of the second edge or neighbor |
|||
| 4 |
ElmoModelIndex |
index[2] |
Index
of the third edge or neighbor |
|||
| 4 |
ElmoModelIndex |
index[3] |
Index
of the fourth edge or neighbor |
|||
| (or,
if ElmoFace.edgeCount is 5 or more) |
||||||
| 4 |
ElmoTag |
indexListTag |
Tag
of Index List subblock (holds edge list or face list). |
|||
| Outline
Model types |
||||||
| Name |
Bytes |
Description |
||||
| Elmo_Polypoint_Node |
8 |
A
node of a polypoint loop |
||||
| 4 |
ElmoPoint2D |
pt |
||||
| 2 |
ElmoUInt16 |
padding |
||||
| 2 |
ElmoInt16 |
mode |
K_straight_segment = 0 |
|||
| K_interpolated_segment = 1 |
||||||
| K_bezier_segment
= 2 (cubic spline) |
||||||
| K_bezier_2_segment
= 3 (quadratic spline) |
Name |
The
4-character block type, followed by the C language structure or type name,
followed by a C language constant which is equal to the block type. |
| Desc. |
A
brief description of the block type. |
| Content |
The
contents of the bock, which always starts with an Elmo header. |
| Offset |
The
number of bytes from the start of the block to that particular element. The
last offset listed is usually the subblock offset. |
| Size |
The
number of bytes that particular element spans. |
| Type |
The
C Language type of the element. See section 7, "Data Types" for an
explanation. Some types are common structures which have sub-elements listed
in "Data Types", e.g. ElmoPoint3D has "x", "y", and "z" subelements. |
| Name |
The
C Language name of the element. Some groups of elements (between horizontal
lines) are part of a sub-structure of the block, with the name of the subblock
is listed at the top of the group. E.g. Bookmark blocks have a set of
"Movie_Camera_Elmo_Struct" elements. |
| Description
and cases |
A
brief description of the element, followed by any special values or usual
values for that element (indented). |
Name |
elmo |
ElmoFileHeader |
kElmoFormatKind |
|||
| Desc. |
The
Elmo file header. Identifies the file type and size. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoUInt32 |
elmo_vers |
The
Elmo block structure version number. |
||
| Version
2 = 512 (200 hex) |
||||||
| 20 |
4 |
ElmoUInt32 |
creator_signature |
The
Macintosh application signature of Infini-D. |
||
| Infini-D
signature =SI[infinity]D (5349 B004 hex) |
||||||
| 24 |
4 |
ElmoUInt32 |
creator_file_vers |
The
file format version number. |
||
| Inifini-D
3.0, 3.0.1 = 296 (0000 0128 hex) |
||||||
| Inifini-D
3.1, 3.2 = 301 (0000 012D hex) |
||||||
| 28 |
Inifini-D
3.5 = 350 (0000 015E hex) |
|||||
| Subbl. |
All
other blocks are subblocks of this one. |
|||||
| Context |
This
block encompases the entire file. |
|||||
| Name |
scen |
Scene_Elmo_Block |
kSceneElmoBlockType |
|||
| Desc. |
An
Infini-D scene. Usually there is one scene block at the start of each scene
file. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
objectTree |
Tag
of the first block in the scene's object tree. |
||
| 20 |
4 |
ElmoTag |
outlineList |
Tag
of the first block in the scene's outline list. |
||
| 24 |
4 |
ElmoTag |
surfaceList |
Tag
of the first block in the scene's surface list. |
||
| 28 |
4 |
ElmoTag |
lightList |
Tag
of the first block in the scene's light list. |
||
| 32 |
4 |
ElmoTag |
viewList |
Tag
of the first block in the scene's view list. |
||
| 36 |
4 |
ElmoTag |
bookMarkList |
Tag
of the first block in the scene's book mark list. |
||
| 40 |
4 |
ElmoTag |
sequencerInfoTag |
Tag
of the scene's sequencer info block. |
||
| 44 |
4 |
ElmoTag |
useParentSurfaceTag |
Tag
value reserved for "use parent's surface." There is no block with this tag
value. If an object has a surfaceTag with this value, the symbolic meaning is
"use the parent object's surface." |
||
| 48 |
||||||
| Subbl. |
none |
|||||
| Context |
An
elmo subblock, usually the first in a scene file. |
|||||
| Name |
csrf |
Composite_Surface_Elmo_Block |
kComposedSurfaceElmoBlockType |
|||
| Desc. |
A
composite surface. Each composite surface has multiple layers as subblocks. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
||||
| 16 |
4 |
ElmoTag |
next |
Tag
of next block in surface list |
||
| 20 |
2 |
ElmoSurfaceType |
type |
The
type of this surface |
||
| (an
ElmoUInt16) |
kElmoBasicSurface
= 0 (`surf' blocks only) |
|||||
| kElmoPictureSurface
= 1 (`surf' with `imag' subblock only) |
||||||
| kElmoCompositeSurface
= 2 (`csrf' blocks only) |
||||||
| 22 |
2 |
ElmoSurfaceType |
nextType |
The
type of the next surface |
||
| (an
ElmoUInt16) |
kElmoBasicSurface
= 0 (`surf' blocks only) |
|||||
| kElmoPictureSurface
= 1 (`surf' with `imag' subblock only) |
||||||
| kElmoCompositeSurface
= 2 (`csrf' blocks only) |
||||||
| 24 |
32 |
char
(ElmoPString) |
name |
The
surface name |
||
| 56 |
4 |
ElmoFloat32 |
diffusion |
Diffuse
reflection [0.0 to 1.0] |
||
| 60 |
4 |
ElmoFloat32 |
specularity |
Specular
highlight [0.0 to 1.0] |
||
| 64 |
4 |
ElmoFloat32 |
reflectivity |
Specular
reflection [0.0 to 1.0] |
||
| 68 |
4 |
ElmoFloat32 |
transmission |
Transparency
[0.0 to 1.0] |
||
| 72 |
4 |
ElmoFloat32 |
glow |
Glow
(ambient light) [0.0 to 1.0] |
||
| 76 |
4 |
ElmoFloat32 |
specularPower |
Shininess
[20-220] |
||
| 80 |
4 |
ElmoFloat32 |
indexOfRefraction |
Ranges
from 0.5 to 5.5 |
||
| 84 |
4 |
ElmoFloat32 |
metallicity |
Metalicity
[0.0 to 1.0] |
||
| 88 |
4 |
ElmoFloat32 |
colorTransmission |
|||
| 92 |
4 |
ElmoTag |
layerListTag |
Tag
of first block in layer list |
||
| 96 |
4 |
ElmoUInt32 |
combinedSwitch |
Bitwise-OR
of the "mapSwitch" field of the layers. |
||
| 100 |
||||||
| Subbl. |
one
or more csla blocks |
|||||
| Context |
An
elmo subblock, in a list of basic and composed surfaces started by the Scene
block's surfaceList tag. |
|||||
| Name |
csla |
Surface_Layer_Elmo_Block |
kSurfaceLayerElmoBlockType |
|||
| Desc. |
A
composite surface layer. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
||||
| 16 |
4 |
ElmoTag |
next |
Tag
of next block in layer list |
||
| 20 |
4 |
ElmoTag |
material |
Tag
of the basic surface for this layer (`surf' block) |
||
| 24 |
2 |
ElmoInt16 |
inverseMappingID |
|||
| 26 |
2 |
ElmoInt16 |
transferMode |
Surface
layer transfer modes: |
||
| K_copy
= 0 |
||||||
| K_matte
= 1 |
||||||
| K_transparent
= 2 |
||||||
| K_blend_copy
= 3 |
||||||
| K_blend_matte
= 4 |
||||||
| K_blend_transparent
= 5 |
||||||
| K_alpha_channel
= 6 |
||||||
| 28 |
72 |
ElmoAffine |
transform |
|||
| 100 |
4 |
ElmoUInt32 |
mapSwitch |
Map
in use if TRUE for the following bits: |
||
| kElmoTextureMap
= 0x0001 |
||||||
| kElmoSpecularMap
= 0x0002 |
||||||
| kElmoTransmitMap
= 0x0004 |
||||||
| kElmoReflectMap
= 0x0008 |
||||||
| kElmoGlowMap
= 0x0010 |
||||||
| kElmoBumpMap
= 0x0020 |
||||||
| kElmoSpecularPowerMap
= 0x0040 |
||||||
| kElmoIndexOfRefractionMap
= 0x0080 |
||||||
| kElmoMetallicityMap
= 0x00100 |
||||||
| 104 |
4 |
ElmoFloat32 |
textureValue |
[0,
1] |
||
| 108 |
4 |
ElmoFloat32 |
specularValue |
|||
| 112 |
4 |
ElmoFloat32 |
transmitValue |
|||
| 116 |
4 |
ElmoFloat32 |
reflectValue |
|||
| 120 |
4 |
ElmoFloat32 |
glowValue |
|||
| 124 |
4 |
ElmoFloat32 |
bumpValue |
|||
| 128 |
4 |
ElmoFloat32 |
cylindricalAngle |
Only
for cylindrical, cylindrical cap, and spherical |
||
| 132 |
1 |
ElmoBoolean |
invert |
|||
| 133 |
1 |
ElmoBoolean |
padding1 |
Reserved,
Set to 0. |
||
| 134 |
2 |
ElmoInt16 |
horizRepeat |
These
two fields do not apply to 3D textures. |
||
| 136 |
2 |
ElmoInt16 |
vertRepeat |
|||
| 138 |
1 |
ElmoUInt8 |
flip |
surface
layer flip mode: |
||
| k_layer_flip_none
= 0 |
||||||
| k_layer_flip_horz
= 1 |
||||||
| k_layer_flip_vert
= 2 |
||||||
| k_layer_flip_both
= 3 |
||||||
| 139 |
1 |
ElmoUInt8 |
rotate |
surface
layer mapping rotate mode: |
||
| k_layer_rotate_none
= 0 |
||||||
| k_layer_rotate_CW_90
= 1 |
||||||
| k_layer_rotate_CW_180
= 2 |
||||||
| k_layer_rotate_CW_270
= 3 |
||||||
| 140 |
8 |
ElmoPointST |
stMin |
for
ST mapping |
||
| 148 |
8 |
ElmoPointST |
stMax |
for
ST mapping |
||
| 156 |
||||||
| Subbl. |
none |
|||||
| Context |
A
composed surface subblock, in a list of layers started by the surface's
layerListTag element. |
|||||
| Name |
surf |
Surface_Elmo_Block |
kSurfaceElmoBlockType |
|||
| Desc. |
A
single "basic" surface, including color, image, or texture mapping and bump
mapping. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
||||
| 16 |
4 |
ElmoTag |
next |
Tag
of next block in surface list |
||
| 20 |
2 |
ElmoSurfaceType |
type |
The
type of this surface |
||
| (an
ElmoUInt16) |
kElmoBasicSurface
= 0 (`surf' blocks only) |
|||||
| kElmoPictureSurface
= 1 (`surf' with `imag' subblock only) |
||||||
| kElmoCompositeSurface
= 2 (`csrf' blocks only) |
||||||
| 22 |
2 |
ElmoSurfaceType |
nextType |
The
type of the next surface |
||
| (an
ElmoUInt16) |
kElmoBasicSurface
= 0 (`surf' blocks only) |
|||||
| kElmoPictureSurface
= 1 (`surf' with `imag' subblock only) |
||||||
| kElmoCompositeSurface
= 2 (`csrf' blocks only) |
||||||
| 24 |
32 |
char
(ElmoPString) |
name |
The
surface name |
||
| 56 |
4 |
ElmoFloat32 |
diffusion |
Diffuse
reflection [0.0 to 1.0] |
||
| 60 |
4 |
ElmoFloat32 |
specularity |
Specular
highlight [0.0 to 1.0] |
||
| 64 |
4 |
ElmoFloat32 |
reflectivity |
Specular
reflection [0.0 to 1.0] |
||
| 68 |
4 |
ElmoFloat32 |
transmission |
Transparency
[0.0 to 1.0] |
||
| 72 |
4 |
ElmoFloat32 |
glow |
Glow
(ambient light) [0.0 to 1.0] |
||
| 76 |
4 |
ElmoFloat32 |
specularPower |
Shininess
[20 - 220] |
||
| 80 |
4 |
ElmoFloat32 |
indexOfRefraction |
Refraction
during transparency [0.5 to 5.5] |
||
| 84 |
4 |
ElmoFloat32 |
metallicity |
Metalicity
[0.0 to 1.0] |
||
| 88 |
4 |
ElmoFloat32 |
colorTransmission |
|||
| 92 |
2 |
ElmoMappingType |
mappingType |
One
of the following: |
||
| (an
ElmoUInt16) |
kElmoHomogeneousMap
= 0 |
|||||
| kElmoMandelbrotMap
= 1 |
||||||
| kElmoJuliaMap
= 2 |
||||||
| kElmoTileMap
= 3 |
||||||
| kElmoNoiseMap
= 4 |
||||||
| kElmoMarbleMap
= 5 |
||||||
| kElmoWoodMap
= 6 |
||||||
| kElmoImageMap
= 7 |
||||||
| kElmoNaturalWoodMap
= 8 |
||||||
| 94 |
2 |
ElmoBumpType |
bumpType |
One
of the following: |
||
| (an
ElmoUInt16) |
kElmoNoBump
= 0 |
|||||
| kElmoWaveBump
= 1 |
||||||
| kElmoNoiseBump
= 2 |
||||||
| kElmoCorrosionBump
= 3 |
||||||
| kElmoImageBump
= 4 |
||||||
| 96 |
4 |
ElmoTag |
mappingTag |
Tag
of subblock with color/image mapping data |
||
| 100 |
4 |
ElmoTag |
bumpTag |
Tag
of block with bump mapping data |
||
| 104 |
||||||
| Subbl. |
One
surface mapping sublock from the following list: rgb , tile, frct, nois, marb,
wood, natw, imag, and optionally one bump mapping subblock from this list:
nois, wave, imag. |
|||||
| Context |
An
elmo subblock, in a list of basic and composed surfaces started by the Scene
block's surfaceList tag. |
|||||
| Name |
'rgb
' |
RGB_Color_Elmo_Block |
kRGBColorElmoBlockType |
|||
| Desc. |
A
color specified as additive Red, Green, and Blue values from 0.0 to 1.0. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
12 |
ElmoRGBColor |
color |
|||
| 28 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
tile |
Tile_Param_Elmo_Block |
kTileElmoBlockType |
|||
| Desc. |
A
tile map. The tile colors are determined by the basic surface blocks referred
to below. The surfaces must be basic surfaces in the surface list; image maps
and composed surfaces can not be used. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
tilesPerX; |
|||
| 18 |
2 |
ElmoInt16 |
tilesPerY; |
|||
| 20 |
4 |
ElmoTag |
oddTileSurfaceTag; |
tag
of `surf' block for odd tiles. |
||
| 24 |
4 |
ElmoTag |
evenTileSurfaceTag; |
tag
of `surf' block for even tiles. |
||
| 28 |
1 |
ElmoBoolean |
isCheckerBoard; |
TRUE
or FALSE |
||
| 29 |
1 |
ElmoUInt8 |
pad1 |
Reserved,
set to 0. |
||
| 30 |
2 |
ElmoUInt8 |
pad2 |
Reserved,
set to 0. |
||
| 32 |
160 |
ElmoIntPoint2D[40] |
tile
points |
|||
| 192 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
frct |
Fractal_Param_Elmo_Block |
kFractalElmoBlockType |
|||
| Desc. |
Parameters
for a fractal surface |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
8 |
ElmoPoint2D |
seed |
|||
| 24 |
16 |
ElmoRect |
bound |
|||
| 40 |
2 |
ElmoUInt16 |
padding |
Reserved,
set to 0. |
||
| 42 |
2 |
ElmoInt16 |
maxIterations |
|||
| 44 |
28 |
ElmoColorTransition |
transition |
|||
| 72 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface or terrain subblock. |
|||||
| Name |
nois |
Noise_Param_Elmo_Block |
kNoiseElmoBlockType |
|||
| Desc. |
Noise
parameters for a surface |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
28 |
ElmoColorTransition |
transition |
|||
| 44 |
4 |
ElmoFloat32 |
density |
|||
| 48 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
marb |
Marble_Param_Elmo_Block |
kMarbleElmoBlockType |
|||
| Desc. |
A
marble map. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
16 |
ElmoVector4D |
weight |
|||
| 32 |
4 |
ElmoFloat32 |
magnitude |
|||
| 36 |
28 |
ElmoColorTransition |
transition |
|||
| 64 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
wood |
Wood_Param_Elmo_Block |
kWoodElmoBlockType |
|||
| Desc. |
An
original-style wood map. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
28 |
ElmoColorTransition |
transition |
The
two wood colors |
||
| 44 |
12 |
ElmoPoint3D |
scale |
Swirl,
Grain, Cut. |
||
| 56 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
natw |
Natural_Wood_Param_Elmo_Block |
kNaturalWoodElmoBlockType |
|||
| Desc. |
A
"Natural Wood" map. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
28 |
ElmoColorTransition |
transition |
The
two wood colors |
||
| 44 |
4 |
ElmoFloat32 |
angle |
|||
| 48 |
4 |
ElmoFloat32 |
centerOffset |
|||
| 52 |
4 |
ElmoFloat32 |
ringScale |
|||
| 56 |
4 |
ElmoFloat32 |
gnarl |
|||
| 60 |
4 |
ElmoFloat32 |
gnarlScale |
|||
| 64 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
wave |
Wave_Param_Elmo_Block |
kWaveElmoBlockType |
|||
| Desc. |
A
wave map. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
next |
Tag
of next wave block. |
||
| 20 |
12 |
ElmoPoint3D |
center |
|||
| 32 |
4 |
ElmoFloat32 |
amplitude |
|||
| 36 |
4 |
ElmoFloat32 |
frequency |
in
radians |
||
| 40 |
4 |
ElmoFloat32 |
phase |
in
radians |
||
| 44 |
4 |
ElmoFloat32 |
damp |
|||
| 48 |
4 |
ElmoFloat32 |
innerLimit |
in
radians. |
||
| 52 |
4 |
ElmoFloat32 |
outerLimit |
in
radians. |
||
| 56 |
4 |
ElmoFloat32 |
animRate |
positive
or negative. |
||
| 60 |
4 |
ElmoFloat32 |
initialPhase |
offset
for animating. |
||
| 64 |
||||||
| Subbl. |
none |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
imag |
Image_Param_Elmo_Block |
kImageElmoBlockType |
|||
| Desc. |
An
image map (picture). This is either a surface subblock (for an image surface),
or a |
|||||
| terrain
subblock (the terrain data). |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
32 |
char
(ElmoPString) |
fileName |
|||
| 48 |
2 |
ElmoInt16 |
vRefNum |
Macintosh
volume reference number |
||
| 50 |
2 |
ElmoInt16 |
id |
|||
| 52 |
4 |
ElmoInt32 |
parID |
Macintosh
parent directory ID. |
||
| 56 |
2 |
ElmoInt16 |
padding |
Reserved,
set to 0. |
||
| 58 |
2 |
ElmoUInt16 |
originalDepth |
Actual
image bit depth. |
||
| 60 |
2 |
ElmoUInt16 |
depth |
Bit
depth to promote or dither to in Infini-D. |
||
| 62 |
12 |
ElmoRGBColor |
color |
for
monochrome images. |
||
| 74 |
2 |
ElmoImageType |
type |
One
of the following: |
||
| (ElmoUInt16) |
kElmoNoPicture
= 0 |
|||||
| kElmoPICTPicture
= 1 |
||||||
| kElmoPICSPicture
= 2 |
||||||
| kElmoMOVIEPicture
= 3 |
||||||
| kElmoSCRAPPicture
= 4 |
||||||
| 76 |
1 |
ElmoBoolean |
hasAlpha |
Is
there an alpha channel? (for 32-bit images only). |
||
| 77 |
1 |
ElmoAlphaMode |
alphaMode |
One
of the following: |
||
| kElmoNoAlpha
= 0 |
||||||
|
|
kElmoStraightAlpha
= 1 |
|||||
|
|
kElmoMultipliedAlpha
= 2 |
|||||
| 78 |
1 |
ElmoFilterType |
filterType |
|||
| (ElmoUInt8) |
||||||
| 79 |
1 |
ElmoUInt8 |
padding2 |
Reserved,
set to 0. |
||
| 80 |
||||||
| Subbl. |
alis,
qtsp |
|||||
| Context |
A
basic surface subblock. |
|||||
| Name |
alis |
(no
block definition exists) |
kMacAliasElmoBlockType |
|||
| Desc. |
An
alias to a Macintosh file, using the Macintosh Toolbox "AliasRecord" type.
Used to refer to |
|||||
| a
file of image data. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
varies |
AliasRecord |
alias |
A
Macintosh file alias (private data). |
||
| Subbl. |
none |
|||||
| Context |
An
`imag' surface subblock. |
|||||
| Name |
qtsp |
QTSurf_Param_Elmo_Block |
kQTSurfParamElmoBlockType |
|||
| Desc. |
QuickTime
Surface Parameters for an Image block which contains a QuickTime movie. |
|||||
| a
file of image data. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoInt32 |
playRate |
(actually
a 16.16 fixed point number). |
||
| 20 |
4 |
ElmoInt32 |
movieStartTime |
|||
| 24 |
4 |
ElmoInt32 |
movieEndTime |
|||
| 28 |
4 |
ElmoFloat32 |
worldStartTime |
|||
| 32 |
4 |
ElmoInt32 |
leadInFrame |
|||
| 36 |
4 |
ElmoInt32 |
leadOutFrame |
|||
| 40 |
1 |
ElmoBoolean |
loop |
|||
| 41 |
1 |
ElmoBoolean |
padding |
Reserved,
set to 0. |
||
| 42 |
||||||
| Subbl. |
none |
|||||
| Context |
An
`imag' surface subblock. |
|||||
| Name |
lite |
Light_Elmo_Block |
kLightElmoBlockType |
|||
| Desc. |
A
light information block. A light is also an object, so this block also refers |
|||||
| to
a object block. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
next |
Tag
of next light in list |
||
| 20 |
2 |
ElmoUInt16 |
padding |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
type |
One
of the following: |
||
| point_light
= 0 |
||||||
|
|
sun_light
= 1 |
|||||
|
|
spot_light
= 2 |
|||||
| 24 |
4 |
ElmoTag |
lightObject |
Tag
of the associated object |
||
| current |
Light_Info_Elmo_Struct
data follows: |
|||||
| 28 |
12 |
ElmoRGBColor |
color |
|||
| 40 |
12 |
ElmoPoint3D |
position |
|||
| 52 |
12 |
ElmoVector3D |
direction |
direction
of light; normalized and perpendicular to "up_vector" |
||
| 64 |
12 |
ElmoVector3D |
up_vector |
normalized
and perpendicular to "direction" |
||
| 76 |
4 |
ElmoFloat32 |
distanceFallOffStart |
|||
| 80 |
4 |
ElmoFloat32 |
distanceFallOffEnd |
|||
| 84 |
4 |
ElmoFloat32 |
distanceFallOffExponent |
Always
set to 2.0 |
||
| 88 |
4 |
ElmoFloat32 |
innerAngle |
|||
| 92 |
4 |
ElmoFloat32 |
outerAngle |
|||
| 96 |
4 |
ElmoFloat32 |
angleDropExponent |
|||
| 100 |
4 |
ElmoFloat32 |
innerAngleCosine |
Cosine
of "innerAngle" |
||
| 104 |
4 |
ElmoFloat32 |
outerAngleCosine |
Cosine
of "outerAngle" |
||
| 108 |
4 |
ElmoFloat32 |
intensityScaler |
|||
| 112 |
4 |
ElmoTag |
gelSurfaceTag |
Tag
of surface block in surface list. |
||
| 116 |
4 |
ElmoTag |
maskSurfaceTag |
Tag
of surface block in surface list. |
||
| 120 |
2 |
ElmoUInt16 |
padding1 |
Reserved,
set to 0. |
||
| 122 |
1 |
ElmoUInt8 |
padding2 |
Reserved,
set to 0. |
||
| 123 |
1 |
ElmoBoolean |
castsShadows |
|||
| 124 |
||||||
| Subbl. |
lnsf |
|||||
| Context |
An
elmo subblock, in a list of light blocks started by the Scene block's lightList
tag. |
|||||
| Name |
lnsf |
Lens_flare_Elmo_Block |
kLensFlareElmoBlockType |
|||
| Desc. |
Lens-flare
data for a light. The animatable width=100% lens-flare data is stored in a lens-flare
event block (`lfev'). |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
1 |
ElmoBoolean |
enabled |
Does
this light have a lens-flare? |
||
| 17 |
1 |
ElmoBoolean |
usesIntensity |
|||
| 18 |
1 |
ElmoBoolean |
usesColor |
|||
| 19 |
1 |
ElmoBoolean |
enableObfuscation |
|||
| 20 |
||||||
| Subbl. |
none |
|||||
| Context |
A
`lite' subblock. Used by Infini-D 3.5 or greater. |
|||||
| Name |
obj |
Object_Elmo_Block |
kObjectElmoBlockType |
|||
| Desc. |
A
single object. EventMarks, terrain & model data are sub-blocks. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoUInt16 |
objectType |
One
of the following: |
||
| k_sphere
= 0 |
||||||
| k_square
= 1 |
||||||
| k_plane
= 2 |
||||||
| k_cube
= 3 |
||||||
| k_cylinder
= 4 |
||||||
| k_cone
= 5 |
||||||
| k_CSG_object
= 6 |
||||||
| k_extrude
= 7 |
||||||
| k_lathe
= 8 |
||||||
| k_terrain
= 9 (has 'terr' subblock) |
||||||
| k_torus
= 10 |
||||||
| k_bicubic_patch
= 11 |
||||||
| k_light
= 12 |
||||||
| k_camera
= 13 |
||||||
| k_freeform
= 14 |
||||||
| k_mesh
= 15 (has 'modl' subblock) |
||||||
| k_font
= 16 (Infini-D 2.6 and earlier polygonal text) |
||||||
| k_pathpro
= 17 (SplineForm object) |
||||||
| k_pathpro_font
= 18 (SplineForm text) |
||||||
| 18 |
1 |
ElmoUInt8 |
renderMode |
One
of the following: |
||
| k_at_setting
= 0 |
||||||
| k_wireframe
= 1 |
||||||
| k_hidden_line
= 2 |
||||||
| k_shade_fast
= 3 |
||||||
| k_shade_better
= 4 |
||||||
| k_shade_best
= 5 |
||||||
| 19 |
1 |
ElmoUInt8 |
options |
8
option flags using the following bit masks: |
||
| kElmoObjOptVisible
= 0x01 |
||||||
| kElmoObjOptForceBackFaces
= 0x02 |
||||||
| kElmoObjOptNoShadows
= 0x04 |
||||||
| kElmoObjOptCubeObject
= 0x08 ("bbox only") |
||||||
| kElmoObjOptCubeTree
= 0x10 ("fast tree") |
||||||
| kElmoObjOptHiddenFromInterface
= 0x20 (2nd-Nth characters) |
||||||
| kElmoObjOptHeadOfGroup
= 0x40 (1st text character) |
||||||
| kElmoObjOptVisibleMotionPath
= 0x80 |
||||||
| 20 |
4 |
ElmoTag |
parentTag |
Tag
of parent object |
||
| 24 |
4 |
ElmoTag |
siblingTag |
Tag
of sibling object |
||
| 28 |
4 |
ElmoTag |
childTag |
Tag
of child object |
||
| 32 |
32 |
char
(ElmoPString) |
name |
Object
name |
||
| 64 |
28 |
ElmoConstraint3D |
constraint.rotation |
Rotation
constraints |
||
| 92 |
28 |
ElmoConstraint3D |
constraint.position |
Position
constraints |
||
| 120 |
28 |
ElmoConstraint3D |
constraint.scale |
Scale
constraints |
||
| 148 |
72 |
ElmoAffine |
currentAffine |
Affine
transformation parameters |
||
| 220 |
4 |
ElmoTag |
surfaceTag |
Tag
of surface used for this object, or "useParentSurfaceTag" value of scene block. |
||
| 224 |
4 |
ElmoTag |
eventListTag |
Tag
of events for this object ('evtm' sublock). |
||
| 228 |
1 |
ElmoBoolean |
collapsed |
Are
the object's children hidden in the sequencer window? |
||
| 229 |
1 |
ElmoUInt8 |
patchBreakupMode |
Patch
breakup mode constants: |
||
| k_patch_at_setting
= 0 |
||||||
| k_patch_low
= 1 |
||||||
| k_patch_medium
= 2 |
||||||
| k_patch_high
= 3 |
||||||
| 230 |
2 |
ElmoUInt16 |
pad1 |
Reserved,
set to 0. |
||
| 232 |
4 |
ElmoTag |
extraInfoTag |
Tag
of subblock with data specific to the object-type. k_light: `lite' block in
light list, k_camera: `view' block in view list, k_mesh: `modl' subblock,
k_terrain: `terr' subblock. |
||
| 236 |
||||||
| Subbl. |
One
obx1 subblock, one eventListTag sublock of type 'evtm', plus an extraInfoTag
subblock (depending on the "type" parameter) of type: terr or modl. |
|||||
| Context |
An
Elmo subblock, in a tree of Object blocks started by the Scene block's
objectTree tag. |
|||||
| Name |
obx1 |
Lens_flare_Elmo_Block |
kObjX1ElmoBlockType |
|||
| Desc. |
Extended
object data for Infini-D 3.5 or greater. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
1 |
ElmoUInt8 |
CSG_mode |
Constructive
Solid Geometry mode: |
||
| k_CSG_union
= 0 |
||||||
| k_CSG_intersection
= 1 |
||||||
| k_CSG_difference
= 2 |
||||||
| 17 |
1 |
ElmoUInt8 |
padding |
Reserved,
set to 0. |
||
| 18 |
1 |
ElmoBoolean |
trace_as_spline |
|||
| 19 |
1 |
ElmoBoolean |
shadow_catcher |
|||
| 20 |
||||||
| Subbl. |
none |
|||||
| Context |
An
`obj ' subblock. Used by Infini-D 3.5 or greater. |
|||||
| Name |
terr |
Terrain_Elmo_Block |
kTerrainElmoBlockType |
|||
| Desc. |
A
terrain info block for terrain objects. For image and fractal terrains, the
appropriate |
|||||
| mapping
data is stored in a sub-block. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoUInt16 |
type |
The
terrain type: |
||
| JULIA_IN_MANDEL_FN
= 0 ('frct' subblock) |
||||||
| SQUARE_FN
= 1 (no subblock) |
||||||
| RIPPLE_FN
= 2 (no subblock) |
||||||
| BLACK_HOLE_FN
= 3 (no subblock) |
||||||
| STARR_FN
= 4 (no subblock) |
||||||
| BUMPS_FN
= 5 (no subblock) |
||||||
| (reserved)
= 6 |
||||||
| NOISE_FN
= 7 ('nois' subblock) |
||||||
| MANDEL_FN
= 8 ('frct' subblock) |
||||||
| JULIA_FN
= 9 ('frct' subblock) |
||||||
| IMAGE_FN
= 10 ('imag' subblock) |
||||||
| 18 |
2 |
ElmoUInt16 |
gridSize |
Size
of terrain grid (e.g. 10 = 10 by 10) |
||
| 20 |
1 |
ElmoBoolean |
matching |
Apply
matching surface? |
||
| 21 |
1 |
ElmoBoolean |
cliffs |
|||
| 22 |
2 |
ElmoUInt16 |
pad |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
mapTag |
Tag
of terrain map subblock, if any. |
||
| 28 |
||||||
| Subbl. |
one
nois, frct, or imag subblock, depending on the terrain type. |
|||||
| Context |
An
object subblock. |
|||||
| Name |
modl |
Model_Elmo_Block |
kModelElmoBlockType |
|||
| Desc. |
A
surface model block for polygon mesh objects. The vertex, face, and edge lists
are |
|||||
| sub-blocks. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
1 |
ElmoBoolean |
drawBackfaces |
|||
| 17 |
1 |
ElmoBoolean |
firstFaceForWireframeOnly |
|||
| 18 |
1 |
ElmoBoolean |
hasFrontCap |
Unused,
set to FALSE. |
||
| 19 |
1 |
ElmoBoolean |
hasBackCap |
Unused,
set to FALSE. |
||
| 20 |
4 |
ElmoModelIndex |
vertexCount |
Number
of verticies in vertex list |
||
| 24 |
4 |
ElmoTag |
vertexListTag |
Tag
of vertex list block |
||
| 28 |
4 |
ElmoModelIndex |
edgeCount |
Number
of edges in edge list |
||
| 32 |
4 |
ElmoTag |
edgeListTag |
Tag
of edge list subblock |
||
| 36 |
4 |
ElmoModelIndex |
faceCount |
Number
of faces in face list |
||
| 40 |
4 |
ElmoTag |
faceListTag |
Tag
of face list subblock |
||
| 44 |
||||||
| Subbl. |
3
subblocks, one of each type: verl, edgl, facl |
|||||
| Context |
An
object subblock. |
|||||
| Name |
verl |
Vertex_List_Elmo_Block |
kVertexListElmoBlockType |
|||
| Desc. |
A
vertex list. A vertex is a 3D point on a polygonal model, using scene
coordinates. Two verticies make an edge, and 3 |
|||||
| or
more edges make a polygon face. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoModelIndex |
vertexCount |
number
of verticies to follow |
||
| 20 |
12 |
ElmoPoint3D |
vertexList[0] |
First
vertex |
||
| 32 |
12 |
ElmoPoint3D |
vertexList[1] |
Second
vertex |
||
| 44 |
12 |
ElmoPoint3D |
vertexList[2] |
Third
vertex |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
none |
|||||
| Context |
A
Model subblock |
|||||
| Name |
edgl |
Edge_List_Elmo_Block |
kEdgeListElmoBlockType |
|||
| Desc. |
A
list of edges. An edge is a 3D line segment defined by its two endpoint
verticies. The vertex indexes in each edge are zero-origin (0, 1, 2, ...).
Three or more edges, listed in counter-clockwise order, make a polygon face. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoModelIndex |
edgeCount |
number
of edges to follow |
||
| 20 |
8 |
ElmoEdge |
edgeList[0] |
First
edge (index of vertex 1, index of vertex 2) |
||
| 28 |
8 |
ElmoEdge |
edgeList[1] |
Second
edge |
||
| 36 |
8 |
ElmoEdge |
edgeList[2] |
Third
edge |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
none |
|||||
| Context |
A
Model subblock |
|||||
| Name |
facl |
Face_List_Elmo_Block |
kFaceListElmoBlockType |
|||
| Desc. |
A
list of faces (the polygons) of a polygonal model. Each face has list of
edges, and each edge has list of verticies (3D points). Care should be taken to
list edges of a face in counter-clockwise order (viewed from the outside), and
to have neighboring faces correspond to edges where applicable - see ElmoFace
in the Data Structures section. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoModelIndex |
faceCount |
number
of faces to follow |
||
| 20 |
38 |
ElmoFace |
faceList[0] |
First
face |
||
| 58 |
38 |
ElmoFace |
faceList[1] |
Second
face |
||
| 96 |
38 |
ElmoFace |
faceList[2] |
Third
face |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
2
x (number of faces with 5 or more edges) subblocks of type: indl |
|||||
| Context |
A
Model subblock |
|||||
| Name |
indl |
Index_List_Elmo_Block |
kIndexListElmoBlockType |
|||
| Desc. |
A
list of model indices. The indexes are of edges or neighboring faces,
depending on the context, and are zero-origin (0, 1, 2, ...). If the indicies
are of neighboring faces, use the constant `K_no_neighboring_face' to indicate
missing data - see ElmoFace in the Data Structures section. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoModelIndex |
indexCount |
number
of indexes to follow |
||
| 20 |
4 |
ElmoModelIndex |
indexList[0] |
first
index |
||
| 24 |
4 |
ElmoModelIndex |
indexList[1] |
second
index |
||
| 28 |
4 |
ElmoModelIndex |
indexList[2] |
third
index |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
none |
|||||
| Context |
A
face subblock, 2 index for each face that has 5 or more edges. |
|||||
| Name |
evtm |
EventMark_Elmo_Block |
kEventMarkElmoBlockType |
|||
| Desc. |
An
event mark for an object. Event marks are formed as a linked list of |
|||||
| object
subblocks. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
next |
Next
event mark for object. |
||
| 20 |
4 |
ElmoTag |
previous |
Previous
event mark for object. |
||
| 24 |
4 |
ElmoFloat32 |
time |
Time
of this event, in seconds ("world time"). |
||
| 28 |
2 |
ElmoUInt16 |
objectType |
Same
as object types of Object block. |
||
| 30 |
1 |
ElmoBoolean |
dont_render |
Is
this a "death" event? |
||
| 31 |
1 |
ElmoBoolean |
sameAsPrevious |
Is
this a "null" event? |
||
| 32 |
2 |
ElmoInt16 |
easeIn |
Ignored
for Infini-D 3.0 |
||
| 34 |
2 |
ElmoInt16 |
easeOut |
Ignored
for Infini-D 3.0 |
||
| The
following fields represent the values that the user can change at an eventmark.
If a field is kNotAnElmoTag, the |
||||||
| corresponding
parameter isn't fixed at this eventmark. Otherwise, it is the tag of a
structure that contains the value of |
||||||
| the
corresponding parameter at this event, and info on how to interpolate from that
value to the appropriate values at |
||||||
| later
times |
||||||
| 36 |
4 |
ElmoTag |
positionTag |
Tag
of a 'afev' subblock, or zero. |
||
| 40 |
4 |
ElmoTag |
rotationTag |
Tag
of a 'rfev' subblock, or zero. |
||
| 44 |
4 |
ElmoTag |
scaleTag |
Tag
of a 'afev' subblock, or zero. |
||
| 48 |
4 |
ElmoTag |
offsetTag |
Tag
of a 'afev' subblock, or zero. |
||
| 52 |
4 |
ElmoTag |
uniformScaleTag |
Tag
of a 'afev' subblock, or zero. |
||
| 56 |
4 |
ElmoTag |
surfaceTag |
Tag
of a 'sfev' subblock, or zero. |
||
| 60 |
4 |
ElmoTag |
objectInfoTag |
Zero
or the tag of a subblock of type: olev, ppev, |
||
| 64 |
ptev,
txev, liev, caev, or trev. |
|||||
| Subbl. |
afev,
raev, sfev, olev, txev, ptev, liev, caev, trev, ppev |
|||||
| Context |
An
'obj ' subblock |
|||||
| Event
type constants: |
||||||
| kAllEventMarkTypes
= 0 |
||||||
| kPositionEvent
= 2 |
||||||
| kRotationEvent
= 3 |
||||||
| kScaleEvent
= 4 |
||||||
| kOffsetEvent
= 5 |
||||||
| kUniformScaleEvent
= 6 |
||||||
| kSurfaceEvent
= 7 |
||||||
| kObjectInfoEvent
= 8 |
||||||
| Event
flags bit fields: |
||||||
| kEventMark_Spline
= 0x0001 (Set if spline-based event interpolation) |
||||||
| kEventMark_Mixed
= 0x0002 (For meta-eventmarks that have some parameters that are spline and
some that aren't. |
||||||
| Name |
afev |
AffineEvent_Elmo_Block |
kAffineEventElmoBlockType |
|||
| Desc. |
An
Affine transformation event. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoFloat32 |
v_in |
Velocity
in - initially 0. |
||
| 28 |
4 |
ElmoFloat32 |
v_out |
Velocity
out - initially 0. |
||
| 32 |
4 |
ElmoFloat32 |
a_in |
Acceleration
in - initially 0. |
||
| 36 |
4 |
ElmoFloat32 |
a_out |
Acceleration
in - initially 0. |
||
| 40 |
4 |
ElmoFloat32 |
arclength |
|||
| 44 |
4 |
ElmoFloat32 |
tension |
Arc
parameter [-1.0 to 1.0] |
||
| 48 |
4 |
ElmoFloat32 |
continuity |
Arc
parameter [-1.0 to 1.0] |
||
| 52 |
4 |
ElmoFloat32 |
bias |
Arc
parameter [-1.0 to 1.0] |
||
| 56 |
12 |
ElmoVector3D |
value |
Position,
scale, uniform scale, or offset value, depending on "paramType" |
||
| 68 |
1 |
ElmoBoolean |
vlock |
|||
| 69 |
1 |
ElmoUInt8 |
padding3 |
Reserved,
set to 0. |
||
| 70 |
2 |
ElmoUInt16 |
padding4 |
Reserved,
set to 0. |
||
| 72 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by: positionTag, scaleTag, offsetTag, or
uniformScaleTag. |
|||||
| Name |
raev |
RotAffineEvent_Elmo_Block |
kRotAffineEventElmoBlockType |
|||
| Desc. |
A
rotation "Affine" event. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoFloat32 |
v_in |
Velocity
in - initially 0. |
||
| 28 |
4 |
ElmoFloat32 |
v_out |
Velocity
out - initially 0. |
||
| 32 |
4 |
ElmoFloat32 |
a_in |
Acceleration
in - initially 0. |
||
| 36 |
4 |
ElmoFloat32 |
a_out |
Acceleration
in - initially 0. |
||
| 40 |
4 |
ElmoFloat32 |
arclength |
|||
| 44 |
4 |
ElmoFloat32 |
tension |
Arc
parameter [-1.0 to 1.0] |
||
| 48 |
4 |
ElmoFloat32 |
continuity |
Arc
parameter [-1.0 to 1.0] |
||
| 52 |
4 |
ElmoFloat32 |
bias |
Arc
parameter [-1.0 to 1.0] |
||
| 56 |
12 |
ElmoVector3D |
value |
X,
Y, Z rotation at the event (0, 0, 0 = no rotation). |
||
| 68 |
1 |
ElmoBoolean |
vlock |
|||
| 69 |
1 |
ElmoUInt8 |
padding3 |
Reserved,
set to 0. |
||
| 70 |
2 |
ElmoUInt16 |
padding4 |
Reserved,
set to 0. |
||
| 72 |
16 |
ElmoQuaternion |
qval |
Quaternion
rotation value (1, 0, 0, 0 = no rotation). |
||
| 88 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock |
|||||
| Name |
sfev |
SurfaceEvent_Elmo_Block |
kSurfaceEventElmoBlockType |
|||
| Desc. |
A
surface event. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
metaSurfaceTag |
Tag
of `surf' or `csrf' block, or scene's "useParentSurfaceTag" value. |
||
| 28 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock |
|||||
| Name |
olev |
OutlineObjectEvent_Elmo_Block |
kOutlineObjEventElmoBlockType |
|||
| Desc. |
An
Outline Object event. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
outlineTag |
Tag
of `outl' block. |
||
| 28 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
txev |
TextObjectEvent_Elmo_Block |
kTextObjEventElmoBlockType |
|||
| Desc. |
Information
about a text object's parameters at a given eventmark. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
outlineTag |
|||
| 28 |
varies |
ElmoPString |
textLength |
A
length byte followed by 0-255 |
||
| varies |
characters
of text. |
|||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
liev |
LightObjectEvent_Elmo_Block |
kLightObjEventElmoBlockType |
|||
| Desc. |
Information
about a light object's parameters at a given eventmark. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
12 |
ElmoRGBColor |
color |
|||
| 36 |
4 |
ElmoFloat32 |
distanceFallOffStart |
|||
| 40 |
4 |
ElmoFloat32 |
distanceFallOffEnd |
|||
| 44 |
4 |
ElmoFloat32 |
distanceFallOffExponent |
|||
| 48 |
4 |
ElmoFloat32 |
innerAngle |
0
- [pi] radians (0 - 180 degrees). |
||
| 52 |
4 |
ElmoFloat32 |
outerAngle |
0
- [pi] radians; must be larger than innerAngle. |
||
| 56 |
4 |
ElmoFloat32 |
angleDropExponent |
|||
| 60 |
4 |
ElmoFloat32 |
innerAngleCosine |
|||
| 64 |
4 |
ElmoFloat32 |
outerAngleCosine |
|||
| 68 |
4 |
ElmoFloat32 |
intensityScaler |
|||
| 72 |
||||||
| Subbl. |
One
lens-flare event subblock `lfev', for Infini-D 3.5 or greater. |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
lfev |
Lens_flare_Event_Elmo_Block |
kLensFlareEvtElmoBlockType |
|||
| Desc. |
Lens
flare event data. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
1 |
ElmoInt8 |
haloKind |
|||
| 17 |
1 |
ElmoInt8 |
streakKind |
|||
| 18 |
1 |
ElmoInt8 |
reflectionKind |
|||
| 19 |
1 |
ElmoInt8 |
padding1 |
Reserved,
set to 0. |
||
| 20 |
4 |
ElmoRGBInt8Color |
strkRGB |
|||
| 24 |
4 |
ElmoRGBInt8Color |
haloRGB |
|||
| 28 |
4 |
ElmoRGBInt8Color |
lightRGB |
|||
| 32 |
4 |
ElmoRGBInt8Color |
sourceRGB |
|||
| 36 |
4 |
ElmoRGBInt8Color |
innerRGB |
|||
| 40 |
4 |
ElmoRGBInt8Color |
outerRGB |
|||
| 44 |
4 |
ElmoRGBInt8Color |
ringTintRGB |
|||
| 48 |
4 |
ElmoFloat32 |
brightness |
|||
| 52 |
4 |
ElmoFloat32 |
aspectRatio |
|||
| 56 |
4 |
ElmoFloat32 |
lightIntensity |
|||
| 60 |
4 |
ElmoFloat32 |
lightScale |
|||
| 64 |
4 |
ElmoFloat32 |
haloIntensity |
|||
| 68 |
4 |
ElmoFloat32 |
haloScale |
|||
| 72 |
4 |
ElmoFloat32 |
reflectionIntensity |
|||
| 76 |
4 |
ElmoFloat32 |
reflectionScale |
|||
| 80 |
4 |
ElmoFloat32 |
strkIntensity |
|||
| 84 |
4 |
ElmoFloat32 |
strkScale |
|||
| 88 |
4 |
ElmoFloat32 |
strkRotation |
|||
| 92 |
4 |
ElmoFloat32 |
strkAngleDelta |
|||
| 96 |
4 |
ElmoFloat32 |
strkClumpAngle |
|||
| 100 |
1 |
ElmoBoolean |
doLightColor |
|||
| 101 |
1 |
ElmoBoolean |
doSourceGlow |
|||
| 102 |
1 |
ElmoBoolean |
doInnerGlow |
|||
| 103 |
1 |
ElmoBoolean |
doOuterGlow |
|||
| 104 |
1 |
ElmoBoolean |
doRingTint |
|||
| 105 |
1 |
ElmoBoolean |
doGreenSpot |
|||
| 106 |
||||||
| Subbl. |
none |
|||||
| Context |
An
`liev' subblock. Used by Infini-D 3.5 or greater. |
|||||
| Name |
caev |
CameraObjectEvent_Elmo_Block |
kCameraObjEventElmoBlockType |
|||
| Desc. |
Information
about a camera object's parameters at a given eventmark. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoFloat32 |
lensSize |
|||
| 28 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
trev |
TerrainObjectEvent_Elmo_Block |
kTerrainObjEventElmoBlockType |
|||
| Desc. |
Information
about a terrain object's parameters at a given eventmark. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
fractalTag |
Tag
of a 'frct' sub-block. |
||
| 28 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
ppev |
PathProObjectEvent_Elmo_Block |
kPathProObjEventElmoBlockType |
|||
| Desc. |
Information
about a path-profile object's parameters at a given eventmark. |
|||||
| The
associated path model is written as a sub-block. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
pathModelTag |
Tag
of a 'pmdl' sub-block. |
||
| 28 |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
ptev |
PathProTextObjectEvent_Elmo_Block |
kPProTextObjEventElmoBlockType |
|||
| Desc. |
Information
about a path-profile object's parameters at a given eventmark. |
|||||
| The
associated path model is written as a sub-block. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoInt16 |
paramType |
Event
type (see Evtm block) |
||
| 18 |
2 |
ElmoUInt16 |
flags |
Flags
(see Evtm block) |
||
| 20 |
1 |
ElmoBoolean |
sameAsPrevious |
TRUE
if this is a "null" event. |
||
| 21 |
1 |
ElmoUInt8 |
padding1 |
Reserved,
set to 0. |
||
| 22 |
2 |
ElmoUInt16 |
padding2 |
Reserved,
set to 0. |
||
| 24 |
4 |
ElmoTag |
pathModelTag |
Tag
of a 'pmdl' sub-block. |
||
| 28 |
varies |
ElmoPString |
textLength |
A
length byte followed by 0-255 characters of text. |
||
| varies |
||||||
| Subbl. |
none |
|||||
| Context |
An
'evtm' subblock referred to by its objectInfoTag parameter. |
|||||
| Name |
pmdl |
PathModel_Elmo_Block |
kPathModelElmoBlockType |
|||
| Desc. |
A
"path model" object (a.k.a. SplineForm or Path Cross-Section model). |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
pathProTag |
Tag
of the pathpro subblock (3D data subblock) |
||
| 20 |
12 |
ElmoPoint3D |
rotation |
Object
viewing angle (rotation in X, Y, Z away from top view.) |
||
| 32 |
4 |
ElmoFloat32 |
flatness |
Object
view - patch breakup flatness tolerance (default: 0.0) |
||
| 36 |
2 |
ElmoUInt16 |
padding |
Reserved,
set to 0. |
||
| 38 |
2 |
ElmoInt16 |
fineness |
Object
view subpatch fineness. |
||
| kLowDetail
= 0 |
||||||
| kMedDetail
= 2 |
||||||
| kHighDetail
= 4 |
||||||
| 40 |
||||||
| Subbl. |
One
ppro sublock |
|||||
| Context |
A
ppev or ptev subblock. |
|||||
| Name |
ppro |
PathPro_Elmo_Block |
kPathProElmoBlockType |
|||
| Desc. |
The
3D geometry of a Path-Profile object, a.k.a. SplineForm or Path-Cross Section
object. |
|||||
| These
blocks are variable sized, since the profile2DTags array does not have a
pre-set size. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoUInt32 |
flags |
Rendering
subclass flags |
||
| general
object = 0 |
||||||
| k_pathpro_is_extrude
= 1 |
||||||
| k_pathpro_is_lathe
= 2 |
||||||
| 20 |
4 |
ElmoUInt32 |
layoutID |
Workshop
layout to use |
||
| Lathe1
= 0x0100 (hex values) |
||||||
| Lathe2
= 0x1100 |
||||||
| Extrude1
= 0x2100 |
||||||
| Extrude2
= 0x3100 |
||||||
| FreeFormVert
= 0x4100 |
||||||
| FreeFormHor
= 0x5100 |
||||||
| 24 |
4 |
ElmoFloat32 |
marker |
Marker
position on path |
||
| 28 |
4 |
ElmoFloat32 |
pixelsPerUnit |
E.g.
72 (pixels per inch) |
||
| 32 |
1 |
ElmoBoolean |
pathActive |
Is
the path active in the workshop? |
||
| 33 |
1 |
ElmoBoolean |
railsActive |
Are
the rails active in the workshop? |
||
| 34 |
1 |
ElmoBoolean |
showTwist |
Show
twist in the workshop? |
||
| 35 |
1 |
ElmoBoolean |
capFront |
Cap
the object at start of path? |
||
| 36 |
1 |
ElmoBoolean |
capBack |
Cap
the object at end of path? |
||
| 37 |
1 |
ElmoUInt8 |
orientMode |
Flat
or Pipeline mode? |
||
| kParallelProfiles
= 0 (Flat) |
||||||
| kPipedProfiles
= 1 (Pipeline) |
||||||
| 38 |
1 |
ElmoUInt8 |
mirrorMode |
Rail
mirroring mode |
||
| kMirrorNone
= 0 |
||||||
| kMirror2Way
= 1 |
||||||
| kMirror4Way
= 2 |
||||||
| 39 |
1 |
ElmoUInt8 |
majorAxis |
Axis
used to grow/shrink/replace path. |
||
| kXAxis
= 0 |
||||||
| kYAxis
= 1 |
||||||
| kZAxis
= 2 (default) |
||||||
| 40 |
1 |
ElmoInt8 |
bevelType |
One
of the following: |
||
| k_bevel_none=0 |
||||||
| k_bevel_straight=1 |
||||||
| k_bevel_double=2 |
||||||
| k_bevel_convex=3 |
||||||
| k_bevel_concave=4 |
||||||
| k_bevel_step=5 |
||||||
| k_bevel_double_step=6 |
||||||
| k_bevel_interpolated
=-1 |
||||||
| 41 |
1 |
ElmoBoolean |
hasBackBevel |
|||
| 42 |
2 |
ElmoInt16 |
scaleUnits |
|||
| 44 |
4 |
ElmoFloat32 |
bevelSize |
Size
of bevel [0 - 1] |
||
| 48 |
4 |
ElmoFloat32 |
bevelDepth |
Depth
of bevel [0 - 1] |
||
| 52 |
20 |
ElmoTag |
curveTags
[5] |
tags
of 3D spline sub-blocks. Index values are: |
||
| kPath
= 0 (path : spine curve of object) |
||||||
| kRail_xpos
= 1 (positive x-axis rail) |
||||||
| kRail_xneg
= 2 (negative x-axis rail) |
||||||
| kRail_ypos
= 3 (positive y-axis rail) |
||||||
| kRail_yneg
= 4 (negative y-axis rail) |
||||||
| 72 |
4 |
ElmoUInt32 |
profile2DCount |
number
of Profile2D subblocks |
||
| 76 |
4 |
ElmoTag |
profile2DTag[0] |
Tag
of 1st profile (required) |
||
| 80 |
4 |
ElmoTag |
profile2DTag[1] |
Tag
of 2nd profile (if exists) |
||
| 84 |
4 |
ElmoTag |
profile2DTag[2] |
Tag
of 3rd profile (if exists) |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
Five
'ol3d' blocks, 1 or more 'pf2d' blocks |
|||||
| Context |
A
pmdl subblock. |
|||||
| Name |
pf2d |
Profile2D_Elmo_Block |
kProfile2DElmoBlockType |
|||
| Desc. |
A
"Profile 2D", a.k.a. Cross-Section of a SplineForm object. This is a block
with a variable size list of 2D outlines, each of which is a 2D cubic bezier
spline. The outlines are stored as subblocks. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoUInt32 |
pathIndex |
Location
of profile: Index of node on path. |
||
| 20 |
12 |
ElmoVector3D |
planeNormal |
Normal
vector for profile plane (any non-zero length). |
||
| 32 |
12 |
ElmoVector3D |
planeUp |
Up
vector (3D orientation of Y-axis) for profile plane. |
||
| 44 |
4 |
ElmoFloat32 |
twist |
Profile
twist |
||
| none
= 0.0 |
||||||
| 48 |
4 |
ElmoFloat32 |
xTilt |
Tilt
on profile's x-axis (in radians) |
||
| none
= 0.0 |
||||||
| 52 |
4 |
ElmoFloat32 |
yTilt |
Tilt
on profile's y-axis (in radians) |
||
| none
= 0.0 |
||||||
| 56 |
4 |
ElmoUInt32 |
outlineCount |
Number
of outline subblocks. |
||
| 60 |
4 |
ElmoTag |
outlineTag[0] |
Tag
of the 1st outline subblock. |
||
| 64 |
4 |
ElmoTag |
outlineTag[1] |
Tag
of the 2nd outline subblock. |
||
| 68 |
4 |
ElmoTag |
outlineTag[2] |
Tag
of the 3rd outline subblock. |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
One
or more 'ol2d' blocks |
|||||
| Context |
A
ppro subblock. There is one pf2d subblock for each cross-section of an object. |
|||||
| Name |
ol3d |
Outline3D_Elmo_Block |
kOutline3DElmoBlockType |
|||
| Desc. |
A
3D "outline", which is a cubic Bezier spline. Every node on the spline
straddles two cubic Bezier curves, or is the end of one spline if at the start
or end of an open spline. Each Bezier curve is defined by four 3D points of the nodes: (1) the position of the 1st node, (2) the right control of the 1st node, (3) the left control of the 2nd node, and (4) the position of the 2nd node.
This is a variable-sized block. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoUInt16 |
padding1 |
Reserved,
set to 0. |
||
| 18 |
1 |
ElmoUInt8 |
padding2 |
Reserved,
set to 0. |
||
| 19 |
1 |
ElmoBoolean |
closed |
TRUE
if spline is closed. |
||
| 20 |
4 |
ElmoUInt32 |
numberOfPoints |
number
of point node structures to follow |
||
| 24 |
40 |
PtNode3D_Elmo_Struct |
node[0] |
First
point node (required) |
||
| 64 |
40 |
PtNode3D_Elmo_Struct |
node[1] |
Second
point node (required) |
||
| 104 |
40 |
PtNode3D_Elmo_Struct |
node[2] |
Third
point node (optional) |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
none |
|||||
| Context |
A
ppro subblock. There are 5 ol3d subblocks for each ppro. |
|||||
| Name |
ol2d |
Outline2D_Elmo_Block |
kOutline2DElmoBlockType |
|||
| Desc. |
A
2D "outline", which is a cubic Bezier spline. Every node on the spline
straddles two cubic Bezier curves, or is the end of one spline if at the start
or end of an open spline. Each Bezier curve is defined by four 2D points of the nodes: (1) the position of the 1st node, (2) the right control of the 1st node, (3) the left control of the 2nd node, and (4) the position of the 2nd node.
This is a variable-sized block. |
|||||
Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoFloat32 |
thickness |
Spline
thickness in pixels |
||
| default
= 1.0 |
||||||
| 20 |
6 |
ElmoRGBIntColor |
color |
Spline
color |
||
| 26 |
2 |
ElmoUInt16 |
padding1 |
Reserved,
set to 0. |
||
| 28 |
1 |
ElmoUInt8 |
padding2 |
Reserved,
set to 0. |
||
| 29 |
1 |
ElmoBoolean |
closed |
TRUE
if spline is closed. |
||
| 30 |
4 |
ElmoUInt32 |
numberOfPoints |
number
of point node structures to follow |
||
| 34 |
28 |
PtNode2D_Elmo_Struct |
node[0] |
First
point node (required) |
||
| 62 |
28 |
PtNode2D_Elmo_Struct |
node[1] |
Second
point node (required) |
||
| 90 |
28 |
PtNode2D_Elmo_Struct |
node[2] |
Third
point node (optional) |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
none |
|||||
| Context |
A
pf2d subblock. There is one ol2d subblock for each curve in a cross-section. |
|||||
| Name |
envv |
Env_Var_Elmo_Block |
kEnvironmentVarElmoBlockType |
|||
| Desc. |
An
environment variables block. Contains the scene's environment data. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
12 |
ElmoRGBColor |
ambientLight |
|||
| 28 |
12 |
ElmoRGBColor |
backgroundColor |
|||
| 40 |
4 |
ElmoTag |
backgroundImageTag |
Tag
of a surface block in the surface list. |
||
| 44 |
2 |
ElmoUInt16 |
padding1 |
|||
| 46 |
2 |
ElmoBGAlignment |
backgroundAlignment |
One
of the following: |
||
| (ElmoUInt16) |
kElmoAlignWithCenter
= 1 |
|||||
| kElmoAlignWithUpperLeft
= 2 |
||||||
| kElmoScaleToFit
= 3 |
||||||
| 48 |
4 |
ElmoTag |
environmentTag |
Tag
of a surface block in the surface list. |
||
| 52 |
2 |
ElmoUInt16 |
padding2 |
|||
| 54 |
1 |
ElmoUInt8 |
padding3 |
|||
| 55 |
1 |
ElmoBoolean |
doFog |
|||
| 56 |
4 |
ElmoFloat32 |
fogStart |
|||
| 60 |
4 |
ElmoFloat32 |
fogEnd |
fogEnd
must be greater than fogStart. |
||
| 64 |
||||||
| Subbl. |
none |
|||||
| Context |
An
elmo subblock, one per scene file. |
|||||
| Name |
seqv |
SequenceVars_Elmo_Block |
kSequenceVarsElmoBlockType |
|||
| Desc. |
A
sequence variables block. Contains data about the scene's animation settings,
including output options. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoFloat32 |
worldTime |
Current
time, in seconds. |
||
| 20 |
2 |
ElmoUInt16 |
fileLimit |
limit
of Pics file size, in kilobytes. |
||
| 22 |
2 |
ElmoUInt16 |
animateFrom |
|||
| 24 |
2 |
ElmoUInt16 |
outputAs |
|||
| 26 |
1 |
ElmoBoolean |
rayTraceFrames |
Ray-trace
frames while spooling? |
||
| 27 |
1 |
ElmoBoolean |
cropFrames |
Crop
frames while spooling? |
||
| 28 |
4 |
ElmoFloat32 |
beginningOfAnimation |
"punch-in"
time, in seconds. |
||
| 32 |
4 |
ElmoFloat32 |
endOfAnimation |
"punch-out"
time, in seconds. |
||
| 36 |
2 |
ElmoUInt16 |
bitDepth |
Bit
depth of Quicktime movie. |
||
| 38 |
2 |
ElmoUInt16 |
framesPerSecond |
Frames
per second, e.g. 30 |
||
| 40 |
4 |
ElmoFloat32 |
snapshotIncrement |
Snap
shot increment, in seconds. E.g. 0.5 |
||
| 44 |
4 |
ElmoFloat32 |
spoolBeginTime |
In
seconds. |
||
| 48 |
4 |
ElmoFloat32 |
spoolEndTime |
In
seconds. |
||
| 52 |
4 |
CodecType |
codecType |
Mac-specific
image compression data. |
||
| 56 |
4 |
CodecComponent |
compressor |
Mac-specific
image compression data. |
||
| 60 |
4 |
CodecQ |
spatialQuality |
Mac-specific
image compression data. |
||
| 64 |
||||||
| Subbl. |
none |
|||||
| Context |
An
elmo subblock, one per scene file. |
|||||
| Name |
bkmk |
BookMark_Elmo_Block |
kBookMarkElmoBlockType |
|||
| Desc. |
A
camera bookmark for views. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
next |
Tag
of next bookmark in list. |
||
| 20 |
32 |
char
(ElmoPString) |
name |
|||
| 52 |
1 |
ElmoBoolean |
padding |
|||
| 53 |
1 |
ElmoUInt8 |
viewType |
One
of the following: |
||
| TOP_view
= 1 |
||||||
| FRONT_view
= 2 |
||||||
| RIGHT_view
= 3 |
||||||
| BOTTOM_view
= 4 |
||||||
| BACK_view
= 5 |
||||||
| LEFT_view
= 6 |
||||||
| CAMERA_view
= 7 |
||||||
| 54 |
1 |
ElmoBoolean |
cantKill |
|||
| 55 |
1 |
ElmoBoolean |
defaultBM |
|||
| Movie_Camera_Elmo_Struct |
"theCam"
elements: |
|||||
| 56 |
2 |
ElmoUInt16 |
theCam.padding |
Reserved,
set to 0. |
||
| 58 |
2 |
ElmoInt16 |
theCam.type |
|||
| 60 |
12 |
ElmoPoint3D |
theCam.position |
|||
| 72 |
12 |
ElmoVector3D |
theCam.rotation |
|||
| 84 |
4 |
ElmoFloat32 |
theCam.lensSize |
|||
| 88 |
4 |
ElmoFloat32 |
theCam.eyeDistance |
|||
| 92 |
4 |
ElmoFloat32 |
theCam.orthoWindowSize |
|||
| 96 |
||||||
| Subbl. |
none |
|||||
| Context |
An
elmo subblock, in a list of bookmarks started by the Scene block's bookMarkList
tag. |
|||||
| Name |
view |
View_Elmo_Block |
kViewElmoBlockType |
|||
| Desc. |
A
view structure. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
next |
Tag
of next view block in list. |
||
| 20 |
2 |
ElmoUInt16 |
windowKind |
|||
| 22 |
2 |
ElmoUInt16 |
viewType |
One
of the following: |
||
| TOP_view
= 1 |
||||||
| FRONT_view
= 2 |
||||||
| RIGHT_view
= 3 |
||||||
| BOTTOM_view
= 4 |
||||||
| BACK_view
= 5 |
||||||
| LEFT_view
= 6 |
||||||
| CAMERA_view
= 7 |
||||||
| 24 |
32 |
char
(ElmoPString) |
name |
|||
| View_Options_Elmo_Struct |
"viewingOptions"
elements: |
|||||
| 56 |
1 |
ElmoUInt8 |
mode |
View
rendering mode: |
||
| K_view_fast_wireframe
= 0 (wireframe, really) |
||||||
| K_view_wireframe
= 1 (bounding box, really) |
||||||
| K_view_hidden_line
= 2 (reserved) |
||||||
| K_view_shade_fast
= 3 |
||||||
| K_view_shade_better
= 4 |
||||||
| K_view_shade_best
= 5 |
||||||
| K_view_ray_trace
= 6 |
||||||
| 57 |
1 |
ElmoUInt8 |
offscreenDepth |
View
bit depth: |
||
| K_automatic_depth
= 0 |
||||||
| K_1_bit
= 1 |
||||||
| K_2_bit
= 2 |
||||||
| K_4_bit
= 3 |
||||||
| K_8_bit
= 4 |
||||||
| K_16_bit
= 5 |
||||||
| K_32_bit
= 6 |
||||||
| 58 |
1 |
ElmoBoolean |
doShadow |
|||
| 59 |
1 |
ElmoBoolean |
doReflection |
|||
| 60 |
1 |
ElmoBoolean |
doRefraction |
|||
| 61 |
1 |
ElmoBoolean |
doSuperSampling |
|||
| 62 |
1 |
ElmoBoolean |
doDither |
|||
| 63 |
1 |
ElmoBoolean |
displayBackdrop |
|||
| 64 |
1 |
ElmoBoolean |
forceVisibleWireframe |
|||
| 65 |
1 |
ElmoBoolean |
showInvisibleObjects |
|||
| 66 |
1 |
ElmoUInt8 |
tracerSuperSamplingLevel |
|||
| 67 |
1 |
ElmoUInt8 |
shaderSuperSamplingLevel |
|||
| 68 |
1 |
ElmoUInt8 |
alphaMode |
|||
| k_no_alpha
= 0 |
||||||
| k_straight_alpha
= 1 |
||||||
| k_multiplied_alpha
= 2 |
||||||
| 69 |
1 |
ElmoBoolean |
doShaderShadows |
|||
| 70 |
1 |
ElmoBoolean |
doShaderTransparency |
|||
| 71 |
1 |
ElmoUInt8 |
wireframe_quality_level |
|||
| 72 |
2 |
ElmoUInt16 |
maxReflectionDepth |
|||
| 74 |
2 |
ElmoUInt16 |
maxRefractionDepth |
|||
| 76 |
4 |
ElmoFloat32 |
supersamplingThreshold |
|||
| 80 |
4 |
ElmoFloat32 |
lightTraceThreshold |
|||
| 84 |
4 |
ElmoFloat32 |
moveIncrement |
|||
| 88 |
4 |
ElmoFloat32 |
swivelIncrement |
|||
| 92 |
4 |
ElmoFloat32 |
zoomIncrement |
|||
| 96 |
4 |
ElmoFloat32 |
zoomOrthographicIncrement |
|||
| 100 |
1 |
ElmoUInt8 |
padding |
Reserved,
set to 0. |
||
| 101 |
1 |
ElmoBoolean |
visible |
|||
| 102 |
1 |
ElmoUInt8 |
renderMenuItem |
|||
| 103 |
1 |
ElmoBoolean |
moveSwivel |
|||
| 104 |
32 |
char
(ElmoPString) |
bookMarkString |
|||
| Movie_Camera_Elmo_Struct |
"movieCam"
elements: |
|||||
| 136 |
2 |
ElmoUInt16 |
movieCam.padding |
Reserved,
set to 0. |
||
| 138 |
2 |
ElmoInt16 |
movieCam.type |
|||
| 140 |
12 |
ElmoPoint3D |
movieCam.position |
|||
| 152 |
12 |
ElmoVector3D |
movieCam.rotation |
|||
| 164 |
4 |
ElmoFloat32 |
movieCam.lensSize |
|||
| 168 |
4 |
ElmoFloat32 |
movieCam.eyeDistance |
|||
| 172 |
4 |
ElmoFloat32 |
movieCam.orthoWindowSize |
|||
| 174 |
2 |
ElmoInt16 |
magnification |
|||
| 176 |
2 |
ElmoInt16 |
WDEFItem |
|||
| 178 |
8 |
ElmoIntRect |
viewRect |
|||
| 196 |
||||||
| Subbl. |
one
vwx2 block for Infini-D 3.5 or greater. |
|||||
| Context |
An
elmo subblock, in a list of views started by the Scene block's viewList tag. |
|||||
| Name |
vwx2 |
View_Options_X1_Elmo_Struct |
kViewX1ElmoBlockType |
|||
| Desc. |
Extended
data for a view. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
1 |
ElmoBoolean |
showLensFlare |
|||
| 17 |
1 |
ElmoBoolean |
showTitleSafe |
|||
| 18 |
1 |
ElmoBoolean |
showActionSave |
|||
| 19 |
1 |
ElmoBoolean |
padding |
|||
| 20 |
||||||
| Subbl. |
none |
|||||
| Context |
A
`view subblock. Used by Infini-D 3.5 or greater. |
|||||
| Name |
outl |
Outline_Elmo_Block |
kOutlineElmoBlockType |
|||
| Desc. |
An
outline model. These are the 5-way polyline models (Lathe, Extrusion,
FreeForm) |
|||||
| created
with Infini-D 2.6 or earlier. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
next |
Tag
of next outline block |
||
| 20 |
4 |
ElmoTag |
previous |
Tag
of previous outline block |
||
| 24 |
2 |
ElmoInt16 |
type |
One
of the following: |
||
| k_generic_outline
= 0 |
||||||
| k_SoR_outline
= 1 |
||||||
| k_prism_outline
= 2 |
||||||
| k_font_outline
= 3 |
||||||
| Elmo_Bevel_Info
elements: |
||||||
| 26 |
2 |
ElmoInt16 |
bevel.type |
One
of the following: |
||
| k_bevel_none=0 |
||||||
| k_bevel_straight=1 |
||||||
| k_bevel_double=2 |
||||||
| k_bevel_convex=3 |
||||||
| k_bevel_concave=4 |
||||||
| k_bevel_step=5 |
||||||
| k_bevel_double_step=6 |
||||||
| k_bevel_interpolated
=-1 |
||||||
| 28 |
1 |
ElmoUInt8 |
bevel.padding |
|||
| 29 |
1 |
ElmoBoolean |
bevel.hasBackBevel |
|||
| 30 |
4 |
ElmoFloat32 |
bevel.size |
[0
- 1] |
||
| 34 |
4 |
ElmoFloat32 |
bevel.depth |
[0
- 1] |
||
| 38 |
4 |
ElmoTag |
posXTag |
Tag
of PolyPoint block for X+ profile. |
||
| 42 |
4 |
ElmoTag |
negXTag |
Tag
of PolyPoint block for X- profile. |
||
| 46 |
4 |
ElmoTag |
posYTag |
Tag
of PolyPoint block for Y+ profile. |
||
| 50 |
4 |
ElmoTag |
negYTag |
Tag
of PolyPoint block for Y- profile. |
||
| 54 |
4 |
ElmoTag |
crossTag |
Tag
of PolyPoint block for cross-section profile. |
||
| 58 |
||||||
| Subbl. |
5
PolyPoint subblocks |
|||||
| Context |
An
elmo subblock, in a list of outlines started by the Scene block's outlineList
tag. |
|||||
| Name |
pypt |
Polypoint_Elmo_Block |
kPolypointElmoBlockType |
|||
| Desc. |
A
polypoint block. Each polypoint can have multiple loops, each of which can have
a variable |
|||||
| number
of points. Each loop is stored in a PolypointLoop subblock. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoUInt16 |
padding |
Reserved,
set to 0. |
||
| 18 |
2 |
ElmoUInt16 |
loopCount |
Number
of loop tags to follow: |
||
| 20 |
4 |
ElmoTag |
loopTags[0] |
Tag
of the first Polypoint Loop block. |
||
| 24 |
4 |
ElmoTag |
loopTags[1] |
Tag
of the second Polypoint Loop block. |
||
| 28 |
4 |
ElmoTag |
loopTags[2] |
Tag
of the third Polypoint Loop block. |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
a
number of Polypoint Loop subblocks equal to "loopCount" |
|||||
| Context |
One
of 5 Polypoint subblocks of an Outline block. |
|||||
| Name |
pylp |
Polypoint_Loop_Elmo_Block |
kPolypointLoopElmoBlockType |
|||
| Desc. |
A
polypoint loop block. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
2 |
ElmoUInt16 |
padding |
|||
| 18 |
2 |
ElmoUInt16 |
pointCount |
Number
of Polypoint Nodes in list below: |
||
| 20 |
8 |
Elmo_Polypoint_Node |
nodes[0] |
First
Polypoint. |
||
| 28 |
8 |
Elmo_Polypoint_Node |
nodes[1] |
Second
Polypoint. |
||
| 36 |
8 |
Elmo_Polypoint_Node |
nodes[2] |
Third
Polypoint. |
||
| ... |
... |
... |
... |
... |
||
| Subbl. |
none |
|||||
| Context |
A
polypoint subblock. |
|||||
| Name |
sqin |
Seq_Obj_List_Elmo_Block |
kSequencerInfoElmoBlockType |
|||
| Desc. |
A
sequencer information block. Lists the objects known by the sequencer. The
subblock order |
|||||
| is
significant, and determines the order objects appear in the sequencer. |
||||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoUInt32 |
objectCount |
Number
of sqob subblocks. |
||
| 20 |
||||||
| Subbl. |
A
number of 'sqob' subblocks equal to objectCount. |
|||||
| Context |
An
elmo subblock. |
|||||
| Name |
sqob |
Seq_Obj_Elmo_Block |
kSequencerObjectElmoBlockType |
|||
| Desc. |
A
sequencer object block. Contains sequencer information pertaining to one
object in a scene. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoTag |
worldInfoTag |
Tag
of object block. |
||
| 20 |
1 |
ElmoBoolean |
collapsed |
Are
the names of this object's children hidden? |
||
| 21 |
1 |
ElmoBoolean |
hidden |
TRUE
for text objects only. |
||
| 22 |
1 |
ElmoBoolean |
showParams |
Are
the object's position, rotation, etc. visible? |
||
| 23 |
1 |
ElmoUInt8 |
cellCount |
Number
of cells used vertically. |
||
| 24 |
4 |
ElmoUInt32 |
indentLevel |
Object
tree indentation, 0 or more. |
||
| 28 |
1 |
ElmoBoolean |
expandPosition |
Reserved,
set to 0. |
||
| 29 |
1 |
ElmoBoolean |
expandRotation |
Reserved,
set to 0. |
||
| 30 |
1 |
ElmoBoolean |
expandScale |
Reserved, set to 0. |
||
| 31 |
1 |
ElmoBoolean |
expandOffset |
Reserved,
set to 0. |
||
| 32 |
||||||
| Subbl. |
none |
|||||
| Context |
A Sequencer Info subblock. |
|||||
| Name |
sprf |
ScenePref_Elmo_Block |
kScenePrefsElmoBlockType |
|||
| Desc. |
Scene-specific preferences. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| 16 |
4 |
ElmoInt32 |
patchDetail |
|||
| 20 |
4 |
ElmoInt32 |
measurementUnits |
|||
| 24 |
||||||
| Subbl. |
none |
|||||
| Context |
A
`view subblock. Used by Infini-D 3.5 or greater. |
|||||
| Name |
end! |
(no
block definition exists) |
kElmoEOFKind |
|||
| Desc. |
The
end-of-file block. Always the last block of the file. |
|||||
| Content |
Offset |
Size |
Type |
Name |
Description
and cases |
|
| 0 |
16 |
ElmoBlockHeader |
header |
|||
| Subbl. |
none |
|||||
| Context |
An
elmo subblock. |