Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

void Impala::Application::MediaTable::BarPlot::ShowHistogram (  )  [inline, protected]

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:


Generated on Thu Jan 13 09:15:17 2011 for ImpalaSrc by  doxygen 1.5.1