//---------------------------------------------------------------------------- // EgalTech 2013-2013 //---------------------------------------------------------------------------- // File : EGkGeoVector3d.h Data : 22.11.13 Versione : 1.3a1 // Contenuto : Dichiarazione della interfaccia IGeoVector3d. // // // // Modifiche : 22.11.13 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkGeoObj.h" //----------------------------------------------------------------------------- class __declspec( novtable) IGeoVector3d : public IGeoObj { public : virtual bool Set( const Vector3d& vtV) = 0 ; virtual const Vector3d& GetVector( void) const = 0 ; } ; //----------------------------------------------------------------------------- inline IGeoVector3d* CreateGeoVector3d( void) { return (static_cast( CreateGeoObj( GEO_VECT3D))) ; } inline IGeoVector3d* CloneGeoVector3d( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_VECT3D) return nullptr ; return (static_cast(pGObj->Clone())) ; } inline bool CopyGeoVector3d( const IGeoVector3d* pGVSou, IGeoVector3d* pGVDest) { if ( pGVSou == nullptr || pGVDest == nullptr) return false ; return pGVDest->Set( pGVSou->GetVector()) ; } inline const IGeoVector3d* GetGeoVector3d( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_VECT3D) return nullptr ; return (static_cast(pGObj)) ; } inline IGeoVector3d* GetGeoVector3d( IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_VECT3D) return nullptr ; return (static_cast(pGObj)) ; }