/////////////////////////////////////////////////////////////////////////////// // 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 _CIVIL2IFC_EXPORT_H_INCLUDED_ #define _CIVIL2IFC_EXPORT_H_INCLUDED_ #include "OdPlatformSettings.h" #include "RxModule.h" #include "Gs/Gs.h" #include "IfcCore.h" #define OdCivil2IfcModuleName L"Civil2Ifc" #ifdef CIVIL2IFC_EXPORTS #define CIVIL2IFC_EXPORT OD_TOOLKIT_EXPORT #define CIVIL2IFC_EXPORT_STATIC OD_STATIC_EXPORT #else #define CIVIL2IFC_EXPORT OD_TOOLKIT_EXPORT #define CIVIL2IFC_EXPORT_STATIC OD_STATIC_EXPORT #endif // CIVIL2IFC_EXPORTS class OdGiDrawable; #define ODRX_DECLARE_CIVIL2IFC_STATIC_MODULES_ENTRY_POINTS() \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdSDAIModule); \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdIfcCoreModule); \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdIfc4x3Module); \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdIfcGeomModuleImpl); \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdIfcBrepBuilderModule); \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdIfcFacetModelerModule); \ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(OdCivil2IfcModuleImpl); // end of ODRX_DECLARE_CIVIL2IFC_STATIC_MODULES_ENTRY_POINTS macro #define ODRX_DEFINE_CIVIL2IFC_STATIC_APPMODULES() \ ODRX_DEFINE_STATIC_APPMODULE(OdSDAIModuleName, OdSDAIModule) \ ODRX_DEFINE_STATIC_APPMODULE(OdIfcCoreModuleName, OdIfcCoreModule) \ ODRX_DEFINE_STATIC_APPMODULE(OdIfc4x3ModuleName, OdIfc4x3Module) \ ODRX_DEFINE_STATIC_APPMODULE(OdIfcGeomModuleName, OdIfcGeomModuleImpl) \ ODRX_DEFINE_STATIC_APPMODULE(OdIfcBrepBuilderModuleName, OdIfcBrepBuilderModule) \ ODRX_DEFINE_STATIC_APPMODULE(OdIfcFacetModelerModuleName, OdIfcFacetModelerModule) \ ODRX_DEFINE_STATIC_APPMODULE(OdCivil2IfcModuleName, OdCivil2IfcModuleImpl) // end of ODRX_DEFINE_CIVIL2IFC_STATIC_APPMODULES macro namespace CIVIL_IFC_EXPORT { class OdCivilExport : public OdRxObject { public: enum ExportResult { success, fail, bad_password, bad_file, schema_not_supported, bad_database, encrypted_file, services_not_provided }; virtual ExportResult doExport() = 0; virtual OdRxDictionaryPtr properties() = 0; virtual OdResult writeIfcFile(const OdString& fileName) = 0; }; typedef OdSmartPtr OdCivilExportPtr; class OdCivil2IfcModule : public OdRxModule { std::map m_dictionary; public: virtual OdCivilExportPtr create() = 0; CIVIL2IFC_EXPORT OdResult appendDictionaryFromFile(const OdAnsiString& fileName); CIVIL2IFC_EXPORT OdResult appendDictionary(std::map& dictionaryMap); CIVIL2IFC_EXPORT OdResult appendDictionaryFromFile(std::ifstream& streamBuf); CIVIL2IFC_EXPORT std::map & dictionary(); }; typedef OdSmartPtr OdCivil2IfcModulePtr; } #endif // _CIVIL2IFCEXPORT_H_INCLUDED_