public Quaternion GetRotation(ReferenceFrame reference)
 {
     if (!rotStream.ContainsKey(reference))
     {
         var stream = new TimedStream <Tuple <double, double, double, double> >(connection.AddStream(() => vessel.Flight(reference).Rotation));
         rotStream.Add(reference, stream);
         Log("StreamAdded : " + vessel.id + " + " + reference.id + "rot");
     }
     return(rotStream[reference].Get().ToQuat());
 }
 public Vector3 GetPosition(ReferenceFrame reference)
 {
     if (!posStream.ContainsKey(reference))
     {
         var stream = new TimedStream <Tuple <double, double, double> >(connection.AddStream(() => vessel.Position(reference)));
         posStream.Add(reference, stream);
         Log("StreamAdded : " + vessel.id + " + " + reference.id + "pos");
     }
     return(posStream[reference].Get().ToVec());
 }
 public Vector3 GetAngularVelocity(ReferenceFrame reference)
 {
     if (!avelStream.ContainsKey(reference))
     {
         var stream = new TimedStream <Tuple <double, double, double> >(connection.AddStream(() => vessel.AngularVelocity(reference)));
         avelStream.Add(reference, stream);
         Log("StreamAdded : " + vessel.id + " + " + reference.id + "avel");
     }
     return(avelStream[reference].Get().ToVec());
 }
        public float GetMass()
        {
            var key = "mass";

            if (!otherStream1f.ContainsKey(key))
            {
                var stream = new TimedStream <float>(connection.AddStream(() => vessel.Mass));
                otherStream1f.Add(key, stream);
            }
            return(otherStream1f[key].Get());
        }
        public float GetSurfaceAlt()
        {
            var key = "surfaceAlt";

            if (!otherStream1.ContainsKey(key))
            {
                var stream = new TimedStream <double>(connection.AddStream(() => vessel.Flight(vessel.ReferenceFrame).SurfaceAltitude));
                otherStream1.Add(key, stream);
            }
            return((float)otherStream1[key].Get());
        }
        public Vector3 GetInteria()
        {
            var key = "interia";

            if (!otherStream3.ContainsKey(key))
            {
                var stream = new TimedStream <Tuple <double, double, double> >(connection.AddStream(() => vessel.MomentOfInertia));
                otherStream3.Add(key, stream);
            }
            return(otherStream3[key].Get().ToVec());
        }
        public Vector3[] GetSurfaceBoundingBox()
        {
            var key = "surfaceBoundingBox";

            if (!otherStream3_3.ContainsKey(key))
            {
                var stream = new TimedStream <Tuple <Tuple <double, double, double>, Tuple <double, double, double> > >(connection.AddStream(() => vessel.BoundingBox(vessel.SurfaceReferenceFrame)));
                otherStream3_3.Add(key, stream);
            }
            return(otherStream3_3[key].Get().ToVec());
        }