Files
Include/EGkCurveArc.h
Dario Sassi d580b3dacb Include :
- aggiornamento prototipi.
2025-11-06 18:47:08 +01:00

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 IsPlane( 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) = 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)) ; }