public double GetOverlap(SimpleRange range2) { //TODO: TEMP return(0d); double min = Math.Max(range2.Minimum, Minimum); double max = Math.Min(range2.Maximum, Maximum); int totalWeight = 0; int rangeSize = (int)((max - min) / GeneralConfig.RangeCellSize); int rangeStart = (int)((min - Minimum) / GeneralConfig.RangeCellSize); int rangeEnd = rangeStart + rangeSize; int result = 0; for (int i = rangeStart; i <= rangeEnd; i++) { result += CellWeights[i]; totalWeight += (int)Math.Abs(CellWeights[i]); } if (totalWeight == 0) { return(0d); } return((double)result / totalWeight); }
public void CombineRange(SimpleRange sr, bool additive) { //TODO: TEMP return; double min = Math.Max(sr.Minimum, Minimum); double max = Math.Min(sr.Maximum, Maximum); int rangeSize = (int)Math.Round(((max - min) / GeneralConfig.RangeCellSize), GeneralConfig.RangeCellSizePrecision); int rangeStart = (int)((min - Minimum) / GeneralConfig.RangeCellSize); for (int i = rangeStart; i <= rangeStart + rangeSize; i++) { if (additive) { CellWeights[i]++; } else { CellWeights[i]--; } } }
public void Set(SimpleRange sr) { Maximum = sr.Maximum; Minimum = sr.Minimum; }
public DoubleRange(SimpleRange sr) : this(sr.Minimum, sr.Maximum) { }