//---------------------------------------------------------------------------- // 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 : // IGeoObj IGeoPoint3d* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; 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 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)) ; }