toxiclibs 0.5.1-java → 0.6.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d867709518cd92da4ee751ce618404e36aa58d23
4
- data.tar.gz: bc13b0124cbcea23088e24f79246f5b955d4b16c
3
+ metadata.gz: 0621bb2a556be4f39f85ae0c7ce5bf2798ac2f05
4
+ data.tar.gz: 3f70efd64fa650f57ab654b94b288ec6f30f4936
5
5
  SHA512:
6
- metadata.gz: 006718bd1fd184723895bd17b5e2dbb088875c123b32e1365b763569b489224b69b97cf0644d7e62aa51cf2eb99f6c96c3eccad82dfc3d0fa7bd9bc3ad22f9ba
7
- data.tar.gz: 23a90d6fa991b7295b971d5a8b07dec6e78bc6fcc3702b3f630a07b1b2dcafc2afe7c87f017efb7ddf4d95304265199d30b91e6323194e8bf93d05830d3e25de
6
+ metadata.gz: e686d52c7e42a54da8de8454d306ca6487129a3cde5a5d42a4cd582c4ff61a8a603d8e5126ed86afb698b138a918d40e001b3d671f6a63b91446431949b56e06
7
+ data.tar.gz: 97a6d9711d2d33fcac33dd934ed77e1131830895a6a15b8e67a1e5306311493830a1b616d9e1a118c72cf87fa82169e6013a91f583bd341e84b88ff2612da3f3
@@ -1,5 +1,5 @@
1
1
 
2
- **v0.5.1** Mainly corrections.
2
+ **v0.6.0** Some corrections to the Rect and Vec3D contains logic (mea culpa, caued by injudicious refactoring)
3
3
 
4
4
  **v0.5.0** New version toxiclibs update to use jdk8 syntax, require jdk8 and probably therefore JRubyArt only new MeshToVBO class.
5
5
 
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ## Toxiclibs for JRubyArt
2
- [![Gem Version](https://badge.fury.io/rb/toxiclibs.svg)](http://badge.fury.io/rb/toxiclibs)
2
+
3
3
  ### Installing
4
4
  ```bash
5
5
  gem install toxiclibs
@@ -7,7 +7,7 @@ gem install toxiclibs
7
7
 
8
8
  ### NB: Use version 0.4 for ruby-processing
9
9
 
10
- Here I have created create a gem to use Karsten Schmidts (aka toxi, @postspectacular) toxiclibs jars in JRubyArt. To compile the gem follow the instructions for [JRubyArt][]. Most parts of toxiclibs API is exposed in the latest version, (but only a few examples are included) in principle it should be possible to make all available!!! For this demonstration I have used up to date source code for version 21, since [toxis final release][] may never materialise (he's probably got more interesting things to do). There are reported to be number of outstanding bugs with toxiclibs, if they affect you report it [here][] (or better fix them yourself and submit a pull request). Version 0.5.0 features java code updated to use java lambda (jdk8) and was compiled against processing-3.0.1 core.jar. Added features are export Mesh to PShape and export Mesh to [povray mesh2](http://www.povray.org/documentation/3.7.0/r3_4.html#r3_4_5_2_4).
10
+ Here I have created create a gem to use Karsten Schmidts (aka toxi, @postspectacular) toxiclibs jars in JRubyArt. To compile the gem follow the instructions for [JRubyArt][]. Most parts of toxiclibs API is exposed in the latest version, (but only a few examples are included) in principle it should be possible to make all available!!! For this demonstration I have used up to date source code for version 21, since [toxis final release][] may never materialise (he's probably got more interesting things to do). There are reported to be number of outstanding bugs with toxiclibs, if they affect you report it [here][] (or better fix them yourself and submit a pull request). Version 0.5.0+ features java code updated to use java lambda (jdk8) and was compiled against processing-3.0.1 core.jar. Added features are export Mesh to PShape and export Mesh to [povray mesh2](http://www.povray.org/documentation/3.7.0/r3_4.html#r3_4_5_2_4).
11
11
 
12
12
  ![grayscott image](http://4.bp.blogspot.com/-d4MiL4_0Njk/VFJMv6VUicI/AAAAAAAAEgY/fFAfrXDxNXM/s400/grayscott.png)
13
13
 
@@ -0,0 +1,5 @@
1
+ Certain sketches in this folder need to be run with the `--nojruby` flag:-
2
+
3
+ `physics_type.rb`
4
+
5
+ `gray_scott_image.rb`
@@ -12,7 +12,7 @@ require 'toxiclibs'
12
12
  attr_reader :gfx, :positions
13
13
 
14
14
  def settings
15
- size(640, 480, P3D)
15
+ size(640, 480, P3D)
16
16
  end
17
17
 
18
18
  def setup
@@ -28,7 +28,7 @@ def draw
28
28
  lights
29
29
  no_stroke
30
30
  # create manual focal point in XY plane
31
- focus = TVec3D.new((mouse_x - width/2), (mouse_y - height/2), 0)
31
+ focus = TVec3D.new((mouse_x - width / 2), (mouse_y - height / 2), 0)
32
32
  # create mesh prototype to draw at all generated positions
33
33
  # the mesh is a simple box placed at the world origin
34
34
  m = AABB.new(25).to_mesh
@@ -37,8 +37,8 @@ def draw
37
37
  # align the positive z-axis of mesh to point at focus
38
38
  # mesh needs to be located at world origin for it to work correctly
39
39
  # only once rotated, move it to actual position
40
- positions.map { |p| gfx.mesh(m.copy.pointTowards(focus.sub(p), TVec3D::Z_AXIS).translate(p)) }
40
+ positions.map { |p| gfx.mesh(m.copy.pointTowards(focus.sub(p), TVec3D::Z_AXIS).translate(p)) }
41
41
  # draw connections from mesh centers to focal point
42
- stroke(0,255,255)
42
+ stroke(0, 255, 255)
43
43
  positions.map { |p| gfx.line(p, focus) }
44
44
  end
@@ -0,0 +1,78 @@
1
+ load_library :geomerative
2
+ require 'toxiclibs'
3
+ include_package 'geomerative'
4
+
5
+ attr_reader :font, :input, :physics
6
+
7
+ def settings
8
+ size(1280, 720, P3D)
9
+ smooth
10
+ end
11
+
12
+ def setup
13
+ sketch_title 'Physics Type'
14
+ @input = 'Hello!'
15
+ RG.init(self)
16
+ fnt = RG.load_font('ReplicaBold.ttf') # file name
17
+ RG.text_font(fnt, 330) # RFont object, size
18
+ @font = RG.get_text(input) # String to RShape
19
+ RG.set_polygonizer(RCommand::UNIFORMLENGTH)
20
+ RG.set_polygonizer_length(10) # length of segment
21
+ init_physics
22
+ fill(255)
23
+ end
24
+
25
+ def draw
26
+ physics.update
27
+ background(0)
28
+ stroke(255)
29
+ physics.springs.each do |s|
30
+ line(s.a.x, s.a.y, s.b.x, s.b.y)
31
+ end
32
+ physics.particles.each do |p|
33
+ ellipse(p.x, p.y, 3, 3)
34
+ end
35
+ end
36
+
37
+ def init_physics
38
+ @physics = Physics::VerletPhysics2D.new
39
+ # set screen bounds as bounds for physics sim
40
+ physics.set_world_bounds(Toxi::Rect.new(0, 0, width, height))
41
+ # add gravity along positive Y axis
42
+ physics.add_behavior(Physics::GravityBehavior2D.new(TVec2D.new(0, 0.1)))
43
+ # multidimensional array of x and y coordinates
44
+ paths = font.get_points_in_paths
45
+ offset = TVec2D.new(200, 250)
46
+ return if paths.nil?
47
+ paths.length.times do |ii|
48
+ points = paths[ii]
49
+ path_particles = []
50
+ points.length.times do |i|
51
+ p = Physics::VerletParticle2D.new(
52
+ points[i].x + offset.x,
53
+ points[i].y + offset.y
54
+ )
55
+ physics.add_particle(p)
56
+ path_particles << p
57
+ physics.add_spring(
58
+ Physics::VerletSpring2D.new(
59
+ path_particles[i - 1],
60
+ p,
61
+ path_particles[i - 1].distanceTo(p),
62
+ 1
63
+ )
64
+ ) if i > 0
65
+ end
66
+ first = path_particles.first
67
+ last = path_particles.last
68
+ physics.add_spring(
69
+ Physics::VerletSpring2D.new(
70
+ first,
71
+ last,
72
+ first.distance_to(last),
73
+ 1
74
+ )
75
+ )
76
+ first.lock
77
+ end
78
+ end
@@ -3,7 +3,7 @@ require 'toxiclibs'
3
3
  # A 3D Tentacle by Nikolaus Gradwohl http://www.local-guru.net
4
4
  # Adapted for JRubyArt and mesh to PShape, and mesh2 export by Martin Prout
5
5
 
6
- attr_reader :mesh, :gfx, :tentacle
6
+ attr_reader :mesh, :gfx, :tentacle, :tex
7
7
 
8
8
  def settings
9
9
  size(500, 500, P3D)
@@ -11,6 +11,7 @@ end
11
11
 
12
12
  def setup
13
13
  sketch_title 'Tentacle'
14
+ @tex = load_image('mask.jpg')
14
15
  ArcBall.init(self)
15
16
  @gfx = Gfx::MeshToVBO.new(self)
16
17
  volume = VolumetricSpaceArray.new(TVec3D.new(100, 200, 100), 100, 100, 100)
@@ -37,26 +38,23 @@ def setup
37
38
  surface.reset
38
39
  surface.compute_surface_mesh(mesh, 0.5)
39
40
  no_stroke
40
- @tentacle = gfx.mesh_to_shape(mesh, true)
41
- tentacle.set_fill(color(200, 10, 10))
42
- tentacle.set_ambient(80)
43
- tentacle.set_specular(80)
41
+ @tentacle = gfx.mesh_to_textured_shape(mesh, tex)
44
42
  end
45
43
 
46
44
  def draw
47
45
  background(150)
48
- lights
49
- setup_lights
46
+ define_lights
50
47
  shape(tentacle)
51
48
  end
52
49
 
53
- def setup_lights
50
+ def define_lights
54
51
  lights
55
- ambient_light(100, 100, 100)
56
- directional_light(100, 100, 100, -1, -1, 1)
57
- light_specular(50, 50, 50)
52
+ ambient_light(40, 40, 40)
53
+ directional_light(10, 30, 40, 1, 1, 0)
54
+ directional_light(10, 30, 40, 1, 1, -1)
58
55
  end
59
56
 
57
+
60
58
  def key_pressed
61
59
  case key
62
60
  when 'p', 'P'
@@ -33,7 +33,7 @@ def key_pressed
33
33
  return unless (key == 'r')
34
34
  @mesh = spherical_mesh(random_parameters)
35
35
  no_stroke
36
- @spherical = gfx.mesh_to_colored_shape(mesh, true) # harmonic colors
36
+ @spherical = gfx.mesh_to_colored_shape(mesh) # harmonic colors
37
37
  end
38
38
 
39
39
  def random_parameters
@@ -0,0 +1,30 @@
1
+ require 'toxiclibs'
2
+
3
+ attr_reader :points, :bounds, :gfx
4
+
5
+ def settings
6
+ size(400,400)
7
+ end
8
+
9
+ def setup
10
+ sketch_title 'Test Rect'
11
+ @points = []
12
+ @bounds = Toxi::Rect.new(200, 200, 0, 0)
13
+ @gfx = Gfx::ToxiclibsSupport.new(self)
14
+ end
15
+
16
+ def draw
17
+ background(255)
18
+ no_fill
19
+ stroke(0)
20
+ gfx.rect(bounds)
21
+ fill(255, 0, 0)
22
+ no_stroke
23
+ points.each { |p| gfx.circle(p, 5) }
24
+ end
25
+
26
+ def mouse_pressed
27
+ p = TVec2D.new(mouse_x, mouse_y)
28
+ points << p
29
+ bounds.grow_to_contain_point(p)
30
+ end
@@ -1,3 +1,3 @@
1
1
  module Toxiclibs
2
- VERSION = '0.5.1'.freeze
2
+ VERSION = '0.6.0'.freeze
3
3
  end
data/pom.xml CHANGED
@@ -3,7 +3,7 @@
3
3
  <modelVersion>4.0.0</modelVersion>
4
4
  <groupId>org.ruby-processing</groupId>
5
5
  <artifactId>toxiclibs</artifactId>
6
- <version>0.5.0</version>
6
+ <version>0.6.0</version>
7
7
  <packaging>jar</packaging>
8
8
  <description>
9
9
  toxiclibs-library for JRubyArt
@@ -146,7 +146,7 @@ public class Rect implements Shape2D {
146
146
  if (px < x || px > x + width) {
147
147
  return false;
148
148
  }
149
- return (py >= y || py <= y + height);
149
+ return (py >= y && py <= y + height);
150
150
  }
151
151
 
152
152
  /**
@@ -743,7 +743,7 @@ public class Vec2D implements Comparable<ReadonlyVec2D>, ReadonlyVec2D {
743
743
  if (x < r.x || x > r.x + r.width) {
744
744
  return false;
745
745
  }
746
- return (y >= r.y || y <= r.y + r.height);
746
+ return (y >= r.y && y <= r.y + r.height);
747
747
  }
748
748
 
749
749
  @Override
@@ -994,7 +994,7 @@ public class Vec3D implements Comparable<ReadonlyVec3D>, ReadonlyVec3D {
994
994
  return false;
995
995
  }
996
996
  w = boxExtent.z;
997
- return (z > boxOrigin.z - w || z < boxOrigin.z + w);
997
+ return (z >= boxOrigin.z - w && z <= boxOrigin.z + w);
998
998
  }
999
999
 
1000
1000
  @Override
@@ -1,13 +1,11 @@
1
1
  package toxi.processing;
2
2
 
3
- import java.util.Collection;
4
3
  import processing.core.PApplet;
5
4
  import processing.core.PConstants;
5
+ import processing.core.PImage;
6
6
  import processing.core.PShape;
7
7
  import toxi.geom.Matrix4x4;
8
8
  import toxi.geom.Vec3D;
9
- import toxi.geom.mesh.Mesh3D;
10
- import toxi.geom.mesh.Face;
11
9
  import toxi.geom.mesh.TriangleMesh;
12
10
 
13
11
  /**
@@ -15,10 +13,12 @@ import toxi.geom.mesh.TriangleMesh;
15
13
  * @author Martin Prout
16
14
  */
17
15
  public class MeshToVBO {
18
-
16
+ final int DEFAULT_COLOR = -1; // white
17
+ private int fillColor;
18
+ private boolean wire = false;
19
19
  private final PApplet app;
20
- private final Matrix4x4 normalMap =
21
- new Matrix4x4().translateSelf(128, 128, 128).scaleSelf(127);
20
+ private final Matrix4x4 normalMap
21
+ = new Matrix4x4().translateSelf(128, 128, 128).scaleSelf(127);
22
22
 
23
23
  /**
24
24
  *
@@ -26,17 +26,35 @@ public class MeshToVBO {
26
26
  */
27
27
  public MeshToVBO(PApplet app) {
28
28
  this.app = app;
29
+ this.fillColor = DEFAULT_COLOR;
30
+ }
31
+
32
+ public void wire(boolean show) {
33
+ this.wire = show;
34
+ }
35
+
36
+ /**
37
+ *
38
+ * @param col
39
+ */
40
+ public void fillColor(int col) {
41
+ this.fillColor = col;
29
42
  }
30
43
 
31
44
  /**
32
45
  * Use default smooth (smooth = false) for cubes etc
46
+ *
33
47
  * @param mesh Toxiclibs mesh
34
48
  * @param smooth boolean
35
49
  * @return
36
50
  */
37
51
  public PShape meshToShape(TriangleMesh mesh, boolean smooth) {
52
+ if (!wire) {
53
+ app.noStroke();
54
+ }
38
55
  PShape retained = app.createShape();
39
56
  retained.beginShape(PConstants.TRIANGLE);
57
+ retained.fill(fillColor);
40
58
  if (smooth) {
41
59
  mesh.faces.stream().map((f) -> {
42
60
  retained.normal(f.a.normal.x, f.a.normal.y, f.a.normal.z);
@@ -49,6 +67,9 @@ public class MeshToVBO {
49
67
  retained.vertex(f.c.x, f.c.y, f.c.z);
50
68
  });
51
69
  } else {
70
+ if (wire) {
71
+ app.noFill();
72
+ }
52
73
  mesh.faces.stream().map((f) -> {
53
74
  retained.normal(f.normal.x, f.normal.y, f.normal.z);
54
75
  retained.vertex(f.a.x, f.a.y, f.a.z);
@@ -61,39 +82,46 @@ public class MeshToVBO {
61
82
  retained.endShape();
62
83
  return retained;
63
84
  }
64
-
65
- public PShape meshToColoredShape(TriangleMesh mesh,
66
- boolean vertexNormals) {
85
+
86
+ public PShape meshToColoredShape(TriangleMesh mesh) {
87
+ app.noStroke();
67
88
  PShape gfx = app.createShape();
68
89
  gfx.beginShape(PConstants.TRIANGLES);
69
- if (vertexNormals) {
70
- mesh.faces.stream().map((f) -> {
71
- Vec3D n = normalMap.applyTo(f.a.normal);
72
- gfx.fill(n.x, n.y, n.z);
73
- gfx.normal(f.a.normal.x, f.a.normal.y, f.a.normal.z);
74
- gfx.vertex(f.a.x, f.a.y, f.a.z);
75
- n = normalMap.applyTo(f.b.normal);
76
- gfx.fill(n.x, n.y, n.z);
77
- gfx.normal(f.b.normal.x, f.b.normal.y, f.b.normal.z);
78
- gfx.vertex(f.b.x, f.b.y, f.b.z);
79
- n = normalMap.applyTo(f.c.normal);
80
- gfx.fill(n.x, n.y, n.z);
81
- gfx.normal(f.c.normal.x, f.c.normal.y, f.c.normal.z);
82
- return f;
83
- }).forEach((f) -> {
84
- gfx.vertex(f.c.x, f.c.y, f.c.z);
85
- });
86
- } else {
87
- mesh.faces.stream().map((f) -> {
88
- gfx.normal(f.normal.x, f.normal.y, f.normal.z);
89
- gfx.vertex(f.a.x, f.a.y, f.a.z);
90
- gfx.vertex(f.b.x, f.b.y, f.b.z);
91
- return f;
92
- }).forEach((f) -> {
93
- gfx.vertex(f.c.x, f.c.y, f.c.z);
94
- });
95
- }
96
- gfx.endShape();
90
+ mesh.faces.stream().map((f) -> {
91
+ Vec3D n = normalMap.applyTo(f.a.normal);
92
+ gfx.fill(n.x, n.y, n.z);
93
+ gfx.normal(f.a.normal.x, f.a.normal.y, f.a.normal.z);
94
+ gfx.vertex(f.a.x, f.a.y, f.a.z);
95
+ n = normalMap.applyTo(f.b.normal);
96
+ gfx.fill(n.x, n.y, n.z);
97
+ gfx.normal(f.b.normal.x, f.b.normal.y, f.b.normal.z);
98
+ gfx.vertex(f.b.x, f.b.y, f.b.z);
99
+ n = normalMap.applyTo(f.c.normal);
100
+ gfx.fill(n.x, n.y, n.z);
101
+ gfx.normal(f.c.normal.x, f.c.normal.y, f.c.normal.z);
102
+ return f;
103
+ }).forEach((f) -> {
104
+ gfx.vertex(f.c.x, f.c.y, f.c.z);
105
+ });
106
+ gfx.endShape();
107
+ return gfx;
108
+ }
109
+
110
+ public PShape meshToTexturedShape(TriangleMesh mesh, PImage tex) {
111
+ PShape gfx = app.createShape();
112
+ gfx.beginShape(PConstants.TRIANGLE);
113
+ gfx.texture(tex);
114
+ mesh.faces.stream().map((f) -> {
115
+ gfx.normal(f.a.normal.x, f.a.normal.y, f.a.normal.z);
116
+ gfx.vertex(f.a.x, f.a.y, f.a.z, 0, 0);
117
+ gfx.normal(f.b.normal.x, f.b.normal.y, f.b.normal.z);
118
+ gfx.vertex(f.b.x, f.b.y, f.b.z, tex.width, 0);
119
+ gfx.normal(f.c.normal.x, f.c.normal.y, f.c.normal.z);
120
+ return f;
121
+ }).forEach((f) -> {
122
+ gfx.vertex(f.c.x, f.c.y, f.c.z, tex.width, tex.height);
123
+ });
124
+ gfx.endShape();
97
125
  return gfx;
98
126
  }
99
- }
127
+ }
@@ -17,18 +17,16 @@ Gem::Specification.new do |spec|
17
17
  spec.licenses = %w{MIT LGPL-3.0}
18
18
  spec.authors = %w{Karsten\ Schmidt Martin\ Prout}
19
19
  spec.email = 'martin_p@lineone.net'
20
- spec.homepage = 'https://github.com/ruby-processing/toxiclibs'
20
+ spec.homepage = 'http://ruby-processing.github.io/toxicgem/'
21
21
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
22
  spec.files << 'lib/toxiclibs.jar'
23
23
  spec.files << 'lib/args4j-2.0.31.jar'
24
24
  spec.require_paths = ['lib']
25
- spec.add_dependency 'jruby_art', '~> 1.0'
26
- spec.add_development_dependency "rake", "~> 10.0"
27
- spec.add_development_dependency "minitest", "~> 5.8"
25
+ spec.add_dependency 'jruby_art', '~> 1.0', '>= 1.0.1'
26
+ spec.add_development_dependency 'rake', '~> 10.4', '>= 10.4.2'
28
27
  spec.platform = 'java'
29
28
  spec.requirements << 'A decent graphics card'
30
29
  spec.requirements << 'java runtime >= 1.8+'
31
30
  spec.requirements << 'processing = 3.0.1+'
32
31
  spec.requirements << 'maven = 3.3.3'
33
- spec.requirements << 'jruby_art = 1.0+'
34
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toxiclibs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: java
6
6
  authors:
7
7
  - Karsten Schmidt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-16 00:00:00.000000000 Z
12
+ date: 2015-12-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jruby_art
@@ -18,6 +18,9 @@ dependencies:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '1.0'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.1
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,34 +28,29 @@ dependencies:
25
28
  - - "~>"
26
29
  - !ruby/object:Gem::Version
27
30
  version: '1.0'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.1
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: rake
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
32
38
  - - "~>"
33
39
  - !ruby/object:Gem::Version
34
- version: '10.0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
+ version: '10.4'
41
+ - - ">="
40
42
  - !ruby/object:Gem::Version
41
- version: '10.0'
42
- - !ruby/object:Gem::Dependency
43
- name: minitest
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '5.8'
43
+ version: 10.4.2
49
44
  type: :development
50
45
  prerelease: false
51
46
  version_requirements: !ruby/object:Gem::Requirement
52
47
  requirements:
53
48
  - - "~>"
54
49
  - !ruby/object:Gem::Version
55
- version: '5.8'
50
+ version: '10.4'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 10.4.2
56
54
  description: " Toxiclibs java libraries wrapped in a rubygem. Updated to use java
57
55
  lambda \n expressions (available since jdk8). Also new since version 0.5.0 are
58
56
  3D Mesh \n to PShape and 3D mesh to Povray mesh2 utilities.\n"
@@ -69,9 +67,11 @@ files:
69
67
  - LICENSE.md
70
68
  - README.md
71
69
  - Rakefile
70
+ - examples/README.md
72
71
  - examples/attract_repel/attract_repel.rb
73
72
  - examples/attract_repel/attractor.rb
74
73
  - examples/attract_repel/particle.rb
74
+ - examples/data/ReplicaBold.ttf
75
75
  - examples/data/ti_yong.png
76
76
  - examples/force_directed/cluster.rb
77
77
  - examples/force_directed/force_directed_graph.rb
@@ -81,6 +81,8 @@ files:
81
81
  - examples/implicit.rb
82
82
  - examples/inflate_mesh.rb
83
83
  - examples/model_align.rb
84
+ - examples/physics_type.rb
85
+ - examples/povmesh/data/mask.jpg
84
86
  - examples/povmesh/ftest.rb
85
87
  - examples/povmesh/mesh_align.rb
86
88
  - examples/povmesh/tentacle.rb
@@ -92,6 +94,7 @@ files:
92
94
  - examples/soft_body/particle.rb
93
95
  - examples/soft_body/soft_body_square_adapted.rb
94
96
  - examples/spherical_harmonics_mesh.rb
97
+ - examples/test_rect.rb
95
98
  - lib/args4j-2.0.31.jar
96
99
  - lib/toxiclibs.jar
97
100
  - lib/toxiclibs.rb
@@ -448,7 +451,7 @@ files:
448
451
  - src/toxi/volume/VolumetricSpace.java
449
452
  - src/toxi/volume/VolumetricSpaceArray.java
450
453
  - toxiclibs.gemspec
451
- homepage: https://github.com/ruby-processing/toxiclibs
454
+ homepage: http://ruby-processing.github.io/toxicgem/
452
455
  licenses:
453
456
  - MIT
454
457
  - LGPL-3.0
@@ -472,7 +475,6 @@ requirements:
472
475
  - java runtime >= 1.8+
473
476
  - processing = 3.0.1+
474
477
  - maven = 3.3.3
475
- - jruby_art = 1.0+
476
478
  rubyforge_project:
477
479
  rubygems_version: 2.5.0
478
480
  signing_key: