/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef GLTFFILEIMPORT_H #define GLTFFILEIMPORT_H #include "TD_PackPush.h" #include "Ge/GePoint3d.h" #include "RxObject.h" #include "RxModule.h" #include "DynamicLinker.h" #include "GLTFJsonStructure.h" #ifdef GLTFIMPORT_EXPORTS #define GLTFIMPORT_TOOLKIT OD_TOOLKIT_EXPORT #define GLTFIMPORT_TOOLKIT_STATIC OD_STATIC_EXPORT #else #define GLTFIMPORT_TOOLKIT OD_TOOLKIT_IMPORT #define GLTFIMPORT_TOOLKIT_STATIC OD_STATIC_IMPORT #endif /** \details This is an interface class implements the GLTF import. */ namespace GLTFFileImport { class GLTFIMPORT_TOOLKIT GltfUtils { public: static OdString getPath(const OdString& fileName); }; enum OdGltfImportRes { eNoError = 0, eNoFile = 1, eEntryPointGraphNotFound = 2, eEndGraphNotFound = 3, eEndSceneNotFound, eWrongSymbol, eCantReadSymbol }; class GLTFIMPORT_TOOLKIT OdGltfImport : public OdRxObject { public: ODRX_DECLARE_MEMBERS(OdGltfImport); virtual ~OdGltfImport() {}; virtual OdGltfImportRes import(const OdString & strFilePath) = 0; virtual OdGltfImportRes import(const OdStreamBufPtr & pStreamBuf) = 0; virtual OdSharedPtr GetGltfContent() = 0; }; typedef OdSmartPtr OdGltfImportPtr; /** \details This class implements the GLTF import module. */ class GLTFIMPORT_TOOLKIT OdGltfImportModule : public OdRxModule { public: virtual OdGltfImportPtr create() = 0; }; typedef OdSmartPtr OdGltfImportModulePtr; inline OdGltfImportPtr createGltfImporter() { OdGltfImportModulePtr pModule = ::odrxDynamicLinker()->loadApp(OdGltfImportModuleName); if (!pModule.isNull()) { return pModule->create(); } return (OdGltfImport*)0; } }//namespace GLTFFileImport #include "TD_PackPop.h" #endif