Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Added documentation to the GeoTiff* files #1560
These functions implement the interface methods of
MappleTile extends MacroMappableTile (https://github.com/geotrellis/geotrellis/blob/master/raster/src/main/scala/geotrellis/raster/MappableTile.scala#L8), and the implementation of function parameters that take more than 2 args is called via a macro (https://github.com/geotrellis/geotrellis/blob/master/raster/src/main/scala/geotrellis/raster/MappableTile.scala#L15). The IterableTile does a similar thing.
The macro methods create implementations of
We don't need this crazy Macro business for function parameters with 2 or less parameters because of specialization. See how Function2 has specialized type params (https://github.com/scala/scala/blob/2.12.x/src/library/scala/Function2.scala#L29), but Function3 does not (https://github.com/scala/scala/blob/2.12.x/src/library/scala/Function3.scala#L16). Specialization is a weird and complex topic; here's an article dealing with specialization: http://axel22.github.io/2013/11/03/specialization-quirks.html
Macros are another heavy topic. Here's some docs on them: http://docs.scala-lang.org/overviews/macros/overview.html
Let me know if you have followup questions after trying to digest some of that stuff.