From 256849cc70c8c4d4628a30ef1076ed06110d1a70 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 12 Mar 2014 21:21:38 +0000 Subject: [PATCH] Include : - migliorie a interfacce - velocizzate ToString. --- EGkColor.h | 15 ++++++++-- EGkGdbIterator.h | 3 ++ EGkStringUtils3d.h | 70 ++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 74 insertions(+), 14 deletions(-) diff --git a/EGkColor.h b/EGkColor.h index 8c3b563..5e7b99e 100644 --- a/EGkColor.h +++ b/EGkColor.h @@ -13,7 +13,15 @@ #pragma once -#include +#include + +//----------------------- 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 //----------------------------------------------------------------------------- static const int MAX_RGB = 255 ; @@ -57,7 +65,7 @@ class Color { return ( m_Col[BLUE] * INV_MAX_RGB) ; } float GetAlpha( void) const { return ( m_Col[ALPHA] * INV_MAX_ALPHA) ; } - bool operator == ( const Color& other) + bool operator == ( const Color& other) const { return ( m_Col[RED] == other.m_Col[RED] && m_Col[GREEN] == other.m_Col[GREEN] && m_Col[BLUE] == other.m_Col[BLUE] && @@ -92,3 +100,6 @@ const Color LBLUE( 128, 128, 255) ; const Color LCYAN( 128, 255, 255) ; const Color LMAGENTA( 255, 128, 255) ; +//---------------------------------------------------------------------------- +EGK_EXPORT bool GetStdColor( const std::string& sName, Color& cCol) ; +EGK_EXPORT bool GetNameOfStdColor( const Color& cCol, std::string& sName) ; diff --git a/EGkGdbIterator.h b/EGkGdbIterator.h index 61c4ee5..d0ca8df 100644 --- a/EGkGdbIterator.h +++ b/EGkGdbIterator.h @@ -29,10 +29,13 @@ class __declspec( novtable) IGdbIterator public : virtual ~IGdbIterator( void) {} virtual bool SetGDB( IGeomDB* pGDB) = 0 ; + virtual IGeomDB* GetGDB( void) = 0 ; virtual bool GoTo( int nId) = 0 ; virtual bool GoToFirstInGroup( int nIdGroup) = 0 ; + virtual bool GoToFirstInGroup( const IGdbIterator& iIter) = 0 ; virtual bool GoToNext( void) = 0 ; virtual bool GoToLastInGroup( int nIdGroup) = 0 ; + virtual bool GoToLastInGroup( const IGdbIterator& iIter) = 0 ; virtual bool GoToPrev( void) = 0 ; virtual GdbType GetGdbType( void) const = 0 ; diff --git a/EGkStringUtils3d.h b/EGkStringUtils3d.h index 47ba7f5..b6ac0fd 100644 --- a/EGkStringUtils3d.h +++ b/EGkStringUtils3d.h @@ -15,6 +15,7 @@ #include "/EgtDev/Include/EGnStringUtils.h" #include "/EgtDev/Include/EGkFrame3d.h" +#include "/EgtDev/Include/EGkColor.h" //----------------------- Macro per import/export ----------------------------- #undef EGK_EXPORT @@ -29,31 +30,76 @@ EGK_EXPORT bool FromString( const std::string& sVal, Vector3d& vtVal) ; EGK_EXPORT bool FromString( const std::string& sVal, Point3d& ptVal) ; EGK_EXPORT bool FromString( const std::string& sVal, Point3d& ptVal, double& dW) ; EGK_EXPORT bool FromString( const std::string& sVal, Frame3d& frFrame) ; +EGK_EXPORT bool FromString( const std::string& sVal, Color& cCol) ; inline const std::string ToString( const Vector3d& vtVal, int nPrec = 9) { std::string sBuff ; - sBuff.reserve( 3 * 32 + 2) ; - sBuff = ToString( vtVal.x, nPrec) + ',' + ToString( vtVal.y, nPrec) + ',' + ToString( vtVal.z, nPrec) ; + sBuff.reserve( 64) ; + sBuff += ToString( vtVal.x, nPrec) ; + sBuff += ',' ; + sBuff += ToString( vtVal.y, nPrec) ; + sBuff += ',' ; + sBuff += ToString( vtVal.z, nPrec) ; return sBuff ; } inline const std::string ToString( const Point3d& ptVal, int nPrec = 6) { std::string sBuff ; - sBuff.reserve( 3 * 32 + 2) ; - sBuff = ToString( ptVal.x, nPrec) + ',' + ToString( ptVal.y, nPrec) + ',' + ToString( ptVal.z, nPrec) ; + sBuff.reserve( 64) ; + sBuff += ToString( ptVal.x, nPrec) ; + sBuff += ',' ; + sBuff += ToString( ptVal.y, nPrec) ; + sBuff += ',' ; + sBuff += ToString( ptVal.z, nPrec) ; return sBuff ; } inline const std::string ToString( const Point3d& ptVal, double dW, int nPrec = 6) { std::string sBuff ; - sBuff.reserve( 3 * 32 + 2) ; - sBuff = ToString( ptVal.x, nPrec) + ',' + ToString( ptVal.y, nPrec) + ',' + ToString( ptVal.z, nPrec) + - ',' + ToString( dW, nPrec) ; + sBuff.reserve( 64) ; + sBuff += ToString( ptVal.x, nPrec) ; + sBuff += ',' ; + sBuff += ToString( ptVal.y, nPrec) ; + sBuff += ',' ; + sBuff += ToString( ptVal.z, nPrec) ; + sBuff += ',' ; + sBuff += ToString( dW, nPrec) ; return sBuff ; } inline const std::string ToString( const Frame3d& frF, int nPrecP = 6, int nPrecV = 9) { std::string sBuff ; - sBuff.reserve( 12 * 32 + 2) ; - sBuff = ToString( frF.Orig().x, nPrecP) + ',' + ToString( frF.Orig().y, nPrecP) + ',' + ToString( frF.Orig().z, nPrecP) + ',' + - ToString( frF.VersX().x, nPrecV) + ',' + ToString( frF.VersX().y, nPrecV) + ',' + ToString( frF.VersX().z, nPrecV) + ',' + - ToString( frF.VersY().x, nPrecV) + ',' + ToString( frF.VersY().y, nPrecV) + ',' + ToString( frF.VersY().z, nPrecV) + ',' + - ToString( frF.VersZ().x, nPrecV) + ',' + ToString( frF.VersZ().y, nPrecV) + ',' + ToString( frF.VersZ().z, nPrecV) ; + sBuff.reserve( 256) ; + sBuff += ToString( frF.Orig().x, nPrecP) ; + sBuff += ',' ; + sBuff += ToString( frF.Orig().y, nPrecP) ; + sBuff += ',' ; + sBuff += ToString( frF.Orig().z, nPrecP) ; + sBuff += ',' ; + sBuff += ToString( frF.VersX().x, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersX().y, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersX().z, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersY().x, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersY().y, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersY().z, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersZ().x, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersZ().y, nPrecV) ; + sBuff += ',' ; + sBuff += ToString( frF.VersZ().z, nPrecV) ; + return sBuff ; } +inline const std::string +ToString( const Color& cCol) + { std::string sBuff ; + sBuff.reserve( 32) ; + sBuff += ToString( cCol.GetIntRed()) ; + sBuff += ',' ; + sBuff += ToString( cCol.GetIntGreen()) ; + sBuff += ',' ; + sBuff += ToString( cCol.GetIntBlue()) ; + sBuff += ',' ; + sBuff += ToString( cCol.GetIntAlpha()) ; return sBuff ; }