Definition at line 155 of file BarPlot.h. References Impala::Application::MediaTable::BarPlot::AXIS_X, Impala::Application::MediaTable::BarPlot::AXIS_Y, Impala::Application::MediaTable::TableDataView::GetSortedIntData(), Impala::Application::MediaTable::TableDataView::GetSortedNormalizedData(), OglGui::OglWindow::H(), Impala::Application::MediaTable::BarPlot::mBarBgColor, Impala::Application::MediaTable::BarPlot::mBarBorderColor, Impala::Application::MediaTable::BarPlot::mBarFillColor, Impala::Application::MediaTable::BarPlot::mColumnFill, Impala::Application::MediaTable::BarPlot::mColumnX, Impala::Application::MediaTable::BarPlot::mColumnY, Impala::Application::MediaTable::BarPlot::mFirstVisible, Impala::Application::MediaTable::BarPlot::mLastVisible, Impala::Application::MediaTable::BarPlot::mMax, Impala::Application::MediaTable::BarPlot::mMinViewSize, mSource, Impala::Application::MediaTable::BarPlot::mStep, Impala::Application::MediaTable::BarPlot::NrVisible(), Impala::Application::MediaTable::BarPlot::ShowXLabel(), Impala::Application::MediaTable::BarPlot::ShowYLabel(), and OglGui::OglWindow::W(). 00156 { 00157 if(!NrVisible()) return; 00158 float slotSz = (W() - AXIS_X) / (float) NrVisible(); 00159 float binSz = (slotSz >= 2) ? slotSz / 2 : 1; 00160 float viewH = (slotSz >= mMinViewSize) ? slotSz : 0; 00161 bool oneCol = mBarBgColor == mBarFillColor && 00162 mBarBgColor == mBarBorderColor; 00163 00164 int yHeight = H()-AXIS_Y-viewH-7; 00165 00166 for (int i=mFirstVisible; i<=mLastVisible; i++) 00167 { 00168 int x = AXIS_X + (i-mFirstVisible) * slotSz; 00169 int y = mSource->GetSortedIntData(mColumnY, i); 00170 int barH = (y/(float) mMax) * yHeight; 00171 00172 if (barH >= 1) 00173 { 00174 SetSolidFillColor(mBarBgColor); 00175 FillRectangle(x+slotSz/4,AXIS_Y+viewH,binSz,barH); 00176 } 00177 if (!oneCol) { 00178 double fill = mSource->GetSortedNormalizedData(mColumnFill, i); 00179 if (fill * barH >= 1) 00180 { 00181 SetSolidFillColor(mBarFillColor); 00182 FillRectangle(x+slotSz/4,AXIS_Y+viewH,binSz,fill*barH); 00183 } 00184 if (!oneCol && barH >= 1) 00185 { 00186 SetSolidLineColor(mBarBorderColor); 00187 DrawRectangle(x+slotSz/4,AXIS_Y+viewH,binSz,barH); 00188 } 00189 } 00190 int xValue = mSource->GetSortedIntData(mColumnX, i); 00191 ShowXLabel(xValue, x, slotSz); 00192 } 00193 00194 SetSolidLineColor(mBarBorderColor); 00195 // Draw Y AXIS 00196 DrawRectangle(AXIS_X, AXIS_Y+viewH, 0, yHeight); 00197 for(long i=0; i <= mMax; i+= mStep) { 00198 //ILOG_INFO("i=" << i << "; mMaxFreq=" << mMaxFreq); 00199 int y = (i/(float) mMax) * yHeight+AXIS_Y+viewH; 00200 DrawRectangle(AXIS_X, y, -3, 0); 00201 ShowYLabel(i, y); 00202 } 00203 }
Here is the call graph for this function:
|