Ejemplo n.º 1
0
void ZStackDocReader::loadSwc(const QString &filePath)
{
  ZSwcTree *tree = new ZSwcTree();
  tree->load(filePath.toLocal8Bit().constData());
  if (!tree->isEmpty()) {
    addObject(tree);
    //addSwcTree(tree);
  } else {
    delete tree;
  }
}
Ejemplo n.º 2
0
void ZMovieMaker::recruitCast()
{
  std::map<string, string> cast = m_script.getCast();

  ZStackDoc *academy = getAcademy();

  academy->blockSignals(true);
  for (std::map<string, string>::const_iterator iter = cast.begin();
       iter != cast.end(); ++iter) {
    switch (ZFileType::fileType(iter->second)) {
    case ZFileType::SWC_FILE:
    {
      ZSwcTree *tree = new ZSwcTree;
      tree->load(iter->second.c_str());
      tree->setVisible(false);
      academy->addObject(tree);
      ZSwcMovieActor *actor = new ZSwcMovieActor;
      actor->setActor(tree);
      actor->setId(iter->first);
      actor->setVisible(false);
      m_cast.push_back(actor);
    }
      break;
    case ZFileType::TIFF_FILE:
    {
      ZStack *stack = new ZStack();
      stack->load(iter->second);

      if (academy->getStack() != NULL) {
        cout << "Warning: " << "multiple volume detected. Only one allowed."
             << endl;
      } else {
        academy->loadStack(stack);
      }
      ZStackMovieActor *actor = new ZStackMovieActor;
      actor->setVisible(false);
      actor->setId(iter->first);
      actor->setActor(stack);
      m_cast.push_back(actor);
    }
      break;
    case ZFileType::V3D_MARKER_FILE:
    {
      QList<ZPunctum*> punctaList =
          ZPunctumIO::load(iter->second.c_str());
      for (int i=0; i<punctaList.size(); i++) {
        punctaList[i]->setVisible(false);
//        academy->addObject(punctaList[i]);
      }
      academy->addPunctum(punctaList);

      ZPunctaMovieActor *actor = new ZPunctaMovieActor;
      actor->setVisible(false);
      actor->setId(iter->first);
      vector<ZPunctum*> puncta;
      for (QList<ZPunctum*>::const_iterator iter = punctaList.begin();
           iter != punctaList.end(); ++iter) {
        puncta.push_back(*iter);
      }
      actor->setActor(puncta);
      m_cast.push_back(actor);
    }
    default:
      break;
    }
  }
  academy->blockSignals(false);
}