/
Edwar
/
cam-api-examples
Обзор
Документация
Войти
/
Edwar
/
cam-api-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Geometry/ExtensionUtilityGeomCustomImportNet/project/main/ExtensionFactory.cs
58 строк
2 KB
Edwar
Импортер 3д моделей из Obj файлов
03 июн 2025, 20:15
03 июн 2025, 20:15
697c197
Код
Авторство
О чём код?
using ExtensionUtilityGeomCustomImportNet; // ReSharper disable once CheckNamespace namespace CAMAPI; using Extensions; using ResultStatus; /// <summary> /// Factory for creating extensions. Namespace and class name always should be CAMAPI.ExtensionFactory, /// so CAMAPI will find it /// </summary> public class ExtensionFactory : IExtensionFactory { /// <inheritdoc /> public void OnLibraryRegistered(IExtensionFactoryContext context, out TResultStatus ret) { ret = default; } /// <inheritdoc /> public void OnLibraryUnRegistered(IExtensionFactoryContext context, out TResultStatus ret) { ret = default; } /// <summary> /// Create new instance of our extension /// </summary> /// <param name="extensionIdent"> /// Unique identifier, if out library has more than one extension. Should accord with /// value in settings json, describing this library /// </param> /// <param name="ret">Error to return it, because throw exception will not work</param> /// <returns>Instance of out extension</returns> public IExtension? Create(string extensionIdent, out TResultStatus ret) { try { ret = default; return extensionIdent switch { "Extension.Utility.Geometry.Importer.Custom.Vertexes.Net" => new ExtensionImportVertex(), "Extension.Utility.Geometry.Importer.Custom.Meshes.Net" => new ExtensionImportMesh(), "Extension.Utility.Geometry.Importer.Custom.Curves.Net" => new ExtensionImportCurve(), "Extension.Utility.Geometry.Importer.Custom.Obj.Net" => new ExtensionImportObj(), "Extension.Utility.Geometry.Importer.Custom.Svg.Net" => new ExtensionImportSvg(), _ => throw new Exception("Unknown extension identifier: " + extensionIdent) }; } catch (Exception e) { ret.Code = TResultStatusCode.rsError; ret.Description = e.Message; } return null; } }