Ejemplo n.º 1
0
void ShapeMaker::curveToR( double _cx, double _cy, double ax, double ay ) {
	int cx = roundX(factorx * ( _cx ) );
	int cy = roundY(factory * ( _cy ) );
	int x = roundX(factorx * ( ax - _cx ) );
	int y = roundY(factory * ( ay - _cy) );

	smoothx = lastx + _cx;
	smoothy = lasty + _cy;

	diffx += cx + x; diffy += cy + y;
	
	CurveTo *segment = new CurveTo;
	segment->setType(2);
	segment->setbits( SWFMaxBitsNeeded( true, 4, x, y, cx, cy ) );
	segment->setx1( cx );
	segment->sety1( cy );
	segment->setx2( x );
	segment->sety2( y );
	edges->append( segment );
	minmax( x+cx+(lastx*factorx), y+cy+(lasty*factory) );

	lastx += ax; lasty += ay;

	smoothx = ax - _cx;
	smoothy = ay - _cy;
}
Ejemplo n.º 2
0
	void ShapeMaker::lineToR(double _x, double _y) {
		int x = roundX(factorx * (_x));
		int y = roundY(factory * (_y));

		diffx += x; diffy += y;

		SWF::LineTo *segment = new SWF::LineTo;
		segment->setType(1);
		segment->setx(x);
		segment->sety(y);
		edges->append(segment);
		minmax(x+(lastx*factorx), y+(lasty*factory));

		lastx += _x; lasty += _y;
	}
Ejemplo n.º 3
0
void ShapeMaker::doSetup( double _x, double _y, bool hasMoveTo, int _fillStyle0, int _fillStyle1, int _lineStyle ) {
	// append shapesetup (whithout styles, this is glyph only for now)
	ShapeSetup *setup = new ShapeSetup;


	if( _fillStyle0 != -1 ) {
		setup->setfillStyle0( _fillStyle0 );
		setup->sethasFillStyle0( 1 );
	}
	if( _fillStyle1 != -1 ) {
		setup->setfillStyle1( _fillStyle1 );
		setup->sethasFillStyle1( 1 );
	}
	if( _lineStyle != -1 ) {
		setup->setlineStyle( _lineStyle );
		setup->sethasLineStyle( 1 );
	}
	
	if( hasMoveTo ) {
		roundReset();
		int x = roundX(factorx * ( _x ) );
		int y = roundY(factory * ( _y ) );

		diffx = diffy = 0;

		setup->setxybits( SWFMaxBitsNeeded( true, 2, x, y ) );
	
		setup->sethasMoveTo( 1 );
		setup->setx( x );
		setup->sety( y );
		
		minmax( x, y );
	
		lastx = _x; lasty = _y;
		lastsetupx = _x; lastsetupy = _y;
	}
			
	edges->append( setup );
	
//	fprintf(stderr,"setup %i/%i\n", x, y );
}