[mapguide-commits] r9612 - in sandbox/jng/mvt_alt: Common/Renderers Common/Renderers/mvt Server/src/UnitTesting

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sat Sep 21 14:36:30 PDT 2019


Author: jng
Date: 2019-09-21 14:36:30 -0700 (Sat, 21 Sep 2019)
New Revision: 9612

Modified:
   sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.cpp
   sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.h
   sandbox/jng/mvt_alt/Common/Renderers/mvt/mvt_tile.h
   sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.cpp
   sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.h
   sandbox/jng/mvt_alt/Server/src/UnitTesting/UnitTesting.vcxproj
Log:
Bring across MVT rendering test from original mvt sandbox

Modified: sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.cpp
===================================================================
--- sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.cpp	2019-09-21 20:28:06 UTC (rev 9611)
+++ sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.cpp	2019-09-21 21:36:30 UTC (rev 9612)
@@ -838,4 +838,11 @@
 RS_DesiredPolygonOrientation MVTRenderer::GetDesiredPolygonOrientation()
 {
     return RS_DesiredPolygonOrientation::Clockwise;
+}
+
+bool MVTRenderer::IsValidTile(unsigned char* buf, size_t size)
+{
+    MVTTile oTileDeserialized;
+    bool bRet = oTileDeserialized.read(buf, buf + size);
+    return bRet;
 }
\ No newline at end of file

Modified: sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.h
===================================================================
--- sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.h	2019-09-21 20:28:06 UTC (rev 9611)
+++ sandbox/jng/mvt_alt/Common/Renderers/MVTRenderer.h	2019-09-21 21:36:30 UTC (rev 9612)
@@ -72,11 +72,14 @@
     RENDERERS_API virtual void AddExclusionRegion(RS_F_Point * fpts, int npts);
     RENDERERS_API virtual RS_DesiredPolygonOrientation GetDesiredPolygonOrientation();
 
-    //MVT-specific. Caller responsible for calling ReleaseMVTContent() on the returned
-    //pointer once done
+    // MVT-specific. Caller responsible for calling ReleaseMVTContent() on the returned
+    // pointer once done
     RENDERERS_API unsigned char* GetMVTContent(size_t& size);
     RENDERERS_API void ReleaseMVTContent(unsigned char* buf);
 
+    // For unit testing purposes
+    RENDERERS_API static bool IsValidTile(unsigned char* buf, size_t size);
+
 private:
     struct MVTImpl;
     std::unique_ptr<MVTImpl> m_impl;

Modified: sandbox/jng/mvt_alt/Common/Renderers/mvt/mvt_tile.h
===================================================================
--- sandbox/jng/mvt_alt/Common/Renderers/mvt/mvt_tile.h	2019-09-21 20:28:06 UTC (rev 9611)
+++ sandbox/jng/mvt_alt/Common/Renderers/mvt/mvt_tile.h	2019-09-21 21:36:30 UTC (rev 9612)
@@ -29,6 +29,7 @@
 #ifndef MVT_TILE_H
 #define MVT_TILE_H
 
+#define ADD_MVT_TILE_READ
 #include "mvt_port.h"
 
 #include <memory>

Modified: sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.cpp
===================================================================
--- sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.cpp	2019-09-21 20:28:06 UTC (rev 9611)
+++ sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.cpp	2019-09-21 21:36:30 UTC (rev 9612)
@@ -21,8 +21,7 @@
 #include "ServerSiteService.h"
 #include "StylizationDefs.h"
 #include "../Common/Manager/FdoConnectionManager.h"
-//#include "GDRenderer.h"
-//#include "AGGRenderer.h"
+#include "MVTRenderer.h"
 #include "FoundationDefs.h"
 #include "SE_Renderer.h"
 
@@ -1904,6 +1903,72 @@
     }
 }
 
+void TestRenderingService::TestCase_RenderTileMVT()
+{
+    try
+    {
+        Ptr<MgMap> map = CreateTestXYZMap();
+
+        //For ease of visual verfication, render the XYZ image tiles as baseline
+        Ptr<MgByteReader> imgTL = m_svcRendering->RenderTileXYZ(map, L"BaseLayers", 16797, 23893, 16, 96, MgImageFormats::Png);
+        Ptr<MgByteReader> imgTR = m_svcRendering->RenderTileXYZ(map, L"BaseLayers", 16798, 23893, 16, 96, MgImageFormats::Png);
+        Ptr<MgByteReader> imgBL = m_svcRendering->RenderTileXYZ(map, L"BaseLayers", 16797, 23894, 16, 96, MgImageFormats::Png);
+        Ptr<MgByteReader> imgBR = m_svcRendering->RenderTileXYZ(map, L"BaseLayers", 16798, 23894, 16, 96, MgImageFormats::Png);
+
+        imgTL->ToFile(L"../UnitTestFiles/RenderTileMVT_TL_ImageBaseline.png");
+        imgTR->ToFile(L"../UnitTestFiles/RenderTileMVT_TR_ImageBaseline.png");
+        imgBL->ToFile(L"../UnitTestFiles/RenderTileMVT_BL_ImageBaseline.png");
+        imgBR->ToFile(L"../UnitTestFiles/RenderTileMVT_BR_ImageBaseline.png");
+
+        //Now render the utf grids at the same place
+        Ptr<MgByteReader> mvtTL = m_svcRendering->RenderTileMVT(map, L"BaseLayers", 16797, 23893, 16, 96);
+        Ptr<MgByteReader> mvtTR = m_svcRendering->RenderTileMVT(map, L"BaseLayers", 16798, 23893, 16, 96);
+        Ptr<MgByteReader> mvtBL = m_svcRendering->RenderTileMVT(map, L"BaseLayers", 16797, 23894, 16, 96);
+        Ptr<MgByteReader> mvtBR = m_svcRendering->RenderTileMVT(map, L"BaseLayers", 16798, 23894, 16, 96);
+
+        CPPUNIT_ASSERT(MgMimeType::Mvt == mvtTL->GetMimeType());
+        CPPUNIT_ASSERT(MgMimeType::Mvt == mvtTR->GetMimeType());
+        CPPUNIT_ASSERT(MgMimeType::Mvt == mvtBL->GetMimeType());
+        CPPUNIT_ASSERT(MgMimeType::Mvt == mvtBR->GetMimeType());
+
+        CPPUNIT_ASSERT(mvtTL->GetLength() > 0);
+        CPPUNIT_ASSERT(mvtTR->GetLength() > 0);
+        CPPUNIT_ASSERT(mvtBL->GetLength() > 0);
+        CPPUNIT_ASSERT(mvtBR->GetLength() > 0);
+
+        mvtTL->ToFile(L"../UnitTestFiles/RenderTileMVT_TL.mvt");
+        mvtTR->ToFile(L"../UnitTestFiles/RenderTileMVT_TR.mvt");
+        mvtBL->ToFile(L"../UnitTestFiles/RenderTileMVT_BL.mvt");
+        mvtBR->ToFile(L"../UnitTestFiles/RenderTileMVT_UR.mvt");
+
+        mvtTL->Rewind();
+        mvtTR->Rewind();
+        mvtBL->Rewind();
+        mvtBR->Rewind();
+
+        Ptr<MgByteSink> sinkTL = new MgByteSink(mvtTL);
+        Ptr<MgByteSink> sinkTR = new MgByteSink(mvtTR);
+        Ptr<MgByteSink> sinkBL = new MgByteSink(mvtBL);
+        Ptr<MgByteSink> sinkBR = new MgByteSink(mvtBR);
+
+        Ptr<MgByte> bytesTL = sinkTL->ToBuffer();
+        Ptr<MgByte> bytesTR = sinkTR->ToBuffer();
+        Ptr<MgByte> bytesBL = sinkBL->ToBuffer();
+        Ptr<MgByte> bytesBR = sinkBR->ToBuffer();
+
+        CPPUNIT_ASSERT(MVTRenderer::IsValidTile(bytesTL->Bytes(), bytesTL->GetLength()));
+        CPPUNIT_ASSERT(MVTRenderer::IsValidTile(bytesTR->Bytes(), bytesTR->GetLength()));
+        CPPUNIT_ASSERT(MVTRenderer::IsValidTile(bytesBL->Bytes(), bytesBL->GetLength()));
+        CPPUNIT_ASSERT(MVTRenderer::IsValidTile(bytesBR->Bytes(), bytesBR->GetLength()));
+    }
+    catch (MgException* e)
+    {
+        STRING message = e->GetDetails(TEST_LOCALE);
+        SAFE_RELEASE(e);
+        CPPUNIT_FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+    }
+}
+
 STRING TestRenderingService::GetPath(CREFSTRING basePath, CREFSTRING imageFormat, CREFSTRING extension)
 {
     STRING ret;

Modified: sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.h
===================================================================
--- sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.h	2019-09-21 20:28:06 UTC (rev 9611)
+++ sandbox/jng/mvt_alt/Server/src/UnitTesting/TestRenderingService.h	2019-09-21 21:36:30 UTC (rev 9612)
@@ -74,6 +74,7 @@
     CPPUNIT_TEST(TestCase_RenderTilePNG);
     CPPUNIT_TEST(TestCase_RenderTileXYZ_PNG);
     CPPUNIT_TEST(TestCase_RenderTileUTFGrid);
+    CPPUNIT_TEST(TestCase_RenderTileMVT);
 
     CPPUNIT_TEST(TestCase_StylizationFunctionsPNG8);
 
@@ -178,6 +179,9 @@
     void TestEnd();
 
     void TestCase_QueryFeatures();
+    void TestCase_RenderTileUTFGrid();
+    void TestCase_RenderTileMVT();
+
     void TestCase_RenderMetatile(CREFSTRING imageFormat, CREFSTRING extension);
     void TestCase_RenderXYZMetatile(CREFSTRING imageFormat, CREFSTRING extension, INT32 retinaScale);
     void TestCase_RenderTile(CREFSTRING imageFormat, CREFSTRING extension);
@@ -238,7 +242,6 @@
     void TestCase_LayerWatermarkPNG() { TestCase_LayerWatermark(L"PNG", L"png"); }
     void TestCase_RenderTilePNG() { TestCase_RenderTile(L"PNG", L"png"); }
     void TestCase_RenderTileXYZ_PNG() { TestCase_RenderTileXYZ(L"PNG", L"png"); }
-    void TestCase_RenderTileUTFGrid();
 
     //PNG8 output tests
     void TestCase_RenderDynamicOverlayPNG8() { TestCase_RenderDynamicOverlay(L"PNG8", L"png"); }

Modified: sandbox/jng/mvt_alt/Server/src/UnitTesting/UnitTesting.vcxproj
===================================================================
--- sandbox/jng/mvt_alt/Server/src/UnitTesting/UnitTesting.vcxproj	2019-09-21 20:28:06 UTC (rev 9611)
+++ sandbox/jng/mvt_alt/Server/src/UnitTesting/UnitTesting.vcxproj	2019-09-21 21:36:30 UTC (rev 9612)
@@ -94,7 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Renderers;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -120,7 +120,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Renderers;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -146,7 +146,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Renderers;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -173,7 +173,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\Common;..\Common\Cache;..\Common\Manager;..\Services\Feature;..\Services\Kml;..\Services\Mapping;..\Services\Rendering;..\Services\Resource;..\Services\ServerAdmin;..\Services\Site;..\Services\Tile;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Common\MdfModel;..\..\..\Common\MdfParser;..\..\..\Common\Renderers;..\..\..\Common\Stylization;..\..\..\Oem\ACE\ACE_wrappers;..\..\..\Oem\CppUnit-1.9.14\include;..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\Oem\FDO\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -274,6 +274,9 @@
       <Project>{f7334b1b-0efa-47e3-8e66-df158e61b7e4}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\..\..\Common\Renderers\Renderers.vcxproj">
+      <Project>{38161685-88ed-415e-a545-ccc17be069ae}</Project>
+    </ProjectReference>
     <ProjectReference Include="..\..\..\Common\Security\Security.vcxproj">
       <Project>{7c1c5695-c51c-4017-abef-bc3032cbaf3b}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>



More information about the mapguide-commits mailing list