Files
Include/EGkCurveBezier.h
T
Daniele Bariletti 0399218643 Include :
- aggiunta la funzione lua per SurfBzSwept
- aggiunta la funzione IsLine per CrvBez
- aggiunta la funzione InterpolatePointSetWithBezier
- aggiunte la SweptInPlane e Swept3d ( questa da implementare)
- modificata la CreateBySetOfCurves.
2024-09-17 17:31:14 +02:00

62 lines
2.8 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : EGkCurveBezier.h Data : 22.11.13 Versione : 1.3a1
// Contenuto : Dichiarazione della interfaccia ICurveBezier.
//
//
//
// Modifiche : 22.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkCurve.h"
class ICurveArc ;
class ICurveLine ;
//----------------------------------------------------------------------------
class __declspec( novtable) ICurveBezier : public ICurve
{
public : // IGeoObj
ICurveBezier* Clone( void) const override = 0 ;
public :
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
virtual bool Init( int nDeg, bool bIsRational) = 0 ;
virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl) = 0 ;
virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl, double dW) = 0 ;
virtual bool SetControlWeight( int nInd, double dW) = 0 ;
virtual bool FromArc( const ICurveArc& crArc) = 0 ;
virtual bool FromLine( const ICurveLine& crLine) = 0 ;
virtual int GetDegree( void) const = 0 ;
virtual bool IsRational( void) const = 0 ;
virtual bool IsAPoint( void) const = 0 ;
virtual const Point3d& GetControlPoint( int nInd, bool* pbOk = NULL) const = 0 ;
virtual double GetControlWeight( int nInd, bool* pbOk = NULL) const = 0 ;
virtual bool GetControlPolygonLength( double& dLen) const = 0 ;
virtual int GetSingularParam( double& dPar) const = 0 ;
virtual bool MakeRational( void) = 0 ;
virtual bool MakeRationalStandardForm( void) = 0 ;
virtual bool MakeNonRational( double dTol) = 0 ;
virtual bool IsALine( void) const = 0 ;
} ;
//-----------------------------------------------------------------------------
inline ICurveBezier* CreateCurveBezier( void)
{ return (static_cast<ICurveBezier*>( CreateGeoObj( CRV_BEZIER))) ; }
inline ICurveBezier* CloneCurveBezier( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_BEZIER)
return nullptr ;
return (static_cast<ICurveBezier*>(pGObj->Clone())) ; }
inline const ICurveBezier* GetCurveBezier( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_BEZIER)
return nullptr ;
return (static_cast<const ICurveBezier*>(pGObj)) ; }
inline ICurveBezier* GetCurveBezier( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_BEZIER)
return nullptr ;
return (static_cast<ICurveBezier*>(pGObj)) ; }