toxiclibs 0.2-java → 0.5.0-java

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.
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,47 @@
1
+ require 'forwardable'
2
+
3
+ # The Nature of Code
4
+ # <http://www.shiffman.net/teaching/nature>
5
+ # Spring 2010
6
+ # Toxiclibs example: http://toxiclibs.org/
7
+
8
+ # Force directed graph
9
+ # Heavily based on: http://code.google.com/p/fidgen/
10
+ # A cluster is a grouping of Nodes
11
+ class Cluster
12
+ extend Forwardable
13
+ def_delegators(:@app, :stroke, :stroke_weight, :line, :physics)
14
+ attr_reader :nodes, :diameter
15
+
16
+ # We initialize a Cluster with a number of nodes, a diameter, and centerpoint
17
+ def initialize(n, d, center)
18
+ @app = $app
19
+ # Set the diameter
20
+ @diameter = d
21
+ # Create the nodes
22
+ @nodes = (0..n).map { Node.new(center.add(TVec2D.randomVector)) }
23
+ # Connect all the nodes with a Spring
24
+ nodes[0..nodes.size - 2].each_with_index do |ni, i|
25
+ nodes[i + 1..nodes.size - 1].each do |nj|
26
+ # A Spring needs two particles, a resting length, and a strength
27
+ physics.add_spring(Physics::VerletSpring2D.new(ni, nj, diameter, 0.01))
28
+ end
29
+ end
30
+ end
31
+
32
+ def display
33
+ # Show all the nodes
34
+ nodes.each(&:display)
35
+ end
36
+
37
+ # Draw all the internal connections
38
+ def show_connections
39
+ stroke(0, 150)
40
+ stroke_weight(2)
41
+ nodes[0..nodes.size - 2].each_with_index do |pi, i|
42
+ nodes[i + 1..nodes.size - 1].each do |pj|
43
+ line(pi.x, pi.y, pj.x, pj.y)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,27 @@
1
+ # The Nature of Code
2
+ # <http://www.shiffman.net/teaching/nature>
3
+ # Spring 2010
4
+ # Toxiclibs example: http://toxiclibs.org/
5
+
6
+ # Force directed graph
7
+ # Heavily based on: http://code.google.com/p/fidgen/
8
+
9
+ # Notice how we are using inheritance here!
10
+ # We could have just stored a reference to a VerletParticle object
11
+ # inside the Node class, but inheritance is a nice alternative
12
+ class Node < Physics::VerletParticle2D
13
+ extend Forwardable
14
+ def_delegators(:@app, :fill, :stroke, :stroke_weight, :ellipse)
15
+ def initialize(pos)
16
+ super(pos)
17
+ @app = $app
18
+ end
19
+
20
+ # All we're doing really is adding a :display function to a VerletParticle
21
+ def display
22
+ fill(0, 150)
23
+ stroke(0)
24
+ stroke_weight(2)
25
+ ellipse(x, y, 16, 16)
26
+ end
27
+ end
@@ -0,0 +1,60 @@
1
+ # The Nature of Code
2
+ # Daniel Shiffman
3
+ # http://natureofcode.com
4
+ # bare sketch run with k9 run simple_cluster.rb
5
+ # Force directed graph,
6
+ # heavily based on: http://code.google.com/p/fidgen/
7
+
8
+ require 'toxiclibs'
9
+ require_relative 'cluster'
10
+ require_relative 'node'
11
+ require 'forwardable'
12
+
13
+ attr_reader :physics, :cluster, :f, :show_physics, :show_particles
14
+
15
+ def settings
16
+ size(640, 360)
17
+ end
18
+
19
+ def setup
20
+ sketch_title 'Simple Cluster'
21
+ @f = createFont('Georgia', 12, true)
22
+ @show_physics = true
23
+ @show_particles = true
24
+ @show_physics = true
25
+ @show_particles = true
26
+ # Initialize the physics
27
+ @physics = Physics::VerletPhysics2D.new
28
+ @physics.set_world_bounds(Toxi::Rect.new(10, 10, width - 20, height - 20))
29
+ # Spawn a new random graph
30
+ @cluster = Cluster.new(8, 100, TVec2D.new(width / 2, height / 2))
31
+ end
32
+
33
+ def draw
34
+ # Update the physics world
35
+ physics.update
36
+ background(255)
37
+ # Display all points
38
+ cluster.display if show_particles
39
+ # If we want to see the physics
40
+ cluster.show_connections if show_physics
41
+ # Instructions
42
+ fill(0)
43
+ text_font(f)
44
+ text("'p' to display or hide particles\n'c' to display or hide connections\n'n' for new graph", 10, 20)
45
+ end
46
+
47
+ # Key press commands
48
+ def key_pressed
49
+ case key
50
+ when 'c'
51
+ @show_physics = !show_physics
52
+ @show_particles = true if show_physics
53
+ when 'p'
54
+ @show_particles = !show_particles
55
+ @show_particles = true unless show_physics
56
+ when 'n'
57
+ physics.clear
58
+ @cluster = Cluster.new(rand(3..20), rand(10..width / 2), TVec2D.new(width / 2, height / 2))
59
+ end
60
+ end
@@ -0,0 +1,45 @@
1
+ # The Nature of Code
2
+ # Daniel Shiffman
3
+ # http://natureofcode.com
4
+ class Blanket
5
+ extend Forwardable
6
+ def_delegators(:@app, :width)
7
+ attr_reader :particles, :springs, :physics
8
+
9
+ def initialize(physics)
10
+ @app = $app
11
+ @particles = []
12
+ @springs = []
13
+ w = 20
14
+ h = 20
15
+ len = 10
16
+ strength = 0.125
17
+ h.times do |y|
18
+ w.times do |x|
19
+ p = Particle.new(TVec2D.new(width / 2 + x * len - w * len / 2, y * len))
20
+ physics.add_particle(p)
21
+ particles << p
22
+ if x > 0
23
+ previous = particles[particles.size - 2]
24
+ c = Connection.new(p, previous, len, strength)
25
+ physics.add_spring(c)
26
+ springs << c
27
+ end
28
+ if y > 0
29
+ above = particles[particles.size - w - 1]
30
+ c = Connection.new(p, above, len, strength)
31
+ physics.add_spring(c)
32
+ springs << c
33
+ end
34
+ end
35
+ end
36
+ topleft = particles[0]
37
+ topleft.lock
38
+ topright = particles[w - 1]
39
+ topright.lock
40
+ end
41
+
42
+ def display
43
+ springs.each(&:display)
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ # The Nature of Code
2
+ # Daniel Shiffman
3
+ # http://natureofcode.com
4
+ class Connection < Physics::VerletSpring2D
5
+ extend Forwardable
6
+ def_delegators(:@app, :stroke, :line)
7
+ def initialize(p1, p2, len, strength)
8
+ super(p1, p2, len, strength)
9
+ @app = $app
10
+ end
11
+
12
+ def display
13
+ stroke(0)
14
+ line(a.x, a.y, b.x, b.y)
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ # The Nature of Code
2
+ # Daniel Shiffman
3
+ # http://natureofcode.com
4
+
5
+ # Notice how we are using inheritance here!
6
+ # We could have just stored a reference to a VerletParticle object
7
+ # inside the Particle class, but inheritance is a nice alternative
8
+ class Particle < Physics::VerletParticle2D
9
+ extend Forwardable
10
+ def_delegators(:@app, :fill, :stroke, :ellipse)
11
+ def initialize(loc)
12
+ super(loc)
13
+ @app = $app
14
+ end
15
+
16
+ # All we're doing really is adding a display function to a VerletParticle
17
+ def display
18
+ fill(175)
19
+ stroke(0)
20
+ ellipse(x, y, 16, 16)
21
+ end
22
+ end
@@ -0,0 +1,55 @@
1
+ # The Nature of Code
2
+ # Daniel Shiffman
3
+ # http://natureofcode.com
4
+ #
5
+ # This example is adapted from Karsten Schmidt's SoftBodySquare example
6
+ #
7
+ # <p>Softbody square demo is showing how to create a 2D square mesh out of
8
+ # verlet particles and make it stable enough to adef total structural
9
+ # deformation by including an inner skeleton.</p>
10
+ #
11
+ # <p>Usage: move mouse to drag/deform the square</p>
12
+ #
13
+ #
14
+ # Copyright (c) 2008-2009 Karsten Schmidt
15
+ #
16
+ # This demo & library is free software you can redistribute it and/or
17
+ # modify it under the terms of the GNU Lesser General Public
18
+ # License as published by the Free Software Foundation either
19
+ # version 2.1 of the License, or (at your option) any later version.
20
+ #
21
+ # http://creativecommons.org/licenses/LGPL/2.1/
22
+ #
23
+ # This library is distributed in the hope that it will be useful,
24
+ # but WITHOUT ANY WARRANTY without even the implied warranty of
25
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
+ # Lesser General Public License for more details.
27
+ #
28
+ # You should have received a copy of the GNU Lesser General Public
29
+ # License along with this library if not, write to the Free Software
30
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
31
+ #
32
+ require 'toxiclibs'
33
+ require 'forwardable'
34
+ require_relative 'blanket'
35
+ require_relative 'connection'
36
+ require_relative 'particle'
37
+
38
+ attr_reader :b, :physics
39
+
40
+ def settings
41
+ size 640, 360
42
+ end
43
+
44
+ def setup
45
+ sketch_title 'Soft Body Square'
46
+ @physics = Physics::VerletPhysics2D.new
47
+ physics.add_behavior(Physics::GravityBehavior2D.new(TVec2D.new(0, 0.1)))
48
+ @b = Blanket.new physics
49
+ end
50
+
51
+ def draw
52
+ background(255)
53
+ physics.update
54
+ b.display
55
+ end
Binary file
@@ -1,38 +1,97 @@
1
- require 'toxiclibs.jar'
1
+ if RUBY_PLATFORM == 'java'
2
+ require 'toxiclibs.jar'
3
+
4
+ def import_class_list(list, string)
5
+ list.each { |klass| java_import format(string, klass) }
6
+ end
2
7
 
3
- module Simulation
4
- include_package 'toxi.sim.automata'
5
- include_package 'toxi.sim.dla'
6
- include_package 'toxi.sim.erosion'
7
- include_package 'toxi.sim.fluids'
8
- include_package 'toxi.sim.grayscott'
9
- end
8
+ module Simulation
9
+ include_package 'toxi.sim.automata'
10
+ include_package 'toxi.sim.dla'
11
+ erosion = %w(ErosionFunction TalusAngleErosion ThermalErosion)
12
+ erosion_format = 'toxi.sim.erosion.%s'
13
+ import_class_list(erosion, erosion_format)
14
+ fluids = %w(FluidSolver2D FluidSolver3D)
15
+ fluids_format = 'toxi.sim.fluids.%s'
16
+ import_class_list(fluids, fluids_format)
17
+ java_import 'toxi.sim.grayscott.GrayScott'
18
+ end
10
19
 
11
- module Physics
12
- include_package 'toxi.physics2d.behaviors'
13
- include_package 'toxi.physics2d.constraints'
14
- include_package 'toxi.physics2d'
15
- include_package 'toxi.physics3d.behaviors'
16
- include_package 'toxi.physics3d.constraints'
17
- include_package 'toxi.physics3d'
18
- end
20
+ module Physics
21
+ behavior2d = %w(AttractionBehavior2D ConstantForceBehavior2D GravityBehavior2D ParticleBehavior2D)
22
+ behavior2d_format = 'toxi.physics2d.behaviors.%s'
23
+ import_class_list(behavior2d, behavior2d_format)
24
+ include_package 'toxi.physics2d.constraints'
25
+ include_package 'toxi.physics2d'
26
+ behavior3d = %w(AttractionBehavior3D ConstantForceBehavior3D GravityBehavior3D ParticleBehavior3D)
27
+ behavior3d_format = 'toxi.physics3d.behaviors.%s'
28
+ import_class_list(behavior3d, behavior3d_format)
29
+ include_package 'toxi.physics3d.constraints'
30
+ include_package 'toxi.physics3d'
31
+ end
19
32
 
20
- module Volume
21
- include_package 'toxi.volume'
22
- end
33
+ module Volume
34
+ include_package 'toxi.volume'
35
+ end
23
36
 
24
- module Toxi
25
- include_package 'toxi.color'
26
- include_package 'toxi.color.theory'
27
- include_package 'toxi.util.datatypes'
28
- include_package 'toxi.util.events'
29
- include_package 'toxi.geom'
30
- include_package 'toxi.geom.mesh'
31
- include_package 'toxi.geom.mesh.subdiv'
32
- include_package 'toxi.geom.nurbs'
33
- include_package 'toxi.math'
34
- end
37
+ module Toxi
38
+ include_package 'toxi.color'
39
+ include_package 'toxi.color.theory'
40
+ include_package 'toxi.util.datatypes'
41
+ java_import 'toxi.util.events.EventDispatcher'
42
+ utils = %w{DateUtils FileSequenceDescriptor FileUtils}
43
+ utils_format = 'toxi.util.%s'
44
+ import_class_list(utils, utils_format)
45
+ subdiv = %w(CentroidSubdiv DisplacementSubdivision DualDisplacementSubdivision
46
+ DualSubdivision EdgeLengthComparator FaceCountComparator
47
+ MidpointDisplacementSubdivision MidpointSubdiv MidpointSubdivision
48
+ NewSubdivStrategy NormalDisplacementSubdivision SubdivisionStrategy
49
+ TriSubdivision)
50
+ subdiv_format = 'toxi.geom.mesh.subdiv.%s'
51
+ import_class_list(subdiv, subdiv_format)
52
+ nurbs = %w(BasicNurbsCurve BasicNurbsSurface ControlNet CurveCreator CurveUtils
53
+ InterpolationException KnotVector NurbsCreator NurbsCurve NurbsMeshCreator
54
+ NurbsSurface)
55
+ nurbs_format = 'toxi.geom.nurbs.%s'
56
+ import_class_list(nurbs, nurbs_format)
57
+ include_package 'toxi.math'
58
+ geom = %w(AABB Axis3D AxisAlignedCylinder BernsteinPolynomial BezierCurve2D
59
+ BezierCurve3D BooleanShapeBuilder BoxIntersector Circle CircleIntersector
60
+ Cone ConvexPolygonClipper CoordinateExtractor Ellipse GMatrix GVector
61
+ GlobalGridTesselator GridTesselator Intersector2D Intersector3D IsectData2D
62
+ IsectData3D Line2D Line3D LineStrip2D LineStrip3D LocalGridTesselator Matrix3d
63
+ Matrix4f Matrix4x4 MatrixSizeException OctreeVisitor Origin3D Plane
64
+ PlaneIntersector PointCloud3D PointOctree PointQuadtree Polygon2D
65
+ PolygonClipper2D PolygonTesselator QuadtreeVisitor Quaternion Ray2D Ray3D
66
+ Ray3DIntersector ReadonlyVec2D ReadonlyVec3D ReadonlyVec4D Rect Reflector3D
67
+ Shape2D Shape3D SingularMatrixException SpatialBins SpatialIndex Sphere
68
+ SphereIntersectorReflector Spline2D Spline3D SutherlandHodgemanClipper
69
+ Triangle2D Triangle3D TriangleIntersector Vec2D Vec3D Vec4D VecMathUtil
70
+ XAxisCylinder YAxisCylinder ZAxisCylinder)
71
+ geom_format = 'toxi.geom.%s'
72
+ import_class_list(geom, geom_format)
73
+ end
74
+
75
+ module Gfx
76
+ include_package 'toxi.processing'
77
+ end
35
78
 
36
- module Gfx
37
- include_package 'toxi.processing'
79
+ # to disambiguate our own Vec2D and Vec3D we give new name to toxi versions
80
+ TVec2D = Toxi::Vec2D
81
+ TVec3D = Toxi::Vec3D
82
+ AABB = Toxi::AABB
83
+ volume = %w(AdditiveBrush ArrayIsoSurface BoxBrush BrushMode HashIsoSurface
84
+ IsoSurface MarchingCubesIndex MeshLatticeBuilder MeshVoxelizer
85
+ MultiplyBrush PeakBrush ReplaceBrush RoundBrush VolumetricBrush
86
+ VolumetricHashMap VolumetricSpace VolumetricSpaceArray)
87
+ volume_format = 'toxi.volume.%s'
88
+ import_class_list(volume, volume_format)
89
+ mesh = %w(BezierPatch BoxSelector DefaultSTLColorModel DefaultSelector Face
90
+ LaplacianSmooth MaterialiseSTLColorModel Mesh3D MeshIntersector OBJWriter
91
+ PLYWriter PlaneSelector STLColorModel STLReader STLWriter SphereFunction
92
+ SphericalHarmonics SuperEllipsoid SurfaceFunction SurfaceMeshBuilder
93
+ Terrain TriangleMesh Vertex VertexSelector WEFace WEMeshFilterStrategy
94
+ WETriangleMesh WEVertex WingedEdge)
95
+ mesh_format = 'toxi.geom.mesh.%s'
96
+ import_class_list(mesh, mesh_format)
38
97
  end
@@ -1,3 +1,3 @@
1
1
  module Toxiclibs
2
- VERSION = '0.2'
2
+ VERSION = '0.5.0'
3
3
  end
data/pom.xml ADDED
@@ -0,0 +1,122 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
+ <modelVersion>4.0.0</modelVersion>
4
+ <groupId>org.ruby-processing</groupId>
5
+ <artifactId>toxiclibs</artifactId>
6
+ <version>0.5.0</version>
7
+ <packaging>jar</packaging>
8
+ <description>
9
+ toxiclibs-library for JRubyArt
10
+ </description>
11
+
12
+ <parent>
13
+ <groupId>org.sonatype.oss</groupId>
14
+ <artifactId>oss-parent</artifactId>
15
+ <version>7</version>
16
+ </parent>
17
+
18
+ <issueManagement>
19
+ <system>Github</system>
20
+ <url>https://github.com/ruby-processing/toxiclibs/issues</url>
21
+ </issueManagement>
22
+
23
+ <scm>
24
+ <connection>scm:git:git://github.com/ruby-processing/toxiclibs.git</connection>
25
+ <developerConnection>scm:git:git@github.com:ruby-processing/toxiclibs.git</developerConnection>
26
+ <url>https://github.com/ruby-processing/toxiclibs</url>
27
+ </scm>
28
+
29
+ <licenses>
30
+ <license>
31
+ <name>'GPLv3'</name>
32
+ <url>http://www.opensource.org/licenses/gplv3.php</url>
33
+ </license>
34
+ </licenses>
35
+
36
+ <developers>
37
+ <developer>
38
+ <id>monkstone</id>
39
+ <name>Martin Prout</name>
40
+ <email>martin_p@lineone.net</email>
41
+ </developer>
42
+ </developers>
43
+
44
+ <dependencies>
45
+ <dependency>
46
+ <groupId>args4j</groupId>
47
+ <artifactId>args4j</artifactId>
48
+ <version>2.0.31</version>
49
+ </dependency>
50
+ <dependency>
51
+ <groupId>org.processing</groupId>
52
+ <artifactId>core</artifactId>
53
+ <scope>system</scope>
54
+ <version>3.0.1</version>
55
+ <systemPath>${processing.home}/core/library/core.jar</systemPath>
56
+ </dependency>
57
+ </dependencies>
58
+ <properties>
59
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
60
+ <maven.compiler.source>1.8</maven.compiler.source>
61
+ <maven.compiler.target>1.8</maven.compiler.target>
62
+ <!-- for Mac developers, non Archlinux and Windows can probably figure it out
63
+ <processing.home>/Applications/Processing.app/Contents/Java</processing.home>
64
+ -->
65
+ <processing.home>/usr/share/processing</processing.home>
66
+ </properties>
67
+ <build>
68
+ <sourceDirectory>src</sourceDirectory>
69
+ <finalName>toxiclibs</finalName>
70
+ <extensions>
71
+ <extension>
72
+ <groupId>org.apache.maven.wagon</groupId>
73
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
74
+ <version>2.1</version>
75
+ </extension>
76
+ </extensions>
77
+ <plugins>
78
+ <plugin>
79
+ <artifactId>maven-compiler-plugin</artifactId>
80
+ <version>3.1</version>
81
+ <configuration>
82
+ <source>1.8</source>
83
+ <target>1.8</target>
84
+ </configuration>
85
+ </plugin>
86
+ <plugin>
87
+ <artifactId>maven-jar-plugin</artifactId>
88
+ <version>2.4</version>
89
+ <configuration>
90
+ <archive>
91
+ <manifestFile>MANIFEST.MF</manifestFile>
92
+ </archive>
93
+ </configuration>
94
+ </plugin>
95
+ <plugin>
96
+ <artifactId>maven-resources-plugin</artifactId>
97
+ <version>2.6</version>
98
+ </plugin>
99
+ <plugin>
100
+ <groupId>org.apache.maven.plugins</groupId>
101
+ <artifactId>maven-dependency-plugin</artifactId>
102
+ <version>2.10</version>
103
+ <executions>
104
+ <execution>
105
+ <id>default-cli</id>
106
+ <configuration>
107
+ <artifactItems>
108
+ <artifactItem>
109
+ <groupId>args4j</groupId>
110
+ <artifactId>args4j</artifactId>
111
+ <version>2.0.31</version>
112
+ <type>jar</type>
113
+ <outputDirectory>lib</outputDirectory>
114
+ </artifactItem>
115
+ </artifactItems>
116
+ </configuration>
117
+ </execution>
118
+ </executions>
119
+ </plugin>
120
+ </plugins>
121
+ </build>
122
+ </project>