From eb6f1f355f3ca5c95d032e77182c31ee8ee33010 Mon Sep 17 00:00:00 2001 From: Otmane Lahlou <otmane.lahlou@c-s.fr> Date: Mon, 10 Jan 2011 11:45:46 +0100 Subject: [PATCH] ENH : add accessor to font filename and specify it in the tests --- Code/Common/otbVectorDataToImageFilter.h | 7 +++++++ Code/Common/otbVectorDataToImageFilter.txx | 7 +++---- Testing/Code/Common/CMakeLists.txt | 3 +++ Testing/Code/Common/otbVectorDataToImageFilter.cxx | 5 +++-- .../Code/Common/otbVectorDataToImageFilterSensorModel.cxx | 7 +++++-- Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx | 7 +++++-- 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Code/Common/otbVectorDataToImageFilter.h b/Code/Common/otbVectorDataToImageFilter.h index 6c601d82de..f4e0a429ea 100644 --- a/Code/Common/otbVectorDataToImageFilter.h +++ b/Code/Common/otbVectorDataToImageFilter.h @@ -144,6 +144,10 @@ public: itkSetMacro(RenderingStyleType, RenderingStyleType); itkGetMacro(RenderingStyleType, RenderingStyleType); + /** Add accessors to the font filename */ + itkSetStringMacro(FontFileName); + itkGetStringMacro(FontFileName); + protected: /** Constructor */ VectorDataToImageFilter(); @@ -172,6 +176,9 @@ private: mapnik::Map m_Map; + // font file name + std::string m_FontFileName; + //This factor is used to flip the data on the Y axis when using a //sensor model geometry (where the Y coordinate increases top-down) int m_SensorModelFlip; diff --git a/Code/Common/otbVectorDataToImageFilter.txx b/Code/Common/otbVectorDataToImageFilter.txx index b2bdc59406..8eadeb5843 100644 --- a/Code/Common/otbVectorDataToImageFilter.txx +++ b/Code/Common/otbVectorDataToImageFilter.txx @@ -209,10 +209,9 @@ VectorDataToImageFilter<TVectorData, TImage> Superclass::BeforeThreadedGenerateData(); -#ifndef WIN32 - mapnik::freetype_engine::register_font("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf"); -#endif - + if(!m_FontFileName.empty()) + mapnik::freetype_engine::register_font(m_FontFileName); + //Load the OSM styles using helper class otb::VectorDataStyle::Pointer styleLoader = otb::VectorDataStyle::New(); styleLoader->SetScaleFactor(m_ScaleFactor); diff --git a/Testing/Code/Common/CMakeLists.txt b/Testing/Code/Common/CMakeLists.txt index 3154ff0882..ad08b57847 100644 --- a/Testing/Code/Common/CMakeLists.txt +++ b/Testing/Code/Common/CMakeLists.txt @@ -788,6 +788,7 @@ ADD_TEST(coTvVectorDataToImageFilter ${COMMON_TESTS9} otbVectorDataToImageFilter ${LARGEINPUT}/VECTOR/MidiPyrenees/roads.shp ${TEMP}/coTvVectorDataToImageFilter.png + ${BASELINE_FILES}/DejaVuSans.ttf # font ) ENDIF(OTB_DATA_USE_LARGEINPUT) @@ -801,6 +802,7 @@ ADD_TEST(coTvVectorDataToImageFilterSensorModel ${COMMON_TESTS9} ${LARGEINPUT}/VECTOR/MidiPyrenees/roads.shp ${LARGEINPUT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN/02APR01105228-P1BS-000000128955_01_P001.TIF ${TEMP}/coTvVectorDataToImageFilterSensorModel.png + ${BASELINE_FILES}/DejaVuSans.ttf # font ) ENDIF(OTB_DATA_USE_LARGEINPUT) @@ -815,6 +817,7 @@ ADD_TEST(coTvVectorDataToImageFilterWorld ${COMMON_TESTS9} 500 500 #Size -20 60 #lon/lat 0.1 -0.1 #spacing lon/lat + ${BASELINE_FILES}/DejaVuSans.ttf # font ) diff --git a/Testing/Code/Common/otbVectorDataToImageFilter.cxx b/Testing/Code/Common/otbVectorDataToImageFilter.cxx index e554918abd..90b5a71b36 100644 --- a/Testing/Code/Common/otbVectorDataToImageFilter.cxx +++ b/Testing/Code/Common/otbVectorDataToImageFilter.cxx @@ -31,9 +31,9 @@ int otbVectorDataToImageFilter(int argc, char * argv[]) { - if (argc < 3) + if (argc < 4) { - std::cout << argv[0] << " <input vector filename> <input image filename>" << std::endl; + std::cout << argv[0] << " <input vector filename> <input image filename> <font filename>" << std::endl; return EXIT_FAILURE; } @@ -92,6 +92,7 @@ int otbVectorDataToImageFilter(int argc, char * argv[]) vectorDataRendering->SetSize(size); vectorDataRendering->SetOrigin(origin); vectorDataRendering->SetSpacing(spacing); + vectorDataRendering->SetFontFileName(argv[3]); vectorDataRendering->AddStyle("minor-roads-casing"); #ifndef WIN32 vectorDataRendering->AddStyle("roads-text"); diff --git a/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx b/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx index 39ebb2a5c0..d38b669c5a 100644 --- a/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx +++ b/Testing/Code/Common/otbVectorDataToImageFilterSensorModel.cxx @@ -32,10 +32,12 @@ int otbVectorDataToImageFilterSensorModel(int argc, char * argv[]) { - if (argc < 4) + if (argc < 5) { std::cout << argv[0] << " <input vector filename> <input image filename>" - << " <output vector filename> " << std::endl; + << " <output vector filename> " + << "<font filename>" + << std::endl; return EXIT_FAILURE; } @@ -93,6 +95,7 @@ int otbVectorDataToImageFilterSensorModel(int argc, char * argv[]) vectorDataRendering->SetSize(size); vectorDataRendering->SetOrigin(origin); vectorDataRendering->SetSpacing(spacing); + vectorDataRendering->SetFontFileName(argv[4]); vectorDataRendering->AddStyle("minor-roads-casing"); #ifndef WIN32 vectorDataRendering->AddStyle("roads-text"); diff --git a/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx b/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx index 7b1dfaa40a..1cce23ee9b 100644 --- a/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx +++ b/Testing/Code/Common/otbVectorDataToImageFilterWorld.cxx @@ -31,13 +31,15 @@ int otbVectorDataToImageFilterWorld(int argc, char * argv[]) { - if (argc < 10) + if (argc < 11) { std::cout << argv[0] << " <input vector filename> <input image filename>" << " <output vector filename> " << " <sizeX> <sizeY> " << " <origin lon> <origin lat> " - << " <spacing lon> <spacing lat> " << std::endl; + << " <spacing lon> <spacing lat> " + << " <font filename>" + << std::endl; return EXIT_FAILURE; } @@ -82,6 +84,7 @@ int otbVectorDataToImageFilterWorld(int argc, char * argv[]) vectorDataRendering->SetSize(size); vectorDataRendering->SetOrigin(origin); vectorDataRendering->SetSpacing(spacing); + vectorDataRendering->SetFontFileName(argv[10]); vectorDataRendering->AddStyle("world"); #ifndef WIN32 vectorDataRendering->AddStyle("city"); -- GitLab