Files
Dario Sassi 76d94d6194 EgtGeomKernel 1.8g1 :
- modifiche a Zmap
- aggiunto clamp a ratio di font
- migliorata ricerca nomi con *.
2017-08-01 07:59:56 +00:00

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) ;
}
}