/////////////////////////////////////////////////////////////////////////////// // 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 __DG_GEOMAPIMAGE_H__ #define __DG_GEOMAPIMAGE_H__ #include "OdaCommon.h" #include "OdAnsiString.h" #include "Ge/GePoint3d.h" #include "DgView.h" #include "AbstractViewPE.h" #include "DgGeoData.h" #include "DgBingMaps.h" #include "DgBingMapsCache.h" #include "TD_PackPush.h" class OdDgModel; //============================================================================= namespace OdDgGeoMapHelper { double getUnitScale(const OdDgGeoDataInfo* pGeoDataInfo, const OdDgModel* pModel = NULL); int getOptimalLOD(const OdGeExtents3d& extXYZ, const OdDgGeoDataCoordinateConverter* pCoordConvertor, const OdDgGeoDataInfo* pGeoDataInfo, OdDgGeoMapImagePE::OdDgGeoMapImageResolution uResolution, double dImageWidth, double iImageHeight); OdResult getMap(const OdDgGeoDataInfo* pGeoDataInfo, const OdDgModel* pModel, const OdDgGeoDataCoordinateConverter* pCoordConvertor, OdDgGeoMapImagePE::OdDgGeoMapImageType eGeoMapType, int iLOD, OdDgGeoMapImagePE::OdDgGeoMapImageResolution uResolution, const OdGeExtents3d& extRect, const OdGeVector3d& vrOriginOffset, double dImageWidth, double dImageHeight, OdGiRasterImagePtr& pImg); OdResult getDgGeoMapTiles(const OdGeExtents3d& extXYZ, const OdGeVector3d& vrOriginOffset, OdDgGeoMapImagePE::OdDgGeoMapImageType eGeoMapType, OdInt8 nLOD, const OdDgGeoDataCoordinateConverter* pCoordConvertor, std::set& arrTiles); } //============================================================================= //OdDgGeoMapImageCreator class OdDgGeoMapImageCreator; typedef OdSmartPtr OdDgGeoMapImageCreatorPtr; class OdDgGeoMapImageCreator : public OdGiDrawable { private: OdGsCache* m_pGsNode; OdRefCounter m_nRefCounter; const OdDgGeoDataInfo* m_pGeoDataInfo; const OdDgModel* m_pModel; const OdDgGeoDataCoordinateConverter* m_pCoordConvertor; OdDgGeoMapImagePE::OdDgGeoMapImageType m_eGeoMapType; int m_iLOD; OdDgGeoMapImagePE::OdDgGeoMapImageResolution m_uResolution; OdGeExtents3d m_extXYZ; OdGeVector3d m_vrOriginOffset; double m_dImageWidth; double m_dImageHeight; protected: OdDgGeoMapImageCreator(); public: virtual void addRef() override; virtual void release() ODRX_NOEXCEPT override; virtual long numRefs() const override; void setGsNode(OdGsCache* pGsNode); OdGsCache* gsNode() const; bool isPersistent() const; OdDbStub* id() const; ~OdDgGeoMapImageCreator(); static OdDgGeoMapImageCreatorPtr createObject(); OdUInt32 subSetAttributes(OdGiDrawableTraits* pTraits) const; void init(const OdDgGeoDataInfo* pGeoDataInfo, const OdDgModel* pModel, const OdDgGeoDataCoordinateConverter* pCoordConvertor, OdDgGeoMapImagePE::OdDgGeoMapImageType eGeoMapType, int iLOD, OdDgGeoMapImagePE::OdDgGeoMapImageResolution uResolution, const OdGeExtents3d& extXYZ, const OdGeVector3d& vrOriginOffset, double dImageWidth, double dImageHeight); bool subWorldDraw(OdGiWorldDraw* pWd) const; void subViewportDraw(OdGiViewportDraw* pVd) const; OdResult drawGeoMap(OdGiViewportDraw* pVd, const OdDgGeoDataInfo* pGeoDataInfo, const OdDgModel* pModel, const OdDgGeoDataCoordinateConverter* pCoordConvertor, OdDgGeoMapImagePE::OdDgGeoMapImageType eGeoMapType, int iLOD, OdDgGeoMapImagePE::OdDgGeoMapImageResolution uResolution, const OdGeExtents3d& extXYZ, const OdGeVector3d& vrOriginOffset) const; }; #include "TD_PackPop.h" //============================================================================= #endif // __DG_GEOMAPIMAGE_H__