Files
Include/EGkExtText.h
T
Dario Sassi 090c32ff54 Include :
- aggiornamento interfacce
- aggiunta IsEmptyOrSpaces per string.
2014-08-23 08:43:38 +00:00

93 lines
4.9 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : EGkExtText.h Data : 28.05.14 Versione : 1.5e10
// Contenuto : Dichiarazione della interfaccia IExtText.
//
//
//
// Modifiche : 28.05.14 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkGeoObj.h"
#include "/EgtDev/Include/EGkCurve.h"
//-----------------------------------------------------------------------------
class __declspec( novtable) IExtText : public IGeoObj
{
public :
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
virtual bool Set( const std::string& sText, const Point3d& ptP, double dAngDeg, double dH) = 0 ;
virtual bool Set( const std::string& sText, const Point3d& ptP, double dAngDeg,
const std::string& sFont, int nW, bool bItl, double dH, double dRat, double dAddAdv,
int nInsPos = 7) = 0 ;
virtual bool Set( const std::string& sText, const Point3d& ptP, const Vector3d& vtN, const Vector3d& vtD,
const std::string& sFont, int nW, bool bItl, double dH, double dRat, double dAddAdv,
int nInsPos = 7) = 0 ;
virtual const Point3d& GetPoint( void) const = 0 ;
virtual const Vector3d& GetNormVersor( void) const = 0 ;
virtual const Vector3d& GetDirVersor( void) const = 0 ;
virtual const std::string& GetText( void) const = 0 ;
virtual const std::string& GetFont( void) const = 0 ;
virtual int GetWeight( void) const = 0 ;
virtual bool GetItalic( void) const = 0 ;
virtual double GetHeight( void) const = 0 ;
virtual double GetRatio( void) const = 0 ;
virtual double GetAddAdvance( void) const = 0 ;
virtual int GetInsPosition( void) const = 0 ;
virtual bool GetHeightVersor( Vector3d& vtH) const = 0 ;
virtual bool GetStartPoint( Point3d& ptStart) const = 0 ;
virtual bool GetOverStartPoint( Point3d& ptStart) const = 0 ;
virtual bool GetEndPoint( Point3d& ptEnd) const = 0 ;
virtual bool GetOverEndPoint( Point3d& ptEnd) const = 0 ;
virtual bool GetMidPoint( Point3d& ptMid) const = 0 ;
virtual bool GetCenterPoint( Point3d& ptCen) const = 0 ;
virtual bool GetOutline( ICURVEPLIST& lstPC) const = 0 ;
virtual bool SplitOnLineBreak( std::vector<IExtText*>& vText) const = 0 ;
virtual bool ApproxWithLines( double dLinTol, double dAngTolDeg, POLYLINELIST& lstPL) const = 0 ;
virtual bool ApproxWithArcs( double dLinTol, double dAngTolDeg, POLYARCLIST& lstPA) const = 0 ;
virtual bool Flip( void) = 0 ;
virtual bool Mir( bool bOnLen) = 0 ;
virtual bool ModifyText( const std::string& sText) = 0 ;
virtual bool ChangeFont( const std::string& sFont) = 0 ;
} ;
//-----------------------------------------------------------------------------
inline IExtText* CreateExtText( void)
{ return (static_cast<IExtText*>( CreateGeoObj( EXT_TEXT))) ; }
inline IExtText* CloneExtText( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != EXT_TEXT)
return nullptr ;
return (static_cast<IExtText*>(pGObj->Clone())) ; }
inline const IExtText* GetExtText( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != EXT_TEXT)
return nullptr ;
return (static_cast<const IExtText*>(pGObj)) ; }
inline IExtText* GetExtText( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != EXT_TEXT)
return nullptr ;
return (static_cast<IExtText*>(pGObj)) ; }
//------------------------ Costanti per posizione di inserimento -------------
// indica la posizione del punto di inserimento rispetto al testo
enum ExtTextInsPosition { ETXT_IPTL = 1, // top left
ETXT_IPTC = 2, // top center
ETXT_IPTR = 3, // top right
ETXT_IPML = 4, // middle left
ETXT_IPMC = 5, // middle center
ETXT_IPMR = 6, // middle right
ETXT_IPBL = 7, // bottom left
ETXT_IPBC = 8, // bottom center
ETXT_IPBR = 9} ; // bottom right
// stringa per interruzione di riga
const std::string ETXT_LINEBREAK = "<br/>" ;
//----------------------------------------------------------------------------
// Raccolte di puntatori a IExtText
typedef std::vector<IExtText*> IEXTTEXTPVECTOR ; // vettore di puntatori a IExtText
typedef std::list<IExtText*> EXTTEXTPLIST ; // lista di puntatori a IExtText