public class Printing extends GGen { GCircle dots[10]; // FlatMaterial mat; @(100, 0, 17)/255 => vec3 red; @(189, 100, 76)/255 => vec3 muted_gold; @(255, 253, 208)/255 => vec3 cream; @(58, 58, 60)/255 => vec3 gray; red => vec3 special; GPlane p1, p2, p3; p1.mat().color(red); p2.mat().color(red); p3.mat().color(red); for(int i; i < 10; i++) { // dots[i].mat(mat); dots[i].mat().color( muted_gold ); dots[i].sca(0.5); } fun void init(int digit, GGen @ parent) { this --> parent; this.sca(0.15); if ( (digit < 0) || (digit > 15)) { <<<"Invalid Digit">>>; } else if ( digit == 0) { dots[0] --> this; dots[0].sca(0.8); dots[0].mat().color(red); dots[1] --> this; dots[1].sca(0.5); dots[1].mat().color(muted_gold); } else if( digit == 1 ) { dots[0] --> this; dots[0].mat().color(special); } else if( digit == 2 ) { dots[0] --> this; dots[0].pos( @(0, 1, 0) ); dots[1] --> this; dots[1].mat().color(special); dots[1].pos( @(0, -1, 0) ); } else if( digit == 3 ) { dots[0] --> this; dots[0].pos( @(-1, 1, 0) ); dots[1] --> this; dots[1].mat().color(special); dots[1].pos( @(0, 0, 0) ); dots[2] --> this; dots[2].pos( @(1, -1, 0) ); } else if( digit == 4 ) { 1 => float d; dots[0] --> this; dots[0].pos( @(-d, d, 0) ); dots[1] --> this; dots[1].pos( @(d, d, 0) ); dots[2] --> this; dots[2].pos( @(-d, -d, 0) ); dots[3] --> this; dots[3].pos( @(d, -d, 0) ); } else if( digit == 5 ) { 1 => float d; dots[0] --> this; dots[0].pos( @(-d, d, 0) ); dots[1] --> this; dots[1].pos( @(d, d, 0) ); dots[2] --> this; dots[2].pos( @(-d, -d, 0) ); dots[3] --> this; dots[3].pos( @(d, -d, 0) ); dots[4] --> this; dots[4].pos( @(0, 0, 0) ); dots[4].mat().color(special); } else if( digit == 6 ) { 1 => float d; 0.1 => float pad; dots[0] --> this; dots[0].pos( @(-d/2, (d + pad) * 1.5, 0) ); dots[1] --> this; dots[1].pos( @(d/2, (d + pad) * 1.5, 0) ); dots[2] --> this; dots[2].pos( @(-d/2, (d + pad) / 2, 0) ); dots[3] --> this; dots[3].pos( @(d/2, (d + pad) / 2, 0) ); dots[4] --> this; dots[4].pos( @(-d/2, -(d + pad) * 1.5, 0) ); dots[5] --> this; dots[5].pos( @(d/2, -(d + pad) * 1.5, 0) ); } else if( digit == 7 ) { 1 => float d; 0.1 => float pad; dots[0] --> this; dots[0].pos( @(-d/2, (d + pad) * 1.5, 0) ); dots[1] --> this; dots[1].pos( @(d/2, (d + pad) * 1.5, 0) ); dots[2] --> this; dots[2].pos( @(-d/2, (d + pad) / 2, 0) ); dots[3] --> this; dots[3].pos( @(d/2, (d + pad) / 2, 0) ); dots[4] --> this; dots[4].pos( @(-d, -(d + pad) * 1.5, 0) ); dots[5] --> this; dots[5].pos( @(d, -(d + pad) / 2, 0) ); dots[6] --> this; dots[6].pos( @(0, -d, 0) ); dots[6].mat().color(special); } else if( digit == 8 ) { 1 => float d; 0.1 => float pad; dots[0] --> this; dots[0].pos( @(-d/2, (d + pad) * 1.5, 0) ); dots[1] --> this; dots[1].pos( @(d/2, (d + pad) * 1.5, 0) ); dots[2] --> this; dots[2].pos( @(-d/2, (d + pad) / 2, 0) ); dots[3] --> this; dots[3].pos( @(d/2, (d + pad) / 2, 0) ); dots[4] --> this; dots[4].pos( @(-d/2, -(d + pad) / 2, 0) ); dots[5] --> this; dots[5].pos( @(d/2, -(d + pad) / 2, 0) ); dots[6] --> this; dots[6].pos( @(-d/2, -(d + pad) * 1.5, 0) ); dots[7] --> this; dots[7].pos( @(d/2, -(d + pad) * 1.5, 0) ); } else if( digit == 9 ) { 1.2 => float d; dots[0] --> this; dots[0].pos( @(-d, d, 0) ); dots[1] --> this; dots[1].pos( @(0, d, 0) ); dots[2] --> this; dots[2].pos( @(d, d, 0) ); dots[3] --> this; dots[3].pos( @(-d, 0, 0) ); dots[4] --> this; dots[4].pos( @(0, 0, 0) ); dots[4].mat().color(special); dots[5] --> this; dots[5].pos( @(d, 0, 0) ); dots[6] --> this; dots[6].pos( @(-d, -d, 0) ); dots[7] --> this; dots[7].pos( @(0, -d, 0) ); dots[8] --> this; dots[8].pos( @(d, -d, 0) ); } else if( digit == 10 ) { p1 --> this; p2 --> this; p1.sca(@(2, 0.5, 0)); p2.sca(@(2, 0.5, 0)); p1.pos(@(0, 0.5, 0)); p2.pos(@(0, -0.5, 0)); } else if( digit == 11 ) { p1 --> this; p2 --> this; p1.sca(@(2, 0.5, 0)); p2.sca(@(0.5, 2, 0)); // p1.pos(@(-1, 0, 0)) // p2.pos(@(-1, 0, 0)) } else if( digit == 12 ) { p1 --> this; // p2 --> this; p1.sca(@(2, .5, 0)); // p2.sca(@(2, 1, 0)) } else if( digit == 13 ) { p1 --> this; p2 --> this; p3 --> this; p1.sca(@(2, .5, 0)); p2.sca(@(2, .5, 0)); p3.sca(@(.5, 1, 0)); p1.pos(@(0, 0.5, 0)); p2.pos(@(0, -0.5, 0)); p3.pos(@(-1, 0, 0)); } else if( digit == 14 ) { } } }