//---------------------------------------------------------------------------- // 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 ISurfTriMesh ; //----------------------------------------------------------------------------- class __declspec( novtable) IExtText : public IGeoObj { public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Set( const Point3d& ptP, double dAngDeg, const std::string& sText, double dH) = 0 ; virtual bool Set( const Point3d& ptP, const Vector3d& vtN, const Vector3d& vtD, const std::string& sText, const std::string& sFont, bool bItl, double dH) = 0 ; 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) = 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& 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 const ISurfTriMesh* GetAuxSurf( void) 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 ; virtual bool ChangeHeight( double dH) = 0 ; virtual bool ChangeItalic( bool bItl) = 0 ; } ; //----------------------------------------------------------------------------- inline IExtText* CreateExtText( void) { return (static_cast( CreateGeoObj( EXT_TEXT))) ; } inline IExtText* CloneExtText( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != EXT_TEXT) return nullptr ; return (static_cast(pGObj->Clone())) ; } inline const IExtText* GetExtText( const IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != EXT_TEXT) return nullptr ; return (static_cast(pGObj)) ; } inline IExtText* GetExtText( IGeoObj* pGObj) { if ( pGObj == nullptr || pGObj->GetType() != EXT_TEXT) return nullptr ; return (static_cast(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 = "
" ; //---------------------------------------------------------------------------- // Raccolte di puntatori a IExtText typedef std::vector IEXTTEXTPVECTOR ; // vettore di puntatori a IExtText typedef std::list IEXTTEXTPLIST ; // lista di puntatori a IExtText