using System.Collections;
using System.Collections.Generic;
#if !TRILIB_DISABLE_FBX_IMPORT
#if TRILIB_USE_FBXSDK
using TriLibCore.FBXSDK;
#else
using TriLibCore.Fbx.Reader;
#endif
#endif
#if !TRILIB_DISABLE_GLTF_IMPORT
using TriLibCore.Gltf.Reader;
#endif
#if !TRILIB_DISABLE_OBJ_IMPORT
#if !TRILIB_USE_FBXSDK
using TriLibCore.Obj.Reader;
#endif
#endif
#if !TRILIB_DISABLE_STL_IMPORT
using TriLibCore.Stl.Reader;
#endif
#if !TRILIB_DISABLE_PLY_IMPORT
using TriLibCore.Ply.Reader;
#endif
#if !TRILIB_DISABLE_3MF_IMPORT
using TriLibCore.ThreeMf.Reader;
#endif
#if !TRILIB_DISABLE_DAE_IMPORT
#if !TRILIB_USE_FBXSDK
using TriLibCore.Dae.Reader;
#endif
#endif
namespace TriLibCore
{
///
/// Represents a series of methods to retrieve TriLib reader infos.
///
public class Readers
{
///
/// Gets all TriLib reader extensions.
///
public static IList Extensions
{
get
{
var extensions = new List();
#if !TRILIB_DISABLE_FBX_IMPORT
extensions.AddRange(FbxReader.GetExtensions());
#endif
#if !TRILIB_DISABLE_GLTF_IMPORT
extensions.AddRange(GltfReader.GetExtensions());
#endif
#if !TRILIB_DISABLE_OBJ_IMPORT
#if !TRILIB_USE_FBXSDK
extensions.AddRange(ObjReader.GetExtensions());
#endif
#endif
#if !TRILIB_DISABLE_STL_IMPORT
extensions.AddRange(StlReader.GetExtensions());
#endif
#if !TRILIB_DISABLE_PLY_IMPORT
extensions.AddRange(PlyReader.GetExtensions());
#endif
#if !TRILIB_DISABLE_3MF_IMPORT
extensions.AddRange(ThreeMfReader.GetExtensions());
#endif
#if !TRILIB_DISABLE_DAE_IMPORT
#if !TRILIB_USE_FBXSDK
extensions.AddRange(DaeReader.GetExtensions());
#endif
#endif
return extensions;
}
}
///
/// Returns the Reader used to process the given extension.
///
/// The extension to search the Reader for.
/// The Reader used to process the extension, if found. Otherwise, null.
public static ReaderBase FindReaderForExtension(string extension)
{
#if !TRILIB_DISABLE_FBX_IMPORT
if (((IList)FbxReader.GetExtensions()).Contains(extension))
{
return new FbxReader();
}
#endif
#if !TRILIB_DISABLE_GLTF_IMPORT
if (((IList)GltfReader.GetExtensions()).Contains(extension))
{
return new GltfReader();
}
#endif
#if !TRILIB_DISABLE_OBJ_IMPORT
#if !TRILIB_USE_FBXSDK
if (((IList)ObjReader.GetExtensions()).Contains(extension))
{
return new ObjReader();
}
#endif
#endif
#if !TRILIB_DISABLE_STL_IMPORT
if (((IList)StlReader.GetExtensions()).Contains(extension))
{
return new StlReader();
}
#endif
#if !TRILIB_DISABLE_PLY_IMPORT
if (((IList)PlyReader.GetExtensions()).Contains(extension))
{
return new PlyReader();
}
#endif
#if !TRILIB_DISABLE_3MF_IMPORT
if (((IList)ThreeMfReader.GetExtensions()).Contains(extension))
{
return new ThreeMfReader();
}
#endif
#if !TRILIB_DISABLE_DAE_IMPORT
#if !TRILIB_USE_FBXSDK
if (((IList)DaeReader.GetExtensions()).Contains(extension))
{
return new DaeReader();
}
#endif
#endif
return null;
}
}
}