void KisCircleMaskGenerator::setScale(qreal scaleX, qreal scaleY)
{
    KisMaskGenerator::setScale(scaleX, scaleY);

    d->xcoef = 2.0 / effectiveSrcWidth();
    d->ycoef = 2.0 / effectiveSrcHeight();
    d->xfadecoef = (KisMaskGenerator::d->fh == 0) ? 1 : (1.0 / (KisMaskGenerator::d->fh * effectiveSrcWidth()));
    d->yfadecoef = (KisMaskGenerator::d->fv == 0) ? 1 : (1.0 / (KisMaskGenerator::d->fv * effectiveSrcHeight()));
    d->transformedFadeX = d->xfadecoef * softness();
    d->transformedFadeY = d->yfadecoef * softness();
}
/**
 * Adds a new vertex to the mesh (intended to be called only by meshVertexCallback (see below)).
 * @param v The vertex to add
 */
void SurfaceMesh::addVertex( const Vertex & v ) {

	v.info().userData = numVertices;

	if ( numVertices >= capVertices ) {

		upsizeVertices();
	}

	double x = v.point().x();
	double y = v.point().y();
	double z = v.point().z();
	double s = softness( x, y, z );
	double c = v.info().curvature;
	double nx = v.info().normal.x();
	double ny = v.info().normal.y();
	double nz = v.info().normal.z();

	if ( material == DIRT ) {

		c4fn3fv3f[ numVertices * 10 + 0 ] = 0.75;
		c4fn3fv3f[ numVertices * 10 + 1 ] = 0.75;
		c4fn3fv3f[ numVertices * 10 + 2 ] = 0.75;
	}
	else {
		if (material == ROCK) 
		{ 
			hueToRGB<GLfloat>( c4fn3fv3f + numVertices * 10, ROCK_COLOR * ( 1.0 - s ) );
		}
		if (material == MORE_ROCK) 
		{
			hueToRGB<GLfloat>( c4fn3fv3f + numVertices * 10, OTHER_ROCK_COLOR * ( 1.0 - s ) );
		}
	}

	//c4fn3fv3f[ numVertices * 10 + 0 ] = v.info().rgb[ 0 ];
	//c4fn3fv3f[ numVertices * 10 + 1 ] = v.info().rgb[ 1 ];
	//c4fn3fv3f[ numVertices * 10 + 2 ] = v.info().rgb[ 2 ];

	c4fn3fv3f[ numVertices * 10 + 3 ] = 1.0; // opaque
	c4fn3fv3f[ numVertices * 10 + 4 ] = nx;
	c4fn3fv3f[ numVertices * 10 + 5 ] = ny;
	c4fn3fv3f[ numVertices * 10 + 6 ] = nz;
	c4fn3fv3f[ numVertices * 10 + 7 ] = x;
	c4fn3fv3f[ numVertices * 10 + 8 ] = y;
	c4fn3fv3f[ numVertices * 10 + 9 ] = z;
	curvatures[ numVertices ] = c;
	curvatures[ numVertices ] = s;
	++numVertices;
}