Include :
- nuove funzioni di creazione Linee e Archi.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2014-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkArcXxTgArc.h Data : 12.06.14 Versione : 1.5f4
|
||||
// Contenuto : Dichiarazione funzioni per calcolo archi tangenti a arco.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 12.06.14 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* 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) ;
|
||||
@@ -28,6 +28,12 @@ typedef std::pair<double,Point3d> UPOINT ; // coppia parametro, punto
|
||||
typedef std::vector<UPOINT> UPNTVECTOR ; // vettore di coppie parametro, punto
|
||||
typedef std::list<UPOINT> UPNTLIST ; // lista di coppie parametro, punto
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Raccolte di coppie Point3d,Point3d
|
||||
typedef std::pair<Point3d,Point3d> BIPOINT ; // coppia punto1, punto2
|
||||
typedef std::vector<BIPOINT> BIPNTVECTOR ; // vettore di coppie punto1, punto2
|
||||
typedef std::list<BIPOINT> BIPNTLIST ; // lista di coppie punto1, punto2
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Raccolte di Punti di curva con loro geometria differenziale
|
||||
typedef std::vector<CrvPointDiffGeom> CPDGVECTOR ; // vettore di CrvPointDiffGeom
|
||||
|
||||
+7
-4
@@ -1,13 +1,13 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2013
|
||||
// EgalTech 2013-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkGeoVector3d.h Data : 22.11.13 Versione : 1.3a1
|
||||
// File : EGkGeoVector3d.h Data : 11.06.14 Versione : 1.5f4
|
||||
// Contenuto : Dichiarazione della interfaccia IGeoVector3d.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 22.11.13 DS Creazione modulo.
|
||||
//
|
||||
// 11.06.14 DS Agg. punto Base.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -23,8 +23,11 @@ class __declspec( novtable) IGeoVector3d : public IGeoObj
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const Vector3d& vtV) = 0 ;
|
||||
virtual bool Set( const Vector3d& vtV, const Point3d& ptBase) = 0 ;
|
||||
virtual const Vector3d& GetVector( void) const = 0 ;
|
||||
virtual bool GetDrawWithArrowHead( double dFrazLenAH, PolyLine& PL) const = 0 ;
|
||||
virtual const Point3d& GetBase( void) const = 0 ;
|
||||
virtual bool ChangeBase( const Point3d& ptBase) = 0 ;
|
||||
virtual bool GetDrawWithArrowHead( double dFrazLenAH, double dMaxDimA, PolyLine& PL) const = 0 ;
|
||||
} ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2014-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkLinePntTgCurve.h Data : 10.06.14 Versione : 1.5f3
|
||||
// Contenuto : Dichiarazione funzioni per calcolo rette tangenti a curve.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 10.06.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* GetLinePointTgCurve( const Point3d& ptP, const ICurve& cCrv, const Point3d& ptNear) ;
|
||||
EGK_EXPORT ICurveLine* GetLinePointTgArc( const Point3d& ptP, const ICurveArc& crvArc, const Point3d& ptNear) ;
|
||||
@@ -0,0 +1,30 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2014-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkLineTgCurve.h Data : 10.06.14 Versione : 1.5f3
|
||||
// Contenuto : Dichiarazione funzioni per calcolo rette tangenti a curve.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 10.06.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* GetLineTgTwoArcs( const ICurveArc& crvArc1, const Point3d& ptNear1,
|
||||
const ICurveArc& crvArc2, const Point3d& ptNear2) ;
|
||||
@@ -179,6 +179,18 @@ SqDist( const Point3d& ptP1, const Point3d& ptP2)
|
||||
return ( dX * dX + dY * dY + dZ * dZ) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Quadrato della distanza tra due punti nel piano XY
|
||||
//----------------------------------------------------------------------------
|
||||
inline double
|
||||
SqDistXY( const Point3d& ptP1, const Point3d& ptP2)
|
||||
{
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
|
||||
return ( dX * dX + dY * dY) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Distanza tra due punti
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -199,6 +211,23 @@ Dist( const Point3d& ptP1, const Point3d& ptP2)
|
||||
return sqrt( dX * dX + dY * dY + dZ * dZ) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Distanza tra due punti nel piano XY
|
||||
//----------------------------------------------------------------------------
|
||||
inline double
|
||||
DistXY( const Point3d& ptP1, const Point3d& ptP2)
|
||||
{
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
|
||||
if ( fabs( dY) < EPS_ZERO)
|
||||
return fabs( dX) ;
|
||||
if ( fabs( dX) < EPS_ZERO)
|
||||
return fabs( dY) ;
|
||||
|
||||
return sqrt( dX * dX + dY * dY) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Direzione e distanza tra due punti
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+8
-2
@@ -22,7 +22,11 @@ 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 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
|
||||
OFF_CHAMFER = 1, // si raccordano con smusso gli spigoli esterni
|
||||
OFF_EXTEND = 2} ; // si prolungano all'intersezione gli spigoli esterni
|
||||
public :
|
||||
virtual bool IsSimple( void) const = 0 ;
|
||||
virtual bool IsClosed( void) const = 0 ;
|
||||
@@ -39,8 +43,10 @@ class __declspec( novtable) ICurve : public IGeoObj
|
||||
Vector3d* pvtDer1 = nullptr, Vector3d* pvtDer2 = nullptr) const = 0 ;
|
||||
virtual bool GetPointTang( double dU, Side nS, Point3d& ptPos, Vector3d& vtTang) const = 0 ;
|
||||
virtual bool GetPointDiffGeom( double dU, Side nS, CrvPointDiffGeom& oDiffG) const = 0 ;
|
||||
virtual bool Invert( void) = 0 ;
|
||||
virtual bool IsPointOn( const Point3d& ptP, double dTol = EPS_SMALL) const = 0 ;
|
||||
virtual bool ApproxWithLines( double dLinTol, double dAngTolDeg, PolyLine& PL) const = 0 ;
|
||||
virtual bool Invert( void) = 0 ;
|
||||
virtual bool Offset( double dDist, int nSide, int nType = OFF_FILLET) = 0 ;
|
||||
virtual bool TrimStartAtParam( double dUTrim) = 0 ;
|
||||
virtual bool TrimEndAtParam( double dUTrim) = 0 ;
|
||||
virtual bool TrimStartAtLen( double dLenTrim) = 0 ;
|
||||
|
||||
+3
-1
@@ -20,7 +20,9 @@ class PtrOwner
|
||||
{
|
||||
public :
|
||||
explicit PtrOwner( T* pT) : m_pT( pT) {}
|
||||
~PtrOwner( void) { if ( m_pT != nullptr) delete m_pT ; m_pT = nullptr ; }
|
||||
~PtrOwner( void) { Reset() ; }
|
||||
void Set( T* pT) { Reset() ; m_pT = pT ; }
|
||||
void Reset( void) { if ( m_pT != nullptr) delete m_pT ; m_pT = nullptr ; }
|
||||
T& operator*() const { return *m_pT ; }
|
||||
T* operator->() const { return m_pT ; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user