From b9456c34fc11f8ec45e1b64a7cbdd41a897cb547 Mon Sep 17 00:00:00 2001
From: Daniel Shiffman
Date: Mon, 1 Aug 2016 13:19:17 -0400
Subject: [PATCH 1/5] adding dist and docs to gitignore
---
.gitignore | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..7f793a39
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin/
+/dist/
+/docs/
From ab646b574692007bbc2d57a51d4ce471a782654f Mon Sep 17 00:00:00 2001
From: Daniel Shiffman
Date: Mon, 1 Aug 2016 13:57:36 -0400
Subject: [PATCH 2/5] some minor example cleanup
---
examples/color/Theme/Theme.pde | 5 +++--
examples/core/geometry/OctreeDemo/OctreeDemo.pde | 4 ++--
.../core/geometry/PlaneIntersection/PlaneIntersection.pde | 4 ++--
.../PolyTesselateSpherize/PolyTesselateSpherize.pde | 4 ++--
.../core/geometry/RayReflectSphere/RayReflectSphere.pde | 4 ++--
examples/core/mapping/TwitterGeo/TwitterGeo.pde | 4 ++--
examples/core/math/AdditiveWaves/AdditiveWaves.pde | 4 ++--
examples/core/mesh/MeshAlignToAxis/MeshAlignToAxis.pde | 4 ++--
.../core/mesh/MeshAlignToTriangle/MeshAlignToTriangle.pde | 4 ++--
examples/core/mesh/MeshCutPlanes/MeshCutPlanes.pde | 4 ++--
examples/core/mesh/MobiusStripe/MobiusStripe.pde | 2 +-
.../SphericalHarmonicsMeshBuilder.pde | 4 ++--
examples/core/mesh/SubdivBasics/SubdivBasics.pde | 4 ++--
.../SuperEllipsoidMeshBuilder.pde | 4 ++--
examples/core/mesh/TerrainSteering/TerrainSteering.pde | 4 ++--
examples/core/mesh/TexturedGlobe/TexturedGlobe.pde | 4 ++--
.../core/misc/ShiffmanFlocking3D/ShiffmanFlocking3D.pde | 4 ++--
examples/core/splines/SplineBlobTest/SplineBlobTest.pde | 4 ++--
examples/p5/GeometryInStyle/GeometryInStyle.pde | 4 ++--
examples/physics/BoxConstraintDemo/BoxConstraintDemo.pde | 4 ++--
examples/physics/BoxFluidDemo/BoxFluidDemo.pde | 4 ++--
examples/physics/CrashTest/CrashTest.pde | 4 ++--
.../physics/ParticleStringCircle/ParticleStringCircle.pde | 4 ++--
examples/physics/PhysicsType/PhysicsType.pde | 4 ++--
.../physics/{Shiffmann_Chain => Shiffman_Chain}/Chain.pde | 0
.../Shiffman_Chain.pde} | 7 +++----
.../Cluster.pde | 0
.../Node.pde | 0
.../Shiffman_ForceDirectedGraph.pde} | 6 +++---
.../Shiffman_SimpleSpring.pde} | 7 +++----
examples/physics/SoftBodySquare/SoftBodySquare.pde | 4 ++--
examples/physics/ThreadDemo/ThreadDemo.pde | 4 ++--
examples/physics/ThreadSphere/ThreadSphere.pde | 4 ++--
examples/sim/DLASpiral/DLASpiral.pde | 4 ++--
examples/volume/AnimatedNoise/AnimatedNoise.pde | 4 ++--
examples/volume/BoxFluidDemo/BoxFluidDemo.pde | 4 ++--
examples/volume/ImplicitFunction/ImplicitFunction.pde | 4 ++--
examples/volume/MRISurface/MRISurface.pde | 4 ++--
examples/volume/NoiseSurface/NoiseSurface.pde | 4 ++--
examples/volume/VolumeBrush/VolumeBrush.pde | 4 ++--
examples/volume/VolumetricCup/VolumetricCup.pde | 4 ++--
examples/volume/VoxelizeMesh/VoxelizeMesh.pde | 4 ++--
42 files changed, 81 insertions(+), 82 deletions(-)
rename examples/physics/{Shiffmann_Chain => Shiffman_Chain}/Chain.pde (100%)
rename examples/physics/{Shiffmann_Chain/Shiffmann_Chain.pde => Shiffman_Chain/Shiffman_Chain.pde} (92%)
rename examples/physics/{Shiffmann_ForceDirectedGraph => Shiffman_ForceDirectedGraph}/Cluster.pde (100%)
rename examples/physics/{Shiffmann_ForceDirectedGraph => Shiffman_ForceDirectedGraph}/Node.pde (100%)
rename examples/physics/{Shiffmann_ForceDirectedGraph/Shiffmann_ForceDirectedGraph.pde => Shiffman_ForceDirectedGraph/Shiffman_ForceDirectedGraph.pde} (96%)
rename examples/physics/{Shiffmann_SimpleSpring/Shiffmann_SimpleSpring.pde => Shiffman_SimpleSpring/Shiffman_SimpleSpring.pde} (95%)
diff --git a/examples/color/Theme/Theme.pde b/examples/color/Theme/Theme.pde
index a84ad48c..1686d355 100644
--- a/examples/color/Theme/Theme.pde
+++ b/examples/color/Theme/Theme.pde
@@ -80,9 +80,10 @@ void drawSpline(ColorList list) {
points[i]=new Vec2D(random(-1,1)*50+(float)i/points.length*width,random(0.25,0.75)*height);
}
points[points.length-1]=new Vec2D(width+XRAD,random(height));
- List vertices=new Spline2D(points).computeVertices(width/RES);
+
+ List vertices=new Spline2D(points).getPointList();
for(Vec2D v: vertices) {
fill(list.get((int) random(numCols)).toARGB());
ellipse(v.x,v.y,noise(v.y*0.01)*XRAD,noise(v.x*0.01)*YRAD);
}
-}
+}
\ No newline at end of file
diff --git a/examples/core/geometry/OctreeDemo/OctreeDemo.pde b/examples/core/geometry/OctreeDemo/OctreeDemo.pde
index 400c3a5b..241c8087 100644
--- a/examples/core/geometry/OctreeDemo/OctreeDemo.pde
+++ b/examples/core/geometry/OctreeDemo/OctreeDemo.pde
@@ -31,7 +31,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.geom.*;
import toxi.processing.*;
import java.util.List;
@@ -65,7 +65,7 @@ ToxiclibsSupport gfx;
int numParticles = 1;
void setup() {
- size(1024, 768, OPENGL);
+ size(1024, 768, P3D);
textFont(createFont("SansSerif", 18));
// setup empty octree so that it's centered around the world origin
octree=new VisibleOctree(new Vec3D(-1, -1, -1).scaleSelf(DIM2), DIM);
diff --git a/examples/core/geometry/PlaneIntersection/PlaneIntersection.pde b/examples/core/geometry/PlaneIntersection/PlaneIntersection.pde
index 9f384224..e2fbc3c7 100644
--- a/examples/core/geometry/PlaneIntersection/PlaneIntersection.pde
+++ b/examples/core/geometry/PlaneIntersection/PlaneIntersection.pde
@@ -1,7 +1,7 @@
import toxi.geom.*;
import toxi.util.*;
import toxi.processing.*;
-import processing.opengl.*;
+
Plane p1, p2;
@@ -9,7 +9,7 @@ ToxiclibsSupport gfx;
boolean doSave;
void setup() {
- size(1280, 720, OPENGL);
+ size(1280, 720, P3D);
gfx = new ToxiclibsSupport(this);
p1 = new Plane(new Vec3D(100, 100, 100), new Vec3D(0, 1, 0));
p2 = new Plane(new Vec3D(100, 200, 100), Vec3D.randomVector());
diff --git a/examples/core/geometry/PolyTesselateSpherize/PolyTesselateSpherize.pde b/examples/core/geometry/PolyTesselateSpherize/PolyTesselateSpherize.pde
index ed3bd54f..cf5e7c0d 100644
--- a/examples/core/geometry/PolyTesselateSpherize/PolyTesselateSpherize.pde
+++ b/examples/core/geometry/PolyTesselateSpherize/PolyTesselateSpherize.pde
@@ -40,7 +40,7 @@ import toxi.processing.*;
import toxi.math.*;
import java.util.List;
-import processing.opengl.*;
+
// radius of the root delaunay triangle which encompasses (MUST) all other points
float DELAUNAY_SIZE = 10000;
@@ -62,7 +62,7 @@ TriangleMesh mesh;
float res=6;
void setup() {
- size(1024, 768, OPENGL);
+ size(1024, 768, P3D);
smooth();
gfx = new ToxiclibsSupport(this);
diff --git a/examples/core/geometry/RayReflectSphere/RayReflectSphere.pde b/examples/core/geometry/RayReflectSphere/RayReflectSphere.pde
index 32a33c6f..c86c9a73 100644
--- a/examples/core/geometry/RayReflectSphere/RayReflectSphere.pde
+++ b/examples/core/geometry/RayReflectSphere/RayReflectSphere.pde
@@ -31,7 +31,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.geom.*;
import toxi.processing.*;
@@ -54,7 +54,7 @@ Vec3D camRot = new Vec3D();
ToxiclibsSupport gfx;
void setup() {
- size(500,500,OPENGL);
+ size(500,500,P3D);
gfx=new ToxiclibsSupport(this);
}
diff --git a/examples/core/mapping/TwitterGeo/TwitterGeo.pde b/examples/core/mapping/TwitterGeo/TwitterGeo.pde
index c07ed73f..5f9a34f6 100644
--- a/examples/core/mapping/TwitterGeo/TwitterGeo.pde
+++ b/examples/core/mapping/TwitterGeo/TwitterGeo.pde
@@ -35,7 +35,7 @@
import toxi.geom.*;
import toxi.processing.*;
-import processing.opengl.*;
+
final int EARTH_RADIUS = 200;
@@ -66,7 +66,7 @@ Vec2D[] cities = new Vec2D[] {
ToxiclibsSupport gfx;
void setup() {
- size(1024,576,OPENGL);
+ size(1024,576,P3D);
gfx=new ToxiclibsSupport(this);
searchTwitter(SEARCH_QUERY);
}
diff --git a/examples/core/math/AdditiveWaves/AdditiveWaves.pde b/examples/core/math/AdditiveWaves/AdditiveWaves.pde
index 1251ac27..a81bd66d 100644
--- a/examples/core/math/AdditiveWaves/AdditiveWaves.pde
+++ b/examples/core/math/AdditiveWaves/AdditiveWaves.pde
@@ -50,7 +50,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.math.waves.*;
AbstractWave waveX,waveY;
@@ -61,7 +61,7 @@ int D2 = DIM/2;
int AMP = 50;
void setup() {
- size(1024, 576, OPENGL);
+ size(1024, 576, P3D);
noStroke();
waveX=createRandomWave();
waveY=createRandomWave();
diff --git a/examples/core/mesh/MeshAlignToAxis/MeshAlignToAxis.pde b/examples/core/mesh/MeshAlignToAxis/MeshAlignToAxis.pde
index 920fca1a..a65df337 100644
--- a/examples/core/mesh/MeshAlignToAxis/MeshAlignToAxis.pde
+++ b/examples/core/mesh/MeshAlignToAxis/MeshAlignToAxis.pde
@@ -24,7 +24,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.geom.*;
import toxi.geom.mesh.*;
@@ -38,7 +38,7 @@ TriangleMesh[] boxes=new TriangleMesh[600];
ToxiclibsSupport gfx;
void setup() {
- size(600,600,OPENGL);
+ size(600,600,P3D);
gfx=new ToxiclibsSupport(this);
for(int i=0; iA soft pendulum (series of connected springs)
- * The Nature of Code
+ * The Nature of Code
* Spring 2010
*/
/*
- * Copyright (c) 2010 Daniel Schiffmann
+ * Copyright (c) 2010 Daniel Shiffmann
*
* This demo & library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -66,5 +66,4 @@ void mousePressed() {
void mouseReleased() {
// Release the chain
chain.release();
-}
-
+}
\ No newline at end of file
diff --git a/examples/physics/Shiffmann_ForceDirectedGraph/Cluster.pde b/examples/physics/Shiffman_ForceDirectedGraph/Cluster.pde
similarity index 100%
rename from examples/physics/Shiffmann_ForceDirectedGraph/Cluster.pde
rename to examples/physics/Shiffman_ForceDirectedGraph/Cluster.pde
diff --git a/examples/physics/Shiffmann_ForceDirectedGraph/Node.pde b/examples/physics/Shiffman_ForceDirectedGraph/Node.pde
similarity index 100%
rename from examples/physics/Shiffmann_ForceDirectedGraph/Node.pde
rename to examples/physics/Shiffman_ForceDirectedGraph/Node.pde
diff --git a/examples/physics/Shiffmann_ForceDirectedGraph/Shiffmann_ForceDirectedGraph.pde b/examples/physics/Shiffman_ForceDirectedGraph/Shiffman_ForceDirectedGraph.pde
similarity index 96%
rename from examples/physics/Shiffmann_ForceDirectedGraph/Shiffmann_ForceDirectedGraph.pde
rename to examples/physics/Shiffman_ForceDirectedGraph/Shiffman_ForceDirectedGraph.pde
index 5fa9f587..a8c70cf5 100644
--- a/examples/physics/Shiffmann_ForceDirectedGraph/Shiffmann_ForceDirectedGraph.pde
+++ b/examples/physics/Shiffman_ForceDirectedGraph/Shiffman_ForceDirectedGraph.pde
@@ -1,12 +1,12 @@
/**
* Force directed graph,
* heavily based on: fid.gen
- * The Nature of Code
+ * The Nature of Code
* Spring 2010
*/
/*
- * Copyright (c) 2010 Daniel Schiffmann
+ * Copyright (c) 2010 Daniel Shiffmann
*
* This demo & library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -132,4 +132,4 @@ void keyPressed() {
else if (key == 'n') {
newGraph();
}
-}
+}
\ No newline at end of file
diff --git a/examples/physics/Shiffmann_SimpleSpring/Shiffmann_SimpleSpring.pde b/examples/physics/Shiffman_SimpleSpring/Shiffman_SimpleSpring.pde
similarity index 95%
rename from examples/physics/Shiffmann_SimpleSpring/Shiffmann_SimpleSpring.pde
rename to examples/physics/Shiffman_SimpleSpring/Shiffman_SimpleSpring.pde
index a590b10b..47f18978 100644
--- a/examples/physics/Shiffmann_SimpleSpring/Shiffmann_SimpleSpring.pde
+++ b/examples/physics/Shiffman_SimpleSpring/Shiffman_SimpleSpring.pde
@@ -1,11 +1,11 @@
/**
* Simple two particles and spring example
- * The Nature of Code
+ * The Nature of Code
* Spring 2010
*/
/*
- * Copyright (c) 2010 Daniel Schiffmann
+ * Copyright (c) 2010 Daniel Shiffmann
*
* This demo & library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -105,5 +105,4 @@ class Particle extends VerletParticle2D {
stroke(0);
ellipse(x,y,16,16);
}
-}
-
+}
\ No newline at end of file
diff --git a/examples/physics/SoftBodySquare/SoftBodySquare.pde b/examples/physics/SoftBodySquare/SoftBodySquare.pde
index 4c504379..ed56eb6c 100644
--- a/examples/physics/SoftBodySquare/SoftBodySquare.pde
+++ b/examples/physics/SoftBodySquare/SoftBodySquare.pde
@@ -26,7 +26,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.physics2d.behaviors.*;
import toxi.physics2d.*;
@@ -44,7 +44,7 @@ VerletPhysics2D physics;
VerletParticle2D head,tail;
void setup() {
- size(1280,720,OPENGL);
+ size(1280,720,P3D);
smooth();
physics=new VerletPhysics2D();
physics.addBehavior(new GravityBehavior2D(new Vec2D(0,0.1)));
diff --git a/examples/physics/ThreadDemo/ThreadDemo.pde b/examples/physics/ThreadDemo/ThreadDemo.pde
index bf940bc5..d7db63c8 100644
--- a/examples/physics/ThreadDemo/ThreadDemo.pde
+++ b/examples/physics/ThreadDemo/ThreadDemo.pde
@@ -29,7 +29,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.physics2d.constraints.*;
import toxi.physics2d.*;
import toxi.geom.*;
@@ -46,7 +46,7 @@ VerletParticle2D head,tail;
boolean isTailLocked;
void setup() {
- size(1024,768,OPENGL);
+ size(1024,768,P3D);
smooth();
physics=new VerletPhysics2D();
Vec2D stepDir=new Vec2D(1,1).normalizeTo(REST_LENGTH);
diff --git a/examples/physics/ThreadSphere/ThreadSphere.pde b/examples/physics/ThreadSphere/ThreadSphere.pde
index fc82f6c0..9e858c2a 100644
--- a/examples/physics/ThreadSphere/ThreadSphere.pde
+++ b/examples/physics/ThreadSphere/ThreadSphere.pde
@@ -30,7 +30,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.physics3d.constraints.*;
import toxi.physics3d.behaviors.*;
@@ -47,7 +47,7 @@ VerletPhysics3D physics;
VerletParticle3D head;
void setup() {
- size(1024,768,OPENGL);
+ size(1024,768,P3D);
smooth();
// create collision sphere at origin, replace OUTSIDE with INSIDE to keep particles inside the sphere
ParticleConstraint3D sphere=new SphereConstraint(new Sphere(new Vec3D(),SPHERE_RADIUS),SphereConstraint.OUTSIDE);
diff --git a/examples/sim/DLASpiral/DLASpiral.pde b/examples/sim/DLASpiral/DLASpiral.pde
index 6424aea3..c3020c75 100644
--- a/examples/sim/DLASpiral/DLASpiral.pde
+++ b/examples/sim/DLASpiral/DLASpiral.pde
@@ -47,7 +47,7 @@
import toxi.sim.dla.*;
import toxi.geom.*;
-import processing.opengl.*;
+
DLA dla;
DLAListener listener;
@@ -56,7 +56,7 @@ float currScale = 6;
boolean isOctreeVisible=true;
void setup() {
- size(640, 480, OPENGL);
+ size(640, 480, P3D);
// compute spiral key points (every 45 degrees)
ArrayList points = new ArrayList();
for (float theta=-TWO_PI, r=20; theta<3*TWO_PI; theta+=QUARTER_PI) {
diff --git a/examples/volume/AnimatedNoise/AnimatedNoise.pde b/examples/volume/AnimatedNoise/AnimatedNoise.pde
index 2de8c560..124f018c 100644
--- a/examples/volume/AnimatedNoise/AnimatedNoise.pde
+++ b/examples/volume/AnimatedNoise/AnimatedNoise.pde
@@ -37,7 +37,7 @@ import toxi.volume.*;
import toxi.math.noise.*;
import toxi.processing.*;
-import processing.opengl.*;
+
int DIMX=48;
int DIMY=48;
@@ -57,7 +57,7 @@ TriangleMesh mesh;
ToxiclibsSupport gfx;
void setup() {
- size(1024,576,OPENGL);
+ size(1024,576,P3D);
gfx=new ToxiclibsSupport(this);
}
diff --git a/examples/volume/BoxFluidDemo/BoxFluidDemo.pde b/examples/volume/BoxFluidDemo/BoxFluidDemo.pde
index e26dfef3..ee4c27fc 100644
--- a/examples/volume/BoxFluidDemo/BoxFluidDemo.pde
+++ b/examples/volume/BoxFluidDemo/BoxFluidDemo.pde
@@ -44,7 +44,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.physics3d.*;
import toxi.physics3d.behaviors.*;
@@ -84,7 +84,7 @@ boolean useBoundary=false;
Vec3D colAmp=new Vec3D(400, 200, 200);
void setup() {
- size(1280,720,OPENGL);
+ size(1280,720,P3D);
smooth();
initPhysics();
initGUI();
diff --git a/examples/volume/ImplicitFunction/ImplicitFunction.pde b/examples/volume/ImplicitFunction/ImplicitFunction.pde
index a9756341..373d3c8b 100644
--- a/examples/volume/ImplicitFunction/ImplicitFunction.pde
+++ b/examples/volume/ImplicitFunction/ImplicitFunction.pde
@@ -35,7 +35,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.geom.*;
import toxi.geom.mesh.*;
@@ -54,7 +54,7 @@ float currZoom = 1;
boolean isWireframe;
void setup() {
- size(1280,720, OPENGL);
+ size(1280,720, P3D);
gfx = new ToxiclibsSupport(this);
VolumetricSpace vol = new EvaluatingVolume(new Vec3D(400,400,400), RES, MAX_ISO);
IsoSurface surface = new HashIsoSurface(vol);
diff --git a/examples/volume/MRISurface/MRISurface.pde b/examples/volume/MRISurface/MRISurface.pde
index 87704882..0bc2ad1e 100644
--- a/examples/volume/MRISurface/MRISurface.pde
+++ b/examples/volume/MRISurface/MRISurface.pde
@@ -41,7 +41,7 @@ import toxi.volume.*;
import toxi.math.noise.*;
import toxi.processing.*;
-import processing.opengl.*;
+
int DIM=128;
float ISO_THRESHOLD = 0.1;
@@ -54,7 +54,7 @@ ToxiclibsSupport gfx;
boolean isWireframe=false;
void setup() {
- size(1024,768,OPENGL);
+ size(1024,768,P3D);
gfx=new ToxiclibsSupport(this);
strokeWeight(0.5);
diff --git a/examples/volume/NoiseSurface/NoiseSurface.pde b/examples/volume/NoiseSurface/NoiseSurface.pde
index f1c4ad59..df76381f 100644
--- a/examples/volume/NoiseSurface/NoiseSurface.pde
+++ b/examples/volume/NoiseSurface/NoiseSurface.pde
@@ -37,7 +37,7 @@ import toxi.volume.*;
import toxi.math.noise.*;
import toxi.processing.*;
-import processing.opengl.*;
+
int DIMX=192;
int DIMY=32;
@@ -56,7 +56,7 @@ float currScale=1;
ToxiclibsSupport gfx;
void setup() {
- size(1024,768,OPENGL);
+ size(1024,768,P3D);
gfx=new ToxiclibsSupport(this);
strokeWeight(0.5);
VolumetricSpace volume=new VolumetricSpaceArray(SCALE,DIMX,DIMY,DIMZ);
diff --git a/examples/volume/VolumeBrush/VolumeBrush.pde b/examples/volume/VolumeBrush/VolumeBrush.pde
index 6189992e..078a41af 100644
--- a/examples/volume/VolumeBrush/VolumeBrush.pde
+++ b/examples/volume/VolumeBrush/VolumeBrush.pde
@@ -40,7 +40,7 @@ import toxi.volume.*;
import toxi.math.waves.*;
import toxi.processing.*;
-import processing.opengl.*;
+
int DIMX=64;
int DIMY=64;
@@ -65,7 +65,7 @@ float density=0.5;
ToxiclibsSupport gfx;
void setup() {
- size(1024,768,OPENGL);
+ size(1024,768,P3D);
smooth(4);
gfx=new ToxiclibsSupport(this);
strokeWeight(0.5);
diff --git a/examples/volume/VolumetricCup/VolumetricCup.pde b/examples/volume/VolumetricCup/VolumetricCup.pde
index 61473b71..880d5589 100644
--- a/examples/volume/VolumetricCup/VolumetricCup.pde
+++ b/examples/volume/VolumetricCup/VolumetricCup.pde
@@ -42,7 +42,7 @@ import toxi.volume.*;
import toxi.math.waves.*;
import toxi.processing.*;
-import processing.opengl.*;
+
int DIMX=96;
int DIMY=96;
@@ -71,7 +71,7 @@ float Z_STEP=0.005;
ToxiclibsSupport gfx;
void setup() {
- size(1024,768,OPENGL);
+ size(1024,768,P3D);
gfx=new ToxiclibsSupport(this);
strokeWeight(0.5);
diff --git a/examples/volume/VoxelizeMesh/VoxelizeMesh.pde b/examples/volume/VoxelizeMesh/VoxelizeMesh.pde
index 9e92cb64..8e118a5c 100644
--- a/examples/volume/VoxelizeMesh/VoxelizeMesh.pde
+++ b/examples/volume/VoxelizeMesh/VoxelizeMesh.pde
@@ -39,7 +39,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-import processing.opengl.*;
+
import toxi.geom.*;
import toxi.geom.mesh.*;
@@ -58,7 +58,7 @@ boolean isWireframe;
float currZoom = 1.25f;
void setup() {
- size(1280, 720, OPENGL);
+ size(1280, 720, P3D);
gfx = new ToxiclibsSupport(this);
initMesh();
}
From a7cb54a0eab0724507867031b155d89492ab2b52 Mon Sep 17 00:00:00 2001
From: Daniel Shiffman
Date: Mon, 1 Aug 2016 14:05:01 -0400
Subject: [PATCH 3/5] new core.jar
---
.classpath | 4 ++--
lib/core.jar | Bin 231565 -> 998603 bytes
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.classpath b/.classpath
index 3883739d..59e74239 100644
--- a/.classpath
+++ b/.classpath
@@ -13,9 +13,7 @@
-
-
@@ -37,5 +35,7 @@
+
+
diff --git a/lib/core.jar b/lib/core.jar
index 74005e082e6e91de894224aa26e029eec3a97c9f..088aeec0777e939f105b443601beb837cf25a24c 100644
GIT binary patch
literal 998603
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