Skip to content

Commit e8b86d1

Browse files
committed
Correct samples for simplified GfxRender & ShapeRender.
1 parent b31363d commit e8b86d1

File tree

22 files changed

+129
-31
lines changed

22 files changed

+129
-31
lines changed

contributed/elegant_ball.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
# Ben Notorianni aka lazydog
55
#
66
# elegant.rb
7-
java_import 'monkstone.vecmath.GfxRender'
87

98
class ElegantBall < Propane::App
109

@@ -38,7 +37,7 @@ def draw
3837
end
3938

4039
def renderer
41-
@renderer ||= GfxRender.new(self.g)
40+
@renderer ||= Propane::GfxRender.new(self.g)
4241
end
4342

4443
def setup_lights

contributed/recursive_pentagon.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class RecursivePentagons < Propane::App
66
def setup
77
sketch_title 'Recursive Pentagons'
88
@strut_factor = 0.2
9-
@renderer = GfxRender.new self.g # so we can send Vec2D :to_vertex
9+
@renderer = Propane::GfxRender.new self.g # so we can send Vec2D :to_vertex
1010
background 0
1111
end
1212

contributed/ribbon_doodle.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def mouse_moved
8686

8787
# An example of GfxRenderer usage for Vec3D => vertex conversion
8888
def renderer
89-
@renderer ||= Propane::Render::GfxRender.new(self.g)
89+
@renderer ||= Propane::GfxRender.new(self.g)
9090
end
9191
end
9292

contributed/terrain.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def mouse_pressed
6666
private
6767

6868
def renderer
69-
@renderer ||= GfxRender.new(self.g)
69+
@renderer ||= Propane::GfxRender.new(self.g)
7070
end
7171
end
7272

contributed/tree.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ class Tree < Propane::App
88
# http://processing.org/learning/topics/tree.html
99
# by Joe Holt
1010

11-
def setup
12-
size 200, 200
13-
end
11+
# def settings
12+
# size 200, 200
13+
# end
1414

1515
def setup
1616
sketch_title 'Tree'

external_library/java/pgs/letter.rb

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# frozen_string_literal: true
2+
3+
require_relative 'mink_shear'
4+
# The letter class needs PGS module for its java_imports
5+
class Letter
6+
include Propane::Proxy
7+
include MinkShear::PGS
8+
attr_reader :hue, :l, :xn, :yn, :pos, :letter
9+
10+
def initialize(c)
11+
@pos = Vec2D.new(rand(width), rand(height))
12+
list = Java::ProcessingCore::PFont.list.to_a
13+
random_font = list.sample
14+
font = createFont(random_font, 96, true)
15+
@l = font.get_shape(c.to_java(:char))
16+
@hue = rand
17+
@xn = rand(4096)
18+
@yn = rand(4096)
19+
end
20+
21+
def update
22+
@xn += 0.005
23+
@yn += 0.005
24+
pos.x = map1d(noise(xn), -1.0..1.0, 0..width)
25+
pos.y = map1d(noise(yn), -1.0..1.0, 0..height)
26+
@letter = PGS_Transformation.translate_to(l, 0, 0)
27+
@letter = PGS_Transformation.shear(letter,
28+
map1d(@pos.x, 0..width, -PI..PI),
29+
map1d(@pos.y, 0..height, -PI..PI))
30+
@letter = PGS_Transformation.translate_to(letter, pos.x, pos.y)
31+
@letter = PGS_Morphology.simplify(letter, 1) # as some fonts have very dense vertices
32+
letter.setStroke(color(hue, 1, 1))
33+
end
34+
35+
def randomise
36+
@hue = rand
37+
list = Java::ProcessingCore::PFont.list.to_a
38+
random_font = list.sample
39+
font = createFont(random_font, 128, true)
40+
@l = font.getShape(rand(0..9).to_s.to_java(:char))
41+
end
42+
end
+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
require 'propane'
2+
require_relative 'letter'
3+
class MinkShear < Propane::App
4+
load_library :pgs
5+
module PGS
6+
%w[
7+
PGS_Contour PGS_Conversion PGS_Morphology PGS_Transformation PGS_ShapeBoolean
8+
].each do |klass|
9+
java_import "micycle.pgs.#{klass}"
10+
end
11+
end
12+
13+
include PGS
14+
15+
attr_reader :l1, :l2
16+
17+
def setup
18+
sketch_title 'Mink Shear'
19+
color_mode(HSB, 1.0)
20+
@l1 = Letter.new('M')
21+
@l2 = Letter.new('L')
22+
end
23+
24+
def draw
25+
fill(color(0.1, 0.2))
26+
rect(0, 0, width, height)
27+
begin
28+
l1.update
29+
l2.update
30+
mink = PGS_Morphology.mink_sum(l1.letter, l2.letter)
31+
mink = PGS_Transformation.translate_to(mink, (l1.pos.x + l2.pos.x) / 2, (l1.pos.y + l2.pos.y) / 2)
32+
shape(mink)
33+
shape(l1.letter)
34+
shape(l2.letter)
35+
shape(PGS_Contour.medialAxis(mink, 0.3, 0, 0.1))
36+
intersect = PGS_ShapeBoolean.intersect(l1.letter, mink)
37+
PGS_Conversion.setAllFillColor(intersect, color(0, 0.5))
38+
shape(intersect)
39+
intersect = PGS_ShapeBoolean.intersect(l2.letter, mink)
40+
PGS_Conversion.setAllFillColor(intersect, color(0, 0.5))
41+
shape(intersect)
42+
rescue Java::JavaLang::Exception => e
43+
puts e.to_s
44+
end
45+
if (frame_count % 120).zero?
46+
l1.randomise
47+
l2.randomise
48+
end
49+
end
50+
51+
def settings
52+
size(800, 800)
53+
end
54+
end
55+
56+
MinkShear.new
57+

processing_app/basics/form/shape_transform.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class ShapeTransform < Propane::App
1717

1818
def setup
1919
sketch_title 'Shape Transform'
20-
@renderer = GfxRender.new(self.g)
20+
@renderer = Propane::GfxRender.new(self.g)
2121
no_stroke
2222
@angle_inc = PI / 300
2323
@pts = 4

processing_app/basics/form/toroid.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def settings
109109
end
110110

111111
def renderer
112-
@renderer ||= GfxRender.new(self.g)
112+
@renderer ||= Propane::GfxRender.new(self.g)
113113
end
114114
end
115115

processing_app/basics/math/modules/module_two.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ModuleTwo < Propane::App
1212

1313
def setup
1414
sketch_title 'Module Two'
15-
@renderer = Java::MonkstoneVecmath::GfxRender.new(self.g)
15+
@renderer = Java::MonkstoneVecmath::Propane::GfxRender.new(self.g)
1616
frame_rate 30
1717
reset_scene
1818
end

processing_app/demos/graphics/trefoil.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
#
88
# Features Vec3D.to_normal(renderer) and Vec3D.to_vertex_uv(renderer, u, v)
99
# see line 62 for inititialization of renderer where obj is an instance of
10-
# PShape renderer = ShapeRender.new(obj)
11-
java_import 'monkstone.vecmath.ShapeRender'
10+
# PShape renderer = Propane::ShapeRender.new(obj)
11+
1212

1313
class Trefoil < Propane::App
1414
attr_reader :pg, :trefoil
@@ -44,7 +44,7 @@ def draw
4444
end
4545

4646
# Code to draw a trefoil knot surface, with normals and texture
47-
# coordinates. Makes of the Vec3D Render interface (uses ShapeRender here).
47+
# coordinates. Makes of the Vec3D Render interface (uses Propane::ShapeRender here).
4848
# Adapted from the parametric equations example by Philip Rideout:
4949
# See http://chimera.labs.oreilly.com/books/1234000001814/index.html
5050

@@ -54,7 +54,7 @@ def create_trefoil(s, ny, nx, tex)
5454
obj = create_shape
5555
obj.begin_shape(TRIANGLES)
5656
obj.texture(tex)
57-
renderer = ShapeRender.new(obj)
57+
renderer = Propane::ShapeRender.new(obj)
5858
(0...nx).each do |j|
5959
u0 = j.to_f / nx
6060
u1 = (j + 1).to_f / nx

processing_app/demos/graphics/wiggling.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
require 'propane'
2-
java_import 'monkstone.vecmath.ShapeRender'
2+
java_import 'monkstone.vecmath.Propane::ShapeRender'
33
#
4-
# WigglePShape. Demonstrates initialization and use of ShapeRender,
4+
# WigglePShape. Demonstrates initialization and use of Propane::ShapeRender,
55
# that allows us to send Vec2D to PShape vertex
66
#
77
# How to move the individual vertices of a PShape
@@ -41,7 +41,7 @@ def initialize width, height
4141

4242
# Now make the PShape with those vertices
4343
@s = create_shape
44-
renderer = ShapeRender.new(s) # Prefix with Sketch classname
44+
renderer = Propane::ShapeRender.new(s) # Prefix with Sketch classname
4545
s.begin_shape
4646
s.fill(127)
4747
s.stroke(0)

processing_app/library/vecmath/vec2d/aabb_test.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def draw
3838
end
3939

4040
def renderer
41-
@renderer ||= GfxRender.new(self.g)
41+
@renderer ||= Propane::GfxRender.new(self.g)
4242
end
4343

4444
def block_locked?

processing_app/library/vecmath/vec2d/circumcircle_sketch.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def setup
3636
@font = create_font('Arial', 16, true)
3737
@points = TPoints.new
3838
ellipse_mode RADIUS
39-
@renderer = GfxRender.new(self.g)
39+
@renderer = Propane::GfxRender.new(self.g)
4040
end
4141

4242
def draw

processing_app/library/vecmath/vec2d/library/wiggler/wiggler.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
2-
java_import 'monkstone.vecmath.ShapeRender'
2+
java_import 'monkstone.vecmath.Propane::ShapeRender'
33
# An object that wraps the PShape
44
class Wiggler
55
include Propane::Proxy
@@ -12,7 +12,7 @@ def initialize width, height
1212
@original = (0...16).map{ |a| Vec2D.from_angle(PI * a / 8) * 100 }
1313
# Now make the PShape with those vertices
1414
@s = create_shape
15-
renderer = ShapeRender.new(s) # Prefix with Sketch classname
15+
renderer = Propane::ShapeRender.new(s) # Prefix with Sketch classname
1616
s.begin_shape
1717
s.fill(127)
1818
s.stroke(0)

processing_app/library/vecmath/vec2d/morph.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def draw
7676
end
7777

7878
def renderer
79-
@renderer = GfxRender.new(self.g)
79+
@renderer = Propane::GfxRender.new(self.g)
8080
end
8181

8282
def settings

processing_app/library/vecmath/vec2d/soft_body.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def draw
4040
end
4141

4242
def renderer
43-
@renderer ||= GfxRender.new(self.g)
43+
@renderer ||= Propane::GfxRender.new(self.g)
4444
end
4545

4646
def draw_shape

processing_app/library/vecmath/vec2d/wiggle_pshape.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'propane'
2-
# WigglePShape. Demonstrates initialization and use of ShapeRender,
2+
# WigglePShape. Demonstrates initialization and use of Propane::ShapeRender,
33
# that allows us to send Vec2D to PShape vertex see wiggler.rb
44
#
55
# How to move the individual vertices of a PShape

processing_app/library/vecmath/vec3d/drawolver.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
require 'propane'
44
# Drawolver: draw 2D & revolve 3D
55

6-
# Example shows how to use the vecmath library, including GfxRender utility.
6+
# Example shows how to use the vecmath library, including Propane::GfxRender utility.
77
# On the ruby side features the use each_cons, a possibly a rare use for this
88
# ruby Enumerable method?
99
# 2010-03-22 - fjenett (somewhat revised by Martin Prout 2014-07-06)
@@ -47,7 +47,7 @@ def draw
4747
end
4848

4949
def renderer
50-
@renderer ||= GfxRender.new(self.g)
50+
@renderer ||= Propane::GfxRender.new(self.g)
5151
end
5252

5353
def reset_scene

processing_app/library/vecmath/vec3d/frame_of_reference.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def draw
115115
end
116116

117117
def renderer
118-
@renderer ||= GfxRender.new(self.g)
118+
@renderer ||= Propane::GfxRender.new(self.g)
119119
end
120120
end
121121

processing_app/topics/lsystems/peano.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def render(points)
3636
end
3737

3838
def renderer
39-
@renderer ||= GfxRender.new(g)
39+
@renderer ||= Propane::GfxRender.new(g)
4040
end
4141

4242
def settings

processing_app/topics/shaders/glsl_heightmap_noise.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
require 'propane'
1616

1717
module Renderer
18-
java_import 'monkstone.vecmath.ShapeRender'
18+
java_import 'monkstone.vecmath.Propane::ShapeRender'
1919
end
2020

2121
class HeightMap < Propane::App
@@ -106,7 +106,7 @@ def create_plane(xsegs, ysegs)
106106
tex = images[0]
107107

108108
mesh = create_shape # create the initial PShape
109-
renderer = ShapeRender.new(mesh) # initialize the shape renderer
109+
renderer = Propane::ShapeRender.new(mesh) # initialize the shape renderer
110110
mesh.begin_shape(QUADS) # define the PShape type: QUADS
111111
mesh.no_stroke
112112
mesh.texture(tex) # set a texture to make a textured PShape

0 commit comments

Comments
 (0)