0399218643
- 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.
62 lines
2.8 KiB
C++
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)) ; }
|