コード例 #1
0
ファイル: timeline.cpp プロジェクト: xmoeproject/X-moe
///----------------------------------------------------------------------
/// BGを描画する
void timeline_draw_bg(tTJSVariant item, tTJSVariant view, tjs_int y, tjs_int fromTime, tjs_int toTime)
{
  ncbPropAccessor itemObj(item);
  ncbPropAccessor viewObj(view);

  ncbPropAccessor rootObj(itemObj.GetValue(L"root", ncbTypedefs::Tag<tTJSVariant>(), 0, &rootHint));
  ncbPropAccessor ownerObj(rootObj.GetValue(L"owner", ncbTypedefs::Tag<tTJSVariant>(), 0, &ownerHint));
  tjs_int fps = ownerObj.GetValue(L"framePerSecond", ncbTypedefs::Tag<tjs_int>(), 0 ,&framePerSecondHint);

  iTJSDispatch2 *global = TVPGetScriptDispatch();
  ncbPropAccessor globalObj(global);
  global->Release();

  tjs_int TIMELINE_FRAME_WIDTH = itemObj.GetValue(L"TIMELINE_FRAME_WIDTH", ncbTypedefs::Tag<tjs_int>(), 0, &timeLineFrameWidthHint);
  tjs_int TIMELINE_FRAME_HEIGHT = globalObj.GetValue(L"TIMELINE_FRAME_HEIGHT", ncbTypedefs::Tag<tjs_int>(), 0, &timelineFrameHeightHint);

  tTJSVariant oneSecondFrameBgLayer, halfSecondFrameBgLayer, fifthFrameBgLayer, normalFrameBgLayer;

  // バックグラウンドを描画
  for (tjs_int time = fromTime; time < toTime; time ++) {
    tjs_int x = time * TIMELINE_FRAME_WIDTH;
    tTJSVariant layer;
    if (time % fps == 0) {
      if (oneSecondFrameBgLayer.Type() == tvtVoid)
        oneSecondFrameBgLayer = viewObj.GetValue(L"oneSecondFrameBgLayer", ncbTypedefs::Tag<tTJSVariant>(), 0, &oneSecondFrameBgLayerHint);
      layer = oneSecondFrameBgLayer;
    } else if (time % fps * 2 == fps) {
      if (halfSecondFrameBgLayer.Type() == tvtVoid)
        halfSecondFrameBgLayer = viewObj.GetValue(L"halfSecondFrameBgLayer", ncbTypedefs::Tag<tTJSVariant>(), 0, &halfSecondFrameBgLayerHint);
      layer = halfSecondFrameBgLayer;
    } else if (time % 5 == 0) {
      if (fifthFrameBgLayer.Type() == tvtVoid)
        fifthFrameBgLayer = viewObj.GetValue(L"fifthFrameBgLayer", ncbTypedefs::Tag<tTJSVariant>(), 0, &fifthFrameBgLayerHint);
      layer = fifthFrameBgLayer;
    } else {
      if (normalFrameBgLayer.Type() == tvtVoid)
        normalFrameBgLayer = viewObj.GetValue(L"normalFrameBgLayer", ncbTypedefs::Tag<tTJSVariant>(), 0, &normalFrameBgLayerHint);
      layer = normalFrameBgLayer;
    }
    viewObj.FuncCall(0, L"copyRect", &copyRectHint, NULL,
                     x, y, layer, 0, 0, TIMELINE_FRAME_WIDTH, TIMELINE_FRAME_HEIGHT);
  }
}
コード例 #2
0
int ZSplitTaskUploadCommand::run(
    const std::vector<std::string> &input, const std::string &/*output*/,
    const ZJsonObject &config)
{
  ZJsonObject dvidJson(config.value("dvid"));
  if (dvidJson.isEmpty()) {
    std::cerr << "No dvid server specified. Abort." << std::endl;
    return 1;
  }

  if (input.empty()) {
    std::cerr << "No input file specified. Abort." << std::endl;
    return 1;
  }

  ZDvidTarget target;
  target.loadJsonObject(dvidJson);
  if (!target.isValid()) {
    std::cerr << "No valide dvid server specified. Abort." << std::endl;
    return 1;
  }

  if (target.getBodyLabelName().empty()) {
    std::cerr << "No sparsevol data specified. Abort." << std::endl;
    return 1;
  }

  ZJsonObject docJson;
  docJson.load(input.front());

  ZJsonArray rootObj(docJson.value("meshReview"));
  if (rootObj.isEmpty()) {
    std::cerr << "Unrecognized input format. Abort." << std::endl;
    return 1;
  }

  ZDvidWriter *writer = ZGlobal::GetInstance().getDvidWriterFromUrl(
        GET_FLYEM_CONFIG.getTaskServer());
  if (writer == NULL) {
    std::cerr << "Unable to Initialize the task server: "
              << GET_FLYEM_CONFIG.getTaskServer() << std::endl;
    std::cerr << "Abort" << std::endl;
    return 1;
  } else {
    std::cout << "Task server: " << writer->getDvidTarget().getSourceString()
              << std::endl;
  }

  ZDvidUrl dvidUrl(target);

  std::cout << std::endl;
  std::cout << "Uploading tasks: " << std::endl << std::endl;
  int count = 0;
  for (size_t i = 0; i < rootObj.size(); ++i) {
    ZJsonObject obj(rootObj.value(i));
    ZJsonArray markerJson(obj.value("pointMarkers"));
#ifdef _DEBUG_2
      std::cout << "Here";
#endif
    if (!markerJson.isEmpty()) {
      uint64_t bodyId =
          ZString(obj.value("file").toString()).firstUint64();

      if (bodyId > 0) {
        ZJsonObject taskJson;
        ZFlyEmMisc::SetSplitTaskSignalUrl(taskJson, bodyId, target);
        for (size_t i = 0; i < markerJson.size(); ++i) {
          ZJsonObject markerObj(markerJson.value(i));
          ZStroke2d stroke =
              ZFlyEmMisc::SyGlassSeedToStroke(markerObj);
          ZFlyEmMisc::AddSplitTaskSeed(taskJson, stroke);
        }

        std::string location = writer->writeServiceTask("split", taskJson);
        ZJsonObject entryJson;
        entryJson.setEntry(neutube::json::REF_KEY, location);
        QString taskKey = dvidUrl.getSplitTaskKey(bodyId).c_str();
        writer->writeSplitTask(taskKey, taskJson);
        std::cout << "*    Task for " << bodyId << " is saved @ "
                  << taskKey.toStdString() << "->" << location << std::endl;
        ++count;
      }
    }
  }
  std::cout << std::endl;
  std::cout << count << " tasks uploaded." << std::endl;

  return 0;
}