diff --git a/EGkLinePerpTwoCurves.h b/EGkLinePerpTwoCurves.h new file mode 100644 index 0000000..f04cf5a --- /dev/null +++ b/EGkLinePerpTwoCurves.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EGkLinePerpTwoCurves.h Data : 25.11.14 Versione : 1.5k5 +// Contenuto : Dichiarazione funzioni per calcolo rette perpendicolari a 2 curve. +// +// +// +// Modifiche : 25.11.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveLine.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 ICurveLine* GetLinePerpTwoCurves( const ICurve& cCrv1, const Point3d& ptNear1, + const ICurve& cCrv2, const Point3d& ptNear2) ; \ No newline at end of file diff --git a/EGkLinePntMinDistCurve.h b/EGkLinePntMinDistCurve.h new file mode 100644 index 0000000..a0165fb --- /dev/null +++ b/EGkLinePntMinDistCurve.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EGkLinePntMinDistCurve.h Data : 27.11.14 Versione : 1.5k5 +// Contenuto : Dichiarazione funzioni per calcolo rette di minima distanza da curve. +// +// +// +// Modifiche : 27.11.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveLine.h" +#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 ICurveLine* GetLinePointMinDistCurve( const Point3d& ptP, const ICurve& cCrv, const Point3d& ptNear) ; diff --git a/EGkLinePntPerpCurve.h b/EGkLinePntPerpCurve.h new file mode 100644 index 0000000..d664d47 --- /dev/null +++ b/EGkLinePntPerpCurve.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EGkLinePntPerpCurve.h Data : 25.11.14 Versione : 1.5k5 +// Contenuto : Dichiarazione funzioni per calcolo rette perpendicolari a curve. +// +// +// +// Modifiche : 25.11.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveLine.h" +#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 ICurveLine* GetLinePointPerpCurve( const Point3d& ptP, const ICurve& cCrv, const Point3d& ptNear) ; diff --git a/EGkLinePntTgCurve.h b/EGkLinePntTgCurve.h index dbbdc55..b525d67 100644 --- a/EGkLinePntTgCurve.h +++ b/EGkLinePntTgCurve.h @@ -14,7 +14,6 @@ #pragma once #include "/EgtDev/Include/EGkCurveLine.h" -#include "/EgtDev/Include/EGkCurveArc.h" //----------------------- Macro per import/export ---------------------------- @@ -27,4 +26,3 @@ //---------------------------------------------------------------------------- EGK_EXPORT ICurveLine* GetLinePointTgCurve( const Point3d& ptP, const ICurve& cCrv, const Point3d& ptNear) ; -EGK_EXPORT ICurveLine* GetLinePointTgArc( const Point3d& ptP, const ICurveArc& crvArc, const Point3d& ptNear) ; diff --git a/EGkLineTgCurvePerpCurve.h b/EGkLineTgCurvePerpCurve.h new file mode 100644 index 0000000..4ed0201 --- /dev/null +++ b/EGkLineTgCurvePerpCurve.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EGkLineTgCurvePerpCurve.h Data : 25.11.14 Versione : 1.5k5 +// Contenuto : Dichiarazione funz. per calcolo rette tg a curva e perp. ad altra. +// +// +// +// Modifiche : 25.11.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurveLine.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 ICurveLine* GetLineTgCurvePerpCurve( const ICurve& cCrv1, const Point3d& ptNear1, + const ICurve& cCrv2, const Point3d& ptNear2) ; \ No newline at end of file diff --git a/EGkLineTgTwoArcs.h b/EGkLineTgTwoCurves.h similarity index 70% rename from EGkLineTgTwoArcs.h rename to EGkLineTgTwoCurves.h index bb8ec0e..24ad500 100644 --- a/EGkLineTgTwoArcs.h +++ b/EGkLineTgTwoCurves.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- -// File : EGkLineTgCurve.h Data : 10.06.14 Versione : 1.5f3 +// File : EGkLineTgTwoCurves.h Data : 25.11.14 Versione : 1.5k5 // Contenuto : Dichiarazione funzioni per calcolo rette tangenti a curve. // // @@ -14,7 +14,6 @@ #pragma once #include "/EgtDev/Include/EGkCurveLine.h" -#include "/EgtDev/Include/EGkCurveArc.h" //----------------------- Macro per import/export ---------------------------- @@ -26,5 +25,5 @@ #endif //---------------------------------------------------------------------------- -EGK_EXPORT ICurveLine* GetLineTgTwoArcs( const ICurveArc& crvArc1, const Point3d& ptNear1, - const ICurveArc& crvArc2, const Point3d& ptNear2) ; +EGK_EXPORT ICurveLine* GetLineTgTwoCurves( const ICurve& cCrv1, const Point3d& ptNear1, + const ICurve& cCrv2, const Point3d& ptNear2) ; diff --git a/EGrScene.h b/EGrScene.h index aad03cb..a87e9f1 100644 --- a/EGrScene.h +++ b/EGrScene.h @@ -58,6 +58,7 @@ class IEGrScene virtual int GetFirstSelectedObj( void) = 0 ; virtual int GetNextSelectedObj( void) = 0 ; virtual double GetSelectedObjWinZ( int nSel = - 1) = 0 ; + virtual bool GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel) = 0 ; virtual bool Project( const Point3d& ptWorld, Point3d& ptView) = 0 ; virtual bool UnProject( const Point3d& ptView, Point3d& ptWorld) = 0 ; virtual void Destroy( void) = 0 ; @@ -130,10 +131,14 @@ enum ShowMode { SM_WIREFRAME = 0, SM_HIDDENLINE = 1, SM_SHADING = 2} ; //------------------------ Costanti per tipo di snap al punto ---------------- -enum SnapPoint { SP_SKETCH = 0, - SP_GRID = 1, - SP_END = 2, - SP_MID = 3, - SP_CENTER = 4, - SP_NEAR = 5, - SP_INTERS = 6} ; \ No newline at end of file +enum SnapPoint { SP_NONE = 0, + SP_SKETCH = 1, + SP_GRID = 2, + SP_END = 3, + SP_MID = 4, + SP_CENTER = 5, + SP_NEAR = 6, + SP_INTERS = 7, + SP_TANG = 8, + SP_PERP = 9, + SP_MINDIST = 10} ; \ No newline at end of file diff --git a/EInAPI.h b/EInAPI.h index 8f999f3..a45a9d8 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -118,6 +118,8 @@ EIN_EXPORT int __stdcall EgtCreateTextEx( int nParentId, const wchar_t* wsText, // GeomDB Create Curve EIN_EXPORT int __stdcall EgtCreateCurveLine( int nParentId, const double ptIni[3], const double ptFin[3]) ; +EIN_EXPORT int __stdcall EgtCreateCurveLineEx( int nParentId, const double ptIni[3], int nSepI, int nIdI, + const double ptFin[3], int nSepF, int nIdF) ; EIN_EXPORT int __stdcall EgtCreateCurveLinePVL( int nParentId, const double ptIni[3], const double vtDir[3], double dLen) ; EIN_EXPORT int __stdcall EgtCreateCurveLineMinPointCurve( int nParentId, const double ptStart[3], int nCrvId, double dNearPar) ; @@ -261,8 +263,9 @@ EIN_EXPORT BOOL __stdcall EgtTrimCurveEndAtParam( int nId, double dPar) ; EIN_EXPORT BOOL __stdcall EgtTrimCurveStartEndAtParam( int nId, double dParS, double dParE) ; EIN_EXPORT BOOL __stdcall EgtExtendCurveStartByLen( int nId, double dLen) ; EIN_EXPORT BOOL __stdcall EgtExtendCurveEndByLen( int nId, double dLen) ; -EIN_EXPORT BOOL __stdcall EgtExtendCurveByLen( int nId, double dLen, const double ptNear[3]) ; +EIN_EXPORT BOOL __stdcall EgtTrimExtendCurveByLen( int nId, double dLen, const double ptNear[3]) ; EIN_EXPORT BOOL __stdcall EgtSplitCurveAtPoint( int nId, double ptOn[3]) ; +EIN_EXPORT BOOL __stdcall EgtOffsetCurve( int nId, double dDist, int nSide, int nType) ; EIN_EXPORT BOOL __stdcall EgtModifyCurveCircleCPN( int nId, const double ptOn[3]) ; EIN_EXPORT BOOL __stdcall EgtModifyCurveArcRadius( int nId, double dRad) ; EIN_EXPORT BOOL __stdcall EgtModifyCurveArcC2PN( int nId, const double ptEnd[3]) ; @@ -283,6 +286,8 @@ EIN_EXPORT BOOL __stdcall EgtMidVector( int nId, double vtV[3]) ; EIN_EXPORT BOOL __stdcall EgtAtParamVector( int nId, double dU, int nSide, double vtV[3]) ; EIN_EXPORT BOOL __stdcall EgtFrame( int nId, double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3]) ; +EIN_EXPORT BOOL __stdcall EgtCurveLength( int nId, double* pdLen) ; +EIN_EXPORT BOOL __stdcall EgtCurveLengthAtPoint( int nId, double ptOn[3], double* pdLen) ; EIN_EXPORT BOOL __stdcall EgtCurveExtrusion( int nId, double vtExtr[3]) ; EIN_EXPORT BOOL __stdcall EgtCurveThickness( int nId, double* pdThick) ; EIN_EXPORT BOOL __stdcall EgtCurveArcNormVersor( int nId, double vtNorm[3]) ; @@ -339,6 +344,7 @@ EIN_EXPORT int __stdcall EgtGetNextObjInSelWin( void) ; EIN_EXPORT BOOL __stdcall EgtUnselectableAdd( int nId) ; EIN_EXPORT BOOL __stdcall EgtUnselectableRemove( int nId) ; EIN_EXPORT BOOL __stdcall EgtUnselectableClearAll( void) ; +EIN_EXPORT BOOL __stdcall EgtGetPointFromSelect( int nSelId, int nWinX, int nWinY, double ptSel[3]) ; EIN_EXPORT BOOL __stdcall EgtGetGraphicSnapPoint( int nSnap, int nWinX, int nWinY, int nSelW, int nSelH, double ptP[3]) ; EIN_EXPORT BOOL __stdcall EgtGetGridSnapPointZ( BOOL bSketch, int nWinX, int nWinY, const double ptGrid[3], double ptP[3]) ; EIN_EXPORT int __stdcall EgtGetLastSnapId( void) ; @@ -360,8 +366,8 @@ EIN_EXPORT BOOL __stdcall EgtSetViewCenter( const double ptP[3], BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtPanCamera( int nPrevX, int nPrevY, int nCurrX, int nCurrY, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtRotateCamera( int nPrevX, int nPrevY, int nCurrX, int nCurrY, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtGetCameraDir( int* pnDir) ; -EIN_EXPORT BOOL __stdcall EgtUnProjectPoint( int nWinX, int nWinY, double ptP[3]) ; EIN_EXPORT BOOL __stdcall EgtProjectPoint( const double ptP[3], double ptWin[3]) ; +EIN_EXPORT BOOL __stdcall EgtUnProjectPoint( int nWinX, int nWinY, double ptP[3]) ; // Exchange EIN_EXPORT int __stdcall EgtGetFileType( const wchar_t* wsFilePath) ; diff --git a/EInConst.h b/EInConst.h new file mode 100644 index 0000000..6838f5b --- /dev/null +++ b/EInConst.h @@ -0,0 +1,21 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EInConst.h Data : 24.11.14 Versione : 1.5k5 +// Contenuto : Costanti generali per EgtInterface. +// +// +// +// Modifiche : 24.11.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + + +//----------------- Costanti tipo di punto selezionato ------------------------- +enum EinSep { SEP_STD = 0, + SEP_TG = 1, + SEP_PERP = 2, + SEP_MINDIST = 3} ;