//---------------------------------------------------------------------------- // EgalTech 2018-2021 //---------------------------------------------------------------------------- // File : EGkIntersTriaTria.h Data : 14.05.21 Versione : 2.3e1 // Contenuto : Dichiarazione della classe intersezione triangolo/triangolo. // // // // Modifiche : 27.08.18 DS Creazione modulo. // 01.10.19 LM Aggiunte costanti // 14.05.21 LM Ridefinizione costanti intersezione tra triangoli. // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkPlane3d.h" #include "/EgtDev/Include/EGkTriangle3d.h" #include "/EgtDev/Include/EGkGeoCollection.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 int IntersTriaTria( const Triangle3d& trTria1, const Triangle3d& trTria2, Point3d& ptInt, Point3d& ptInt2, TRIA3DVECTOR& vTria) ; //----------------------------------------------------------------------------- // Tipo di intersezione triangolo-triangolo enum IntTriaTriaType { ITTT_NO = 0, // non c'è intersezione ITTT_OVERLAPS = 1, // i triangoli si sovrappongono (i triangoli del poligono sono in vTria) ITTT_VERT_VERT = 2, // intersezione coppia di vertici ITTT_VERT_EDGE = 3, // vertice del primo su lato del secondo ITTT_EDGE_VERT = 4, // vertice del secondo su lato del primo ITTT_VERT_INT = 5, // vertice del primo nell'interno del secondo ITTT_INT_VERT = 6, // vertice del secondo nell'interno del primo ITTT_EDGE_EDGE_PNT = 7, // punto sull'intersezione di due lati ITTT_EDGE_EDGE_SEG = 8, // sovrapposizione di lati ITTT_EDGE_INT = 9, // lato del primo nell'interno del secondo ITTT_INT_EDGE = 10, // lato del secondo nell'interno del primo ITTT_INT_INT_SEG = 11, // segmento all'interno di entrambi i triangoli ITTT_COUNTER_OVERLAPS = 12 // triangoli sovrapposti controversi (i triangoli del poligono sono in vTria) } ;