toxiclibs 0.9.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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