toxiclibs 1.0.0 → 2.0.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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/extensions.xml +1 -1
  3. data/.travis.yml +3 -4
  4. data/CHANGELOG.md +3 -0
  5. data/README.md +2 -2
  6. data/Rakefile +0 -1
  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.rb +52 -37
  17. data/lib/toxiclibs/version.rb +1 -1
  18. data/pom.rb +22 -26
  19. data/pom.xml +42 -64
  20. data/src/{toxi → main/java/toxi}/color/AccessCriteria.java +0 -0
  21. data/src/{toxi → main/java/toxi}/color/AlphaAccessor.java +0 -0
  22. data/src/{toxi → main/java/toxi}/color/CMYKAccessor.java +0 -0
  23. data/src/{toxi → main/java/toxi}/color/CMYKDistanceProxy.java +0 -0
  24. data/src/{toxi → main/java/toxi}/color/ColorGradient.java +0 -0
  25. data/src/{toxi → main/java/toxi}/color/ColorList.java +2 -4
  26. data/src/{toxi → main/java/toxi}/color/ColorRange.java +0 -0
  27. data/src/{toxi → main/java/toxi}/color/ColorTheme.java +0 -0
  28. data/src/{toxi → main/java/toxi}/color/DistanceProxy.java +0 -0
  29. data/src/{toxi → main/java/toxi}/color/HSVAccessor.java +0 -0
  30. data/src/{toxi → main/java/toxi}/color/HSVDistanceProxy.java +0 -0
  31. data/src/{toxi → main/java/toxi}/color/HistEntry.java +0 -0
  32. data/src/{toxi → main/java/toxi}/color/Histogram.java +0 -0
  33. data/src/{toxi → main/java/toxi}/color/Hue.java +0 -0
  34. data/src/{toxi → main/java/toxi}/color/LuminanceAccessor.java +0 -0
  35. data/src/{toxi → main/java/toxi}/color/NamedColor.java +0 -0
  36. data/src/{toxi → main/java/toxi}/color/ProximityComparator.java +0 -0
  37. data/src/{toxi → main/java/toxi}/color/RGBAccessor.java +0 -0
  38. data/src/{toxi → main/java/toxi}/color/RGBDistanceProxy.java +0 -0
  39. data/src/{toxi → main/java/toxi}/color/ReadonlyTColor.java +0 -0
  40. data/src/{toxi → main/java/toxi}/color/TColor.java +0 -0
  41. data/src/{toxi → main/java/toxi}/color/TColorAdapter.java +4 -4
  42. data/src/{toxi → main/java/toxi}/color/ToneMap.java +0 -0
  43. data/src/{toxi → main/java/toxi}/color/theory/AnalogousStrategy.java +0 -0
  44. data/src/{toxi → main/java/toxi}/color/theory/ColorTheoryRegistry.java +0 -0
  45. data/src/{toxi → main/java/toxi}/color/theory/ColorTheoryStrategy.java +0 -0
  46. data/src/{toxi → main/java/toxi}/color/theory/ComplementaryStrategy.java +0 -0
  47. data/src/{toxi → main/java/toxi}/color/theory/CompoundTheoryStrategy.java +0 -0
  48. data/src/{toxi → main/java/toxi}/color/theory/LeftSplitComplementaryStrategy.java +0 -0
  49. data/src/{toxi → main/java/toxi}/color/theory/MonochromeTheoryStrategy.java +0 -0
  50. data/src/{toxi → main/java/toxi}/color/theory/RightSplitComplementaryStrategy.java +0 -0
  51. data/src/{toxi → main/java/toxi}/color/theory/SingleComplementStrategy.java +0 -0
  52. data/src/{toxi → main/java/toxi}/color/theory/SplitComplementaryStrategy.java +0 -0
  53. data/src/{toxi → main/java/toxi}/color/theory/TetradTheoryStrategy.java +0 -0
  54. data/src/{toxi → main/java/toxi}/color/theory/TriadTheoryStrategy.java +0 -0
  55. data/src/{toxi → main/java/toxi}/data/csv/CSVAdapter.java +0 -0
  56. data/src/{toxi → main/java/toxi}/data/csv/CSVFieldMapper.java +0 -0
  57. data/src/{toxi → main/java/toxi}/data/csv/CSVListener.java +0 -0
  58. data/src/{toxi → main/java/toxi}/data/csv/CSVParser.java +0 -0
  59. data/src/{toxi → main/java/toxi}/data/feeds/AtomAuthor.java +2 -2
  60. data/src/{toxi → main/java/toxi}/data/feeds/AtomContent.java +3 -4
  61. data/src/{toxi → main/java/toxi}/data/feeds/AtomEntry.java +9 -13
  62. data/src/main/java/toxi/data/feeds/AtomFeed.java +91 -0
  63. data/src/{toxi → main/java/toxi}/data/feeds/AtomLink.java +3 -2
  64. data/src/{toxi → main/java/toxi}/data/feeds/RSSChannel.java +10 -11
  65. data/src/{toxi → main/java/toxi}/data/feeds/RSSEnclosure.java +3 -3
  66. data/src/{toxi → main/java/toxi}/data/feeds/RSSItem.java +11 -13
  67. data/src/{toxi → main/java/toxi}/data/feeds/util/EntityStripper.java +0 -0
  68. data/src/{toxi → main/java/toxi}/data/feeds/util/Iso8601DateAdapter.java +6 -7
  69. data/src/{toxi → main/java/toxi}/data/feeds/util/Rfc822DateAdapter.java +5 -6
  70. data/src/{toxi → main/java/toxi}/geom/AABB.java +8 -9
  71. data/src/{toxi → main/java/toxi}/geom/Axis3D.java +0 -0
  72. data/src/{toxi → main/java/toxi}/geom/AxisAlignedCylinder.java +0 -0
  73. data/src/{toxi → main/java/toxi}/geom/BernsteinPolynomial.java +0 -0
  74. data/src/{toxi → main/java/toxi}/geom/BezierCurve2D.java +0 -0
  75. data/src/{toxi → main/java/toxi}/geom/BezierCurve3D.java +0 -0
  76. data/src/{toxi → main/java/toxi}/geom/BooleanShapeBuilder.java +0 -0
  77. data/src/{toxi → main/java/toxi}/geom/BoxIntersector.java +0 -0
  78. data/src/{toxi → main/java/toxi}/geom/Circle.java +2 -2
  79. data/src/{toxi → main/java/toxi}/geom/CircleIntersector.java +0 -0
  80. data/src/{toxi → main/java/toxi}/geom/Cone.java +0 -0
  81. data/src/{toxi → main/java/toxi}/geom/ConvexPolygonClipper.java +0 -0
  82. data/src/{toxi → main/java/toxi}/geom/CoordinateExtractor.java +0 -0
  83. data/src/{toxi → main/java/toxi}/geom/Ellipse.java +0 -0
  84. data/src/{toxi → main/java/toxi}/geom/GMatrix.java +0 -0
  85. data/src/{toxi → main/java/toxi}/geom/GVector.java +0 -0
  86. data/src/{toxi → main/java/toxi}/geom/GlobalGridTesselator.java +0 -0
  87. data/src/{toxi → main/java/toxi}/geom/GridTesselator.java +0 -0
  88. data/src/{toxi → main/java/toxi}/geom/Intersector2D.java +0 -0
  89. data/src/{toxi → main/java/toxi}/geom/Intersector3D.java +0 -0
  90. data/src/{toxi → main/java/toxi}/geom/IsectData2D.java +0 -0
  91. data/src/{toxi → main/java/toxi}/geom/IsectData3D.java +0 -0
  92. data/src/{toxi → main/java/toxi}/geom/Line2D.java +1 -2
  93. data/src/{toxi → main/java/toxi}/geom/Line3D.java +1 -2
  94. data/src/{toxi → main/java/toxi}/geom/LineStrip2D.java +2 -2
  95. data/src/{toxi → main/java/toxi}/geom/LineStrip3D.java +2 -2
  96. data/src/{toxi → main/java/toxi}/geom/LocalGridTesselator.java +0 -0
  97. data/src/{toxi → main/java/toxi}/geom/Matrix3d.java +0 -0
  98. data/src/{toxi → main/java/toxi}/geom/Matrix4f.java +0 -0
  99. data/src/{toxi → main/java/toxi}/geom/Matrix4x4.java +0 -0
  100. data/src/{toxi → main/java/toxi}/geom/MatrixSizeException.java +0 -0
  101. data/src/{toxi → main/java/toxi}/geom/OctreeVisitor.java +0 -0
  102. data/src/{toxi → main/java/toxi}/geom/Origin3D.java +12 -6
  103. data/src/{toxi → main/java/toxi}/geom/Plane.java +3 -5
  104. data/src/{toxi → main/java/toxi}/geom/PlaneIntersector.java +0 -0
  105. data/src/{toxi → main/java/toxi}/geom/PointCloud3D.java +15 -12
  106. data/src/{toxi → main/java/toxi}/geom/PointOctree.java +0 -0
  107. data/src/{toxi → main/java/toxi}/geom/PointQuadtree.java +0 -0
  108. data/src/{toxi → main/java/toxi}/geom/Polygon2D.java +34 -45
  109. data/src/{toxi → main/java/toxi}/geom/PolygonClipper2D.java +0 -0
  110. data/src/{toxi → main/java/toxi}/geom/PolygonTesselator.java +0 -0
  111. data/src/{toxi → main/java/toxi}/geom/QuadtreeVisitor.java +0 -0
  112. data/src/{toxi → main/java/toxi}/geom/Quaternion.java +3 -5
  113. data/src/{toxi → main/java/toxi}/geom/Ray2D.java +4 -5
  114. data/src/{toxi → main/java/toxi}/geom/Ray3D.java +3 -5
  115. data/src/{toxi → main/java/toxi}/geom/Ray3DIntersector.java +0 -0
  116. data/src/{toxi → main/java/toxi}/geom/ReadonlyVec2D.java +0 -0
  117. data/src/{toxi → main/java/toxi}/geom/ReadonlyVec3D.java +0 -0
  118. data/src/{toxi → main/java/toxi}/geom/ReadonlyVec4D.java +0 -0
  119. data/src/{toxi → main/java/toxi}/geom/Rect.java +3 -5
  120. data/src/{toxi → main/java/toxi}/geom/Reflector3D.java +0 -0
  121. data/src/{toxi → main/java/toxi}/geom/Shape2D.java +0 -0
  122. data/src/{toxi → main/java/toxi}/geom/Shape3D.java +0 -0
  123. data/src/{toxi → main/java/toxi}/geom/SingularMatrixException.java +0 -0
  124. data/src/{toxi → main/java/toxi}/geom/SpatialBins.java +0 -0
  125. data/src/{toxi → main/java/toxi}/geom/SpatialIndex.java +0 -0
  126. data/src/{toxi → main/java/toxi}/geom/Sphere.java +3 -5
  127. data/src/{toxi → main/java/toxi}/geom/SphereIntersectorReflector.java +0 -0
  128. data/src/{toxi → main/java/toxi}/geom/Spline2D.java +12 -16
  129. data/src/{toxi → main/java/toxi}/geom/Spline3D.java +12 -16
  130. data/src/{toxi → main/java/toxi}/geom/SutherlandHodgemanClipper.java +0 -0
  131. data/src/{toxi → main/java/toxi}/geom/Triangle2D.java +4 -7
  132. data/src/{toxi → main/java/toxi}/geom/Triangle3D.java +5 -8
  133. data/src/{toxi → main/java/toxi}/geom/TriangleIntersector.java +0 -0
  134. data/src/{toxi → main/java/toxi}/geom/Vec2D.java +3 -3
  135. data/src/{toxi → main/java/toxi}/geom/Vec3D.java +4 -4
  136. data/src/{toxi → main/java/toxi}/geom/Vec4D.java +5 -5
  137. data/src/{toxi → main/java/toxi}/geom/VecMathUtil.java +0 -0
  138. data/src/{toxi → main/java/toxi}/geom/XAxisCylinder.java +0 -0
  139. data/src/{toxi → main/java/toxi}/geom/YAxisCylinder.java +0 -0
  140. data/src/{toxi → main/java/toxi}/geom/ZAxisCylinder.java +0 -0
  141. data/src/{toxi → main/java/toxi}/geom/mesh/BezierPatch.java +0 -0
  142. data/src/{toxi → main/java/toxi}/geom/mesh/BoxSelector.java +0 -0
  143. data/src/{toxi → main/java/toxi}/geom/mesh/DefaultSTLColorModel.java +0 -0
  144. data/src/{toxi → main/java/toxi}/geom/mesh/DefaultSelector.java +0 -0
  145. data/src/{toxi → main/java/toxi}/geom/mesh/Face.java +0 -0
  146. data/src/{toxi → main/java/toxi}/geom/mesh/LaplacianSmooth.java +0 -0
  147. data/src/{toxi → main/java/toxi}/geom/mesh/MaterialiseSTLColorModel.java +0 -0
  148. data/src/{toxi → main/java/toxi}/geom/mesh/Mesh3D.java +0 -0
  149. data/src/{toxi → main/java/toxi}/geom/mesh/MeshIntersector.java +0 -0
  150. data/src/{toxi → main/java/toxi}/geom/mesh/OBJWriter.java +0 -0
  151. data/src/{toxi → main/java/toxi}/geom/mesh/PLYWriter.java +0 -0
  152. data/src/{toxi → main/java/toxi}/geom/mesh/PlaneSelector.java +0 -0
  153. data/src/{toxi → main/java/toxi}/geom/mesh/STLColorModel.java +0 -0
  154. data/src/{toxi → main/java/toxi}/geom/mesh/STLReader.java +0 -0
  155. data/src/{toxi → main/java/toxi}/geom/mesh/STLWriter.java +0 -0
  156. data/src/{toxi → main/java/toxi}/geom/mesh/SphereFunction.java +0 -0
  157. data/src/{toxi → main/java/toxi}/geom/mesh/SphericalHarmonics.java +0 -0
  158. data/src/{toxi → main/java/toxi}/geom/mesh/SuperEllipsoid.java +0 -0
  159. data/src/{toxi → main/java/toxi}/geom/mesh/SurfaceFunction.java +0 -0
  160. data/src/{toxi → main/java/toxi}/geom/mesh/SurfaceMeshBuilder.java +0 -0
  161. data/src/{toxi → main/java/toxi}/geom/mesh/Terrain.java +0 -0
  162. data/src/{toxi → main/java/toxi}/geom/mesh/TriangleMesh.java +0 -0
  163. data/src/{toxi → main/java/toxi}/geom/mesh/Vertex.java +0 -0
  164. data/src/{toxi → main/java/toxi}/geom/mesh/VertexSelector.java +0 -0
  165. data/src/{toxi → main/java/toxi}/geom/mesh/WEFace.java +0 -0
  166. data/src/{toxi → main/java/toxi}/geom/mesh/WEMeshFilterStrategy.java +0 -0
  167. data/src/{toxi → main/java/toxi}/geom/mesh/WETriangleMesh.java +0 -0
  168. data/src/{toxi → main/java/toxi}/geom/mesh/WEVertex.java +0 -0
  169. data/src/{toxi → main/java/toxi}/geom/mesh/WingedEdge.java +2 -2
  170. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/CentroidSubdiv.java +0 -0
  171. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DisplacementSubdivision.java +0 -0
  172. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DualDisplacementSubdivision.java +0 -0
  173. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DualSubdivision.java +0 -0
  174. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/EdgeLengthComparator.java +0 -0
  175. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/FaceCountComparator.java +0 -0
  176. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointDisplacementSubdivision.java +0 -0
  177. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointSubdiv.java +0 -0
  178. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointSubdivision.java +0 -0
  179. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/NewSubdivStrategy.java +0 -0
  180. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/NormalDisplacementSubdivision.java +0 -0
  181. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/SubdivisionStrategy.java +0 -0
  182. data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/TriSubdivision.java +0 -0
  183. data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayTriangle.java +0 -0
  184. data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayTriangulation.java +5 -7
  185. data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayVertex.java +0 -0
  186. data/src/{toxi → main/java/toxi}/geom/mesh2d/Voronoi.java +0 -0
  187. data/src/{toxi → main/java/toxi}/geom/nurbs/BasicNurbsCurve.java +0 -0
  188. data/src/{toxi → main/java/toxi}/geom/nurbs/BasicNurbsSurface.java +0 -0
  189. data/src/{toxi → main/java/toxi}/geom/nurbs/ControlNet.java +0 -0
  190. data/src/{toxi → main/java/toxi}/geom/nurbs/CurveCreator.java +0 -0
  191. data/src/{toxi → main/java/toxi}/geom/nurbs/CurveUtils.java +0 -0
  192. data/src/{toxi → main/java/toxi}/geom/nurbs/InterpolationException.java +0 -0
  193. data/src/{toxi → main/java/toxi}/geom/nurbs/KnotVector.java +0 -0
  194. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsCreator.java +2 -2
  195. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsCurve.java +0 -0
  196. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsMeshCreator.java +0 -0
  197. data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsSurface.java +0 -0
  198. data/src/{toxi → main/java/toxi}/image/util/Filter8bit.java +0 -0
  199. data/src/{toxi → main/java/toxi}/image/util/TiledFrameExporter.java +0 -0
  200. data/src/{toxi → main/java/toxi}/math/BezierInterpolation.java +0 -0
  201. data/src/{toxi → main/java/toxi}/math/CircularInterpolation.java +0 -0
  202. data/src/{toxi → main/java/toxi}/math/CosineInterpolation.java +0 -0
  203. data/src/{toxi → main/java/toxi}/math/DecimatedInterpolation.java +0 -0
  204. data/src/{toxi → main/java/toxi}/math/ExponentialInterpolation.java +0 -0
  205. data/src/{toxi → main/java/toxi}/math/InterpolateStrategy.java +0 -0
  206. data/src/{toxi → main/java/toxi}/math/Interpolation2D.java +0 -0
  207. data/src/{toxi → main/java/toxi}/math/LinearInterpolation.java +0 -0
  208. data/src/{toxi → main/java/toxi}/math/MathUtils.java +0 -0
  209. data/src/{toxi → main/java/toxi}/math/NonLinearScaleMap.java +0 -0
  210. data/src/{toxi → main/java/toxi}/math/ScaleMap.java +0 -0
  211. data/src/{toxi → main/java/toxi}/math/SigmoidInterpolation.java +0 -0
  212. data/src/{toxi → main/java/toxi}/math/SinCosLUT.java +0 -0
  213. data/src/{toxi → main/java/toxi}/math/ThresholdInterpolation.java +0 -0
  214. data/src/{toxi → main/java/toxi}/math/ZoomLensInterpolation.java +0 -0
  215. data/src/{toxi → main/java/toxi}/math/conversion/UnitTranslator.java +0 -0
  216. data/src/{toxi → main/java/toxi}/math/noise/PerlinNoise.java +0 -0
  217. data/src/{toxi → main/java/toxi}/math/noise/SimplexNoise.java +0 -0
  218. data/src/{toxi → main/java/toxi}/math/waves/AMFMSineWave.java +0 -0
  219. data/src/{toxi → main/java/toxi}/math/waves/AbstractWave.java +0 -0
  220. data/src/{toxi → main/java/toxi}/math/waves/ConstantWave.java +0 -0
  221. data/src/{toxi → main/java/toxi}/math/waves/FMHarmonicSquareWave.java +0 -0
  222. data/src/{toxi → main/java/toxi}/math/waves/FMSawtoothWave.java +0 -0
  223. data/src/{toxi → main/java/toxi}/math/waves/FMSineWave.java +0 -0
  224. data/src/{toxi → main/java/toxi}/math/waves/FMSquareWave.java +0 -0
  225. data/src/{toxi → main/java/toxi}/math/waves/FMTriangleWave.java +0 -0
  226. data/src/{toxi → main/java/toxi}/math/waves/SineWave.java +2 -2
  227. data/src/{toxi → main/java/toxi}/math/waves/Wave2D.java +0 -0
  228. data/src/{toxi → main/java/toxi}/math/waves/WaveState.java +0 -0
  229. data/src/{toxi → main/java/toxi}/music/scale/AbstractScale.java +0 -0
  230. data/src/{toxi → main/java/toxi}/music/scale/GenericScale.java +0 -0
  231. data/src/{toxi → main/java/toxi}/music/scale/MajorScale.java +0 -0
  232. data/src/{toxi → main/java/toxi}/newmesh/AttributedEdge.java +0 -0
  233. data/src/{toxi → main/java/toxi}/newmesh/AttributedFace.java +0 -0
  234. data/src/{toxi → main/java/toxi}/newmesh/IndexedTriangleMesh.java +70 -69
  235. data/src/{toxi → main/java/toxi}/newmesh/MeshAttributeCompiler.java +0 -0
  236. data/src/{toxi → main/java/toxi}/newmesh/MeshFaceNormalCompiler.java +0 -0
  237. data/src/{toxi → main/java/toxi}/newmesh/MeshUVCompiler.java +0 -0
  238. data/src/{toxi → main/java/toxi}/newmesh/MeshVertexColorCompiler.java +0 -0
  239. data/src/{toxi → main/java/toxi}/newmesh/MeshVertexCompiler.java +0 -0
  240. data/src/{toxi → main/java/toxi}/newmesh/MeshVertexNormalCompiler.java +0 -0
  241. data/src/{toxi → main/java/toxi}/newmesh/SpatialIndex.java +0 -0
  242. data/src/{toxi → main/java/toxi}/physics2d/ParticlePath2D.java +4 -3
  243. data/src/{toxi → main/java/toxi}/physics2d/ParticleString2D.java +2 -2
  244. data/src/{toxi → main/java/toxi}/physics2d/PullBackSpring2D.java +0 -0
  245. data/src/{toxi → main/java/toxi}/physics2d/VerletConstrainedSpring2D.java +0 -0
  246. data/src/{toxi → main/java/toxi}/physics2d/VerletMinDistanceSpring2D.java +0 -0
  247. data/src/main/java/toxi/physics2d/VerletParticle2D.java +449 -0
  248. data/src/main/java/toxi/physics2d/VerletPhysics2D.java +440 -0
  249. data/src/{toxi → main/java/toxi}/physics2d/VerletSpring2D.java +0 -0
  250. data/src/main/java/toxi/physics2d/behaviors/AttractionBehavior2D.java +211 -0
  251. data/src/{toxi → main/java/toxi}/physics2d/behaviors/ConstantForceBehavior2D.java +0 -0
  252. data/src/{toxi → main/java/toxi}/physics2d/behaviors/GravityBehavior2D.java +0 -0
  253. data/src/{toxi → main/java/toxi}/physics2d/behaviors/ParticleBehavior2D.java +0 -0
  254. data/src/{toxi → main/java/toxi}/physics2d/constraints/AngularConstraint.java +0 -0
  255. data/src/{toxi → main/java/toxi}/physics2d/constraints/AxisConstraint.java +0 -0
  256. data/src/{toxi → main/java/toxi}/physics2d/constraints/CircularConstraint.java +0 -0
  257. data/src/{toxi → main/java/toxi}/physics2d/constraints/MaxConstraint.java +0 -0
  258. data/src/{toxi → main/java/toxi}/physics2d/constraints/MinConstraint.java +0 -0
  259. data/src/{toxi → main/java/toxi}/physics2d/constraints/ParticleConstraint2D.java +0 -0
  260. data/src/{toxi → main/java/toxi}/physics2d/constraints/PolygonConstraint.java +0 -0
  261. data/src/{toxi → main/java/toxi}/physics2d/constraints/RectConstraint.java +0 -0
  262. data/src/{toxi → main/java/toxi}/physics3d/ParticlePath3D.java +4 -3
  263. data/src/{toxi → main/java/toxi}/physics3d/ParticleString3D.java +2 -2
  264. data/src/{toxi → main/java/toxi}/physics3d/PullBackSpring3D.java +0 -0
  265. data/src/{toxi → main/java/toxi}/physics3d/VerletConstrainedSpring3D.java +0 -0
  266. data/src/{toxi → main/java/toxi}/physics3d/VerletMinDistanceSpring3D.java +0 -0
  267. data/src/main/java/toxi/physics3d/VerletParticle3D.java +377 -0
  268. data/src/{toxi → main/java/toxi}/physics3d/VerletPhysics3D.java +0 -0
  269. data/src/{toxi → main/java/toxi}/physics3d/VerletSpring3D.java +0 -0
  270. data/src/{toxi → main/java/toxi}/physics3d/behaviors/AttractionBehavior3D.java +0 -0
  271. data/src/{toxi → main/java/toxi}/physics3d/behaviors/ConstantForceBehavior3D.java +0 -0
  272. data/src/{toxi → main/java/toxi}/physics3d/behaviors/GravityBehavior3D.java +0 -0
  273. data/src/{toxi → main/java/toxi}/physics3d/behaviors/ParticleBehavior3D.java +0 -0
  274. data/src/{toxi → main/java/toxi}/physics3d/constraints/AxisConstraint.java +1 -0
  275. data/src/{toxi → main/java/toxi}/physics3d/constraints/BoxConstraint.java +0 -0
  276. data/src/{toxi → main/java/toxi}/physics3d/constraints/CylinderConstraint.java +1 -0
  277. data/src/{toxi → main/java/toxi}/physics3d/constraints/MaxConstraint.java +1 -0
  278. data/src/{toxi → main/java/toxi}/physics3d/constraints/MinConstraint.java +1 -0
  279. data/src/{toxi → main/java/toxi}/physics3d/constraints/ParticleConstraint3D.java +0 -0
  280. data/src/{toxi → main/java/toxi}/physics3d/constraints/PlaneConstraint.java +0 -0
  281. data/src/{toxi → main/java/toxi}/physics3d/constraints/SoftBoxConstraint.java +38 -38
  282. data/src/{toxi → main/java/toxi}/physics3d/constraints/SphereConstraint.java +1 -0
  283. data/src/{toxi → main/java/toxi}/processing/ArrowModifier.java +0 -0
  284. data/src/{toxi → main/java/toxi}/processing/DashedLineModifier.java +0 -0
  285. data/src/{toxi → main/java/toxi}/processing/DeltaOrientationMapper.java +0 -0
  286. data/src/{toxi → main/java/toxi}/processing/Line2DRenderModifier.java +0 -0
  287. data/src/{toxi → main/java/toxi}/processing/MeshToVBO.java +0 -0
  288. data/src/{toxi → main/java/toxi}/processing/NormalMapper.java +0 -0
  289. data/src/{toxi → main/java/toxi}/processing/POVInterface.java +0 -0
  290. data/src/{toxi → main/java/toxi}/processing/POVMesh.java +0 -0
  291. data/src/{toxi → main/java/toxi}/processing/POVWriter.java +0 -0
  292. data/src/{toxi → main/java/toxi}/processing/RCOpaque.java +0 -0
  293. data/src/{toxi → main/java/toxi}/processing/RCTransp.java +0 -0
  294. data/src/{toxi → main/java/toxi}/processing/TextureBuilder.java +0 -0
  295. data/src/{toxi → main/java/toxi}/processing/Textures.java +0 -0
  296. data/src/{toxi → main/java/toxi}/processing/ToxiclibsSupport.java +0 -0
  297. data/src/{toxi → main/java/toxi}/processing/Tracing.java +0 -0
  298. data/src/{toxi → main/java/toxi}/processing/XYZNormalMapper.java +0 -0
  299. data/src/{toxi → main/java/toxi}/sim/automata/CAMatrix.java +0 -0
  300. data/src/{toxi → main/java/toxi}/sim/automata/CARule.java +0 -0
  301. data/src/{toxi → main/java/toxi}/sim/automata/CARule2D.java +0 -0
  302. data/src/{toxi → main/java/toxi}/sim/automata/CAWolfram1D.java +0 -0
  303. data/src/{toxi → main/java/toxi}/sim/automata/EvolvableMatrix.java +0 -0
  304. data/src/{toxi → main/java/toxi}/sim/automata/MatrixEvolver.java +0 -0
  305. data/src/{toxi → main/java/toxi}/sim/dla/BottomUpOrder.java +0 -0
  306. data/src/{toxi → main/java/toxi}/sim/dla/DLA.java +0 -0
  307. data/src/{toxi → main/java/toxi}/sim/dla/DLAConfiguration.java +0 -0
  308. data/src/{toxi → main/java/toxi}/sim/dla/DLAEventAdapter.java +0 -0
  309. data/src/{toxi → main/java/toxi}/sim/dla/DLAEventListener.java +0 -0
  310. data/src/{toxi → main/java/toxi}/sim/dla/DLAGuideLines.java +0 -0
  311. data/src/{toxi → main/java/toxi}/sim/dla/DLAParticle.java +0 -0
  312. data/src/{toxi → main/java/toxi}/sim/dla/DLASegment.java +0 -0
  313. data/src/{toxi → main/java/toxi}/sim/dla/PipelineOrder.java +0 -0
  314. data/src/{toxi → main/java/toxi}/sim/dla/RadialDistanceOrder.java +0 -0
  315. data/src/{toxi → main/java/toxi}/sim/erosion/ErosionFunction.java +0 -0
  316. data/src/{toxi → main/java/toxi}/sim/erosion/TalusAngleErosion.java +0 -0
  317. data/src/{toxi → main/java/toxi}/sim/erosion/ThermalErosion.java +0 -0
  318. data/src/{toxi → main/java/toxi}/sim/fluids/FluidSolver2D.java +0 -0
  319. data/src/{toxi → main/java/toxi}/sim/fluids/FluidSolver3D.java +0 -0
  320. data/src/{toxi → main/java/toxi}/sim/grayscott/GrayScott.java +0 -0
  321. data/src/{toxi → main/java/toxi}/util/DateUtils.java +0 -0
  322. data/src/{toxi → main/java/toxi}/util/FileSequenceDescriptor.java +0 -0
  323. data/src/main/java/toxi/util/FileUtils.java +443 -0
  324. data/src/{toxi → main/java/toxi}/util/datatypes/ArraySet.java +0 -0
  325. data/src/{toxi → main/java/toxi}/util/datatypes/ArrayUtil.java +0 -0
  326. data/src/{toxi → main/java/toxi}/util/datatypes/BiasedDoubleRange.java +3 -3
  327. data/src/{toxi → main/java/toxi}/util/datatypes/BiasedFloatRange.java +2 -3
  328. data/src/{toxi → main/java/toxi}/util/datatypes/BiasedIntegerRange.java +3 -3
  329. data/src/{toxi → main/java/toxi}/util/datatypes/DoubleRange.java +3 -3
  330. data/src/{toxi → main/java/toxi}/util/datatypes/FloatRange.java +3 -3
  331. data/src/{toxi → main/java/toxi}/util/datatypes/GenericSet.java +0 -0
  332. data/src/{toxi → main/java/toxi}/util/datatypes/IntegerRange.java +3 -3
  333. data/src/{toxi → main/java/toxi}/util/datatypes/IntegerSet.java +0 -0
  334. data/src/{toxi → main/java/toxi}/util/datatypes/ItemIndex.java +0 -0
  335. data/src/{toxi → main/java/toxi}/util/datatypes/SingletonRegistry.java +0 -0
  336. data/src/{toxi → main/java/toxi}/util/datatypes/TypedProperties.java +0 -0
  337. data/src/{toxi → main/java/toxi}/util/datatypes/UndirectedGraph.java +0 -0
  338. data/src/{toxi → main/java/toxi}/util/datatypes/UniqueItemIndex.java +0 -0
  339. data/src/{toxi → main/java/toxi}/util/datatypes/WeightedRandomEntry.java +0 -0
  340. data/src/{toxi → main/java/toxi}/util/datatypes/WeightedRandomSet.java +0 -0
  341. data/src/{toxi → main/java/toxi}/util/events/EventDispatcher.java +0 -0
  342. data/src/{toxi → main/java/toxi}/volume/AdditiveBrush.java +0 -0
  343. data/src/{toxi → main/java/toxi}/volume/ArrayIsoSurface.java +0 -0
  344. data/src/{toxi → main/java/toxi}/volume/BoxBrush.java +0 -0
  345. data/src/{toxi → main/java/toxi}/volume/BrushMode.java +0 -0
  346. data/src/{toxi → main/java/toxi}/volume/HashIsoSurface.java +0 -0
  347. data/src/{toxi → main/java/toxi}/volume/IsoSurface.java +0 -0
  348. data/src/{toxi → main/java/toxi}/volume/MarchingCubesIndex.java +0 -0
  349. data/src/{toxi → main/java/toxi}/volume/MeshLatticeBuilder.java +0 -0
  350. data/src/{toxi → main/java/toxi}/volume/MeshVoxelizer.java +0 -0
  351. data/src/{toxi → main/java/toxi}/volume/MultiplyBrush.java +0 -0
  352. data/src/{toxi → main/java/toxi}/volume/PeakBrush.java +0 -0
  353. data/src/{toxi → main/java/toxi}/volume/ReplaceBrush.java +0 -0
  354. data/src/{toxi → main/java/toxi}/volume/RoundBrush.java +0 -0
  355. data/src/{toxi → main/java/toxi}/volume/VolumetricBrush.java +0 -0
  356. data/src/{toxi → main/java/toxi}/volume/VolumetricHashMap.java +0 -0
  357. data/src/{toxi → main/java/toxi}/volume/VolumetricSpace.java +0 -0
  358. data/src/{toxi → main/java/toxi}/volume/VolumetricSpaceArray.java +0 -0
  359. data/src/{BooleanShapes.java → test/java/BooleanShapes.java} +0 -0
  360. data/toxiclibs.gemspec +6 -7
  361. metadata +345 -347
  362. data/src/toxi/data/feeds/AtomFeed.java +0 -129
  363. data/src/toxi/data/feeds/RSSFeed.java +0 -99
  364. data/src/toxi/physics2d/VerletParticle2D.java +0 -457
  365. data/src/toxi/physics2d/VerletPhysics2D.java +0 -448
  366. data/src/toxi/physics2d/behaviors/AttractionBehavior2D.java +0 -212
  367. data/src/toxi/physics3d/VerletParticle3D.java +0 -385
  368. data/src/toxi/util/FileUtils.java +0 -467
@@ -108,12 +108,18 @@ public class Origin3D {
108
108
  this.zAxis = dir.getNormalized();
109
109
  Vec3D av = null;
110
110
  Axis a = zAxis.getClosestAxis();
111
- if (a == Vec3D.Axis.X) {
112
- av = Vec3D.Axis.Z.getVector().getInverted();
113
- } else if (a == Vec3D.Axis.Y) {
114
- av = Vec3D.Axis.Z.getVector().getInverted();
115
- } else if (a == Vec3D.Axis.Z) {
116
- av = Vec3D.Axis.X.getVector().getInverted();
111
+ if (null != a) switch (a) {
112
+ case X:
113
+ av = Vec3D.Axis.Z.getVector().getInverted();
114
+ break;
115
+ case Y:
116
+ av = Vec3D.Axis.Z.getVector().getInverted();
117
+ break;
118
+ case Z:
119
+ av = Vec3D.Axis.X.getVector().getInverted();
120
+ break;
121
+ default:
122
+ break;
117
123
  }
118
124
  if (av == null) {
119
125
  throw new IllegalArgumentException(
@@ -27,9 +27,7 @@
27
27
 
28
28
  package toxi.geom;
29
29
 
30
- import javax.xml.bind.annotation.XmlAccessType;
31
- import javax.xml.bind.annotation.XmlAccessorType;
32
- import javax.xml.bind.annotation.XmlElement;
30
+
33
31
 
34
32
  import toxi.geom.mesh.Mesh3D;
35
33
  import toxi.geom.mesh.TriangleMesh;
@@ -39,7 +37,7 @@ import toxi.math.MathUtils;
39
37
  * Class to describe and work with infinite generic 3D planes. Useful for
40
38
  * intersection problems and classifying points.
41
39
  */
42
- @XmlAccessorType(XmlAccessType.FIELD)
40
+
43
41
  public class Plane extends Vec3D implements Shape3D {
44
42
 
45
43
  /**
@@ -81,7 +79,7 @@ public class Plane extends Vec3D implements Shape3D {
81
79
  /**
82
80
  *
83
81
  */
84
- @XmlElement(required = true)
82
+
85
83
  public Vec3D normal;
86
84
 
87
85
  /**
@@ -87,9 +87,9 @@ public class PointCloud3D implements Iterable<Vec3D> {
87
87
  * @return
88
88
  */
89
89
  public PointCloud3D addAll(List<? extends Vec3D> plist) {
90
- for (Vec3D p : plist) {
90
+ plist.forEach((p) -> {
91
91
  addPoint(p);
92
- }
92
+ });
93
93
  return this;
94
94
  }
95
95
 
@@ -116,9 +116,9 @@ public class PointCloud3D implements Iterable<Vec3D> {
116
116
  * @return itself
117
117
  */
118
118
  public PointCloud3D applyMatrix(Matrix4x4 m) {
119
- for (Vec3D p : points) {
119
+ points.forEach((p) -> {
120
120
  p.set(m.applyTo(p));
121
- }
121
+ });
122
122
  updateBounds();
123
123
  return this;
124
124
  }
@@ -145,9 +145,9 @@ public class PointCloud3D implements Iterable<Vec3D> {
145
145
  getCentroid();
146
146
  Vec3D delta = origin != null ? origin.sub(centroid) : centroid
147
147
  .getInverted();
148
- for (Vec3D p : points) {
148
+ points.forEach((p) -> {
149
149
  p.addSelf(delta);
150
- }
150
+ });
151
151
  min.addSelf(delta);
152
152
  max.addSelf(delta);
153
153
  centroid.addSelf(delta);
@@ -174,9 +174,9 @@ public class PointCloud3D implements Iterable<Vec3D> {
174
174
  */
175
175
  public PointCloud3D copy() {
176
176
  PointCloud3D c = new PointCloud3D(points.size());
177
- for (ReadonlyVec3D p : points) {
177
+ points.forEach((p) -> {
178
178
  c.addPoint(p.copy());
179
- }
179
+ });
180
180
  return c;
181
181
  }
182
182
 
@@ -208,6 +208,7 @@ public class PointCloud3D implements Iterable<Vec3D> {
208
208
  *
209
209
  * @see java.lang.Iterable#iterator()
210
210
  */
211
+ @Override
211
212
  public Iterator<Vec3D> iterator() {
212
213
  return points.iterator();
213
214
  }
@@ -238,16 +239,18 @@ public class PointCloud3D implements Iterable<Vec3D> {
238
239
  public PointCloud3D updateBounds() {
239
240
  min = Vec3D.MAX_VALUE.copy();
240
241
  max = Vec3D.NEG_MAX_VALUE.copy();
241
- for (Vec3D p : points) {
242
+ points.stream().map((p) -> {
242
243
  min.minSelf(p);
244
+ return p;
245
+ }).forEachOrdered((p) -> {
243
246
  max.maxSelf(p);
244
- }
247
+ });
245
248
  centroid.set(min.add(max).scaleSelf(0.5f));
246
249
  radiusSquared = 0;
247
- for (ReadonlyVec3D p : points) {
250
+ points.forEach((p) -> {
248
251
  radiusSquared = MathUtils.max(radiusSquared,
249
252
  p.distanceToSquared(centroid));
250
- }
253
+ });
251
254
  return this;
252
255
  }
253
256
  }
@@ -32,7 +32,7 @@ import java.util.Collections;
32
32
  import java.util.Iterator;
33
33
  import java.util.List;
34
34
 
35
- import javax.xml.bind.annotation.XmlElement;
35
+
36
36
 
37
37
  import toxi.geom.Line2D.LineIntersection;
38
38
  import toxi.geom.Line2D.LineIntersection.Type;
@@ -105,8 +105,8 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
105
105
  /**
106
106
  *
107
107
  */
108
- @XmlElement(name = "v")
109
- public List<Vec2D> vertices = new ArrayList<Vec2D>();
108
+
109
+ public List<Vec2D> vertices = new ArrayList<>();
110
110
 
111
111
  /**
112
112
  *
@@ -119,9 +119,9 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
119
119
  * @param points
120
120
  */
121
121
  public Polygon2D(List<Vec2D> points) {
122
- for (Vec2D p : points) {
122
+ points.forEach((p) -> {
123
123
  add(p.copy());
124
- }
124
+ });
125
125
  }
126
126
 
127
127
  /**
@@ -152,7 +152,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
152
152
  * vertex point to add
153
153
  * @return itself
154
154
  */
155
- public Polygon2D add(Vec2D p) {
155
+ public final Polygon2D add(Vec2D p) {
156
156
  if (!vertices.contains(p)) {
157
157
  vertices.add(p);
158
158
  }
@@ -178,12 +178,13 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
178
178
  public Polygon2D center(ReadonlyVec2D origin) {
179
179
  Vec2D centroid = getCentroid();
180
180
  Vec2D delta = origin != null ? origin.sub(centroid) : centroid.invert();
181
- for (Vec2D v : vertices) {
181
+ vertices.forEach((v) -> {
182
182
  v.addSelf(delta);
183
- }
183
+ });
184
184
  return this;
185
185
  }
186
186
 
187
+ @Override
187
188
  public boolean containsPoint(ReadonlyVec2D p) {
188
189
  int num = vertices.size();
189
190
  int i, j = num - 1;
@@ -209,12 +210,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
209
210
  * @return
210
211
  */
211
212
  public boolean containsPolygon(Polygon2D poly) {
212
- for (Vec2D p : poly.vertices) {
213
- if (!containsPoint(p)) {
214
- return false;
215
- }
216
- }
217
- return true;
213
+ return poly.vertices.stream().noneMatch((p) -> (!containsPoint(p)));
218
214
  }
219
215
 
220
216
  /**
@@ -270,6 +266,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
270
266
  *
271
267
  * @return polygon area
272
268
  */
269
+ @Override
273
270
  public float getArea() {
274
271
  float area = 0;
275
272
  for (int i = 0, num = vertices.size(); i < num; i++) {
@@ -282,6 +279,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
282
279
  return area;
283
280
  }
284
281
 
282
+ @Override
285
283
  public Circle getBoundingCircle() {
286
284
  return Circle.newBoundingCircle(vertices);
287
285
  }
@@ -292,6 +290,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
292
290
  * @return bounding rect
293
291
  * @see toxi.geom.Shape2D#getBounds()
294
292
  */
293
+ @Override
295
294
  public Rect getBounds() {
296
295
  return Rect.getBoundingRect(vertices);
297
296
  }
@@ -321,6 +320,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
321
320
  *
322
321
  * @see toxi.geom.Shape2D#getCircumference()
323
322
  */
323
+ @Override
324
324
  public float getCircumference() {
325
325
  float circ = 0;
326
326
  for (int i = 0, num = vertices.size(); i < num; i++) {
@@ -371,9 +371,10 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
371
371
  *
372
372
  * @return list of lines
373
373
  */
374
+ @Override
374
375
  public List<Line2D> getEdges() {
375
376
  int num = vertices.size();
376
- List<Line2D> edges = new ArrayList<Line2D>(num);
377
+ List<Line2D> edges = new ArrayList<>(num);
377
378
  for (int i = 0; i < num; i++) {
378
379
  edges.add(new Line2D(vertices.get(i), vertices.get((i + 1) % num)));
379
380
  }
@@ -404,6 +405,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
404
405
  *
405
406
  * @return Vec2D
406
407
  */
408
+ @Override
407
409
  public Vec2D getRandomPoint() {
408
410
  List<Line2D> edges = getEdges();
409
411
  int numEdges = edges.size();
@@ -459,13 +461,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
459
461
  * @return
460
462
  */
461
463
  protected boolean intersectsLine(Line2D l, List<Line2D> edges) {
462
- for (Line2D e : edges) {
463
- final Type isec = l.intersectLine(e).getType();
464
- if (isec == Type.INTERSECTING || isec == Type.COINCIDENT) {
465
- return true;
466
- }
467
- }
468
- return false;
464
+ return edges.stream().map((e) -> l.intersectLine(e).getType()).anyMatch((isec) -> (isec == Type.INTERSECTING || isec == Type.COINCIDENT));
469
465
  }
470
466
 
471
467
  /**
@@ -477,12 +473,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
477
473
  */
478
474
  public boolean intersectsPolygon(Polygon2D poly) {
479
475
  List<Line2D> edgesB = poly.getEdges();
480
- for (Line2D ea : getEdges()) {
481
- if (intersectsLine(ea, edgesB)) {
482
- return true;
483
- }
484
- }
485
- return false;
476
+ return getEdges().stream().anyMatch((ea) -> (intersectsLine(ea, edgesB)));
486
477
  }
487
478
 
488
479
  /**
@@ -492,12 +483,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
492
483
  */
493
484
  public boolean intersectsRect(Rect r) {
494
485
  List<Line2D> edges = r.getEdges();
495
- for (Line2D ea : getEdges()) {
496
- if (intersectsLine(ea, edges)) {
497
- return true;
498
- }
499
- }
500
- return false;
486
+ return getEdges().stream().anyMatch((ea) -> (intersectsLine(ea, edges)));
501
487
  }
502
488
 
503
489
  /**
@@ -539,6 +525,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
539
525
  *
540
526
  * @return
541
527
  */
528
+ @Override
542
529
  public Iterator<Vec2D> iterator() {
543
530
  return vertices.iterator();
544
531
  }
@@ -653,7 +640,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
653
640
  */
654
641
  public Polygon2D reduceVertices(float minEdgeLen) {
655
642
  minEdgeLen *= minEdgeLen;
656
- List<Vec2D> reduced = new ArrayList<Vec2D>();
643
+ List<Vec2D> reduced = new ArrayList<>();
657
644
  Vec2D prev = vertices.get(0);
658
645
  reduced.add(prev);
659
646
  int num = vertices.size() - 1;
@@ -705,9 +692,9 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
705
692
  * @return
706
693
  */
707
694
  public Polygon2D rotate(float theta) {
708
- for (Vec2D v : vertices) {
695
+ vertices.forEach((v) -> {
709
696
  v.rotate(theta);
710
- }
697
+ });
711
698
  return this;
712
699
  }
713
700
 
@@ -727,9 +714,9 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
727
714
  * @return
728
715
  */
729
716
  public Polygon2D scale(float x, float y) {
730
- for (Vec2D v : vertices) {
717
+ vertices.forEach((v) -> {
731
718
  v.scaleSelf(x, y);
732
- }
719
+ });
733
720
  return this;
734
721
  }
735
722
 
@@ -759,9 +746,9 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
759
746
  */
760
747
  public Polygon2D scaleSize(float x, float y) {
761
748
  Vec2D centroid = getCentroid();
762
- for (Vec2D v : vertices) {
749
+ vertices.forEach((v) -> {
763
750
  v.subSelf(centroid).scaleSelf(x, y).addSelf(centroid);
764
- }
751
+ });
765
752
  return this;
766
753
  }
767
754
 
@@ -794,7 +781,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
794
781
  public Polygon2D smooth(float amount, float baseWeight) {
795
782
  Vec2D centroid = getCentroid();
796
783
  int num = vertices.size();
797
- List<Vec2D> filtered = new ArrayList<Vec2D>(num);
784
+ List<Vec2D> filtered = new ArrayList<>(num);
798
785
  for (int i = 0, j = num - 1, k = 1; i < num; i++) {
799
786
  Vec2D a = vertices.get(i);
800
787
  Vec2D dir = vertices.get(j).sub(a).addSelf(vertices.get(k).sub(a))
@@ -863,7 +850,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
863
850
  public boolean toOutline() {
864
851
  int corners = vertices.size();
865
852
  int maxSegs = corners * 3;
866
- List<Vec2D> newVerts = new ArrayList<Vec2D>(corners);
853
+ List<Vec2D> newVerts = new ArrayList<>(corners);
867
854
  Vec2D[] segments = new Vec2D[maxSegs];
868
855
  Vec2D[] segEnds = new Vec2D[maxSegs];
869
856
  float[] segAngles = new float[maxSegs];
@@ -995,6 +982,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
995
982
  *
996
983
  * @return itself
997
984
  */
985
+ @Override
998
986
  public Polygon2D toPolygon2D() {
999
987
  return this;
1000
988
  }
@@ -1003,6 +991,7 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
1003
991
  *
1004
992
  * @return
1005
993
  */
994
+ @Override
1006
995
  public String toString() {
1007
996
  StringBuilder buf = new StringBuilder();
1008
997
  for (Iterator<Vec2D> i = vertices.iterator(); i.hasNext();) {
@@ -1021,9 +1010,9 @@ public class Polygon2D implements Shape2D, Iterable<Vec2D> {
1021
1010
  * @return
1022
1011
  */
1023
1012
  public Polygon2D translate(float x, float y) {
1024
- for (Vec2D v : vertices) {
1013
+ vertices.forEach((v) -> {
1025
1014
  v.addSelf(x, y);
1026
- }
1015
+ });
1027
1016
  return this;
1028
1017
  }
1029
1018
 
@@ -26,9 +26,7 @@
26
26
  */
27
27
  package toxi.geom;
28
28
 
29
- import javax.xml.bind.annotation.XmlAccessType;
30
- import javax.xml.bind.annotation.XmlAccessorType;
31
- import javax.xml.bind.annotation.XmlAttribute;
29
+
32
30
 
33
31
  import toxi.math.InterpolateStrategy;
34
32
  import toxi.math.MathUtils;
@@ -36,7 +34,7 @@ import toxi.math.MathUtils;
36
34
  /**
37
35
  * Quaternion implementation with SLERP based on http://is.gd/2n9s
38
36
  */
39
- @XmlAccessorType(XmlAccessType.FIELD)
37
+
40
38
  public class Quaternion {
41
39
 
42
40
  /**
@@ -173,7 +171,7 @@ public class Quaternion {
173
171
  return createFromAxisAngle(axis, angle);
174
172
  }
175
173
 
176
- @XmlAttribute(required = true)
174
+
177
175
  public float x,
178
176
  /**
179
177
  *
@@ -27,20 +27,18 @@
27
27
 
28
28
  package toxi.geom;
29
29
 
30
- import javax.xml.bind.annotation.XmlAccessType;
31
- import javax.xml.bind.annotation.XmlAccessorType;
32
- import javax.xml.bind.annotation.XmlElement;
30
+
33
31
 
34
32
  /**
35
33
  * A simple 2D ray datatype
36
34
  */
37
- @XmlAccessorType(XmlAccessType.FIELD)
35
+
38
36
  public class Ray2D extends Vec2D {
39
37
 
40
38
  /**
41
39
  *
42
40
  */
43
- @XmlElement(required = true)
41
+
44
42
  protected Vec2D dir;
45
43
 
46
44
  /**
@@ -140,6 +138,7 @@ public class Ray2D extends Vec2D {
140
138
  *
141
139
  * @return
142
140
  */
141
+ @Override
143
142
  public String toString() {
144
143
  return "origin: " + super.toString() + " dir: " + dir;
145
144
  }