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,457 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* __ .__ .__ ._____.
|
3
|
-
* _/ |_ _______ __|__| ____ | | |__\_ |__ ______
|
4
|
-
* \ __\/ _ \ \/ / |/ ___\| | | || __ \ / ___/
|
5
|
-
* | | ( <_> > <| \ \___| |_| || \_\ \\___ \
|
6
|
-
* |__| \____/__/\_ \__|\___ >____/__||___ /____ >
|
7
|
-
* \/ \/ \/ \/
|
8
|
-
*
|
9
|
-
* Copyright (c) 2006-2011 Karsten Schmidt
|
10
|
-
*
|
11
|
-
* This library is free software; you can redistribute it and/or
|
12
|
-
* modify it under the terms of the GNU Lesser General Public
|
13
|
-
* License as published by the Free Software Foundation; either
|
14
|
-
* version 2.1 of the License, or (at your option) any later version.
|
15
|
-
*
|
16
|
-
* http://creativecommons.org/licenses/LGPL/2.1/
|
17
|
-
*
|
18
|
-
* This library is distributed in the hope that it will be useful,
|
19
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
21
|
-
* Lesser General Public License for more details.
|
22
|
-
*
|
23
|
-
* You should have received a copy of the GNU Lesser General Public
|
24
|
-
* License along with this library; if not, write to the Free Software
|
25
|
-
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
26
|
-
*/
|
27
|
-
|
28
|
-
package toxi.physics2d;
|
29
|
-
|
30
|
-
import java.util.ArrayList;
|
31
|
-
import java.util.Collection;
|
32
|
-
import java.util.List;
|
33
|
-
|
34
|
-
import toxi.geom.ReadonlyVec2D;
|
35
|
-
import toxi.geom.Rect;
|
36
|
-
import toxi.geom.Vec2D;
|
37
|
-
import toxi.physics2d.behaviors.ParticleBehavior2D;
|
38
|
-
import toxi.physics2d.constraints.ParticleConstraint2D;
|
39
|
-
|
40
|
-
/**
|
41
|
-
* An individual 3D particle for use by the VerletPhysics and VerletSpring
|
42
|
-
* classes. A particle has weight, can be locked in space and its position
|
43
|
-
* constrained inside an (optional) axis-aligned bounding box.
|
44
|
-
*/
|
45
|
-
public class VerletParticle2D extends Vec2D {
|
46
|
-
|
47
|
-
protected Vec2D prev,
|
48
|
-
|
49
|
-
/**
|
50
|
-
*
|
51
|
-
*/
|
52
|
-
|
53
|
-
/**
|
54
|
-
*
|
55
|
-
*/
|
56
|
-
temp;
|
57
|
-
|
58
|
-
/**
|
59
|
-
*
|
60
|
-
*/
|
61
|
-
protected boolean isLocked;
|
62
|
-
|
63
|
-
/**
|
64
|
-
* Bounding box, by default set to null to disable
|
65
|
-
*/
|
66
|
-
public Rect bounds;
|
67
|
-
|
68
|
-
/**
|
69
|
-
* An optional particle constraints, called immediately after a particle is
|
70
|
-
* updated (and only used if particle is unlocked (default)
|
71
|
-
*/
|
72
|
-
public List<ParticleConstraint2D> constraints;
|
73
|
-
|
74
|
-
/**
|
75
|
-
*
|
76
|
-
*/
|
77
|
-
public List<ParticleBehavior2D> behaviors;
|
78
|
-
/**
|
79
|
-
* Particle weight, default = 1
|
80
|
-
*/
|
81
|
-
protected float weight, invWeight;
|
82
|
-
|
83
|
-
/**
|
84
|
-
*
|
85
|
-
*/
|
86
|
-
protected Vec2D force = new Vec2D();
|
87
|
-
|
88
|
-
/**
|
89
|
-
* Creates particle at position xyz
|
90
|
-
*
|
91
|
-
* @param x
|
92
|
-
* @param y
|
93
|
-
*/
|
94
|
-
public VerletParticle2D(float x, float y) {
|
95
|
-
this(x, y, 1);
|
96
|
-
}
|
97
|
-
|
98
|
-
/**
|
99
|
-
* Creates particle at position xyz with weight w
|
100
|
-
*
|
101
|
-
* @param x
|
102
|
-
* @param y
|
103
|
-
* @param w
|
104
|
-
*/
|
105
|
-
public VerletParticle2D(float x, float y, float w) {
|
106
|
-
super(x, y);
|
107
|
-
prev = new Vec2D(this);
|
108
|
-
temp = new Vec2D();
|
109
|
-
setWeight(w);
|
110
|
-
}
|
111
|
-
|
112
|
-
/**
|
113
|
-
* Creates particle at the position of the passed in vector
|
114
|
-
*
|
115
|
-
* @param v
|
116
|
-
* position
|
117
|
-
*/
|
118
|
-
public VerletParticle2D(ReadonlyVec2D v) {
|
119
|
-
this(v.x(), v.y(), 1);
|
120
|
-
}
|
121
|
-
|
122
|
-
/**
|
123
|
-
* Creates particle with weight w at the position of the passed in vector
|
124
|
-
*
|
125
|
-
* @param v
|
126
|
-
* position
|
127
|
-
* @param w
|
128
|
-
* weight
|
129
|
-
*/
|
130
|
-
public VerletParticle2D(ReadonlyVec2D v, float w) {
|
131
|
-
this(v.x(), v.y(), w);
|
132
|
-
}
|
133
|
-
|
134
|
-
/**
|
135
|
-
* Creates a copy of the passed in particle
|
136
|
-
*
|
137
|
-
* @param p
|
138
|
-
*/
|
139
|
-
public VerletParticle2D(VerletParticle2D p) {
|
140
|
-
this(p.x, p.y, p.weight);
|
141
|
-
isLocked = p.isLocked;
|
142
|
-
}
|
143
|
-
|
144
|
-
/**
|
145
|
-
*
|
146
|
-
* @param behavior
|
147
|
-
* @return
|
148
|
-
*/
|
149
|
-
public VerletParticle2D addBehavior(ParticleBehavior2D behavior) {
|
150
|
-
return addBehavior(behavior, 1);
|
151
|
-
}
|
152
|
-
|
153
|
-
/**
|
154
|
-
*
|
155
|
-
* @param behavior
|
156
|
-
* @param timeStep
|
157
|
-
* @return
|
158
|
-
*/
|
159
|
-
public VerletParticle2D addBehavior(ParticleBehavior2D behavior,
|
160
|
-
float timeStep) {
|
161
|
-
if (behaviors == null) {
|
162
|
-
behaviors = new ArrayList<>(1);
|
163
|
-
}
|
164
|
-
behavior.configure(timeStep);
|
165
|
-
behaviors.add(behavior);
|
166
|
-
return this;
|
167
|
-
}
|
168
|
-
|
169
|
-
/**
|
170
|
-
*
|
171
|
-
* @param behaviors
|
172
|
-
* @return
|
173
|
-
*/
|
174
|
-
public VerletParticle2D addBehaviors(
|
175
|
-
Collection<ParticleBehavior2D> behaviors) {
|
176
|
-
return addBehaviors(behaviors, 1);
|
177
|
-
}
|
178
|
-
|
179
|
-
/**
|
180
|
-
*
|
181
|
-
* @param behaviors
|
182
|
-
* @param timeStemp
|
183
|
-
* @return
|
184
|
-
*/
|
185
|
-
public VerletParticle2D addBehaviors(
|
186
|
-
Collection<ParticleBehavior2D> behaviors, float timeStemp) {
|
187
|
-
for (ParticleBehavior2D b : behaviors) {
|
188
|
-
addBehavior(b, timeStemp);
|
189
|
-
}
|
190
|
-
return this;
|
191
|
-
}
|
192
|
-
|
193
|
-
/**
|
194
|
-
* Adds the given constraint implementation to the list of constraints
|
195
|
-
* applied to this particle at each time step.
|
196
|
-
*
|
197
|
-
* @param c
|
198
|
-
* constraint instance
|
199
|
-
* @return itself
|
200
|
-
*/
|
201
|
-
public VerletParticle2D addConstraint(ParticleConstraint2D c) {
|
202
|
-
if (constraints == null) {
|
203
|
-
constraints = new ArrayList<>(1);
|
204
|
-
}
|
205
|
-
constraints.add(c);
|
206
|
-
return this;
|
207
|
-
}
|
208
|
-
|
209
|
-
/**
|
210
|
-
*
|
211
|
-
* @param constraints
|
212
|
-
* @return
|
213
|
-
*/
|
214
|
-
public VerletParticle2D addConstraints(
|
215
|
-
Collection<ParticleConstraint2D> constraints) {
|
216
|
-
for (ParticleConstraint2D c : constraints) {
|
217
|
-
addConstraint(c);
|
218
|
-
}
|
219
|
-
return this;
|
220
|
-
}
|
221
|
-
|
222
|
-
/**
|
223
|
-
*
|
224
|
-
* @param f
|
225
|
-
* @return
|
226
|
-
*/
|
227
|
-
public VerletParticle2D addForce(Vec2D f) {
|
228
|
-
force.addSelf(f);
|
229
|
-
return this;
|
230
|
-
}
|
231
|
-
|
232
|
-
/**
|
233
|
-
*
|
234
|
-
* @param v
|
235
|
-
* @return
|
236
|
-
*/
|
237
|
-
public VerletParticle2D addVelocity(Vec2D v) {
|
238
|
-
prev.subSelf(v);
|
239
|
-
return this;
|
240
|
-
}
|
241
|
-
|
242
|
-
/**
|
243
|
-
*
|
244
|
-
*/
|
245
|
-
public void applyBehaviors() {
|
246
|
-
if (behaviors != null) {
|
247
|
-
for (ParticleBehavior2D b : behaviors) {
|
248
|
-
b.apply(this);
|
249
|
-
}
|
250
|
-
}
|
251
|
-
}
|
252
|
-
|
253
|
-
/**
|
254
|
-
*
|
255
|
-
*/
|
256
|
-
public void applyConstraints() {
|
257
|
-
if (constraints != null) {
|
258
|
-
for (ParticleConstraint2D pc : constraints) {
|
259
|
-
pc.apply(this);
|
260
|
-
}
|
261
|
-
}
|
262
|
-
}
|
263
|
-
|
264
|
-
/**
|
265
|
-
*
|
266
|
-
*/
|
267
|
-
protected void applyForce() {
|
268
|
-
temp.set(this);
|
269
|
-
addSelf(sub(prev).addSelf(force.scale(weight)));
|
270
|
-
prev.set(temp);
|
271
|
-
force.clear();
|
272
|
-
}
|
273
|
-
|
274
|
-
/**
|
275
|
-
*
|
276
|
-
* @return
|
277
|
-
*/
|
278
|
-
public VerletParticle2D clearForce() {
|
279
|
-
force.clear();
|
280
|
-
return this;
|
281
|
-
}
|
282
|
-
|
283
|
-
/**
|
284
|
-
*
|
285
|
-
* @return
|
286
|
-
*/
|
287
|
-
public VerletParticle2D clearVelocity() {
|
288
|
-
prev.set(this);
|
289
|
-
return this;
|
290
|
-
}
|
291
|
-
|
292
|
-
/**
|
293
|
-
*
|
294
|
-
* @return
|
295
|
-
*/
|
296
|
-
public Vec2D getForce() {
|
297
|
-
return force;
|
298
|
-
}
|
299
|
-
|
300
|
-
/**
|
301
|
-
* @return the inverse weight (1/weight)
|
302
|
-
*/
|
303
|
-
public final float getInvWeight() {
|
304
|
-
return invWeight;
|
305
|
-
}
|
306
|
-
|
307
|
-
/**
|
308
|
-
* Returns the particle's position at the most recent time step.
|
309
|
-
*
|
310
|
-
* @return previous position
|
311
|
-
*/
|
312
|
-
public Vec2D getPreviousPosition() {
|
313
|
-
return prev;
|
314
|
-
}
|
315
|
-
|
316
|
-
/**
|
317
|
-
*
|
318
|
-
* @return
|
319
|
-
*/
|
320
|
-
public Vec2D getVelocity() {
|
321
|
-
return sub(prev);
|
322
|
-
}
|
323
|
-
|
324
|
-
/**
|
325
|
-
* @return the weight
|
326
|
-
*/
|
327
|
-
public final float getWeight() {
|
328
|
-
return weight;
|
329
|
-
}
|
330
|
-
|
331
|
-
/**
|
332
|
-
* @return true, if particle is locked
|
333
|
-
*/
|
334
|
-
public final boolean isLocked() {
|
335
|
-
return isLocked;
|
336
|
-
}
|
337
|
-
|
338
|
-
/**
|
339
|
-
* Locks/immobilizes particle in space
|
340
|
-
*
|
341
|
-
* @return itself
|
342
|
-
*/
|
343
|
-
public VerletParticle2D lock() {
|
344
|
-
isLocked = true;
|
345
|
-
return this;
|
346
|
-
}
|
347
|
-
|
348
|
-
/**
|
349
|
-
*
|
350
|
-
* @return
|
351
|
-
*/
|
352
|
-
public VerletParticle2D removeAllBehaviors() {
|
353
|
-
behaviors.clear();
|
354
|
-
return this;
|
355
|
-
}
|
356
|
-
|
357
|
-
/**
|
358
|
-
* Removes any currently applied constraints from this particle.
|
359
|
-
*
|
360
|
-
* @return itself
|
361
|
-
*/
|
362
|
-
public VerletParticle2D removeAllConstraints() {
|
363
|
-
constraints.clear();
|
364
|
-
return this;
|
365
|
-
}
|
366
|
-
|
367
|
-
/**
|
368
|
-
*
|
369
|
-
* @param b
|
370
|
-
* @return
|
371
|
-
*/
|
372
|
-
public boolean removeBehavior(ParticleBehavior2D b) {
|
373
|
-
return behaviors.remove(b);
|
374
|
-
}
|
375
|
-
|
376
|
-
/**
|
377
|
-
*
|
378
|
-
* @param behaviors
|
379
|
-
* @return
|
380
|
-
*/
|
381
|
-
public boolean removeBehaviors(Collection<ParticleBehavior2D> behaviors) {
|
382
|
-
return this.behaviors.removeAll(behaviors);
|
383
|
-
}
|
384
|
-
|
385
|
-
/**
|
386
|
-
* Attempts to remove the given constraint instance from the list of active
|
387
|
-
* constraints.
|
388
|
-
*
|
389
|
-
* @param c
|
390
|
-
* constraint to remove
|
391
|
-
* @return true, if successfully removed
|
392
|
-
*/
|
393
|
-
public boolean removeConstraint(ParticleConstraint2D c) {
|
394
|
-
return constraints.remove(c);
|
395
|
-
}
|
396
|
-
|
397
|
-
/**
|
398
|
-
*
|
399
|
-
* @param constraints
|
400
|
-
* @return
|
401
|
-
*/
|
402
|
-
public boolean removeConstraints(
|
403
|
-
Collection<ParticleConstraint2D> constraints) {
|
404
|
-
return this.constraints.removeAll(constraints);
|
405
|
-
}
|
406
|
-
|
407
|
-
/**
|
408
|
-
*
|
409
|
-
* @param scl
|
410
|
-
* @return
|
411
|
-
*/
|
412
|
-
public VerletParticle2D scaleVelocity(float scl) {
|
413
|
-
prev.interpolateToSelf(this, 1f - scl);
|
414
|
-
return this;
|
415
|
-
}
|
416
|
-
|
417
|
-
/**
|
418
|
-
*
|
419
|
-
* @param p
|
420
|
-
* @return
|
421
|
-
*/
|
422
|
-
public VerletParticle2D setPreviousPosition(Vec2D p) {
|
423
|
-
prev.set(p);
|
424
|
-
return this;
|
425
|
-
}
|
426
|
-
|
427
|
-
/**
|
428
|
-
*
|
429
|
-
* @param w
|
430
|
-
*/
|
431
|
-
public final void setWeight(float w) {
|
432
|
-
weight = w;
|
433
|
-
invWeight = 1f / w;
|
434
|
-
}
|
435
|
-
|
436
|
-
/**
|
437
|
-
* Unlocks particle again
|
438
|
-
*
|
439
|
-
* @return itself
|
440
|
-
*/
|
441
|
-
public VerletParticle2D unlock() {
|
442
|
-
clearVelocity();
|
443
|
-
isLocked = false;
|
444
|
-
return this;
|
445
|
-
}
|
446
|
-
|
447
|
-
/**
|
448
|
-
*
|
449
|
-
*/
|
450
|
-
public void update() {
|
451
|
-
if (!isLocked) {
|
452
|
-
applyBehaviors();
|
453
|
-
applyForce();
|
454
|
-
applyConstraints();
|
455
|
-
}
|
456
|
-
}
|
457
|
-
}
|