toxiclibs 0.2-java → 0.5.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +16 -0
  3. data/CHANGELOG.md +4 -0
  4. data/LICENSE +675 -0
  5. data/README.md +12 -5
  6. data/Rakefile +25 -82
  7. data/examples/attract_repel/attract_repel.rb +30 -0
  8. data/examples/attract_repel/attractor.rb +23 -0
  9. data/examples/attract_repel/particle.rb +27 -0
  10. data/examples/data/ti_yong.png +0 -0
  11. data/examples/force_directed/cluster.rb +76 -0
  12. data/examples/force_directed/force_directed_graph.rb +92 -0
  13. data/examples/force_directed/node.rb +26 -0
  14. data/examples/gray_scott_image.rb +75 -0
  15. data/examples/gray_scott_tone_map.rb +77 -0
  16. data/examples/implicit.rb +139 -0
  17. data/examples/inflate_mesh.rb +89 -0
  18. data/examples/model_align.rb +44 -0
  19. data/examples/povmesh/ftest.rb +46 -0
  20. data/examples/povmesh/tentacle.rb +73 -0
  21. data/examples/simple_cluster/cluster.rb +47 -0
  22. data/examples/simple_cluster/node.rb +27 -0
  23. data/examples/simple_cluster/simple_cluster.rb +60 -0
  24. data/examples/soft_body/blanket.rb +45 -0
  25. data/examples/soft_body/connection.rb +16 -0
  26. data/examples/soft_body/particle.rb +22 -0
  27. data/examples/soft_body/soft_body_square_adapted.rb +55 -0
  28. data/lib/toxiclibs.jar +0 -0
  29. data/lib/toxiclibs.rb +91 -32
  30. data/lib/toxiclibs/version.rb +1 -1
  31. data/pom.xml +122 -0
  32. data/src/com/toxi/net/ClientListener.java +41 -0
  33. data/src/com/toxi/net/ServerListener.java +70 -0
  34. data/src/com/toxi/net/ServerListenerAdapter.java +47 -0
  35. data/src/com/toxi/net/ServerState.java +18 -0
  36. data/src/com/toxi/net/UDPConnection.java +66 -0
  37. data/src/com/toxi/net/UDPSyncClient.java +81 -0
  38. data/src/com/toxi/net/UDPSyncServer.java +450 -0
  39. data/src/com/toxi/nio/UDPClient.java +121 -0
  40. data/src/com/toxi/nio/UDPClientState.java +32 -0
  41. data/src/com/toxi/nio/UDPServer.java +129 -0
  42. data/src/toxi/color/AccessCriteria.java +114 -0
  43. data/src/toxi/color/AlphaAccessor.java +67 -0
  44. data/src/toxi/color/CMYKAccessor.java +122 -0
  45. data/src/toxi/color/CMYKDistanceProxy.java +40 -0
  46. data/src/toxi/color/ColorGradient.java +260 -0
  47. data/src/toxi/color/ColorList.java +699 -0
  48. data/src/toxi/color/ColorRange.java +671 -0
  49. data/src/toxi/color/ColorTheme.java +163 -0
  50. data/src/toxi/color/DistanceProxy.java +44 -0
  51. data/src/toxi/color/HSVAccessor.java +113 -0
  52. data/src/toxi/color/HSVDistanceProxy.java +40 -0
  53. data/src/toxi/color/HistEntry.java +85 -0
  54. data/src/toxi/color/Histogram.java +185 -0
  55. data/src/toxi/color/Hue.java +249 -0
  56. data/src/toxi/color/LuminanceAccessor.java +78 -0
  57. data/src/toxi/color/NamedColor.java +935 -0
  58. data/src/toxi/color/ProximityComparator.java +70 -0
  59. data/src/toxi/color/RGBAccessor.java +113 -0
  60. data/src/toxi/color/RGBDistanceProxy.java +41 -0
  61. data/src/toxi/color/ReadonlyTColor.java +296 -0
  62. data/src/toxi/color/TColor.java +1677 -0
  63. data/src/toxi/color/TColorAdapter.java +68 -0
  64. data/src/toxi/color/ToneMap.java +218 -0
  65. data/src/toxi/color/theory/AnalogousStrategy.java +140 -0
  66. data/src/toxi/color/theory/ColorTheoryRegistry.java +139 -0
  67. data/src/toxi/color/theory/ColorTheoryStrategy.java +56 -0
  68. data/src/toxi/color/theory/ComplementaryStrategy.java +111 -0
  69. data/src/toxi/color/theory/CompoundTheoryStrategy.java +143 -0
  70. data/src/toxi/color/theory/LeftSplitComplementaryStrategy.java +82 -0
  71. data/src/toxi/color/theory/MonochromeTheoryStrategy.java +103 -0
  72. data/src/toxi/color/theory/RightSplitComplementaryStrategy.java +82 -0
  73. data/src/toxi/color/theory/SingleComplementStrategy.java +76 -0
  74. data/src/toxi/color/theory/SplitComplementaryStrategy.java +77 -0
  75. data/src/toxi/color/theory/TetradTheoryStrategy.java +114 -0
  76. data/src/toxi/color/theory/TriadTheoryStrategy.java +77 -0
  77. data/src/toxi/data/csv/CSVAdapter.java +74 -0
  78. data/src/toxi/data/csv/CSVFieldMapper.java +212 -0
  79. data/src/toxi/data/csv/CSVListener.java +61 -0
  80. data/src/toxi/data/csv/CSVParser.java +202 -0
  81. data/src/toxi/data/feeds/AtomAuthor.java +49 -0
  82. data/src/toxi/data/feeds/AtomContent.java +50 -0
  83. data/src/toxi/data/feeds/AtomEntry.java +111 -0
  84. data/src/toxi/data/feeds/AtomFeed.java +129 -0
  85. data/src/toxi/data/feeds/AtomLink.java +62 -0
  86. data/src/toxi/data/feeds/RSSChannel.java +88 -0
  87. data/src/toxi/data/feeds/RSSEnclosure.java +60 -0
  88. data/src/toxi/data/feeds/RSSFeed.java +99 -0
  89. data/src/toxi/data/feeds/RSSItem.java +104 -0
  90. data/src/toxi/data/feeds/util/EntityStripper.java +2480 -0
  91. data/src/toxi/data/feeds/util/Iso8601DateAdapter.java +101 -0
  92. data/src/toxi/data/feeds/util/Rfc822DateAdapter.java +93 -0
  93. data/src/toxi/geom/AABB.java +658 -0
  94. data/src/toxi/geom/Axis3D.java +116 -0
  95. data/src/toxi/geom/AxisAlignedCylinder.java +163 -0
  96. data/src/toxi/geom/BernsteinPolynomial.java +94 -0
  97. data/src/toxi/geom/BezierCurve2D.java +159 -0
  98. data/src/toxi/geom/BezierCurve3D.java +148 -0
  99. data/src/toxi/geom/BooleanShapeBuilder.java +185 -0
  100. data/src/toxi/geom/BoxIntersector.java +52 -0
  101. data/src/toxi/geom/Circle.java +230 -0
  102. data/src/toxi/geom/CircleIntersector.java +85 -0
  103. data/src/toxi/geom/Cone.java +150 -0
  104. data/src/toxi/geom/ConvexPolygonClipper.java +136 -0
  105. data/src/toxi/geom/CoordinateExtractor.java +16 -0
  106. data/src/toxi/geom/Ellipse.java +250 -0
  107. data/src/toxi/geom/GMatrix.java +2599 -0
  108. data/src/toxi/geom/GVector.java +833 -0
  109. data/src/toxi/geom/GlobalGridTesselator.java +54 -0
  110. data/src/toxi/geom/GridTesselator.java +108 -0
  111. data/src/toxi/geom/Intersector2D.java +49 -0
  112. data/src/toxi/geom/Intersector3D.java +51 -0
  113. data/src/toxi/geom/IsectData2D.java +103 -0
  114. data/src/toxi/geom/IsectData3D.java +103 -0
  115. data/src/toxi/geom/Line2D.java +534 -0
  116. data/src/toxi/geom/Line3D.java +471 -0
  117. data/src/toxi/geom/LineStrip2D.java +430 -0
  118. data/src/toxi/geom/LineStrip3D.java +230 -0
  119. data/src/toxi/geom/LocalGridTesselator.java +57 -0
  120. data/src/toxi/geom/Matrix3d.java +3048 -0
  121. data/src/toxi/geom/Matrix4f.java +3446 -0
  122. data/src/toxi/geom/Matrix4x4.java +1076 -0
  123. data/src/toxi/geom/MatrixSizeException.java +58 -0
  124. data/src/toxi/geom/OctreeVisitor.java +44 -0
  125. data/src/toxi/geom/Origin3D.java +148 -0
  126. data/src/toxi/geom/Plane.java +293 -0
  127. data/src/toxi/geom/PlaneIntersector.java +57 -0
  128. data/src/toxi/geom/PointCloud3D.java +253 -0
  129. data/src/toxi/geom/PointOctree.java +502 -0
  130. data/src/toxi/geom/PointQuadtree.java +375 -0
  131. data/src/toxi/geom/Polygon2D.java +1038 -0
  132. data/src/toxi/geom/PolygonClipper2D.java +45 -0
  133. data/src/toxi/geom/PolygonTesselator.java +20 -0
  134. data/src/toxi/geom/QuadtreeVisitor.java +44 -0
  135. data/src/toxi/geom/Quaternion.java +641 -0
  136. data/src/toxi/geom/Ray2D.java +146 -0
  137. data/src/toxi/geom/Ray3D.java +150 -0
  138. data/src/toxi/geom/Ray3DIntersector.java +75 -0
  139. data/src/toxi/geom/ReadonlyVec2D.java +575 -0
  140. data/src/toxi/geom/ReadonlyVec3D.java +628 -0
  141. data/src/toxi/geom/ReadonlyVec4D.java +431 -0
  142. data/src/toxi/geom/Rect.java +720 -0
  143. data/src/toxi/geom/Reflector3D.java +58 -0
  144. data/src/toxi/geom/Shape2D.java +94 -0
  145. data/src/toxi/geom/Shape3D.java +42 -0
  146. data/src/toxi/geom/SingularMatrixException.java +57 -0
  147. data/src/toxi/geom/SpatialBins.java +182 -0
  148. data/src/toxi/geom/SpatialIndex.java +61 -0
  149. data/src/toxi/geom/Sphere.java +224 -0
  150. data/src/toxi/geom/SphereIntersectorReflector.java +196 -0
  151. data/src/toxi/geom/Spline2D.java +349 -0
  152. data/src/toxi/geom/Spline3D.java +351 -0
  153. data/src/toxi/geom/SutherlandHodgemanClipper.java +151 -0
  154. data/src/toxi/geom/Triangle2D.java +422 -0
  155. data/src/toxi/geom/Triangle3D.java +456 -0
  156. data/src/toxi/geom/TriangleIntersector.java +105 -0
  157. data/src/toxi/geom/Vec2D.java +1328 -0
  158. data/src/toxi/geom/Vec3D.java +1832 -0
  159. data/src/toxi/geom/Vec4D.java +985 -0
  160. data/src/toxi/geom/VecMathUtil.java +100 -0
  161. data/src/toxi/geom/XAxisCylinder.java +64 -0
  162. data/src/toxi/geom/YAxisCylinder.java +65 -0
  163. data/src/toxi/geom/ZAxisCylinder.java +64 -0
  164. data/src/toxi/geom/mesh/BezierPatch.java +200 -0
  165. data/src/toxi/geom/mesh/BoxSelector.java +62 -0
  166. data/src/toxi/geom/mesh/DefaultSTLColorModel.java +67 -0
  167. data/src/toxi/geom/mesh/DefaultSelector.java +50 -0
  168. data/src/toxi/geom/mesh/Face.java +176 -0
  169. data/src/toxi/geom/mesh/LaplacianSmooth.java +80 -0
  170. data/src/toxi/geom/mesh/MaterialiseSTLColorModel.java +150 -0
  171. data/src/toxi/geom/mesh/Mesh3D.java +224 -0
  172. data/src/toxi/geom/mesh/MeshIntersector.java +91 -0
  173. data/src/toxi/geom/mesh/OBJWriter.java +194 -0
  174. data/src/toxi/geom/mesh/PLYWriter.java +167 -0
  175. data/src/toxi/geom/mesh/PlaneSelector.java +90 -0
  176. data/src/toxi/geom/mesh/STLColorModel.java +54 -0
  177. data/src/toxi/geom/mesh/STLReader.java +185 -0
  178. data/src/toxi/geom/mesh/STLWriter.java +323 -0
  179. data/src/toxi/geom/mesh/SphereFunction.java +156 -0
  180. data/src/toxi/geom/mesh/SphericalHarmonics.java +110 -0
  181. data/src/toxi/geom/mesh/SuperEllipsoid.java +110 -0
  182. data/src/toxi/geom/mesh/SurfaceFunction.java +75 -0
  183. data/src/toxi/geom/mesh/SurfaceMeshBuilder.java +149 -0
  184. data/src/toxi/geom/mesh/Terrain.java +451 -0
  185. data/src/toxi/geom/mesh/TriangleMesh.java +1201 -0
  186. data/src/toxi/geom/mesh/Vertex.java +78 -0
  187. data/src/toxi/geom/mesh/VertexSelector.java +193 -0
  188. data/src/toxi/geom/mesh/WEFace.java +100 -0
  189. data/src/toxi/geom/mesh/WEMeshFilterStrategy.java +51 -0
  190. data/src/toxi/geom/mesh/WETriangleMesh.java +761 -0
  191. data/src/toxi/geom/mesh/WEVertex.java +134 -0
  192. data/src/toxi/geom/mesh/WingedEdge.java +115 -0
  193. data/src/toxi/geom/mesh/subdiv/CentroidSubdiv.java +37 -0
  194. data/src/toxi/geom/mesh/subdiv/DisplacementSubdivision.java +85 -0
  195. data/src/toxi/geom/mesh/subdiv/DualDisplacementSubdivision.java +94 -0
  196. data/src/toxi/geom/mesh/subdiv/DualSubdivision.java +49 -0
  197. data/src/toxi/geom/mesh/subdiv/EdgeLengthComparator.java +50 -0
  198. data/src/toxi/geom/mesh/subdiv/FaceCountComparator.java +51 -0
  199. data/src/toxi/geom/mesh/subdiv/MidpointDisplacementSubdivision.java +80 -0
  200. data/src/toxi/geom/mesh/subdiv/MidpointSubdiv.java +42 -0
  201. data/src/toxi/geom/mesh/subdiv/MidpointSubdivision.java +48 -0
  202. data/src/toxi/geom/mesh/subdiv/NewSubdivStrategy.java +23 -0
  203. data/src/toxi/geom/mesh/subdiv/NormalDisplacementSubdivision.java +74 -0
  204. data/src/toxi/geom/mesh/subdiv/SubdivisionStrategy.java +83 -0
  205. data/src/toxi/geom/mesh/subdiv/TriSubdivision.java +51 -0
  206. data/src/toxi/geom/mesh2d/DelaunayTriangle.java +222 -0
  207. data/src/toxi/geom/mesh2d/DelaunayTriangulation.java +327 -0
  208. data/src/toxi/geom/mesh2d/DelaunayVertex.java +560 -0
  209. data/src/toxi/geom/mesh2d/Voronoi.java +149 -0
  210. data/src/toxi/geom/nurbs/BasicNurbsCurve.java +210 -0
  211. data/src/toxi/geom/nurbs/BasicNurbsSurface.java +233 -0
  212. data/src/toxi/geom/nurbs/ControlNet.java +148 -0
  213. data/src/toxi/geom/nurbs/CurveCreator.java +112 -0
  214. data/src/toxi/geom/nurbs/CurveUtils.java +259 -0
  215. data/src/toxi/geom/nurbs/InterpolationException.java +65 -0
  216. data/src/toxi/geom/nurbs/KnotVector.java +333 -0
  217. data/src/toxi/geom/nurbs/NurbsCreator.java +815 -0
  218. data/src/toxi/geom/nurbs/NurbsCurve.java +120 -0
  219. data/src/toxi/geom/nurbs/NurbsMeshCreator.java +145 -0
  220. data/src/toxi/geom/nurbs/NurbsSurface.java +147 -0
  221. data/src/toxi/image/util/Filter8bit.java +331 -0
  222. data/src/toxi/image/util/TiledFrameExporter.java +162 -0
  223. data/src/toxi/math/BezierInterpolation.java +102 -0
  224. data/src/toxi/math/CircularInterpolation.java +88 -0
  225. data/src/toxi/math/CosineInterpolation.java +51 -0
  226. data/src/toxi/math/DecimatedInterpolation.java +77 -0
  227. data/src/toxi/math/ExponentialInterpolation.java +68 -0
  228. data/src/toxi/math/InterpolateStrategy.java +60 -0
  229. data/src/toxi/math/Interpolation2D.java +93 -0
  230. data/src/toxi/math/LinearInterpolation.java +46 -0
  231. data/src/toxi/math/MathUtils.java +990 -0
  232. data/src/toxi/math/NonLinearScaleMap.java +101 -0
  233. data/src/toxi/math/ScaleMap.java +183 -0
  234. data/src/toxi/math/SigmoidInterpolation.java +78 -0
  235. data/src/toxi/math/SinCosLUT.java +141 -0
  236. data/src/toxi/math/ThresholdInterpolation.java +58 -0
  237. data/src/toxi/math/ZoomLensInterpolation.java +126 -0
  238. data/src/toxi/math/conversion/UnitTranslator.java +161 -0
  239. data/src/toxi/math/noise/PerlinNoise.java +281 -0
  240. data/src/toxi/math/noise/SimplexNoise.java +542 -0
  241. data/src/toxi/math/waves/AMFMSineWave.java +143 -0
  242. data/src/toxi/math/waves/AbstractWave.java +248 -0
  243. data/src/toxi/math/waves/ConstantWave.java +48 -0
  244. data/src/toxi/math/waves/FMHarmonicSquareWave.java +155 -0
  245. data/src/toxi/math/waves/FMSawtoothWave.java +144 -0
  246. data/src/toxi/math/waves/FMSineWave.java +142 -0
  247. data/src/toxi/math/waves/FMSquareWave.java +143 -0
  248. data/src/toxi/math/waves/FMTriangleWave.java +126 -0
  249. data/src/toxi/math/waves/SineWave.java +81 -0
  250. data/src/toxi/math/waves/Wave2D.java +68 -0
  251. data/src/toxi/math/waves/WaveState.java +69 -0
  252. data/src/toxi/music/scale/AbstractScale.java +117 -0
  253. data/src/toxi/music/scale/GenericScale.java +66 -0
  254. data/src/toxi/music/scale/MajorScale.java +41 -0
  255. data/src/toxi/newmesh/AttributedEdge.java +106 -0
  256. data/src/toxi/newmesh/AttributedFace.java +63 -0
  257. data/src/toxi/newmesh/IndexedTriangleMesh.java +809 -0
  258. data/src/toxi/newmesh/MeshAttributeCompiler.java +45 -0
  259. data/src/toxi/newmesh/MeshFaceNormalCompiler.java +52 -0
  260. data/src/toxi/newmesh/MeshUVCompiler.java +52 -0
  261. data/src/toxi/newmesh/MeshVertexColorCompiler.java +49 -0
  262. data/src/toxi/newmesh/MeshVertexCompiler.java +54 -0
  263. data/src/toxi/newmesh/MeshVertexNormalCompiler.java +55 -0
  264. data/src/toxi/newmesh/SpatialIndex.java +78 -0
  265. data/src/toxi/physics2d/ParticlePath2D.java +100 -0
  266. data/src/toxi/physics2d/ParticleString2D.java +184 -0
  267. data/src/toxi/physics2d/PullBackSpring2D.java +51 -0
  268. data/src/toxi/physics2d/VerletConstrainedSpring2D.java +89 -0
  269. data/src/toxi/physics2d/VerletMinDistanceSpring2D.java +57 -0
  270. data/src/toxi/physics2d/VerletParticle2D.java +457 -0
  271. data/src/toxi/physics2d/VerletPhysics2D.java +448 -0
  272. data/src/toxi/physics2d/VerletSpring2D.java +181 -0
  273. data/src/toxi/physics2d/behaviors/AttractionBehavior2D.java +212 -0
  274. data/src/toxi/physics2d/behaviors/ConstantForceBehavior2D.java +112 -0
  275. data/src/toxi/physics2d/behaviors/GravityBehavior2D.java +61 -0
  276. data/src/toxi/physics2d/behaviors/ParticleBehavior2D.java +66 -0
  277. data/src/toxi/physics2d/constraints/AngularConstraint.java +83 -0
  278. data/src/toxi/physics2d/constraints/AxisConstraint.java +71 -0
  279. data/src/toxi/physics2d/constraints/CircularConstraint.java +69 -0
  280. data/src/toxi/physics2d/constraints/MaxConstraint.java +66 -0
  281. data/src/toxi/physics2d/constraints/MinConstraint.java +66 -0
  282. data/src/toxi/physics2d/constraints/ParticleConstraint2D.java +47 -0
  283. data/src/toxi/physics2d/constraints/PolygonConstraint.java +93 -0
  284. data/src/toxi/physics2d/constraints/RectConstraint.java +114 -0
  285. data/src/toxi/physics3d/ParticlePath3D.java +100 -0
  286. data/src/toxi/physics3d/ParticleString3D.java +184 -0
  287. data/src/toxi/physics3d/PullBackSpring3D.java +50 -0
  288. data/src/toxi/physics3d/VerletConstrainedSpring3D.java +88 -0
  289. data/src/toxi/physics3d/VerletMinDistanceSpring3D.java +56 -0
  290. data/src/toxi/physics3d/VerletParticle3D.java +385 -0
  291. data/src/toxi/physics3d/VerletPhysics3D.java +417 -0
  292. data/src/toxi/physics3d/VerletSpring3D.java +180 -0
  293. data/src/toxi/physics3d/behaviors/AttractionBehavior3D.java +182 -0
  294. data/src/toxi/physics3d/behaviors/ConstantForceBehavior3D.java +92 -0
  295. data/src/toxi/physics3d/behaviors/GravityBehavior3D.java +61 -0
  296. data/src/toxi/physics3d/behaviors/ParticleBehavior3D.java +52 -0
  297. data/src/toxi/physics3d/constraints/AxisConstraint.java +68 -0
  298. data/src/toxi/physics3d/constraints/BoxConstraint.java +121 -0
  299. data/src/toxi/physics3d/constraints/CylinderConstraint.java +87 -0
  300. data/src/toxi/physics3d/constraints/MaxConstraint.java +65 -0
  301. data/src/toxi/physics3d/constraints/MinConstraint.java +65 -0
  302. data/src/toxi/physics3d/constraints/ParticleConstraint3D.java +49 -0
  303. data/src/toxi/physics3d/constraints/PlaneConstraint.java +78 -0
  304. data/src/toxi/physics3d/constraints/SoftBoxConstraint.java +87 -0
  305. data/src/toxi/physics3d/constraints/SphereConstraint.java +108 -0
  306. data/src/toxi/processing/ArrowModifier.java +116 -0
  307. data/src/toxi/processing/DashedLineModifier.java +48 -0
  308. data/src/toxi/processing/DeltaOrientationMapper.java +57 -0
  309. data/src/toxi/processing/Line2DRenderModifier.java +18 -0
  310. data/src/toxi/processing/MeshToVBO.java +94 -0
  311. data/src/toxi/processing/NormalMapper.java +18 -0
  312. data/src/toxi/processing/POVInterface.java +121 -0
  313. data/src/toxi/processing/POVMesh.java +219 -0
  314. data/src/toxi/processing/POVWriter.java +460 -0
  315. data/src/toxi/processing/RCOpaque.java +77 -0
  316. data/src/toxi/processing/RCTransp.java +78 -0
  317. data/src/toxi/processing/TextureBuilder.java +232 -0
  318. data/src/toxi/processing/Textures.java +110 -0
  319. data/src/toxi/processing/ToxiclibsSupport.java +1239 -0
  320. data/src/toxi/processing/Tracing.java +25 -0
  321. data/src/toxi/processing/XYZNormalMapper.java +30 -0
  322. data/src/toxi/sim/automata/CAMatrix.java +297 -0
  323. data/src/toxi/sim/automata/CARule.java +76 -0
  324. data/src/toxi/sim/automata/CARule2D.java +354 -0
  325. data/src/toxi/sim/automata/CAWolfram1D.java +309 -0
  326. data/src/toxi/sim/automata/EvolvableMatrix.java +61 -0
  327. data/src/toxi/sim/automata/MatrixEvolver.java +42 -0
  328. data/src/toxi/sim/dla/BottomUpOrder.java +76 -0
  329. data/src/toxi/sim/dla/DLA.java +497 -0
  330. data/src/toxi/sim/dla/DLAConfiguration.java +364 -0
  331. data/src/toxi/sim/dla/DLAEventAdapter.java +64 -0
  332. data/src/toxi/sim/dla/DLAEventListener.java +57 -0
  333. data/src/toxi/sim/dla/DLAGuideLines.java +219 -0
  334. data/src/toxi/sim/dla/DLAParticle.java +102 -0
  335. data/src/toxi/sim/dla/DLASegment.java +88 -0
  336. data/src/toxi/sim/dla/PipelineOrder.java +50 -0
  337. data/src/toxi/sim/dla/RadialDistanceOrder.java +92 -0
  338. data/src/toxi/sim/erosion/ErosionFunction.java +122 -0
  339. data/src/toxi/sim/erosion/TalusAngleErosion.java +145 -0
  340. data/src/toxi/sim/erosion/ThermalErosion.java +75 -0
  341. data/src/toxi/sim/fluids/FluidSolver2D.java +762 -0
  342. data/src/toxi/sim/fluids/FluidSolver3D.java +326 -0
  343. data/src/toxi/sim/grayscott/GrayScott.java +469 -0
  344. data/src/toxi/util/DateUtils.java +141 -0
  345. data/src/toxi/util/FileSequenceDescriptor.java +181 -0
  346. data/src/toxi/util/FileUtils.java +467 -0
  347. data/src/toxi/util/datatypes/ArraySet.java +128 -0
  348. data/src/toxi/util/datatypes/ArrayUtil.java +404 -0
  349. data/src/toxi/util/datatypes/BiasedDoubleRange.java +141 -0
  350. data/src/toxi/util/datatypes/BiasedFloatRange.java +141 -0
  351. data/src/toxi/util/datatypes/BiasedIntegerRange.java +141 -0
  352. data/src/toxi/util/datatypes/DoubleRange.java +251 -0
  353. data/src/toxi/util/datatypes/FloatRange.java +251 -0
  354. data/src/toxi/util/datatypes/GenericSet.java +215 -0
  355. data/src/toxi/util/datatypes/IntegerRange.java +247 -0
  356. data/src/toxi/util/datatypes/IntegerSet.java +149 -0
  357. data/src/toxi/util/datatypes/ItemIndex.java +72 -0
  358. data/src/toxi/util/datatypes/SingletonRegistry.java +91 -0
  359. data/src/toxi/util/datatypes/TypedProperties.java +291 -0
  360. data/src/toxi/util/datatypes/UndirectedGraph.java +134 -0
  361. data/src/toxi/util/datatypes/UniqueItemIndex.java +223 -0
  362. data/src/toxi/util/datatypes/WeightedRandomEntry.java +76 -0
  363. data/src/toxi/util/datatypes/WeightedRandomSet.java +125 -0
  364. data/src/toxi/util/events/EventDispatcher.java +86 -0
  365. data/src/toxi/volume/AdditiveBrush.java +19 -0
  366. data/src/toxi/volume/ArrayIsoSurface.java +297 -0
  367. data/src/toxi/volume/BoxBrush.java +100 -0
  368. data/src/toxi/volume/BrushMode.java +16 -0
  369. data/src/toxi/volume/HashIsoSurface.java +354 -0
  370. data/src/toxi/volume/IsoSurface.java +59 -0
  371. data/src/toxi/volume/MarchingCubesIndex.java +312 -0
  372. data/src/toxi/volume/MeshLatticeBuilder.java +358 -0
  373. data/src/toxi/volume/MeshVoxelizer.java +216 -0
  374. data/src/toxi/volume/MultiplyBrush.java +20 -0
  375. data/src/toxi/volume/PeakBrush.java +21 -0
  376. data/src/toxi/volume/ReplaceBrush.java +19 -0
  377. data/src/toxi/volume/RoundBrush.java +113 -0
  378. data/src/toxi/volume/VolumetricBrush.java +160 -0
  379. data/src/toxi/volume/VolumetricHashMap.java +179 -0
  380. data/src/toxi/volume/VolumetricSpace.java +195 -0
  381. data/src/toxi/volume/VolumetricSpaceArray.java +214 -0
  382. data/toxiclibs.gemspec +34 -0
  383. metadata +424 -27
@@ -0,0 +1,935 @@
1
+ /*
2
+ * Some classes in this package have been partly inspired by & bits ported from
3
+ * Python code written by Tom De Smedt & Frederik De Bleser for the "colors" library
4
+ * of Nodebox.net.
5
+ *
6
+ * http://nodebox.net/code/index.php/Colors
7
+ *
8
+ * Copyright (c) 2006-2011 Karsten Schmidt
9
+ *
10
+ * This library is free software; you can redistribute it and/or
11
+ * modify it under the terms of the GNU Lesser General Public
12
+ * License as published by the Free Software Foundation; either
13
+ * version 2.1 of the License, or (at your option) any later version.
14
+ *
15
+ * http://creativecommons.org/licenses/LGPL/2.1/
16
+ *
17
+ * This library is distributed in the hope that it will be useful,
18
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
+ * Lesser General Public License for more details.
21
+ *
22
+ * You should have received a copy of the GNU Lesser General Public
23
+ * License along with this library; if not, write to the Free Software
24
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
25
+ */
26
+
27
+ package toxi.color;
28
+
29
+ import java.lang.reflect.Field;
30
+ import java.util.ArrayList;
31
+ import java.util.HashMap;
32
+
33
+ /**
34
+ * Defines a list of named colors across the spectrum and provides a means to
35
+ * access them by name (strings) dynamically (e.g. using config files or when
36
+ * building {@link ColorTheme}s)
37
+ */
38
+ public class NamedColor {
39
+
40
+ /**
41
+ *
42
+ */
43
+ public static final ReadonlyTColor ALICEBLUE = TColor.newRGB(0.94f, 0.97f,
44
+ 1.00f);
45
+
46
+ /**
47
+ *
48
+ */
49
+ public static final ReadonlyTColor ANTIQUEWHITE = TColor.newRGB(0.98f,
50
+ 0.92f, 0.84f);
51
+
52
+ /**
53
+ *
54
+ */
55
+ public static final ReadonlyTColor AQUA = TColor
56
+ .newRGB(0.00f, 1.00f, 1.00f);
57
+
58
+ /**
59
+ *
60
+ */
61
+ public static final ReadonlyTColor AQUAMARINE = TColor.newRGB(0.50f, 1.00f,
62
+ 0.83f);
63
+
64
+ /**
65
+ *
66
+ */
67
+ public static final ReadonlyTColor AZURE = TColor.newRGB(0.94f, 1.00f,
68
+ 1.00f);
69
+
70
+ /**
71
+ *
72
+ */
73
+ public static final ReadonlyTColor BARK = TColor
74
+ .newRGB(0.25f, 0.19f, 0.13f);
75
+
76
+ /**
77
+ *
78
+ */
79
+ public static final ReadonlyTColor BEIGE = TColor.newRGB(0.96f, 0.96f,
80
+ 0.86f);
81
+
82
+ /**
83
+ *
84
+ */
85
+ public static final ReadonlyTColor BISQUE = TColor.newRGB(1.00f, 0.89f,
86
+ 0.77f);
87
+
88
+ /**
89
+ *
90
+ */
91
+ public static final ReadonlyTColor BLACK = TColor.newRGB(0.00f, 0.00f,
92
+ 0.00f);
93
+
94
+ /**
95
+ *
96
+ */
97
+ public static final ReadonlyTColor BLANCHEDALMOND = TColor.newRGB(1.00f,
98
+ 0.92f, 0.80f);
99
+
100
+ /**
101
+ *
102
+ */
103
+ public static final ReadonlyTColor BLUE = TColor
104
+ .newRGB(0.00f, 0.00f, 1.00f);
105
+
106
+ /**
107
+ *
108
+ */
109
+ public static final ReadonlyTColor BLUEVIOLET = TColor.newRGB(0.54f, 0.17f,
110
+ 0.89f);
111
+
112
+ /**
113
+ *
114
+ */
115
+ public static final ReadonlyTColor BROWN = TColor.newRGB(0.65f, 0.16f,
116
+ 0.16f);
117
+
118
+ /**
119
+ *
120
+ */
121
+ public static final ReadonlyTColor BURLYWOOD = TColor.newRGB(0.87f, 0.72f,
122
+ 0.53f);
123
+
124
+ /**
125
+ *
126
+ */
127
+ public static final ReadonlyTColor CADETBLUE = TColor.newRGB(0.37f, 0.62f,
128
+ 0.63f);
129
+
130
+ /**
131
+ *
132
+ */
133
+ public static final ReadonlyTColor CHARTREUSE = TColor.newRGB(0.50f, 1.00f,
134
+ 0.00f);
135
+
136
+ /**
137
+ *
138
+ */
139
+ public static final ReadonlyTColor CHOCOLATE = TColor.newRGB(0.82f, 0.41f,
140
+ 0.12f);
141
+
142
+ /**
143
+ *
144
+ */
145
+ public static final ReadonlyTColor CORAL = TColor.newRGB(1.00f, 0.50f,
146
+ 0.31f);
147
+
148
+ /**
149
+ *
150
+ */
151
+ public static final ReadonlyTColor CORNFLOWERBLUE = TColor.newRGB(0.39f,
152
+ 0.58f, 0.93f);
153
+
154
+ /**
155
+ *
156
+ */
157
+ public static final ReadonlyTColor CORNSILK = TColor.newRGB(1.00f, 0.97f,
158
+ 0.86f);
159
+
160
+ /**
161
+ *
162
+ */
163
+ public static final ReadonlyTColor CRIMSON = TColor.newRGB(0.86f, 0.08f,
164
+ 0.24f);
165
+
166
+ /**
167
+ *
168
+ */
169
+ public static final ReadonlyTColor CYAN = TColor
170
+ .newRGB(0.00f, 0.68f, 0.94f);
171
+
172
+ /**
173
+ *
174
+ */
175
+ public static final ReadonlyTColor DARKBLUE = TColor.newRGB(0.00f, 0.00f,
176
+ 0.55f);
177
+
178
+ /**
179
+ *
180
+ */
181
+ public static final ReadonlyTColor DARKCYAN = TColor.newRGB(0.00f, 0.55f,
182
+ 0.55f);
183
+
184
+ /**
185
+ *
186
+ */
187
+ public static final ReadonlyTColor DARKGOLDENROD = TColor.newRGB(0.72f,
188
+ 0.53f, 0.04f);
189
+
190
+ /**
191
+ *
192
+ */
193
+ public static final ReadonlyTColor DARKGRAY = TColor.newRGB(0.66f, 0.66f,
194
+ 0.66f);
195
+
196
+ /**
197
+ *
198
+ */
199
+ public static final ReadonlyTColor DARKGREEN = TColor.newRGB(0.00f, 0.39f,
200
+ 0.00f);
201
+
202
+ /**
203
+ *
204
+ */
205
+ public static final ReadonlyTColor DARKKHAKI = TColor.newRGB(0.74f, 0.72f,
206
+ 0.42f);
207
+
208
+ /**
209
+ *
210
+ */
211
+ public static final ReadonlyTColor DARKMAGENTA = TColor.newRGB(0.55f,
212
+ 0.00f, 0.55f);
213
+
214
+ /**
215
+ *
216
+ */
217
+ public static final ReadonlyTColor DARKOLIVEGREEN = TColor.newRGB(0.33f,
218
+ 0.42f, 0.18f);
219
+
220
+ /**
221
+ *
222
+ */
223
+ public static final ReadonlyTColor DARKORANGE = TColor.newRGB(1.00f, 0.55f,
224
+ 0.00f);
225
+
226
+ /**
227
+ *
228
+ */
229
+ public static final ReadonlyTColor DARKORCHID = TColor.newRGB(0.60f, 0.20f,
230
+ 0.80f);
231
+
232
+ /**
233
+ *
234
+ */
235
+ public static final ReadonlyTColor DARKRED = TColor.newRGB(0.55f, 0.00f,
236
+ 0.00f);
237
+
238
+ /**
239
+ *
240
+ */
241
+ public static final ReadonlyTColor DARKSALMON = TColor.newRGB(0.91f, 0.59f,
242
+ 0.48f);
243
+
244
+ /**
245
+ *
246
+ */
247
+ public static final ReadonlyTColor DARKSEAGREEN = TColor.newRGB(0.56f,
248
+ 0.74f, 0.56f);
249
+
250
+ /**
251
+ *
252
+ */
253
+ public static final ReadonlyTColor DARKSLATEBLUE = TColor.newRGB(0.28f,
254
+ 0.24f, 0.55f);
255
+
256
+ /**
257
+ *
258
+ */
259
+ public static final ReadonlyTColor DARKSLATEGRAY = TColor.newRGB(0.18f,
260
+ 0.31f, 0.31f);
261
+
262
+ /**
263
+ *
264
+ */
265
+ public static final ReadonlyTColor DARKTURQUOISE = TColor.newRGB(0.00f,
266
+ 0.81f, 0.82f);
267
+
268
+ /**
269
+ *
270
+ */
271
+ public static final ReadonlyTColor DARKVIOLET = TColor.newRGB(0.58f, 0.00f,
272
+ 0.83f);
273
+
274
+ /**
275
+ *
276
+ */
277
+ public static final ReadonlyTColor DEEPPINK = TColor.newRGB(1.00f, 0.08f,
278
+ 0.58f);
279
+
280
+ /**
281
+ *
282
+ */
283
+ public static final ReadonlyTColor DEEPSKYBLUE = TColor.newRGB(0.00f,
284
+ 0.75f, 1.00f);
285
+
286
+ /**
287
+ *
288
+ */
289
+ public static final ReadonlyTColor DIMGRAY = TColor.newRGB(0.41f, 0.41f,
290
+ 0.41f);
291
+
292
+ /**
293
+ *
294
+ */
295
+ public static final ReadonlyTColor DIMGREY = TColor.newRGB(0.41f, 0.41f,
296
+ 0.41f);
297
+
298
+ /**
299
+ *
300
+ */
301
+ public static final ReadonlyTColor DODGERBLUE = TColor.newRGB(0.12f, 0.56f,
302
+ 1.00f);
303
+
304
+ /**
305
+ *
306
+ */
307
+ public static final ReadonlyTColor FIREBRICK = TColor.newRGB(0.70f, 0.13f,
308
+ 0.13f);
309
+
310
+ /**
311
+ *
312
+ */
313
+ public static final ReadonlyTColor FLORALWHITE = TColor.newRGB(1.00f,
314
+ 0.98f, 0.94f);
315
+
316
+ /**
317
+ *
318
+ */
319
+ public static final ReadonlyTColor FORESTGREEN = TColor.newRGB(0.13f,
320
+ 0.55f, 0.13f);
321
+
322
+ /**
323
+ *
324
+ */
325
+ public static final ReadonlyTColor FUCHSIA = TColor.newRGB(1.00f, 0.00f,
326
+ 1.00f);
327
+
328
+ /**
329
+ *
330
+ */
331
+ public static final ReadonlyTColor GAINSBORO = TColor.newRGB(0.86f, 0.86f,
332
+ 0.86f);
333
+
334
+ /**
335
+ *
336
+ */
337
+ public static final ReadonlyTColor GHOSTWHITE = TColor.newRGB(0.97f, 0.97f,
338
+ 1.00f);
339
+
340
+ /**
341
+ *
342
+ */
343
+ public static final ReadonlyTColor GOLD = TColor
344
+ .newRGB(1.00f, 0.84f, 0.00f);
345
+
346
+ /**
347
+ *
348
+ */
349
+ public static final ReadonlyTColor GOLDENROD = TColor.newRGB(0.85f, 0.65f,
350
+ 0.13f);
351
+
352
+ /**
353
+ *
354
+ */
355
+ public static final ReadonlyTColor GRAY = TColor
356
+ .newRGB(0.50f, 0.50f, 0.50f);
357
+
358
+ /**
359
+ *
360
+ */
361
+ public static final ReadonlyTColor GREEN = TColor.newRGB(0.00f, 0.50f,
362
+ 0.00f);
363
+
364
+ /**
365
+ *
366
+ */
367
+ public static final ReadonlyTColor GREENYELLOW = TColor.newRGB(0.68f,
368
+ 1.00f, 0.18f);
369
+
370
+ /**
371
+ *
372
+ */
373
+ public static final ReadonlyTColor GREY = TColor
374
+ .newRGB(0.50f, 0.50f, 0.50f);
375
+
376
+ /**
377
+ *
378
+ */
379
+ public static final ReadonlyTColor HONEYDEW = TColor.newRGB(0.94f, 1.00f,
380
+ 0.94f);
381
+
382
+ /**
383
+ *
384
+ */
385
+ public static final ReadonlyTColor HOTPINK = TColor.newRGB(1.00f, 0.41f,
386
+ 0.71f);
387
+
388
+ /**
389
+ *
390
+ */
391
+ public static final ReadonlyTColor INDIANRED = TColor.newRGB(0.80f, 0.36f,
392
+ 0.36f);
393
+
394
+ /**
395
+ *
396
+ */
397
+ public static final ReadonlyTColor INDIGO = TColor.newRGB(0.29f, 0.00f,
398
+ 0.51f);
399
+
400
+ /**
401
+ *
402
+ */
403
+ public static final ReadonlyTColor IVORY = TColor.newRGB(1.00f, 1.00f,
404
+ 0.94f);
405
+
406
+ /**
407
+ *
408
+ */
409
+ public static final ReadonlyTColor KHAKI = TColor.newRGB(0.94f, 0.90f,
410
+ 0.55f);
411
+
412
+ /**
413
+ *
414
+ */
415
+ public static final ReadonlyTColor LAVENDER = TColor.newRGB(0.90f, 0.90f,
416
+ 0.98f);
417
+
418
+ /**
419
+ *
420
+ */
421
+ public static final ReadonlyTColor LAVENDERBLUSH = TColor.newRGB(1.00f,
422
+ 0.94f, 0.96f);
423
+
424
+ /**
425
+ *
426
+ */
427
+ public static final ReadonlyTColor LAWNGREEN = TColor.newRGB(0.49f, 0.99f,
428
+ 0.00f);
429
+
430
+ /**
431
+ *
432
+ */
433
+ public static final ReadonlyTColor LEMONCHIFFON = TColor.newRGB(1.00f,
434
+ 0.98f, 0.80f);
435
+
436
+ /**
437
+ *
438
+ */
439
+ public static final ReadonlyTColor LIGHTBLUE = TColor.newRGB(0.68f, 0.85f,
440
+ 0.90f);
441
+
442
+ /**
443
+ *
444
+ */
445
+ public static final ReadonlyTColor LIGHTCORAL = TColor.newRGB(0.94f, 0.50f,
446
+ 0.50f);
447
+
448
+ /**
449
+ *
450
+ */
451
+ public static final ReadonlyTColor LIGHTCYAN = TColor.newRGB(0.88f, 1.00f,
452
+ 1.00f);
453
+
454
+ /**
455
+ *
456
+ */
457
+ public static final ReadonlyTColor LIGHTGOLDENRODYELLOW = TColor.newRGB(
458
+ 0.98f, 0.98f, 0.82f);
459
+
460
+ /**
461
+ *
462
+ */
463
+ public static final ReadonlyTColor LIGHTGREEN = TColor.newRGB(0.56f, 0.93f,
464
+ 0.56f);
465
+
466
+ /**
467
+ *
468
+ */
469
+ public static final ReadonlyTColor LIGHTGREY = TColor.newRGB(0.83f, 0.83f,
470
+ 0.83f);
471
+
472
+ /**
473
+ *
474
+ */
475
+ public static final ReadonlyTColor LIGHTPINK = TColor.newRGB(1.00f, 0.71f,
476
+ 0.76f);
477
+
478
+ /**
479
+ *
480
+ */
481
+ public static final ReadonlyTColor LIGHTSALMON = TColor.newRGB(1.00f,
482
+ 0.63f, 0.48f);
483
+
484
+ /**
485
+ *
486
+ */
487
+ public static final ReadonlyTColor LIGHTSEAGREEN = TColor.newRGB(0.13f,
488
+ 0.70f, 0.67f);
489
+
490
+ /**
491
+ *
492
+ */
493
+ public static final ReadonlyTColor LIGHTSKYBLUE = TColor.newRGB(0.53f,
494
+ 0.81f, 0.98f);
495
+
496
+ /**
497
+ *
498
+ */
499
+ public static final ReadonlyTColor LIGHTSLATEGRAY = TColor.newRGB(0.47f,
500
+ 0.53f, 0.60f);
501
+
502
+ /**
503
+ *
504
+ */
505
+ public static final ReadonlyTColor LIGHTSTEELBLUE = TColor.newRGB(0.69f,
506
+ 0.77f, 0.87f);
507
+
508
+ /**
509
+ *
510
+ */
511
+ public static final ReadonlyTColor LIGHTYELLOW = TColor.newRGB(1.00f,
512
+ 1.00f, 0.88f);
513
+
514
+ /**
515
+ *
516
+ */
517
+ public static final ReadonlyTColor LIME = TColor
518
+ .newRGB(0.00f, 1.00f, 0.00f);
519
+
520
+ /**
521
+ *
522
+ */
523
+ public static final ReadonlyTColor LIMEGREEN = TColor.newRGB(0.20f, 0.80f,
524
+ 0.20f);
525
+
526
+ /**
527
+ *
528
+ */
529
+ public static final ReadonlyTColor LINEN = TColor.newRGB(0.98f, 0.94f,
530
+ 0.90f);
531
+
532
+ /**
533
+ *
534
+ */
535
+ public static final ReadonlyTColor MAROON = TColor.newRGB(0.50f, 0.00f,
536
+ 0.00f);
537
+
538
+ /**
539
+ *
540
+ */
541
+ public static final ReadonlyTColor MEDIUMAQUAMARINE = TColor.newRGB(0.40f,
542
+ 0.80f, 0.67f);
543
+
544
+ /**
545
+ *
546
+ */
547
+ public static final ReadonlyTColor MEDIUMBLUE = TColor.newRGB(0.00f, 0.00f,
548
+ 0.80f);
549
+
550
+ /**
551
+ *
552
+ */
553
+ public static final ReadonlyTColor MEDIUMORCHID = TColor.newRGB(0.73f,
554
+ 0.33f, 0.83f);
555
+
556
+ /**
557
+ *
558
+ */
559
+ public static final ReadonlyTColor MEDIUMPURPLE = TColor.newRGB(0.58f,
560
+ 0.44f, 0.86f);
561
+
562
+ /**
563
+ *
564
+ */
565
+ public static final ReadonlyTColor MEDIUMSEAGREEN = TColor.newRGB(0.24f,
566
+ 0.70f, 0.44f);
567
+
568
+ /**
569
+ *
570
+ */
571
+ public static final ReadonlyTColor MEDIUMSLATEBLUE = TColor.newRGB(0.48f,
572
+ 0.41f, 0.93f);
573
+
574
+ /**
575
+ *
576
+ */
577
+ public static final ReadonlyTColor MEDIUMSPRINGGREEN = TColor.newRGB(0.00f,
578
+ 0.98f, 0.60f);
579
+
580
+ /**
581
+ *
582
+ */
583
+ public static final ReadonlyTColor MEDIUMTURQUOISE = TColor.newRGB(0.28f,
584
+ 0.82f, 0.80f);
585
+
586
+ /**
587
+ *
588
+ */
589
+ public static final ReadonlyTColor MEDIUMVIOLETRED = TColor.newRGB(0.78f,
590
+ 0.08f, 0.52f);
591
+
592
+ /**
593
+ *
594
+ */
595
+ public static final ReadonlyTColor MIDNIGHTBLUE = TColor.newRGB(0.10f,
596
+ 0.10f, 0.44f);
597
+
598
+ /**
599
+ *
600
+ */
601
+ public static final ReadonlyTColor MINTCREAM = TColor.newRGB(0.96f, 1.00f,
602
+ 0.98f);
603
+
604
+ /**
605
+ *
606
+ */
607
+ public static final ReadonlyTColor MISTYROSE = TColor.newRGB(1.00f, 0.89f,
608
+ 0.88f);
609
+
610
+ /**
611
+ *
612
+ */
613
+ public static final ReadonlyTColor MOCCASIN = TColor.newRGB(1.00f, 0.89f,
614
+ 0.71f);
615
+
616
+ /**
617
+ *
618
+ */
619
+ public static final ReadonlyTColor NAVAJOWHITE = TColor.newRGB(1.00f,
620
+ 0.87f, 0.68f);
621
+
622
+ /**
623
+ *
624
+ */
625
+ public static final ReadonlyTColor NAVY = TColor
626
+ .newRGB(0.00f, 0.00f, 0.50f);
627
+
628
+ /**
629
+ *
630
+ */
631
+ public static final ReadonlyTColor OLDLACE = TColor.newRGB(0.99f, 0.96f,
632
+ 0.90f);
633
+
634
+ /**
635
+ *
636
+ */
637
+ public static final ReadonlyTColor OLIVE = TColor.newRGB(0.50f, 0.50f,
638
+ 0.00f);
639
+
640
+ /**
641
+ *
642
+ */
643
+ public static final ReadonlyTColor OLIVEDRAB = TColor.newRGB(0.42f, 0.56f,
644
+ 0.14f);
645
+
646
+ /**
647
+ *
648
+ */
649
+ public static final ReadonlyTColor ORANGE = TColor.newRGB(1.00f, 0.65f,
650
+ 0.00f);
651
+
652
+ /**
653
+ *
654
+ */
655
+ public static final ReadonlyTColor ORANGERED = TColor.newRGB(1.00f, 0.27f,
656
+ 0.00f);
657
+
658
+ /**
659
+ *
660
+ */
661
+ public static final ReadonlyTColor ORCHID = TColor.newRGB(0.85f, 0.44f,
662
+ 0.84f);
663
+
664
+ /**
665
+ *
666
+ */
667
+ public static final ReadonlyTColor PALEGOLDENROD = TColor.newRGB(0.93f,
668
+ 0.91f, 0.67f);
669
+
670
+ /**
671
+ *
672
+ */
673
+ public static final ReadonlyTColor PALEGREEN = TColor.newRGB(0.60f, 0.98f,
674
+ 0.60f);
675
+
676
+ /**
677
+ *
678
+ */
679
+ public static final ReadonlyTColor PALETURQUOISE = TColor.newRGB(0.69f,
680
+ 0.93f, 0.93f);
681
+
682
+ /**
683
+ *
684
+ */
685
+ public static final ReadonlyTColor PALEVIOLETRED = TColor.newRGB(0.86f,
686
+ 0.44f, 0.58f);
687
+
688
+ /**
689
+ *
690
+ */
691
+ public static final ReadonlyTColor PAPAYAWHIP = TColor.newRGB(1.00f, 0.94f,
692
+ 0.84f);
693
+
694
+ /**
695
+ *
696
+ */
697
+ public static final ReadonlyTColor PEACHPUFF = TColor.newRGB(1.00f, 0.85f,
698
+ 0.73f);
699
+
700
+ /**
701
+ *
702
+ */
703
+ public static final ReadonlyTColor PERU = TColor
704
+ .newRGB(0.80f, 0.52f, 0.25f);
705
+
706
+ /**
707
+ *
708
+ */
709
+ public static final ReadonlyTColor PINK = TColor
710
+ .newRGB(1.00f, 0.75f, 0.80f);
711
+
712
+ /**
713
+ *
714
+ */
715
+ public static final ReadonlyTColor PLUM = TColor
716
+ .newRGB(0.87f, 0.63f, 0.87f);
717
+
718
+ /**
719
+ *
720
+ */
721
+ public static final ReadonlyTColor POWDERBLUE = TColor.newRGB(0.69f, 0.88f,
722
+ 0.90f);
723
+
724
+ /**
725
+ *
726
+ */
727
+ public static final ReadonlyTColor PURPLE = TColor.newRGB(0.50f, 0.00f,
728
+ 0.50f);
729
+
730
+ /**
731
+ *
732
+ */
733
+ public static final ReadonlyTColor RED = TColor.newRGB(1.00f, 0.00f, 0.00f);
734
+
735
+ /**
736
+ *
737
+ */
738
+ public static final ReadonlyTColor ROSYBROWN = TColor.newRGB(0.74f, 0.56f,
739
+ 0.56f);
740
+
741
+ /**
742
+ *
743
+ */
744
+ public static final ReadonlyTColor ROYALBLUE = TColor.newRGB(0.25f, 0.41f,
745
+ 0.88f);
746
+
747
+ /**
748
+ *
749
+ */
750
+ public static final ReadonlyTColor SADDLEBROWN = TColor.newRGB(0.55f,
751
+ 0.27f, 0.07f);
752
+
753
+ /**
754
+ *
755
+ */
756
+ public static final ReadonlyTColor SALMON = TColor.newRGB(0.98f, 0.50f,
757
+ 0.45f);
758
+
759
+ /**
760
+ *
761
+ */
762
+ public static final ReadonlyTColor SANDYBROWN = TColor.newRGB(0.96f, 0.64f,
763
+ 0.38f);
764
+
765
+ /**
766
+ *
767
+ */
768
+ public static final ReadonlyTColor SEAGREEN = TColor.newRGB(0.18f, 0.55f,
769
+ 0.34f);
770
+
771
+ /**
772
+ *
773
+ */
774
+ public static final ReadonlyTColor SEASHELL = TColor.newRGB(1.00f, 0.96f,
775
+ 0.93f);
776
+
777
+ /**
778
+ *
779
+ */
780
+ public static final ReadonlyTColor SIENNA = TColor.newRGB(0.63f, 0.32f,
781
+ 0.18f);
782
+
783
+ /**
784
+ *
785
+ */
786
+ public static final ReadonlyTColor SILVER = TColor.newRGB(0.75f, 0.75f,
787
+ 0.75f);
788
+
789
+ /**
790
+ *
791
+ */
792
+ public static final ReadonlyTColor SKYBLUE = TColor.newRGB(0.53f, 0.81f,
793
+ 0.92f);
794
+
795
+ /**
796
+ *
797
+ */
798
+ public static final ReadonlyTColor SLATEBLUE = TColor.newRGB(0.42f, 0.35f,
799
+ 0.80f);
800
+
801
+ /**
802
+ *
803
+ */
804
+ public static final ReadonlyTColor SLATEGRAY = TColor.newRGB(0.44f, 0.50f,
805
+ 0.56f);
806
+
807
+ /**
808
+ *
809
+ */
810
+ public static final ReadonlyTColor SNOW = TColor
811
+ .newRGB(1.00f, 0.98f, 0.98f);
812
+
813
+ /**
814
+ *
815
+ */
816
+ public static final ReadonlyTColor SPRINGGREEN = TColor.newRGB(0.00f,
817
+ 1.00f, 0.50f);
818
+
819
+ /**
820
+ *
821
+ */
822
+ public static final ReadonlyTColor STEELBLUE = TColor.newRGB(0.27f, 0.51f,
823
+ 0.71f);
824
+
825
+ /**
826
+ *
827
+ */
828
+ public static final ReadonlyTColor TAN = TColor.newRGB(0.82f, 0.71f, 0.55f);
829
+
830
+ /**
831
+ *
832
+ */
833
+ public static final ReadonlyTColor TEAL = TColor
834
+ .newRGB(0.00f, 0.50f, 0.50f);
835
+
836
+ /**
837
+ *
838
+ */
839
+ public static final ReadonlyTColor THISTLE = TColor.newRGB(0.85f, 0.75f,
840
+ 0.85f);
841
+
842
+ /**
843
+ *
844
+ */
845
+ public static final ReadonlyTColor TOMATO = TColor.newRGB(1.00f, 0.39f,
846
+ 0.28f);
847
+
848
+ /**
849
+ *
850
+ */
851
+ public static final ReadonlyTColor TRANSPARENT = TColor.newRGBA(0.00f,
852
+ 0.00f, 0.00f, 0.00f);
853
+
854
+ /**
855
+ *
856
+ */
857
+ public static final ReadonlyTColor TURQUOISE = TColor.newRGB(0.25f, 0.88f,
858
+ 0.82f);
859
+
860
+ /**
861
+ *
862
+ */
863
+ public static final ReadonlyTColor VIOLET = TColor.newRGB(0.93f, 0.51f,
864
+ 0.93f);
865
+
866
+ /**
867
+ *
868
+ */
869
+ public static final ReadonlyTColor WHEAT = TColor.newRGB(0.96f, 0.87f,
870
+ 0.07f);
871
+
872
+ /**
873
+ *
874
+ */
875
+ public static final ReadonlyTColor WHITE = TColor.newRGB(1.00f, 1.00f,
876
+ 1.00f);
877
+
878
+ /**
879
+ *
880
+ */
881
+ public static final ReadonlyTColor WHITESMOKE = TColor.newRGB(0.96f, 0.96f,
882
+ 0.96f);
883
+
884
+ /**
885
+ *
886
+ */
887
+ public static final ReadonlyTColor YELLOW = TColor.newRGB(1.00f, 1.00f,
888
+ 0.00f);
889
+
890
+ /**
891
+ *
892
+ */
893
+ public static final ReadonlyTColor YELLOWGREEN = TColor.newRGB(0.60f,
894
+ 0.80f, 0.20f);
895
+
896
+ /**
897
+ *
898
+ */
899
+ protected static final HashMap<String, ReadonlyTColor> namedColorMap = new HashMap<String, ReadonlyTColor>();
900
+
901
+ static {
902
+ Field[] fields = NamedColor.class.getDeclaredFields();
903
+ try {
904
+ for (Field f : fields) {
905
+ if (f.getType() == ReadonlyTColor.class) {
906
+ String id = f.getName();
907
+ namedColorMap.put(id, (ReadonlyTColor) f.get(null));
908
+ }
909
+ }
910
+ } catch (IllegalArgumentException e) {
911
+ e.printStackTrace();
912
+ } catch (IllegalAccessException e) {
913
+ e.printStackTrace();
914
+ }
915
+ }
916
+
917
+ /**
918
+ * Returns a color for the given name.
919
+ *
920
+ * @param name
921
+ * @return color or null, if name not found.
922
+ */
923
+ public static final ReadonlyTColor getForName(String name) {
924
+ return namedColorMap.get(name.toUpperCase());
925
+ }
926
+
927
+ /**
928
+ * Returns the names of all defined colors.
929
+ *
930
+ * @return list of name
931
+ */
932
+ public static final ArrayList<String> getNames() {
933
+ return new ArrayList<String>(namedColorMap.keySet());
934
+ }
935
+ }