parseGeometries method

dynamic parseGeometries(
  1. dynamic json,
  2. dynamic shapes
)

Implementation

parseGeometries(json, shapes) {
  final geometries = {};

  if (json != null) {
    final bufferGeometryLoader = BufferGeometryLoader();

    for (int i = 0, l = json.length; i < l; i++) {
      late BufferGeometry geometry;
      Map<String, dynamic> data = json[i];

      switch (data["type"]) {
        case 'BufferGeometry':
        case 'InstancedBufferGeometry':
          geometry = bufferGeometryLoader.parseJson(data);
          break;
        case 'Geometry':
          console.error('ObjectLoader: The legacy Geometry type is no longer supported.');
          break;
        default:
          if (data["type"] == "PlaneGeometry") {
            geometry = PlaneGeometry.fromJson(data);
          } else if (data["type"] == "BoxGeometry") {
            geometry = BoxGeometry.fromJson(data);
          } else if (data["type"] == "CylinderGeometry") {
            geometry = CylinderGeometry.fromJson(data);
          } else if (data["type"] == "SphereGeometry") {
            geometry = SphereGeometry.fromJson(data);
          } else {
            throw ("THREE.ObjectLoader: Unsupported geometry type ${data["type"]}");
          }
      }

      geometry.uuid = data["uuid"];

      if (data["name"] != null) geometry.name = data["name"];
      if (data["userData"] != null) {
        geometry.userData = data["userData"];
      }

      geometries[data["uuid"]] = geometry;
    }
  }

  return geometries;
}