diff --git a/EGkArcCenTgCurvePnt.h b/EGkArcCenTgCurvePnt.h new file mode 100644 index 0000000..4b4d9b0 --- /dev/null +++ b/EGkArcCenTgCurvePnt.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2015-2015 +//---------------------------------------------------------------------------- +// File : EgkArcCenTgCurvePnt.h Data : 15.03.15 Versione : 1.6c2 +// Contenuto : Dichiarazione funzioni per calcolo arco dati centro, +// tangente a curva e punto vicino a finale. +// +// +// Modifiche : 15.03.15 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveArc.h" + + +//----------------------- Macro per import/export ---------------------------- +#undef EGK_EXPORT +#if defined( I_AM_EGK) // da definirsi solo nella DLL + #define EGK_EXPORT __declspec( dllexport) +#else + #define EGK_EXPORT __declspec( dllimport) +#endif + +//---------------------------------------------------------------------------- +EGK_EXPORT ICurveArc* GetArcCenTgCurvePnt( const Point3d& pCen, const ICurve& cCrv, const Point3d& ptNearStart, + const Point3d& ptNearEnd, const Vector3d& vtN) ; diff --git a/EGkArcPntDirTgCurve.h b/EGkArcPntDirTgCurve.h new file mode 100644 index 0000000..ad2c118 --- /dev/null +++ b/EGkArcPntDirTgCurve.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2015-2015 +//---------------------------------------------------------------------------- +// File : EgkArcPntDirTgCurve.h Data : 13.03.15 Versione : 1.6c2 +// Contenuto : Dichiarazione funzioni per calcolo arco dato punto iniziale +// direzione e tangente a curva. +// +// +// Modifiche : 13.03.15 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveArc.h" + + +//----------------------- Macro per import/export ---------------------------- +#undef EGK_EXPORT +#if defined( I_AM_EGK) // da definirsi solo nella DLL + #define EGK_EXPORT __declspec( dllexport) +#else + #define EGK_EXPORT __declspec( dllimport) +#endif + +//---------------------------------------------------------------------------- +EGK_EXPORT ICurve* GetArcPntDirTgCurve( const Point3d& ptP, const Vector3d& vtDir, const ICurve& cCrv, + const Point3d& ptNear, const Vector3d& vtN) ; diff --git a/EGkCircleCenTgCurve.h b/EGkCircleCenTgCurve.h new file mode 100644 index 0000000..57f9e71 --- /dev/null +++ b/EGkCircleCenTgCurve.h @@ -0,0 +1,30 @@ +//---------------------------------------------------------------------------- +// EgalTech 2015-2015 +//---------------------------------------------------------------------------- +// File : EgkCircleCenTgCurve.h Data : 12.03.15 Versione : 1.6c2 +// Contenuto : Dichiarazione funzioni per calcolo circonferenze di centro +// dato tangenti a curve. +// +// +// Modifiche : 12.03.15 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveArc.h" + + +//----------------------- Macro per import/export ---------------------------- +#undef EGK_EXPORT +#if defined( I_AM_EGK) // da definirsi solo nella DLL + #define EGK_EXPORT __declspec( dllexport) +#else + #define EGK_EXPORT __declspec( dllimport) +#endif + +//---------------------------------------------------------------------------- +EGK_EXPORT ICurveArc* GetCircleCenTgCurve( const Point3d& ptCen, const Vector3d& vtN, const ICurve& cCrv, const Point3d& ptNear) ; +EGK_EXPORT ICurveArc* GetCircleCenTgCurve( const Point3d& ptCen, const Vector3d& vtN, const ICurve& cCrv, + const Point3d& ptNear, Point3d* pPtTg) ; diff --git a/EInAPI.h b/EInAPI.h index 9319868..be9c3f7 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -118,6 +118,9 @@ EIN_EXPORT int __stdcall EgtCreateCurveCircle( int nParentId, const double ptCe const double vtN[3], double dRad, int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveCircleCPN( int nParentId, const double ptCen[3], const double ptOn[3], const double vtN[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCurveCircleCPNEx( int nParentId, const double ptCen[3], + const double ptOn[3], int nSepO, int nIdO, + const double vtN[3], int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveCircle3P( int nParentId, const double ptP1[3], const double ptP2[3], const double ptP3[3], int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveArc( int nParentId, const double ptCen[3], @@ -125,10 +128,16 @@ EIN_EXPORT int __stdcall EgtCreateCurveArc( int nParentId, const double ptCen[3 double dAngCenDeg, double dDeltaN, int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveArcC2PN( int nParentId, const double ptCen[3], const double ptStart[3], const double ptNearEnd[3], const double vtNorm[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCurveArcC2PNEx( int nParentId, const double ptCen[3], + const double ptStart[3], int nSepS, int nIdS, + const double ptNearEnd[3], const double vtNorm[3], int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveArc3P( int nParentId, const double ptP1[3], const double ptP2[3], const double ptP3[3], int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveArc2PVN( int nParentId, const double ptStart[3], const double ptEnd[3], const double vtDirS[3], const double vtNorm[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCurveArc2PVNEx( int nParentId, const double ptStart[3], + const double ptEnd[3], int nSep, int nId, + const double vtDirS[3], const double vtNorm[3], int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveBezier( int nParentId, int nDegree, const double ptCtrls[/*3x(nDegree+1)*/], int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveBezierRational( int nParentId, int nDegree, diff --git a/EGkArcXxTgArc.h b/EgkArcSpecial.h similarity index 54% rename from EGkArcXxTgArc.h rename to EgkArcSpecial.h index 35e8e14..eacde5f 100644 --- a/EGkArcXxTgArc.h +++ b/EgkArcSpecial.h @@ -1,8 +1,8 @@ //---------------------------------------------------------------------------- -// EgalTech 2014-2014 +// EgalTech 2014-2015 //---------------------------------------------------------------------------- -// File : EGkArcXxTgArc.h Data : 12.06.14 Versione : 1.5f4 -// Contenuto : Dichiarazione funzioni per calcolo archi tangenti a arco. +// File : EGkArcSpecial.h Data : 15.03.15 Versione : 1.6c2 +// Contenuto : Dichiarazione funzioni per calcolo speciale archi. // // // @@ -25,9 +25,6 @@ #endif //---------------------------------------------------------------------------- -EGK_EXPORT ICurveArc* GetCircleCenTgArc( const Point3d& ptCen, const ICurveArc& crvArc, const Point3d& ptNear) ; -EGK_EXPORT ICurveArc* GetArcCenTgArcPnt( const Point3d& ptCen, const ICurveArc& crvArc, - const Point3d& ptNearTg, const Point3d& ptNearEnd) ; EGK_EXPORT ICurve* GetArc2PD( const Point3d& ptStart, const Point3d& ptEnd, double dDirStartDeg) ; -EGK_EXPORT ICurve* GetArcPntDirTgArc( const Point3d& ptP, double dDirStartDeg, - const ICurveArc& crvArc, const Point3d& ptNearTg) ; +EGK_EXPORT ICurve* GetArc2PVN( const Point3d& ptStart, const Point3d& ptEnd, const Vector3d& vtDirS, const Vector3d& vtN) ; +EGK_EXPORT ICurve* GetArc3P( const Point3d& ptStart, const Point3d& ptOther, const Point3d& ptEnd, bool bCirc) ; diff --git a/EgkCurveArc.h b/EgkCurveArc.h index efa7241..f2ba182 100644 --- a/EgkCurveArc.h +++ b/EgkCurveArc.h @@ -49,6 +49,7 @@ class __declspec( novtable) ICurveArc : public ICurve virtual bool InvertN( void) = 0 ; virtual bool ChangeRadius( double dNewRadius) = 0 ; virtual bool ChangeDeltaN( double dNewDeltaN) = 0 ; + virtual bool ExtendedOffset( double dDist, int nType = OFF_FILLET) = 0 ; virtual bool ToAdditional( void) = 0 ; virtual bool Flip( void) = 0 ; } ;