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); }
public SensValue GetValue(Point center, Point point) { var Weight = new SensValue(); if (IsActiv(point)) { return(ActivateAndGetValue(center, point)); } return(SensValue.Zero); }
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(); }
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); }
// 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()); }