public class Printing extends GGen { GCircle dots[10]; // FlatMaterial mat; @(0.5, 0.2, 0) => vec3 red; GPlane p1, p2; p1.mat().color(red); p2.mat().color(red); for(int i; i < 10; i++) { // dots[i].mat(mat); dots[i].mat().color( @(0.2, 0.2, 0.2) ); dots[i].sca(0.5); } fun void init(int digit, GGen @ parent) { this --> parent; this.sca(0.2); if ( (digit < 0) || (digit > 12)) { <<<"Invalid Digit">>>; } else if ( digit == 0) { } else if( digit == 1 ) { dots[0] --> this; dots[0].mat().color(red); } else if( digit == 2 ) { dots[0] --> this; dots[0].pos( @(0, 1, 0) ); dots[1] --> this; dots[1].mat().color(red); 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(red); 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(red); } else if( digit == 6 ) { 0.6 => float d; dots[0] --> this; dots[0].pos( @(-d, d * 2, 0) ); dots[1] --> this; dots[1].pos( @(d, d * 2, 0) ); dots[2] --> this; dots[2].pos( @(-d, d / 2, 0) ); dots[3] --> this; dots[3].pos( @(d, d / 2, 0) ); dots[4] --> this; dots[4].pos( @(-d, -d * 2, 0) ); dots[5] --> this; dots[5].pos( @(d, -d * 2, 0) ); } else if( digit == 7 ) { 0.6 => float d; dots[0] --> this; dots[0].pos( @(-d, d * 2, 0) ); dots[1] --> this; dots[1].pos( @(d, d * 2, 0) ); dots[2] --> this; dots[2].pos( @(-d, d / 2, 0) ); dots[3] --> this; dots[3].pos( @(d, d / 2, 0) ); dots[4] --> this; dots[4].pos( @(-d, -d * 2, 0) ); dots[5] --> this; dots[5].pos( @(d, -d * 2, 0) ); dots[6] --> this; dots[6].pos( @(0, -d, 0) ); dots[6].mat().color(red); } else if( digit == 8 ) { 0.6 => float d; dots[0] --> this; dots[0].pos( @(-d, d * 2, 0) ); dots[1] --> this; dots[1].pos( @(d, d * 2, 0) ); dots[2] --> this; dots[2].pos( @(-d, d / 2, 0) ); dots[3] --> this; dots[3].pos( @(d, d / 2, 0) ); dots[4] --> this; dots[4].pos( @(-d, -d / 2, 0) ); dots[5] --> this; dots[5].pos( @(d, -d / 2, 0) ); dots[6] --> this; dots[6].pos( @(-d, -d * 2, 0) ); dots[7] --> this; dots[7].pos( @(d, -d * 2, 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(red); 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)) } } }