[pdal-commits] [PDAL/PDAL] 013eba: Plugin framework refactoring

GitHub noreply at github.com
Wed Feb 11 09:16:36 PST 2015


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

  Changed paths:
    M apps/pdal.cpp
    M cmake/compiler_options.cmake
    M doc/tutorial/writing.rst
    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/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
    M include/pdal/Drivers.hpp
    M include/pdal/Kernel.hpp
    M include/pdal/KernelFactory.hpp
    R include/pdal/KernelInfo.hpp
    R include/pdal/Kernels.hpp
    A include/pdal/PluginManager.hpp
    M include/pdal/Stage.hpp
    M include/pdal/StageFactory.hpp
    M 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/icebridge/io/IcebridgeReader.cpp
    M plugins/icebridge/io/IcebridgeReader.hpp
    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/oci/io/OciReader.cpp
    M plugins/oci/io/OciReader.hpp
    M plugins/oci/io/OciWriter.cpp
    M plugins/oci/io/OciWriter.hpp
    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/python/filters/PredicateFilter.cpp
    M plugins/python/filters/PredicateFilter.hpp
    M plugins/python/filters/ProgrammableFilter.cpp
    M plugins/python/filters/ProgrammableFilter.hpp
    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 src/CMakeLists.txt
    A src/DynamicLibrary.cpp
    A src/DynamicLibrary.h
    M src/Kernel.cpp
    M src/KernelFactory.cpp
    R src/KernelInfo.cpp
    A src/PluginManager.cpp
    M src/StageFactory.cpp
    M src/StageInfo.cpp
    M test/unit/LogTest.cpp
    M test/unit/OptionsTest.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).




More information about the pdal-commits mailing list