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; }
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); }