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.
- checksums.yaml +5 -5
- data/.mvn/extensions.xml +1 -1
- data/.travis.yml +3 -4
- data/CHANGELOG.md +10 -1
- data/README.md +3 -3
- data/Rakefile +1 -2
- data/examples/attract_repel/attractor.rb +1 -1
- data/examples/attract_repel/particle.rb +1 -1
- data/examples/boolean_shapes.rb +9 -5
- data/examples/force_directed/node.rb +1 -1
- data/examples/inflate_mesh.rb +1 -1
- data/examples/model_align.rb +1 -1
- data/examples/physics_type.rb +1 -1
- data/examples/povmesh/ftest.rb +3 -3
- data/examples/toxiclibs_color_theme.rb +91 -0
- data/lib/toxiclibs/version.rb +2 -1
- data/lib/toxiclibs.jar +0 -0
- data/lib/toxiclibs.rb +54 -37
- data/pom.rb +20 -28
- data/pom.xml +39 -65
- data/src/main/java/module-info.java +22 -0
- data/src/{toxi → main/java/toxi}/color/AccessCriteria.java +0 -0
- data/src/{toxi → main/java/toxi}/color/AlphaAccessor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/CMYKAccessor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/CMYKDistanceProxy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/ColorGradient.java +0 -0
- data/src/{toxi → main/java/toxi}/color/ColorList.java +2 -4
- data/src/{toxi → main/java/toxi}/color/ColorRange.java +0 -0
- data/src/{toxi → main/java/toxi}/color/ColorTheme.java +0 -0
- data/src/{toxi → main/java/toxi}/color/DistanceProxy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/HSVAccessor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/HSVDistanceProxy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/HistEntry.java +0 -0
- data/src/{toxi → main/java/toxi}/color/Histogram.java +0 -0
- data/src/{toxi → main/java/toxi}/color/Hue.java +0 -0
- data/src/{toxi → main/java/toxi}/color/LuminanceAccessor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/NamedColor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/ProximityComparator.java +0 -0
- data/src/{toxi → main/java/toxi}/color/RGBAccessor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/RGBDistanceProxy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/ReadonlyTColor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/TColor.java +0 -0
- data/src/{toxi → main/java/toxi}/color/TColorAdapter.java +4 -4
- data/src/{toxi → main/java/toxi}/color/ToneMap.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/AnalogousStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/ColorTheoryRegistry.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/ColorTheoryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/ComplementaryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/CompoundTheoryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/LeftSplitComplementaryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/MonochromeTheoryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/RightSplitComplementaryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/SingleComplementStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/SplitComplementaryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/TetradTheoryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/color/theory/TriadTheoryStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/data/csv/CSVAdapter.java +0 -0
- data/src/{toxi → main/java/toxi}/data/csv/CSVFieldMapper.java +0 -0
- data/src/{toxi → main/java/toxi}/data/csv/CSVListener.java +0 -0
- data/src/{toxi → main/java/toxi}/data/csv/CSVParser.java +0 -0
- data/src/{toxi → main/java/toxi}/data/feeds/AtomAuthor.java +2 -2
- data/src/{toxi → main/java/toxi}/data/feeds/AtomContent.java +3 -4
- data/src/{toxi → main/java/toxi}/data/feeds/AtomEntry.java +9 -13
- data/src/main/java/toxi/data/feeds/AtomFeed.java +91 -0
- data/src/{toxi → main/java/toxi}/data/feeds/AtomLink.java +3 -2
- data/src/{toxi → main/java/toxi}/data/feeds/RSSChannel.java +10 -11
- data/src/{toxi → main/java/toxi}/data/feeds/RSSEnclosure.java +3 -3
- data/src/{toxi → main/java/toxi}/data/feeds/RSSItem.java +11 -13
- data/src/{toxi → main/java/toxi}/data/feeds/util/EntityStripper.java +0 -0
- data/src/{toxi → main/java/toxi}/data/feeds/util/Iso8601DateAdapter.java +6 -7
- data/src/{toxi → main/java/toxi}/data/feeds/util/Rfc822DateAdapter.java +5 -6
- data/src/{toxi → main/java/toxi}/geom/AABB.java +8 -9
- data/src/{toxi → main/java/toxi}/geom/Axis3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/AxisAlignedCylinder.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/BernsteinPolynomial.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/BezierCurve2D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/BezierCurve3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/BooleanShapeBuilder.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/BoxIntersector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Circle.java +2 -2
- data/src/{toxi → main/java/toxi}/geom/CircleIntersector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Cone.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/ConvexPolygonClipper.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/CoordinateExtractor.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Ellipse.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/GMatrix.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/GVector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/GlobalGridTesselator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/GridTesselator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Intersector2D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Intersector3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/IsectData2D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/IsectData3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Line2D.java +1 -2
- data/src/{toxi → main/java/toxi}/geom/Line3D.java +1 -2
- data/src/{toxi → main/java/toxi}/geom/LineStrip2D.java +2 -2
- data/src/{toxi → main/java/toxi}/geom/LineStrip3D.java +2 -2
- data/src/{toxi → main/java/toxi}/geom/LocalGridTesselator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Matrix3d.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Matrix4f.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Matrix4x4.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/MatrixSizeException.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/OctreeVisitor.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Origin3D.java +12 -6
- data/src/{toxi → main/java/toxi}/geom/Plane.java +3 -5
- data/src/{toxi → main/java/toxi}/geom/PlaneIntersector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/PointCloud3D.java +15 -12
- data/src/{toxi → main/java/toxi}/geom/PointOctree.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/PointQuadtree.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Polygon2D.java +34 -45
- data/src/{toxi → main/java/toxi}/geom/PolygonClipper2D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/PolygonTesselator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/QuadtreeVisitor.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Quaternion.java +3 -5
- data/src/{toxi → main/java/toxi}/geom/Ray2D.java +4 -5
- data/src/{toxi → main/java/toxi}/geom/Ray3D.java +3 -5
- data/src/{toxi → main/java/toxi}/geom/Ray3DIntersector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/ReadonlyVec2D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/ReadonlyVec3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/ReadonlyVec4D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Rect.java +3 -5
- data/src/{toxi → main/java/toxi}/geom/Reflector3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Shape2D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Shape3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/SingularMatrixException.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/SpatialBins.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/SpatialIndex.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Sphere.java +3 -5
- data/src/{toxi → main/java/toxi}/geom/SphereIntersectorReflector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Spline2D.java +12 -16
- data/src/{toxi → main/java/toxi}/geom/Spline3D.java +12 -16
- data/src/{toxi → main/java/toxi}/geom/SutherlandHodgemanClipper.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Triangle2D.java +4 -7
- data/src/{toxi → main/java/toxi}/geom/Triangle3D.java +5 -8
- data/src/{toxi → main/java/toxi}/geom/TriangleIntersector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/Vec2D.java +3 -3
- data/src/{toxi → main/java/toxi}/geom/Vec3D.java +4 -4
- data/src/{toxi → main/java/toxi}/geom/Vec4D.java +5 -5
- data/src/{toxi → main/java/toxi}/geom/VecMathUtil.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/XAxisCylinder.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/YAxisCylinder.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/ZAxisCylinder.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/BezierPatch.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/BoxSelector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/DefaultSTLColorModel.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/DefaultSelector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/Face.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/LaplacianSmooth.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/MaterialiseSTLColorModel.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/Mesh3D.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/MeshIntersector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/OBJWriter.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/PLYWriter.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/PlaneSelector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/STLColorModel.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/STLReader.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/STLWriter.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/SphereFunction.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/SphericalHarmonics.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/SuperEllipsoid.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/SurfaceFunction.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/SurfaceMeshBuilder.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/Terrain.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/TriangleMesh.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/Vertex.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/VertexSelector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/WEFace.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/WEMeshFilterStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/WETriangleMesh.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/WEVertex.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/WingedEdge.java +2 -2
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/CentroidSubdiv.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DisplacementSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DualDisplacementSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/DualSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/EdgeLengthComparator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/FaceCountComparator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointDisplacementSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointSubdiv.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/MidpointSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/NewSubdivStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/NormalDisplacementSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/SubdivisionStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh/subdiv/TriSubdivision.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayTriangle.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayTriangulation.java +5 -7
- data/src/{toxi → main/java/toxi}/geom/mesh2d/DelaunayVertex.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/mesh2d/Voronoi.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/BasicNurbsCurve.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/BasicNurbsSurface.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/ControlNet.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/CurveCreator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/CurveUtils.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/InterpolationException.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/KnotVector.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsCreator.java +2 -2
- data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsCurve.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsMeshCreator.java +0 -0
- data/src/{toxi → main/java/toxi}/geom/nurbs/NurbsSurface.java +0 -0
- data/src/{toxi → main/java/toxi}/image/util/Filter8bit.java +0 -0
- data/src/{toxi → main/java/toxi}/image/util/TiledFrameExporter.java +0 -0
- data/src/{toxi → main/java/toxi}/math/BezierInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/CircularInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/CosineInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/DecimatedInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/ExponentialInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/InterpolateStrategy.java +0 -0
- data/src/{toxi → main/java/toxi}/math/Interpolation2D.java +0 -0
- data/src/{toxi → main/java/toxi}/math/LinearInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/MathUtils.java +0 -0
- data/src/{toxi → main/java/toxi}/math/NonLinearScaleMap.java +0 -0
- data/src/{toxi → main/java/toxi}/math/ScaleMap.java +0 -0
- data/src/{toxi → main/java/toxi}/math/SigmoidInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/SinCosLUT.java +0 -0
- data/src/{toxi → main/java/toxi}/math/ThresholdInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/ZoomLensInterpolation.java +0 -0
- data/src/{toxi → main/java/toxi}/math/conversion/UnitTranslator.java +0 -0
- data/src/{toxi → main/java/toxi}/math/noise/PerlinNoise.java +0 -0
- data/src/{toxi → main/java/toxi}/math/noise/SimplexNoise.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/AMFMSineWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/AbstractWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/ConstantWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/FMHarmonicSquareWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/FMSawtoothWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/FMSineWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/FMSquareWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/FMTriangleWave.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/SineWave.java +2 -2
- data/src/{toxi → main/java/toxi}/math/waves/Wave2D.java +0 -0
- data/src/{toxi → main/java/toxi}/math/waves/WaveState.java +0 -0
- data/src/{toxi → main/java/toxi}/music/scale/AbstractScale.java +0 -0
- data/src/{toxi → main/java/toxi}/music/scale/GenericScale.java +0 -0
- data/src/{toxi → main/java/toxi}/music/scale/MajorScale.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/AttributedEdge.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/AttributedFace.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/IndexedTriangleMesh.java +70 -69
- data/src/{toxi → main/java/toxi}/newmesh/MeshAttributeCompiler.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/MeshFaceNormalCompiler.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/MeshUVCompiler.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/MeshVertexColorCompiler.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/MeshVertexCompiler.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/MeshVertexNormalCompiler.java +0 -0
- data/src/{toxi → main/java/toxi}/newmesh/SpatialIndex.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/ParticlePath2D.java +4 -3
- data/src/{toxi → main/java/toxi}/physics2d/ParticleString2D.java +2 -2
- data/src/{toxi → main/java/toxi}/physics2d/PullBackSpring2D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/VerletConstrainedSpring2D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/VerletMinDistanceSpring2D.java +0 -0
- data/src/main/java/toxi/physics2d/VerletParticle2D.java +449 -0
- data/src/main/java/toxi/physics2d/VerletPhysics2D.java +440 -0
- data/src/{toxi → main/java/toxi}/physics2d/VerletSpring2D.java +0 -0
- data/src/main/java/toxi/physics2d/behaviors/AttractionBehavior2D.java +211 -0
- data/src/{toxi → main/java/toxi}/physics2d/behaviors/ConstantForceBehavior2D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/behaviors/GravityBehavior2D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/behaviors/ParticleBehavior2D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/AngularConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/AxisConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/CircularConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/MaxConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/MinConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/ParticleConstraint2D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/PolygonConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics2d/constraints/RectConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/ParticlePath3D.java +4 -3
- data/src/{toxi → main/java/toxi}/physics3d/ParticleString3D.java +2 -2
- data/src/{toxi → main/java/toxi}/physics3d/PullBackSpring3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/VerletConstrainedSpring3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/VerletMinDistanceSpring3D.java +0 -0
- data/src/main/java/toxi/physics3d/VerletParticle3D.java +377 -0
- data/src/{toxi → main/java/toxi}/physics3d/VerletPhysics3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/VerletSpring3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/behaviors/AttractionBehavior3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/behaviors/ConstantForceBehavior3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/behaviors/GravityBehavior3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/behaviors/ParticleBehavior3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/AxisConstraint.java +1 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/BoxConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/CylinderConstraint.java +1 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/MaxConstraint.java +1 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/MinConstraint.java +1 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/ParticleConstraint3D.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/PlaneConstraint.java +0 -0
- data/src/{toxi → main/java/toxi}/physics3d/constraints/SoftBoxConstraint.java +38 -38
- data/src/{toxi → main/java/toxi}/physics3d/constraints/SphereConstraint.java +1 -0
- data/src/{toxi → main/java/toxi}/processing/ArrowModifier.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/DashedLineModifier.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/DeltaOrientationMapper.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/Line2DRenderModifier.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/MeshToVBO.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/NormalMapper.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/POVInterface.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/POVMesh.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/POVWriter.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/RCOpaque.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/RCTransp.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/TextureBuilder.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/Textures.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/ToxiclibsSupport.java +3 -3
- data/src/{toxi → main/java/toxi}/processing/Tracing.java +0 -0
- data/src/{toxi → main/java/toxi}/processing/XYZNormalMapper.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/automata/CAMatrix.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/automata/CARule.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/automata/CARule2D.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/automata/CAWolfram1D.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/automata/EvolvableMatrix.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/automata/MatrixEvolver.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/BottomUpOrder.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLA.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLAConfiguration.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLAEventAdapter.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLAEventListener.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLAGuideLines.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLAParticle.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/DLASegment.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/PipelineOrder.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/dla/RadialDistanceOrder.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/erosion/ErosionFunction.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/erosion/TalusAngleErosion.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/erosion/ThermalErosion.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/fluids/FluidSolver2D.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/fluids/FluidSolver3D.java +0 -0
- data/src/{toxi → main/java/toxi}/sim/grayscott/GrayScott.java +0 -0
- data/src/{toxi → main/java/toxi}/util/DateUtils.java +0 -0
- data/src/{toxi → main/java/toxi}/util/FileSequenceDescriptor.java +0 -0
- data/src/main/java/toxi/util/FileUtils.java +443 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/ArraySet.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/ArrayUtil.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/BiasedDoubleRange.java +3 -3
- data/src/{toxi → main/java/toxi}/util/datatypes/BiasedFloatRange.java +2 -3
- data/src/{toxi → main/java/toxi}/util/datatypes/BiasedIntegerRange.java +3 -3
- data/src/{toxi → main/java/toxi}/util/datatypes/DoubleRange.java +3 -3
- data/src/{toxi → main/java/toxi}/util/datatypes/FloatRange.java +3 -3
- data/src/{toxi → main/java/toxi}/util/datatypes/GenericSet.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/IntegerRange.java +3 -3
- data/src/{toxi → main/java/toxi}/util/datatypes/IntegerSet.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/ItemIndex.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/SingletonRegistry.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/TypedProperties.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/UndirectedGraph.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/UniqueItemIndex.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/WeightedRandomEntry.java +0 -0
- data/src/{toxi → main/java/toxi}/util/datatypes/WeightedRandomSet.java +0 -0
- data/src/{toxi → main/java/toxi}/util/events/EventDispatcher.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/AdditiveBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/ArrayIsoSurface.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/BoxBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/BrushMode.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/HashIsoSurface.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/IsoSurface.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/MarchingCubesIndex.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/MeshLatticeBuilder.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/MeshVoxelizer.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/MultiplyBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/PeakBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/ReplaceBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/RoundBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/VolumetricBrush.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/VolumetricHashMap.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/VolumetricSpace.java +0 -0
- data/src/{toxi → main/java/toxi}/volume/VolumetricSpaceArray.java +0 -0
- data/src/test/java/module-info.java +10 -0
- data/src/{BooleanShapes.java → test/java/toxi/BooleanShapes.java} +2 -2
- data/toxiclibs.gemspec +7 -8
- metadata +357 -368
- data/.mvn/wrapper/maven-wrapper.properties +0 -1
- data/lib/args4j-2.0.31.jar +0 -0
- data/src/com/toxi/net/ClientListener.java +0 -41
- data/src/com/toxi/net/ServerListener.java +0 -70
- data/src/com/toxi/net/ServerListenerAdapter.java +0 -47
- data/src/com/toxi/net/ServerState.java +0 -18
- data/src/com/toxi/net/UDPConnection.java +0 -66
- data/src/com/toxi/net/UDPSyncClient.java +0 -81
- data/src/com/toxi/net/UDPSyncServer.java +0 -450
- data/src/com/toxi/nio/UDPClient.java +0 -121
- data/src/com/toxi/nio/UDPClientState.java +0 -32
- data/src/com/toxi/nio/UDPServer.java +0 -129
- data/src/toxi/data/feeds/AtomFeed.java +0 -129
- data/src/toxi/data/feeds/RSSFeed.java +0 -99
- data/src/toxi/physics2d/VerletParticle2D.java +0 -457
- data/src/toxi/physics2d/VerletPhysics2D.java +0 -448
- data/src/toxi/physics2d/behaviors/AttractionBehavior2D.java +0 -212
- data/src/toxi/physics3d/VerletParticle3D.java +0 -385
- data/src/toxi/util/FileUtils.java +0 -467
|
@@ -1 +0,0 @@
|
|
|
1
|
-
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.3/apache-maven-3.3.3-bin.zip
|
data/lib/args4j-2.0.31.jar
DELETED
|
Binary file
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
package com.toxi.net;
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @author tux
|
|
6
|
-
*/
|
|
7
|
-
public interface ClientListener {
|
|
8
|
-
/**
|
|
9
|
-
* Callback to trigger an update of the server managed process. This might
|
|
10
|
-
* be called several times in a row if the client has fallen behind in time.
|
|
11
|
-
* There should be NO rendering related tasks being called from this
|
|
12
|
-
* callback.
|
|
13
|
-
*/
|
|
14
|
-
public void triggerUpdate();
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Callback to trigger the rendering of a new frame. This method will ALWAYS
|
|
18
|
-
* be called after {{@link #triggerUpdate()} and should be purely focused on
|
|
19
|
-
* drawing/rendering specific tasks, but no CPU intensive model updates.
|
|
20
|
-
*/
|
|
21
|
-
public void triggerFrame();
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Callback to confirm client has successfully connected
|
|
25
|
-
*/
|
|
26
|
-
public void notifyConnected();
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Callback to notify client has disconnected from the server.
|
|
30
|
-
*/
|
|
31
|
-
public void notifyDisconnected();
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Callback to give the client a chance to react to the encountered
|
|
35
|
-
* exception.
|
|
36
|
-
*
|
|
37
|
-
* @param e
|
|
38
|
-
* the exception which caused the callback
|
|
39
|
-
*/
|
|
40
|
-
public void handleError(Exception e);
|
|
41
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
package com.toxi.net;
|
|
2
|
-
|
|
3
|
-
import java.net.DatagramPacket;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @author tux
|
|
8
|
-
*/
|
|
9
|
-
public interface ServerListener {
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Notifies listener immediately after the server socket has been created.
|
|
13
|
-
*/
|
|
14
|
-
public void serverStarted();
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Notifies the listener server is shutting down.
|
|
18
|
-
*/
|
|
19
|
-
public void serverShutdown();
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Gives listener a chance to react to any fatal server errors.
|
|
23
|
-
*
|
|
24
|
-
* @param e
|
|
25
|
-
*/
|
|
26
|
-
public void serverError(Exception e);
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Notifies the listener of a new server state. The state info itself is
|
|
30
|
-
* attached.
|
|
31
|
-
*
|
|
32
|
-
* @param s
|
|
33
|
-
*/
|
|
34
|
-
public void serverStateChanged(ServerState s);
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Notifies listener of a new client connection. Details are attached.
|
|
38
|
-
*
|
|
39
|
-
* @param conn
|
|
40
|
-
*/
|
|
41
|
-
public void clientConnected(UDPConnection conn);
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Notifies listener a client has disconnected. Connection details are
|
|
45
|
-
* attached.
|
|
46
|
-
*
|
|
47
|
-
* @param conn
|
|
48
|
-
*/
|
|
49
|
-
public void clientDisconnected(UDPConnection conn);
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Notifies and forwards received client data to the listener for further
|
|
53
|
-
* analysis.
|
|
54
|
-
*
|
|
55
|
-
* @param conn
|
|
56
|
-
* client connection details
|
|
57
|
-
* @param receivePacket
|
|
58
|
-
* data sent by the client
|
|
59
|
-
*/
|
|
60
|
-
public void clientUpdated(UDPConnection conn, DatagramPacket receivePacket);
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Gives the listener a chance to add extra data to the payload packet
|
|
64
|
-
* distributed to each client.
|
|
65
|
-
*
|
|
66
|
-
* @return additional data, or null if none required
|
|
67
|
-
*/
|
|
68
|
-
public byte[] getSyncPayload();
|
|
69
|
-
|
|
70
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*/
|
|
4
|
-
package com.toxi.net;
|
|
5
|
-
|
|
6
|
-
import java.net.DatagramPacket;
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @author toxi
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
public class ServerListenerAdapter implements ServerListener {
|
|
13
|
-
|
|
14
|
-
@Override
|
|
15
|
-
public void clientConnected(UDPConnection conn) {
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@Override
|
|
20
|
-
public void clientDisconnected(UDPConnection conn) {
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@Override
|
|
24
|
-
public void clientUpdated(UDPConnection conn, DatagramPacket receivePacket) {
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@Override
|
|
28
|
-
public byte[] getSyncPayload() {
|
|
29
|
-
return new byte[0];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@Override
|
|
33
|
-
public void serverError(Exception e) {
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@Override
|
|
37
|
-
public void serverShutdown() {
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@Override
|
|
41
|
-
public void serverStarted() {
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@Override
|
|
45
|
-
public void serverStateChanged(ServerState s) {
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
package com.toxi.net;
|
|
2
|
-
|
|
3
|
-
import java.io.*;
|
|
4
|
-
import java.net.*;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @author Karsten Schmidt <info@postspectacular.com>
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
class UDPConnection {
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Default time-to-live duration
|
|
14
|
-
*/
|
|
15
|
-
static int TTL = 10000;
|
|
16
|
-
|
|
17
|
-
protected InetAddress ip;
|
|
18
|
-
protected int port;
|
|
19
|
-
|
|
20
|
-
protected long lastUpdate;
|
|
21
|
-
|
|
22
|
-
UDPConnection(InetAddress ip, int port) {
|
|
23
|
-
this.ip = ip;
|
|
24
|
-
this.port = port;
|
|
25
|
-
lastUpdate = System.currentTimeMillis();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public boolean isAlive() {
|
|
29
|
-
return System.currentTimeMillis() - lastUpdate < TTL;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public void update() {
|
|
33
|
-
lastUpdate = System.currentTimeMillis();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public void send(DatagramSocket socket, byte[] data) throws IOException {
|
|
37
|
-
DatagramPacket sendPacket = new DatagramPacket(data, data.length, ip,
|
|
38
|
-
port);
|
|
39
|
-
socket.send(sendPacket);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public InetAddress getIP() {
|
|
43
|
-
return ip;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public int getPort() {
|
|
47
|
-
return port;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public long getLastUpdate() {
|
|
51
|
-
return lastUpdate;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@Override
|
|
55
|
-
public String toString() {
|
|
56
|
-
return UDPConnection.buildHash(ip, port);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
static final void setTTL(int ttl) {
|
|
60
|
-
TTL = ttl;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public static final String buildHash(InetAddress ip, int port) {
|
|
64
|
-
return ip.getHostAddress() + ":" + port;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
package com.toxi.net;
|
|
2
|
-
|
|
3
|
-
import java.io.IOException;
|
|
4
|
-
import java.net.*;
|
|
5
|
-
import java.util.logging.Level;
|
|
6
|
-
import java.util.logging.Logger;
|
|
7
|
-
|
|
8
|
-
class UDPSyncClient extends Thread {
|
|
9
|
-
private ClientListener listener;
|
|
10
|
-
|
|
11
|
-
protected String serverName;
|
|
12
|
-
protected int port;
|
|
13
|
-
protected int clientID;
|
|
14
|
-
protected int ttl;
|
|
15
|
-
|
|
16
|
-
private int frameCount;
|
|
17
|
-
protected long lastUpdate;
|
|
18
|
-
|
|
19
|
-
private static final Logger logger = Logger.getLogger(UDPSyncClient.class
|
|
20
|
-
.getName());
|
|
21
|
-
|
|
22
|
-
UDPSyncClient(String serverName, int port, int clientID, int ttl) {
|
|
23
|
-
this.serverName = serverName;
|
|
24
|
-
this.port = port;
|
|
25
|
-
this.clientID = clientID;
|
|
26
|
-
this.ttl = ttl;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@Override
|
|
30
|
-
public void run() {
|
|
31
|
-
DatagramSocket clientSocket = null;
|
|
32
|
-
lastUpdate = System.currentTimeMillis();
|
|
33
|
-
try {
|
|
34
|
-
clientSocket = new DatagramSocket();
|
|
35
|
-
InetAddress ip = InetAddress.getByName(serverName);
|
|
36
|
-
byte[] sendData = new byte[] { 1 };
|
|
37
|
-
byte[] receiveData = new byte[8];
|
|
38
|
-
// do initial sign on by sending a message to the server
|
|
39
|
-
DatagramPacket sendPacket = new DatagramPacket(sendData,
|
|
40
|
-
sendData.length, ip, port);
|
|
41
|
-
clientSocket.send(sendPacket);
|
|
42
|
-
while (true) {
|
|
43
|
-
DatagramPacket receivePacket = new DatagramPacket(receiveData,
|
|
44
|
-
receiveData.length);
|
|
45
|
-
clientSocket.receive(receivePacket);
|
|
46
|
-
String payload = new String(receivePacket.getData(), 0,
|
|
47
|
-
receivePacket.getLength());
|
|
48
|
-
if (logger != null)
|
|
49
|
-
logger.finest(payload);
|
|
50
|
-
int newFrameCount = Integer.parseInt(payload);
|
|
51
|
-
if (newFrameCount > 0) {
|
|
52
|
-
while (frameCount < newFrameCount) {
|
|
53
|
-
if (listener != null)
|
|
54
|
-
listener.triggerUpdate();
|
|
55
|
-
frameCount++;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (listener != null)
|
|
59
|
-
listener.triggerFrame();
|
|
60
|
-
long now = System.currentTimeMillis();
|
|
61
|
-
if (now - lastUpdate > ttl) {
|
|
62
|
-
sendPacket = new DatagramPacket(sendData, sendData.length,
|
|
63
|
-
ip, port);
|
|
64
|
-
clientSocket.send(sendPacket);
|
|
65
|
-
lastUpdate = now;
|
|
66
|
-
if (logger != null)
|
|
67
|
-
logger.log(Level.FINER, "TTL updated on: {0}", lastUpdate);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
} catch (IOException | NumberFormatException ex) {
|
|
71
|
-
logger.log(Level.SEVERE, null, ex);
|
|
72
|
-
} finally {
|
|
73
|
-
if (clientSocket != null)
|
|
74
|
-
clientSocket.close();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public void setListener(ClientListener l) {
|
|
79
|
-
listener = l;
|
|
80
|
-
}
|
|
81
|
-
}
|