bool ZDvidDataSliceHelper::actualContainedIn(
    const ZStackViewParam &viewParam, int zoom, int centerCutX, int centerCutY,
    bool centerCut) const
{
  bool contained = false;

  if (m_currentViewParam.getViewPort().isEmpty() &&
      !viewParam.getViewPort().isEmpty()) {
    if (m_currentViewParam.getSliceAxis() == neutube::EAxis::ARB) {
      //Must be on the same plane to be contained
      if (m_currentViewParam.getSliceViewParam().hasSamePlaneCenter(
            viewParam.getSliceViewParam())) {
        contained = true;
      }
    } else {
      if (viewParam.getZ() == m_currentViewParam.getZ()) {
        contained = true;
      }
    }
  } else if (viewParam.contains(m_currentViewParam)) {
    contained = ZDvidDataSliceHelper::IsResIncreasing(
          m_actualZoom, m_actualCenterCutWidth, m_actualCenterCutHeight,
          m_actualUsingCenterCut,
          zoom, centerCutX, centerCutY, centerCut,
          getWidth(), getHeight(), getMaxZoom());
  }

  return contained;
}
size_t ZDvidDataSliceHelper::GetViewDataSize(
    const ZStackViewParam &viewParam, int zoom)
{
  int scale = zgeom::GetZoomScale(zoom);

  return viewParam.getArea() / scale / scale;
}
ZStackViewParam ZDvidDataSliceHelper::getValidViewParam(
    const ZStackViewParam &viewParam) const
{
  ZStackViewParam newViewParam = viewParam;

  int maxZoomLevel = getMaxZoom();
  if (maxZoomLevel < 3) {
    int width = viewParam.getViewPort().width();
    int height = viewParam.getViewPort().height();
    if (validateSize(&width, &height)) {
      newViewParam.resize(width, height);
    }
  }

  return newViewParam;
}
示例#4
0
void ZDvidSparsevolSlicePlayer::updateData(const ZStackViewParam &viewParam) const
{
  ZDvidSparsevolSlice *obj = getCompleteData();
  if (obj != NULL) {
    obj->update(viewParam.getZ());
  }
}
bool ZDvidDataSliceHelper::hasNewView(const ZStackViewParam &viewParam) const
{
  int maxZoomLevel = getMaxZoom();

  return !m_currentViewParam.contains(viewParam) ||
      (viewParam.getZoomLevel(maxZoomLevel) <
      m_currentViewParam.getZoomLevel(maxZoomLevel));
}