All pastes #249591 Raw Edit

Something

public java v1 · immutable
#249591 ·published 2006-11-15 23:14 UTC
rendered paste body
		ps.println("#declare half"+name+" = union {");				for(int y = 1; y < (height-1); y++)		{			for(int x = 1; x < (width-1); x++)			{				if(pixel[y][x].isSolid())				{					ps.println("\tmesh2 {");					ps.println("\t\tvertex_vectors {");					ps.println("\t\t\t9,");					// D7  c6  C5  					//  					// d8  T0  b4      <= thickness					//					// A1  a2  B3  					double T = pixel[y][x].thickness;					double A = ((!pixel[y][x-1].isSolid()) || (!pixel[y-1][x-1].isSolid()) || (!pixel[y-1][x].isSolid())) ? 0.0 : ((pixel[y][x].thickness+pixel[y][x-1].thickness+pixel[y-1][x-1].thickness+pixel[y-1][x].thickness) / 4);					double B = ((!pixel[y-1][x].isSolid()) || (!pixel[y-1][x+1].isSolid()) || (!pixel[y][x+1].isSolid())) ? 0.0 : ((pixel[y][x].thickness+pixel[y-1][x].thickness+pixel[y-1][x+1].thickness+pixel[y][x+1].thickness) / 4);					double C = ((!pixel[y][x+1].isSolid()) || (!pixel[y+1][x+1].isSolid()) || (!pixel[y+1][x].isSolid())) ? 0.0 : ((pixel[y][x].thickness+pixel[y][x+1].thickness+pixel[y+1][x+1].thickness+pixel[y+1][x].thickness) / 4);					double D = ((!pixel[y+1][x].isSolid()) || (!pixel[y+1][x-1].isSolid()) || (!pixel[y][x-1].isSolid())) ? 0.0 : ((pixel[y][x].thickness+pixel[y+1][x].thickness+pixel[y+1][x-1].thickness+pixel[y][x-1].thickness) / 4);					double a = (!pixel[y-1][x].isSolid()) ? 0.0 : ((pixel[y][x].thickness+pixel[y-1][x].thickness) / 2);					double b = (!pixel[y][x+1].isSolid()) ? 0.0 : ((pixel[y][x].thickness+pixel[y][x+1].thickness) / 2);					double c = (!pixel[y+1][x].isSolid()) ? 0.0 : ((pixel[y][x].thickness+pixel[y+1][x].thickness) / 2);					double d = (!pixel[y][x-1].isSolid()) ? 0.0 : ((pixel[y][x].thickness+pixel[y][x-1].thickness) / 2);					ps.println("\t\t\t<0,"+T+",0>,");					ps.println("\t\t\t<-1,"+A+",-1>,");					ps.println("\t\t\t<0,"+a+",-1>,");					ps.println("\t\t\t<1,"+B+",-1>,");					ps.println("\t\t\t<1,"+b+",0>,");					ps.println("\t\t\t<1,"+C+",1>,");					ps.println("\t\t\t<0,"+c+",1>,");					ps.println("\t\t\t<-1,"+D+",1>,");					ps.println("\t\t\t<-1,"+d+",0>");					ps.println("\t\t\t}");					ps.println("\t\tface_indices {");					ps.println("\t\t\t8,");					ps.println("\t\t\t<0,1,2>,");					ps.println("\t\t\t<0,2,3>,");					ps.println("\t\t\t<0,3,4>,");					ps.println("\t\t\t<0,4,5>,");					ps.println("\t\t\t<0,5,6>,");					ps.println("\t\t\t<0,6,7>,");					ps.println("\t\t\t<0,7,8>,");					ps.println("\t\t\t<0,8,1>");					ps.println("\t\t\t}");					ps.println("\t\ttexture {\tpigment {\trgb " + getRGBVector(x, y) + "\t}\tfinish\t{\tambient 0.25\tbrilliance 4\tdiffuse 0.5\tmetallic\tspecular 0.80\troughness 1/80\treflection 0.3}\t}");					ps.println("\t\ttranslate <"+2*x+",0,"+2*y+">");					ps.println("\t\t}");				}			}		}		ps.println("\tscale <1, 1, 1/2>");		ps.println("\ttranslate <-19.5, 0, -17.5>");		ps.println("\ttranslate x * " + offset);		ps.println("\t}");		ps.println("union { object { half"+name+" } object { half"+name+" scale <1,-1,1> } }");