Exemplo n.º 1
0
 public MovementPrimitive(Movement.Type path, Vector3 start, Vector3 end, float dur, Vector3 dep = default(Vector3), Vector3 center = default(Vector3), float rotationAngle = 0)
 {
     this.path          = path;
     startPoint         = start;
     endPoint           = end;
     duration           = dur;
     this.circleCenter  = center;
     curveDepth         = dep;
     this.rotationAngle = rotationAngle;
     this.startTime     = 0;
     this.radius        = Vector3.Distance(circleCenter, startPoint);
     this.timeDelta     = 0;
     this.timeDeltaSum  = 0;
 }
Exemplo n.º 2
0
        public MovementPrimitive(string stateString)
        {
            var split = stateString.Split('|');

            if (split[0] == "Line")
            {
                path = Type.Line;
            }
            else if (split[0] == "Circle")
            {
                path = Type.Circle;
            }
            else if (split[0] == "Sine" || split[0] == "Sin")
            {
                path = Type.Sine;
            }
            else if (split[0] == "Curve")
            {
                path = Type.Curve;
            }
            else if (split[0] == "Wait")
            {
                path = Type.Wait;
            }

            startPoint = StringToVector(split[1]);
            endPoint   = StringToVector(split[2]);
            float.TryParse(split[3], out duration);
            float.TryParse(split[4], out startTime);
            curveDepth   = StringToVector(split[5]);
            circleCenter = StringToVector(split[6]);
            float.TryParse(split[7], out rotationAngle);
            float.TryParse(split[8], out radius);
            this.ccw = (split[9] == "True");
            float.TryParse(split[10], out amplitude);
            float.TryParse(split[11], out frequency);
            float.TryParse(split[12], out phase);
            float.TryParse(split[13], out timeDelta);
            float.TryParse(split[14], out timeDeltaSum);
        }