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 unrecognised 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
unrecognised block types.
i) Integers and other values are ordered with the most-significant byte first
(big-endian), as is typical with Macintosh data.
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 unrecognised block types are ignored. See "About the Elmo
Block Structure" for more information.
|
|
|
|
|
|
|
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 encompasses 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
|
Metallicity
[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.
|
|
|
|
|
|