update method
Implementation
BufferGeometry update(Object3D object) {
num frame = info.render["frame"]!;
final geometry = object.geometry;
final buffergeometry = geometries.get(geometry!);
// Update once per frame
if (updateMap.get(buffergeometry) != frame) {
geometries.update(buffergeometry);
updateMap.add(key: buffergeometry, value: frame);
}
// print(" WebGLObjects update object: ${object} ${object.type} ");
if (object is InstancedMesh) {
if (object.hasEventListener('dispose', onInstancedMeshDispose) == false) {
object.addEventListener('dispose', onInstancedMeshDispose);
}
if ( updateMap.get( object ) != frame ) {
// print(" WebGLObjects update 2 object: ${object} ${object.instanceMatrix} ");
attributes.update(object.instanceMatrix, WebGL.ARRAY_BUFFER);
if (object.instanceColor != null) {
attributes.update(object.instanceColor, WebGL.ARRAY_BUFFER);
}
updateMap.set( object, frame );
}
}
if ( object is SkinnedMesh ) {
final skeleton = object.skeleton;
if ( updateMap.get( skeleton ) != frame ) {
skeleton?.update();
updateMap.set( skeleton, frame );
}
}
return buffergeometry;
}