diff --git a/Testing/Code/BasicFilters/CMakeLists.txt b/Testing/Code/BasicFilters/CMakeLists.txt index 8397a657cca112920f3b03d1a1f61ecd1083d392..6aaa8c665aaa47e9c0a5459162bfae2a55a4f4c3 100644 --- a/Testing/Code/BasicFilters/CMakeLists.txt +++ b/Testing/Code/BasicFilters/CMakeLists.txt @@ -2007,6 +2007,24 @@ ADD_TEST(bfTuVectorDataToRandomLineGenerator ${BASICFILTERS_TESTS14} ) +# ----------------------- otbConcatenateVectorDataFilter ----------------------- + +ADD_TEST(bfTuConcatenateVectorDataFilterNew ${BASICFILTERS_TESTS14} + otbConcatenateVectorDataFilterNew +) + +ADD_TEST(bfTvConcatenateVectorDataFilter ${BASICFILTERS_TESTS14} + --compare-ogr ${NOTOL} + ${BASELINE_FILES}/otbConcatenateVectorDataFilter_Output.shp + ${TEMP}/otbConcatenateVectorDataFilter_Output.shp + otbConcatenateVectorDataFilter + -in ${INPUTDATA}/france_coastline.shp + ${INPUTDATA}/waterways.shp + -out ${TEMP}/otbConcatenateVectorDataFilter_Output.shp +) + + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ otbBasicFiltersTests15 ~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2327,6 +2345,7 @@ otbConnectedComponentMuParserFunctorTest.cxx otbLabelObjectOpeningMuParserFilterNew.cxx otbLabelObjectOpeningMuParserFilterTest.cxx otbVectorDataToRandomLineGenerator.cxx +otbConcatenateVectorDataFilter.cxx ) IF(OTB_DATA_USE_LARGEINPUT) SET(BasicFilters_SRCS15 diff --git a/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx b/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx index d0c1ae66a535a7f23a977af29f8e92b6ef1afa40..847960f621ee7435e2b7ac64e6556dc9dcc6f8ba 100644 --- a/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx +++ b/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx @@ -28,5 +28,6 @@ void RegisterTests() REGISTER_TEST(otbLabelObjectOpeningMuParserFilterNew); REGISTER_TEST(otbLabelObjectOpeningMuParserFilterTest); REGISTER_TEST(otbVectorDataToRandomLineGeneratorNew); - REGISTER_TEST(otbVectorDataToRandomLineGenerator); + REGISTER_TEST(otbConcatenateVectorDataFilterNew); + REGISTER_TEST(otbConcatenateVectorDataFilter); } diff --git a/Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx b/Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx new file mode 100644 index 0000000000000000000000000000000000000000..a2c53a9ddff41c7faaae4b11966367cd32155115 --- /dev/null +++ b/Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx @@ -0,0 +1,87 @@ +/*========================================================================= + + Program: ORFEO Toolbox + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. + See OTBCopyright.txt for details. + + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + +#include "otbCommandLineArgumentParser.h" + +// Images +#include "otbVectorData.h" +#include "otbVectorDataFileReader.h" +#include "otbVectorDataFileWriter.h" + +// Concatener +#include "otbConcatenateVectorDataFilter.h" + + +typedef otb::VectorData<> VectorDataType; +typedef otb::VectorDataFileReader<VectorDataType> ReaderType; +typedef otb::VectorDataFileWriter<VectorDataType> WriterType; +typedef otb::ConcatenateVectorDataFilter<VectorDataType> ConcatenateFilterType; + +int otbConcatenateVectorDataFilterNew (int argc, char * argv[]) +{ + ConcatenateFilterType::Pointer concatenate = ConcatenateFilterType::New(); + return EXIT_SUCCESS; +} + +int otbConcatenateVectorDataFilter (int argc, char * argv[]) +{ + // Parse command line parameters + typedef otb::CommandLineArgumentParser ParserType; + ParserType::Pointer parser = ParserType::New(); + parser->AddOptionNParams("--InputVectorDatas","Input VectorDatas to concatenate ", "-in", true); + parser->AddOption("--OutputVectorData","Output concatenated VectorData","-out",true); + + typedef otb::CommandLineArgumentParseResult ParserResultType; + ParserResultType::Pointer parseResult = ParserResultType::New(); + + try + { + parser->ParseCommandLine(argc,argv,parseResult); + } + catch ( itk::ExceptionObject & err ) + { + return EXIT_FAILURE; + } + + + // Get number of input vectorDatas + unsigned int nbInputs = parseResult->GetNumberOfParameters("--InputVectorDatas"); + + // Instanciate a concatenate filter + // Concatenate the vector datas + ConcatenateFilterType::Pointer concatenate = ConcatenateFilterType::New(); + + for (unsigned int idx = 0; idx < nbInputs; idx++) + { + // Reader object + ReaderType::Pointer reader = ReaderType::New(); + //std::cout << << std::endl; + reader->SetFileName(parseResult->GetParameterString("--InputVectorDatas",idx )); + reader->Update(); + + concatenate->AddInput(reader->GetOutput()); + } + + // Write the output + WriterType::Pointer writer = WriterType::New(); + writer->SetFileName(parseResult->GetParameterString("--OutputVectorData")); + writer->SetInput(concatenate->GetOutput()); + writer->Update(); + + return EXIT_SUCCESS; +}