[mapguide-commits] r1361 - trunk/MgDev/Common/Stylization

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Mar 23 18:13:10 EDT 2007


Author: waltweltonlair
Date: 2007-03-23 18:13:10 -0400 (Fri, 23 Mar 2007)
New Revision: 1361

Modified:
   trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp
   trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h
   trunk/MgDev/Common/Stylization/StylizationEngine.cpp
   trunk/MgDev/Common/Stylization/StylizationEngine.h
Log:
Store PositioningAlgorithm as an SE_String in the new style engine.

Modified: trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp
===================================================================
--- trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp	2007-03-23 20:57:03 UTC (rev 1360)
+++ trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp	2007-03-23 22:13:10 UTC (rev 1361)
@@ -689,13 +689,12 @@
 
         m_symbolization->context = instance->GetSizeContext();
 
+        ParseStringExpression(instance->GetPositioningAlgorithm(), m_symbolization->positioningAlgorithm);
+
         ParseBooleanExpression(instance->GetDrawLast(), m_symbolization->drawLast);
         ParseBooleanExpression(instance->GetAddToExclusionRegion(), m_symbolization->addToExclusionRegions);
         ParseBooleanExpression(instance->GetCheckExclusionRegion(), m_symbolization->checkExclusionRegions);
 
-        if (!instance->GetPositioningAlgorithm().empty())
-            m_symbolization->positioningAlgorithm = instance->GetPositioningAlgorithm();
-
         ParseDoubleExpression(instance->GetScaleX(), m_symbolization->scale[0]);
         ParseDoubleExpression(instance->GetScaleY(), m_symbolization->scale[1]);
         ParseDoubleExpression(instance->GetInsertionOffsetX(), m_symbolization->absOffset[0]);

Modified: trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h
===================================================================
--- trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h	2007-03-23 20:57:03 UTC (rev 1360)
+++ trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h	2007-03-23 22:13:10 UTC (rev 1361)
@@ -213,7 +213,7 @@
     SE_Boolean drawLast;
     SE_Boolean checkExclusionRegions;
     SE_Boolean addToExclusionRegions;
-    std::wstring positioningAlgorithm;
+    SE_String positioningAlgorithm;
 
     ~SE_Symbolization()
     {

Modified: trunk/MgDev/Common/Stylization/StylizationEngine.cpp
===================================================================
--- trunk/MgDev/Common/Stylization/StylizationEngine.cpp	2007-03-23 20:57:03 UTC (rev 1360)
+++ trunk/MgDev/Common/Stylization/StylizationEngine.cpp	2007-03-23 22:13:10 UTC (rev 1361)
@@ -339,9 +339,10 @@
             style->rstyle->checkExclusionRegions = sym->checkExclusionRegions.evaluate(executor);
             style->rstyle->drawLast = sym->drawLast.evaluate(executor);
 
-            if (!sym->positioningAlgorithm.empty() && sym->positioningAlgorithm != L"Default")
+            const wchar_t* positioningAlgo = sym->positioningAlgorithm.evaluate(executor);
+            if (positioningAlgo && wcslen(positioningAlgo) > 0 && wcscmp(positioningAlgo, L"Default") != 0)
             {
-                LayoutCustomLabel(sym->positioningAlgorithm, geometry, tmpxform, style, style->rstyle, mm2px);
+                LayoutCustomLabel(positioningAlgo, geometry, tmpxform, style, style->rstyle, mm2px);
             }
             else
             {
@@ -352,20 +353,19 @@
     }
 }
 
-void StylizationEngine::LayoutCustomLabel(const std::wstring& positioningAlgo, LineBuffer* geometry, SE_Matrix& xform, SE_Style* style, SE_RenderStyle* rstyle, double mm2px)
+void StylizationEngine::LayoutCustomLabel(const wchar_t* positioningAlgo, LineBuffer* geometry, SE_Matrix& xform, SE_Style* style, SE_RenderStyle* rstyle, double mm2px)
 {
-    //here we decide which one to call based on the name of the positioning algorithm
-    if (positioningAlgo == L"EightSurrounding")
+    // call the appropriate positioning algorithm based on the name
+    if (wcscmp(positioningAlgo, L"EightSurrounding") == 0)
     {
         SE_PositioningAlgorithms::EightSurrounding(m_serenderer, geometry, xform, style, rstyle, mm2px);
     }
-    else if (positioningAlgo == L"PathLabels")
+    else if (wcscmp(positioningAlgo, L"PathLabels") == 0)
     {
         SE_PositioningAlgorithms::PathLabels(m_serenderer, geometry, xform, style, rstyle, mm2px);
     }
-    else if (positioningAlgo == L"MultipleHighwayShields")
+    else if (wcscmp(positioningAlgo, L"MultipleHighwayShields") == 0)
     {
-
         SE_PositioningAlgorithms::MultipleHighwaysShields(m_serenderer, geometry, xform, style, rstyle, mm2px,
                                                           m_reader, m_resources);
     }

Modified: trunk/MgDev/Common/Stylization/StylizationEngine.h
===================================================================
--- trunk/MgDev/Common/Stylization/StylizationEngine.h	2007-03-23 20:57:03 UTC (rev 1360)
+++ trunk/MgDev/Common/Stylization/StylizationEngine.h	2007-03-23 22:13:10 UTC (rev 1361)
@@ -81,9 +81,8 @@
     void ClearCache();
 
 private:
+    void LayoutCustomLabel(const wchar_t* positioningAlgo, LineBuffer* geometry, SE_Matrix& xform, SE_Style* style, SE_RenderStyle* rstyle, double mm2px);
 
-    void LayoutCustomLabel(const std::wstring& positioningAlgo, LineBuffer* geometry, SE_Matrix& xform, SE_Style* style, SE_RenderStyle* rstyle, double mm2px);
-
 private:
     Renderer* m_renderer;
     SE_Renderer* m_serenderer;



More information about the mapguide-commits mailing list