Skip to content

Commit db1589e

Browse files
committed
more create_shape tap
1 parent acf4663 commit db1589e

File tree

5 files changed

+95
-98
lines changed

5 files changed

+95
-98
lines changed

processing_app/demos/graphics/bezier_patch.rb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,20 @@ def draw
3838

3939
def build_shape
4040
no_stroke
41-
bez = create_shape
42-
bez.begin_shape(QUAD_STRIP)
43-
bez.fill(192, 192, 192)
44-
bez.ambient(20, 20, 20)
45-
bez.specular(30)
46-
(0...RESI - 1).each do |i|
47-
(0...RESJ).each do |j|
48-
bez.normal(*normp[i][j]) unless auto_normals
49-
bez.vertex(*outp[i][j])
50-
bez.vertex(*outp[i+1][j])
41+
create_shape.tap do |bez|
42+
bez.begin_shape(QUAD_STRIP)
43+
bez.fill(192, 192, 192)
44+
bez.ambient(20, 20, 20)
45+
bez.specular(30)
46+
(0...RESI - 1).each do |i|
47+
(0...RESJ).each do |j|
48+
bez.normal(*normp[i][j]) unless auto_normals
49+
bez.vertex(*outp[i][j])
50+
bez.vertex(*outp[i+1][j])
51+
end
5152
end
53+
bez.end_shape
5254
end
53-
bez.end_shape
54-
bez
5555
end
5656

5757
##########

processing_app/demos/graphics/trefoil.rb

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -46,48 +46,48 @@ def draw
4646
# This function draws a trefoil knot surface as a triangle mesh derived
4747
# from its parametric equation.
4848
def 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
9191
end
9292

9393
# Evaluates the surface normal corresponding to normalized

processing_app/library/vecmath/vec2d/wiggle_pshape.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def initialize
2727

2828
# The "original" locations of the vertices make up a circle
2929
@original = (0...16).map{ |angle| Vec2D.from_angle(PI * angle / 8) * 100 }
30-
3130
# Now make the PShape with those vertices
3231
@wiggler = create_shape
3332
renderer = Sketch::ShapeRender.new(wiggler) # Prefix with Sketch classname

processing_app/topics/create_shapes/begin_end_contour.rb

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,45 @@
44
# How to cut a shape out of another using begin_contour and end_contour
55
#
66

7-
attr_reader :s
7+
attr_reader :contour
88

99
def setup
1010
sketch_title 'Begin End Contour'
1111
# Make a shape
12-
@s = create_shape
13-
s.begin_shape
14-
s.fill(0)
15-
s.stroke(255)
16-
s.stroke_weight(2)
17-
# Exterior part of shape
18-
s.vertex(-100,-100)
19-
s.vertex(100,-100)
20-
s.vertex(100,100)
21-
s.vertex(-100,100)
22-
23-
# Interior part of shape
24-
s.begin_contour
25-
s.vertex(-10,-10)
26-
s.vertex(10,-10)
27-
s.vertex(10,10)
28-
s.vertex(-10,10)
29-
s.end_contour
30-
31-
# Finishing off shape
32-
s.end_shape(CLOSE)
12+
@contour = make_contour
3313
end
3414

3515
def draw
3616
background(52)
3717
# Display shape
38-
translate(width/2, height/2)
18+
translate(width / 2, height / 2)
3919
# Shapes can be rotated
40-
s.rotate(0.01)
41-
shape(s)
20+
contour.rotate(0.01)
21+
shape(contour)
4222
end
4323

24+
def make_contour
25+
create_shape.tap do |shp|
26+
shp.begin_shape
27+
shp.fill(0)
28+
shp.stroke(255)
29+
shp.stroke_weight(2)
30+
# Exterior part of shape
31+
shp.vertex(-100, -100)
32+
shp.vertex(100, -100)
33+
shp.vertex(100, 100)
34+
shp.vertex(-100, 100)
35+
# Interior part of shape
36+
shp.begin_contour
37+
shp.vertex(-20, -20)
38+
shp.vertex(-20, 20)
39+
shp.vertex(20, 20)
40+
shp.vertex(20, -20)
41+
shp.end_contour
42+
# Finishing off shape
43+
shp.end_shape(CLOSE)
44+
end
45+
end
4446

4547
def settings
4648
size(640, 360, P2D)

processing_app/topics/shaders/bw_shader.rb

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,38 @@
55

66
def setup
77
sketch_title 'Bw shader'
8-
# @label = load_image('lachoy.jpg') # sketch needs --noruby flag to run
9-
# @label = load_image((File.absolute_path('data/lachoy.jpg')) # no flag required
10-
@label = load_image(data_path('lachoy.jpg')) # no flag required
8+
@label = load_image(data_path('lachoy.jpg'))
119
@can = create_can(100, 200, 32, label)
12-
# @bw_shader = load_shader('bwfrag.glsl') # sketch needs --noruby flag to run
13-
# @bw_shader = load_shader(File.absolute_path('data/bwfrag.glsl')) # no flag required
14-
@bw_shader = load_shader(data_path('bwfrag.glsl')) # no flag required since jruby_art-1.1
10+
@bw_shader = load_shader(data_path('bwfrag.glsl'))
1511
@angle = 0
1612
end
1713

18-
def draw
19-
background(0)
20-
shader(bw_shader)
21-
translate(width/2, height/2)
22-
rotate_y(angle)
23-
shape(can)
14+
def draw
15+
background(0)
16+
shader(bw_shader)
17+
translate(width / 2, height / 2)
18+
rotate_y(angle)
19+
shape(can)
2420
@angle += 0.01
2521
end
2622

2723
def create_can(r, h, detail, tex)
2824
texture_mode(NORMAL)
29-
sh = create_shape
30-
sh.begin_shape(QUAD_STRIP)
31-
sh.no_stroke
32-
sh.texture(tex)
33-
(0..detail).each do |i|
34-
angle = TAU / detail
35-
x = sin(i * angle)
36-
z = cos(i * angle)
37-
u = i.to_f / detail
38-
sh.normal(x, 0, z)
39-
sh.vertex(x * r, -h/2, z * r, u, 0)
40-
sh.vertex(x * r, +h/2, z * r, u, 1)
25+
create_shape.tap do |sh|
26+
sh.begin_shape(QUAD_STRIP)
27+
sh.no_stroke
28+
sh.texture(tex)
29+
(0..detail).each do |i|
30+
angle = TAU / detail
31+
x = sin(i * angle)
32+
z = cos(i * angle)
33+
u = i.to_f / detail
34+
sh.normal(x, 0, z)
35+
sh.vertex(x * r, -h / 2, z * r, u, 0)
36+
sh.vertex(x * r, +h / 2, z * r, u, 1)
37+
end
38+
sh.end_shape
4139
end
42-
sh.end_shape
43-
return sh
4440
end
4541

4642
def settings

0 commit comments

Comments
 (0)