PDAL/PDAL — pull request #532 by chambbj (2014-10-20 15:42:34+00:00)
Title: Isolate plugins and their dependencies, starting with PCL. Create Kernel class for kernel plugins.

* A plugins folder has been created for PCL (and other) plugins. All plugins are now built via the existing plugin framework (i.e., as shared libs that are registered at runtime). Plugins will link against PDAL, but PDAL can be built independently of any plugin dependencies.

* References to PDAL_HAVE_PCL have generally been removed, as PCL-dependent code should only be encountered within the PCL plugin directory, and only after PCL has been detected. Within PDAL, prior checks for PDAL_HAVE_PCL have been replaced by queries of getFilterCreator (also Reader, Writer, Kernel), which has been made public in StageFactory. These sections of code are only encountered when plugins have been determined to be present at runtime.

Remaining todos (these can be addressed post-merge)...

* Visualization option only displays output buffer for now. Displaying the input and output buffers would force a PCL requirement on PDAL. Still need to think through how to pass multiple buffers to the existing PCLVisualizer driver (writers typically only have one buffer).

* PCL unit tests pass with a warning if PCL plugins are not installed - though we should still move PCL tests to the plugin folder.

Other miscellaneous, but noteworthy changes include...

* In FileUtils and StageFactory, assume that if the filename start with http, we are passing a Greyhound url. This is independent of the plugins changes, but allows us to import data from Greyhound.

* Remove stubs.

* Remove Application class, it is now part of Kernel.

* VoxelGrid removed from decimation filter, now called via PCLBlock (if available) in Translate kernel.

* Unit tests binpath updated for APP_BUNDLE builds.

* Add MovingLeastSquares to PCL pipeline and Smooth kernel.

* Disable NormalEstimation and ConditionalRemoval in PCL pipeline (allows us to stick with POINT_XYZ types).

* Remove PCL from getVersionString.

* Remove references to USE_PDAL_PLUGIN_PCD.