コード例 #1
0
ファイル: elemman.C プロジェクト: fpetrot/Splash-3
long radiosity_converged(long process_id)
{
    float prev_total, current_total ;
    float difference ;
    Rgb rad ;

    /* Check radiosity value */
    prev_total = global->prev_total_energy.r + global->prev_total_energy.g
        + global->prev_total_energy.b ;
    current_total = global->total_energy.r + global->total_energy.g
        + global->total_energy.b ;

    /* Compute difference from the previous iteration */
    prev_total += 1.0e-4 ;
    difference = fabs( (current_total / prev_total) - (float)1.0 ) ;

    if( verbose_mode )
        {
            rad = global->total_energy ;
            rad.r /= global->total_patch_area ;
            rad.g /= global->total_patch_area ;
            rad.b /= global->total_patch_area ;
            printf( "Total energy:     " ) ;
            print_rgb( &global->total_energy ) ;
            printf( "Average radiosity:" ) ;
            print_rgb( &rad ) ;
            printf( "Difference %.2f%%\n", difference * 100.0 ) ;
        }

    if( difference <=  Energy_epsilon )
        return( 1 ) ;
    else
        return( 0 ) ;
}
コード例 #2
0
ファイル: pngtocss.c プロジェクト: bluesmoon/pngtocss
static void print_colors(gradient *g, modes mode)
{
	int i;
	if(mode == WEBKIT) {
		if(g->colors[0].a == 255)
			printf("from(#%02x%02x%02x), to(#%02x%02x%02x)",
				g->colors[0].r, g->colors[0].g, g->colors[0].b,
				g->colors[g->ncolors-1].r, g->colors[g->ncolors-1].g, g->colors[g->ncolors-1].b);
		else
			printf("from(rgba(%i,%i,%i,%.3g)), to(rgba(%i,%i,%i,%.3g))",
				g->colors[0].r, g->colors[0].g, g->colors[0].b, decimal2ratio(g->colors[0].a),
				g->colors[g->ncolors-1].r, g->colors[g->ncolors-1].g, g->colors[g->ncolors-1].b,
				decimal2ratio(g->colors[g->ncolors-1].a));
		for(i=1; i<g->ncolors-1; i++) {
			if(g->colors[i].a == 255)
				printf(", color-stop(%u%%, #%02x%02x%02x)",
					g->colors[i].pos,
					g->colors[i].r, g->colors[i].g, g->colors[i].b);
			else
				printf(", color-stop(%u%%, rgba(%i,%i,%i,%.3g))",
					g->colors[i].pos,
					g->colors[i].r, g->colors[i].g, g->colors[i].b,
					decimal2ratio(g->colors[i].a));
		}
	}
	else if(mode == YUI3) {
		for(i=0; i<g->ncolors; i++) {
			printf("\t\t\t{ color: \"");
			if(g->colors[i].a == 255)
				print_rgb(g->colors[i]);
			else
				print_rgba(g->colors[i]);
			printf("\"");
			if(g->colors[i].pos != -1)
				printf(", offset: %0.2f", (float)g->colors[i].pos/100);
			printf(" }");
			if(i<g->ncolors-1)
				printf(",");
			printf("\n");
		}
	}
	else {
		if(g->colors[0].a == 255)
			print_rgb(g->colors[0]);
		else
			print_rgba(g->colors[0]);
		if(g->colors[0].pos != -1)
			printf(" %u%%", g->colors[0].pos);
		for(i=1; i<g->ncolors; i++) {
			printf(", ");
			if(g->colors[i].a == 255)
				print_rgb(g->colors[i]);
			else
				print_rgba(g->colors[i]);
			if(g->colors[i].pos != -1)
				printf(" %u%%", g->colors[i].pos);
		}
	}
}
コード例 #3
0
ファイル: elemman.C プロジェクト: fpetrot/Splash-3
void print_element(Element *elem, long process_id)
{
    printf( "Element (%ld)\n", (long)elem ) ;

    print_point( &elem->ev1->p ) ;
    print_point( &elem->ev2->p ) ;
    print_point( &elem->ev3->p ) ;

    printf( "Radiosity:" ) ;     print_rgb( &elem->rad ) ;
}