//---------------------------------------------------------------------------- // EgalTech 2013-2013 //---------------------------------------------------------------------------- // File : EGkGeoPoint3d.h Data : 21.11.13 Versione : 1.3a1 // Contenuto : Dichiarazione della interfaccia IGeoPoint3d. // // // // Modifiche : 21.11.13 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkGeoObj.h" //----------------------------------------------------------------------------- class __declspec( novtable) IGeoPoint3d : public IGeoObj { public : virtual bool Set( const Point3d& ptP) = 0 ; virtual const Point3d& GetPoint( void) const = 0 ; } ; //----------------------------------------------------------------------------- inline IGeoPoint3d* CreateGeoPoint3d( void) { return (static_cast( CreateGeoObj( GEO_PNT3D))) ; } inline IGeoPoint3d* CloneGeoPoint3d( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_PNT3D) return nullptr ; return (static_cast(pGObj->Clone())) ; } inline bool CopyGeoPoint3d( const IGeoPoint3d* pGPSou, IGeoPoint3d* pGPDest) { if ( pGPSou == nullptr || pGPDest == nullptr) return false ; return pGPDest->Set( pGPSou->GetPoint()) ; } inline const IGeoPoint3d* GetGeoPoint3d( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_PNT3D) return nullptr ; return (static_cast(pGObj)) ; } inline IGeoPoint3d* GetGeoPoint3d( IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_PNT3D) return nullptr ; return (static_cast(pGObj)) ; }