Definition at line 172 of file BarPlot.h. References AXIS_X, AXIS_Y, FirstVisible(), Impala::Core::Matrix::GetColumn(), Impala::Application::MediaTable::TableDataView::GetMark(), Impala::Application::MediaTable::TableDataView::GetSortedDoubleData(), Impala::Application::MediaTable::TableDataView::GetSortedIntData(), Impala::Application::MediaTable::TableDataView::GetSortedNormalizedData(), Impala::Application::MediaTable::TableDataViewController::GetTableDataView(), OglGui::OglWindow::H(), Impala::Application::MediaTable::TableDataViewController::MarkToColor(), mBarBgColor, mBarBorderColor, mBarFillColor, mColumnFill, mColumnX, mColumnY, mMax, mMinViewSize, mStep, NrVisible(), ShowXLabel(), ShowYLabel(), Impala::Application::MediaTable::TableDataSource::TYPE_INT, and OglGui::OglWindow::W(). Referenced by Impala::Application::TagsLife::BarPlot::DisplayFunc(), and DisplayFunc(). 00173 { 00174 if(!NrVisible()) return; 00175 float slotSz = (W() - AXIS_X) / (float) NrVisible(); 00176 float binSz = (slotSz >= 2) ? slotSz / 2 : 1; 00177 float viewH = (slotSz >= mMinViewSize) ? slotSz : 0; 00178 bool oneCol = mBarBgColor == mBarFillColor && 00179 mBarBgColor == mBarBorderColor; 00180 00181 int yHeight = H()-AXIS_Y-viewH-7; 00182 00183 for (int i=0; i < NrVisible(); i++) 00184 { 00185 int x = AXIS_X + i * slotSz; 00186 int y; 00187 if(GetTableDataView()->GetColumn(mColumnY)->GetType() == TableDataSource::TYPE_INT) 00188 y = GetTableDataView()->GetSortedIntData(mColumnY, FirstVisible()+i); 00189 else 00190 y = GetTableDataView()->GetSortedDoubleData(mColumnY, FirstVisible()+i); 00191 int barH = (y/(float) mMax) * yHeight; 00192 00193 int mark = GetTableDataView()->GetMark(FirstVisible()+i); 00194 00195 if (barH >= 1) 00196 { 00197 SetSolidFillColor(mBarBgColor); 00198 if (mark) 00199 SetSolidFillColor(MarkToColor(mark)); 00200 FillRectangle(x+slotSz/4,AXIS_Y+viewH,binSz,barH); 00201 } 00202 if (!oneCol) { 00203 double fill = GetTableDataView()->GetSortedNormalizedData(mColumnFill, FirstVisible()+i); 00204 if (fill * barH >= 1) 00205 { 00206 SetSolidFillColor(mBarFillColor); 00207 FillRectangle(x+slotSz/4,AXIS_Y+viewH,binSz,fill*barH); 00208 } 00209 if (barH >= 1) 00210 { 00211 SetSolidLineColor(mBarBorderColor); 00212 if (mark) 00213 SetSolidFillColor(MarkToColor(mark)); 00214 DrawRectangle(x+slotSz/4,AXIS_Y+viewH,binSz,barH); 00215 } 00216 } 00217 int xValue; 00218 if(GetTableDataView()->GetColumn(mColumnX)->GetType() == TableDataSource::TYPE_INT) 00219 xValue = GetTableDataView()->GetSortedIntData(mColumnX, FirstVisible()+i); 00220 else 00221 xValue = GetTableDataView()->GetSortedDoubleData(mColumnX, FirstVisible()+i); 00222 ShowXLabel(xValue, x, slotSz); 00223 } 00224 00225 SetSolidLineColor(mBarBorderColor); 00226 // Draw Y AXIS 00227 DrawRectangle(AXIS_X, AXIS_Y+viewH, 0, yHeight); 00228 for(long i=0; i <= mMax; i+= mStep) { 00229 //ILOG_INFO("i=" << i << "; mMaxFreq=" << mMaxFreq); 00230 int y = (i/(float) mMax) * yHeight+AXIS_Y+viewH; 00231 DrawRectangle(AXIS_X, y, -3, 0); 00232 ShowYLabel(i, y); 00233 } 00234 }
Here is the call graph for this function:
|