da9a8050ba
- aggiornamento prototipi.
78 lines
4.5 KiB
C++
78 lines
4.5 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 : // IGeoObj
|
|
ICurveArc* Clone( void) const override = 0 ;
|
|
public :
|
|
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
|
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, const Vector3d& vtN, double dRad) = 0 ;
|
|
virtual bool SetXY( const Point3d& ptCen, double dRad, double dAngIniDeg, double dAngCenDeg, double dDeltaZ) = 0 ;
|
|
virtual bool SetXY( const Point3d& ptCen, double dRad) = 0 ;
|
|
virtual bool Set3P( const Point3d& ptStart, const Point3d& ptOther, const Point3d& ptEnd, bool bCirc = false) = 0 ;
|
|
virtual bool Set2PNB( const Point3d& ptIni, const Point3d& ptFin, const Vector3d& vtN, double dBulge) = 0 ;
|
|
virtual bool Set2PD( const Point3d& ptStart, const Point3d& ptEnd, double dDirStartDeg) = 0 ;
|
|
virtual bool Set2PVN( const Point3d& ptStart, const Point3d& ptEnd, const Vector3d& vtDirS, const Vector3d& vtN) = 0 ;
|
|
virtual bool Set2PRS( const Point3d& ptStart, const Point3d& ptEnd, double dRad, bool bCCW = true) = 0 ;
|
|
virtual bool Set2PNRS( const Point3d& ptStart, const Point3d& ptEnd, const Vector3d& vtN, double dRad, bool bCCW = true) = 0 ;
|
|
virtual bool SetCPA( const Point3d& ptCen, const Point3d& ptStart, double dAngCenDeg, double dDeltaZ) = 0 ;
|
|
virtual bool SetCPAN( const Point3d& ptCen, const Point3d& ptStart, double dAngCenDeg, double dDeltaZ, const Vector3d& vtN) = 0 ;
|
|
virtual bool SetC2P( const Point3d& ptCen, const Point3d& ptStart, const Point3d& ptNearEnd) = 0 ;
|
|
virtual bool SetC2PN( const Point3d& ptCen, const Point3d& ptStart, const Point3d& ptNearEnd, const Vector3d& vtN) = 0 ;
|
|
virtual bool IsFlat( double dToler = EPS_SMALL) const = 0 ;
|
|
virtual bool IsACircle( void) const = 0 ;
|
|
virtual bool IsInPlaneXY( void) const = 0 ;
|
|
virtual bool IsInPlanePerpExtr( 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 ;
|
|
virtual bool IsPointInSector( const Point3d& ptP) const = 0 ;
|
|
virtual bool CalcPointAngle( const Point3d& ptP, double& dAngDeg) const = 0 ;
|
|
virtual bool CalcPointParamPosiz( const Point3d& ptP, double& dU, int& nPos) const = 0 ;
|
|
virtual bool InvertN( void) = 0 ;
|
|
virtual bool ChangeRadius( double dNewRadius) = 0 ;
|
|
virtual bool ChangeDeltaN( double dNewDeltaN) = 0 ;
|
|
virtual bool ChangeAngCenter( double dNewAngCenDeg) = 0 ;
|
|
virtual bool ChangeStartPoint( double dU) = 0 ;
|
|
virtual bool ExtendedOffset( double dDist, int nType = OFF_FILLET) = 0 ;
|
|
virtual bool ToExplementary( void) = 0 ;
|
|
virtual bool Flip( void) = 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 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)) ; }
|