void UIListView::setColumnVisible( int col, bool show ) { if ( columnVisible( col ) == show ) return ; ColumnData * data = m_data.find( col ); if ( show == false ) { data->name = columnText( col ); data->size = columnWidth( col ); data->mode = columnWidthMode( col ); setColumnText ( col, "" ); setColumnWidth( col, 0 ); setColumnWidthMode( col, QListView::Manual ); header()->setResizeEnabled( false, col ); } else { setColumnText ( col, data->name ); setColumnWidth( col, data->size ); setColumnWidthMode( col, data->mode ); header()->setResizeEnabled( true, col ); } }
int visible(DataSet *terrain, GridPoint start, GridPoint end, float fNODATA) { GridPoint p; float x0, y0, x1, y1, y_start; float dx, dy, dydx; int idx; float h0, h1; double dzds; assert(start.r >= 0 && start.c >= 0); assert(end.r >= 0 && end.c >= 0); assert(start.r < terrain->grid.nrow && start.c < terrain->grid.ncol); assert(end.r < terrain->grid.nrow && end.c < terrain->grid.ncol); if (gpEqual(start, end)) { gpSlope(terrain, start, end, h0, h1, dzds); if (h0 == fNODATA || h1 == fNODATA) return 0; else return 1; } // calculate slope in x and y gpCenter(start, x0, y0); gpCenter(end, x1, y1); gpDiff(start, end, dx, dy); if (dx == 0) { idx = 0; dydx = 0; // not used }else { // idx is +1 or -1 idx = (int)(dx / fabs(dx)); dydx = dy / dx; } // calculate the z gradient gpSlope(terrain, start, end, h0, h1, dzds); if (h0 == fNODATA || h1 == fNODATA) return 0; y_start = y1 = y0; x1 = x0; p = start; // run through columns while (p.c >= 0 && p.c < terrain->grid.ncol && p.r >= 0 && p.r < terrain->grid.nrow) { // increment x1 by a column, or half a column if (p.c == start.c || p.c == end.c) x1 += .5 * idx; else x1 += idx; // calculate next y intercept y0 = y1; if (idx == 0) y1 = y0 + dy; else y1 = y_start + dydx * (x1 - x0); // translate y intercept to row index p.r = dy >= 0 ? (int)y0 : (int)(ceilf(y0) - 1); // check column visibility if (gpBefore(p, end, dx, dy) && !columnVisible(terrain, start, p, dzds, y0, y1, fNODATA)) return 0; // proceed to next column p.c += idx; } return 1; }