toxiclibs 0.9.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +5 -5
  2. data/.mvn/extensions.xml +1 -1
  3. data/.travis.yml +3 -4
  4. data/CHANGELOG.md +10 -1
  5. data/README.md +3 -3
  6. data/Rakefile +1 -2
  7. data/examples/attract_repel/attractor.rb +1 -1
  8. data/examples/attract_repel/particle.rb +1 -1
  9. data/examples/boolean_shapes.rb +9 -5
  10. data/examples/force_directed/node.rb +1 -1
  11. data/examples/inflate_mesh.rb +1 -1
  12. data/examples/model_align.rb +1 -1
  13. data/examples/physics_type.rb +1 -1
  14. data/examples/povmesh/ftest.rb +3 -3
  15. data/examples/toxiclibs_color_theme.rb +91 -0
  16. data/lib/toxiclibs/version.rb +2 -1
  17. data/lib/toxiclibs.jar +0 -0
  18. data/lib/toxiclibs.rb +54 -37
  19. data/pom.rb +20 -28
  20. data/pom.xml +39 -65
  21. data/src/main/java/module-info.java +22 -0
  22. data/src/{toxi → main/java/toxi}/color/AccessCriteria.java +0 -0
  23. data/src/{toxi → main/java/toxi}/color/AlphaAccessor.java +0 -0
  24. data/src/{toxi → main/java/toxi}/color/CMYKAccessor.java +0 -0
  25. data/src/{toxi → main/java/toxi}/color/CMYKDistanceProxy.java +0 -0
  26. data/src/{toxi → main/java/toxi}/color/ColorGradient.java +0 -0
  27. data/src/{toxi → main/java/toxi}/color/ColorList.java +2 -4
  28. data/src/{toxi → main/java/toxi}/color/ColorRange.java +0 -0
  29. data/src/{toxi → main/java/toxi}/color/ColorTheme.java +0 -0
  30. data/src/{toxi → main/java/toxi}/color/DistanceProxy.java +0 -0
  31. data/src/{toxi → main/java/toxi}/color/HSVAccessor.java +0 -0
  32. data/src/{toxi → main/java/toxi}/color/HSVDistanceProxy.java +0 -0
  33. data/src/{toxi → main/java/toxi}/color/HistEntry.java +0 -0
  34. data/src/{toxi → main/java/toxi}/color/Histogram.java +0 -0
  35. data/src/{toxi → main/java/toxi}/color/Hue.java +0 -0
  36. data/src/{toxi → main/java/toxi}/color/LuminanceAccessor.java +0 -0
  37. data/src/{toxi → main/java/toxi}/color/NamedColor.java +0 -0
  38. data/src/{toxi → main/java/toxi}/color/ProximityComparator.java +0 -0
  39. data/src/{toxi → main/java/toxi}/color/RGBAccessor.java +0 -0
  40. data/src/{toxi → main/java/toxi}/color/RGBDistanceProxy.java +0 -0
  41. data/src/{toxi → main/java/toxi}/color/ReadonlyTColor.java +0 -0
  42. data/src/{toxi → main/java/toxi}/color/TColor.java +0 -0
  43. data/src/{toxi → main/java/toxi}/color/TColorAdapter.java +4 -4
  44. data/src/{toxi → main/java/toxi}/color/ToneMap.java +0 -0
  45. data/src/{toxi → main/java/toxi}/color/theory/AnalogousStrategy.java +0 -0
  46. data/src/{toxi → main/java/toxi}/color/theory/ColorTheoryRegistry.java +0 -0
  47. data/src/{toxi → main/java/toxi}/color/theory/ColorTheoryStrategy.java +0 -0
  48. data/src/{toxi → main/java/toxi}/color/theory/ComplementaryStrategy.java +0 -0
  49. data/src/{toxi → main/java/toxi}/color/theory/CompoundTheoryStrategy.java +0 -0
  50. data/src/{toxi → main/java/toxi}/color/theory/LeftSplitComplementaryStrategy.java +0 -0
  51. data/src/{toxi → main/java/toxi}/color/theory/MonochromeTheoryStrategy.java +0 -0
  52. data/src/{toxi → main/java/toxi}/color/theory/RightSplitComplementaryStrategy.java +0 -0
  53. data/src/{toxi → main/java/toxi}/color/theory/SingleComplementStrategy.java +0 -0
  54. data/src/{toxi → main/java/toxi}/color/theory/SplitComplementaryStrategy.java +0 -0
  55. data/src/{toxi → main/java/toxi}/color/theory/TetradTheoryStrategy.java +0 -0
  56. data/src/{toxi → main/java/toxi}/color/theory/TriadTheoryStrategy.java +0 -0
  57. data/src/{toxi → main/java/toxi}/data/csv/CSVAdapter.java +0 -0
  58. data/src/{toxi → main/java/toxi}/data/csv/CSVFieldMapper.java +0 -0
  59. data/src/{toxi → main/java/toxi}/data/csv/CSVListener.java +0 -0
  60. data/src/{toxi → main/java/toxi}/data/csv/CSVParser.java +0 -0
  61. data/src/{toxi → main/java/toxi}/data/feeds/AtomAuthor.java +2 -2
  62. data/src/{toxi → main/java/toxi}/data/feeds/AtomContent.java +3 -4
  63. data/src/{toxi → main/java/toxi}/data/feeds/AtomEntry.java +9 -13
  64. data/src/main/java/toxi/data/feeds/AtomFeed.java +91 -0
  65. data/src/{toxi → main/java/toxi}/data/feeds/AtomLink.java +3 -2
  66. data/src/{toxi → main/java/toxi}/data/feeds/RSSChannel.java +10 -11
  67. data/src/{toxi → main/java/toxi}/data/feeds/RSSEnclosure.java +3 -3
  68. data/src/{toxi → main/java/toxi}/data/feeds/RSSItem.java +11 -13
  69. data/src/{toxi → main/java/toxi}/data/feeds/util/EntityStripper.java +0 -0
  70. data/src/{toxi → main/java/toxi}/data/feeds/util/Iso8601DateAdapter.java +6 -7
  71. data/src/{toxi → main/java/toxi}/data/feeds/util/Rfc822DateAdapter.java +5 -6
  72. data/src/{toxi → main/java/toxi}/geom/AABB.java +8 -9
  73. data/src/{toxi → main/java/toxi}/geom/Axis3D.java +0 -0
  74. data/src/{toxi → main/java/toxi}/geom/AxisAlignedCylinder.java +0 -0
  75. data/src/{toxi → main/java/toxi}/geom/BernsteinPolynomial.java +0 -0
  76. data/src/{toxi → main/java/toxi}/geom/BezierCurve2D.java +0 -0
  77. data/src/{toxi → main/java/toxi}/geom/BezierCurve3D.java +0 -0
  78. data/src/{toxi → main/java/toxi}/geom/BooleanShapeBuilder.java +0 -0
  79. data/src/{toxi → main/java/toxi}/geom/BoxIntersector.java +0 -0
  80. data/src/{toxi → main/java/toxi}/geom/Circle.java +2 -2
  81. data/src/{toxi → main/java/toxi}/geom/CircleIntersector.java +0 -0
  82. data/src/{toxi → main/java/toxi}/geom/Cone.java +0 -0
  83. data/src/{toxi → main/java/toxi}/geom/ConvexPolygonClipper.java +0 -0
  84. data/src/{toxi → main/java/toxi}/geom/CoordinateExtractor.java +0 -0
  85. data/src/{toxi → main/java/toxi}/geom/Ellipse.java +0 -0
  86. data/src/{toxi → main/java/toxi}/geom/GMatrix.java +0 -0
  87. data/src/{toxi → main/java/toxi}/geom/GVector.java +0 -0
  88. data/src/{toxi → main/java/toxi}/geom/GlobalGridTesselator.java +0 -0
  89. data/src/{toxi → main/java/toxi}/geom/GridTesselator.java +0 -0
  90. data/src/{toxi → main/java/toxi}/geom/Intersector2D.java +0 -0
  91. data/src/{toxi → main/java/toxi}/geom/Intersector3D.java +0 -0
  92. data/src/{toxi → main/java/toxi}/geom/IsectData2D.java +0 -0
  93. data/src/{toxi → main/java/toxi}/geom/IsectData3D.java +0 -0
  94. data/src/{toxi → main/java/toxi}/geom/Line2D.java +1 -2
  95. data/src/{toxi → main/java/toxi}/geom/Line3D.java +1 -2
  96. data/src/{toxi → main/java/toxi}/geom/LineStrip2D.java +2 -2
  97. data/src/{toxi → main/java/toxi}/geom/LineStrip3D.java +2 -2
  98. data/src/{toxi → main/java/toxi}/geom/LocalGridTesselator.java +0 -0
  99. data/src/{toxi → main/java/toxi}/geom/Matrix3d.java +0 -0
  100. data/src/{toxi → main/java/toxi}/geom/Matrix4f.java +0 -0
  101. data/src/{toxi → main/java/toxi}/geom/Matrix4x4.java +0 -0
  102. data/src/{toxi → main/java/toxi}/geom/MatrixSizeException.java +0 -0
  103. data/src/{toxi → main/java/toxi}/geom/OctreeVisitor.java +0 -0
  104. data/src/{toxi → main/java/toxi}/geom/Origin3D.java +12 -6
  105. data/src/{toxi → main/java/toxi}/geom/Plane.java +3 -5
  106. data/src/{toxi → main/java/toxi}/geom/PlaneIntersector.java +0 -0
  107. data/src/{toxi → main/java/toxi}/geom/PointCloud3D.java +15 -12
  108. data/src/{toxi → main/java/toxi}/geom/PointOctree.java +0 -0
  109. data/src/{toxi → main/java/toxi}/geom/PointQuadtree.java +0 -0
  110. data/src/{toxi → main/java/toxi}/geom/Polygon2D.java +34 -45
  111. data/src/{toxi → main/java/toxi}/geom/PolygonClipper2D.java +0 -0
  112. data/src/{toxi → main/java/toxi}/geom/PolygonTesselator.java +0 -0
  113. data/src/{toxi → main/java/toxi}/geom/QuadtreeVisitor.java +0 -0
  114. data/src/{toxi → main/java/toxi}/geom/Quaternion.java +3 -5
  115. data/src/{toxi → main/java/toxi}/geom/Ray2D.java +4 -5
  116. data/src/{toxi → main/java/toxi}/geom/Ray3D.java +3 -5
  117. data/src/{toxi → main/java/toxi}/geom/Ray3DIntersector.java +0 -0
  118. data/src/{toxi → main/java/toxi}/geom/ReadonlyVec2D.java +0 -0
  119. data/src/{toxi → main/java/toxi}/geom/ReadonlyVec3D.java +0 -0
  120. data/src/{toxi → main/java/toxi}/geom/ReadonlyVec4D.java +0 -0
  121. data/src/{toxi → main/java/toxi}/geom/Rect.java +3 -5
  122. data/src/{toxi → main/java/toxi}/geom/Reflector3D.java +0 -0
  123. data/src/{toxi → main/java/toxi}/geom/Shape2D.java +0 -0
  124. data/src/{toxi → main/java/toxi}/geom/Shape3D.java +0 -0
  125. data/src/{toxi → main/java/toxi}/geom/SingularMatrixException.java +0 -0
  126. data/src/{toxi → main/java/toxi}/geom/SpatialBins.java +0 -0
  127. data/src/{toxi → main/java/toxi}/geom/SpatialIndex.java +0 -0
  128. data/src/{toxi → main/java/toxi}/geom/Sphere.java +3 -5
  129. data/src/{toxi → main/java/toxi}/geom/SphereIntersectorReflector.java +0 -0
  130. data/src/{toxi → main/java/toxi}/geom/Spline2D.java +12 -16
  131. data/src/{toxi → main/java/toxi}/geom/Spline3D.java +12 -16
  132. data/src/{toxi → main/java/toxi}/geom/SutherlandHodgemanClipper.java +0 -0
  133. data/src/{toxi → main/java/toxi}/geom/Triangle2D.java +4 -7
  134. data/src/{toxi → main/java/toxi}/geom/Triangle3D.java +5 -8
  135. data/src/{toxi → main/java/toxi}/geom/TriangleIntersector.java +0 -0
  136. data/src/{toxi → main/java/toxi}/geom/Vec2D.java +3 -3
  137. data/src/{toxi → main/java/toxi}/geom/Vec3D.java +4 -4
  138. data/src/{toxi → main/java/toxi}/geom/Vec4D.java +5 -5
  139. data/src/{toxi → main/java/toxi}/geom/VecMathUtil.java +0 -0
  140. data/src/{toxi → main/java/toxi}/geom/XAxisCylinder.java +0 -0
  141. data/src/{toxi → main/java/toxi}/geom/YAxisCylinder.java +0 -0
  142. data/src/{toxi → main/java/toxi}/geom/ZAxisCylinder.java +0 -0
  143. data/src/{toxi → main/java/toxi}/geom/mesh/BezierPatch.java +0 -0
  144. data/src/{toxi → main/java/toxi}/geom/mesh/BoxSelector.java +0 -0
  145. data/src/{toxi → main/java/toxi}/geom/mesh/DefaultSTLColorModel.java +0 -0
  146. data/src/{toxi → main/java/toxi}/geom/mesh/DefaultSelector.java +0 -0
  147. data/src/{toxi → main/java/toxi}/geom/mesh/Face.java +0 -0
  148. data/src/{toxi → main/java/toxi}/geom/mesh/LaplacianSmooth.java +0 -0
  149. data/src/{toxi → main/java/toxi}/geom/mesh/MaterialiseSTLColorModel.java +0 -0
  150. data/src/{toxi → main/java/toxi}/geom/mesh/Mesh3D.java +0 -0
  151. data/src/{toxi → main/java/toxi}/geom/mesh/MeshIntersector.java +0 -0
  152. data/src/{toxi → main/java/toxi}/geom/mesh/OBJWriter.java +0 -0
  153. data/src/{toxi → main/java/toxi}/geom/mesh/PLYWriter.java +0 -0
  154. data/src/{toxi → main/java/toxi}/geom/mesh/PlaneSelector.java +0 -0
  155. data/src/{toxi → main/java/toxi}/geom/mesh/STLColorModel.java +0 -0
  156. data/src/{toxi → main/java/toxi}/geom/mesh/STLReader.java +0 -0
  157. data/src/{toxi → main/java/toxi}/geom/mesh/STLWriter.java +0 -0
  158. data/src/{toxi → main/java/toxi}/geom/mesh/SphereFunction.java +0 -0
  159. data/src/{toxi → main/java/toxi}/geom/mesh/SphericalHarmonics.java +0 -0
  160. data/src/{toxi → main/java/toxi}/geom/mesh/SuperEllipsoid.java +0 -0
  161. data/src/{toxi → main/java/toxi}/geom/mesh/SurfaceFunction.java +0 -0
  162. data/src/{toxi → main/java/toxi}/geom/mesh/SurfaceMeshBuilder.java +0 -0
  163. data/src/{toxi → main/java/toxi}/geom/mesh/Terrain.java +0 -0
  164. data/src/{toxi → main/java/toxi}/geom/mesh/TriangleMesh.java +0 -0
  165. data/src/{toxi → main/java/toxi}/geom/mesh/Vertex.java +0 -0
  166. data/src/{toxi → main/java/toxi}/geom/mesh/VertexSelector.java +0 -0
  167. data/src/{toxi → main/java/toxi}/geom/mesh/WEFace.java +0 -0
  168. data/src/{toxi → main/java/toxi}/geom/mesh/WEMeshFilterStrategy.java +0 -0
  169. data/src/{toxi → main/java/toxi}/geom/mesh/WETriangleMesh.java +0 -0
  170. data/src/{toxi → main/java/toxi}/geom/mesh/WEVertex.java +0 -0
  171. data/src/{toxi → main/java/toxi}/geom/mesh/WingedEdge.java +2 -2
  172. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/CentroidSubdiv.java +0 -0
  173. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DisplacementSubdivision.java +0 -0
  174. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DualDisplacementSubdivision.java +0 -0
  175. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DualSubdivision.java +0 -0
  176. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/EdgeLengthComparator.java +0 -0
  177. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/FaceCountComparator.java +0 -0
  178. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointDisplacementSubdivision.java +0 -0
  179. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointSubdiv.java +0 -0
  180. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointSubdivision.java +0 -0
  181. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/NewSubdivStrategy.java +0 -0
  182. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/NormalDisplacementSubdivision.java +0 -0
  183. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/SubdivisionStrategy.java +0 -0
  184. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/TriSubdivision.java +0 -0
  185. data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayTriangle.java +0 -0
  186. data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayTriangulation.java +5 -7
  187. data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayVertex.java +0 -0
  188. data/src/{toxi → main/java/toxi}/geom/mesh2d/Voronoi.java +0 -0
  189. data/src/{toxi → main/java/toxi}/geom/nurbs/BasicNurbsCurve.java +0 -0
  190. data/src/{toxi → main/java/toxi}/geom/nurbs/BasicNurbsSurface.java +0 -0
  191. data/src/{toxi → main/java/toxi}/geom/nurbs/ControlNet.java +0 -0
  192. data/src/{toxi → main/java/toxi}/geom/nurbs/CurveCreator.java +0 -0
  193. data/src/{toxi → main/java/toxi}/geom/nurbs/CurveUtils.java +0 -0
  194. data/src/{toxi → main/java/toxi}/geom/nurbs/InterpolationException.java +0 -0
  195. data/src/{toxi → main/java/toxi}/geom/nurbs/KnotVector.java +0 -0
  196. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsCreator.java +2 -2
  197. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsCurve.java +0 -0
  198. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsMeshCreator.java +0 -0
  199. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsSurface.java +0 -0
  200. data/src/{toxi → main/java/toxi}/image/util/Filter8bit.java +0 -0
  201. data/src/{toxi → main/java/toxi}/image/util/TiledFrameExporter.java +0 -0
  202. data/src/{toxi → main/java/toxi}/math/BezierInterpolation.java +0 -0
  203. data/src/{toxi → main/java/toxi}/math/CircularInterpolation.java +0 -0
  204. data/src/{toxi → main/java/toxi}/math/CosineInterpolation.java +0 -0
  205. data/src/{toxi → main/java/toxi}/math/DecimatedInterpolation.java +0 -0
  206. data/src/{toxi → main/java/toxi}/math/ExponentialInterpolation.java +0 -0
  207. data/src/{toxi → main/java/toxi}/math/InterpolateStrategy.java +0 -0
  208. data/src/{toxi → main/java/toxi}/math/Interpolation2D.java +0 -0
  209. data/src/{toxi → main/java/toxi}/math/LinearInterpolation.java +0 -0
  210. data/src/{toxi → main/java/toxi}/math/MathUtils.java +0 -0
  211. data/src/{toxi → main/java/toxi}/math/NonLinearScaleMap.java +0 -0
  212. data/src/{toxi → main/java/toxi}/math/ScaleMap.java +0 -0
  213. data/src/{toxi → main/java/toxi}/math/SigmoidInterpolation.java +0 -0
  214. data/src/{toxi → main/java/toxi}/math/SinCosLUT.java +0 -0
  215. data/src/{toxi → main/java/toxi}/math/ThresholdInterpolation.java +0 -0
  216. data/src/{toxi → main/java/toxi}/math/ZoomLensInterpolation.java +0 -0
  217. data/src/{toxi → main/java/toxi}/math/conversion/UnitTranslator.java +0 -0
  218. data/src/{toxi → main/java/toxi}/math/noise/PerlinNoise.java +0 -0
  219. data/src/{toxi → main/java/toxi}/math/noise/SimplexNoise.java +0 -0
  220. data/src/{toxi → main/java/toxi}/math/waves/AMFMSineWave.java +0 -0
  221. data/src/{toxi → main/java/toxi}/math/waves/AbstractWave.java +0 -0
  222. data/src/{toxi → main/java/toxi}/math/waves/ConstantWave.java +0 -0
  223. data/src/{toxi → main/java/toxi}/math/waves/FMHarmonicSquareWave.java +0 -0
  224. data/src/{toxi → main/java/toxi}/math/waves/FMSawtoothWave.java +0 -0
  225. data/src/{toxi → main/java/toxi}/math/waves/FMSineWave.java +0 -0
  226. data/src/{toxi → main/java/toxi}/math/waves/FMSquareWave.java +0 -0
  227. data/src/{toxi → main/java/toxi}/math/waves/FMTriangleWave.java +0 -0
  228. data/src/{toxi → main/java/toxi}/math/waves/SineWave.java +2 -2
  229. data/src/{toxi → main/java/toxi}/math/waves/Wave2D.java +0 -0
  230. data/src/{toxi → main/java/toxi}/math/waves/WaveState.java +0 -0
  231. data/src/{toxi → main/java/toxi}/music/scale/AbstractScale.java +0 -0
  232. data/src/{toxi → main/java/toxi}/music/scale/GenericScale.java +0 -0
  233. data/src/{toxi → main/java/toxi}/music/scale/MajorScale.java +0 -0
  234. data/src/{toxi → main/java/toxi}/newmesh/AttributedEdge.java +0 -0
  235. data/src/{toxi → main/java/toxi}/newmesh/AttributedFace.java +0 -0
  236. data/src/{toxi → main/java/toxi}/newmesh/IndexedTriangleMesh.java +70 -69
  237. data/src/{toxi → main/java/toxi}/newmesh/MeshAttributeCompiler.java +0 -0
  238. data/src/{toxi → main/java/toxi}/newmesh/MeshFaceNormalCompiler.java +0 -0
  239. data/src/{toxi → main/java/toxi}/newmesh/MeshUVCompiler.java +0 -0
  240. data/src/{toxi → main/java/toxi}/newmesh/MeshVertexColorCompiler.java +0 -0
  241. data/src/{toxi → main/java/toxi}/newmesh/MeshVertexCompiler.java +0 -0
  242. data/src/{toxi → main/java/toxi}/newmesh/MeshVertexNormalCompiler.java +0 -0
  243. data/src/{toxi → main/java/toxi}/newmesh/SpatialIndex.java +0 -0
  244. data/src/{toxi → main/java/toxi}/physics2d/ParticlePath2D.java +4 -3
  245. data/src/{toxi → main/java/toxi}/physics2d/ParticleString2D.java +2 -2
  246. data/src/{toxi → main/java/toxi}/physics2d/PullBackSpring2D.java +0 -0
  247. data/src/{toxi → main/java/toxi}/physics2d/VerletConstrainedSpring2D.java +0 -0
  248. data/src/{toxi → main/java/toxi}/physics2d/VerletMinDistanceSpring2D.java +0 -0
  249. data/src/main/java/toxi/physics2d/VerletParticle2D.java +449 -0
  250. data/src/main/java/toxi/physics2d/VerletPhysics2D.java +440 -0
  251. data/src/{toxi → main/java/toxi}/physics2d/VerletSpring2D.java +0 -0
  252. data/src/main/java/toxi/physics2d/behaviors/AttractionBehavior2D.java +211 -0
  253. data/src/{toxi → main/java/toxi}/physics2d/behaviors/ConstantForceBehavior2D.java +0 -0
  254. data/src/{toxi → main/java/toxi}/physics2d/behaviors/GravityBehavior2D.java +0 -0
  255. data/src/{toxi → main/java/toxi}/physics2d/behaviors/ParticleBehavior2D.java +0 -0
  256. data/src/{toxi → main/java/toxi}/physics2d/constraints/AngularConstraint.java +0 -0
  257. data/src/{toxi → main/java/toxi}/physics2d/constraints/AxisConstraint.java +0 -0
  258. data/src/{toxi → main/java/toxi}/physics2d/constraints/CircularConstraint.java +0 -0
  259. data/src/{toxi → main/java/toxi}/physics2d/constraints/MaxConstraint.java +0 -0
  260. data/src/{toxi → main/java/toxi}/physics2d/constraints/MinConstraint.java +0 -0
  261. data/src/{toxi → main/java/toxi}/physics2d/constraints/ParticleConstraint2D.java +0 -0
  262. data/src/{toxi → main/java/toxi}/physics2d/constraints/PolygonConstraint.java +0 -0
  263. data/src/{toxi → main/java/toxi}/physics2d/constraints/RectConstraint.java +0 -0
  264. data/src/{toxi → main/java/toxi}/physics3d/ParticlePath3D.java +4 -3
  265. data/src/{toxi → main/java/toxi}/physics3d/ParticleString3D.java +2 -2
  266. data/src/{toxi → main/java/toxi}/physics3d/PullBackSpring3D.java +0 -0
  267. data/src/{toxi → main/java/toxi}/physics3d/VerletConstrainedSpring3D.java +0 -0
  268. data/src/{toxi → main/java/toxi}/physics3d/VerletMinDistanceSpring3D.java +0 -0
  269. data/src/main/java/toxi/physics3d/VerletParticle3D.java +377 -0
  270. data/src/{toxi → main/java/toxi}/physics3d/VerletPhysics3D.java +0 -0
  271. data/src/{toxi → main/java/toxi}/physics3d/VerletSpring3D.java +0 -0
  272. data/src/{toxi → main/java/toxi}/physics3d/behaviors/AttractionBehavior3D.java +0 -0
  273. data/src/{toxi → main/java/toxi}/physics3d/behaviors/ConstantForceBehavior3D.java +0 -0
  274. data/src/{toxi → main/java/toxi}/physics3d/behaviors/GravityBehavior3D.java +0 -0
  275. data/src/{toxi → main/java/toxi}/physics3d/behaviors/ParticleBehavior3D.java +0 -0
  276. data/src/{toxi → main/java/toxi}/physics3d/constraints/AxisConstraint.java +1 -0
  277. data/src/{toxi → main/java/toxi}/physics3d/constraints/BoxConstraint.java +0 -0
  278. data/src/{toxi → main/java/toxi}/physics3d/constraints/CylinderConstraint.java +1 -0
  279. data/src/{toxi → main/java/toxi}/physics3d/constraints/MaxConstraint.java +1 -0
  280. data/src/{toxi → main/java/toxi}/physics3d/constraints/MinConstraint.java +1 -0
  281. data/src/{toxi → main/java/toxi}/physics3d/constraints/ParticleConstraint3D.java +0 -0
  282. data/src/{toxi → main/java/toxi}/physics3d/constraints/PlaneConstraint.java +0 -0
  283. data/src/{toxi → main/java/toxi}/physics3d/constraints/SoftBoxConstraint.java +38 -38
  284. data/src/{toxi → main/java/toxi}/physics3d/constraints/SphereConstraint.java +1 -0
  285. data/src/{toxi → main/java/toxi}/processing/ArrowModifier.java +0 -0
  286. data/src/{toxi → main/java/toxi}/processing/DashedLineModifier.java +0 -0
  287. data/src/{toxi → main/java/toxi}/processing/DeltaOrientationMapper.java +0 -0
  288. data/src/{toxi → main/java/toxi}/processing/Line2DRenderModifier.java +0 -0
  289. data/src/{toxi → main/java/toxi}/processing/MeshToVBO.java +0 -0
  290. data/src/{toxi → main/java/toxi}/processing/NormalMapper.java +0 -0
  291. data/src/{toxi → main/java/toxi}/processing/POVInterface.java +0 -0
  292. data/src/{toxi → main/java/toxi}/processing/POVMesh.java +0 -0
  293. data/src/{toxi → main/java/toxi}/processing/POVWriter.java +0 -0
  294. data/src/{toxi → main/java/toxi}/processing/RCOpaque.java +0 -0
  295. data/src/{toxi → main/java/toxi}/processing/RCTransp.java +0 -0
  296. data/src/{toxi → main/java/toxi}/processing/TextureBuilder.java +0 -0
  297. data/src/{toxi → main/java/toxi}/processing/Textures.java +0 -0
  298. data/src/{toxi → main/java/toxi}/processing/ToxiclibsSupport.java +3 -3
  299. data/src/{toxi → main/java/toxi}/processing/Tracing.java +0 -0
  300. data/src/{toxi → main/java/toxi}/processing/XYZNormalMapper.java +0 -0
  301. data/src/{toxi → main/java/toxi}/sim/automata/CAMatrix.java +0 -0
  302. data/src/{toxi → main/java/toxi}/sim/automata/CARule.java +0 -0
  303. data/src/{toxi → main/java/toxi}/sim/automata/CARule2D.java +0 -0
  304. data/src/{toxi → main/java/toxi}/sim/automata/CAWolfram1D.java +0 -0
  305. data/src/{toxi → main/java/toxi}/sim/automata/EvolvableMatrix.java +0 -0
  306. data/src/{toxi → main/java/toxi}/sim/automata/MatrixEvolver.java +0 -0
  307. data/src/{toxi → main/java/toxi}/sim/dla/BottomUpOrder.java +0 -0
  308. data/src/{toxi → main/java/toxi}/sim/dla/DLA.java +0 -0
  309. data/src/{toxi → main/java/toxi}/sim/dla/DLAConfiguration.java +0 -0
  310. data/src/{toxi → main/java/toxi}/sim/dla/DLAEventAdapter.java +0 -0
  311. data/src/{toxi → main/java/toxi}/sim/dla/DLAEventListener.java +0 -0
  312. data/src/{toxi → main/java/toxi}/sim/dla/DLAGuideLines.java +0 -0
  313. data/src/{toxi → main/java/toxi}/sim/dla/DLAParticle.java +0 -0
  314. data/src/{toxi → main/java/toxi}/sim/dla/DLASegment.java +0 -0
  315. data/src/{toxi → main/java/toxi}/sim/dla/PipelineOrder.java +0 -0
  316. data/src/{toxi → main/java/toxi}/sim/dla/RadialDistanceOrder.java +0 -0
  317. data/src/{toxi → main/java/toxi}/sim/erosion/ErosionFunction.java +0 -0
  318. data/src/{toxi → main/java/toxi}/sim/erosion/TalusAngleErosion.java +0 -0
  319. data/src/{toxi → main/java/toxi}/sim/erosion/ThermalErosion.java +0 -0
  320. data/src/{toxi → main/java/toxi}/sim/fluids/FluidSolver2D.java +0 -0
  321. data/src/{toxi → main/java/toxi}/sim/fluids/FluidSolver3D.java +0 -0
  322. data/src/{toxi → main/java/toxi}/sim/grayscott/GrayScott.java +0 -0
  323. data/src/{toxi → main/java/toxi}/util/DateUtils.java +0 -0
  324. data/src/{toxi → main/java/toxi}/util/FileSequenceDescriptor.java +0 -0
  325. data/src/main/java/toxi/util/FileUtils.java +443 -0
  326. data/src/{toxi → main/java/toxi}/util/datatypes/ArraySet.java +0 -0
  327. data/src/{toxi → main/java/toxi}/util/datatypes/ArrayUtil.java +0 -0
  328. data/src/{toxi → main/java/toxi}/util/datatypes/BiasedDoubleRange.java +3 -3
  329. data/src/{toxi → main/java/toxi}/util/datatypes/BiasedFloatRange.java +2 -3
  330. data/src/{toxi → main/java/toxi}/util/datatypes/BiasedIntegerRange.java +3 -3
  331. data/src/{toxi → main/java/toxi}/util/datatypes/DoubleRange.java +3 -3
  332. data/src/{toxi → main/java/toxi}/util/datatypes/FloatRange.java +3 -3
  333. data/src/{toxi → main/java/toxi}/util/datatypes/GenericSet.java +0 -0
  334. data/src/{toxi → main/java/toxi}/util/datatypes/IntegerRange.java +3 -3
  335. data/src/{toxi → main/java/toxi}/util/datatypes/IntegerSet.java +0 -0
  336. data/src/{toxi → main/java/toxi}/util/datatypes/ItemIndex.java +0 -0
  337. data/src/{toxi → main/java/toxi}/util/datatypes/SingletonRegistry.java +0 -0
  338. data/src/{toxi → main/java/toxi}/util/datatypes/TypedProperties.java +0 -0
  339. data/src/{toxi → main/java/toxi}/util/datatypes/UndirectedGraph.java +0 -0
  340. data/src/{toxi → main/java/toxi}/util/datatypes/UniqueItemIndex.java +0 -0
  341. data/src/{toxi → main/java/toxi}/util/datatypes/WeightedRandomEntry.java +0 -0
  342. data/src/{toxi → main/java/toxi}/util/datatypes/WeightedRandomSet.java +0 -0
  343. data/src/{toxi → main/java/toxi}/util/events/EventDispatcher.java +0 -0
  344. data/src/{toxi → main/java/toxi}/volume/AdditiveBrush.java +0 -0
  345. data/src/{toxi → main/java/toxi}/volume/ArrayIsoSurface.java +0 -0
  346. data/src/{toxi → main/java/toxi}/volume/BoxBrush.java +0 -0
  347. data/src/{toxi → main/java/toxi}/volume/BrushMode.java +0 -0
  348. data/src/{toxi → main/java/toxi}/volume/HashIsoSurface.java +0 -0
  349. data/src/{toxi → main/java/toxi}/volume/IsoSurface.java +0 -0
  350. data/src/{toxi → main/java/toxi}/volume/MarchingCubesIndex.java +0 -0
  351. data/src/{toxi → main/java/toxi}/volume/MeshLatticeBuilder.java +0 -0
  352. data/src/{toxi → main/java/toxi}/volume/MeshVoxelizer.java +0 -0
  353. data/src/{toxi → main/java/toxi}/volume/MultiplyBrush.java +0 -0
  354. data/src/{toxi → main/java/toxi}/volume/PeakBrush.java +0 -0
  355. data/src/{toxi → main/java/toxi}/volume/ReplaceBrush.java +0 -0
  356. data/src/{toxi → main/java/toxi}/volume/RoundBrush.java +0 -0
  357. data/src/{toxi → main/java/toxi}/volume/VolumetricBrush.java +0 -0
  358. data/src/{toxi → main/java/toxi}/volume/VolumetricHashMap.java +0 -0
  359. data/src/{toxi → main/java/toxi}/volume/VolumetricSpace.java +0 -0
  360. data/src/{toxi → main/java/toxi}/volume/VolumetricSpaceArray.java +0 -0
  361. data/src/test/java/module-info.java +10 -0
  362. data/src/{BooleanShapes.java → test/java/toxi/BooleanShapes.java} +2 -2
  363. data/toxiclibs.gemspec +7 -8
  364. metadata +357 -368
  365. data/.mvn/wrapper/maven-wrapper.properties +0 -1
  366. data/lib/args4j-2.0.31.jar +0 -0
  367. data/src/com/toxi/net/ClientListener.java +0 -41
  368. data/src/com/toxi/net/ServerListener.java +0 -70
  369. data/src/com/toxi/net/ServerListenerAdapter.java +0 -47
  370. data/src/com/toxi/net/ServerState.java +0 -18
  371. data/src/com/toxi/net/UDPConnection.java +0 -66
  372. data/src/com/toxi/net/UDPSyncClient.java +0 -81
  373. data/src/com/toxi/net/UDPSyncServer.java +0 -450
  374. data/src/com/toxi/nio/UDPClient.java +0 -121
  375. data/src/com/toxi/nio/UDPClientState.java +0 -32
  376. data/src/com/toxi/nio/UDPServer.java +0 -129
  377. data/src/toxi/data/feeds/AtomFeed.java +0 -129
  378. data/src/toxi/data/feeds/RSSFeed.java +0 -99
  379. data/src/toxi/physics2d/VerletParticle2D.java +0 -457
  380. data/src/toxi/physics2d/VerletPhysics2D.java +0 -448
  381. data/src/toxi/physics2d/behaviors/AttractionBehavior2D.java +0 -212
  382. data/src/toxi/physics3d/VerletParticle3D.java +0 -385
  383. data/src/toxi/util/FileUtils.java +0 -467
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d3766bf61befbcc60a27816721ef8528c930f0a5
4
- data.tar.gz: cea30dbee7899c25c4183b78b0ab13f894f71a1d
2
+ SHA256:
3
+ metadata.gz: ea1e1885aff507b0bb35cf61ddab9b086553d07b35be64e3b1673cbacc7846ce
4
+ data.tar.gz: dc1955313145c89dafbe4ace7b55d15af37f0d6fafee423a3a700e423ed14fca
5
5
  SHA512:
6
- metadata.gz: 76c77948c8763555278cb9f32eb784f875ffac5388a7d337201d978c514cfbe666811efa3f600823ce2a237f665670772e64c3b380f29b4e0abf9db08d272ab2
7
- data.tar.gz: 5e6f35deccaf8e35809cf02495b8377b606c57929b5579ef0615085c90a804f78c34f4cd1b4823ecb41058e1b2c6e1706b55fd7fab91e697ae60d094973f77b8
6
+ metadata.gz: 466378a7a6896aad508c6de8928253695fa891aca794a90906e9481021195f556cd42363a79f50bf33e4d9c7dd4e65ff4ab7d4dd48f4a54acd8696abaae76a84
7
+ data.tar.gz: c1b115629d788cc547cc37fedeb07406c9f55d572f4553bc842bc7b07aa00cbf5b17a961fd523463924adca4e593273248bb9f072e8cc3c3d2de3a50058cb27e
data/.mvn/extensions.xml CHANGED
@@ -3,6 +3,6 @@
3
3
  <extension>
4
4
  <groupId>io.takari.polyglot</groupId>
5
5
  <artifactId>polyglot-ruby</artifactId>
6
- <version>0.1.18</version>
6
+ <version>0.4.6</version>
7
7
  </extension>
8
8
  </extensions>
data/.travis.yml CHANGED
@@ -1,10 +1,9 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
 
4
- rvm:
5
- - jruby-9.1.6.0
4
+ rvm:
5
+ - jruby-9.2.8.0
6
6
  jdk:
7
- - oraclejdk8
7
+ - openjdk11
8
8
  os:
9
9
  - linux
10
-
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
+ **v2.1.0** Add module-info.
1
2
 
2
- **v0.9.2** Bump processing version, removed audio, refactored color, including export to ruby string.
3
+ **v2.0.0** Bump to target minimum of jdk11 thus removing JAXB annotations (possibly esoteric and underused anyway).
4
+
5
+ **v1.0.1** Bump processing to 3.4, support toxiclibs Voronoi etc
6
+
7
+ **v1.0.0** About time we got to 1.0.0 bump processing to 3.3.4
8
+
9
+ **v0.9.3** Bump processing version to processing-3.3.2.
10
+
11
+ **v0.9.2** Bump processing version, add `to_ruby_string` method to `ColorList` see examples, allow use of `TColor` without `Toxi` prefix. Removed audio.
3
12
 
4
13
  **v0.9.1** Make it easier to load PerlinNoise and SimplexNoise
5
14
 
data/README.md CHANGED
@@ -8,10 +8,10 @@
8
8
  gem install toxiclibs
9
9
  ```
10
10
 
11
- ### NB: Use version 0.4 for ruby-processing, and 0.9.2 for propane and JRubyArt
11
+ ### NB: Use version 0.4 for ruby-processing, and 2.1.0+ for propane, PiCrate and JRubyArt
12
12
 
13
13
  NB: Build is only failing because current version of processing is not available at maven central.
14
- This gem provides Karsten Schmidts (aka toxi, @postspectacular) toxiclibs jars for 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][] has not yet been released (although [Dan Shiffman][] has released a version for processing-3.0+). 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.9.2 features java code updated to use java lambda (jdk8) and was compiled against processing-3.3 core.jar. The audio library was not working and has been dropped since version 0.9.2.
14
+ This gem provides Karsten Schmidts (aka toxi, @postspectacular) toxiclibs jars for 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][] has not yet been released (although [Dan Shiffman][] has released a version for processing-3.0+). 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).
15
15
 
16
16
  ![grayscott image](http://4.bp.blogspot.com/-d4MiL4_0Njk/VFJMv6VUicI/AAAAAAAAEgY/fFAfrXDxNXM/s400/grayscott.png)
17
17
 
@@ -27,7 +27,7 @@ This gem provides Karsten Schmidts (aka toxi, @postspectacular) toxiclibs jars f
27
27
 
28
28
  ### Licensing
29
29
 
30
- I should be clear that the original toxiclibs is the work of Karsten Schmidt see [Copyright][]
30
+ It should be clear that the original toxiclibs is the work of Karsten Schmidt see [Copyright][]
31
31
 
32
32
  This demo & library is free software you can redistribute it and/or
33
33
  modify it under the terms of the GNU Lesser General Public
data/Rakefile CHANGED
@@ -18,13 +18,12 @@ end
18
18
 
19
19
  desc 'Build gem'
20
20
  task :gem do
21
- sh "gem build toxiclibs.gemspec"
21
+ sh "jgem build toxiclibs.gemspec"
22
22
  end
23
23
 
24
24
  desc 'Compile'
25
25
  task :compile do
26
26
  sh "mvn package"
27
- sh "mvn dependency:copy"
28
27
  sh "mv target/toxiclibs.jar lib"
29
28
  end
30
29
 
@@ -10,7 +10,7 @@ class Attractor < Physics::VerletParticle2D
10
10
 
11
11
  def initialize(loc)
12
12
  super(loc)
13
- @app = $app
13
+ @app = Processing.app
14
14
  @r = 24
15
15
  physics.add_particle(self)
16
16
  physics.add_behavior(Physics::AttractionBehavior2D.new(self, width, 0.1))
@@ -12,7 +12,7 @@ class Particle < Physics::VerletParticle2D
12
12
 
13
13
  def initialize(loc)
14
14
  super(loc)
15
- @app = $app
15
+ @app = Processing.app
16
16
  @r = 8
17
17
  physics.add_particle(self)
18
18
  physics.add_behavior(Physics::AttractionBehavior2D.new(self, r * 4, -1))
@@ -1,17 +1,22 @@
1
1
  require 'toxiclibs'
2
+ # Original toxi example had ellipse and circle but there were flaws in union and
3
+ # and XOR rendering caused by ellipse shapes
2
4
  load_library :control_panel
3
5
  attr_reader :gfx, :bool, :panel, :type, :hide, :polies
4
6
  include Toxi
5
7
 
6
- TYPE = [BooleanShapeBuilder::Type::UNION, BooleanShapeBuilder::Type::XOR]
8
+ TYPE = [
9
+ BooleanShapeBuilder::Type::UNION,
10
+ BooleanShapeBuilder::Type::XOR
11
+ ]
7
12
  KEY = %w(union xor).freeze
8
13
 
9
14
  def setup
10
15
  sketch_title 'Boolean Shapes'
11
- @gfx = Gfx::ToxiclibsSupport.new(self)
16
+ @gfx = Gfx::ToxiclibsSupport.new(self, self.g)
12
17
  @bool = KEY.zip(TYPE).to_h
13
18
  control_panel do |c|
14
- c.title = 'Control Panel'
19
+ c.title = 'Union or XOR'
15
20
  c.menu :type, KEY, 'union'
16
21
  @panel = c
17
22
  end
@@ -26,8 +31,7 @@ def draw
26
31
  background(160)
27
32
  builder = BooleanShapeBuilder.new(bool[type])
28
33
  phi = frame_count * 0.01
29
- builder.add_shape(Circle.new(mouse_x, mouse_y, 50))
30
- builder.add_shape(Ellipse.new(150, 130 + sin(phi) * 50, 120, 60))
34
+ builder.add_shape(Circle.new(mouse_x, mouse_y, 70).toPolygon2D(30))
31
35
  builder.add_shape(Rect.new(200 + sin(phi * 13 / 8) * 50, 180, 100, 100))
32
36
  builder.add_shape(Triangle2D.create_equilateral_from(
33
37
  TVec2D.new(50 + sin(phi * 15 / 13) * 50, 200), TVec2D.new(300, 200))
@@ -13,7 +13,7 @@ class Node < Physics::VerletParticle2D
13
13
  def_delegators(:@app, :fill, :stroke, :stroke_weight, :ellipse)
14
14
  def initialize(pos)
15
15
  super(pos)
16
- @app = $app
16
+ @app = Processing.app
17
17
  end
18
18
 
19
19
  # All we're doing really is adding a display function to a VerletParticle
@@ -28,7 +28,7 @@ end
28
28
 
29
29
  def setup
30
30
  sketch_title 'Inflate Mesh'
31
- Processing::ArcBall.init(self)
31
+ ArcBall.init(self)
32
32
  @gfx = Gfx::ToxiclibsSupport.new(self)
33
33
  init_physics
34
34
  end
@@ -16,7 +16,7 @@ end
16
16
 
17
17
  def setup
18
18
  sketch_title 'Model Align'
19
- Processing::ArcBall.init(self)
19
+ ArcBall.init(self)
20
20
  @gfx = Gfx::ToxiclibsSupport.new(self)
21
21
  # compute mesh positions on circle in XZ plane
22
22
  @positions = (Toxi::Circle.new(200).toPolygon2D(8)).map(&:to3DXZ)
@@ -1,4 +1,4 @@
1
- load_library :geomerative
1
+ require 'geomerative'
2
2
  require 'toxiclibs'
3
3
  include_package 'geomerative'
4
4
  attr_reader :font, :input, :physics
@@ -48,12 +48,12 @@ def key_pressed
48
48
  when 'p', 'P'
49
49
  fileID = 'FTest'
50
50
  pm = Gfx::POVMesh.new(self)
51
- file = java.io.File.new(sketch_path(fileID + '.inc'))
51
+ file = java.io.File.new(data_path(fileID + '.inc'))
52
52
  pm.begin_save(file)
53
53
  pm.set_texture(Gfx::Textures::CHROME)
54
54
  pm.saveAsPOV(mesh0.faceOutwards, false)
55
- pm.end_save
55
+ pm.end_save
56
56
  when 's', 'S'
57
57
  save_frame(data_path('FTest.png'))
58
58
  end
59
- end
59
+ end
@@ -0,0 +1,91 @@
1
+
2
+ require 'toxiclibs'
3
+
4
+ SWATCH_HEIGHT = 40.0
5
+ SWATCH_WIDTH = 5.0
6
+ SWATCH_GAP = 1
7
+
8
+ MAX_SIZE = 150.0
9
+ NUM_DISCS = 300
10
+ attr_reader :show_discs
11
+
12
+ def settings
13
+ size(1024, 768)
14
+ # smooth
15
+ end
16
+
17
+ def setup
18
+ sketch_title 'Color Theme'
19
+ @show_discs = true
20
+ noise_detail(2)
21
+ no_loop
22
+ end
23
+
24
+ def draw
25
+ # first define our new theme
26
+ t = Toxi::ColorTheme.new('test')
27
+ # add different color options, each with their own weight
28
+ t.add_range('soft ivory', 0.5)
29
+ t.add_range('intense goldenrod', 0.25)
30
+ t.add_range('warm saddlebrown', 0.15)
31
+ t.add_range('fresh teal', 0.05)
32
+ t.add_range('bright yellowgreen', 0.05)
33
+ # now add another rand hue which is using only bright shades
34
+ t.add_range(Toxi::ColorRange::BRIGHT, TColor.new_random, rand(0.02..0.05))
35
+ # use the TColor theme to create a list of 160 Colors
36
+ list = t.get_colors(160)
37
+ if show_discs
38
+ background(list.get_lightest.toARGB)
39
+ discs(list)
40
+ else
41
+ background(0)
42
+ yoff = 32
43
+ list.sort_by_distance(false)
44
+ swatches(list, 32, yoff)
45
+ yoff += SWATCH_HEIGHT + 10
46
+ list.sort_by_criteria(Toxi::AccessCriteria::LUMINANCE, false)
47
+ swatches(list, 32, yoff)
48
+ yoff += SWATCH_HEIGHT + 10
49
+ list.sort_by_criteria(Toxi::AccessCriteria::BRIGHTNESS, false)
50
+ swatches(list, 32, yoff)
51
+ yoff += SWATCH_HEIGHT + 10
52
+ list.sort_by_criteria(Toxi::AccessCriteria::SATURATION, false)
53
+ swatches(list, 32, yoff)
54
+ yoff += SWATCH_HEIGHT + 10
55
+ list.sort_by_criteria(Toxi::AccessCriteria::HUE, false)
56
+ swatches(list, 32, yoff)
57
+ yoff += SWATCH_HEIGHT + 10
58
+ list.sort_by_proximity_to(Toxi::NamedColor::WHITE, RGBDistanceProxy.new, false)
59
+ swatches(list, 32, yoff)
60
+ end
61
+ # save_frame(format('theme-%s%s', timestamp, '_##.png'))
62
+ end
63
+
64
+ def timestamp
65
+ Time.now.strftime('%Y%d%m_%H%M%S')
66
+ end
67
+
68
+ def key_pressed
69
+ @show_discs = !show_discs if key == ' '
70
+ redraw
71
+ end
72
+
73
+ def swatches(sorted, x, y)
74
+ no_stroke
75
+ colors = sorted.toARGBArray.to_a
76
+ colors.each do |c|
77
+ fill(c)
78
+ rect(x, y, SWATCH_WIDTH, SWATCH_HEIGHT)
79
+ x += SWATCH_WIDTH + SWATCH_GAP
80
+ end
81
+ end
82
+
83
+ def discs(list)
84
+ no_stroke
85
+ colors = list.toARGBArray.to_a
86
+ colors.shuffle.each do |c|
87
+ fill(c, rand(125.0..255)) # random transparency
88
+ r = rand(MAX_SIZE)
89
+ ellipse(rand(width), rand(height), r, r)
90
+ end
91
+ end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ # wrapper to give version a meaningful name
2
3
  module Toxiclibs
3
- VERSION = '0.9.2'.freeze
4
+ VERSION = '2.1.0'.freeze
4
5
  end
data/lib/toxiclibs.jar CHANGED
Binary file
data/lib/toxiclibs.rb CHANGED
@@ -8,22 +8,22 @@ if RUBY_PLATFORM == 'java'
8
8
  module Simulation
9
9
  include_package 'toxi.sim.automata'
10
10
  include_package 'toxi.sim.dla'
11
- erosion = %w(ErosionFunction TalusAngleErosion ThermalErosion)
11
+ erosion = %w[ErosionFunction TalusAngleErosion ThermalErosion]
12
12
  erosion_format = 'toxi.sim.erosion.%s'
13
13
  import_class_list(erosion, erosion_format)
14
- fluids = %w(FluidSolver2D FluidSolver3D)
14
+ fluids = %w[FluidSolver2D FluidSolver3D]
15
15
  fluids_format = 'toxi.sim.fluids.%s'
16
16
  import_class_list(fluids, fluids_format)
17
17
  java_import 'toxi.sim.grayscott.GrayScott'
18
18
  end
19
19
 
20
20
  module Physics
21
- behavior2d = %w(AttractionBehavior2D ConstantForceBehavior2D GravityBehavior2D ParticleBehavior2D)
21
+ behavior2d = %w[AttractionBehavior2D ConstantForceBehavior2D GravityBehavior2D ParticleBehavior2D]
22
22
  behavior2d_format = 'toxi.physics2d.behaviors.%s'
23
23
  import_class_list(behavior2d, behavior2d_format)
24
24
  include_package 'toxi.physics2d.constraints'
25
25
  include_package 'toxi.physics2d'
26
- behavior3d = %w(AttractionBehavior3D ConstantForceBehavior3D GravityBehavior3D ParticleBehavior3D)
26
+ behavior3d = %w[AttractionBehavior3D ConstantForceBehavior3D GravityBehavior3D ParticleBehavior3D]
27
27
  behavior3d_format = 'toxi.physics3d.behaviors.%s'
28
28
  import_class_list(behavior3d, behavior3d_format)
29
29
  include_package 'toxi.physics3d.constraints'
@@ -39,40 +39,51 @@ if RUBY_PLATFORM == 'java'
39
39
  include_package 'toxi.color.theory'
40
40
  include_package 'toxi.util.datatypes'
41
41
  java_import 'toxi.util.events.EventDispatcher'
42
- utils = %w{DateUtils FileSequenceDescriptor FileUtils}
42
+ utils = %w[DateUtils FileSequenceDescriptor FileUtils]
43
43
  utils_format = 'toxi.util.%s'
44
44
  import_class_list(utils, utils_format)
45
- subdiv = %w(CentroidSubdiv DisplacementSubdivision DualDisplacementSubdivision
46
- DualSubdivision EdgeLengthComparator FaceCountComparator
47
- MidpointDisplacementSubdivision MidpointSubdiv MidpointSubdivision
48
- NewSubdivStrategy NormalDisplacementSubdivision SubdivisionStrategy
49
- TriSubdivision)
45
+ subdiv = %w[
46
+ CentroidSubdiv DisplacementSubdivision DualDisplacementSubdivision
47
+ DualSubdivision EdgeLengthComparator FaceCountComparator
48
+ MidpointDisplacementSubdivision MidpointSubdiv MidpointSubdivision
49
+ NewSubdivStrategy NormalDisplacementSubdivision SubdivisionStrategy
50
+ TriSubdivision
51
+ ]
50
52
  subdiv_format = 'toxi.geom.mesh.subdiv.%s'
51
53
  import_class_list(subdiv, subdiv_format)
52
- nurbs = %w(BasicNurbsCurve BasicNurbsSurface ControlNet CurveCreator CurveUtils
53
- InterpolationException KnotVector NurbsCreator NurbsCurve NurbsMeshCreator
54
- NurbsSurface)
54
+ nurbs = %w[
55
+ BasicNurbsCurve BasicNurbsSurface ControlNet CurveCreator CurveUtils
56
+ InterpolationException KnotVector NurbsCreator NurbsCurve NurbsMeshCreator
57
+ NurbsSurface
58
+ ]
55
59
  nurbs_format = 'toxi.geom.nurbs.%s'
56
60
  import_class_list(nurbs, nurbs_format)
57
61
  include_package 'toxi.math'
58
- noise = %w(SimplexNoise PerlinNoise)
62
+ noise = %w[SimplexNoise PerlinNoise]
59
63
  noise_format = 'toxi.math.noise.%s'
60
64
  import_class_list(noise, noise_format)
61
- geom = %w(AABB Axis3D AxisAlignedCylinder BernsteinPolynomial BezierCurve2D
62
- BezierCurve3D BooleanShapeBuilder BoxIntersector Circle CircleIntersector
63
- Cone ConvexPolygonClipper CoordinateExtractor Ellipse GMatrix GVector
64
- GlobalGridTesselator GridTesselator Intersector2D Intersector3D IsectData2D
65
- IsectData3D Line2D Line3D LineStrip2D LineStrip3D LocalGridTesselator Matrix3d
66
- Matrix4f Matrix4x4 MatrixSizeException OctreeVisitor Origin3D Plane
67
- PlaneIntersector PointCloud3D PointOctree PointQuadtree Polygon2D
68
- PolygonClipper2D PolygonTesselator QuadtreeVisitor Quaternion Ray2D Ray3D
69
- Ray3DIntersector ReadonlyVec2D ReadonlyVec3D ReadonlyVec4D Rect Reflector3D
70
- Shape2D Shape3D SingularMatrixException SpatialBins SpatialIndex Sphere
71
- SphereIntersectorReflector Spline2D Spline3D SutherlandHodgemanClipper
72
- Triangle2D Triangle3D TriangleIntersector Vec2D Vec3D Vec4D VecMathUtil
73
- XAxisCylinder YAxisCylinder ZAxisCylinder)
65
+ geom = %w[
66
+ AABB Axis3D AxisAlignedCylinder BernsteinPolynomial BezierCurve2D
67
+ BezierCurve3D BooleanShapeBuilder BoxIntersector Circle CircleIntersector
68
+ Cone ConvexPolygonClipper CoordinateExtractor Ellipse GMatrix GVector
69
+ GlobalGridTesselator GridTesselator Intersector2D Intersector3D IsectData2D
70
+ IsectData3D Line2D Line3D LineStrip2D LineStrip3D LocalGridTesselator Matrix3d
71
+ Matrix4f Matrix4x4 MatrixSizeException OctreeVisitor Origin3D Plane
72
+ PlaneIntersector PointCloud3D PointOctree PointQuadtree Polygon2D
73
+ PolygonClipper2D PolygonTesselator QuadtreeVisitor Quaternion Ray2D Ray3D
74
+ Ray3DIntersector ReadonlyVec2D ReadonlyVec3D ReadonlyVec4D Rect Reflector3D
75
+ Shape2D Shape3D SingularMatrixException SpatialBins SpatialIndex Sphere
76
+ SphereIntersectorReflector Spline2D Spline3D SutherlandHodgemanClipper
77
+ Triangle2D Triangle3D TriangleIntersector Vec2D Vec3D Vec4D VecMathUtil
78
+ XAxisCylinder YAxisCylinder ZAxisCylinder
79
+ ]
74
80
  geom_format = 'toxi.geom.%s'
75
81
  import_class_list(geom, geom_format)
82
+ geom_mesh2d = %w[
83
+ DelaunayTriangle DelaunayVertex DelaunayTriangulation Voronoi
84
+ ]
85
+ geom_mesh2d_format = 'toxi.geom.mesh2d.%s'
86
+ import_class_list(geom_mesh2d, geom_mesh2d_format)
76
87
  end
77
88
 
78
89
  module Gfx
@@ -83,18 +94,24 @@ if RUBY_PLATFORM == 'java'
83
94
  TVec2D = Toxi::Vec2D
84
95
  TVec3D = Toxi::Vec3D
85
96
  AABB = Toxi::AABB
86
- volume = %w(AdditiveBrush ArrayIsoSurface BoxBrush BrushMode HashIsoSurface
87
- IsoSurface MarchingCubesIndex MeshLatticeBuilder MeshVoxelizer
88
- MultiplyBrush PeakBrush ReplaceBrush RoundBrush VolumetricBrush
89
- VolumetricHashMap VolumetricSpace VolumetricSpaceArray)
97
+ # alias Toxi::TColor
98
+ TColor = Toxi::TColor
99
+ volume = %w[
100
+ AdditiveBrush ArrayIsoSurface BoxBrush BrushMode HashIsoSurface
101
+ IsoSurface MarchingCubesIndex MeshLatticeBuilder MeshVoxelizer
102
+ MultiplyBrush PeakBrush ReplaceBrush RoundBrush VolumetricBrush
103
+ VolumetricHashMap VolumetricSpace VolumetricSpaceArray
104
+ ]
90
105
  volume_format = 'toxi.volume.%s'
91
106
  import_class_list(volume, volume_format)
92
- mesh = %w(BezierPatch BoxSelector DefaultSTLColorModel DefaultSelector Face
93
- LaplacianSmooth MaterialiseSTLColorModel Mesh3D MeshIntersector OBJWriter
94
- PLYWriter PlaneSelector STLColorModel STLReader STLWriter SphereFunction
95
- SphericalHarmonics SuperEllipsoid SurfaceFunction SurfaceMeshBuilder
96
- Terrain TriangleMesh Vertex VertexSelector WEFace WEMeshFilterStrategy
97
- WETriangleMesh WEVertex WingedEdge)
107
+ mesh = %w[
108
+ BezierPatch BoxSelector DefaultSTLColorModel DefaultSelector Face
109
+ LaplacianSmooth MaterialiseSTLColorModel Mesh3D MeshIntersector OBJWriter
110
+ PLYWriter PlaneSelector STLColorModel STLReader STLWriter SphereFunction
111
+ SphericalHarmonics SuperEllipsoid SurfaceFunction SurfaceMeshBuilder
112
+ Terrain TriangleMesh Vertex VertexSelector WEFace WEMeshFilterStrategy
113
+ WETriangleMesh WEVertex WingedEdge
114
+ ]
98
115
  mesh_format = 'toxi.geom.mesh.%s'
99
116
  import_class_list(mesh, mesh_format)
100
117
  end
data/pom.rb CHANGED
@@ -1,57 +1,49 @@
1
1
  project 'toxiclibs' do
2
2
 
3
3
  model_version '4.0.0'
4
- id 'ruby-processing:toxiclibs:0.9.2'
4
+ id 'ruby-processing:toxiclibs:2.1.0'
5
5
  packaging 'jar'
6
6
 
7
7
  description 'toxiclibs-library for JRubyArt'
8
-
9
- organization 'ruby-processing', 'https://ruby-processing.github.io'
10
8
 
11
9
  developer 'monkstone' do
12
10
  name 'Martin Prout'
13
11
  email 'mamba2928@yahoo.co.uk'
14
- roles 'developer'
12
+ roles 'developer'
15
13
  end
16
14
 
17
- license 'LGPL 2', 'http://www.gnu.org/licenses/lgpl-2.1-standalone.html'
18
-
19
15
  issue_management 'https://github.com/ruby-processing/toxiclibs/issues', 'Github'
20
16
 
21
17
  source_control( :url => 'https://github.com/ruby-processing/toxiclibs',
22
18
  :connection => 'scm:git:git://github.com/ruby-processing/toxiclibs.git',
23
19
  :developer_connection => 'scm:git:git@github.com:ruby-processing/toxiclibs.git' )
24
20
 
25
- properties( 'maven.compiler.source' => '1.8',
21
+ properties( 'source.directory' => 'src',
22
+ 'polyglot.dump.pom' => 'pom.xml',
26
23
  'project.build.sourceEncoding' => 'UTF-8',
27
- 'maven.compiler.target' => '1.8',
28
- 'polyglot.dump.pom' => 'pom.xml'
24
+ 'target.release' => '11',
25
+ 'polyglot.dump.pom' => 'pom.xml',
26
+ 'maven.deploy.skip' => 'true'
29
27
  )
30
28
 
31
- jar 'args4j:args4j:2.0.31'
32
- jar 'org.processing:core:3.3.0'
33
-
34
- plugin( :compiler, '3.5.1',
35
- 'source' => '1.8',
36
- 'target' => '1.8' )
37
- plugin( :jar, '3.0.2',
38
- 'archive' => {
39
- 'manifestFile' => 'MANIFEST.MF'
40
- } )
41
- plugin :resources, '2.6'
42
- plugin :dependency, '2.10' do
43
- execute_goals( :id => 'default-cli',
44
- 'artifactItems' => [ { 'groupId' => 'args4j',
45
- 'artifactId' => 'args4j',
46
- 'version' => '2.0.31',
47
- 'type' => 'jar',
48
- 'outputDirectory' => 'lib' } ] )
29
+ jar 'org.processing:core:4.0.0'
30
+
31
+ overrides do
32
+ plugin( :compiler, '3.8.1',
33
+ 'release' => '11' )
34
+ plugin :javadoc, '2.10.4'
35
+ plugin :jar, '3.2.0'
36
+ plugin :jdeps, '3.1.2' do
37
+ execute_goals 'jdkinternals', 'test-jdkinternals'
38
+ end
39
+
49
40
  end
50
41
 
51
42
 
52
43
  build do
53
44
  default_goal 'package'
54
- source_directory 'src'
45
+ source_directory '${source.directory}/main/java'
55
46
  final_name 'toxiclibs'
56
47
  end
48
+
57
49
  end