/// <summary> /// Prevents a default instance of the <see cref="ImporterExporterRepository"/> class from being created. /// </summary> internal ImporterExporterRepository(SeeingSharpLoader loader) { var importers = new List <IModelImporter>(); var exporters = new List <IModelExporter>(); foreach (var actExtension in loader.Extensions) { var actImporterList = actExtension.CreateModelImporters(); if (actImporterList != null) { importers.AddRange(actImporterList); } var actExporterList = actExtension.CreateModelExporters(); if (actExporterList != null) { exporters.AddRange(actExporterList); } } _infoByFileType = new Dictionary <string, SupportedFileFormatAttribute>(); // Get format support on each importer _importersByFileType = new Dictionary <string, IModelImporter>(); foreach (var actImporter in importers) { foreach (var actSupportedFile in actImporter .GetType().GetTypeInfo() .GetCustomAttributes <SupportedFileFormatAttribute>()) { var actFileFormat = actSupportedFile.ShortFormatName.ToLower(); _importersByFileType[actFileFormat] = actImporter; _infoByFileType[actFileFormat] = actSupportedFile; } } // Get format support on each exporter var exportersByFileType = new Dictionary <string, IModelExporter>(); foreach (var actExporter in exporters) { foreach (var actSupportedFile in actExporter .GetType().GetTypeInfo() .GetCustomAttributes <SupportedFileFormatAttribute>()) { var actFileFormat = actSupportedFile.ShortFormatName.ToLower(); exportersByFileType[actFileFormat] = actExporter; _infoByFileType[actFileFormat] = actSupportedFile; } } }
/// <summary> /// Initializes a new instance of the <see cref="InputHandlerFactory"/> class. /// </summary> internal InputHandlerFactory(SeeingSharpLoader loader) { _inputHandlers = new List <IInputHandler>(4); foreach (var actExtension in loader.Extensions) { var actInputHandlers = actExtension.CreateInputHandlers(); if (actInputHandlers == null) { continue; } foreach (var actInputHandler in actInputHandlers) { _inputHandlers.Add(actInputHandler); } } }
public static SeeingSharpLoader RegisterAssimpImporter(this SeeingSharpLoader loader) { loader.RegisterModelImporter(new AssimpImporter.AssimpImporter()); return(loader); }
public static SeeingSharpLoader SupportWpf(this SeeingSharpLoader loader) { loader.RegisterExtension(new SeeingSharpWpfExtensions()); return(loader); }