From 7901a11a68d48320f3539013ba7751c7b31becb4 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 6 Nov 2020 19:40:54 +0000 Subject: [PATCH] Include : - aggiornamento e aggiunta prototipi. --- EGkCDeConeTria.h | 30 ++++++++++++++++++++++++++++++ EGkCDePyramidTria.h | 31 +++++++++++++++++++++++++++++++ EGkCDeTriaTria.h | 27 +++++++++++++++++++++++++++ EGkVolZmap.h | 8 ++++---- 4 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 EGkCDeConeTria.h create mode 100644 EGkCDePyramidTria.h create mode 100644 EGkCDeTriaTria.h diff --git a/EGkCDeConeTria.h b/EGkCDeConeTria.h new file mode 100644 index 0000000..348e407 --- /dev/null +++ b/EGkCDeConeTria.h @@ -0,0 +1,30 @@ +//---------------------------------------------------------------------------- +// EgalTech 2020-2020 +//---------------------------------------------------------------------------- +// File : CDeConTria.cpp Data : 28.10.20 Versione : 2.2k1 +// Contenuto : Dichiarazione della verifica di collisione tra +// Cone e Triangle3d. +// +// +// Modifiche : 28.10.20 LM Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "EgtDev/Include/EGkFrame3d.h" +#include "EgtDev/Include/EGkTriangle3d.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 + +//---------------------------------------------------------------------------- +// Il sisitema di riferimento deve avere l'asse di simmetria del cono come asse Z e origine nel centro della base. +// La distanza di sicurezza ha effetto solo se maggiore di epsilon, altrimenti è ignorata ed è ininfluente. +EGK_EXPORT bool CDeConeTria( const Frame3d& frCone, double dBaseRad, double dTopRad, double dHeight, double dSafeDist, const Triangle3d& trTria) ; diff --git a/EGkCDePyramidTria.h b/EGkCDePyramidTria.h new file mode 100644 index 0000000..ba53602 --- /dev/null +++ b/EGkCDePyramidTria.h @@ -0,0 +1,31 @@ +// ---------------------------------------------------------------------------- +// EgalTech 2020-2020 +//---------------------------------------------------------------------------- +// File : CDePyramidTria.cpp Data : 29.10.20 Versione : +// Contenuto : Dichiarazion della verifica di collisione tra +// Pyramid e Triangle3d. +// +// +// Modifiche :29.10.20 LM Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "EgtDev/Include/EGkFrame3d.h" +#include "EgtDev/Include/EGkTriangle3d.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 + +//---------------------------------------------------------------------------- +// Il sisitema di riferimento deve avere l'origine nel centro della base Base, asse X lungo +// un segmento della stessa e asse Z ortogonale alle basi e diretta verso la base Top. +EGK_EXPORT bool CDePyramidTria( const Frame3d& frPyrFrame, double dLenghtBaseX, double dLenghtBaseY, double dLenghtTopX, double dLenghtTopY, + double dHeight, double dSafeDist, const Triangle3d& trTria) ; diff --git a/EGkCDeTriaTria.h b/EGkCDeTriaTria.h new file mode 100644 index 0000000..90ef768 --- /dev/null +++ b/EGkCDeTriaTria.h @@ -0,0 +1,27 @@ +//---------------------------------------------------------------------------- +// EgalTech 2020-2020 +//---------------------------------------------------------------------------- +// File : CDeTriaTria.cpp Data : 05.11.20 Versione : 2.2k1 +// Contenuto : Dichiarazione della verifica di collisione tra due Triangle3d. +// +// +// +// Modifiche : 05.11.20 LM Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "EgtDev/Include/EGkTriangle3d.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 bool CDeTriaTria( const Triangle3d& trTriaA, const Triangle3d& trTriaB) ; diff --git a/EGkVolZmap.h b/EGkVolZmap.h index 900cb95..f50cf44 100644 --- a/EGkVolZmap.h +++ b/EGkVolZmap.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2015-2019 +// EgalTech 2015-2020 //---------------------------------------------------------------------------- -// File : EgkVolZmap.h Data : 12.05.19 Versione : 2.1e3 +// File : EgkVolZmap.h Data : 12.05.19 Versione : 2.2k1 // Contenuto : Dichiarazione della interfaccia IVolZmap. // // @@ -84,9 +84,9 @@ class __declspec( novtable) IVolZmap : public IGeoObj virtual bool AvoidSphere( const Point3d& ptCenter, double dRad, double dSafeDist, bool bPrecise = false) const = 0 ; virtual bool AvoidCylinder( const Frame3d& frCyl, double dH, double dR, double dSafeDist, bool bPrecise = false) const = 0 ; virtual bool AvoidTruncatedCone( const Point3d& ptBase, const Vector3d vtSymmetyAx, - double dRadTop, double dRadBot, double dHeight, bool bPrecise = false) const = 0 ; + double dRadTop, double dRadBot, double dHeight, double dSafeDist, bool bPrecise = false) const = 0 ; virtual bool AvoidTruncatedPyramid( const Point3d& ptBase, const Vector3d& vtAxZ, const Vector3d& vtAxX, - double dSegTop, double dSegBot, double dHeight, bool bPrecise = false) const = 0 ; + double dSegTop, double dSegBot, double dHeight, double dSafeDist, bool bPrecise = false) const = 0 ; virtual bool Cut( const Plane3d& plPlane) = 0 ; virtual bool Compact( void) = 0 ; virtual int GetPartCount( void) const = 0 ;