gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] libvob/vob demo/multifil/fillet3d.py demo/multi...


From: Janne V. Kujala
Subject: [Gzz-commits] libvob/vob demo/multifil/fillet3d.py demo/multi...
Date: Thu, 26 Jun 2003 09:14:11 -0400

CVSROOT:        /cvsroot/libvob
Module name:    libvob
Branch:         
Changes by:     Janne V. Kujala <address@hidden>        03/06/26 09:14:11

Modified files:
        vob/demo/multifil: fillet3d.py randgraph.py 
Added files:
        vob/fillet     : __init__.py light3d.py 

Log message:
        perspective

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/demo/multifil/fillet3d.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/demo/multifil/randgraph.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/fillet/__init__.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/fillet/light3d.py?rev=1.1

Patches:
Index: libvob/vob/demo/multifil/fillet3d.py
diff -u libvob/vob/demo/multifil/fillet3d.py:1.2 
libvob/vob/demo/multifil/fillet3d.py:1.3
--- libvob/vob/demo/multifil/fillet3d.py:1.2    Thu Jun 26 06:56:58 2003
+++ libvob/vob/demo/multifil/fillet3d.py        Thu Jun 26 09:14:10 2003
@@ -29,27 +29,7 @@
 from vob.putil.demokeys import *
 from vob.paper.texcache import getCachedTexture
 
-vp = [
-GL.createProgram(cg.compile("""
-void main(
-    float4 pos: POSITION,
-    float3 norm: NORMAL,
-    out float4 opos: POSITION,
-    out float4 col: COLOR
-) {
-    opos = mul(glstate.matrix.mvp, pos);
-    float4x4 foo = glstate.matrix.modelview[0];
-    float3 t = normalize(float3(
-                  dot(foo[0].xyz, norm),
-                  dot(foo[1].xyz, norm),
-                  dot(foo[2].xyz, norm)));
-    col.rgb = 0.5 * t + 0.5;
-    col.a = 1;
-}
-
-""", "arbvp1")),
-]
-
+from vob.fillet import light3d;
 
 class Scene:
     "3D filleting"
@@ -70,7 +50,7 @@
            SlideLin("dice", 20, 1, "Dice factor", "P", "p"),
        )
     def scene(self, vs):
-       vs.put( background((.5,1,.2)))
+       vs.put( background((.5,.25,0)))
        vs.put(getDListNocoords("""
            PushAttrib POLYGON_BIT ENABLE_BIT
            Enable DEPTH_TEST
@@ -110,6 +90,8 @@
 
            vs.put(conns, [thick, angle, b,  e]);
            vs.put(conns, [thick, angle, e,  b]);
+           vs.put(conns, [thick, angle, c,  e]);
+           vs.put(conns, [thick, angle, e,  c]);
 
 #          vs.put(GLRen.createDebugSwitch("Fillets", 1));
 #          vs.put(GLRen.createDebugSwitch("VFillets", 1));
@@ -125,10 +107,11 @@
            Color 1 1 1
             BindProgram VERTEX_PROGRAM_ARB %s
             Enable VERTEX_PROGRAM_ARB
-       """ % vp[0].getProgId()))
+       """ % light3d.vp[0].getProgId()))
         pc(conns)
 
        vs.put(getDListNocoords("""
+            BindProgram VERTEX_PROGRAM_ARB 0
            PopAttrib
        """))
 
Index: libvob/vob/demo/multifil/randgraph.py
diff -u libvob/vob/demo/multifil/randgraph.py:1.16 
libvob/vob/demo/multifil/randgraph.py:1.17
--- libvob/vob/demo/multifil/randgraph.py:1.16  Wed Jun 25 10:26:46 2003
+++ libvob/vob/demo/multifil/randgraph.py       Thu Jun 26 09:14:10 2003
@@ -29,6 +29,8 @@
 from vob.putil.demokeys import *
 from vob.paper.texcache import getCachedTexture
 
+from vob.fillet import light3d;
+
 from random import Random
 
 class Scene:
@@ -54,17 +56,20 @@
            SlideLin("seed", 42, 1, "seed number", "A", "a"),
            SlideLin("size", 50, 5, "Node size", "K", "k"),
            SlideLin("dice", 20, 1, "Dice factor", "P", "p"),
+           Toggle("fillet3d", 0, "3D fillets", "3"),
+           SlideLin("linewidth", 2, 1, "line width", "B", "b"),
+           Toggle("perspective", 0, "perspective", "F"),
        )
     def scene(self, vs):
        vs.put( background((.5,1,.2)))
        vs.put(getDListNocoords("""
-           PushAttrib POLYGON_BIT
+           PushAttrib POLYGON_BIT ENABLE_BIT
            Enable DEPTH_TEST
            DepthFunc LEQUAL
-           LineWidth 2
+           LineWidth %s
            PolygonOffset -100 -100
            ShadeModel SMOOTH
-       """))
+       """ % self.linewidth))
 
        if self.lines:
            vs.put(getDListNocoords("PolygonMode FRONT_AND_BACK LINE"))
@@ -88,6 +93,9 @@
                                     64 * self.stretched +
                                     128 * self.sectors), 2)
 
+       conns3d = GLRen.createFillet3D(border, self.dice, 0);
+
+
         rng = Random(self.seed)
         N2 = 2*self.N/3
 
@@ -138,18 +146,53 @@
                 if node["conns"]:
                     vs.put(conns, [thick, angle, node["cs"]] + node["conns"])
 
+        if self.fillet3d:
+            vs.put(getDListNocoords("""
+           Color 1 1 1
+            BindProgram VERTEX_PROGRAM_ARB %s
+            Enable VERTEX_PROGRAM_ARB
+            MatrixMode PROJECTION
+            PushMatrix
+            MatrixMode MODELVIEW
+            PushMatrix
+            """ % light3d.vp[0].getProgId()))
+
+            if self.perspective:
+                vs.put(getDListNocoords("""
+                MatrixMode PROJECTION
+                LoadIdentity
+                Frustum -400 400 -400 400 500 2500
+                Scale 1 1 -1
+                MatrixMode MODELVIEW
+                LoadIdentity
+                Scale 1 1 -1
+                uLookAt 400 400 -1000 400 400 400 0 -1 0
+                """))
 
+            for node in nodes:
+                if node["conns"]:
+                    for other in node["conns"]:
+                        vs.put(conns3d, [thick, angle, node["cs"], other])
 
-       vs.put(getDListNocoords("""
+
+            vs.put(getDListNocoords("""
+            MatrixMode PROJECTION
+            PopMatrix
+            MatrixMode MODELVIEW
+            PopMatrix
+            """))
+        else:
+            vs.put(getDListNocoords("""
            Color 1 1 1
-       """))
-       if self.drawInside: pc(conns)
-       vs.put(getDListNocoords("""
+            """))
+            if self.drawInside: pc(conns)
+            vs.put(getDListNocoords("""
            Color 0 0 0
-       """))
-       if self.drawEdge: pc(conns_l)
-
+            """))
+            if self.drawEdge: pc(conns_l)
+            
        vs.put(getDListNocoords("""
+            BindProgram VERTEX_PROGRAM_ARB 0
            PopAttrib
        """))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]