Files
Include/EgkCurveArc.h
T
2014-01-02 07:55:21 +00:00

59 lines
2.9 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : EgkCurveArc.h Data : 22.11.13 Versione : 1.3a1
// Contenuto : Dichiarazione della interfaccia ICurveArc.
//
//
//
// Modifiche : 22.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkCurve.h"
//----------------------------------------------------------------------------
class __declspec( novtable) ICurveArc : public ICurve
{
public :
virtual bool Set( const Point3d& ptCen, const Vector3d& vtN, double dRad,
const Vector3d& vtS, double dAngCenDeg, double dDeltaN) = 0 ;
virtual bool Set( const Point3d& ptCen, double dRad, double dAngIniDeg, double dAngCenDeg, double dDeltaZ) = 0 ;
virtual bool Set( const Point3d& ptCen, double dRad) = 0 ;
virtual bool IsFlat( void) const = 0 ;
virtual bool IsACircle( void) const = 0 ;
virtual bool IsInPlaneXY( void) const = 0 ;
virtual const Point3d& GetCenter( void) const = 0 ;
virtual const Vector3d& GetNormVersor( void) const = 0 ;
virtual const Vector3d& GetStartVersor( void) const = 0 ;
virtual double GetRadius( void) const = 0 ;
virtual double GetAngCenter( void) const = 0 ;
virtual double GetDeltaN( void) const = 0 ;
} ;
//-----------------------------------------------------------------------------
inline ICurveArc* CreateCurveArc( void)
{ return (static_cast<ICurveArc*>( CreateGeoObj( CRV_ARC))) ; }
inline ICurveArc* CloneCurveArc( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_ARC)
return nullptr ;
return (static_cast<ICurveArc*>(pGObj->Clone())) ; }
inline bool CopyCurveArc( const ICurveArc* pCASou, ICurveArc* pCADest)
{ if ( pCASou == nullptr || pCADest == nullptr || ! pCASou->IsValid())
return false ;
if ( pCASou == pCADest)
return true ;
return pCADest->Set( pCASou->GetCenter(), pCASou->GetNormVersor(), pCASou->GetRadius(),
pCASou->GetStartVersor(), pCASou->GetAngCenter(), pCASou->GetDeltaN()) ; }
inline const ICurveArc* GetCurveArc( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_ARC)
return nullptr ;
return (static_cast<const ICurveArc*>(pGObj)) ; }
inline ICurveArc* GetCurveArc( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_ARC)
return nullptr ;
return (static_cast<ICurveArc*>(pGObj)) ; }