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
|
@@ -32,7 +32,7 @@ import java.util.Collections;
|
|
|
32
32
|
import java.util.Iterator;
|
|
33
33
|
import java.util.List;
|
|
34
34
|
|
|
35
|
-
|
|
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
|
-
|
|
109
|
-
public List<Vec2D> vertices = new ArrayList
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
1013
|
+
vertices.forEach((v) -> {
|
|
1025
1014
|
v.addSelf(x, y);
|
|
1026
|
-
}
|
|
1015
|
+
});
|
|
1027
1016
|
return this;
|
|
1028
1017
|
}
|
|
1029
1018
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -26,9 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
package toxi.geom;
|
|
28
28
|
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
+
|
|
177
175
|
public float x,
|
|
178
176
|
/**
|
|
179
177
|
*
|
|
@@ -27,20 +27,18 @@
|
|
|
27
27
|
|
|
28
28
|
package toxi.geom;
|
|
29
29
|
|
|
30
|
-
|
|
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
|
-
|
|
35
|
+
|
|
38
36
|
public class Ray2D extends Vec2D {
|
|
39
37
|
|
|
40
38
|
/**
|
|
41
39
|
*
|
|
42
40
|
*/
|
|
43
|
-
|
|
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
|
}
|
|
@@ -27,20 +27,18 @@
|
|
|
27
27
|
|
|
28
28
|
package toxi.geom;
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
import javax.xml.bind.annotation.XmlAccessorType;
|
|
32
|
-
import javax.xml.bind.annotation.XmlElement;
|
|
30
|
+
|
|
33
31
|
|
|
34
32
|
/**
|
|
35
33
|
* A simple 3D ray datatype
|
|
36
34
|
*/
|
|
37
|
-
|
|
35
|
+
|
|
38
36
|
public class Ray3D extends Vec3D {
|
|
39
37
|
|
|
40
38
|
/**
|
|
41
39
|
*
|
|
42
40
|
*/
|
|
43
|
-
|
|
41
|
+
|
|
44
42
|
protected Vec3D dir;
|
|
45
43
|
|
|
46
44
|
/**
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -30,16 +30,14 @@ package toxi.geom;
|
|
|
30
30
|
import java.util.ArrayList;
|
|
31
31
|
import java.util.List;
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
import javax.xml.bind.annotation.XmlAccessorType;
|
|
35
|
-
import javax.xml.bind.annotation.XmlAttribute;
|
|
33
|
+
|
|
36
34
|
import toxi.math.MathUtils;
|
|
37
35
|
|
|
38
36
|
/**
|
|
39
37
|
*
|
|
40
38
|
* @author tux
|
|
41
39
|
*/
|
|
42
|
-
|
|
40
|
+
|
|
43
41
|
public class Rect implements Shape2D {
|
|
44
42
|
|
|
45
43
|
/**
|
|
@@ -71,7 +69,7 @@ public class Rect implements Shape2D {
|
|
|
71
69
|
return bounds;
|
|
72
70
|
}
|
|
73
71
|
|
|
74
|
-
|
|
72
|
+
|
|
75
73
|
public float x,
|
|
76
74
|
|
|
77
75
|
/**
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -27,9 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
package toxi.geom;
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
import javax.xml.bind.annotation.XmlAccessorType;
|
|
32
|
-
import javax.xml.bind.annotation.XmlAttribute;
|
|
30
|
+
|
|
33
31
|
|
|
34
32
|
import toxi.geom.mesh.Mesh3D;
|
|
35
33
|
import toxi.geom.mesh.SphereFunction;
|
|
@@ -39,7 +37,7 @@ import toxi.geom.mesh.SurfaceMeshBuilder;
|
|
|
39
37
|
*
|
|
40
38
|
* @author tux
|
|
41
39
|
*/
|
|
42
|
-
|
|
40
|
+
|
|
43
41
|
public class Sphere extends Vec3D implements Shape3D {
|
|
44
42
|
|
|
45
43
|
/**
|
|
@@ -51,7 +49,7 @@ public class Sphere extends Vec3D implements Shape3D {
|
|
|
51
49
|
/**
|
|
52
50
|
*
|
|
53
51
|
*/
|
|
54
|
-
|
|
52
|
+
|
|
55
53
|
public float radius;
|
|
56
54
|
|
|
57
55
|
/**
|
|
File without changes
|
|
@@ -31,11 +31,7 @@ import java.util.ArrayList;
|
|
|
31
31
|
import java.util.Arrays;
|
|
32
32
|
import java.util.List;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
import javax.xml.bind.annotation.XmlAccessorType;
|
|
36
|
-
import javax.xml.bind.annotation.XmlAttribute;
|
|
37
|
-
import javax.xml.bind.annotation.XmlElement;
|
|
38
|
-
import javax.xml.bind.annotation.XmlTransient;
|
|
34
|
+
|
|
39
35
|
|
|
40
36
|
/**
|
|
41
37
|
* <p>
|
|
@@ -62,7 +58,7 @@ import javax.xml.bind.annotation.XmlTransient;
|
|
|
62
58
|
* @version 0015 Added JAXB annotations and List support for dynamic building of
|
|
63
59
|
* spline
|
|
64
60
|
*/
|
|
65
|
-
|
|
61
|
+
|
|
66
62
|
public class Spline2D {
|
|
67
63
|
|
|
68
64
|
/**
|
|
@@ -78,49 +74,49 @@ public class Spline2D {
|
|
|
78
74
|
/**
|
|
79
75
|
*
|
|
80
76
|
*/
|
|
81
|
-
|
|
77
|
+
|
|
82
78
|
protected Vec2D[] points;
|
|
83
79
|
|
|
84
80
|
/**
|
|
85
81
|
*
|
|
86
82
|
*/
|
|
87
|
-
|
|
83
|
+
|
|
88
84
|
public List<Vec2D> pointList = new ArrayList<>();
|
|
89
85
|
|
|
90
86
|
/**
|
|
91
87
|
*
|
|
92
88
|
*/
|
|
93
|
-
|
|
89
|
+
|
|
94
90
|
public BernsteinPolynomial bernstein;
|
|
95
91
|
|
|
96
92
|
/**
|
|
97
93
|
*
|
|
98
94
|
*/
|
|
99
|
-
|
|
95
|
+
|
|
100
96
|
public Vec2D[] delta;
|
|
101
97
|
|
|
102
98
|
/**
|
|
103
99
|
*
|
|
104
100
|
*/
|
|
105
|
-
|
|
101
|
+
|
|
106
102
|
public Vec2D[] coeffA;
|
|
107
103
|
|
|
108
104
|
/**
|
|
109
105
|
*
|
|
110
106
|
*/
|
|
111
|
-
|
|
107
|
+
|
|
112
108
|
public float[] bi;
|
|
113
109
|
|
|
114
110
|
/**
|
|
115
111
|
*
|
|
116
112
|
*/
|
|
117
|
-
|
|
113
|
+
|
|
118
114
|
protected float tightness;
|
|
119
115
|
|
|
120
116
|
/**
|
|
121
117
|
*
|
|
122
118
|
*/
|
|
123
|
-
|
|
119
|
+
|
|
124
120
|
protected float invTightness;
|
|
125
121
|
|
|
126
122
|
/**
|
|
@@ -254,9 +250,9 @@ public class Spline2D {
|
|
|
254
250
|
*/
|
|
255
251
|
public Spline2D setPointList(List<Vec2D> plist) {
|
|
256
252
|
pointList.clear();
|
|
257
|
-
|
|
253
|
+
plist.forEach((p) -> {
|
|
258
254
|
pointList.add(p.copy());
|
|
259
|
-
}
|
|
255
|
+
});
|
|
260
256
|
return this;
|
|
261
257
|
}
|
|
262
258
|
|
|
@@ -31,11 +31,7 @@ import java.util.ArrayList;
|
|
|
31
31
|
import java.util.Arrays;
|
|
32
32
|
import java.util.List;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
import javax.xml.bind.annotation.XmlAccessorType;
|
|
36
|
-
import javax.xml.bind.annotation.XmlAttribute;
|
|
37
|
-
import javax.xml.bind.annotation.XmlElement;
|
|
38
|
-
import javax.xml.bind.annotation.XmlTransient;
|
|
34
|
+
|
|
39
35
|
|
|
40
36
|
/**
|
|
41
37
|
* <p>
|
|
@@ -62,7 +58,7 @@ import javax.xml.bind.annotation.XmlTransient;
|
|
|
62
58
|
* @version 0015 Added JAXB annotations and List support for dynamic building of
|
|
63
59
|
* spline
|
|
64
60
|
*/
|
|
65
|
-
|
|
61
|
+
|
|
66
62
|
public class Spline3D {
|
|
67
63
|
|
|
68
64
|
/**
|
|
@@ -73,49 +69,49 @@ public class Spline3D {
|
|
|
73
69
|
/**
|
|
74
70
|
*
|
|
75
71
|
*/
|
|
76
|
-
|
|
72
|
+
|
|
77
73
|
protected Vec3D[] points;
|
|
78
74
|
|
|
79
75
|
/**
|
|
80
76
|
*
|
|
81
77
|
*/
|
|
82
|
-
|
|
78
|
+
|
|
83
79
|
public List<Vec3D> pointList = new ArrayList<>();
|
|
84
80
|
|
|
85
81
|
/**
|
|
86
82
|
*
|
|
87
83
|
*/
|
|
88
|
-
|
|
84
|
+
|
|
89
85
|
public BernsteinPolynomial bernstein;
|
|
90
86
|
|
|
91
87
|
/**
|
|
92
88
|
*
|
|
93
89
|
*/
|
|
94
|
-
|
|
90
|
+
|
|
95
91
|
public Vec3D[] delta;
|
|
96
92
|
|
|
97
93
|
/**
|
|
98
94
|
*
|
|
99
95
|
*/
|
|
100
|
-
|
|
96
|
+
|
|
101
97
|
public Vec3D[] coeffA;
|
|
102
98
|
|
|
103
99
|
/**
|
|
104
100
|
*
|
|
105
101
|
*/
|
|
106
|
-
|
|
102
|
+
|
|
107
103
|
public float[] bi;
|
|
108
104
|
|
|
109
105
|
/**
|
|
110
106
|
*
|
|
111
107
|
*/
|
|
112
|
-
|
|
108
|
+
|
|
113
109
|
protected float tightness;
|
|
114
110
|
|
|
115
111
|
/**
|
|
116
112
|
*
|
|
117
113
|
*/
|
|
118
|
-
|
|
114
|
+
|
|
119
115
|
protected float invTightness;
|
|
120
116
|
|
|
121
117
|
/**
|
|
@@ -254,9 +250,9 @@ public class Spline3D {
|
|
|
254
250
|
*/
|
|
255
251
|
public Spline3D setPointList(List<Vec3D> plist) {
|
|
256
252
|
pointList.clear();
|
|
257
|
-
|
|
253
|
+
plist.forEach((p) -> {
|
|
258
254
|
pointList.add(p.copy());
|
|
259
|
-
}
|
|
255
|
+
});
|
|
260
256
|
return this;
|
|
261
257
|
}
|
|
262
258
|
|
|
File without changes
|
|
@@ -31,10 +31,7 @@ import java.util.ArrayList;
|
|
|
31
31
|
import java.util.Collections;
|
|
32
32
|
import java.util.List;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
import javax.xml.bind.annotation.XmlAccessorType;
|
|
36
|
-
import javax.xml.bind.annotation.XmlElement;
|
|
37
|
-
import javax.xml.bind.annotation.XmlTransient;
|
|
34
|
+
|
|
38
35
|
|
|
39
36
|
import toxi.geom.Line2D.LineIntersection.Type;
|
|
40
37
|
import toxi.math.MathUtils;
|
|
@@ -43,7 +40,7 @@ import toxi.math.MathUtils;
|
|
|
43
40
|
*
|
|
44
41
|
* @author tux
|
|
45
42
|
*/
|
|
46
|
-
|
|
43
|
+
|
|
47
44
|
public class Triangle2D implements Shape2D {
|
|
48
45
|
|
|
49
46
|
/**
|
|
@@ -73,7 +70,7 @@ public class Triangle2D implements Shape2D {
|
|
|
73
70
|
return (determ > 0.0);
|
|
74
71
|
}
|
|
75
72
|
|
|
76
|
-
|
|
73
|
+
|
|
77
74
|
public Vec2D a,
|
|
78
75
|
|
|
79
76
|
/**
|
|
@@ -97,7 +94,7 @@ public class Triangle2D implements Shape2D {
|
|
|
97
94
|
/**
|
|
98
95
|
*
|
|
99
96
|
*/
|
|
100
|
-
|
|
97
|
+
|
|
101
98
|
public Vec2D centroid;
|
|
102
99
|
|
|
103
100
|
/**
|