Example #1
0
void ZSparseObject::display(ZPainter &painter, int z, EDisplayStyle option) const
{
  if (m_stackGrid.isEmpty() || z < 0) {
    ZObject3dScan::display(painter, z, option);
  } else {
    UNUSED_PARAMETER(option);
    z -= iround(painter.getZOffset());
    QPen pen(m_color);
    painter.setPen(pen);

    size_t stripeNumber = getStripeNumber();
    for (size_t i = 0; i < stripeNumber; ++i) {
      const ZObject3dStripe &stripe = getStripe(i);
      if (stripe.getZ() == z) {
        int nseg = stripe.getSegmentNumber();
        for (int j = 0; j < nseg; ++j) {
          int x0 = stripe.getSegmentStart(j);
          int x1 = stripe.getSegmentEnd(j);
          int y = stripe.getY();
          for (int x = x0; x <= x1; ++x) {
            int v = getVoxelValue(x, y, z);
            painter.setPen(QColor(v, v, v));
            painter.drawPoint(QPoint(x, y));
          }
        }
      }
    }
  }
}
Example #2
0
void ZDvidTile::display(
    ZPainter &painter, int slice, EDisplayStyle /*option*/) const
{
  bool isProj = false;
  int z = painter.getZOffset() + slice;
  if (slice < 0) {
    isProj = true;
    z = painter.getZOffset() - slice - 1;
  }
  //if (!m_image.isNull()) {
//  bool isProj = (slice < 0);

//  int z = painter.getZOffset() + slice;
  m_latestZ = z;

//  tic();
  const_cast<ZDvidTile&>(*this).update(z);
//  std::cout << "tile update time: " << toc() << std::endl;

  if ((z == m_z)  && (m_image != NULL)) {
#ifdef _DEBUG_2
    std::cout << "Display tile: " << z << std::endl;
#endif
    //      ZImage image = getImage();
    //int dx = getX() - painter.getOffset().x();
    //int dy = getY() - painter.getOffset().y();

    //      QRect sourceRect = QRect(0, 0, m_image.width(), m_image.height());
    //      QRect targetRect = QRect(getX(), getY(), m_image.width() * m_res.getScale(),
    //                         m_image.height() * m_res.getScale());
#if 0
    if (m_res.getScale() == 1) {
      m_image.save((GET_DATA_DIR + "/test.tif").c_str());
    }
#endif

//    m_image->enhanceContrast(
//          hasVisualEffect(NeuTube::Display::Image::VE_HIGH_CONTRAST));
//    QElapsedTimer timer;
//    timer.start();
//    tic();
    painter.drawPixmap(getX(), getY(), m_pixmap);
//    painter.drawImage(getX(), getY(), *m_image);
//    std::cout << "Draw image time: " << toc() << std::endl;
//    std::cout << "Draw image time: " << timer.elapsed() << std::endl;

//      ZIntPoint pt = m_offset - painter.getOffset().toIntPoint();

//      painter.save();

//      QTransform transform;

//      transform.scale(m_res.getScale(), m_res.getScale());
//      transform.translate(getX(), getY());

//      //transform.translate(pt.x(), pt.y());
//      painter.setTransform(transform);
//      painter.drawImage(m_image);

//      painter.restore();
    //}
  }
}