Exemple #1
0
double3
lwc_global64(const lwcoord64_t *coord)
{
  double3 p = coord->offs;
  double3 seg = v3l_to_v3d(coord->seg);
  return vd3_add(p, vd3_s_mul(seg, OO_LW_SEGMENT_LEN64));
}
Exemple #2
0
void
lwc_translate3dv(lwcoord_t *coord, double3 offs)
{
  double3 v = vd3_add(coord->offs, offs);
  coord->offs = v;
  lwc_normalise(coord);
}
Exemple #3
0
void
lwc_translate3fv(lwcoord_t *coord, float3 offs)
{
  double3 offsd = vf3_to_vd3(offs);
  coord->offs = vd3_add(coord->offs, offsd);
  lwc_normalise(coord);
}
Exemple #4
0
double3
lwc_dist64(const lwcoord64_t *a, const lwcoord64_t * b)
{
  double3 diff = vd3_sub(a->offs, b->offs);
  long3 segdiff = a->seg - b->seg;
  double3 segdiffr = vd3_set((double)v3l_get(segdiff, 0),
                             (double)v3l_get(segdiff, 1),
                             (double)v3l_get(segdiff, 2));

  return vd3_add(diff, vd3_s_mul(segdiffr, OO_LW_SEGMENT_LEN64));
}
Exemple #5
0
double3
lwc_dist(const lwcoord_t *a, const lwcoord_t * b)
{
  double3 diff = vd3_sub(a->offs, b->offs);
  long3 segdiff = a->seg - b->seg;
  double3 segdiffr = vd3_set((double)segdiff.x,
                             (double)segdiff.y,
                             (double)segdiff.z);

  return vd3_add(diff, vd3_s_mul(segdiffr, OO_LW_SEGMENT_LEN));
}
Exemple #6
0
double3
lwc_relvec(const lwcoord_t *coord, long3 seg)
{
  double3 r = coord->offs;
  long3 segdiff = coord->seg - seg;
  double3 segdiffr = vd3_set((double)segdiff.x,
                             (double)segdiff.y,
                             (double)segdiff.z);
  r = vd3_add(r, vd3_s_mul(segdiffr, OO_LW_SEGMENT_LEN));
  return r;
}
Exemple #7
0
double3
lwc_relvec64(const lwcoord64_t *coord, long3 seg)
{
  double3 r = coord->offs;
  long3 segdiff = coord->seg - seg;

  double3 segdiffr = vd3_set((double)v3l_get(segdiff, 0),
                             (double)v3l_get(segdiff, 1),
                             (double)v3l_get(segdiff, 2));

  r = vd3_add(r, vd3_s_mul(segdiffr, OO_LW_SEGMENT_LEN64));
  return r;
}
Exemple #8
0
void
lwc_translate64(lwcoord64_t *coord, double3 offs)
{
  coord->offs = vd3_add(coord->offs, offs);
  lwc_normalise64(coord);
}
Exemple #9
0
void
lwc_translate3f(lwcoord_t *coord, float dx, float dy, float dz)
{
  coord->offs = vd3_add(coord->offs, vd3_set(dx, dy, dz));
  lwc_normalise(coord);
}
Exemple #10
0
void
elp2000_transform(cm_orbit_t *obj, cm_world_t *state)
{
  // ELP computes the position in geo-centric coordinates
  obj->p = vd3_add(obj->p, obj->parent->p);
}