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
|
@@ -30,12 +30,10 @@ package toxi.data.feeds;
|
|
|
30
30
|
import java.util.ArrayList;
|
|
31
31
|
import java.util.List;
|
|
32
32
|
|
|
33
|
-
|
|
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
|
-
|
|
47
|
+
|
|
50
48
|
public String title;
|
|
51
49
|
|
|
52
50
|
/**
|
|
53
51
|
*
|
|
54
52
|
*/
|
|
55
|
-
|
|
53
|
+
|
|
56
54
|
public String description;
|
|
57
55
|
|
|
58
56
|
/**
|
|
59
57
|
*
|
|
60
58
|
*/
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
|
|
60
|
+
|
|
63
61
|
public XMLGregorianCalendar pubDate;
|
|
64
62
|
|
|
65
63
|
/**
|
|
66
64
|
*
|
|
67
65
|
*/
|
|
68
|
-
|
|
66
|
+
|
|
69
67
|
public String guid;
|
|
70
68
|
|
|
71
69
|
/**
|
|
72
70
|
*
|
|
73
71
|
*/
|
|
74
|
-
|
|
72
|
+
|
|
75
73
|
public String link;
|
|
76
74
|
|
|
77
75
|
/**
|
|
78
76
|
*
|
|
79
77
|
*/
|
|
80
|
-
|
|
81
|
-
public List<String> categories = new ArrayList
|
|
78
|
+
|
|
79
|
+
public List<String> categories = new ArrayList<>();
|
|
82
80
|
|
|
83
81
|
/**
|
|
84
82
|
*
|
|
85
83
|
*/
|
|
86
|
-
|
|
87
|
-
public List<RSSEnclosure> enclosures = new ArrayList
|
|
84
|
+
|
|
85
|
+
public List<RSSEnclosure> enclosures = new ArrayList<>();
|
|
88
86
|
|
|
89
87
|
/**
|
|
90
88
|
*
|
|
File without changes
|
|
@@ -32,18 +32,17 @@ import java.text.SimpleDateFormat;
|
|
|
32
32
|
import java.util.Date;
|
|
33
33
|
import java.util.GregorianCalendar;
|
|
34
34
|
|
|
35
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
71
|
+
|
|
73
72
|
public XMLGregorianCalendar unmarshal(String dateString) throws Exception {
|
|
74
73
|
XMLGregorianCalendar calendar = null;
|
|
75
74
|
GregorianCalendar cal = new GregorianCalendar();
|
|
76
|
-
DatatypeFactory dataType =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
88
|
+
|
|
90
89
|
protected Vec3D extent;
|
|
91
90
|
|
|
92
|
-
|
|
91
|
+
|
|
93
92
|
protected Vec3D min,
|
|
94
93
|
|
|
95
94
|
/**
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
-
|
|
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
|
|
File without changes
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35
|
+
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
*
|
|
@@ -43,7 +43,7 @@ public class LineStrip3D implements Iterable<Vec3D> {
|
|
|
43
43
|
/**
|
|
44
44
|
*
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
protected List<Vec3D> vertices = new ArrayList<>();
|
|
48
48
|
|
|
49
49
|
/**
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
82
|
+
|
|
85
83
|
public Vec3D normal;
|
|
86
84
|
|
|
87
85
|
/**
|
|
File without changes
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
File without changes
|