Пример #1
0
const ValVec<htmRange> & 
htmInterface::convexHullCmd( char *str ) {

  cmd_ = str;
  if(t_)delete t_;
  t_ = new VarStrToken(cmd_);

  float64 v[3];

  cmdCode code = getCode();
  getDepth();

  polyCorners_.cut(polyCorners_.length());

  // the next positions give the coordinate
  while(  parseVec( code, v ) ) {
    if(code == J2000) {
      SpatialVector tv(v[0],v[1]);
      setPolyCorner(tv);
    } else {
      SpatialVector tv(v[0],v[1],v[2]);
      setPolyCorner(tv);
    }
  }

  return doHull();
}
Пример #2
0
const ValueVector & 
htmInterface::convexHullCmd( char *str ) {

  cmd_ = str;
  if(t_ != NULL) delete t_;
  t_ = new VarStrToken(cmd_);

  float64 v[3];

  cmdCode code = getCode();
  getDepth();
  polyCorners_.clear();

  while(  parseVec( code, v ) ) {
    if(code == J2000) {
      SpatialVector tv(v[0],v[1]);
      setPolyCorner(tv);
    } else {
      SpatialVector tv(v[0],v[1],v[2]);
      setPolyCorner(tv);
    }
  }

  return doHull();
}
Пример #3
0
//////////////////ConvexHull///////////////////////
const ValVec<htmRange> & 
htmInterface::convexHull( ValVec<float64> ra,
			  ValVec<float64> dec ) {

  if(ra.length() != dec.length())
    throw SpatialBoundsError("htmInterface:convexHull: ra and dec list are not equal size");

  polyCorners_.cut(polyCorners_.length());
  for(size_t i = 0; i < ra.length(); i++) {
    SpatialVector v(ra(i),dec(i));
    setPolyCorner(v);
  }

  return doHull();
}
Пример #4
0
//////////////////ConvexHull///////////////////////
const ValueVector & 
htmInterface::convexHull( ValueVectorF64 ra,
			  ValueVectorF64 dec ) {

  if(ra.size() != dec.size())
    throw SpatialBoundsError("htmInterface:convexHull: ra and dec list are not equal size");

  polyCorners_.clear();
  for(size_t i = 0; i < ra.size(); i++) {
    SpatialVector v(ra[i],dec[i]);
    setPolyCorner(v);
  }

  return doHull();
}
Пример #5
0
const ValVec<htmRange> & 
htmInterface::convexHull( ValVec<float64> x,
			  ValVec<float64> y,
			  ValVec<float64> z ) {

  if(x.length() != y.length() || x.length() != z.length())
    throw SpatialBoundsError("htmInterface:convexHull: x,y,z lists are not equal size");

  polyCorners_.cut(polyCorners_.length());
  for(size_t i = 0; i < x.length(); i++) {
    SpatialVector v(x(i),y(i),z(i));
    setPolyCorner(v);
  }

  return doHull();
}
Пример #6
0
const ValueVector & 
htmInterface::convexHull( ValueVectorF64 x,
			  ValueVectorF64 y,
			  ValueVectorF64 z ) {

  if(x.size() != y.size() || x.size() != z.size())
    throw SpatialBoundsError("htmInterface:convexHull: x,y,z lists are not equal size");

  polyCorners_.clear();
  for(size_t i = 0; i < x.size(); i++) {
    SpatialVector v(x[i],y[i],z[i]);
    setPolyCorner(v);
  }

  return doHull();
}