38 |
self, |
self, |
39 |
SlideLin("x", 200, 20, "x", "Left", "Right"), |
SlideLin("x", 200, 20, "x", "Left", "Right"), |
40 |
SlideLin("y", 300, 20, "y", "Up", "Down"), |
SlideLin("y", 300, 20, "y", "Up", "Down"), |
41 |
|
SlideLin("angle", math.pi/4, .05, "meet angle", "+", "-"), |
42 |
|
SlideLin("thick", .1, .01, "thickness", "T", "t"), |
43 |
Toggle("drawEdge", 1, "Draw edge", "e"), |
Toggle("drawEdge", 1, "Draw edge", "e"), |
44 |
Toggle("drawInside", 1, "Draw inside", "i"), |
Toggle("drawInside", 1, "Draw inside", "i"), |
45 |
Toggle("depthColor", 0, "Color from depth", "d"), |
Toggle("depthColor", 0, "Color from depth", "d"), |
46 |
Toggle("lines", 0, "Toggle showing lines", "l"), |
Toggle("lines", 0, "Toggle showing lines", "l"), |
47 |
SlideLin("N", 21, 3, "N", "-", "+"), |
Toggle("ellipses", 1, "Toggle ellipses", "s"), |
48 |
|
Toggle("stretched", 1, "Toggle stretched", "v"), |
49 |
|
Toggle("curvature", 1, "Show curvature", "c"), |
50 |
|
SlideLin("N", 21, 3, "N", "N", "n"), |
51 |
SlideLin("ang", 21, 3, "Rotation angle", "Prior", "Next"), |
SlideLin("ang", 21, 3, "Rotation angle", "Prior", "Next"), |
52 |
Toggle("fillets", 1, "Toggle filleting", "f"), |
Toggle("fillets", 1, "Toggle filleting", "f"), |
53 |
SlideLin("seed", 42, 1, "seed number", "S", "s"), |
SlideLin("seed", 42, 1, "seed number", "A", "a"), |
54 |
|
SlideLin("size", 50, 5, "Node size", "K", "k"), |
55 |
|
SlideLin("dice", 20, 1, "Dice factor", "P", "p"), |
56 |
) |
) |
57 |
def scene(self, vs): |
def scene(self, vs): |
58 |
vs.put( background((.5,1,.2))) |
vs.put( background((.5,1,.2))) |
68 |
if self.lines: |
if self.lines: |
69 |
vs.put(getDListNocoords("PolygonMode FRONT_AND_BACK LINE")) |
vs.put(getDListNocoords("PolygonMode FRONT_AND_BACK LINE")) |
70 |
|
|
71 |
dice = 200 |
border = 2 |
72 |
conns = GLRen.createSortedConnections( |
conns = GLRen.createSortedConnections( |
73 |
GLRen.createFilletSpan1(dice, 1 + 4*self.depthColor + 8*(1-self.fillets))) |
GLRen.createFilletSpan2(border, self.dice, |
74 |
|
1 + |
75 |
|
4 * self.depthColor + |
76 |
|
8 * (1-self.fillets) + |
77 |
|
16 * self.ellipses + |
78 |
|
64 * self.stretched), 2) |
79 |
|
|
80 |
conns_l = GLRen.createSortedConnections( |
conns_l = GLRen.createSortedConnections( |
81 |
GLRen.createFilletSpan1(dice, 2 + 4*self.depthColor + 8*(1-self.fillets))) |
GLRen.createFilletSpan2(border, self.dice, |
82 |
|
2 + |
83 |
size = 10 |
4 * self.depthColor + |
84 |
|
8 * (1-self.fillets) + |
85 |
|
16 * self.ellipses + |
86 |
|
64 * self.stretched), 2) |
87 |
|
|
88 |
rng = Random(self.seed) |
rng = Random(self.seed) |
89 |
N2 = 2*self.N/3 |
N2 = 2*self.N/3 |
94 |
|
|
95 |
cs = vs.scaleCS(0, "cs", 1, 1, .15) |
cs = vs.scaleCS(0, "cs", 1, 1, .15) |
96 |
|
|
97 |
|
thick = vs.coords.rational1D22(0, self.thick, 0, 0, 0, 1, 0); |
98 |
|
angle = vs.coords.rational1D22(0, self.angle, 0, 0, 1, 0, 0); |
99 |
|
vs.matcher.add(thick, "Thi") |
100 |
|
vs.matcher.add(angle, "Ang") |
101 |
|
|
102 |
|
|
103 |
nodes = [ { |
nodes = [ { |
104 |
"cs" : vs.orthoBoxCS(cs, "node%s" % i, |
"cs" : vs.orthoBoxCS(cs, "node%s" % i, |
105 |
rng.random() * box, |
rng.random() * box, |
106 |
rng.random() * box, |
rng.random() * box, |
107 |
rng.random() * box, 1, 1, size, size), |
rng.random() * box, 1, 1, self.size, self.size), |
108 |
"conns" : [ ], |
"conns" : [ ], |
109 |
} for i in range(0,self.N) ] |
} for i in range(0,self.N) ] |
110 |
|
|
123 |
def pc(conns): |
def pc(conns): |
124 |
for node in nodes: |
for node in nodes: |
125 |
if node["conns"]: |
if node["conns"]: |
126 |
vs.put(conns, [node["cs"]] + node["conns"]) |
vs.put(conns, [thick, angle, node["cs"]] + node["conns"]) |
127 |
|
|
128 |
|
|
129 |
|
|