DirectOutputR1
DirectOutput framework R1 for virtual pinball cabinets.
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
AnalogLayerDictionary.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 
6 namespace DirectOutput.Cab.Toys.Layer
7 {
11  public class AnalogLayerDictionary : SortedDictionary<int, AnalogAlphaLayer>
12  {
13 
23  public new AnalogAlphaLayer this[int LayerNr]
24  {
25  get
26  {
27  try
28  {
29  return base[LayerNr];
30  }
31  catch
32  {
34  Add(LayerNr, L);
35  return L;
36  }
37  }
38  set
39  {
40  base[LayerNr] = value;
41  }
42  }
43 
44 
45 
46 
47 
52  public int GetResultingValue()
53  {
54  if (Count > 0)
55  {
56  float Value = 0;
57 
58  foreach (KeyValuePair<int, AnalogAlphaLayer> KV in this)
59  {
60  int Alpha = KV.Value.Alpha ;
61  if (Alpha != 0)
62  {
63  Value = AlphaMappingTable.AlphaMapping[255 - Alpha, (int)Value] + AlphaMappingTable.AlphaMapping[Alpha, KV.Value.Value];
64  }
65  }
66 
67  return (int)Value;
68  }
69  else
70  {
71  return 0;
72  }
73  }
74 
75 
76 
77  }
78 
79 }