From 4a8ea6e7e2a79a08f37be6216c01c16945a3be1d Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 10 Oct 2014 06:41:27 +0000 Subject: [PATCH] Include : - aggiornamenti per selezione con mouse e API. --- EGrScene.h | 22 +++++++++++++++++++--- EInAPI.h | 14 ++++++++++++-- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/EGrScene.h b/EGrScene.h index 2ab2653..2afa4f8 100644 --- a/EGrScene.h +++ b/EGrScene.h @@ -17,6 +17,7 @@ #include "/EgtDev/Include/EGkPoint3d.h" #include "/EgtDev/Include/EGkBBox3d.h" #include "/EgtDev/Include/EGkColor.h" +#include "/EgtDev/Include/EgtNumCollection.h" #include #include @@ -43,11 +44,16 @@ class IEGrScene virtual std::string GetOpenGLInfo( void) = 0 ; virtual std::string GetGLSLInfo( void) = 0 ; virtual std::string GetPixelFormatInfo( void) = 0 ; + virtual IGeomDB* GetGeomDB( void) = 0 ; virtual bool RedrawWindow( void) = 0 ; virtual bool Resize( int nW, int nH) = 0 ; virtual bool SetBackground( Color colBackTop, Color colBackBottom) = 0 ; - virtual bool Prepare( void) = 0 ; virtual bool Draw( void) = 0 ; + virtual bool Select( const Point3d& ptView, int nW, int nH, int& nSel) = 0 ; + virtual bool GetSelectedObjs( INTVECTOR& nIds) = 0 ; + virtual int GetFirstSelectedObj( void) = 0 ; + virtual int GetNextSelectedObj( void) = 0 ; + virtual double GetSelectedObjWinZ( int nSel = - 1) = 0 ; virtual bool Project( const Point3d& ptWorld, Point3d& ptView) = 0 ; virtual bool UnProject( const Point3d& ptView, Point3d& ptWorld) = 0 ; virtual void Destroy( void) = 0 ; @@ -74,10 +80,15 @@ class IEGrScene virtual bool SetExtension( const BBox3d& b3Ext) = 0 ; virtual bool UpdateExtension( void) = 0 ; virtual bool SetMark( Color colMark) = 0 ; - // Aux + // Direct + virtual bool SetGeoLineAttribs( Color GLcol) = 0 ; + virtual bool SetGeoLine( const Point3d& ptP1, const Point3d& ptP2) = 0 ; + virtual bool ResetGeoLine( void) = 0 ; virtual bool SetWinRectAttribs( bool bOutline, Color WRcol) = 0 ; virtual bool SetWinRect( const Point3d& ptWinRectP1, const Point3d& ptWinRectP2) = 0 ; virtual bool ResetWinRect( void) = 0 ; + // Snap + virtual bool GetSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH, Point3d& ptSel) = 0 ; } ; //----------------------------------------------------------------------------- @@ -103,4 +114,9 @@ enum CameraDir { CT_NONE = 0, //------------------------ Costanti per tipo di visualizzazione -------------- enum ShowMode { SM_WIREFRAME = 0, SM_HIDDENLINE = 1, - SM_SHADING = 2} ; \ No newline at end of file + SM_SHADING = 2} ; +//------------------------ Costanti per tipo di snap al punto ---------------- +enum SnapPoint { SP_END = 0, + SP_MID = 1, + SP_CENTER = 2, + SP_NEAR = 3} ; \ No newline at end of file diff --git a/EInAPI.h b/EInAPI.h index 45da963..81554dc 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -142,6 +142,11 @@ EIN_EXPORT BOOL __stdcall EgtGetInfo( int nGseCtx, int nId, const wchar_t* wsKey EIN_EXPORT BOOL __stdcall EgtExistsInfo( int nGseCtx, int nId, const wchar_t* wsKey) ; EIN_EXPORT BOOL __stdcall EgtRemoveInfo( int nGseCtx, int nId, const wchar_t* wsKey) ; +// GeomDb Obj Selection +EIN_EXPORT BOOL __stdcall EgtIsSelectedObj( int nGseCtx, int nId) ; +EIN_EXPORT BOOL __stdcall EgtSelectObj( int nGseCtx, int nId) ; +EIN_EXPORT BOOL __stdcall EgtDeselectObj( int nGseCtx, int nId) ; + // GeomDb CurveModif EIN_EXPORT BOOL __stdcall EgtInvertCurve( int nGseCtx, int nId) ; EIN_EXPORT BOOL __stdcall EgtModifyCurveStartPoint( int nGseCtx, int nId, const double ptP[3]) ; @@ -197,18 +202,23 @@ EIN_EXPORT BOOL __stdcall EgtShearGroup( int nGseCtx, int nId, const double vPnt EIN_EXPORT BOOL __stdcall EgtInitScene( int nGseCtx, HWND hWnd, int nDriver, int b2Buff, int nColorBits, int nDepthBits) ; EIN_EXPORT BOOL __stdcall EgtSetBackground( int nGseCtx, int nTopRed, int nTopGreen, int nTopBlue, int nBottomRed, int nBottomGreen, int nBottomBlue, BOOL bRedraw) ; -EIN_EXPORT BOOL __stdcall EgtDraw( int nGseCtx) ; EIN_EXPORT BOOL __stdcall EgtResize( int nGseCtx, int nW, int nH) ; +EIN_EXPORT BOOL __stdcall EgtDraw( int nGseCtx) ; +EIN_EXPORT BOOL __stdcall EgtSelect( int nGseCtx, int nWinX, int nWinY, int nSelW, int nSelH, int* pnSel) ; +EIN_EXPORT int __stdcall EgtGetFirstSelectedObj( int nGseCtx) ; +EIN_EXPORT int __stdcall EgtGetNextSelectedObj( int nGseCtx) ; EIN_EXPORT BOOL __stdcall EgtSetShowMode( int nGseCtx, int nShowMode, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtSetShowCurveDirection( int nGseCtx, int nShow, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtZoom( int nGseCtx, int nZoom, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtZoomOnPoint( int nGseCtx, int nWinX, int nWinY, double dCoeff, BOOL bRedraw) ; +EIN_EXPORT BOOL __stdcall EgtSetGeoLine( int nGseCtx, const double ptP1[3], const double ptP2[3], BOOL bRedraw) ; +EIN_EXPORT BOOL __stdcall EgtResetGeoLine( int nGseCtx, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtSetWinRect( int nGseCtx, int nPrevX, int nPrevY, int nCurrX, int nCurrY, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtResetWinRect( int nGseCtx, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtZoomWin( int nGseCtx, int nPrevX, int nPrevY, int nCurrX, int nCurrY, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtSetView( int nGseCtx, int nView, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtSetGenericView( int nGseCtx, double dAngVertDeg, double dAngHorizDeg, BOOL bRedraw) ; -EIN_EXPORT BOOL __stdcall EgtSetViewCenter( int nGseCtx, double ptP[3], BOOL bRedraw) ; +EIN_EXPORT BOOL __stdcall EgtSetViewCenter( int nGseCtx, const double ptP[3], BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtPanCamera( int nGseCtx, int nPrevX, int nPrevY, int nCurrX, int nCurrY, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtRotateCamera( int nGseCtx, int nPrevX, int nPrevY, int nCurrX, int nCurrY, BOOL bRedraw) ; EIN_EXPORT BOOL __stdcall EgtGetCameraDir( int nGseCtx, int* pnDir) ;