Skip to content

Commit 2270df0

Browse files
committed
ModelView
1 parent b0c01e6 commit 2270df0

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
load_library :hemesh
2+
java_import 'wblut.processing.WB_Render'
3+
include_package 'wblut.hemesh'
4+
5+
attr_reader :meshes, :render, :mesh
6+
7+
def setup
8+
sketch_title 'HEC Creator Model View'
9+
ArcBall.init(self)
10+
creator = HEC_Icosahedron.new
11+
# the default mode ignores Processing transforms
12+
# creator.set_edge(40).setToWorldview # ignore Processing transforms
13+
creator.set_edge(40).setToModelview(self) # use Processing transforms
14+
@meshes = (0..27).map do |idx|
15+
push_matrix
16+
rotate_z(idx * PI / 6.0)
17+
translate(200, 0, -260 + 20 * idx)
18+
scale(idx * 0.06)
19+
@mesh = HE_Mesh.new(creator)
20+
pop_matrix
21+
mesh
22+
end
23+
@render = WB_Render.new(self)
24+
end
25+
26+
def draw
27+
background(55)
28+
directional_light(255, 255, 255, 1, 1, -1)
29+
directional_light(127, 127, 127, -1, -1, 1)
30+
meshes.each do |mesh|
31+
stroke(0)
32+
render.draw_edges(mesh)
33+
no_stroke
34+
render.draw_faces(mesh)
35+
end
36+
end
37+
38+
def settings
39+
size(1000, 1000, P3D)
40+
smooth(8)
41+
end
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
load_library :hemesh
2+
include_package 'wblut.hemesh'
3+
java_import 'wblut.processing.WB_Render'
4+
5+
attr_reader :mesh, :render
6+
7+
def settings
8+
size(1000, 1000, P3D)
9+
smooth(8)
10+
end
11+
12+
def setup
13+
sketch_title 'HEC_Isosurface_Image example'
14+
ArcBall.init(self)
15+
format_string = '/square-%03d.png' # format up to 3 leading zeroes
16+
images = (1..360).map { |index| data_path(format(format_string, index)) }
17+
creator = HEC_IsoSurface.new
18+
creator.set_size(8, 8, 8)
19+
creator.set_values(images.to_java(:string), self, 64, 64, 64)
20+
creator.set_isolevel(128)
21+
creator.set_invert(false)
22+
creator.set_boundary(-20_000)
23+
creator.set_gamma(0.3)
24+
@mesh = HE_Mesh.new(creator)
25+
@render = WB_Render.new(self)
26+
end
27+
28+
def draw
29+
background(55)
30+
lights
31+
no_stroke
32+
render.draw_faces(mesh)
33+
stroke(0)
34+
render.draw_edges(mesh)
35+
end
36+
37+
def key_pressed
38+
return unless key == 's'
39+
save_frame(data_path('example.png'))
40+
end

0 commit comments

Comments
 (0)