r309: plotfile changes
[ctsim.git] / libctgraphics / sgp.cpp
index 3626555c86f0e67d0fc0aad46a503a8326324fae..d3ea434b9b27a2cd8946f41b516d6d7bdced3543 100644 (file)
@@ -7,7 +7,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: sgp.cpp,v 1.17 2000/12/06 01:46:43 kevin Exp $
+**  $Id: sgp.cpp,v 1.22 2000/12/18 06:47:03 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -99,11 +99,14 @@ SGP::SGP (const SGPDriver& driver)
     static const double dScreenDPI = 82;
     static const double dPointsPerInch = 72.;
     m_dPointsPerPixel = dPointsPerInch / dScreenDPI;
-    const int iTestPointSize = 72;
+    const int iTestPointSize = 12;
     m_font.SetPointSize (iTestPointSize);
     m_driver.idWX()->SetFont(m_font);
     double dTestCharHeight = m_driver.idWX()->GetCharHeight();
-    m_dPointsPerPixel = iTestPointSize / dTestCharHeight;
+    m_dPointsPerPixel = iTestPointSize / dTestCharHeight;\r
+//     wxWHITE_BRUSH->SetColour (255, 255, 255);\r
+//     wxWHITE_BRUSH->SetStyle (wxSOLID);\r
+       m_driver.idWX()->SetBackground (*wxWHITE_BRUSH);
   }
 #endif
 
@@ -162,8 +165,20 @@ SGP::eraseWindow ()
     g2_clear (m_driver.idG2());
 #endif
 #if HAVE_WXWINDOWS
-  if (m_driver.isWX())
-    m_driver.idWX()->Clear();
+  if (m_driver.isWX()) {\r
+       wxBrush brushWhite;\r
+       brushWhite.SetColour(255,255,255);\r
+       m_driver.idWX()->SetBackground(brushWhite);\r
+       m_driver.idWX()->Clear();\r
+       m_driver.idWX()->SetBackground(wxNullBrush);\r
+#if 1\r
+       wxPen pen;\r
+       pen.SetColour(255,255,255);\r
+       m_driver.idWX()->SetBrush (brushWhite);\r
+       m_driver.idWX()->DrawRectangle (0, 0, m_iPhysicalXSize, m_iPhysicalYSize);\r
+       m_driver.idWX()->SetBrush (wxNullBrush);\r
+#endif\r
+  }
 #endif
 }
 
@@ -419,7 +434,7 @@ SGP::moveRel (double x, double y)
 void
 SGP::setTextSize (double height)
 {
-    height /= (xw_max - xw_min);
+    height /= (yw_max - yw_min);  // convert to NDC
 #if HAVE_G2_H
   if (m_driver.isG2())
     g2_set_font_size(m_driver.idG2(), (height * m_iPhysicalYSize));
@@ -490,10 +505,11 @@ SGP::getCharHeight ()
 #if HAVE_WXWINDOWS
   if (m_driver.isWX()) {
     dHeight = m_driver.idWX()->GetCharHeight();
-    dHeight /= static_cast<double>(m_iPhysicalYSize);
+    dHeight /= static_cast<double>(m_iPhysicalYSize);\r
+       dHeight /= (yv_max - yv_min); // scale to viewport;
   }
 #endif
-  dHeight *= (yw_max - yw_min);
+  dHeight *= (yw_max - yw_min);  // scale to world coordinates
   return dHeight;
 }
 
@@ -505,10 +521,11 @@ SGP::getCharWidth ()
 #if HAVE_WXWINDOWS
   if (m_driver.isWX()) {
     dWidth = m_driver.idWX()->GetCharWidth();
-    dWidth /= static_cast<double>(m_iPhysicalXSize);
+    dWidth /= static_cast<double>(m_iPhysicalXSize);\r
+       dWidth /= (xv_max - xv_min); // scale to viewport
   }
 #endif
-  dWidth *= (xw_max - xw_min);
+  dWidth *= (xw_max - xw_min); //scale to world coordinates
   return dWidth;
 }
 
@@ -596,7 +613,7 @@ SGP::pointRel (double x, double y)
 
 
 void
-SGP::drawText (const string& rsMessage)
+SGP::drawText (const std::string& rsMessage)
 {
   drawText (rsMessage.c_str());
 }