[pdal-commits] [PDAL/PDAL] fefe6b: Plugin framework refactoring

GitHub noreply at github.com
Thu Feb 26 08:14:00 PST 2015


  Branch: refs/heads/plugin-manager
  Home:   https://github.com/PDAL/PDAL
  Commit: fefe6b82cca59b41383401593476909c2029ad41
      https://github.com/PDAL/PDAL/commit/fefe6b82cca59b41383401593476909c2029ad41
  Author: Bradley J Chambers <brad.chambers at gmail.com>
  Date:   2015-02-26 (Thu, 26 Feb 2015)

  Changed paths:
    M apps/pdal.cpp
    M cmake/compiler_options.cmake
    M doc/tutorial/writing.rst
    M examples/writing/tutorial.cpp
    M filters/chipper/ChipperFilter.cpp
    M filters/chipper/ChipperFilter.hpp
    M filters/colorization/ColorizationFilter.cpp
    M filters/colorization/ColorizationFilter.hpp
    M filters/crop/CropFilter.cpp
    M filters/crop/CropFilter.hpp
    M filters/decimation/DecimationFilter.cpp
    M filters/decimation/DecimationFilter.hpp
    M filters/ferry/FerryFilter.cpp
    M filters/ferry/FerryFilter.hpp
    M filters/merge/CMakeLists.txt
    A filters/merge/MergeFilter.cpp
    M filters/merge/MergeFilter.hpp
    M filters/mortonorder/MortonOrderFilter.cpp
    M filters/mortonorder/MortonOrderFilter.hpp
    M filters/range/RangeFilter.cpp
    M filters/range/RangeFilter.hpp
    M filters/reprojection/ReprojectionFilter.cpp
    M filters/reprojection/ReprojectionFilter.hpp
    M filters/sort/CMakeLists.txt
    A filters/sort/SortFilter.cpp
    M filters/sort/SortFilter.hpp
    M filters/splitter/SplitterFilter.cpp
    M filters/splitter/SplitterFilter.hpp
    M filters/stats/StatsFilter.cpp
    M filters/stats/StatsFilter.hpp
    M filters/transformation/TransformationFilter.cpp
    M filters/transformation/TransformationFilter.hpp
    M include/pdal/BufferReader.hpp
    R include/pdal/Drivers.hpp
    M include/pdal/Filter.hpp
    R include/pdal/Filters.hpp
    M include/pdal/Kernel.hpp
    M include/pdal/KernelFactory.hpp
    R include/pdal/KernelInfo.hpp
    M include/pdal/KernelSupport.hpp
    R include/pdal/Kernels.hpp
    M include/pdal/PipelineManager.hpp
    M include/pdal/PipelineReader.hpp
    A include/pdal/PluginManager.hpp
    M include/pdal/Reader.hpp
    M include/pdal/Stage.hpp
    M include/pdal/StageFactory.hpp
    R include/pdal/StageInfo.hpp
    M include/pdal/Writer.hpp
    M include/pdal/pdal_macros.hpp
    A include/pdal/plugin.h
    M io/bpf/BpfReader.cpp
    M io/bpf/BpfReader.hpp
    M io/bpf/BpfWriter.cpp
    M io/bpf/BpfWriter.hpp
    M io/faux/FauxReader.cpp
    M io/faux/FauxReader.hpp
    M io/las/LasReader.cpp
    M io/las/LasReader.hpp
    M io/las/LasWriter.cpp
    M io/las/LasWriter.hpp
    M io/qfit/QfitReader.cpp
    M io/qfit/QfitReader.hpp
    M io/sbet/SbetReader.cpp
    M io/sbet/SbetReader.hpp
    M io/sbet/SbetWriter.cpp
    M io/sbet/SbetWriter.hpp
    M io/terrasolid/TerrasolidReader.cpp
    M io/terrasolid/TerrasolidReader.hpp
    M io/text/TextWriter.cpp
    M io/text/TextWriter.hpp
    M kernels/delta/DeltaKernel.cpp
    M kernels/delta/DeltaKernel.hpp
    M kernels/diff/DiffKernel.cpp
    M kernels/diff/DiffKernel.hpp
    M kernels/info/InfoKernel.cpp
    M kernels/info/InfoKernel.hpp
    M kernels/pipeline/PipelineKernel.cpp
    M kernels/pipeline/PipelineKernel.hpp
    M kernels/random/RandomKernel.cpp
    M kernels/random/RandomKernel.hpp
    M kernels/sort/SortKernel.cpp
    M kernels/sort/SortKernel.hpp
    M kernels/translate/TranslateKernel.cpp
    M kernels/translate/TranslateKernel.hpp
    M pdal_defines.h.in
    M plugins/CMakeLists.txt
    M plugins/attribute/filters/AttributeFilter.cpp
    M plugins/attribute/filters/AttributeFilter.hpp
    M plugins/cpd/kernel/Cpd.cpp
    M plugins/cpd/kernel/Cpd.hpp
    M plugins/cpd/test/CpdKernelTest.cpp
    M plugins/greyhound/io/GreyhoundReader.cpp
    M plugins/greyhound/io/GreyhoundReader.hpp
    M plugins/hexbin/filters/HexBin.cpp
    M plugins/hexbin/filters/HexBin.hpp
    M plugins/hexbin/test/HexbinFilterTest.cpp
    M plugins/icebridge/io/IcebridgeReader.cpp
    M plugins/icebridge/io/IcebridgeReader.hpp
    M plugins/icebridge/test/IcebridgeReaderTest.cpp
    M plugins/mrsid/io/MrsidReader.cpp
    M plugins/mrsid/io/MrsidReader.hpp
    M plugins/nitf/io/NitfReader.cpp
    M plugins/nitf/io/NitfReader.hpp
    M plugins/nitf/io/NitfWriter.cpp
    M plugins/nitf/io/NitfWriter.hpp
    M plugins/nitf/test/NitfReaderTest.cpp
    M plugins/nitf/test/NitfWriterTest.cpp
    M plugins/oci/io/OciReader.cpp
    M plugins/oci/io/OciReader.hpp
    M plugins/oci/io/OciWriter.cpp
    M plugins/oci/io/OciWriter.hpp
    M plugins/oci/test/OCITest.cpp
    M plugins/p2g/io/P2gWriter.cpp
    M plugins/p2g/io/P2gWriter.hpp
    M plugins/pcl/CMakeLists.txt
    M plugins/pcl/filters/GroundFilter.cpp
    M plugins/pcl/filters/GroundFilter.hpp
    M plugins/pcl/filters/PCLBlock.cpp
    M plugins/pcl/filters/PCLBlock.hpp
    M plugins/pcl/io/PCLVisualizer.cpp
    M plugins/pcl/io/PCLVisualizer.hpp
    M plugins/pcl/io/PcdReader.cpp
    M plugins/pcl/io/PcdReader.hpp
    M plugins/pcl/io/PcdWriter.cpp
    M plugins/pcl/io/PcdWriter.hpp
    M plugins/pcl/kernel/GroundKernel.cpp
    M plugins/pcl/kernel/GroundKernel.hpp
    M plugins/pcl/kernel/PCLKernel.cpp
    M plugins/pcl/kernel/PCLKernel.hpp
    M plugins/pcl/kernel/SmoothKernel.cpp
    M plugins/pcl/kernel/SmoothKernel.hpp
    M plugins/pcl/kernel/ViewKernel.cpp
    M plugins/pcl/kernel/ViewKernel.hpp
    M plugins/pcl/test/PCLBlockFilterTest.cpp
    M plugins/pgpointcloud/io/PgReader.cpp
    M plugins/pgpointcloud/io/PgReader.hpp
    M plugins/pgpointcloud/io/PgWriter.cpp
    M plugins/pgpointcloud/io/PgWriter.hpp
    M plugins/pgpointcloud/test/PgpointcloudWriterTest.cpp
    M plugins/python/filters/PredicateFilter.cpp
    M plugins/python/filters/PredicateFilter.hpp
    M plugins/python/filters/ProgrammableFilter.cpp
    M plugins/python/filters/ProgrammableFilter.hpp
    M plugins/python/test/PredicateFilterTest.cpp
    M plugins/python/test/ProgrammableFilterTest.cpp
    M plugins/rxp/io/RxpReader.cpp
    M plugins/rxp/io/RxpReader.hpp
    M plugins/sqlite/io/SQLiteReader.cpp
    M plugins/sqlite/io/SQLiteReader.hpp
    M plugins/sqlite/io/SQLiteWriter.cpp
    M plugins/sqlite/io/SQLiteWriter.hpp
    M plugins/sqlite/test/SQLiteTest.cpp
    M src/CMakeLists.txt
    A src/DynamicLibrary.cpp
    A src/DynamicLibrary.h
    M src/Kernel.cpp
    M src/KernelFactory.cpp
    R src/KernelInfo.cpp
    M src/KernelSupport.cpp
    M src/PipelineManager.cpp
    M src/PipelineReader.cpp
    A src/PluginManager.cpp
    M src/Stage.cpp
    M src/StageFactory.cpp
    R src/StageInfo.cpp
    M test/unit/LogTest.cpp
    M test/unit/OptionsTest.cpp
    M test/unit/PipelineManagerTest.cpp
    M test/unit/filters/CropFilterTest.cpp
    M test/unit/filters/DecimationFilterTest.cpp
    M test/unit/filters/FerryFilterTest.cpp
    M test/unit/filters/RangeFilterTest.cpp
    M test/unit/filters/SplitterTest.cpp
    M test/unit/filters/StatsFilterTest.cpp
    M test/unit/filters/TransformationFilterTest.cpp
    M test/unit/io/faux/FauxReaderTest.cpp
    M test/unit/io/qfit/QFITReaderTest.cpp
    M test/unit/io/sbet/SbetWriterTest.cpp

  Log Message:
  -----------
  Plugin framework refactoring

This commit adds a new PluginManager that controls loading of all plugins,
regardless of type (kernel vs. stage, static vs. shared). Subsequently, the
StageFactory and KernelFactory classes are greatly simplified as there was
significant redundant code. Macros are provided to simplify creation of each
type of plugin, but are not explicitly required. Each plugin registers it's
name, description, link, type, and will soon include a version.

Dropped program_options in pdal.cpp and added ability to selectively load
plugin types (or none at all).


  Commit: cb4ea8c945650fc680faa9844bc0b24a2d66b50c
      https://github.com/PDAL/PDAL/commit/cb4ea8c945650fc680faa9844bc0b24a2d66b50c
  Author: Bradley J Chambers <brad.chambers at gmail.com>
  Date:   2015-02-26 (Thu, 26 Feb 2015)

  Changed paths:
    M apps/pdal.cpp
    M include/pdal/KernelSupport.hpp
    M include/pdal/PipelineManager.hpp
    M include/pdal/PipelineReader.hpp
    M include/pdal/Stage.hpp
    M include/pdal/StageRunner.hpp
    M include/pdal/Writer.hpp
    M kernels/delta/DeltaKernel.cpp
    M kernels/diff/DiffKernel.cpp
    M kernels/info/InfoKernel.cpp
    M kernels/info/InfoKernel.hpp
    M kernels/pipeline/PipelineKernel.cpp
    M kernels/random/RandomKernel.cpp
    M kernels/sort/SortKernel.cpp
    M kernels/sort/SortKernel.hpp
    M kernels/translate/TranslateKernel.cpp
    M kernels/translate/TranslateKernel.hpp
    M plugins/cpd/kernel/Cpd.cpp
    M plugins/cpd/test/CpdKernelTest.cpp
    M plugins/hexbin/test/HexbinFilterTest.cpp
    M plugins/nitf/test/NitfReaderTest.cpp
    M plugins/nitf/test/NitfWriterTest.cpp
    M plugins/pcl/kernel/GroundKernel.cpp
    M plugins/pcl/kernel/GroundKernel.hpp
    M plugins/pcl/kernel/PCLKernel.cpp
    M plugins/pcl/kernel/PCLKernel.hpp
    M plugins/pcl/kernel/SmoothKernel.cpp
    M plugins/pcl/kernel/SmoothKernel.hpp
    M plugins/pcl/kernel/ViewKernel.cpp
    M plugins/pcl/kernel/ViewKernel.hpp
    M plugins/pcl/test/PCLBlockFilterTest.cpp
    M plugins/python/test/PredicateFilterTest.cpp
    M plugins/python/test/ProgrammableFilterTest.cpp
    M src/Kernel.cpp
    M src/KernelSupport.cpp
    M src/PipelineManager.cpp
    M src/PipelineReader.cpp
    M src/PipelineWriter.cpp
    M src/Stage.cpp
    M src/StageFactory.cpp
    M test/unit/LogTest.cpp
    M test/unit/OptionsTest.cpp
    M test/unit/PipelineManagerTest.cpp
    M test/unit/SpatialReferenceTest.cpp
    M test/unit/StageTester.hpp
    M test/unit/apps/pc2pcTest.cpp
    M test/unit/filters/ChipperTest.cpp
    M test/unit/filters/ColorizationFilterTest.cpp
    M test/unit/filters/CropFilterTest.cpp
    M test/unit/filters/DecimationFilterTest.cpp
    M test/unit/filters/FerryFilterTest.cpp
    M test/unit/filters/RangeFilterTest.cpp
    M test/unit/filters/SortFilterTest.cpp
    M test/unit/filters/SplitterTest.cpp
    M test/unit/filters/StatsFilterTest.cpp
    M test/unit/filters/TransformationFilterTest.cpp
    M test/unit/io/bpf/BPFTest.cpp
    M test/unit/io/buffer/BufferTest.cpp
    M test/unit/io/faux/FauxReaderTest.cpp
    M test/unit/io/las/LasReaderTest.cpp
    M test/unit/io/las/LasWriterTest.cpp
    M test/unit/io/qfit/QFITReaderTest.cpp
    M test/unit/io/sbet/SbetReaderTest.cpp
    M test/unit/io/sbet/SbetWriterTest.cpp

  Log Message:
  -----------
  move from naked Stage pointers to shared_ptr


  Commit: ecc885ab8b99f342aeec3c7154f0b5b2ebe62308
      https://github.com/PDAL/PDAL/commit/ecc885ab8b99f342aeec3c7154f0b5b2ebe62308
  Author: Bradley J Chambers <brad.chambers at gmail.com>
  Date:   2015-02-26 (Thu, 26 Feb 2015)

  Changed paths:
    M apps/pdal.cpp
    M include/pdal/Kernel.hpp
    M kernels/delta/DeltaKernel.cpp
    M kernels/delta/DeltaKernel.hpp
    M kernels/diff/DiffKernel.cpp
    M kernels/diff/DiffKernel.hpp
    M kernels/info/InfoKernel.cpp
    M kernels/info/InfoKernel.hpp
    M kernels/pipeline/PipelineKernel.cpp
    M kernels/pipeline/PipelineKernel.hpp
    M kernels/random/RandomKernel.cpp
    M kernels/random/RandomKernel.hpp
    M kernels/sort/SortKernel.cpp
    M kernels/sort/SortKernel.hpp
    M kernels/translate/TranslateKernel.cpp
    M kernels/translate/TranslateKernel.hpp
    M plugins/cpd/kernel/Cpd.cpp
    M plugins/cpd/kernel/Cpd.hpp
    M plugins/nitf/test/NitfReaderTest.cpp
    M plugins/pcl/kernel/GroundKernel.cpp
    M plugins/pcl/kernel/GroundKernel.hpp
    M plugins/pcl/kernel/PCLKernel.cpp
    M plugins/pcl/kernel/PCLKernel.hpp
    M plugins/pcl/kernel/SmoothKernel.cpp
    M plugins/pcl/kernel/SmoothKernel.hpp
    M plugins/pcl/kernel/ViewKernel.cpp
    M plugins/pcl/kernel/ViewKernel.hpp
    M plugins/rxp/test/RxpReaderTest.cpp
    M src/Kernel.cpp
    M test/unit/MetadataTest.cpp
    M test/unit/PointBufferTest.cpp
    M test/unit/io/las/LasWriterTest.cpp

  Log Message:
  -----------
  remove getDescription, provide getName for kernel


  Commit: 232f72b08151c64e81db3e40cc4c28328490b5ec
      https://github.com/PDAL/PDAL/commit/232f72b08151c64e81db3e40cc4c28328490b5ec
  Author: Bradley J Chambers <brad.chambers at gmail.com>
  Date:   2015-02-26 (Thu, 26 Feb 2015)

  Changed paths:
    M filters/merge/CMakeLists.txt
    M filters/sort/CMakeLists.txt
    M kernels/random/RandomKernel.cpp
    M kernels/random/RandomKernel.hpp
    M src/PipelineReader.cpp
    M test/unit/MetadataTest.cpp
    M test/unit/PipelineManagerTest.cpp

  Log Message:
  -----------
  cleanup, more naked Stage pointers in commented code


  Commit: 6a90b62517eba3144b2a70f42c6a1adbbba00f20
      https://github.com/PDAL/PDAL/commit/6a90b62517eba3144b2a70f42c6a1adbbba00f20
  Author: Bradley J Chambers <brad.chambers at gmail.com>
  Date:   2015-02-26 (Thu, 26 Feb 2015)

  Changed paths:
    M filters/chipper/ChipperFilter.cpp
    M filters/colorization/ColorizationFilter.cpp
    M filters/crop/CropFilter.cpp
    M filters/decimation/DecimationFilter.cpp
    M filters/ferry/FerryFilter.cpp
    M filters/merge/MergeFilter.cpp
    M filters/mortonorder/MortonOrderFilter.cpp
    M filters/range/RangeFilter.cpp
    M filters/reprojection/ReprojectionFilter.cpp
    M filters/sort/SortFilter.cpp
    M filters/splitter/SplitterFilter.cpp
    M filters/stats/StatsFilter.cpp
    M filters/transformation/TransformationFilter.cpp
    M include/pdal/PluginManager.hpp
    M include/pdal/pdal_macros.hpp
    M include/pdal/plugin.h
    M io/bpf/BpfReader.cpp
    M io/bpf/BpfWriter.cpp
    M io/faux/FauxReader.cpp
    M io/las/LasReader.cpp
    M io/las/LasWriter.cpp
    M io/qfit/QfitReader.cpp
    M io/sbet/SbetReader.cpp
    M io/sbet/SbetWriter.cpp
    M io/terrasolid/TerrasolidReader.cpp
    M io/text/TextWriter.cpp
    M kernels/delta/DeltaKernel.cpp
    M kernels/diff/DiffKernel.cpp
    M kernels/info/InfoKernel.cpp
    M kernels/pipeline/PipelineKernel.cpp
    M kernels/random/RandomKernel.cpp
    M kernels/sort/SortKernel.cpp
    M kernels/translate/TranslateKernel.cpp
    M plugins/attribute/filters/AttributeFilter.cpp
    M plugins/cpd/kernel/Cpd.cpp
    M plugins/greyhound/io/GreyhoundReader.cpp
    M plugins/hexbin/filters/HexBin.cpp
    M plugins/icebridge/io/IcebridgeReader.cpp
    M plugins/mrsid/io/MrsidReader.cpp
    M plugins/nitf/io/NitfReader.cpp
    M plugins/nitf/io/NitfWriter.cpp
    M plugins/oci/io/OciReader.cpp
    M plugins/oci/io/OciWriter.cpp
    M plugins/p2g/io/P2gWriter.cpp
    M plugins/pcl/filters/GroundFilter.cpp
    M plugins/pcl/filters/PCLBlock.cpp
    M plugins/pcl/io/PCLVisualizer.cpp
    M plugins/pcl/io/PcdReader.cpp
    M plugins/pcl/io/PcdWriter.cpp
    M plugins/pcl/kernel/GroundKernel.cpp
    M plugins/pcl/kernel/PCLKernel.cpp
    M plugins/pcl/kernel/SmoothKernel.cpp
    M plugins/pcl/kernel/ViewKernel.cpp
    M plugins/pgpointcloud/io/PgReader.cpp
    M plugins/pgpointcloud/io/PgWriter.cpp
    M plugins/python/filters/PredicateFilter.cpp
    M plugins/python/filters/ProgrammableFilter.cpp
    M plugins/rxp/io/RxpReader.cpp
    M plugins/sqlite/io/SQLiteReader.cpp
    M plugins/sqlite/io/SQLiteWriter.cpp
    M src/PluginManager.cpp

  Log Message:
  -----------
  each plugin registers and API version it is built against to check for compatibility


Compare: https://github.com/PDAL/PDAL/compare/329cc80d7ac8...6a90b62517eb


More information about the pdal-commits mailing list