Beispiel #1
0
        // Originally overloaded operator ()
        public void ProcessFrame(
            Vector pt,
            int frame_no,
            List <ContinuousResult> results
            )
        {
            if (lastFrameNo == -1)
            {
                last_pt = pt;
            }

            // Update Circular Buffer
            while (lastFrameNo < frame_no)
            {
                buffer.Insert(pt);
                lastFrameNo++;
            }

            Vector vec            = pt - last_pt;
            double segment_length = vec.L2Norm();

            if (device_type == DeviceType.MOUSE && segment_length < 10.0)
            {
                return;
            }

            last_pt = pt;

            if (segment_length <= double.Epsilon)
            {
                return;
            }

            vec /= segment_length;

            for (int ii = 0; ii < templates.Count; ii++)
            {
                templates[ii].Update(
                    buffer,
                    pt,
                    vec,
                    frame_no,
                    segment_length
                    );

                results.Add(templates[ii].result);
            }
        }
Beispiel #2
0
 public void Update(Jackknife.Vector pt)
 {
     buffer.Insert(pt);
 }