/////////////////////////////////////////////////////////////////////////////// // 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 _TV_XML2VISUALIZE_H_ #define _TV_XML2VISUALIZE_H_ #include "TD_PackPush.h" #include "RxDispatchImpl.h" //#include "RxObject.h" //#include "StaticRxObject.h" //#include "ExSystemServices.h" #include "TvVisualizeFiler.h" #include "OdLandCommon.h" #include "OdLandLandXML.h" namespace XML2Visualize { /** \details This class implements the properties of the xml loader */ class OdTvVisualizeXmlFilerProperties : public OdRxDispatchImpl<> { }; typedef OdSmartPtr OdTvVisualizeXmlFilerPropertiesPtr; } /** \details This class is rcs loader (to the Visualize database) */ class OdTvVisualizeXmlFiler : public OdTvVisualizeFiler { public: OdTvVisualizeXmlFiler(); virtual OdRxDictionaryPtr properties() { return m_properties; } virtual OdTvDatabaseId loadFrom(OdDbBaseDatabase* pDatabase, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; virtual OdTvDatabaseId loadFrom(OdStreamBuf* pBuffer, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; virtual OdTvDatabaseId loadFrom(const OdString& filePath, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; virtual OdTvDatabaseId generate(OdTvFilerTimeProfiling* pProfileRes = NULL) const; virtual OdTvModelId appendFrom(const OdTvDatabaseId& databaseId, OdDbBaseDatabase* pDatabase, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; virtual OdTvModelId appendFrom(const OdTvDatabaseId& databaseId, OdStreamBuf* pBuffer, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; virtual OdTvModelId appendFrom(const OdTvDatabaseId& databaseId, const OdString& filePath, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; private: // void createCommonDataAccessTree(OdTvDatabasePtr pTvDb, OdDbBaseDatabase* pDatabase, const OdString& strTreeName, OdTvEntityId entId, OdTvGeometryDataId geomId) const; struct LoadXmlOptions { enum Type { kFilePath, kBuffer }; OdString m_filePath; OdStreamBuf* m_pBuffer; Type m_type; LoadXmlOptions(const OdString& filePath) : m_filePath(filePath), m_type(kFilePath), m_pBuffer(NULL) {} LoadXmlOptions(OdStreamBuf* pBuffer) : m_pBuffer(pBuffer), m_type(kBuffer) {} }; bool importXml(OdTvDatabaseId& databaseId, OdTvModelId& tvModelId, const LoadXmlOptions& opt, OdTvFilerTimeProfiling* pProfileRes = NULL, OdTvResult* rc = NULL) const; XML2Visualize::OdTvVisualizeXmlFilerPropertiesPtr m_properties; }; /** \details This class is xml loader module implementation */ class OdTvXml2VisualizeFilerModule : public OdTvVisualizeFilerModule { public: virtual OdTvVisualizeFilerPtr getVisualizeFiler() const; static OdArray properties; static void constructOdXmlImportProperties(OdRxMemberCollectionBuilder& b, void*); void initApp(); void uninitApp(); private: OdRxObjectPtr m_pModule; }; #include "TD_PackPop.h" #endif // XML2VISUALIZE_H