toxiclibs 0.4.0 → 0.8.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 +4 -4
- data/.gitignore +16 -0
- data/.mvn/extensions.xml +8 -0
- data/.mvn/wrapper/maven-wrapper.properties +1 -0
- data/.travis.yml +23 -0
- data/CHANGELOG.md +7 -0
- data/COPYING.md +14 -0
- data/Gemfile +10 -0
- data/LICENSE +675 -0
- data/README.md +9 -7
- data/Rakefile +25 -81
- data/examples/README.md +5 -0
- data/examples/attract_repel/attract_repel.rb +30 -0
- data/examples/attract_repel/attractor.rb +23 -0
- data/examples/attract_repel/particle.rb +27 -0
- data/examples/data/ReplicaBold.ttf +0 -0
- data/examples/data/ti_yong.png +0 -0
- data/examples/force_directed/cluster.rb +76 -0
- data/examples/force_directed/force_directed_graph.rb +92 -0
- data/examples/force_directed/node.rb +26 -0
- data/examples/gray_scott_image.rb +74 -0
- data/examples/gray_scott_tone_map.rb +77 -0
- data/examples/implicit.rb +139 -0
- data/examples/inflate_mesh.rb +89 -0
- data/examples/model_align.rb +43 -0
- data/examples/physics_type.rb +77 -0
- data/examples/povmesh/data/mask.jpg +0 -0
- data/examples/povmesh/ftest.rb +59 -0
- data/examples/povmesh/mesh_align.rb +47 -0
- data/examples/povmesh/tentacle.rb +71 -0
- data/examples/simple_cluster/cluster.rb +47 -0
- data/examples/simple_cluster/node.rb +27 -0
- data/examples/simple_cluster/simple_cluster.rb +60 -0
- data/examples/soft_body/blanket.rb +45 -0
- data/examples/soft_body/connection.rb +16 -0
- data/examples/soft_body/particle.rb +22 -0
- data/examples/soft_body/soft_body_square_adapted.rb +55 -0
- data/examples/spherical_harmonics_mesh.rb +50 -0
- data/examples/test_rect.rb +32 -0
- data/lib/toxiclibs.jar +0 -0
- data/lib/toxiclibs.rb +72 -22
- data/lib/toxiclibs/version.rb +1 -1
- data/pom.rb +63 -0
- data/pom.xml +124 -0
- data/src/com/toxi/net/ClientListener.java +41 -0
- data/src/com/toxi/net/ServerListener.java +70 -0
- data/src/com/toxi/net/ServerListenerAdapter.java +47 -0
- data/src/com/toxi/net/ServerState.java +18 -0
- data/src/com/toxi/net/UDPConnection.java +66 -0
- data/src/com/toxi/net/UDPSyncClient.java +81 -0
- data/src/com/toxi/net/UDPSyncServer.java +450 -0
- data/src/com/toxi/nio/UDPClient.java +121 -0
- data/src/com/toxi/nio/UDPClientState.java +32 -0
- data/src/com/toxi/nio/UDPServer.java +129 -0
- data/src/toxi/audio/AudioBuffer.java +229 -0
- data/src/toxi/audio/AudioSource.java +288 -0
- data/src/toxi/audio/DecompressInputStream.java +159 -0
- data/src/toxi/audio/IIRFilter.java +197 -0
- data/src/toxi/audio/JOALUtil.java +388 -0
- data/src/toxi/audio/MultiTimbralManager.java +162 -0
- data/src/toxi/audio/SoundListener.java +154 -0
- data/src/toxi/audio/SynthUtil.java +109 -0
- data/src/toxi/color/AccessCriteria.java +114 -0
- data/src/toxi/color/AlphaAccessor.java +67 -0
- data/src/toxi/color/CMYKAccessor.java +122 -0
- data/src/toxi/color/CMYKDistanceProxy.java +40 -0
- data/src/toxi/color/ColorGradient.java +260 -0
- data/src/toxi/color/ColorList.java +699 -0
- data/src/toxi/color/ColorRange.java +671 -0
- data/src/toxi/color/ColorTheme.java +163 -0
- data/src/toxi/color/DistanceProxy.java +44 -0
- data/src/toxi/color/HSVAccessor.java +113 -0
- data/src/toxi/color/HSVDistanceProxy.java +40 -0
- data/src/toxi/color/HistEntry.java +85 -0
- data/src/toxi/color/Histogram.java +185 -0
- data/src/toxi/color/Hue.java +249 -0
- data/src/toxi/color/LuminanceAccessor.java +78 -0
- data/src/toxi/color/NamedColor.java +935 -0
- data/src/toxi/color/ProximityComparator.java +70 -0
- data/src/toxi/color/RGBAccessor.java +113 -0
- data/src/toxi/color/RGBDistanceProxy.java +41 -0
- data/src/toxi/color/ReadonlyTColor.java +296 -0
- data/src/toxi/color/TColor.java +1677 -0
- data/src/toxi/color/TColorAdapter.java +68 -0
- data/src/toxi/color/ToneMap.java +218 -0
- data/src/toxi/color/theory/AnalogousStrategy.java +140 -0
- data/src/toxi/color/theory/ColorTheoryRegistry.java +139 -0
- data/src/toxi/color/theory/ColorTheoryStrategy.java +56 -0
- data/src/toxi/color/theory/ComplementaryStrategy.java +111 -0
- data/src/toxi/color/theory/CompoundTheoryStrategy.java +143 -0
- data/src/toxi/color/theory/LeftSplitComplementaryStrategy.java +82 -0
- data/src/toxi/color/theory/MonochromeTheoryStrategy.java +103 -0
- data/src/toxi/color/theory/RightSplitComplementaryStrategy.java +82 -0
- data/src/toxi/color/theory/SingleComplementStrategy.java +76 -0
- data/src/toxi/color/theory/SplitComplementaryStrategy.java +77 -0
- data/src/toxi/color/theory/TetradTheoryStrategy.java +114 -0
- data/src/toxi/color/theory/TriadTheoryStrategy.java +77 -0
- data/src/toxi/data/csv/CSVAdapter.java +74 -0
- data/src/toxi/data/csv/CSVFieldMapper.java +212 -0
- data/src/toxi/data/csv/CSVListener.java +61 -0
- data/src/toxi/data/csv/CSVParser.java +202 -0
- data/src/toxi/data/feeds/AtomAuthor.java +49 -0
- data/src/toxi/data/feeds/AtomContent.java +50 -0
- data/src/toxi/data/feeds/AtomEntry.java +111 -0
- data/src/toxi/data/feeds/AtomFeed.java +129 -0
- data/src/toxi/data/feeds/AtomLink.java +62 -0
- data/src/toxi/data/feeds/RSSChannel.java +88 -0
- data/src/toxi/data/feeds/RSSEnclosure.java +60 -0
- data/src/toxi/data/feeds/RSSFeed.java +99 -0
- data/src/toxi/data/feeds/RSSItem.java +104 -0
- data/src/toxi/data/feeds/util/EntityStripper.java +2480 -0
- data/src/toxi/data/feeds/util/Iso8601DateAdapter.java +101 -0
- data/src/toxi/data/feeds/util/Rfc822DateAdapter.java +93 -0
- data/src/toxi/geom/AABB.java +658 -0
- data/src/toxi/geom/Axis3D.java +116 -0
- data/src/toxi/geom/AxisAlignedCylinder.java +163 -0
- data/src/toxi/geom/BernsteinPolynomial.java +94 -0
- data/src/toxi/geom/BezierCurve2D.java +159 -0
- data/src/toxi/geom/BezierCurve3D.java +148 -0
- data/src/toxi/geom/BooleanShapeBuilder.java +185 -0
- data/src/toxi/geom/BoxIntersector.java +52 -0
- data/src/toxi/geom/Circle.java +230 -0
- data/src/toxi/geom/CircleIntersector.java +85 -0
- data/src/toxi/geom/Cone.java +150 -0
- data/src/toxi/geom/ConvexPolygonClipper.java +136 -0
- data/src/toxi/geom/CoordinateExtractor.java +16 -0
- data/src/toxi/geom/Ellipse.java +250 -0
- data/src/toxi/geom/GMatrix.java +2599 -0
- data/src/toxi/geom/GVector.java +833 -0
- data/src/toxi/geom/GlobalGridTesselator.java +54 -0
- data/src/toxi/geom/GridTesselator.java +108 -0
- data/src/toxi/geom/Intersector2D.java +49 -0
- data/src/toxi/geom/Intersector3D.java +51 -0
- data/src/toxi/geom/IsectData2D.java +103 -0
- data/src/toxi/geom/IsectData3D.java +103 -0
- data/src/toxi/geom/Line2D.java +534 -0
- data/src/toxi/geom/Line3D.java +471 -0
- data/src/toxi/geom/LineStrip2D.java +430 -0
- data/src/toxi/geom/LineStrip3D.java +230 -0
- data/src/toxi/geom/LocalGridTesselator.java +57 -0
- data/src/toxi/geom/Matrix3d.java +3048 -0
- data/src/toxi/geom/Matrix4f.java +3446 -0
- data/src/toxi/geom/Matrix4x4.java +1076 -0
- data/src/toxi/geom/MatrixSizeException.java +58 -0
- data/src/toxi/geom/OctreeVisitor.java +44 -0
- data/src/toxi/geom/Origin3D.java +148 -0
- data/src/toxi/geom/Plane.java +293 -0
- data/src/toxi/geom/PlaneIntersector.java +57 -0
- data/src/toxi/geom/PointCloud3D.java +253 -0
- data/src/toxi/geom/PointOctree.java +502 -0
- data/src/toxi/geom/PointQuadtree.java +375 -0
- data/src/toxi/geom/Polygon2D.java +1038 -0
- data/src/toxi/geom/PolygonClipper2D.java +45 -0
- data/src/toxi/geom/PolygonTesselator.java +20 -0
- data/src/toxi/geom/QuadtreeVisitor.java +44 -0
- data/src/toxi/geom/Quaternion.java +641 -0
- data/src/toxi/geom/Ray2D.java +146 -0
- data/src/toxi/geom/Ray3D.java +150 -0
- data/src/toxi/geom/Ray3DIntersector.java +75 -0
- data/src/toxi/geom/ReadonlyVec2D.java +575 -0
- data/src/toxi/geom/ReadonlyVec3D.java +628 -0
- data/src/toxi/geom/ReadonlyVec4D.java +431 -0
- data/src/toxi/geom/Rect.java +720 -0
- data/src/toxi/geom/Reflector3D.java +58 -0
- data/src/toxi/geom/Shape2D.java +94 -0
- data/src/toxi/geom/Shape3D.java +42 -0
- data/src/toxi/geom/SingularMatrixException.java +57 -0
- data/src/toxi/geom/SpatialBins.java +182 -0
- data/src/toxi/geom/SpatialIndex.java +61 -0
- data/src/toxi/geom/Sphere.java +224 -0
- data/src/toxi/geom/SphereIntersectorReflector.java +196 -0
- data/src/toxi/geom/Spline2D.java +349 -0
- data/src/toxi/geom/Spline3D.java +351 -0
- data/src/toxi/geom/SutherlandHodgemanClipper.java +151 -0
- data/src/toxi/geom/Triangle2D.java +422 -0
- data/src/toxi/geom/Triangle3D.java +456 -0
- data/src/toxi/geom/TriangleIntersector.java +105 -0
- data/src/toxi/geom/Vec2D.java +1328 -0
- data/src/toxi/geom/Vec3D.java +1832 -0
- data/src/toxi/geom/Vec4D.java +985 -0
- data/src/toxi/geom/VecMathUtil.java +100 -0
- data/src/toxi/geom/XAxisCylinder.java +64 -0
- data/src/toxi/geom/YAxisCylinder.java +65 -0
- data/src/toxi/geom/ZAxisCylinder.java +64 -0
- data/src/toxi/geom/mesh/BezierPatch.java +200 -0
- data/src/toxi/geom/mesh/BoxSelector.java +62 -0
- data/src/toxi/geom/mesh/DefaultSTLColorModel.java +67 -0
- data/src/toxi/geom/mesh/DefaultSelector.java +50 -0
- data/src/toxi/geom/mesh/Face.java +176 -0
- data/src/toxi/geom/mesh/LaplacianSmooth.java +80 -0
- data/src/toxi/geom/mesh/MaterialiseSTLColorModel.java +150 -0
- data/src/toxi/geom/mesh/Mesh3D.java +224 -0
- data/src/toxi/geom/mesh/MeshIntersector.java +91 -0
- data/src/toxi/geom/mesh/OBJWriter.java +194 -0
- data/src/toxi/geom/mesh/PLYWriter.java +167 -0
- data/src/toxi/geom/mesh/PlaneSelector.java +90 -0
- data/src/toxi/geom/mesh/STLColorModel.java +54 -0
- data/src/toxi/geom/mesh/STLReader.java +185 -0
- data/src/toxi/geom/mesh/STLWriter.java +323 -0
- data/src/toxi/geom/mesh/SphereFunction.java +156 -0
- data/src/toxi/geom/mesh/SphericalHarmonics.java +110 -0
- data/src/toxi/geom/mesh/SuperEllipsoid.java +110 -0
- data/src/toxi/geom/mesh/SurfaceFunction.java +75 -0
- data/src/toxi/geom/mesh/SurfaceMeshBuilder.java +149 -0
- data/src/toxi/geom/mesh/Terrain.java +451 -0
- data/src/toxi/geom/mesh/TriangleMesh.java +1201 -0
- data/src/toxi/geom/mesh/Vertex.java +78 -0
- data/src/toxi/geom/mesh/VertexSelector.java +193 -0
- data/src/toxi/geom/mesh/WEFace.java +100 -0
- data/src/toxi/geom/mesh/WEMeshFilterStrategy.java +51 -0
- data/src/toxi/geom/mesh/WETriangleMesh.java +761 -0
- data/src/toxi/geom/mesh/WEVertex.java +134 -0
- data/src/toxi/geom/mesh/WingedEdge.java +115 -0
- data/src/toxi/geom/mesh/subdiv/CentroidSubdiv.java +37 -0
- data/src/toxi/geom/mesh/subdiv/DisplacementSubdivision.java +85 -0
- data/src/toxi/geom/mesh/subdiv/DualDisplacementSubdivision.java +94 -0
- data/src/toxi/geom/mesh/subdiv/DualSubdivision.java +49 -0
- data/src/toxi/geom/mesh/subdiv/EdgeLengthComparator.java +50 -0
- data/src/toxi/geom/mesh/subdiv/FaceCountComparator.java +51 -0
- data/src/toxi/geom/mesh/subdiv/MidpointDisplacementSubdivision.java +80 -0
- data/src/toxi/geom/mesh/subdiv/MidpointSubdiv.java +42 -0
- data/src/toxi/geom/mesh/subdiv/MidpointSubdivision.java +48 -0
- data/src/toxi/geom/mesh/subdiv/NewSubdivStrategy.java +23 -0
- data/src/toxi/geom/mesh/subdiv/NormalDisplacementSubdivision.java +74 -0
- data/src/toxi/geom/mesh/subdiv/SubdivisionStrategy.java +83 -0
- data/src/toxi/geom/mesh/subdiv/TriSubdivision.java +51 -0
- data/src/toxi/geom/mesh2d/DelaunayTriangle.java +222 -0
- data/src/toxi/geom/mesh2d/DelaunayTriangulation.java +327 -0
- data/src/toxi/geom/mesh2d/DelaunayVertex.java +560 -0
- data/src/toxi/geom/mesh2d/Voronoi.java +149 -0
- data/src/toxi/geom/nurbs/BasicNurbsCurve.java +210 -0
- data/src/toxi/geom/nurbs/BasicNurbsSurface.java +233 -0
- data/src/toxi/geom/nurbs/ControlNet.java +148 -0
- data/src/toxi/geom/nurbs/CurveCreator.java +112 -0
- data/src/toxi/geom/nurbs/CurveUtils.java +259 -0
- data/src/toxi/geom/nurbs/InterpolationException.java +65 -0
- data/src/toxi/geom/nurbs/KnotVector.java +333 -0
- data/src/toxi/geom/nurbs/NurbsCreator.java +815 -0
- data/src/toxi/geom/nurbs/NurbsCurve.java +120 -0
- data/src/toxi/geom/nurbs/NurbsMeshCreator.java +145 -0
- data/src/toxi/geom/nurbs/NurbsSurface.java +147 -0
- data/src/toxi/image/util/Filter8bit.java +331 -0
- data/src/toxi/image/util/TiledFrameExporter.java +162 -0
- data/src/toxi/math/BezierInterpolation.java +102 -0
- data/src/toxi/math/CircularInterpolation.java +88 -0
- data/src/toxi/math/CosineInterpolation.java +51 -0
- data/src/toxi/math/DecimatedInterpolation.java +77 -0
- data/src/toxi/math/ExponentialInterpolation.java +68 -0
- data/src/toxi/math/InterpolateStrategy.java +60 -0
- data/src/toxi/math/Interpolation2D.java +93 -0
- data/src/toxi/math/LinearInterpolation.java +46 -0
- data/src/toxi/math/MathUtils.java +990 -0
- data/src/toxi/math/NonLinearScaleMap.java +101 -0
- data/src/toxi/math/ScaleMap.java +183 -0
- data/src/toxi/math/SigmoidInterpolation.java +78 -0
- data/src/toxi/math/SinCosLUT.java +141 -0
- data/src/toxi/math/ThresholdInterpolation.java +58 -0
- data/src/toxi/math/ZoomLensInterpolation.java +126 -0
- data/src/toxi/math/conversion/UnitTranslator.java +161 -0
- data/src/toxi/math/noise/PerlinNoise.java +281 -0
- data/src/toxi/math/noise/SimplexNoise.java +542 -0
- data/src/toxi/math/waves/AMFMSineWave.java +143 -0
- data/src/toxi/math/waves/AbstractWave.java +248 -0
- data/src/toxi/math/waves/ConstantWave.java +48 -0
- data/src/toxi/math/waves/FMHarmonicSquareWave.java +155 -0
- data/src/toxi/math/waves/FMSawtoothWave.java +144 -0
- data/src/toxi/math/waves/FMSineWave.java +142 -0
- data/src/toxi/math/waves/FMSquareWave.java +143 -0
- data/src/toxi/math/waves/FMTriangleWave.java +126 -0
- data/src/toxi/math/waves/SineWave.java +81 -0
- data/src/toxi/math/waves/Wave2D.java +68 -0
- data/src/toxi/math/waves/WaveState.java +69 -0
- data/src/toxi/music/scale/AbstractScale.java +117 -0
- data/src/toxi/music/scale/GenericScale.java +66 -0
- data/src/toxi/music/scale/MajorScale.java +41 -0
- data/src/toxi/newmesh/AttributedEdge.java +106 -0
- data/src/toxi/newmesh/AttributedFace.java +63 -0
- data/src/toxi/newmesh/IndexedTriangleMesh.java +809 -0
- data/src/toxi/newmesh/MeshAttributeCompiler.java +45 -0
- data/src/toxi/newmesh/MeshFaceNormalCompiler.java +52 -0
- data/src/toxi/newmesh/MeshUVCompiler.java +52 -0
- data/src/toxi/newmesh/MeshVertexColorCompiler.java +49 -0
- data/src/toxi/newmesh/MeshVertexCompiler.java +54 -0
- data/src/toxi/newmesh/MeshVertexNormalCompiler.java +55 -0
- data/src/toxi/newmesh/SpatialIndex.java +78 -0
- data/src/toxi/physics2d/ParticlePath2D.java +100 -0
- data/src/toxi/physics2d/ParticleString2D.java +184 -0
- data/src/toxi/physics2d/PullBackSpring2D.java +51 -0
- data/src/toxi/physics2d/VerletConstrainedSpring2D.java +89 -0
- data/src/toxi/physics2d/VerletMinDistanceSpring2D.java +57 -0
- data/src/toxi/physics2d/VerletParticle2D.java +457 -0
- data/src/toxi/physics2d/VerletPhysics2D.java +448 -0
- data/src/toxi/physics2d/VerletSpring2D.java +181 -0
- data/src/toxi/physics2d/behaviors/AttractionBehavior2D.java +212 -0
- data/src/toxi/physics2d/behaviors/ConstantForceBehavior2D.java +112 -0
- data/src/toxi/physics2d/behaviors/GravityBehavior2D.java +61 -0
- data/src/toxi/physics2d/behaviors/ParticleBehavior2D.java +66 -0
- data/src/toxi/physics2d/constraints/AngularConstraint.java +83 -0
- data/src/toxi/physics2d/constraints/AxisConstraint.java +71 -0
- data/src/toxi/physics2d/constraints/CircularConstraint.java +69 -0
- data/src/toxi/physics2d/constraints/MaxConstraint.java +66 -0
- data/src/toxi/physics2d/constraints/MinConstraint.java +66 -0
- data/src/toxi/physics2d/constraints/ParticleConstraint2D.java +47 -0
- data/src/toxi/physics2d/constraints/PolygonConstraint.java +93 -0
- data/src/toxi/physics2d/constraints/RectConstraint.java +114 -0
- data/src/toxi/physics3d/ParticlePath3D.java +100 -0
- data/src/toxi/physics3d/ParticleString3D.java +184 -0
- data/src/toxi/physics3d/PullBackSpring3D.java +50 -0
- data/src/toxi/physics3d/VerletConstrainedSpring3D.java +88 -0
- data/src/toxi/physics3d/VerletMinDistanceSpring3D.java +56 -0
- data/src/toxi/physics3d/VerletParticle3D.java +385 -0
- data/src/toxi/physics3d/VerletPhysics3D.java +417 -0
- data/src/toxi/physics3d/VerletSpring3D.java +180 -0
- data/src/toxi/physics3d/behaviors/AttractionBehavior3D.java +182 -0
- data/src/toxi/physics3d/behaviors/ConstantForceBehavior3D.java +92 -0
- data/src/toxi/physics3d/behaviors/GravityBehavior3D.java +61 -0
- data/src/toxi/physics3d/behaviors/ParticleBehavior3D.java +52 -0
- data/src/toxi/physics3d/constraints/AxisConstraint.java +68 -0
- data/src/toxi/physics3d/constraints/BoxConstraint.java +121 -0
- data/src/toxi/physics3d/constraints/CylinderConstraint.java +87 -0
- data/src/toxi/physics3d/constraints/MaxConstraint.java +65 -0
- data/src/toxi/physics3d/constraints/MinConstraint.java +65 -0
- data/src/toxi/physics3d/constraints/ParticleConstraint3D.java +49 -0
- data/src/toxi/physics3d/constraints/PlaneConstraint.java +78 -0
- data/src/toxi/physics3d/constraints/SoftBoxConstraint.java +87 -0
- data/src/toxi/physics3d/constraints/SphereConstraint.java +108 -0
- data/src/toxi/processing/ArrowModifier.java +116 -0
- data/src/toxi/processing/DashedLineModifier.java +48 -0
- data/src/toxi/processing/DeltaOrientationMapper.java +57 -0
- data/src/toxi/processing/Line2DRenderModifier.java +18 -0
- data/src/toxi/processing/MeshToVBO.java +127 -0
- data/src/toxi/processing/NormalMapper.java +18 -0
- data/src/toxi/processing/POVInterface.java +121 -0
- data/src/toxi/processing/POVMesh.java +219 -0
- data/src/toxi/processing/POVWriter.java +460 -0
- data/src/toxi/processing/RCOpaque.java +77 -0
- data/src/toxi/processing/RCTransp.java +78 -0
- data/src/toxi/processing/TextureBuilder.java +232 -0
- data/src/toxi/processing/Textures.java +110 -0
- data/src/toxi/processing/ToxiclibsSupport.java +1239 -0
- data/src/toxi/processing/Tracing.java +25 -0
- data/src/toxi/processing/XYZNormalMapper.java +30 -0
- data/src/toxi/sim/automata/CAMatrix.java +297 -0
- data/src/toxi/sim/automata/CARule.java +76 -0
- data/src/toxi/sim/automata/CARule2D.java +354 -0
- data/src/toxi/sim/automata/CAWolfram1D.java +309 -0
- data/src/toxi/sim/automata/EvolvableMatrix.java +61 -0
- data/src/toxi/sim/automata/MatrixEvolver.java +42 -0
- data/src/toxi/sim/dla/BottomUpOrder.java +76 -0
- data/src/toxi/sim/dla/DLA.java +497 -0
- data/src/toxi/sim/dla/DLAConfiguration.java +364 -0
- data/src/toxi/sim/dla/DLAEventAdapter.java +64 -0
- data/src/toxi/sim/dla/DLAEventListener.java +57 -0
- data/src/toxi/sim/dla/DLAGuideLines.java +219 -0
- data/src/toxi/sim/dla/DLAParticle.java +102 -0
- data/src/toxi/sim/dla/DLASegment.java +88 -0
- data/src/toxi/sim/dla/PipelineOrder.java +50 -0
- data/src/toxi/sim/dla/RadialDistanceOrder.java +92 -0
- data/src/toxi/sim/erosion/ErosionFunction.java +122 -0
- data/src/toxi/sim/erosion/TalusAngleErosion.java +145 -0
- data/src/toxi/sim/erosion/ThermalErosion.java +75 -0
- data/src/toxi/sim/fluids/FluidSolver2D.java +762 -0
- data/src/toxi/sim/fluids/FluidSolver3D.java +326 -0
- data/src/toxi/sim/grayscott/GrayScott.java +469 -0
- data/src/toxi/util/DateUtils.java +141 -0
- data/src/toxi/util/FileSequenceDescriptor.java +181 -0
- data/src/toxi/util/FileUtils.java +467 -0
- data/src/toxi/util/datatypes/ArraySet.java +128 -0
- data/src/toxi/util/datatypes/ArrayUtil.java +404 -0
- data/src/toxi/util/datatypes/BiasedDoubleRange.java +141 -0
- data/src/toxi/util/datatypes/BiasedFloatRange.java +141 -0
- data/src/toxi/util/datatypes/BiasedIntegerRange.java +141 -0
- data/src/toxi/util/datatypes/DoubleRange.java +251 -0
- data/src/toxi/util/datatypes/FloatRange.java +251 -0
- data/src/toxi/util/datatypes/GenericSet.java +215 -0
- data/src/toxi/util/datatypes/IntegerRange.java +247 -0
- data/src/toxi/util/datatypes/IntegerSet.java +149 -0
- data/src/toxi/util/datatypes/ItemIndex.java +72 -0
- data/src/toxi/util/datatypes/SingletonRegistry.java +91 -0
- data/src/toxi/util/datatypes/TypedProperties.java +291 -0
- data/src/toxi/util/datatypes/UndirectedGraph.java +134 -0
- data/src/toxi/util/datatypes/UniqueItemIndex.java +223 -0
- data/src/toxi/util/datatypes/WeightedRandomEntry.java +76 -0
- data/src/toxi/util/datatypes/WeightedRandomSet.java +125 -0
- data/src/toxi/util/events/EventDispatcher.java +86 -0
- data/src/toxi/volume/AdditiveBrush.java +19 -0
- data/src/toxi/volume/ArrayIsoSurface.java +297 -0
- data/src/toxi/volume/BoxBrush.java +100 -0
- data/src/toxi/volume/BrushMode.java +16 -0
- data/src/toxi/volume/HashIsoSurface.java +354 -0
- data/src/toxi/volume/IsoSurface.java +59 -0
- data/src/toxi/volume/MarchingCubesIndex.java +312 -0
- data/src/toxi/volume/MeshLatticeBuilder.java +358 -0
- data/src/toxi/volume/MeshVoxelizer.java +216 -0
- data/src/toxi/volume/MultiplyBrush.java +20 -0
- data/src/toxi/volume/PeakBrush.java +21 -0
- data/src/toxi/volume/ReplaceBrush.java +19 -0
- data/src/toxi/volume/RoundBrush.java +113 -0
- data/src/toxi/volume/VolumetricBrush.java +160 -0
- data/src/toxi/volume/VolumetricHashMap.java +179 -0
- data/src/toxi/volume/VolumetricSpace.java +195 -0
- data/src/toxi/volume/VolumetricSpaceArray.java +214 -0
- data/toxiclibs.gemspec +28 -0
- metadata +442 -31
@@ -0,0 +1,77 @@
|
|
1
|
+
/*
|
2
|
+
* This library adds PovRAY export facility to toxiclibscore
|
3
|
+
* Copyright (c) 2015 Martin Prout
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or modify it under
|
6
|
+
* the terms of the GNU Lesser General Public License as published by the Free
|
7
|
+
* Software Foundation; either version 2.1 of the License, or (at your option)
|
8
|
+
* any later version.
|
9
|
+
*
|
10
|
+
* http://creativecommons.org/licenses/LGPL/2.1/
|
11
|
+
*
|
12
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
13
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
14
|
+
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
15
|
+
* details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
19
|
+
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
20
|
+
*/
|
21
|
+
package toxi.processing;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Rainbow colors without transparency
|
25
|
+
* @author Martin Prout
|
26
|
+
*/
|
27
|
+
public enum RCOpaque {
|
28
|
+
/**
|
29
|
+
*
|
30
|
+
*/
|
31
|
+
RED("r_red1", "color rgb<1.0, 0.5, 1.0>;"),
|
32
|
+
/**
|
33
|
+
*
|
34
|
+
*/
|
35
|
+
RED1("r_red2", "color rgb<1.0, 0.2, 0.2>;"),
|
36
|
+
/**
|
37
|
+
*
|
38
|
+
*/
|
39
|
+
ORANGE("r_orange", "color rgb<1.0, 0.5, 0.2>;"),
|
40
|
+
/**
|
41
|
+
*
|
42
|
+
*/
|
43
|
+
YELLOW("r_yellow", "color rgb<1.0, 1.0, 0.2>;"),
|
44
|
+
/**
|
45
|
+
*
|
46
|
+
*/
|
47
|
+
GREEN("r_green", "color rgb<0.2, 1.0, 0.2>;"),
|
48
|
+
/**
|
49
|
+
*
|
50
|
+
*/
|
51
|
+
CYAN("r_cyan", "color rgb<0.2, 1.0, 1.0>;"),
|
52
|
+
/**
|
53
|
+
*
|
54
|
+
*/
|
55
|
+
BLUE("r_blue", "color rgb<0.2, 0.2, 1.0>;"),
|
56
|
+
/**
|
57
|
+
*
|
58
|
+
*/
|
59
|
+
INDIGO("r_indigo", "color rgb<0.5, 0.5, 1.0>;"),
|
60
|
+
/**
|
61
|
+
*
|
62
|
+
*/
|
63
|
+
VIOLET("r_violet1", "color rgb<1.0, 0.5, 1.0>;"),
|
64
|
+
/**
|
65
|
+
*
|
66
|
+
*/
|
67
|
+
VIOLET1("r_violet2", "color rgb<1.0, 0.5, 1.0>;");
|
68
|
+
private final String cname;
|
69
|
+
private final String declare;
|
70
|
+
|
71
|
+
RCOpaque(String cname, String declare){
|
72
|
+
this.cname = cname;
|
73
|
+
this.declare = declare;
|
74
|
+
}
|
75
|
+
String getDeclare(){return this.declare;}
|
76
|
+
String getColor(){return this.cname;}
|
77
|
+
}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
/*
|
2
|
+
* This library adds PovRAY export facility to toxiclibscore
|
3
|
+
* Copyright (c) 2015 Martin Prout
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or modify it under
|
6
|
+
* the terms of the GNU Lesser General Public License as published by the Free
|
7
|
+
* Software Foundation; either version 2.1 of the License, or (at your option)
|
8
|
+
* any later version.
|
9
|
+
*
|
10
|
+
* http://creativecommons.org/licenses/LGPL/2.1/
|
11
|
+
*
|
12
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
13
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
14
|
+
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
15
|
+
* details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
19
|
+
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
20
|
+
*/
|
21
|
+
|
22
|
+
package toxi.processing;
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Rainbow colors with a transparency
|
26
|
+
* @author Martin Prout
|
27
|
+
*/
|
28
|
+
public enum RCTransp {
|
29
|
+
/**
|
30
|
+
*
|
31
|
+
*/
|
32
|
+
RED("r_red1", "color rgbf<1.0, 0.5, 1.0, 1.0>;"),
|
33
|
+
/**
|
34
|
+
*
|
35
|
+
*/
|
36
|
+
RED1("r_red2", "color rgbf<1.0, 0.2, 0.2, 1.0>;"),
|
37
|
+
/**
|
38
|
+
*
|
39
|
+
*/
|
40
|
+
ORANGE("r_orange", "color rgbf<1.0, 0.5, 0.2, 0.8>;"),
|
41
|
+
/**
|
42
|
+
*
|
43
|
+
*/
|
44
|
+
YELLOW("r_yellow", "color rgbf<1.0, 1.0, 0.2, 0.8>;"),
|
45
|
+
/**
|
46
|
+
*
|
47
|
+
*/
|
48
|
+
GREEN("r_green", "color rgbf<0.2, 1.0, 0.2, 0.8>;"),
|
49
|
+
/**
|
50
|
+
*
|
51
|
+
*/
|
52
|
+
CYAN("r_cyan", "color rgbf<0.2, 1.0, 1.0, 0.8>;"),
|
53
|
+
/**
|
54
|
+
*
|
55
|
+
*/
|
56
|
+
BLUE("r_blue", "color rgbf<0.2, 0.2, 1.0, 0.8>;"),
|
57
|
+
/**
|
58
|
+
*
|
59
|
+
*/
|
60
|
+
INDIGO("r_indigo", "color rgbf<0.5, 0.5, 1.0, 0.8>;"),
|
61
|
+
/**
|
62
|
+
*
|
63
|
+
*/
|
64
|
+
VIOLET("r_violet1", "color rgbf<1.0, 0.5, 1.0, 1.0>;"),
|
65
|
+
/**
|
66
|
+
*
|
67
|
+
*/
|
68
|
+
VIOLET1("r_violet2", "color rgbf<1.0, 0.5, 1.0, 0.8>;");
|
69
|
+
private final String cname;
|
70
|
+
private final String declare;
|
71
|
+
|
72
|
+
RCTransp(String cname, String declare){
|
73
|
+
this.cname = cname;
|
74
|
+
this.declare = declare;
|
75
|
+
}
|
76
|
+
String getDeclare(){return this.declare;}
|
77
|
+
String getColor(){return this.cname;}
|
78
|
+
}
|
@@ -0,0 +1,232 @@
|
|
1
|
+
/*
|
2
|
+
* This library adds PovRAY export facility to toxiclibscore
|
3
|
+
* Copyright (c) 2012 Martin Prout
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or modify it under
|
6
|
+
* the terms of the GNU Lesser General Public License as published by the Free
|
7
|
+
* Software Foundation; either version 2.1 of the License, or (at your option)
|
8
|
+
* any later version.
|
9
|
+
*
|
10
|
+
* http://creativecommons.org/licenses/LGPL/2.1/
|
11
|
+
*
|
12
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
13
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
14
|
+
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
15
|
+
* details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
19
|
+
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
20
|
+
*/
|
21
|
+
package toxi.processing;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Provides some textures
|
25
|
+
*
|
26
|
+
* @author Martin Prout
|
27
|
+
*/
|
28
|
+
public class TextureBuilder {
|
29
|
+
|
30
|
+
static int count = 0;
|
31
|
+
static final String DPHONG = "#declare Phong1 = finish{emission 0.1"
|
32
|
+
+ " phong 0.5 phong_size 10.0}";
|
33
|
+
static final String DFINISH5 = "#declare F_Glass5 = "
|
34
|
+
+ "finish {\n"
|
35
|
+
+ "\tspecular 0.7\n"
|
36
|
+
+ "\troughness 0.001\n"
|
37
|
+
+ "\tambient 0\n"
|
38
|
+
+ "\tdiffuse 0\n"
|
39
|
+
+ "\treflection {\n"
|
40
|
+
+ "\t0.2, 1.0\n"
|
41
|
+
+ "\tfresnel on\n"
|
42
|
+
+ "\t}\n"
|
43
|
+
+ "\tconserve_energy\n"
|
44
|
+
+ "}";
|
45
|
+
static final String DMFINISHE = "#declare F_MetalE = "
|
46
|
+
+ "finish {\n"
|
47
|
+
+ "\tambient 0.1\n"
|
48
|
+
+ "\tbrilliance 6\n"
|
49
|
+
+ "\tdiffuse 0.7\n"
|
50
|
+
+ "\tmetallic\n"
|
51
|
+
+ "\tspecular 0.80\n"
|
52
|
+
+ "\troughness 1/120\n"
|
53
|
+
+ "\treflection 0.8\n"
|
54
|
+
+ "}";
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
/**
|
59
|
+
* pink marble
|
60
|
+
*/
|
61
|
+
static final String MARBLE_TEXTURE = "#declare T_Grnt28 = "
|
62
|
+
+ "texture {\n"
|
63
|
+
+ "pigment\n"
|
64
|
+
+ "{marble\n"
|
65
|
+
+ " turbulence 0.7\n"
|
66
|
+
+ " color_map\n"
|
67
|
+
+ "{[0.000, 0.155 color rgbt <0.686, 0.235, 0.282, 0.000>\n"
|
68
|
+
+ " color rgbt <0.686, 0.235, 0.282, 0.000>]\n"
|
69
|
+
+ " [0.155, 0.328 color rgbt <0.686, 0.235, 0.282, 0.000>\n"
|
70
|
+
+ " color rgbt <0.494, 0.243, 0.294, 0.000>]\n"
|
71
|
+
+ " [0.328, 0.474 color rgbt <0.494, 0.243, 0.294, 0.000>\n"
|
72
|
+
+ " color rgbt <0.769, 0.329, 0.373, 0.000>]\n"
|
73
|
+
+ " [0.474, 0.647 color rgbt <0.769, 0.329, 0.373, 0.000>\n"
|
74
|
+
+ " color rgbt <0.769, 0.329, 0.373, 0.000>]\n"
|
75
|
+
+ " [0.647, 0.810 color rgbt <0.769, 0.329, 0.373, 0.000>\n"
|
76
|
+
+ " color rgbt <0.686, 0.235, 0.282, 0.000>]\n"
|
77
|
+
+ " [0.810, 0.922 color rgbt <0.686, 0.235, 0.282, 0.000>\n"
|
78
|
+
+ " color rgbt <0.792, 0.388, 0.427, 0.000>]\n"
|
79
|
+
+ " [0.922, 1.001 color rgbt <0.792, 0.388, 0.427, 0.000>\n"
|
80
|
+
+ " color rgbt <0.686, 0.235, 0.282, 0.000>]\n"
|
81
|
+
+ " }\n"
|
82
|
+
+ "}\n"
|
83
|
+
+ "finish {\n"
|
84
|
+
+ "crand 0.03\n"
|
85
|
+
+ "}\n"
|
86
|
+
+ " }\n" ;
|
87
|
+
|
88
|
+
static final String FINISH5 = "finish{ F_Glass5 }";
|
89
|
+
static final String MFINISHE = "finish{ F_MetalE }";
|
90
|
+
static final String PHONG = "finish{ Phong1 }";
|
91
|
+
static final String MIRROR = "finish{ reflection 1}";
|
92
|
+
static final String RED_MARBLE = "texture{ T_Grnt28 }";
|
93
|
+
/**
|
94
|
+
*
|
95
|
+
* @return random rainbow color (with transparency)
|
96
|
+
*/
|
97
|
+
static StringBuilder getRandRCTrans() {
|
98
|
+
RCTransp[] vals = RCTransp.values();
|
99
|
+
StringBuilder rainbowColor = new StringBuilder(100);
|
100
|
+
rainbowColor.append("pigment{ ");
|
101
|
+
rainbowColor.append(vals[(int) Math.round((Math.random() * 9))].getColor());
|
102
|
+
return rainbowColor.append(" }");
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
/**
|
108
|
+
*
|
109
|
+
* @return transparent rainbow color (sequence)
|
110
|
+
*/
|
111
|
+
static StringBuilder getRCTrans(int modulus) {
|
112
|
+
RCTransp[] vals = RCTransp.values();
|
113
|
+
StringBuilder rainbowColor = new StringBuilder(100);
|
114
|
+
rainbowColor.append("pigment{ ");
|
115
|
+
rainbowColor.append(vals[count % modulus].getColor());
|
116
|
+
count++;
|
117
|
+
return rainbowColor.append(" }");
|
118
|
+
}
|
119
|
+
|
120
|
+
/**
|
121
|
+
*
|
122
|
+
* @return transparent rainbow color declaration
|
123
|
+
*/
|
124
|
+
static StringBuilder declareRCTrans() {
|
125
|
+
StringBuilder declare = new StringBuilder(200);
|
126
|
+
for (RCTransp rc : RCTransp.values()) {
|
127
|
+
declare.append("#declare ");
|
128
|
+
declare.append(rc.getColor());
|
129
|
+
declare.append('=');
|
130
|
+
declare.append(rc.getDeclare());
|
131
|
+
declare.append('\n');
|
132
|
+
}
|
133
|
+
return declare;
|
134
|
+
}
|
135
|
+
|
136
|
+
|
137
|
+
/**
|
138
|
+
*
|
139
|
+
* @return pink marble declaration
|
140
|
+
*/
|
141
|
+
static String declareMarble() {
|
142
|
+
return MARBLE_TEXTURE;
|
143
|
+
}
|
144
|
+
/**
|
145
|
+
*
|
146
|
+
* @return opaque rainbow color (sequence)
|
147
|
+
*/
|
148
|
+
static StringBuilder getRCOpaque(int modulus) {
|
149
|
+
RCOpaque[] vals = RCOpaque.values();
|
150
|
+
StringBuilder rainbowColor = new StringBuilder(100);
|
151
|
+
rainbowColor.append("pigment{ ");
|
152
|
+
rainbowColor.append(vals[count % modulus].getColor());
|
153
|
+
count++;
|
154
|
+
return rainbowColor.append(" }");
|
155
|
+
}
|
156
|
+
|
157
|
+
/**
|
158
|
+
*
|
159
|
+
* @return White
|
160
|
+
*/
|
161
|
+
static String getWhite() {
|
162
|
+
return "pigment{ color rgb<1, 1, 1> }";
|
163
|
+
}
|
164
|
+
|
165
|
+
/**
|
166
|
+
*
|
167
|
+
* @return Black
|
168
|
+
*/
|
169
|
+
static String getBlack() {
|
170
|
+
|
171
|
+
return "pigment{ color rgb <0, 0, 0> }";
|
172
|
+
}
|
173
|
+
|
174
|
+
/**
|
175
|
+
*
|
176
|
+
* @return Chrome
|
177
|
+
*/
|
178
|
+
static StringBuilder getChrome() {
|
179
|
+
StringBuilder col = new StringBuilder();
|
180
|
+
col.append("texture{\npigment {color rgb <0.95, 0.95, 0.95>}\n");
|
181
|
+
col.append(TextureBuilder.MFINISHE);
|
182
|
+
return col.append("\n}\n");
|
183
|
+
}
|
184
|
+
|
185
|
+
/**
|
186
|
+
*
|
187
|
+
* @return Pink Marble
|
188
|
+
*/
|
189
|
+
static StringBuilder getMarble() {
|
190
|
+
StringBuilder col = new StringBuilder(TextureBuilder.RED_MARBLE);
|
191
|
+
return col;
|
192
|
+
}
|
193
|
+
|
194
|
+
/**
|
195
|
+
*
|
196
|
+
* @return TwoTone
|
197
|
+
*/
|
198
|
+
static String getTwoTone() {
|
199
|
+
String col;
|
200
|
+
if (count % 2 == 0) {
|
201
|
+
col = getWhite();
|
202
|
+
} else {
|
203
|
+
col = "pigment{ color rgbf<0, 0, 0, 0.5> }";
|
204
|
+
}
|
205
|
+
count++;
|
206
|
+
return col;
|
207
|
+
}
|
208
|
+
|
209
|
+
/**
|
210
|
+
*
|
211
|
+
* @return Red
|
212
|
+
*/
|
213
|
+
static String getRed() {
|
214
|
+
return "pigment{ color rgb<1, 0, 0> }";
|
215
|
+
}
|
216
|
+
|
217
|
+
/**
|
218
|
+
*
|
219
|
+
* @return opaque rainbow color declaration
|
220
|
+
*/
|
221
|
+
static StringBuilder declareRCOpaque() {
|
222
|
+
StringBuilder declare = new StringBuilder(200);
|
223
|
+
for (RCOpaque rc : RCOpaque.values()) {
|
224
|
+
declare.append("#declare ");
|
225
|
+
declare.append(rc.getColor());
|
226
|
+
declare.append('=');
|
227
|
+
declare.append(rc.getDeclare());
|
228
|
+
declare.append('\n');
|
229
|
+
}
|
230
|
+
return declare;
|
231
|
+
}
|
232
|
+
}
|
@@ -0,0 +1,110 @@
|
|
1
|
+
/*
|
2
|
+
* This library adds PovRAY export facility to toxiclibscore
|
3
|
+
* Copyright (c) 2015 Martin Prout
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or modify it under
|
6
|
+
* the terms of the GNU Lesser General Public License as published by the Free
|
7
|
+
* Software Foundation; either version 2.1 of the License, or (at your option)
|
8
|
+
* any later version.
|
9
|
+
*
|
10
|
+
* http://creativecommons.org/licenses/LGPL/2.1/
|
11
|
+
*
|
12
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
13
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
14
|
+
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
15
|
+
* details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
19
|
+
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
20
|
+
*/
|
21
|
+
|
22
|
+
package toxi.processing;
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Used to set PovRAY texture options
|
26
|
+
* @author Martin Prout
|
27
|
+
*/
|
28
|
+
public enum Textures {
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Original geometry output, no texture
|
32
|
+
*/
|
33
|
+
RAW("Raw geometry"),
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Geometry output, chrome texture
|
37
|
+
*/
|
38
|
+
CHROME("Shiny Metal"),
|
39
|
+
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Geometry output, with glass texture
|
43
|
+
* rainbow colors
|
44
|
+
*/
|
45
|
+
GLASS("Glass texture"),
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Geometry output, with marble texture
|
49
|
+
* xlassic marble
|
50
|
+
*/
|
51
|
+
METAL("Marble texture"),
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Geometry output, with marble texture
|
55
|
+
* rainbow colors
|
56
|
+
*/
|
57
|
+
MARBLE("Marble texture"),
|
58
|
+
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Original geometry output, phong texture
|
62
|
+
*/
|
63
|
+
RED("mono color phong texture"),
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Original geometry output, phong texture
|
67
|
+
*/
|
68
|
+
WHITE("mono color phong texture"),
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Geometry output, with phong texture
|
72
|
+
* rainbow colors
|
73
|
+
*/
|
74
|
+
PHONG("Simple phong texture"),
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Geometry output, with phong texture
|
78
|
+
* random colors
|
79
|
+
*/
|
80
|
+
RANDOM("Random glass texture"),
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Geometry output, with phong texture
|
84
|
+
* and alternate color (B&W)
|
85
|
+
*/
|
86
|
+
TWOTONE("Alternate B&W texture"),
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Geometry output, with mirror
|
90
|
+
* finish
|
91
|
+
*/
|
92
|
+
MIRROR("Perfect mirror");
|
93
|
+
|
94
|
+
/**
|
95
|
+
* Description String
|
96
|
+
*/
|
97
|
+
public String description;
|
98
|
+
|
99
|
+
Textures(String description) {
|
100
|
+
this.description = description;
|
101
|
+
}
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Gives access to description String
|
105
|
+
* @return
|
106
|
+
*/
|
107
|
+
public String description() {
|
108
|
+
return this.description;
|
109
|
+
}
|
110
|
+
}
|