76d94d6194
- modifiche a Zmap - aggiunto clamp a ratio di font - migliorata ricerca nomi con *.
74 lines
2.4 KiB
C++
74 lines
2.4 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"
|
|
#include "/EgtDev/Include/EgtNumUtils.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
double
|
|
AdjustFontRatio( double dRatio)
|
|
{
|
|
// se nullo viene posto a 1
|
|
if ( abs( dRatio) < EPS_SMALL)
|
|
return 1.0 ;
|
|
// altrimenti deve stare nei limiti
|
|
const double MIN_FONT_RATIO = 0.1 ;
|
|
const double MAX_FONT_RATIO = 10.0 ;
|
|
return Clamp( dRatio, MIN_FONT_RATIO, MAX_FONT_RATIO) ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
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) ;
|
|
}
|
|
}
|