parseGeometries method

Map<String, dynamic> parseGeometries(
  1. List<Map<String, dynamic>>? json, [
  2. dynamic shapes
])

Implementation

Map<String,dynamic> parseGeometries(List<Map<String,dynamic>>? json, [shapes]) {
  final Map<String,dynamic> 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;
}