parse static method
Implementation
static Uint8List parse(Scene scene){
// We collect objects first, as we may need to convert from BufferGeometry to Geometry
List<Mesh> objects = [];
int triangles = 0;
scene.traverse((object){
if(object is Mesh){
BufferGeometry? geometry = object.geometry;
final indices = geometry?.getIndex();
if(indices != null){
triangles += indices.length~/3;
objects.add(object);
}
}
});
int offset = 80; // skip header
int bufferLength = triangles * 2 + triangles * 3 * 4 * 4 + 80 + 4;
//final arrayBuffer = new ArrayBuffer( bufferLength );
ByteData output = ByteData(bufferLength);
output.setUint32( offset, triangles, Endian.little ); offset += 4;
// Traversing our collected objects
///objects.forEach(( mesh ){
for(Mesh mesh in objects){
parseMesh(mesh, offset, output);
}
return output.buffer.asUint8List();
}