|
#include "schema.h"
#include <stdio.h>
static char gBuff[512];
SCHEMA::SCHEMA() {
imposta( 0.0, 0.0, 0.0, 0.0, 1.0 );
includi_tratto( 1 );
}
SCHEMA::SCHEMA( int X, int Y, int W, int H, int T ) {
imposta( X, Y, W, H, T );
includi_tratto( 1 );
}
SCHEMA::~SCHEMA() {
// niente da distruggere
}
void SCHEMA::imposta( int X, int Y, int W, int H, int T ) {
posiziona( X, Y );
dimensiona( W, H );
set_tratto( T );
}
void SCHEMA::posiziona( int X, int Y ) {
x = X; y = Y;
}
void SCHEMA::sposta( int dX, int dY ) {
x += dX; y += dY;
}
void SCHEMA::dimensiona( int W, int H ) {
w = W; h = H;
}
void SCHEMA::gonfia( int dW, int dH ) {
w += dW; h += dH;
}
void SCHEMA::set_tratto( int T ) {
tratto = T;
}
void SCHEMA::includi_tratto( int includi ) {
includiTratto = includi != 0;
}
char *SCHEMA::compila( bool aCapoFinale ) {
char *p = gBuff;
p += sprintf( p, "<path id=\"schema_tris\" d=\"" );
p += sprintf( p, "M%d,%d v%d", x+w/3, y, h );
p += sprintf( p, " M%d,%d v%d", x+w*2/3, y, h );
p += sprintf( p, " M%d,%d h%d", x, y+h/3, w );
p += sprintf( p, " M%d,%d h%d\"", x, y+h*2/3, w );
if( includiTratto )
p += sprintf( p, " style=\"stroke: #000; stroke-width: %d;\"", tratto );
p += sprintf( p, " />" );
if( aCapoFinale )
p += sprintf( p, "\n" );
return gBuff;
}
|
|