From 23d49a11228ad3369cc8d9021f85688b0f860a52 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 16 Jul 2014 09:08:59 +0000 Subject: [PATCH] Include : - aggiornamento. --- EGkAngle.h | 29 +++++++++++++++++++++++++++++ EGkColor.h | 2 +- EGkIntersCurveCurve.h | 8 ++++++++ EGkPolyLine.h | 5 +++-- EgkCurve.h | 4 ++++ EgkCurveArc.h | 2 ++ EgkCurveLine.h | 1 + 7 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 EGkAngle.h diff --git a/EGkAngle.h b/EGkAngle.h new file mode 100644 index 0000000..28a9a44 --- /dev/null +++ b/EGkAngle.h @@ -0,0 +1,29 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EGkAngle.h Data : 14.07.14 Versione : 1.5g2 +// Contenuto : Dichiarazione funzioni per gestione angoli. +// +// +// +// Modifiche : 14.07.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include + +//----------------------- 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 double AngleNearAngle( double dAngDeg, double dAngRefDeg) ; +EGK_EXPORT double DiffAngle( double dAng1Deg, double dAng2Deg) ; +EGK_EXPORT double MediaAngle( double dAng1Deg, double dAng2Deg, double dCoeff) ; diff --git a/EGkColor.h b/EGkColor.h index b3a7a0c..3004543 100644 --- a/EGkColor.h +++ b/EGkColor.h @@ -2,7 +2,7 @@ // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : EGkColor.h Data : 24.02.14 Versione : 1.5c9 -// Contenuto : Implementazione della classe Color. +// Contenuto : Dichiarazione della classe Color. // // // diff --git a/EGkIntersCurveCurve.h b/EGkIntersCurveCurve.h index 4382891..dcd2892 100644 --- a/EGkIntersCurveCurve.h +++ b/EGkIntersCurveCurve.h @@ -110,12 +110,20 @@ class IntersCurveCurve EGK_EXPORT bool GetCurveClassification( int nCrv, CRVCVECTOR& ccClass) ; private : + IntersCurveCurve( void) ; void LineLineCalculate( const ICurve& CurveA, const ICurve& CurveB, bool bAreSegments) ; + void LineArcCalculate( const ICurve& CurveA, const ICurve& CurveB) ; void LineCrvCompoCalculate( const ICurve& CurveA, const ICurve& CurveB) ; + void ArcLineCalculate( const ICurve& CurveA, const ICurve& CurveB) ; + void ArcArcCalculate( const ICurve& CurveA, const ICurve& CurveB) ; + void ArcCrvCompoCalculate( const ICurve& CurveA, const ICurve& CurveB) ; void CrvCompoLineCalculate( const ICurve& CurveA, const ICurve& CurveB) ; + void CrvCompoArcCalculate( const ICurve& CurveA, const ICurve& CurveB) ; void CrvCompoCrvCompoCalculate( const ICurve& CurveA, const ICurve& CurveB) ; + bool SwapInfoAB( ICCIVECTOR& Info, int IndCrvOrd) ; bool CalcCurveClassification( const ICurve* pCurve, const ICCIVECTOR& Info, CRVCVECTOR& ccClass) ; bool CalcCurveInOrOut( const ICurve* pCurveA, const ICurve* pCurveB, CRVCVECTOR& ccClass) ; + bool GetCurveOutClass( const ICurve* pCurve, int& nClass) ; private : bool m_bOverlaps ; diff --git a/EGkPolyLine.h b/EGkPolyLine.h index 27f92eb..8878f21 100644 --- a/EGkPolyLine.h +++ b/EGkPolyLine.h @@ -80,12 +80,13 @@ class PolyLine { return GetFirstULine( nullptr, &ptIni, nullptr, &ptFin) ; } EGK_EXPORT bool GetNextLine( Point3d& ptIni, Point3d& ptFin) const { return GetNextULine( nullptr, &ptIni, nullptr, &ptFin) ; } - EGK_EXPORT bool IsPlanar( Plane3d& plPlane, double dToler = EPS_SMALL) const ; + EGK_EXPORT bool IsPlanar( Plane3d& plPlane, double& dArea, double dToler = EPS_SMALL) const ; + EGK_EXPORT bool GetAreaXY( double& dArea) const ; EGK_EXPORT bool GetMaxDistanceFromLine( double& dMaxDist, const Point3d& ptAx, const Vector3d& vtAx, double dLen, bool bIsSegment = true) const ; private : - bool NewellPlane( Plane3d& plPlane) const ; + bool NewellPlane( Plane3d& plPlane, double& dArea) const ; private : int m_nCount ; diff --git a/EgkCurve.h b/EgkCurve.h index 9057da7..4370e2e 100644 --- a/EgkCurve.h +++ b/EgkCurve.h @@ -22,6 +22,10 @@ class __declspec( novtable) ICurve : public IGeoObj public : enum Side { FROM_MINUS = -1, // da valori inferiori del parametro FROM_PLUS = 1} ; // da valori superiori del parametro + enum PntPos { PP_NULL = 0, // punto non appartenente alla curva + PP_START = 1, // punto coincidente con l'inizio + PP_MID = 2, // punto appartenente all'interno della curva + PP_END = 3} ; // punto coincidente con la fine enum OffSide { OFF_RIGHT = -1, // offset a destra OFF_LEFT = 1} ; // offset a sinistra enum OffType { OFF_FILLET = 0, // si raccordano con arco gli spigoli esterni diff --git a/EgkCurveArc.h b/EgkCurveArc.h index 2054229..57ff74e 100644 --- a/EgkCurveArc.h +++ b/EgkCurveArc.h @@ -39,6 +39,8 @@ class __declspec( novtable) ICurveArc : public ICurve virtual double GetRadius( void) const = 0 ; virtual double GetAngCenter( void) const = 0 ; virtual double GetDeltaN( void) 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 ; diff --git a/EgkCurveLine.h b/EgkCurveLine.h index e6ac2e7..5b7feec 100644 --- a/EgkCurveLine.h +++ b/EgkCurveLine.h @@ -25,6 +25,7 @@ class __declspec( novtable) ICurveLine : public ICurve virtual bool SetPDL( const Point3d& ptStart, double dDirAngDeg, double dLen) = 0 ; virtual const Point3d& GetStart( void) const = 0 ; virtual const Point3d& GetEnd( void) const = 0 ; + virtual bool CalcPointParamPosiz( const Point3d& ptP, bool bOnXY, double& dU, int& nPos) const = 0 ; } ; //-----------------------------------------------------------------------------