[pdal-commits] [PDAL/PDAL] 0e5e53: Plugin framework refactoring

GitHub noreply at github.com
Tue Mar 10 08:42:25 PDT 2015


  Branch: refs/heads/master
  Home:   https://github.com/PDAL/PDAL
  Commit: 0e5e53df49f5fa7d531affa33017847a353eb61f
      https://github.com/PDAL/PDAL/commit/0e5e53df49f5fa7d531affa33017847a353eb61f
  Author: Andrew Bell <andrew.bell.ia at gmail.com>
  Date:   2015-03-10 (Tue, 10 Mar 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/Utils.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/optech/OptechReader.cpp
    M io/optech/OptechReader.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/rxp/test/RxpReaderTest.cpp
    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
    M src/PipelineWriter.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/MetadataTest.cpp
    M test/unit/OptionsTest.cpp
    M test/unit/PipelineManagerTest.cpp
    M test/unit/PointBufferTest.cpp
    M test/unit/SpatialReferenceTest.cpp
    M test/unit/StageTester.hpp
    M test/unit/UtilsTest.cpp
    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/optech/OptechReaderTest.cpp
    M test/unit/io/qfit/QFITReaderTest.cpp
    M test/unit/io/sbet/SbetReaderTest.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).

Attempted to unify use of Stage - references where possible, raw pointers
otherwise.




More information about the pdal-commits mailing list