//---------------------------------------------------------------------------- // EgalTech 2013-2014 //---------------------------------------------------------------------------- // File : EGkGeoFrame3d.h Data : 08.05.14 Versione : 1.5e3 // Contenuto : Dichiarazione della interfaccia IGeoFrame3d. // // // // Modifiche : 02.12.13 DS Creazione modulo. // 08.05.14 DS Agg. Set con ptOrig, ptOnX, ptNearY e con ptOrig, vtZ. // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkGeoObj.h" class PolyLine ; //----------------------------------------------------------------------------- class __declspec( novtable) IGeoFrame3d : public IGeoObj { public : // IGeoObj IGeoFrame3d* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Set( const Point3d& ptOrig, const Vector3d& vtDirX, const Vector3d& vtDirY, const Vector3d& vtDirZ) = 0 ; virtual bool Set( const Point3d& ptOrig, const Point3d& ptOnX, const Point3d& ptNearY) = 0 ; virtual bool Set( const Point3d& ptOrig, const Vector3d& vtDirZ) = 0 ; virtual bool Set( const Frame3d& frF) = 0 ; virtual const Frame3d& GetFrame( void) const = 0 ; virtual bool GetDrawWithArrowHeads( double dLenA, double dFrazLenAH, PolyLine& plX, PolyLine& plY, PolyLine& plZ) const = 0 ; } ; //----------------------------------------------------------------------------- inline IGeoFrame3d* CreateGeoFrame3d( void) { return (static_cast( CreateGeoObj( GEO_FRAME3D))) ; } inline IGeoFrame3d* CloneGeoFrame3d( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_FRAME3D) return nullptr ; return (static_cast(pGObj->Clone())) ; } inline const IGeoFrame3d* GetGeoFrame3d( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_FRAME3D) return nullptr ; return (static_cast(pGObj)) ; } inline IGeoFrame3d* GetGeoFrame3d( IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != GEO_FRAME3D) return nullptr ; return (static_cast(pGObj)) ; }