00001 00012 // For truncation warning 00013 #ifdef _MSC_VER 00014 #include "msdevstudio/MSconfig.h" 00015 #endif 00016 00017 #include "FilledColumnPointRep.h" 00018 00019 #include "axes/Range.h" 00020 #include "graphics/ViewBase.h" 00021 00022 using std::vector; 00023 00024 using namespace hippodraw; 00025 00026 FilledColumnPointRep:: 00027 FilledColumnPointRep () 00028 : ColumnPointRep ( ), 00029 m_fill_color ( Color::red ) 00030 { 00031 m_name = "FilledColumn"; 00032 } 00033 00034 FilledColumnPointRep:: 00035 FilledColumnPointRep ( const FilledColumnPointRep & point_rep ) 00036 : ColumnPointRep ( point_rep ), 00037 m_fill_color ( point_rep.m_fill_color ) 00038 { 00039 } 00040 00041 FilledColumnPointRep:: 00042 ~FilledColumnPointRep () 00043 { 00044 // Does nothing 00045 } 00046 00047 RepBase * 00048 FilledColumnPointRep:: 00049 clone () 00050 { 00051 return new FilledColumnPointRep ( *this ); 00052 } 00053 00054 00055 void 00056 FilledColumnPointRep:: 00057 setColor ( const Color & color ) 00058 { 00059 m_fill_color = color; 00060 } 00061 00062 void 00063 FilledColumnPointRep:: 00064 drawValues ( ViewBase * view ) const 00065 { 00066 int red = m_fill_color.getRed (); 00067 int green = m_fill_color.getGreen (); 00068 int blue = m_fill_color.getBlue (); 00069 00070 const Range & range = view -> getRange ( Axes::Y ); 00071 00072 unsigned int size = m_x.size () -1; 00073 for ( unsigned int i = 1; i < size; i += 2 ) { 00074 double y2 = m_y [ i+1 ]; 00075 double y1 = range.low (); 00076 double x1 = m_x [ i ]; 00077 double x2 = m_x [ i+1 ]; 00078 00079 view -> drawSquare ( x1, y1, x2, y2, red, green, blue ); 00080 } 00081 00082 ColumnPointRep::drawValues ( view ); 00083 }