constructor() {

		this.debugger = new Debugger();
		// this.debugger.enable(); // un-comment to log IFF hierarchy.

	}
=== IFFParser ===
- Parses data from the IFF buffer.
- LWO3 files are in IFF format and can contain the following data types, referred to by shorthand codes

ATOMIC DATA TYPES
 ID Tag - 4x 7 bit uppercase ASCII chars: ID4
 signed integer, 1, 2, or 4 byte length: I1, I2, I4
 unsigned integer, 1, 2, or 4 byte length: U1, U2, U4
 float, 4 byte length: F4
 string, series of ASCII chars followed by null byte (If the length of the string including the null terminating byte is odd, an extra null is added so that the data that follows will begin on an even byte boundary): S0

COMPOUND DATA TYPES
 Variable-length Index (index into an array or collection): U2 or U4 : VX
 Color (RGB): F4 + F4 + F4: COL12
 Coordinate (x, y, z): F4 + F4 + F4: VEC12
 Percentage F4 data type from 0->1 with 1 = 100%: FP4
 Angle in radian F4: ANG4
 Filename (string) S0: FNAM0
 XValue F4 + index (VX) + optional envelope( ENVL ): XVAL
 XValue vector VEC12 + index (VX) + optional envelope( ENVL ): XVAL3

 The IFF file is arranged in chunks:
 CHUNK = ID4 + length (U4) + length X bytes of data + optional 0 pad byte
 optional 0 pad byte is there to ensure chunk ends on even boundary, not counted in size

COMPOUND DATA TYPES
- Chunks are combined in Forms (collections of chunks)
- FORM = string 'FORM' (ID4) + length (U4) + type (ID4) + optional ( CHUNK | FORM )
- CHUNKS and FORMS are collectively referred to as blocks
- The entire file is contained in one top level FORM