parse static method

Uint8List parse(
  1. Scene scene
)

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();
  }