@@ -46,48 +46,48 @@ def draw
4646# This function draws a trefoil knot surface as a triangle mesh derived
4747# from its parametric equation.
4848def create_trefoil ( s , ny , nx , tex )
49- obj = create_shape
50- obj . begin_shape ( TRIANGLES )
51- obj . texture ( tex )
52- renderer = ShapeRender . new ( obj )
53- ( 0 ...nx ) . each do |j |
54- u0 = j . to_f / nx
55- u1 = ( j + 1 ) . to_f / nx
56- ( 0 ...ny ) . each do |i |
57- v0 = i . to_f / ny
58- v1 = ( i + 1 ) . to_f / ny
49+ create_shape . tap do | obj |
50+ obj . begin_shape ( TRIANGLES )
51+ obj . texture ( tex )
52+ renderer = ShapeRender . new ( obj )
53+ ( 0 ...nx ) . each do |j |
54+ u0 = j . to_f / nx
55+ u1 = ( j + 1 ) . to_f / nx
56+ ( 0 ...ny ) . each do |i |
57+ v0 = i . to_f / ny
58+ v1 = ( i + 1 ) . to_f / ny
5959
60- p0 = eval_point ( u0 , v0 )
61- n0 = eval_normal ( u0 , v0 )
60+ p0 = eval_point ( u0 , v0 )
61+ n0 = eval_normal ( u0 , v0 )
6262
63- p1 = eval_point ( u0 , v1 )
64- n1 = eval_normal ( u0 , v1 )
63+ p1 = eval_point ( u0 , v1 )
64+ n1 = eval_normal ( u0 , v1 )
6565
66- p2 = eval_point ( u1 , v1 )
67- n2 = eval_normal ( u1 , v1 )
66+ p2 = eval_point ( u1 , v1 )
67+ n2 = eval_normal ( u1 , v1 )
6868
69- # Triangle p0-p1-p2
70- n0 . to_normal ( renderer )
71- ( p0 * s ) . to_vertex_uv ( renderer , u0 , v0 )
72- n1 . to_normal ( renderer )
73- ( p1 * s ) . to_vertex_uv ( renderer , u0 , v1 )
74- n2 . to_normal ( renderer )
75- ( p2 * s ) . to_vertex_uv ( renderer , u1 , v1 )
69+ # Triangle p0-p1-p2
70+ n0 . to_normal ( renderer )
71+ ( p0 * s ) . to_vertex_uv ( renderer , u0 , v0 )
72+ n1 . to_normal ( renderer )
73+ ( p1 * s ) . to_vertex_uv ( renderer , u0 , v1 )
74+ n2 . to_normal ( renderer )
75+ ( p2 * s ) . to_vertex_uv ( renderer , u1 , v1 )
7676
77- p1 = eval_point ( u1 , v0 )
78- n1 = eval_normal ( u1 , v0 )
77+ p1 = eval_point ( u1 , v0 )
78+ n1 = eval_normal ( u1 , v0 )
7979
80- # Triangle p0-p2-p1
81- n0 . to_normal ( renderer )
82- ( p0 * s ) . to_vertex_uv ( renderer , u0 , v0 )
83- n2 . to_normal ( renderer )
84- ( p2 * s ) . to_vertex_uv ( renderer , u1 , v1 )
85- n1 . to_normal ( renderer )
86- ( p1 * s ) . to_vertex_uv ( renderer , u1 , v0 )
80+ # Triangle p0-p2-p1
81+ n0 . to_normal ( renderer )
82+ ( p0 * s ) . to_vertex_uv ( renderer , u0 , v0 )
83+ n2 . to_normal ( renderer )
84+ ( p2 * s ) . to_vertex_uv ( renderer , u1 , v1 )
85+ n1 . to_normal ( renderer )
86+ ( p1 * s ) . to_vertex_uv ( renderer , u1 , v0 )
87+ end
8788 end
89+ obj . end_shape
8890 end
89- obj . end_shape
90- obj
9191end
9292
9393# Evaluates the surface normal corresponding to normalized
0 commit comments