Ejemplo n.º 1
0
    // save all marker frames into a file
    // useful for saving marker frames created in the editor
    private void saveMarkerFrames(string filename)
    {
        StringBuilder sb = new StringBuilder();

        string delimiter = ",";

        string[] output = new string[3];
        int      length = animationFrames.Count;

        for (int i = 0; i < length; i++)
        {
            if (animationFrames [i].GetType() != typeof(MarkerFrame))
            {
                continue;
            }

            MarkerFrame mFrame = (MarkerFrame)animationFrames [i];
            output [0] = string.Format("{0}", mFrame.timestamp);
            output [1] = string.Format("{0:0.00}", mFrame.coords.x - .15f);
            output [2] = string.Format("{0:0.00}", mFrame.coords.y + .15f);
            sb.AppendLine(string.Join(delimiter, output));
        }

        string filePath = Application.dataPath + "/Resources/" + filename;

        StreamWriter outStream = System.IO.File.CreateText(filePath);

        outStream.WriteLine(sb.ToString());
        outStream.Close();
    }
Ejemplo n.º 2
0
        public void UpdateMeasurements(MarkerFrame markerFrame)
        {
            measurements = markerFrame.DetectedMarkers.Select(marker =>
            {
                var markerTransform = marker.GetGLModelViewMatrix();
                var markerPosition  = new DenseVector(new[] { -markerTransform[14], markerTransform[12] });
                var bearing         = -Math.Atan2(markerPosition[1], markerPosition[0]);
                var range           = markerPosition.Norm(2);
                //System.Diagnostics.Trace.WriteLine(string.Format("mx: {0} my: {1} bearing:{2} range:{3}", markerPosition[0], markerPosition[1], bearing, range));

                if (!landmarkIndices.Contains(marker.Id))
                {
                    var nextIndex = landmarkIndices.Count;
                    landmarkIndices.Add(new LandmarkMapping {
                        MarkerId = marker.Id, LandmarkIndex = nextIndex
                    });
                }

                var landmarkIndex = landmarkIndices[marker.Id].LandmarkIndex;
                return(new LandmarkMeasurement(landmarkIndex, new DenseVector(new[] { range, bearing })));
            }).ToList();
        }