// SPDX-FileCopyrightText: 2023 Unity Technologies and the glTFast authors
// SPDX-License-Identifier: Apache-2.0
namespace GLTFast
{
///
/// glTF Extensions
///
public enum Extension
{
///
/// KHR_draco_mesh_compression glTF extension
///
DracoMeshCompression,
///
/// KHR_lights_punctual glTF extension
///
LightsPunctual,
///
/// KHR_materials_pbrSpecularGlossiness glTF extension
///
MaterialsPbrSpecularGlossiness,
///
/// KHR_materials_transmission glTF extension
///
MaterialsTransmission,
///
/// KHR_materials_unlit glTF extension
///
MaterialsUnlit,
///
/// EXT_mesh_gpu_instancing glTF extension
///
MeshGPUInstancing,
///
/// KHR_mesh_quantization glTF extension
///
MeshQuantization,
///
/// KHR_texture_basisu glTF extension
///
TextureBasisUniversal,
///
/// KHR_texture_transform glTF extension
///
TextureTransform,
///
/// KHR_materials_clearcoat glTF extension
///
MaterialsClearcoat,
///
/// KHR_materials_variants glTF extension
///
MaterialsVariants,
///
/// EXT_meshopt_compression glTF extension
///
MeshoptCompression,
///
/// KHR_materials_ior glTF extension
///
MaterialsIor,
///
/// KHR_materials_sheen glTF extension
///
MaterialsSheen,
///
/// KHR_materials_specular glTF extension
///
MaterialsSpecular,
}
///
/// Collection of glTF extension names
///
public static class ExtensionName
{
///
public const string DracoMeshCompression = "KHR_draco_mesh_compression";
///
public const string MaterialsPbrSpecularGlossiness = "KHR_materials_pbrSpecularGlossiness";
///
public const string MaterialsTransmission = "KHR_materials_transmission";
///
public const string MaterialsUnlit = "KHR_materials_unlit";
///
public const string MeshGPUInstancing = "EXT_mesh_gpu_instancing";
///
public const string MeshoptCompression = "EXT_meshopt_compression";
///
public const string MeshQuantization = "KHR_mesh_quantization";
///
public const string TextureBasisUniversal = "KHR_texture_basisu";
///
public const string TextureTransform = "KHR_texture_transform";
///
public const string LightsPunctual = "KHR_lights_punctual";
///
public const string MaterialsClearcoat = "KHR_materials_clearcoat";
///
public const string MaterialsIor = "KHR_materials_ior";
///
public const string MaterialsSheen = "KHR_materials_sheen";
///
public const string MaterialsSpecular = "KHR_materials_specular";
///
public const string MaterialsVariants = "KHR_materials_variants";
///
/// Returns the official name of the glTF extension
///
/// Extension enum value
/// Name of the glTF extension
public static string GetName(this Extension extension)
{
switch (extension)
{
case Extension.DracoMeshCompression:
return DracoMeshCompression;
case Extension.LightsPunctual:
return LightsPunctual;
case Extension.MaterialsPbrSpecularGlossiness:
return MaterialsPbrSpecularGlossiness;
case Extension.MaterialsTransmission:
return MaterialsTransmission;
case Extension.MaterialsUnlit:
return MaterialsUnlit;
case Extension.MeshGPUInstancing:
return MeshGPUInstancing;
case Extension.MeshQuantization:
return MeshQuantization;
case Extension.TextureBasisUniversal:
return TextureBasisUniversal;
case Extension.TextureTransform:
return TextureTransform;
case Extension.MaterialsClearcoat:
return MaterialsClearcoat;
case Extension.MaterialsVariants:
return MaterialsVariants;
case Extension.MeshoptCompression:
return MeshoptCompression;
case Extension.MaterialsIor:
return MaterialsIor;
case Extension.MaterialsSpecular:
return MaterialsSpecular;
case Extension.MaterialsSheen:
return MaterialsSheen;
default:
return null;
}
}
}
}