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
@@ -30,12 +30,10 @@ package toxi.data.feeds;
30
30
  import java.util.ArrayList;
31
31
  import java.util.List;
32
32
 
33
- import javax.xml.bind.annotation.XmlElement;
34
- import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
33
+
35
34
  import javax.xml.datatype.XMLGregorianCalendar;
36
35
 
37
36
  import toxi.data.feeds.util.EntityStripper;
38
- import toxi.data.feeds.util.Rfc822DateAdapter;
39
37
 
40
38
  /**
41
39
  *
@@ -46,45 +44,45 @@ public class RSSItem {
46
44
  /**
47
45
  *
48
46
  */
49
- @XmlElement
47
+
50
48
  public String title;
51
49
 
52
50
  /**
53
51
  *
54
52
  */
55
- @XmlElement
53
+
56
54
  public String description;
57
55
 
58
56
  /**
59
57
  *
60
58
  */
61
- @XmlElement(required = true)
62
- @XmlJavaTypeAdapter(Rfc822DateAdapter.class)
59
+
60
+
63
61
  public XMLGregorianCalendar pubDate;
64
62
 
65
63
  /**
66
64
  *
67
65
  */
68
- @XmlElement
66
+
69
67
  public String guid;
70
68
 
71
69
  /**
72
70
  *
73
71
  */
74
- @XmlElement
72
+
75
73
  public String link;
76
74
 
77
75
  /**
78
76
  *
79
77
  */
80
- @XmlElement(name = "category")
81
- public List<String> categories = new ArrayList<String>();
78
+
79
+ public List<String> categories = new ArrayList<>();
82
80
 
83
81
  /**
84
82
  *
85
83
  */
86
- @XmlElement(name = "enclosure")
87
- public List<RSSEnclosure> enclosures = new ArrayList<RSSEnclosure>();
84
+
85
+ public List<RSSEnclosure> enclosures = new ArrayList<>();
88
86
 
89
87
  /**
90
88
  *
@@ -32,18 +32,17 @@ import java.text.SimpleDateFormat;
32
32
  import java.util.Date;
33
33
  import java.util.GregorianCalendar;
34
34
 
35
- import javax.xml.bind.annotation.adapters.XmlAdapter;
35
+
36
36
  import javax.xml.datatype.DatatypeFactory;
37
37
  import javax.xml.datatype.XMLGregorianCalendar;
38
38
 
39
- import com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl;
39
+ //import com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl;
40
40
 
41
41
  /**
42
42
  *
43
43
  * @author tux
44
44
  */
45
- public class Iso8601DateAdapter extends
46
- XmlAdapter<String, XMLGregorianCalendar> {
45
+ public class Iso8601DateAdapter {
47
46
 
48
47
  /**
49
48
  *
@@ -58,7 +57,7 @@ public class Iso8601DateAdapter extends
58
57
  * @return
59
58
  * @throws Exception
60
59
  */
61
- @Override
60
+
62
61
  public String marshal(XMLGregorianCalendar date) throws Exception {
63
62
  return ISO8601_FORMATS[0].format(date);
64
63
  }
@@ -69,11 +68,11 @@ public class Iso8601DateAdapter extends
69
68
  * @return
70
69
  * @throws Exception
71
70
  */
72
- @Override
71
+
73
72
  public XMLGregorianCalendar unmarshal(String dateString) throws Exception {
74
73
  XMLGregorianCalendar calendar = null;
75
74
  GregorianCalendar cal = new GregorianCalendar();
76
- DatatypeFactory dataType = DatatypeFactoryImpl.newInstance();
75
+ DatatypeFactory dataType = DatatypeFactory.newInstance();
77
76
  for (SimpleDateFormat f : ISO8601_FORMATS) {
78
77
  try {
79
78
  Date d = f.parse(dateString);
@@ -32,17 +32,16 @@ import java.text.SimpleDateFormat;
32
32
  import java.util.Date;
33
33
  import java.util.GregorianCalendar;
34
34
 
35
- import javax.xml.bind.annotation.adapters.XmlAdapter;
36
35
  import javax.xml.datatype.DatatypeFactory;
37
36
  import javax.xml.datatype.XMLGregorianCalendar;
38
37
 
39
- import com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl;
38
+ //import com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl;
40
39
 
41
40
  /**
42
41
  *
43
42
  * @author tux
44
43
  */
45
- public class Rfc822DateAdapter extends XmlAdapter<String, XMLGregorianCalendar> {
44
+ public class Rfc822DateAdapter {
46
45
 
47
46
  /**
48
47
  *
@@ -63,7 +62,7 @@ public class Rfc822DateAdapter extends XmlAdapter<String, XMLGregorianCalendar>
63
62
  * @return
64
63
  * @throws Exception
65
64
  */
66
- @Override
65
+
67
66
  public String marshal(XMLGregorianCalendar date) throws Exception {
68
67
  return RFC822_FORMATS[0].format(date);
69
68
  }
@@ -74,7 +73,7 @@ public class Rfc822DateAdapter extends XmlAdapter<String, XMLGregorianCalendar>
74
73
  * @return
75
74
  * @throws Exception
76
75
  */
77
- @Override
76
+
78
77
  public XMLGregorianCalendar unmarshal(String dateString) throws Exception {
79
78
  XMLGregorianCalendar calendar = null;
80
79
  GregorianCalendar cal = new GregorianCalendar();
@@ -82,7 +81,7 @@ public class Rfc822DateAdapter extends XmlAdapter<String, XMLGregorianCalendar>
82
81
  try {
83
82
  Date d = f.parse(dateString);
84
83
  cal.setTime(d);
85
- DatatypeFactory dataType = DatatypeFactoryImpl.newInstance();
84
+ DatatypeFactory dataType = DatatypeFactory.newInstance();
86
85
  calendar = dataType.newXMLGregorianCalendar(cal);
87
86
  break;
88
87
  } catch (ParseException e) {
@@ -29,10 +29,7 @@ package toxi.geom;
29
29
 
30
30
  import java.util.List;
31
31
 
32
- import javax.xml.bind.annotation.XmlAccessType;
33
- import javax.xml.bind.annotation.XmlAccessorType;
34
- import javax.xml.bind.annotation.XmlElement;
35
- import javax.xml.bind.annotation.XmlTransient;
32
+
36
33
 
37
34
  import toxi.geom.mesh.Mesh3D;
38
35
  import toxi.geom.mesh.TriangleMesh;
@@ -42,7 +39,7 @@ import toxi.math.MathUtils;
42
39
  * Axis-aligned bounding box with basic intersection features for Ray, AABB and
43
40
  * Sphere classes.
44
41
  */
45
- @XmlAccessorType(XmlAccessType.FIELD)
42
+
46
43
  public class AABB extends Vec3D implements Shape3D {
47
44
 
48
45
  /**
@@ -76,20 +73,22 @@ public class AABB extends Vec3D implements Shape3D {
76
73
  Vec3D first = points.get(0);
77
74
  Vec3D min = first.copy();
78
75
  Vec3D max = first.copy();
79
- for (Vec3D p : points) {
76
+ points.stream().map((p) -> {
80
77
  min.minSelf(p);
78
+ return p;
79
+ }).forEachOrdered((p) -> {
81
80
  max.maxSelf(p);
82
- }
81
+ });
83
82
  return fromMinMax(min, max);
84
83
  }
85
84
 
86
85
  /**
87
86
  *
88
87
  */
89
- @XmlElement(required = true)
88
+
90
89
  protected Vec3D extent;
91
90
 
92
- @XmlTransient
91
+
93
92
  protected Vec3D min,
94
93
 
95
94
  /**
File without changes
@@ -99,9 +99,9 @@ public class Circle extends Ellipse {
99
99
  public static Circle newBoundingCircle(List<Vec2D> vertices) {
100
100
  Vec2D origin = new Vec2D();
101
101
  float maxD = 0;
102
- for (Vec2D v : vertices) {
102
+ vertices.forEach((v) -> {
103
103
  origin.addSelf(v);
104
- }
104
+ });
105
105
  origin.scaleSelf(1f / vertices.size());
106
106
  for (Vec2D v : vertices) {
107
107
  float d = origin.distanceToSquared(v);
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -30,7 +30,6 @@ package toxi.geom;
30
30
  import java.util.ArrayList;
31
31
  import java.util.List;
32
32
 
33
- import javax.xml.bind.annotation.XmlElement;
34
33
 
35
34
  import toxi.geom.Line2D.LineIntersection.Type;
36
35
 
@@ -182,7 +181,7 @@ public class Line2D {
182
181
  return segments;
183
182
  }
184
183
 
185
- @XmlElement
184
+
186
185
  public Vec2D a,
187
186
 
188
187
  /**
@@ -27,7 +27,6 @@
27
27
  package toxi.geom;
28
28
  import java.util.ArrayList;
29
29
  import java.util.List;
30
- import javax.xml.bind.annotation.XmlElement;
31
30
  import toxi.geom.Line3D.LineIntersection.Type;
32
31
  import toxi.math.MathUtils;
33
32
 
@@ -160,7 +159,7 @@ public class Line3D {
160
159
  return segments;
161
160
  }
162
161
 
163
- @XmlElement
162
+
164
163
  public Vec3D a,
165
164
 
166
165
  /**
@@ -32,7 +32,7 @@ import java.util.Collection;
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;
@@ -47,7 +47,7 @@ public class LineStrip2D implements Iterable<Vec2D> {
47
47
  /**
48
48
  *
49
49
  */
50
- @XmlElement(name = "v")
50
+
51
51
  protected List<Vec2D> vertices = new ArrayList<>();
52
52
 
53
53
  /**
@@ -32,7 +32,7 @@ import java.util.Collection;
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
  /**
38
38
  *
@@ -43,7 +43,7 @@ public class LineStrip3D implements Iterable<Vec3D> {
43
43
  /**
44
44
  *
45
45
  */
46
- @XmlElement(name = "v")
46
+
47
47
  protected List<Vec3D> vertices = new ArrayList<>();
48
48
 
49
49
  /**
File without changes
File without changes
File without changes
@@ -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
  }
File without changes