//header section
uint32 magic = "3db_";
uchar polygons_per_section; //number of polygons per section
//vertex section
uint16 sections;
for(i=0; i<sections+1; i++) { //sections
for(j=0; j<polygons_per_section; j++) { //read vertecies
float x, y, z;
}
}
uint32 attributes; //number of attributes
//0 color
//1 texture placement
for(i=0; i<attributes; i++) {
uint32 attribute_size;
for(j=0; i<attribute_size;j++) read(attribute_chunk);
}
uchar strings; //number of string attributes
for(i=0; i<strings; i++) {
//0 texture map
//1 bump map
//2 alpha mask
}
//child section
uint32 children; //number of child objects
for(i=0; i<children; i++) {
char *path; //path name of child relative to object
float x, y, z; //location relative to object
uint16 a, b, c; //rotation relative to object
uchar inherit; //inherit attributes
}