085ca95097
- aggiornamento prototipi.
97 lines
5.1 KiB
C++
97 lines
5.1 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 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<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 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<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*> IEXTTEXTPLIST ; // lista di puntatori a IExtText
|