Files
EgtGeomKernel/ExtText.h
T
Dario Sassi 2e4b67f9e9 EgtGeomKernel 1.6a2 :
- aggiunte GetNfeFontDir e GetDefaultFont
- modifiche a Set di ExtText
- migliorata gestione materiali
- GeomDB::Load ora può funzionare aggiungendo a DB già carico per Insert.
2015-01-14 21:54:34 +00:00

141 lines
7.1 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : ExtText.h Data : 27.05.14 Versione : 1.5f1
// Contenuto : Dichiarazione della classe Testo.
//
//
//
// Modifiche : 27.05.14 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "ObjGraphicsMgr.h"
#include "DllMain.h"
#include "GeoObjRW.h"
#include "/EgtDev/Include/EGkExtText.h"
//----------------------------------------------------------------------------
class ExtText : public IExtText, public IGeoObjRW
{
public : // IGeoObj
virtual ~ExtText( void) ;
virtual ExtText* Clone( void) const ;
virtual GeoObjType GetType( void) const ;
virtual bool IsValid( void) const
{ return true ; }
virtual const std::string& GetTitle( void) const ;
virtual bool Dump( std::string& sOut, const char* szNewLine = "\n") const ;
virtual bool GetLocalBBox( BBox3d& b3Loc, int nFlag = BBF_STANDARD) const ;
virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag = BBF_STANDARD) const ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg)
{ double dAngRad = dAngDeg * DEGTORAD ;
return Rotate( ptAx, vtAx, cos( dAngRad), sin( dAngRad)) ; }
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) ;
virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) ;
virtual bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff) ;
virtual bool ToGlob( const Frame3d& frRef) ;
virtual bool ToLoc( const Frame3d& frRef) ;
virtual bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest) ;
virtual void SetObjGraphics( IObjGraphics* pOGr)
{ m_OGrMgr.SetObjGraphics( pOGr) ; }
virtual IObjGraphics* GetObjGraphics( void)
{ return m_OGrMgr.GetObjGraphics() ; }
virtual const IObjGraphics* GetObjGraphics( void) const
{ return m_OGrMgr.GetObjGraphics() ; }
virtual void SetTempProp( int nProp)
{ m_nTempProp = nProp ; }
virtual int GetTempProp( void)
{ return m_nTempProp ; }
public : // IExtText
virtual bool CopyFrom( const IGeoObj* pGObjSrc) ;
virtual bool Set( const Point3d& ptP, double dAngDeg, const std::string& sText, double dH) ;
virtual bool Set( const Point3d& ptP, const Vector3d& vtN, const Vector3d& vtD,
const std::string& sText, const std::string& sFont, bool bItl, double dH) ;
virtual bool Set( const Point3d& ptP, const Vector3d& vtN, const Vector3d& vtD,
const std::string& sText, const std::string& sFont, int nW, bool bItl, double dH,
double dRat, double dAddAdv, int nInsPos = 7) ;
virtual const Point3d& GetPoint( void) const
{ return m_ptP ; }
virtual const Vector3d& GetNormVersor( void) const
{ return m_vtN ; }
virtual const Vector3d& GetDirVersor( void) const
{ return m_vtD ; }
virtual const std::string& GetText( void) const
{ return m_sText ; }
virtual const std::string& GetFont( void) const
{ return m_sFont ; }
virtual int GetWeight( void) const
{ return m_nWeight ; }
virtual bool GetItalic( void) const
{ return m_bItalic ; }
virtual double GetHeight( void) const
{ return m_dHeight ; }
virtual double GetRatio( void) const
{ return m_dRatio ; }
virtual double GetAddAdvance( void) const
{ return m_dAddAdvance ; }
virtual int GetInsPosition( void) const
{ return m_nInsPos ; }
virtual bool GetHeightVersor( Vector3d& vtH) const ;
virtual bool GetStartPoint( Point3d& ptStart) const ;
virtual bool GetOverStartPoint( Point3d& ptStart) const ;
virtual bool GetEndPoint( Point3d& ptEnd) const ;
virtual bool GetOverEndPoint( Point3d& ptEnd) const ;
virtual bool GetMidPoint( Point3d& ptMid) const ;
virtual bool GetCenterPoint( Point3d& ptCen) const ;
virtual bool GetOutline( ICURVEPLIST& lstPC) const ;
virtual bool SplitOnLineBreak( IEXTTEXTPVECTOR& vText) const ;
virtual bool ApproxWithLines( double dLinTol, double dAngTolDeg, POLYLINELIST& lstPL) const ;
virtual bool ApproxWithArcs( double dLinTol, double dAngTolDeg, POLYARCLIST& lstPA) const ;
virtual bool Flip( void) ;
virtual bool Mir( bool bOnLen) ;
virtual bool ModifyText( const std::string& sText) ;
virtual bool ChangeFont( const std::string& sFont) ;
public : // IGeoObjRW
virtual int GetNgeId( void) const ;
virtual bool Save( NgeWriter& ngeOut) const ;
virtual bool Load( NgeReader& ngeIn) ;
public :
ExtText( void) ;
ExtText( const ExtText& gpSrc)
{ if ( ! CopyFrom( gpSrc))
LOG_ERROR( GetEGkLogger(), "ExtText : copy constructor error") }
ExtText& operator =( const ExtText& gpSrc)
{ if ( ! CopyFrom( gpSrc))
LOG_ERROR( GetEGkLogger(), "ExtText : copy error")
return *this ; }
private :
bool CopyFrom( const ExtText& gpSrc) ;
private :
static const int MAX_FONT_LEN = 125 ;
static const int MAX_TXT_LINE = 125 ;
static const char CHR_SPECIAL = '\a' ;
private :
ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto
Point3d m_ptP ; // punto di inserimento
Vector3d m_vtN ; // versore normale
Vector3d m_vtD ; // versore di direzione
std::string m_sText ; // testo con codifica UTF-8
std::string m_sFont ; // font utilizzato
int m_nWeight ; // 0 (don't care), 100 (thin) - 900 (black)
bool m_bItalic ; // flag per italico (inclinato)
double m_dHeight ; // altezza del carattere
double m_dRatio ; // rapporto tra larghezza e altezza
double m_dAddAdvance ; // avanzamento addizionale tra caratteri
int m_nInsPos ; // posizione del punto di inserimento rispetto al testo
int m_nTempProp ; // proprietà temporanea
} ;