예제 #1
0
void ZIntPoint::set(const std::vector<int> &pt)
{
  if (pt.size() == 3) {
    set(pt[0], pt[1], pt[2]);
  } else {
    RECORD_WARNING_UNCOND("Unexpected array size.");
  }
}
예제 #2
0
void ZDvidTarget::setFromSourceString(const std::string &sourceString)
{
  clear();

  std::vector<std::string> tokens = ZString(sourceString).tokenize(':');
  m_node.setFromSourceToken(tokens);
  if (tokens.size() >= 5) {
    setBodyLabelName(tokens[4]);
  }

  if (tokens.size() >= 6) {
    setGrayScaleName(tokens[5]);
  }
#if 0
  if (tokens.size() < 4 || tokens[0] != "http" || tokens[0] != "mock") {
#if defined(_QT_APPLICATION_)
    LWARN() << "Invalid source string for dvid target:" << sourceString.c_str();
#else
    RECORD_WARNING_UNCOND("Invalid source string");
#endif
  } else {
    int port = -1;
    if (!tokens[2].empty()) {
      port = ZString::FirstInteger(tokens[2]);
      if (tokens[2][0] == '-') {
        port = -port;
      }
    }
    set(tokens[1], tokens[3], port);
    if (tokens.size() >= 5) {
      setBodyLabelName(tokens[4]);
    }

    if (tokens.size() >= 6) {
      setGrayScaleName(tokens[5]);
    }
    if (tokens[0] == "mock") {
      setMock(true);
    }
  }
#endif
}
예제 #3
0
void ZDvidTarget::setFromSourceString(
    const std::string &sourceString, ZDvid::EDataType dataType)
{
  clear();

  std::vector<std::string> tokens = ZString(sourceString).tokenize(':');

  if (tokens.size() < 4 || tokens[0] != "http" || tokens[0] != "mock") {
#if defined(_QT_APPLICATION_)
    LWARN() << "Invalid source string for dvid target:" << sourceString.c_str();
#else
    RECORD_WARNING_UNCOND("Invalid source string");
#endif
  } else {
    int port = -1;
    if (!tokens[2].empty()) {
      port = ZString::FirstInteger(tokens[2]);
      if (tokens[2][0] == '-') {
        port = -port;
      }
    }
    set(tokens[1], tokens[3], port);
    if (tokens.size() >= 5) {
      switch (dataType) {
      case ZDvid::TYPE_LABELVOL:
        setBodyLabelName(tokens[4]);
        break;
      case ZDvid::TYPE_UINT8BLK:
        setGrayScaleName(tokens[4]);
        break;
      default:
        break;
      }
    }
    if (tokens[0] == "mock") {
      setMock(true);
    }
  }
}
예제 #4
0
double ZSwcDeepAngleMetric::computeAngle(
    const Swc_Tree_Node *tn1, const Swc_Tree_Node *tn2,
    const Swc_Tree_Node *tn3, const Swc_Tree_Node *tn4)
{
  if (tn1 == NULL || tn2 == NULL || tn3 == NULL || tn4 == NULL) {
    RECORD_WARNING_UNCOND("Null pointer");
    return 0.0;
  }

  double pos1[3] = {0, 0, 0};
  double pos2[3] = {0, 0, 0};
  double pos3[3] = {0, 0, 0};
  double pos4[3] = {0, 0, 0};

  Swc_Tree_Node_Pos(tn1, pos1);
  Swc_Tree_Node_Pos(tn2, pos2);
  Swc_Tree_Node_Pos(tn3, pos3);
  Swc_Tree_Node_Pos(tn4, pos4);

  double a1 = acos(Coordinate_3d_Cos3(pos1, pos2, pos3));
  double a2 = acos(Coordinate_3d_Cos3(pos2, pos3, pos4));

  return a1 + a2;
}