[e1a46d] | 1 | #!@PYTHON@
|
---|
| 2 | #
|
---|
| 3 | # Creates a series of stereo header (left and right) files to be included in a raster3d with a rotational coordinate transformation
|
---|
| 4 |
|
---|
| 5 | import sys, random, math, re
|
---|
| 6 | wrerr=sys.stderr.write
|
---|
| 7 | wrout=sys.stdout.write
|
---|
| 8 |
|
---|
| 9 | # check arguments
|
---|
| 10 | if len(sys.argv) < 2:
|
---|
| 11 | print "Usage: "+sys.argv[0]+" <prefix> [AtomCount]"
|
---|
| 12 | sys.exit(1)
|
---|
| 13 |
|
---|
| 14 | # get atomcount
|
---|
| 15 | if len(sys.argv) < 2:
|
---|
| 16 | Atoms=10
|
---|
| 17 | else:
|
---|
| 18 | Atoms=int(sys.argv[2])
|
---|
| 19 |
|
---|
| 20 | # deduce r-factor
|
---|
| 21 | factor=15.0 + (40.0-15.0)/2000*Atoms
|
---|
| 22 |
|
---|
| 23 | for i in range(36):
|
---|
| 24 | for type in range(2):
|
---|
| 25 | c = math.cos(2.*math.pi/36.*i);
|
---|
| 26 | s = math.sin(2.*math.pi/36.*i);
|
---|
| 27 | if type == 0: # left
|
---|
| 28 | output = open("%s-%03d-l.r3d" % (sys.argv[1],i), "w")
|
---|
| 29 | else:
|
---|
| 30 | output = open("%s-%03d-r.r3d" % (sys.argv[1],i), "w")
|
---|
| 31 | output.write("Example of material properties and file indirection\n");
|
---|
| 32 | output.write("80 64 tiles in x,y\n");
|
---|
| 33 | output.write(" 8 8 pixels (x,y) per tile\n");
|
---|
| 34 | output.write("4 3x3 virtual pixels -> 2x2 pixels\n");
|
---|
| 35 | output.write("0 0 0 background colour\n");
|
---|
| 36 | output.write("T cast shadows\n");
|
---|
| 37 | output.write("25 Phong power\n");
|
---|
| 38 | output.write("0.15 secondary light contribution\n");
|
---|
| 39 | output.write("0.05 ambient light contribution\n");
|
---|
| 40 | output.write("0.25 specular reflection component\n");
|
---|
| 41 | output.write("0.0 eye position\n");
|
---|
| 42 | output.write("1 1 1 main light source position\n");
|
---|
| 43 | output.write("%lg %lg 0 0 input coordinate, radius transformation\n" % (c, s));
|
---|
| 44 | output.write("%lg %lg 0 0\n" % (-s, c));
|
---|
| 45 | if type == 0: #left
|
---|
| 46 | output.write("0.03 0 1 0\n");
|
---|
| 47 | else: # right
|
---|
| 48 | output.write("-0.03 0 1 0\n");
|
---|
| 49 | output.write("0 0 0 %5.2f\n" % (factor));
|
---|
| 50 | output.write("3 mixed objects\n");
|
---|
| 51 | output.write("*\n");
|
---|
| 52 | output.write("*\n");
|
---|
| 53 | output.write("*\n");
|
---|
| 54 | output.close()
|
---|
| 55 |
|
---|
| 56 | for i in range(36):
|
---|
| 57 | for type in range(2):
|
---|
| 58 | c = math.cos(2.*math.pi/36.*i);
|
---|
| 59 | s = math.sin(2.*math.pi/36.*i);
|
---|
| 60 | if type == 0: # left
|
---|
| 61 | output = open("%s-%03d-l.r3d" % (sys.argv[1],i+36), "w")
|
---|
| 62 | else:
|
---|
| 63 | output = open("%s-%03d-r.r3d" % (sys.argv[1],i+36), "w")
|
---|
| 64 | output.write("Example of material properties and file indirection\n");
|
---|
| 65 | output.write("80 64 tiles in x,y\n");
|
---|
| 66 | output.write(" 8 8 pixels (x,y) per tile\n");
|
---|
| 67 | output.write("4 3x3 virtual pixels -> 2x2 pixels\n");
|
---|
| 68 | output.write("0 0 0 background colour\n");
|
---|
| 69 | output.write("T cast shadows\n");
|
---|
| 70 | output.write("25 Phong power\n");
|
---|
| 71 | output.write("0.15 secondary light contribution\n");
|
---|
| 72 | output.write("0.05 ambient light contribution\n");
|
---|
| 73 | output.write("0.25 specular reflection component\n");
|
---|
| 74 | output.write("0.0 eye position\n");
|
---|
| 75 | output.write("1 1 1 main light source position\n");
|
---|
| 76 | output.write("%lg 0 %lg 0 input coordinate, radius transformation\n" % (c, s));
|
---|
| 77 | output.write("0 1 0 0\n");
|
---|
| 78 | if type == 0: #left
|
---|
| 79 | output.write("%lg 0 %lg 0\n" % (-s+0.03, c));
|
---|
| 80 | else: # right
|
---|
| 81 | output.write("%lg 0 %lg 0\n" % (-s-0.03, c));
|
---|
| 82 | output.write("0 0 0 %5.2f\n" % (factor));
|
---|
| 83 | output.write("3 mixed objects\n");
|
---|
| 84 | output.write("*\n");
|
---|
| 85 | output.write("*\n");
|
---|
| 86 | output.write("*\n");
|
---|
| 87 | output.close()
|
---|
| 88 |
|
---|
| 89 | for i in range(36):
|
---|
| 90 | for type in range(2):
|
---|
| 91 | c = math.cos(2.*math.pi/36.*i);
|
---|
| 92 | s = math.sin(2.*math.pi/36.*i);
|
---|
| 93 | if type == 0: # left
|
---|
| 94 | output = open("%s-%03d-l.r3d" % (sys.argv[1],i+72), "w")
|
---|
| 95 | else:
|
---|
| 96 | output = open("%s-%03d-r.r3d" % (sys.argv[1],i+72), "w")
|
---|
| 97 | output.write("Example of material properties and file indirection\n");
|
---|
| 98 | output.write("80 64 tiles in x,y\n");
|
---|
| 99 | output.write(" 8 8 pixels (x,y) per tile\n");
|
---|
| 100 | output.write("4 3x3 virtual pixels -> 2x2 pixels\n");
|
---|
| 101 | output.write("0 0 0 background colour\n");
|
---|
| 102 | output.write("T cast shadows\n");
|
---|
| 103 | output.write("25 Phong power\n");
|
---|
| 104 | output.write("0.15 secondary light contribution\n");
|
---|
| 105 | output.write("0.05 ambient light contribution\n");
|
---|
| 106 | output.write("0.25 specular reflection component\n");
|
---|
| 107 | output.write("0.0 eye position\n");
|
---|
| 108 | output.write("1 1 1 main light source position\n");
|
---|
| 109 | output.write("1 0 0 0 input coordinate, radius transformation\n");
|
---|
| 110 | output.write("0 %lg %lg 0\n" % (c, s));
|
---|
| 111 | if type == 0: #left
|
---|
| 112 | output.write("0.03 %lg %lg 0\n" % (-s, c));
|
---|
| 113 | else: # right
|
---|
| 114 | output.write("-0.03 %lg %lg 0\n" % (-s, c));
|
---|
| 115 | output.write("0 0 0 %5.2f\n" % (factor));
|
---|
| 116 | output.write("3 mixed objects\n");
|
---|
| 117 | output.write("*\n");
|
---|
| 118 | output.write("*\n");
|
---|
| 119 | output.write("*\n");
|
---|
| 120 | output.close()
|
---|
| 121 |
|
---|