Exemple #1
0
            public SensValue ActivateAndGetValue(Point center, Point point)
            {
                var Weight   = new SensValue();
                var sensData = new SensData();
                var shift    = sensData.Shift = point - center;

                sensData.Point  = point;
                sensData.Length = Math.Abs(sensData.Shift.X) + Math.Abs(sensData.Shift.Y);
                if (shift.X < 0)
                {
                    sensData.Direction = Direction.Left;
                    Weight.left        = Activate(sensData);
                }
                else if (shift.X > 0)
                {
                    sensData.Direction = Direction.Right;
                    Weight.right       = Activate(sensData);
                }
                if (shift.Y > 0)
                {
                    sensData.Direction = Direction.Up;
                    Weight.up          = Activate(sensData);
                }
                else if (shift.Y < 0)
                {
                    sensData.Direction = Direction.Down;
                    Weight.down        = Activate(sensData);
                }


                return(Weight);
            }
Exemple #2
0
            public SensValue GetValue(Point center, Point point)
            {
                var Weight = new SensValue();

                if (IsActiv(point))
                {
                    return(ActivateAndGetValue(center, point));
                }
                return(SensValue.Zero);
            }
Exemple #3
0
 public TargetWindow(int size)
 {
     pole = new SensValue[size, size];
     for (var i = 0; i < size; i++)
     {
         for (var j = 0; j < size; j++)
         {
             pole[i, j] = new SensValue();
         }
     }
     head = new SensValue();
 }
Exemple #4
0
        public SensValue Update(Point center)
        {
            head = SensValue.Zero;
            foreach (var sensor in sensors)
            {
                if (sensor.active)
                {
                    var elements = sensor.GetActivePoints();
                    var sum      = SensValue.Zero;
                    foreach (var el in elements.Select(ap => sensor.Sensor.ActivateAndGetValue(center, ap)))
                    {
                        sum += el;
                    }
                    head += sum;
                }
            }

            return(head);
        }
Exemple #5
0
 // GetValueString
 // Return the value of the sensor as a string (default)
 // This method can be overriden by child classes
 protected virtual string GetValueString()
 {
     return(SensValue.ToString());
 }