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

Lines changed: 1 addition & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 3 additions & 3 deletions
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

Lines changed: 42 additions & 0 deletions
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
Lines changed: 57 additions & 0 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

0 commit comments

Comments
 (0)