[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