Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
        /// <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);
                }
            }
        }
Пример #3
0
 public static SeeingSharpLoader RegisterAssimpImporter(this SeeingSharpLoader loader)
 {
     loader.RegisterModelImporter(new AssimpImporter.AssimpImporter());
     return(loader);
 }
Пример #4
0
 public static SeeingSharpLoader SupportWpf(this SeeingSharpLoader loader)
 {
     loader.RegisterExtension(new SeeingSharpWpfExtensions());
     return(loader);
 }