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

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Mar 23 14:43:38 EDT 2007


Author: traianstanev
Date: 2007-03-23 14:43:37 -0400 (Fri, 23 Mar 2007)
New Revision: 1359

Modified:
   trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp
   trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.cpp
   trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h
Log:
Provisional support for text height and image scale-ability options. Currently the code is disabled, it will be enabled once the MDF part of the work is done.

Modified: trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp
===================================================================
--- trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp	2007-03-23 16:56:13 UTC (rev 1358)
+++ trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp	2007-03-23 18:43:37 UTC (rev 1359)
@@ -493,11 +493,16 @@
     ParseDoubleExpression(image.GetSizeY(), primitive->extent[1]);
     ParseDoubleExpression(image.GetAngle(), primitive->angle);
 
+    //TODO: SizeScaleable
+    //ParseBooleanExpression(image.GetExtentScaleable(), primitive->extentScaleable);
+
     primitive->cacheable = !(primitive->position[0].expression ||
                              primitive->position[1].expression ||
                              primitive->extent[0].expression ||
                              primitive->extent[1].expression ||
-                             primitive->angle.expression) && primitive->pngPtr;
+                             primitive->angle.expression ||
+                             primitive->extentScaleable.expression
+                             ) && primitive->pngPtr;
 }
 
 void SE_StyleVisitor::VisitText(Text& text)
@@ -520,6 +525,9 @@
     ParseStringExpression(text.GetHorizontalAlignment(), primitive->hAlignment);
     ParseStringExpression(text.GetVerticalAlignment(), primitive->vAlignment);
     ParseStringExpression(text.GetJustification(), primitive->justification);
+    
+    //TODO: SizeScaleable
+    //ParseBooleanExpression(text.GetSizeScaleable(), primitive->sizeScaleable);
 
     primitive->cacheable = !(primitive->textExpr.expression ||
                              primitive->fontExpr.expression ||
@@ -535,7 +543,9 @@
                              primitive->ghostColor.expression ||
                              primitive->hAlignment.expression ||
                              primitive->vAlignment.expression ||
-                             primitive->justification.expression);
+                             primitive->justification.expression ||
+                             primitive->sizeScaleable.expression
+                             );
 }
 
 void SE_StyleVisitor::VisitSimpleSymbolDefinition(MdfModel::SimpleSymbolDefinition& simpleSymbol)

Modified: trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.cpp
===================================================================
--- trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.cpp	2007-03-23 16:56:13 UTC (rev 1358)
+++ trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.cpp	2007-03-23 18:43:37 UTC (rev 1359)
@@ -186,7 +186,13 @@
 
     ret->tdef.font().style() = (RS_FontStyle_Mask)style;
     ret->tdef.font().name() = fontExpr.evaluate(cxt->exec);
-    ret->tdef.font().height() = size.evaluate(cxt->exec)*0.001*cxt->xform->y1/cxt->mm2px; //convert mm to meters which is what RS_TextDef expects
+    
+    //TODO: SizeScaleable -- remove the true
+    if (true || sizeScaleable.evaluate(cxt->exec))
+        ret->tdef.font().height() = size.evaluate(cxt->exec)*0.001*fabs(cxt->xform->y1)/cxt->mm2px; //convert mm to meters which is what RS_TextDef expects
+    else
+        ret->tdef.font().height() = size.evaluate(cxt->exec) * 0.001; //size is not scaleable -- only convert from mm to meters.
+
     ret->tdef.linespace() = lineSpacing.evaluate(cxt->exec);
 
     ret->tdef.color() = RS_Color::FromARGB(textColor.evaluate(cxt->exec));
@@ -268,8 +274,19 @@
     ret->position[0] = position[0].evaluate(cxt->exec);
     ret->position[1] = position[1].evaluate(cxt->exec);
     cxt->xform->transform(ret->position[0], ret->position[1]);
-    ret->extent[0] = extent[0].evaluate(cxt->exec)*cxt->xform->x0;
-    ret->extent[1] = extent[1].evaluate(cxt->exec)*cxt->xform->y1;
+
+    //TODO: SizeScaleable -- remove the true
+    if (true || extentScaleable.evaluate(cxt->exec))
+    {
+        ret->extent[0] = extent[0].evaluate(cxt->exec)*cxt->xform->x0;
+        ret->extent[1] = extent[1].evaluate(cxt->exec)*cxt->xform->y1;
+    }
+    else
+    {
+        ret->extent[0] = extent[0].evaluate(cxt->exec)*cxt->mm2pxw;
+        ret->extent[1] = extent[1].evaluate(cxt->exec)*cxt->mm2pxw;
+    }
+
     ret->angle = angle.evaluate(cxt->exec) * M_PI180;
 
     SE_Matrix rxf;

Modified: trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h
===================================================================
--- trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h	2007-03-23 16:56:13 UTC (rev 1358)
+++ trunk/MgDev/Common/Stylization/SE_SymbolDefProxies.h	2007-03-23 18:43:37 UTC (rev 1359)
@@ -91,7 +91,8 @@
     SE_String textExpr;
     SE_String fontExpr;
     SE_Double position[2];
-    SE_Double size; // pt
+    SE_Double size;
+    SE_Boolean sizeScaleable;
     SE_Double angle;
     SE_Boolean underlined;
     SE_Boolean italic;
@@ -116,6 +117,7 @@
     int pngSize;
     SE_Double position[2];
     SE_Double extent[2];
+    SE_Boolean extentScaleable;
     SE_Double angle;
 
     SE_INLINE SE_Raster() : ownPtr(false) {  }



More information about the mapguide-commits mailing list