Files
EgtGeomKernel/FontAux.cpp
T
Dario Sassi bf2eb6648e EgtGeomKernel 1.5f2 :
- aggiunta gestione testi multilinea
- migliorie e correzioni varie sui testi.
2014-06-06 08:53:14 +00:00

60 lines
2.0 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : FontAux.cpp Data : 05.06.14 Versione : 1.5f2
// Contenuto : Implementazione delle funzioni ausiliarie per i font.
//
//
//
// Modifiche : 05.06.14 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "FontAux.h"
#include "/EgtDev/Include/EGkExtText.h"
//----------------------------------------------------------------------------
bool
IsLineBreak( const UINTVECTOR& vCode, int nInd, int& nLen)
{
// riconoscimento del comando di interruzione di linea "<br/>"
if ( vCode[nInd] == '<' && ( nInd + 4) < int( vCode.size()) &&
vCode[nInd+1] == 'b' && vCode[nInd+2] == 'r' &&
vCode[nInd+3] == '/' && vCode[nInd+4] == '>') {
nLen = 4 ;
return true ;
}
return false ;
}
//----------------------------------------------------------------------------
Vector3d
GetTextInsertPointMove( double dMaxW, double dAscent, double dMinH, int nInsPos)
{
switch ( nInsPos) {
case ETXT_IPTL :
return Vector3d( 0, - dAscent, 0) ;
case ETXT_IPTC :
return Vector3d( - 0.5 * dMaxW, - dAscent, 0) ;
case ETXT_IPTR :
return Vector3d( - dMaxW, - dAscent, 0) ;
case ETXT_IPML :
return Vector3d( 0, 0.5 * ( dMinH - dAscent), 0) ;
case ETXT_IPMC :
return Vector3d( - 0.5 * dMaxW, 0.5 * ( dMinH - dAscent), 0) ;
case ETXT_IPMR :
return Vector3d( - dMaxW, 0.5 * ( dMinH - dAscent), 0) ;
default :
case ETXT_IPBL :
return Vector3d( 0, - dMinH, 0) ;
case ETXT_IPBC :
return Vector3d( - 0.5 * dMaxW, - dMinH, 0) ;
case ETXT_IPBR :
return Vector3d( - dMaxW, - dMinH, 0) ;
}
}