diff --git a/EGkColor.h b/EGkColor.h index 3004543..6004a57 100644 --- a/EGkColor.h +++ b/EGkColor.h @@ -37,6 +37,8 @@ class Color { m_Col[RED] = 0 ; m_Col[GREEN] = 0 ; m_Col[BLUE] = 0 ; m_Col[ALPHA] = MAX_ALPHA ; } Color( int nRed, int nGreen, int nBlue, int nAlpha = MAX_ALPHA) { Set( nRed, nGreen, nBlue, nAlpha) ; } + Color( const int vCol[4]) + { Set( vCol[0], vCol[1], vCol[2], vCol[3]) ; } Color( double dRed, double dGreen, double dBlue, double dAlpha = 1) { Set( dRed, dGreen, dBlue, dAlpha) ; } void Set( void) @@ -46,6 +48,8 @@ class Color m_Col[GREEN] = (( nGreen < 0) ? 0 : (( nGreen > MAX_RGB) ? MAX_RGB : nGreen)) ; m_Col[BLUE] = (( nBlue < 0) ? 0 : (( nBlue > MAX_RGB) ? MAX_RGB : nBlue)) ; m_Col[ALPHA] = (( nAlpha < 0) ? 0 : (( nAlpha > MAX_ALPHA) ? MAX_ALPHA : nAlpha)) ; } + void Set( const int vCol[4]) + { Set( vCol[0], vCol[1], vCol[2], vCol[3]) ; } void Set( double dRed, double dGreen, double dBlue, double dAlpha = 1) { m_Col[RED] = (( dRed < 0) ? 0 : (( dRed > 1) ? MAX_RGB : int( dRed * MAX_RGB))) ; m_Col[GREEN] = (( dGreen < 0) ? 0 : (( dGreen > 1) ? MAX_RGB : int( dGreen * MAX_RGB))) ; @@ -63,6 +67,8 @@ class Color { return m_Col[BLUE] ; } int GetIntAlpha( void) const { return m_Col[ALPHA] ; } + void GetInt( int vCol[4]) const + { vCol[0] = m_Col[RED] ; vCol[1] = m_Col[GREEN] ; vCol[2] = m_Col[BLUE] ; vCol[3] = m_Col[ALPHA] ; } float GetRed( void) const { return ( m_Col[RED] * INV_MAX_RGB) ; } float GetGreen( void) const diff --git a/EGkGeomDB.h b/EGkGeomDB.h index dab589b..8edc188 100644 --- a/EGkGeomDB.h +++ b/EGkGeomDB.h @@ -48,6 +48,10 @@ class __declspec( novtable) IGeomDB virtual int GetNext( int nId) const = 0 ; virtual int GetLastInGroup( int nIdGroup) const = 0 ; virtual int GetPrev( int nId) const = 0 ; + virtual int GetFirstGroupInGroup( int nIdGroup) const = 0 ; + virtual int GetNextGroup( int nId) const = 0 ; + virtual int GetLastGroupInGroup( int nIdGroup) const = 0 ; + virtual int GetPrevGroup( int nId) const = 0 ; virtual int GetGdbType( int nId) const = 0 ; virtual IGeoObj* GetGeoObj( int nId) = 0 ; virtual const IGeoObj* GetGeoObj( int nId) const = 0 ; diff --git a/EGrScene.h b/EGrScene.h index 4d1d968..7ef53ff 100644 --- a/EGrScene.h +++ b/EGrScene.h @@ -84,6 +84,12 @@ class IEGrScene virtual bool SetExtension( const BBox3d& b3Ext) = 0 ; virtual bool UpdateExtension( void) = 0 ; virtual bool SetMark( Color colMark) = 0 ; + // Grid + virtual bool SetGridShow( bool bShowGrid, bool bShowFrame) = 0 ; + virtual bool SetGridFrame( const Frame3d& frFrame) = 0 ; + virtual bool SetGridGeo( double dSnapStep, int nMinLineSstep, int nMajLineSstep, int nExtSstep) = 0 ; + virtual bool SetGridColor( Color colMinLine, Color colMajLine) = 0 ; + virtual const Frame3d& GetGridFrame( void) = 0 ; // Direct virtual bool SetGeoLineAttribs( Color GLcol) = 0 ; virtual bool SetGeoLine( const Point3d& ptP1, const Point3d& ptP2) = 0 ; @@ -92,7 +98,7 @@ class IEGrScene 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 ; + virtual bool GetGraphicSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH, Point3d& ptSel) = 0 ; } ; //----------------------------------------------------------------------------- @@ -120,7 +126,9 @@ enum ShowMode { SM_WIREFRAME = 0, SM_HIDDENLINE = 1, 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 +enum SnapPoint { SP_SKETCH = 0, + SP_GRID = 1, + SP_END = 2, + SP_MID = 3, + SP_CENTER = 4, + SP_NEAR = 5} ; \ No newline at end of file diff --git a/EInAPI.h b/EInAPI.h index f3a424d..8a2e4f4 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -85,13 +85,15 @@ EIN_EXPORT BOOL __stdcall EgtFrameToLoc( double ptOrig[3], double vtX[3], double EIN_EXPORT BOOL __stdcall EgtFrameLocToLoc( double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3], const double ptO1[3], const double vtX1[3], const double vtY1[3], const double vtZ1[3], const double ptO2[3], const double vtX2[3], const double vtY2[3], const double vtZ2[3]) ; +EIN_EXPORT BOOL __stdcall EgtGetVectorRotation( const double vtS[3], const double vtE[3], const double vtAx[3], + double* pdAngRotDeg, BOOL* pbDet) ; // GeomDB EIN_EXPORT int __stdcall EgtInitGeomDB( void) ; EIN_EXPORT BOOL __stdcall EgtSetCurrentContext( int nGseCtx) ; EIN_EXPORT BOOL __stdcall EgtResetCurrentContext( void) ; EIN_EXPORT int __stdcall EgtGetCurrentContext( void) ; -EIN_EXPORT BOOL __stdcall EgtSetDefaultMaterial( int nRed, int nGreen, int nBlue) ; +EIN_EXPORT BOOL __stdcall EgtSetDefaultMaterial( const int vCol[4]) ; EIN_EXPORT BOOL __stdcall EgtNewFile( void) ; EIN_EXPORT BOOL __stdcall EgtOpenFile( const wchar_t* wsFilePath) ; EIN_EXPORT BOOL __stdcall EgtSaveFile( const wchar_t* wsFilePath, int nFlag) ; @@ -121,6 +123,8 @@ EIN_EXPORT int __stdcall EgtCreateCurveArcXY( int nParentId, double dAngStartDeg, double dAngCenDeg, double dDeltaZ) ; EIN_EXPORT int __stdcall EgtCreateCurveArc3P( int nParentId, const double ptP1[3], const double ptP2[3], const double ptP3[3]) ; +EIN_EXPORT int __stdcall EgtCreateCurveArcC2PN( int nParentId, const double ptCen[3], + const double ptStart[3], const double ptNearEnd[3], const double vtNorm[3]) ; EIN_EXPORT int __stdcall EgtCreateCurveBezier( int nParentId, int nDegree, const double ptCtrls[/*3x(nDegree+1)*/]) ; EIN_EXPORT int __stdcall EgtCreateCurveBezierRational( int nParentId, int nDegree, @@ -138,22 +142,19 @@ EIN_EXPORT int __stdcall EgtCreateTextEx( int nParentId, const wchar_t* wsText, const double ptP[3], double dAngRotDeg, const wchar_t* wsFont, int nW, BOOL bItalic, double dH, double dRat, double dAddAdv, int nInsPos) ; -// GeomDB Modify -EIN_EXPORT BOOL __stdcall EgtChangeVectorBase( int nId, const double ptB[3]) ; -EIN_EXPORT BOOL __stdcall EgtModifyText( int nId, const wchar_t* wsNewText) ; -EIN_EXPORT BOOL __stdcall EgtChangeTextFont( int nId, const wchar_t* wsNewFont) ; -EIN_EXPORT BOOL __stdcall EgtFlipText( int nId) ; -EIN_EXPORT BOOL __stdcall EgtMirrorText( int nId, BOOL bOnL) ; -EIN_EXPORT BOOL __stdcall EgtTextToOutline( int nId, int nDestGroupId) ; -EIN_EXPORT BOOL __stdcall EgtSplitText( int nId, int nDestGroupId) ; - // GeomDB Objects EIN_EXPORT BOOL __stdcall EgtExistsObj( int nId) ; +EIN_EXPORT int __stdcall EgtGetParent( int nId) ; +EIN_EXPORT BOOL __stdcall EgtGetGroupGlobFrame( int nId, double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3]) ; EIN_EXPORT int __stdcall EgtGetGroupObjs( int nId) ; EIN_EXPORT int __stdcall EgtGetFirstInGroup( int nGroupId) ; EIN_EXPORT int __stdcall EgtGetNext( int nId) ; EIN_EXPORT int __stdcall EgtGetLastInGroup( int nGroupId) ; EIN_EXPORT int __stdcall EgtGetPrev( int nId) ; +EIN_EXPORT int __stdcall EgtGetFirstGroupInGroup( int nGroupId) ; +EIN_EXPORT int __stdcall EgtGetNextGroup( int nId) ; +EIN_EXPORT int __stdcall EgtGetLastGroupInGroup( int nGroupId) ; +EIN_EXPORT int __stdcall EgtGetPrevGroup( int nId) ; EIN_EXPORT BOOL __stdcall EgtGetBBox( int nId, int nFlag, double ptMin[3], double ptMax[3]) ; EIN_EXPORT BOOL __stdcall EgtGetBBoxGlob( int nId, int nFlag, double ptMin[3], double ptMax[3]) ; EIN_EXPORT int __stdcall EgtCopy( int nSouId, int nRefId, int nSonBeforeAfter) ; @@ -183,10 +184,10 @@ EIN_EXPORT BOOL __stdcall EgtSetMark( int nId) ; EIN_EXPORT BOOL __stdcall EgtResetMark( int nId) ; EIN_EXPORT BOOL __stdcall EgtGetMark( int nId, BOOL* pnMark) ; EIN_EXPORT BOOL __stdcall EgtGetCalcMark( int nId, BOOL* pnMark) ; -EIN_EXPORT BOOL __stdcall EgtStdColor( const wchar_t* wsName, int& nRed, int& nGreen, int& nBlue, int& nAlpha) ; -EIN_EXPORT BOOL __stdcall EgtSetColor( int nId, int nRed, int nGreen, int nBlue, int nAlpha) ; -EIN_EXPORT BOOL __stdcall EgtGetColor( int nId, int& nRed, int& nGreen, int& nBlue, int& nAlpha) ; -EIN_EXPORT BOOL __stdcall EgtGetCalcColor( int nId, int& nRed, int& nGreen, int& nBlue, int& nAlpha) ; +EIN_EXPORT BOOL __stdcall EgtStdColor( const wchar_t* wsName, int ObjCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtSetColor( int nId, const int ObjCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtGetColor( int nId, int ObjCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtGetCalcColor( int nId, int ObjCol[4]) ; EIN_EXPORT BOOL __stdcall EgtSetName( int nId, const wchar_t* wsName) ; EIN_EXPORT BOOL __stdcall EgtGetName( int nId, wchar_t*& wsName) ; EIN_EXPORT BOOL __stdcall EgtExistsName( int nId) ; @@ -204,6 +205,17 @@ EIN_EXPORT BOOL __stdcall EgtIsSelectedObj( int nId) ; EIN_EXPORT int __stdcall EgtGetFirstSelectedObj( void) ; EIN_EXPORT int __stdcall EgtGetNextSelectedObj( void) ; +// GeomDB Modify +EIN_EXPORT BOOL __stdcall EgtChangeGroupFrame( int nId, + double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3]) ; +EIN_EXPORT BOOL __stdcall EgtChangeVectorBase( int nId, const double ptB[3]) ; +EIN_EXPORT BOOL __stdcall EgtModifyText( int nId, const wchar_t* wsNewText) ; +EIN_EXPORT BOOL __stdcall EgtChangeTextFont( int nId, const wchar_t* wsNewFont) ; +EIN_EXPORT BOOL __stdcall EgtFlipText( int nId) ; +EIN_EXPORT BOOL __stdcall EgtMirrorText( int nId, BOOL bOnL) ; +EIN_EXPORT BOOL __stdcall EgtTextToOutline( int nId, int nDestGroupId) ; +EIN_EXPORT BOOL __stdcall EgtSplitText( int nId, int nDestGroupId) ; + // GeomDb CurveModif EIN_EXPORT BOOL __stdcall EgtInvertCurve( int nId) ; EIN_EXPORT BOOL __stdcall EgtModifyCurveStartPoint( int nId, const double ptP[3]) ; @@ -215,8 +227,10 @@ EIN_EXPORT BOOL __stdcall EgtTrimCurveEndAtLen( int nId, double dLen) ; EIN_EXPORT BOOL __stdcall EgtTrimCurveStartAtParam( int nId, double dPar) ; EIN_EXPORT BOOL __stdcall EgtTrimCurveEndAtParam( int nId, double dPar) ; EIN_EXPORT BOOL __stdcall EgtTrimCurveStartEndAtParam( int nId, double dParS, double dParE) ; +EIN_EXPORT BOOL __stdcall EgtModifyCurveArc3P( int nId, const double ptMid[3]) ; +EIN_EXPORT BOOL __stdcall EgtModifyCurveArcC2PN( int nId, const double ptEnd[3]) ; -// Geo Snap Points +// Geo Snap Vector/Point/Frame EIN_EXPORT BOOL __stdcall EgtStartPoint( int nId, double ptP[3]) ; EIN_EXPORT BOOL __stdcall EgtEndPoint( int nId, double ptP[3]) ; EIN_EXPORT BOOL __stdcall EgtMidPoint( int nId, double ptP[3]) ; @@ -228,6 +242,10 @@ EIN_EXPORT BOOL __stdcall EgtMidVector( int nId, double vtV[3]) ; EIN_EXPORT BOOL __stdcall EgtAtParamVector( int nId, double dU, int nSide, double vtV[3]) ; EIN_EXPORT BOOL __stdcall EgtFrame( int nId, double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3]) ; +EIN_EXPORT BOOL __stdcall EgtVectorToIdGlob( double vtV[3], int nId) ; +EIN_EXPORT BOOL __stdcall EgtVectorToIdLoc( double vtV[3], int nId) ; +EIN_EXPORT BOOL __stdcall EgtPointToIdGlob( double ptP[3], int nId) ; +EIN_EXPORT BOOL __stdcall EgtPointToIdLoc( double ptP[3], int nId) ; // Geo Transform EIN_EXPORT BOOL __stdcall EgtMove( int nId, double vVtMove[3]) ; @@ -257,11 +275,15 @@ EIN_EXPORT BOOL __stdcall EgtShearGroup( int nId, const double vPnt[3], const do // Scene EIN_EXPORT BOOL __stdcall EgtInitScene( HWND hWnd, int nDriver, int b2Buff, int nColorBits, int nDepthBits) ; -EIN_EXPORT BOOL __stdcall EgtSetBackground( int nTopRed, int nTopGreen, int nTopBlue, - int nBottomRed, int nBottomGreen, int nBottomBlue, BOOL bRedraw) ; -EIN_EXPORT BOOL __stdcall EgtSetMarkAttribs( int nRed, int nGreen, int nBlue) ; -EIN_EXPORT BOOL __stdcall EgtSetGeoLineAttribs( int nRed, int nGreen, int nBlue) ; -EIN_EXPORT BOOL __stdcall EgtSetWinRectAttribs( BOOL bOutline, int nRed, int nGreen, int nBlue, int nAlpha) ; +EIN_EXPORT BOOL __stdcall EgtSetBackground( const int nTopCol[4], const int nBottomCol[4], BOOL bRedraw) ; +EIN_EXPORT BOOL __stdcall EgtSetMarkAttribs( const int MarkCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtSetGeoLineAttribs( const int GlCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtSetWinRectAttribs( BOOL bOutline, const int WrCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtSetGridShow( BOOL bShowGrid, BOOL bShowFrame) ; +EIN_EXPORT BOOL __stdcall EgtSetGridFrame( const double ptOrig[3], const double vX[3], const double vY[3], const double vZ[3]) ; +EIN_EXPORT BOOL __stdcall EgtSetGridGeo( double dSnapStep, int nMinLineSstep, int nMajLineSstep, int nExtSstep) ; +EIN_EXPORT BOOL __stdcall EgtSetGridColor( const int nMinCol[4], const int nMajCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtGetGridFrame( double ptOrig[3], double vX[3], double vY[3], double vZ[3]) ; EIN_EXPORT BOOL __stdcall EgtResize( int nW, int nH) ; EIN_EXPORT BOOL __stdcall EgtDraw( void) ; EIN_EXPORT BOOL __stdcall EgtSelect( int nWinX, int nWinY, int nSelW, int nSelH, int* pnSel) ; @@ -270,8 +292,7 @@ EIN_EXPORT int __stdcall EgtGetNextObjInSelWin( void) ; EIN_EXPORT BOOL __stdcall EgtUnselectableAdd( int nId) ; EIN_EXPORT BOOL __stdcall EgtUnselectableRemove( int nId) ; EIN_EXPORT BOOL __stdcall EgtUnselectableClearAll( void) ; -EIN_EXPORT BOOL __stdcall EgtGetSelectedSnapPoint( int nSnap, int nWinX, int nWinY, int nSelW, int nSelH, - double ptP[3]) ; +EIN_EXPORT BOOL __stdcall EgtGetGraphicSnapPoint( int nSnap, int nWinX, int nWinY, int nSelW, int nSelH, double ptP[3]) ; EIN_EXPORT BOOL __stdcall EgtSetShowMode( int nShowMode, BOOL bRedraw) ; EIN_EXPORT int __stdcall EgtGetShowMode( void) ; EIN_EXPORT BOOL __stdcall EgtSetShowCurveDirection( BOOL bShow, BOOL bRedraw) ;