ModelImportSettings.fromJson constructor

ModelImportSettings.fromJson(
  1. Map<String, dynamic> json
)

Reads settings saved by toJson; anything missing or wrong keeps its default.

Implementation

factory ModelImportSettings.fromJson(Map<String, dynamic> json) {
  final version = json['formatVersion'];
  if (version is int && version > formatVersion) {
    throw FormatException(
      'Model import settings of format $version are newer than this ($formatVersion).',
    );
  }
  final materials = <String, MaterialOverride>{};
  final m = json['materials'];
  if (m is Map) {
    for (final MapEntry(:key, :value) in m.entries) {
      if (key is String && value is Map) {
        materials[key] = MaterialOverride.fromJson(
          value.cast<String, dynamic>(),
        );
      }
    }
  }
  final compression = json['textureCompression'];
  return ModelImportSettings(
    scale: _number(json['scale']) ?? 1.0,
    maxTextureSize: (json['maxTextureSize'] as num?)?.toInt() ?? 4096,
    mipmaps: json['mipmaps'] as bool? ?? true,
    textureCompression: TextureCompression.values.firstWhere(
      (c) => c.name == compression,
      orElse: () => TextureCompression.none,
    ),
    materials: materials,
  );
}