Include :

- aggiornamento prototipi
- aggiunte Intersezioni Linea Piano e Linea Triangolo.
This commit is contained in:
Dario Sassi
2015-02-24 22:56:50 +00:00
parent 91c6432bb2
commit 1d2ad0b47f
8 changed files with 95 additions and 5 deletions
+1
View File
@@ -26,6 +26,7 @@
//-----------------------------------------------------------------------------
const int MAX_RGB = 255 ;
const int MAX_ALPHA = 100 ;
const int ALPHA_LIM = 90 ; // valore di opacità equivalente al 100%
const float INV_MAX_RGB = 1 / float( MAX_RGB) ;
const float INV_MAX_ALPHA = 1 / float( MAX_ALPHA) ;
+39
View File
@@ -0,0 +1,39 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : EGkIntersLinePlane.h Data : 18.02.15 Versione : 1.6b7
// Contenuto : Dichiarazione della classe intersezione linea/piano.
//
//
//
// Modifiche : 18.02.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkPlane3d.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 IntersLinePlane( const Point3d& ptL1, const Point3d& ptL2, const Plane3d& plPlane,
Point3d& ptInt) ;
EGK_EXPORT int IntersLinePlane( const Point3d& ptL, const Vector3d& vtL, double dLen, const Plane3d& plPlane,
Point3d& ptInt) ;
//-----------------------------------------------------------------------------
// Tipo di intersezione linea-piano
const int ILPT_NO = 0 ; // non c'è intersezione
const int ILPT_INPLANE = 1 ; // la linea giace nel piano
const int ILPT_START = 2 ; // l'intersezione è il punto iniziale
const int ILPT_END = 3 ; // l'intersezione è il punto finale
const int ILPT_YES = 4 ; // intersezione con attraversamento
+38
View File
@@ -0,0 +1,38 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : EGkIntersLinePlane.h Data : 18.02.15 Versione : 1.6b7
// Contenuto : Dichiarazione della classe intersezione linea/piano.
//
//
//
// Modifiche : 18.02.15 DS 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 int IntersLineTria( const Point3d& ptL1, const Point3d& ptL2, const Triangle3d& trTria,
Point3d& ptInt) ;
EGK_EXPORT int IntersLineTria( const Point3d& ptL, const Vector3d& vtL, double dLen, const Triangle3d& trTria,
Point3d& ptInt) ;
//-----------------------------------------------------------------------------
// Tipo di intersezione linea-triangolo
enum IntLineTriaType { ILTT_NO = 0, // non c'è intersezione
ILTT_SEGM = 1, // una parte di linea appartiene al triangolo
ILTT_VERT = 2, // intersezione coincide con un vertice
ILTT_EDGE = 3, // intersezione coincide con interno di un lato
ILTT_IN = 4} ; // intersezione coincide con interno del triangolo
+7 -5
View File
@@ -59,6 +59,7 @@ class IEGrScene
virtual int GetFirstSelectedObj( void) = 0 ;
virtual int GetNextSelectedObj( void) = 0 ;
virtual double GetSelectedObjWinZ( int nSel = - 1) = 0 ;
virtual double GetSelectedObjMinWinZ( int nSel = - 1) = 0 ;
virtual bool GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel) = 0 ;
virtual bool Project( const Point3d& ptWorld, Point3d& ptView) = 0 ;
virtual bool UnProject( const Point3d& ptView, Point3d& ptWorld) = 0 ;
@@ -144,8 +145,9 @@ enum SnapPoint { SP_NONE = 0,
SP_END = 3,
SP_MID = 4,
SP_CENTER = 5,
SP_NEAR = 6,
SP_INTERS = 7,
SP_TANG = 8,
SP_PERP = 9,
SP_MINDIST = 10} ;
SP_CENTROID = 6,
SP_NEAR = 7,
SP_INTERS = 8,
SP_TANG = 9,
SP_PERP = 10,
SP_MINDIST = 11} ;
+3
View File
@@ -291,6 +291,7 @@ EIN_EXPORT BOOL __stdcall EgtStartPoint( int nId, int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtEndPoint( int nId, int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtMidPoint( int nId, int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtCenterPoint( int nId, int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtCentroid( int nId, int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtAtParamPoint( int nId, double dU, int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtNearPoint( int nId, const double ptNear[3], int nRefId, double ptP[3]) ;
EIN_EXPORT BOOL __stdcall EgtIntersectionPoint( int nId1, int nId2, const double ptNear[3], int nRefId, double ptP[3]) ;
@@ -307,7 +308,9 @@ EIN_EXPORT BOOL __stdcall EgtCurveThickness( int nId, double* pdThick) ;
EIN_EXPORT BOOL __stdcall EgtGetMinDistPointCurve( const double ptP[3], int nId, double* pdDist) ;
EIN_EXPORT BOOL __stdcall EgtGetMinDistPntSidePointCurve( const double ptP[3], int nId, double vtN[3],
double* pdDist, double ptMin[3], int* pnSide) ;
EIN_EXPORT BOOL __stdcall EgtCurveArcRadius( int nId, double* pdRad) ;
EIN_EXPORT BOOL __stdcall EgtCurveArcNormVersor( int nId, int nRefId, double vtNorm[3]) ;
EIN_EXPORT BOOL __stdcall EgtCurveCompoCenter( int nId, int nSimpCrv, int nRefId, double ptCen[3]) ;
EIN_EXPORT BOOL __stdcall EgtExtTextNormVersor( int nId, int nRefId, double vtNorm[3]) ;
EIN_EXPORT BOOL __stdcall EgtPointToIdGlob( double ptP[3], int nId) ;
EIN_EXPORT BOOL __stdcall EgtPointToIdLoc( double ptP[3], int nId) ;
+1
View File
@@ -44,6 +44,7 @@ class __declspec( novtable) ICurve : public IGeoObj
virtual bool GetEndPoint( Point3d& ptEnd) const = 0 ;
virtual bool GetMidPoint( Point3d& ptMid) const = 0 ;
virtual bool GetCenterPoint( Point3d& ptCen) const = 0 ;
virtual bool GetCentroid( Point3d& ptCen) const = 0 ;
virtual bool GetStartDir( Vector3d& vtDir) const = 0 ;
virtual bool GetEndDir( Vector3d& vtDir) const = 0 ;
virtual bool GetMidDir( Vector3d& vtDir) const = 0 ;
+1
View File
@@ -30,6 +30,7 @@ class __declspec( novtable) ICurveComposite : public ICurve
virtual bool PolygonCenterMidSide( int nSides, const Point3d& ptCen, const Point3d& ptMidSide, const Vector3d& vtN) = 0 ;
virtual bool PolygonSide( int nSides, const Point3d& ptStart, const Point3d& ptEnd, const Vector3d& vtN) = 0 ;
virtual int GetCurveNumber( void) const = 0 ;
virtual const ICurve* GetCurve( int nCrv) const = 0 ;
virtual const ICurve* GetFirstCurve( void) const = 0 ;
virtual const ICurve* GetNextCurve( void) const = 0 ;
virtual const ICurve* GetLastCurve( void) const = 0 ;
+5
View File
@@ -49,12 +49,17 @@ class __declspec( novtable) ISurfTriMesh : public ISurf
virtual int GetTriangleSize( void) const = 0 ;
virtual double GetLinearTolerance( void) = 0 ;
virtual double GetSmoothAngle( void) = 0 ;
virtual bool GetVertex( int nId, Point3d& ptP) const = 0 ;
virtual int GetFirstVertex( Point3d& ptP) const = 0 ;
virtual int GetNextVertex( int nId, Point3d& ptP) const = 0 ;
virtual bool GetTriangle( int nId, int nIdVert[3]) const = 0 ;
virtual int GetFirstTriangle( int nIdVert[3]) const = 0 ;
virtual int GetNextTriangle( int nId, int nIdVert[3]) const = 0 ;
virtual bool GetTriangle( int nId, Triangle3d& Tria) const = 0 ;
virtual int GetFirstTriangle( Triangle3d& Tria) const = 0 ;
virtual int GetNextTriangle( int nId, Triangle3d& Tria) const = 0 ;
virtual int GetAllTriaAroundVertex( int nV, INTVECTOR& vT, bool& bCirc) const = 0 ;
virtual bool GetVertexSmoothNormal( int nV, int nT, Vector3d& vtN) const = 0 ;
virtual bool GetTriangleBoundaryEdges( int nId, TriFlags3d& TFlags) const = 0 ;
virtual bool GetTriangleSmoothNormals( int nId, TriNormals3d& TNrms) const = 0 ;
} ;