From da7bfcbba314192f9cf8d7b7cd6f68586fc07e45 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 7 Aug 2014 07:35:06 +0000 Subject: [PATCH] Include : - aggiunta interfaccia per interpolazione di punti con curve. --- EGkCurveByInterp.h | 50 ++++++++++++++++++++++++++++++++++++++++ EGkGeoCollection.h | 5 ++++ EGkGeomDB.h | 2 +- EGkStmFromTriangleSoup.h | 2 +- 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 EGkCurveByInterp.h diff --git a/EGkCurveByInterp.h b/EGkCurveByInterp.h new file mode 100644 index 0000000..2cbddce --- /dev/null +++ b/EGkCurveByInterp.h @@ -0,0 +1,50 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EGkCurveByInterp.h Data : 05.08.14 Versione : 1.5h1 +// Contenuto : Dichiarazione della classe CurveByInterp. +// +// +// +// Modifiche : 05.08.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include"/EgtDev/Include/EGkGeoCollection.h" + +class ICurve ; + +//----------------------- 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 + +//---------------------------------------------------------------------------- +class CurveByInterp +{ + + public : + EGK_EXPORT bool Start( void) ; + EGK_EXPORT bool AddPoint( const Point3d& ptP) ; + EGK_EXPORT bool End( void) ; + EGK_EXPORT ICurve* GetCurve( int nMethod, int nType) ; + + public : + EGK_EXPORT enum METHOD { BESSEL = 1, AKIMA = 2, AKIMA_CORNER = 3} ; + EGK_EXPORT enum TYPE { BIARCS = 1, CUBIC_BEZIERS = 2} ; + + private : + bool CalcTangents( int nMethod) ; + + private : + PNTVECTOR m_vPnt ; + DBLVECTOR m_vPar ; + VCT3DVECTOR m_vPrevDer ; + VCT3DVECTOR m_vNextDer ; +} ; diff --git a/EGkGeoCollection.h b/EGkGeoCollection.h index 725dea2..3f1fce0 100644 --- a/EGkGeoCollection.h +++ b/EGkGeoCollection.h @@ -38,3 +38,8 @@ typedef std::list BIPNTLIST ; // lista di coppie punto1, punto2 // Raccolte di Punti di curva con loro geometria differenziale typedef std::vector CPDGVECTOR ; // vettore di CrvPointDiffGeom typedef std::list CPDGLIST ; // lista di CrvPointDiffGeom + +//---------------------------------------------------------------------------- +// Raccolte di Vector3d +typedef std::vector VCT3DVECTOR ; // vettore di vettori 3d +typedef std::list VCT3DLIST ; // lista di vettori 3d diff --git a/EGkGeomDB.h b/EGkGeomDB.h index ddaad59..2bb456b 100644 --- a/EGkGeomDB.h +++ b/EGkGeomDB.h @@ -85,7 +85,7 @@ class __declspec( novtable) IGeomDB // selection virtual bool SelectObj( int nId) = 0 ; virtual bool DeselectObj( int nId) = 0 ; - virtual bool SelectGroupObjs( int nId) = 0 ; + virtual bool SelectGroupObjs( int nId, int nFilter = 0) = 0 ; virtual bool DeselectGroupObjs( int nId) = 0 ; virtual bool IsSelectedObj( int nId) const = 0 ; virtual int GetSelectedObjNbr( void) const = 0 ; diff --git a/EGkStmFromTriangleSoup.h b/EGkStmFromTriangleSoup.h index 0fe3aa6..2ec3a66 100644 --- a/EGkStmFromTriangleSoup.h +++ b/EGkStmFromTriangleSoup.h @@ -34,7 +34,7 @@ class StmFromTriangleSoup EGK_EXPORT StmFromTriangleSoup( void) ; EGK_EXPORT ~StmFromTriangleSoup( void) ; EGK_EXPORT bool Start( int nBuckets = GRID_STD_BUCKETS) ; - EGK_EXPORT bool AddTriangle( Triangle3d& Tria) ; + EGK_EXPORT bool AddTriangle( const Triangle3d& Tria) ; EGK_EXPORT bool End( void) ; EGK_EXPORT ISurfTriMesh* GetSurf( void) ;