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
@@ -1,129 +0,0 @@
1
- package com.toxi.nio;
2
-
3
- import java.net.*;
4
- import java.io.*;
5
- import java.nio.*;
6
- import java.nio.channels.*;
7
- import java.util.ArrayList;
8
- import java.util.Iterator;
9
-
10
- /**
11
- *
12
- * @author tux
13
- */
14
- public class UDPServer extends Thread {
15
-
16
- /**
17
- *
18
- */
19
- public final static int DEFAULT_PORT = 9876;
20
-
21
- /**
22
- *
23
- */
24
- public final static int MAX_PACKET_SIZE = 32;
25
-
26
- private int port;
27
- private int packetSize;
28
- private int numClients;
29
-
30
- ArrayList<UDPClientState> clients;
31
- private int frameCount = 0;
32
- private int frameDuration;
33
-
34
- /**
35
- *
36
- * @param args
37
- */
38
- public static void main(String[] args) {
39
- new UDPServer(1, 25).start();
40
- try {
41
- while (true) {
42
- Thread.sleep(1000);
43
- // System.out.println("running.");
44
- }
45
- } catch (InterruptedException e) {
46
- e.printStackTrace();
47
- }
48
- }
49
-
50
- /**
51
- *
52
- * @param numClients
53
- * @param fps
54
- */
55
- public UDPServer(int numClients, int fps) {
56
- this(DEFAULT_PORT, numClients, MAX_PACKET_SIZE, fps);
57
- }
58
-
59
- /**
60
- *
61
- * @param port
62
- * @param numClients
63
- * @param maxPacketSize
64
- * @param fps
65
- */
66
- public UDPServer(int port, int numClients, int maxPacketSize, int fps) {
67
- this.port = port;
68
- this.numClients = numClients;
69
- this.packetSize = maxPacketSize;
70
- frameDuration = 1000 / fps;
71
- clients = new ArrayList<UDPClientState>();
72
- }
73
-
74
- /**
75
- *
76
- */
77
- public void run() {
78
- DatagramChannel channel = null;
79
- DatagramSocket socket = null;
80
- ByteBuffer buffer = null;
81
- try {
82
- channel = DatagramChannel.open();
83
- socket = channel.socket();
84
- SocketAddress address = new InetSocketAddress(
85
- InetAddress.getLocalHost(), port);
86
- socket.bind(address);
87
- buffer = ByteBuffer.allocateDirect(packetSize);
88
- System.out.println("Server running: " + address);
89
- System.out.println("Heartbeat interval: " + frameDuration);
90
- System.out.println("waiting for clients...");
91
-
92
- // get the addresses-initialisation phase
93
- while (clients.size() < numClients) {
94
- clients.add(new UDPClientState(channel.receive(buffer)));
95
- buffer.flip();
96
- buffer.clear();
97
- }
98
- // server now knows the clients
99
-
100
- // MAIN LOOP-server is working for the clients
101
- while (true) {
102
- long beginSynch = System.currentTimeMillis();
103
- buffer.clear();
104
- buffer.putInt(frameCount++);
105
- buffer.flip();
106
- Iterator<UDPClientState> iter = clients.iterator();
107
- while (iter.hasNext()) {
108
- channel.send(buffer, iter.next().getAddress());
109
- }
110
- long endSynch = System.currentTimeMillis();
111
- if (endSynch - beginSynch < frameDuration) {
112
- int sleep = frameDuration - (int) (endSynch - beginSynch);
113
- // System.out.println("sleeping: " + sleep);
114
- Thread.sleep(sleep);
115
- } else {
116
- Thread.sleep(2);
117
- }
118
- }
119
- } catch (Exception ex) {
120
- System.err.println(ex);
121
- } finally {
122
- if (socket != null)
123
- socket.close();
124
- if (buffer != null)
125
- buffer = null;
126
- System.out.println("server shutdown.");
127
- }
128
- }
129
- }
@@ -1,129 +0,0 @@
1
- /*
2
- * __ .__ .__ ._____.
3
- * _/ |_ _______ __|__| ____ | | |__\_ |__ ______
4
- * \ __\/ _ \ \/ / |/ ___\| | | || __ \ / ___/
5
- * | | ( <_> > <| \ \___| |_| || \_\ \\___ \
6
- * |__| \____/__/\_ \__|\___ >____/__||___ /____ >
7
- * \/ \/ \/ \/
8
- *
9
- * Copyright (c) 2006-2011 Karsten Schmidt
10
- *
11
- * This library is free software; you can redistribute it and/or
12
- * modify it under the terms of the GNU Lesser General Public
13
- * License as published by the Free Software Foundation; either
14
- * version 2.1 of the License, or (at your option) any later version.
15
- *
16
- * http://creativecommons.org/licenses/LGPL/2.1/
17
- *
18
- * This library is distributed in the hope that it will be useful,
19
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21
- * Lesser General Public License for more details.
22
- *
23
- * You should have received a copy of the GNU Lesser General Public
24
- * License along with this library; if not, write to the Free Software
25
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26
- */
27
-
28
- package toxi.data.feeds;
29
-
30
- import java.io.IOException;
31
- import java.io.InputStream;
32
- import java.net.MalformedURLException;
33
- import java.net.URL;
34
- import java.util.ArrayList;
35
- import java.util.Iterator;
36
-
37
- import javax.xml.bind.JAXBContext;
38
- import javax.xml.bind.JAXBException;
39
- import javax.xml.bind.annotation.XmlElement;
40
- import javax.xml.bind.annotation.XmlRootElement;
41
- import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
42
- import javax.xml.datatype.XMLGregorianCalendar;
43
-
44
- import toxi.data.feeds.util.Iso8601DateAdapter;
45
-
46
- /**
47
- *
48
- * @author tux
49
- */
50
- @XmlRootElement(name = "feed", namespace = AtomFeed.NS)
51
- public class AtomFeed implements Iterable<AtomEntry> {
52
-
53
- /**
54
- *
55
- */
56
- public static final String NS = "http://www.w3.org/2005/Atom";
57
-
58
- /**
59
- *
60
- * @param stream
61
- * @return
62
- */
63
- public static AtomFeed newFromStream(InputStream stream) {
64
- AtomFeed feed = null;
65
- try {
66
- JAXBContext context = JAXBContext.newInstance(AtomFeed.class);
67
- feed = (AtomFeed) context.createUnmarshaller().unmarshal(stream);
68
- } catch (JAXBException e) {
69
- e.printStackTrace();
70
- }
71
- return feed;
72
- }
73
-
74
- /**
75
- *
76
- * @param url
77
- * @return
78
- */
79
- public static AtomFeed newFromURL(String url) {
80
- AtomFeed feed = null;
81
- try {
82
- feed = newFromStream(new URL(url).openStream());
83
- } catch (MalformedURLException e) {
84
- e.printStackTrace();
85
- } catch (IOException e) {
86
- e.printStackTrace();
87
- }
88
- return feed;
89
- }
90
-
91
- @XmlElement(namespace = NS)
92
- public String id,
93
-
94
- /**
95
- *
96
- */
97
-
98
- /**
99
- *
100
- */
101
- title;
102
-
103
- /**
104
- *
105
- */
106
- @XmlElement(name = "updated", namespace = NS)
107
- @XmlJavaTypeAdapter(Iso8601DateAdapter.class)
108
- public XMLGregorianCalendar lastUpdated;
109
-
110
- /**
111
- *
112
- */
113
- @XmlElement(name = "link", namespace = NS)
114
- public ArrayList<AtomLink> links = new ArrayList<AtomLink>();
115
-
116
- /**
117
- *
118
- */
119
- @XmlElement(name = "entry", namespace = NS)
120
- public ArrayList<AtomEntry> entries = new ArrayList<AtomEntry>();
121
-
122
- /**
123
- *
124
- * @return
125
- */
126
- public Iterator<AtomEntry> iterator() {
127
- return entries.iterator();
128
- }
129
- }
@@ -1,99 +0,0 @@
1
- /*
2
- * __ .__ .__ ._____.
3
- * _/ |_ _______ __|__| ____ | | |__\_ |__ ______
4
- * \ __\/ _ \ \/ / |/ ___\| | | || __ \ / ___/
5
- * | | ( <_> > <| \ \___| |_| || \_\ \\___ \
6
- * |__| \____/__/\_ \__|\___ >____/__||___ /____ >
7
- * \/ \/ \/ \/
8
- *
9
- * Copyright (c) 2006-2011 Karsten Schmidt
10
- *
11
- * This library is free software; you can redistribute it and/or
12
- * modify it under the terms of the GNU Lesser General Public
13
- * License as published by the Free Software Foundation; either
14
- * version 2.1 of the License, or (at your option) any later version.
15
- *
16
- * http://creativecommons.org/licenses/LGPL/2.1/
17
- *
18
- * This library is distributed in the hope that it will be useful,
19
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21
- * Lesser General Public License for more details.
22
- *
23
- * You should have received a copy of the GNU Lesser General Public
24
- * License along with this library; if not, write to the Free Software
25
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26
- */
27
-
28
- package toxi.data.feeds;
29
-
30
- import java.io.IOException;
31
- import java.io.InputStream;
32
- import java.net.MalformedURLException;
33
- import java.net.URL;
34
- import java.util.Iterator;
35
-
36
- import javax.xml.bind.JAXBContext;
37
- import javax.xml.bind.JAXBException;
38
- import javax.xml.bind.annotation.XmlAttribute;
39
- import javax.xml.bind.annotation.XmlRootElement;
40
-
41
- /**
42
- *
43
- * @author tux
44
- */
45
- @XmlRootElement(name = "rss")
46
- public class RSSFeed implements Iterable<RSSItem> {
47
-
48
- /**
49
- *
50
- * @param stream
51
- * @return
52
- */
53
- public static RSSFeed newFromStream(InputStream stream) {
54
- RSSFeed feed = null;
55
- try {
56
- JAXBContext context = JAXBContext.newInstance(RSSFeed.class);
57
- feed = (RSSFeed) context.createUnmarshaller().unmarshal(stream);
58
- } catch (JAXBException e) {
59
- e.printStackTrace();
60
- }
61
- return feed;
62
- }
63
-
64
- /**
65
- *
66
- * @param url
67
- * @return
68
- */
69
- public static RSSFeed newFromURL(String url) {
70
- RSSFeed feed = null;
71
- try {
72
- feed = newFromStream(new URL(url).openStream());
73
- } catch (MalformedURLException e) {
74
- e.printStackTrace();
75
- } catch (IOException e) {
76
- e.printStackTrace();
77
- }
78
- return feed;
79
- }
80
-
81
- /**
82
- *
83
- */
84
- @XmlAttribute(name = "version")
85
- public float version;
86
-
87
- /**
88
- *
89
- */
90
- public RSSChannel channel;
91
-
92
- /**
93
- *
94
- * @return
95
- */
96
- public Iterator<RSSItem> iterator() {
97
- return channel.items.iterator();
98
- }
99
- }