[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab...
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab... |
Date: |
Wed, 13 Nov 2002 11:28:44 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/11/13 11:28:44
Modified files:
gfx/demo : irregu4.py
gfx/librenderables: renderables.py
Log message:
Add some IrregularEdge shapes; use F1-F8 in irregu4 to change
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/irregu4.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/librenderables/renderables.py.diff?tr1=1.142&tr2=1.143&r1=text&r2=text
Patches:
Index: gzz/gfx/demo/irregu4.py
diff -u gzz/gfx/demo/irregu4.py:1.8 gzz/gfx/demo/irregu4.py:1.9
--- gzz/gfx/demo/irregu4.py:1.8 Wed Nov 13 09:10:09 2002
+++ gzz/gfx/demo/irregu4.py Wed Nov 13 11:28:44 2002
@@ -36,6 +36,7 @@
self.xs = 1
self.ys = 1
self.scale = 1
+ self.shape = 0
self.texslicing = 0
self.flags = 255
@@ -218,6 +219,7 @@
outer_code = code % {"tex" : texRGBA.getTexId(),
"color" : "0 0 0 0" }
+ shape = self.shape
texscale = 1.0
linewidth = 2
refsize = 128
@@ -237,7 +239,7 @@
AlphaFunc GEQUAL 1.0
""" % texINTENSITY.getTexId()
- self.outer = GLRen.createIrregularEdge(
+ self.outer = GLRen.createIrregularEdge(shape,
texscale, linewidth, refsize, scale_pow,
border0, border1, texslicing,
"0 0 0 1 0 0 0 0", "",
@@ -252,7 +254,7 @@
if (self.flags & 4) == 0:
stdcode += "Disable ALPHA_TEST\n"
- self.inner = GLRen.createIrregularEdge(
+ self.inner = GLRen.createIrregularEdge(shape,
texscale, linewidth, refsize, scale_pow,
border0, border1, texslicing,
("0 0 0 0 0 0 0 0", "1 1 1 1 0 0 0 0")[self.flags >> 1 & 1], "",
@@ -260,7 +262,7 @@
SLICE_1D + Y_COLOR + (self.flags >> 4 & 1) * INSIDE, stdcode, 1.0)
if GL.hasExtension("GL_NV_register_combiners") and 0:
- self.outer = GLRen.createIrregularEdge(
+ self.outer = GLRen.createIrregularEdge(shape,
texscale, linewidth, refsize, scale_pow,
border0, border1, texslicing,
"1 1 1 1 0 0 0 0", "", 3, 0,
@@ -273,7 +275,7 @@
1):
outer_code = code2 % {"tex" : texINTENSITY.getTexId(),
"color" : "0 0 0 0" }
- self.outer = GLRen.createIrregularEdge(
+ self.outer = GLRen.createIrregularEdge(shape,
texscale, linewidth, refsize, scale_pow,
border0, border1, texslicing,
"1 1 1 1 0 0 0 0", "", 0, 1,
@@ -353,6 +355,9 @@
elif k == "-": self.scale -= .1
elif "1" <= k <= "9":
self.flags ^= 1 << int(k) - 1
+ self.initcode()
+ elif "F1" <= k <= "F9":
+ self.shape = int(k[1:]) - 1
self.initcode()
Index: gzz/gfx/librenderables/renderables.py
diff -u gzz/gfx/librenderables/renderables.py:1.142
gzz/gfx/librenderables/renderables.py:1.143
--- gzz/gfx/librenderables/renderables.py:1.142 Tue Nov 12 04:53:49 2002
+++ gzz/gfx/librenderables/renderables.py Wed Nov 13 11:28:44 2002
@@ -1284,12 +1284,13 @@
{
"Type" : "2",
"Name": "IrregularEdge",
- "Data": """float texscale, linewidth, refsize, scale_pow;
+ "Data": """int shape;
+ float texscale, linewidth, refsize, scale_pow;
float border0, border1, texslicing;
vector<float> const0, const1; int angles, multi, flags;
CallGLCode setup;
float dicefactor;""",
- "Params" : """
+ "Params" : """int shape,
float texscale, float linewidth, float refsize, float scale_pow,
float border0, float border1, float texslicing,
UTF8String const0, UTF8String const1, int angles, int multi, int
flags,
@@ -1309,6 +1310,7 @@
}
""",
"ParamCode" : """
+ this->shape = shape;
this->texscale = texscale;
this->linewidth = linewidth;
this->refsize = refsize;
@@ -1330,13 +1332,36 @@
// XXX: TODO: use coords1.nonlinearity()
int n = (int)(36 * dicefactor);
std::vector<ZPt> vert(n+1);
- std::vector<ZVec> norm(n+1);
-
- for (int i = 0; i < n; i++) {
- float a = i * 2*M_PI / n;
- vert[i] = coords2.transform(ZPt(cos(a), sin(a), 0));
+
+ switch (shape) {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ n = 2 + shape;
+ default:
+ case 0:
+ for (int i = 0; i < n; i++) {
+ float a = i * 2*M_PI / n;
+ vert[i] = coords2.transform(ZPt(cos(a), sin(a), 0));
+ }
+ break;
+ case 7:
+ n = 4;
+ float t = 1/sqrt(2);
+ vert[0] = coords2.transform(ZPt(+t, -t, 0));
+ vert[1] = coords2.transform(ZPt(+t, +t, 0));
+ vert[2] = coords2.transform(ZPt(-t, +t, 0));
+ vert[3] = coords2.transform(ZPt(-t, -t, 0));
+ break;
}
+
vert[n] = vert[0];
+ vert.resize(n + 1);
+
+ std::vector<ZVec> norm(n + 1);
for (int i = 0; i <= n; i++) {
ZVec v1 = (vert[(i+1) % n] - vert[i % n]).cw90().normalize();
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab..., Janne V. Kujala, 2002/11/11
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab..., Janne V. Kujala, 2002/11/11
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab..., Janne V. Kujala, 2002/11/12
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab...,
Janne V. Kujala <=
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab..., Janne V. Kujala, 2002/11/21
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab..., Janne V. Kujala, 2002/11/30
- [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab..., Janne V. Kujala, 2002/11/30