]> git.mxchange.org Git - simgear.git/commitdiff
drop xscale member again, and use xsize/ysize instead. (One interface
authormfranz <mfranz>
Mon, 10 Apr 2006 15:32:55 +0000 (15:32 +0000)
committermfranz <mfranz>
Mon, 10 Apr 2006 15:32:55 +0000 (15:32 +0000)
element less to confuse people.)

simgear/scene/material/mat.cxx
simgear/scene/material/mat.hxx
simgear/scene/tgdb/apt_signs.cxx

index 37bf04912c3860b3a817ae20e15ca0a34eba640f..8606e61666d93be63181b11b227dd65281331c77 100644 (file)
@@ -160,8 +160,7 @@ SGMaterial::read_properties( const string &fg_root, const SGPropertyNode * props
   for (unsigned int i = 0; i < object_group_nodes.size(); i++)
     object_groups.push_back(new SGMatModelGroup(object_group_nodes[i]));
 
-  // handling of glyphs for taxi-/runway-signs
-  xscale = props->getDoubleValue("xscale", 1.0);
+  // read glyph table for taxi-/runway-signs
   vector<SGPropertyNode_ptr> glyph_nodes = props->getChildren("glyph");
   for (unsigned int i = 0; i < glyph_nodes.size(); i++) {
     const char *name = glyph_nodes[i]->getStringValue("name");
@@ -185,7 +184,6 @@ SGMaterial::init ()
     ysize = 0;
     wrapu = true;
     wrapv = true;
-    xscale = 1;
 
     mipmap = true;
     light_coverage = 0.0;
index 93c28777f6daf90f9180af53a09f036d11904d3a..8631fdc1dc612923b2f8e2495f33e60e672d58db 100644 (file)
@@ -168,11 +168,6 @@ public:
     return object_groups[index];
   }
 
-  /**
-   * Get the horizontal scaling factor for runway/taxiway signs.
-   */
-  virtual inline double get_xscale() const { return xscale; }
-
   /**
    * Return pointer to glyph class, or 0 if it doesn't exist.
    */
@@ -234,8 +229,7 @@ private:
 
   vector<SGSharedPtr<SGMatModelGroup> > object_groups;
 
-  // taxiway-/runway-sign elements
-  double xscale;
+  // taxiway-/runway-sign texture elements
   map<string, SGMaterialGlyph *> glyphs;
 
 \f
index 175e5c6fa9d60a47b5ff3a5a66ba7e38baf8f597..2f80afe3ef76a7b0b99b0bdde075978f63c8693e 100644 (file)
 
 // for temporary storage of sign elements
 struct element_info {
-    element_info(SGMaterial *m, SGMaterialGlyph *g) : material(m), glyph(g) {}
+    element_info(SGMaterial *m, SGMaterialGlyph *g) : material(m), glyph(g) {
+        scale = m->get_xsize() / (m->get_ysize() < 0.001 ? 1.0 : m->get_ysize());
+    }
     SGMaterial *material;
     SGMaterialGlyph *glyph;
+    double scale;
 };
 
 
@@ -154,8 +157,9 @@ ssgBranch *sgMakeTaxiSign( SGMaterialLib *matlib,
             continue;
         }
 
-        elements.push_back(new element_info(material, glyph));
-        total_width += glyph->get_width() * material->get_xscale();
+        element_info *e = new element_info(material, glyph);
+        elements.push_back(e);
+        total_width += glyph->get_width() * e->scale;
     }
 
     double hpos = -total_width / 2;
@@ -171,7 +175,7 @@ ssgBranch *sgMakeTaxiSign( SGMaterialLib *matlib,
 
         double xoffset = element->glyph->get_left();
         double width = element->glyph->get_width();
-        double abswidth = width * element->material->get_xscale();
+        double abswidth = width * element->scale;
 
         // vertices
         ssgVertexArray *vl = new ssgVertexArray(4);