Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
ParameterDynamicBase.cs
Go to the documentation of this file.
1 
2 // Copyright (c) 2011 Silicon Studio
3 // AUTOGENERATED, do not modify!
4 
5 using System;
6 
7 namespace SiliconStudio.Paradox.Effects
8 {
9  /// <summary>
10  /// Base class for <see cref="ParameterDynamicValue"/>.
11  /// </summary>
12  public abstract class ParameterDynamicBase
13  {
14  protected ParameterDynamicBase() : this(true)
15  {
16  }
17 
18  protected ParameterDynamicBase(bool autoCheckDependencies)
19  {
20  AutoCheckDependencies = autoCheckDependencies;
21  }
22 
23  public bool AutoCheckDependencies { get; set; }
24 
25  public int SizeInBytes { get; set; }
26 
27  public ParameterKey[] Dependencies { get; set; }
28 
29  public ParameterKey Target { get; set; }
30 
31  internal abstract Delegate SourceDelegate { get; }
32 
33  internal abstract void GetValue(ParameterCollection.InternalValue result);
34  }
35 
36  public delegate void ParameterUpdateDelegate1<TCast1, T>(ref TCast1 param1, ref T output);
37  public delegate void ParameterUpdateDelegate2<TCast1, TCast2, T>(ref TCast1 param1, ref TCast2 param2, ref T output);
38  public delegate void ParameterUpdateDelegate3<TCast1, TCast2, TCast3, T>(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref T output);
39  public delegate void ParameterUpdateDelegate4<TCast1, TCast2, TCast3, TCast4, T>(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref TCast4 param4, ref T output);
40  public delegate void ParameterUpdateDelegate5<TCast1, TCast2, TCast3, TCast4, TCast5, T>(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref TCast4 param4, ref TCast5 param5, ref T output);
41  public delegate void ParameterUpdateDelegate6<TCast1, TCast2, TCast3, TCast4, TCast5, TCast6, T>(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref TCast4 param4, ref TCast5 param5, ref TCast6 param6, ref T output);
42 
43  /// <summary>
44  /// Base class for <see cref="ParameterDynamicValue{T}"/>.
45  /// </summary>
47  {
48  public static ParameterDynamicValue<T> New<T, T1>(ParameterKey<T1> param1, ParameterUpdateDelegate1<T1, T> update, bool autoCheckDependencies = true)
49 /* where T : struct
50  where T1 : struct
51 */
52  {
53  return new ParameterDynamicValue1<T, T1, T, T1>(param1, update, autoCheckDependencies);
54  }
55  public static ParameterDynamicValue<T> New<T, T1, T2>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterUpdateDelegate2<T1, T2, T> update, bool autoCheckDependencies = true)
56 /* where T : struct
57  where T1 : struct
58  where T2 : struct
59 */
60  {
61  return new ParameterDynamicValue2<T, T1, T2, T, T1, T2>(param1, param2, update, autoCheckDependencies);
62  }
63  public static ParameterDynamicValue<T> New<T, T1, T2, T3>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterUpdateDelegate3<T1, T2, T3, T> update, bool autoCheckDependencies = true)
64 /* where T : struct
65  where T1 : struct
66  where T2 : struct
67  where T3 : struct
68 */
69  {
70  return new ParameterDynamicValue3<T, T1, T2, T3, T, T1, T2, T3>(param1, param2, param3, update, autoCheckDependencies);
71  }
72  public static ParameterDynamicValue<T> New<T, T1, T2, T3, T4>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterUpdateDelegate4<T1, T2, T3, T4, T> update, bool autoCheckDependencies = true)
73 /* where T : struct
74  where T1 : struct
75  where T2 : struct
76  where T3 : struct
77  where T4 : struct
78 */
79  {
80  return new ParameterDynamicValue4<T, T1, T2, T3, T4, T, T1, T2, T3, T4>(param1, param2, param3, param4, update, autoCheckDependencies);
81  }
82  public static ParameterDynamicValue<T> New<T, T1, T2, T3, T4, T5>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterKey<T5> param5, ParameterUpdateDelegate5<T1, T2, T3, T4, T5, T> update, bool autoCheckDependencies = true)
83 /* where T : struct
84  where T1 : struct
85  where T2 : struct
86  where T3 : struct
87  where T4 : struct
88  where T5 : struct
89 */
90  {
91  return new ParameterDynamicValue5<T, T1, T2, T3, T4, T5, T, T1, T2, T3, T4, T5>(param1, param2, param3, param4, param5, update, autoCheckDependencies);
92  }
93  public static ParameterDynamicValue<T> New<T, T1, T2, T3, T4, T5, T6>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterKey<T5> param5, ParameterKey<T6> param6, ParameterUpdateDelegate6<T1, T2, T3, T4, T5, T6, T> update, bool autoCheckDependencies = true)
94 /* where T : struct
95  where T1 : struct
96  where T2 : struct
97  where T3 : struct
98  where T4 : struct
99  where T5 : struct
100  where T6 : struct
101 */
102  {
103  return new ParameterDynamicValue6<T, T1, T2, T3, T4, T5, T6, T, T1, T2, T3, T4, T5, T6>(param1, param2, param3, param4, param5, param6, update, autoCheckDependencies);
104  }
105 
106 /* public static ParameterDynamicValue<T> NewCast<T, T1, TCast, TCast1>(ParameterKey<T1> param1, ParameterUpdateDelegate1<TCast1, TCast> update)
107  where T : struct
108  where TCast : struct
109  where T1 : struct
110  where TCast1 : struct
111  {
112  return new ParameterDynamicValue1<T, T1, TCast, TCast1>(param1, update);
113  }
114  public static ParameterDynamicValue<T> NewCast<T, T1, T2, TCast, TCast1, TCast2>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterUpdateDelegate2<TCast1, TCast2, TCast> update)
115  where T : struct
116  where TCast : struct
117  where T1 : struct
118  where TCast1 : struct
119  where T2 : struct
120  where TCast2 : struct
121  {
122  return new ParameterDynamicValue2<T, T1, T2, TCast, TCast1, TCast2>(param1, param2, update);
123  }
124  public static ParameterDynamicValue<T> NewCast<T, T1, T2, T3, TCast, TCast1, TCast2, TCast3>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterUpdateDelegate3<TCast1, TCast2, TCast3, TCast> update)
125  where T : struct
126  where TCast : struct
127  where T1 : struct
128  where TCast1 : struct
129  where T2 : struct
130  where TCast2 : struct
131  where T3 : struct
132  where TCast3 : struct
133  {
134  return new ParameterDynamicValue3<T, T1, T2, T3, TCast, TCast1, TCast2, TCast3>(param1, param2, param3, update);
135  }
136  public static ParameterDynamicValue<T> NewCast<T, T1, T2, T3, T4, TCast, TCast1, TCast2, TCast3, TCast4>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterUpdateDelegate4<TCast1, TCast2, TCast3, TCast4, TCast> update)
137  where T : struct
138  where TCast : struct
139  where T1 : struct
140  where TCast1 : struct
141  where T2 : struct
142  where TCast2 : struct
143  where T3 : struct
144  where TCast3 : struct
145  where T4 : struct
146  where TCast4 : struct
147  {
148  return new ParameterDynamicValue4<T, T1, T2, T3, T4, TCast, TCast1, TCast2, TCast3, TCast4>(param1, param2, param3, param4, update);
149  }
150  public static ParameterDynamicValue<T> NewCast<T, T1, T2, T3, T4, T5, TCast, TCast1, TCast2, TCast3, TCast4, TCast5>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterKey<T5> param5, ParameterUpdateDelegate5<TCast1, TCast2, TCast3, TCast4, TCast5, TCast> update)
151  where T : struct
152  where TCast : struct
153  where T1 : struct
154  where TCast1 : struct
155  where T2 : struct
156  where TCast2 : struct
157  where T3 : struct
158  where TCast3 : struct
159  where T4 : struct
160  where TCast4 : struct
161  where T5 : struct
162  where TCast5 : struct
163  {
164  return new ParameterDynamicValue5<T, T1, T2, T3, T4, T5, TCast, TCast1, TCast2, TCast3, TCast4, TCast5>(param1, param2, param3, param4, param5, update);
165  }
166  public static ParameterDynamicValue<T> NewCast<T, T1, T2, T3, T4, T5, T6, TCast, TCast1, TCast2, TCast3, TCast4, TCast5, TCast6>(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterKey<T5> param5, ParameterKey<T6> param6, ParameterUpdateDelegate6<TCast1, TCast2, TCast3, TCast4, TCast5, TCast6, TCast> update)
167  where T : struct
168  where TCast : struct
169  where T1 : struct
170  where TCast1 : struct
171  where T2 : struct
172  where TCast2 : struct
173  where T3 : struct
174  where TCast3 : struct
175  where T4 : struct
176  where TCast4 : struct
177  where T5 : struct
178  where TCast5 : struct
179  where T6 : struct
180  where TCast6 : struct
181  {
182  return new ParameterDynamicValue6<T, T1, T2, T3, T4, T5, T6, TCast, TCast1, TCast2, TCast3, TCast4, TCast5, TCast6>(param1, param2, param3, param4, param5, param6, update);
183  }
184 */
185 
187  {
188  // TODO: Optimize
189  return (ParameterDynamicValue)this.MemberwiseClone();
190  }
191  }
192 
193 
194  /// <summary>
195  /// Describes a dynamic value with no input.
196  /// </summary>
197  public abstract class ParameterDynamicValue<T> : ParameterDynamicValue
198  {
199  }
200 
201  /// <summary>
202  /// Describes a dynamic value with 1 inputs.
203  /// </summary>
204  /// <typeparam name="T"></typeparam>
205  /// <typeparam name="T1">The type of the 1.</typeparam>
206  internal class ParameterDynamicValue1<T, T1, TCast, TCast1> : ParameterDynamicValue<T>
207 /* where T : struct
208  where TCast : struct
209  where T1 : struct
210  where TCast1 : struct
211 */
212  {
213  /// <summary>
214  /// Initializes a new instance of the <see cref="ParameterDynamicValue{T,T1}"/> class.
215  /// </summary>
216  /// <param name="param1">The param1.</param>
217  /// <param name="update">The update.</param>
218  public ParameterDynamicValue1(ParameterKey<T1> param1, ParameterUpdateDelegate1<TCast1, TCast> update, bool autoCheckDependencies)
219  {
220  AutoCheckDependencies = autoCheckDependencies;
221  Dependencies = new ParameterKey[] { param1, };
222  Update = update;
223  }
224 
225 
226  /// <summary>
227  ///
228  /// </summary>
229  public ParameterUpdateDelegate1<TCast1, TCast> Update { get; private set; }
230 
231  internal override Delegate SourceDelegate { get { return Update; } }
232 
233  /// <summary>
234  /// Gets the value.
235  /// </summary>
236  /// <typeparam name="TValue">The type of the value.</typeparam>
237  /// <returns></returns>
238  internal override void GetValue(ParameterCollection.InternalValue result)
239  {
240  //var temp1 = *Framework.Utilities.Cast<TCast1>((byte*)parameters[0].Value.Data);
241  //var temp1 = ((ParameterCollection.InternalValue<TCast1>)parameters[0].Value).Value;
242  //Update(ref temp1, ref ((ParameterCollection.InternalValue<TCast>)result).Value);
243 
244  var parameters = result.Dependencies;
245  Update(ref ((ParameterCollection.InternalValueBase<TCast1>)parameters[0].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast>)result).Value);
246  }
247  }
248  /// <summary>
249  /// Describes a dynamic value with 2 inputs.
250  /// </summary>
251  /// <typeparam name="T"></typeparam>
252  /// <typeparam name="T1">The type of the 1.</typeparam>
253  internal class ParameterDynamicValue2<T, T1, T2, TCast, TCast1, TCast2> : ParameterDynamicValue<T>
254 /* where T : struct
255  where TCast : struct
256  where T1 : struct
257  where TCast1 : struct
258  where T2 : struct
259  where TCast2 : struct
260 */
261  {
262  /// <summary>
263  /// Initializes a new instance of the <see cref="ParameterDynamicValue{T,T1}"/> class.
264  /// </summary>
265  /// <param name="param1">The param1.</param>
266  /// <param name="update">The update.</param>
267  public ParameterDynamicValue2(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterUpdateDelegate2<TCast1, TCast2, TCast> update, bool autoCheckDependencies)
268  {
269  AutoCheckDependencies = autoCheckDependencies;
270  Dependencies = new ParameterKey[] { param1, param2, };
271  Update = update;
272  }
273 
274 
275  /// <summary>
276  ///
277  /// </summary>
278  public ParameterUpdateDelegate2<TCast1, TCast2, TCast> Update { get; private set; }
279 
280  internal override Delegate SourceDelegate { get { return Update; } }
281 
282  /// <summary>
283  /// Gets the value.
284  /// </summary>
285  /// <typeparam name="TValue">The type of the value.</typeparam>
286  /// <returns></returns>
287  internal override void GetValue(ParameterCollection.InternalValue result)
288  {
289  //var temp1 = *Framework.Utilities.Cast<TCast1>((byte*)parameters[0].Value.Data);
290  //var temp1 = ((ParameterCollection.InternalValue<TCast1>)parameters[0].Value).Value;
291  //var temp2 = *Framework.Utilities.Cast<TCast2>((byte*)parameters[1].Value.Data);
292  //var temp2 = ((ParameterCollection.InternalValue<TCast2>)parameters[1].Value).Value;
293  //Update(ref temp1, ref temp2, ref ((ParameterCollection.InternalValue<TCast>)result).Value);
294 
295  var parameters = result.Dependencies;
296  Update(ref ((ParameterCollection.InternalValueBase<TCast1>)parameters[0].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast2>)parameters[1].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast>)result).Value);
297  }
298  }
299  /// <summary>
300  /// Describes a dynamic value with 3 inputs.
301  /// </summary>
302  /// <typeparam name="T"></typeparam>
303  /// <typeparam name="T1">The type of the 1.</typeparam>
304  internal class ParameterDynamicValue3<T, T1, T2, T3, TCast, TCast1, TCast2, TCast3> : ParameterDynamicValue<T>
305 /* where T : struct
306  where TCast : struct
307  where T1 : struct
308  where TCast1 : struct
309  where T2 : struct
310  where TCast2 : struct
311  where T3 : struct
312  where TCast3 : struct
313 */
314  {
315  /// <summary>
316  /// Initializes a new instance of the <see cref="ParameterDynamicValue{T,T1}"/> class.
317  /// </summary>
318  /// <param name="param1">The param1.</param>
319  /// <param name="update">The update.</param>
320  public ParameterDynamicValue3(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterUpdateDelegate3<TCast1, TCast2, TCast3, TCast> update, bool autoCheckDependencies)
321  {
322  AutoCheckDependencies = autoCheckDependencies;
323  Dependencies = new ParameterKey[] { param1, param2, param3, };
324  Update = update;
325  }
326 
327 
328  /// <summary>
329  ///
330  /// </summary>
331  public ParameterUpdateDelegate3<TCast1, TCast2, TCast3, TCast> Update { get; private set; }
332 
333  internal override Delegate SourceDelegate { get { return Update; } }
334 
335  /// <summary>
336  /// Gets the value.
337  /// </summary>
338  /// <typeparam name="TValue">The type of the value.</typeparam>
339  /// <returns></returns>
340  internal override void GetValue(ParameterCollection.InternalValue result)
341  {
342  //var temp1 = *Framework.Utilities.Cast<TCast1>((byte*)parameters[0].Value.Data);
343  //var temp1 = ((ParameterCollection.InternalValue<TCast1>)parameters[0].Value).Value;
344  //var temp2 = *Framework.Utilities.Cast<TCast2>((byte*)parameters[1].Value.Data);
345  //var temp2 = ((ParameterCollection.InternalValue<TCast2>)parameters[1].Value).Value;
346  //var temp3 = *Framework.Utilities.Cast<TCast3>((byte*)parameters[2].Value.Data);
347  //var temp3 = ((ParameterCollection.InternalValue<TCast3>)parameters[2].Value).Value;
348  //Update(ref temp1, ref temp2, ref temp3, ref ((ParameterCollection.InternalValue<TCast>)result).Value);
349 
350  var parameters = result.Dependencies;
351  Update(ref ((ParameterCollection.InternalValueBase<TCast1>)parameters[0].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast2>)parameters[1].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast3>)parameters[2].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast>)result).Value);
352  }
353  }
354  /// <summary>
355  /// Describes a dynamic value with 4 inputs.
356  /// </summary>
357  /// <typeparam name="T"></typeparam>
358  /// <typeparam name="T1">The type of the 1.</typeparam>
359  internal class ParameterDynamicValue4<T, T1, T2, T3, T4, TCast, TCast1, TCast2, TCast3, TCast4> : ParameterDynamicValue<T>
360 /* where T : struct
361  where TCast : struct
362  where T1 : struct
363  where TCast1 : struct
364  where T2 : struct
365  where TCast2 : struct
366  where T3 : struct
367  where TCast3 : struct
368  where T4 : struct
369  where TCast4 : struct
370 */
371  {
372  /// <summary>
373  /// Initializes a new instance of the <see cref="ParameterDynamicValue{T,T1}"/> class.
374  /// </summary>
375  /// <param name="param1">The param1.</param>
376  /// <param name="update">The update.</param>
377  public ParameterDynamicValue4(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterUpdateDelegate4<TCast1, TCast2, TCast3, TCast4, TCast> update, bool autoCheckDependencies)
378  {
379  AutoCheckDependencies = autoCheckDependencies;
380  Dependencies = new ParameterKey[] { param1, param2, param3, param4, };
381  Update = update;
382  }
383 
384 
385  /// <summary>
386  ///
387  /// </summary>
388  public ParameterUpdateDelegate4<TCast1, TCast2, TCast3, TCast4, TCast> Update { get; private set; }
389 
390  internal override Delegate SourceDelegate { get { return Update; } }
391 
392  /// <summary>
393  /// Gets the value.
394  /// </summary>
395  /// <typeparam name="TValue">The type of the value.</typeparam>
396  /// <returns></returns>
397  internal override void GetValue(ParameterCollection.InternalValue result)
398  {
399  //var temp1 = *Framework.Utilities.Cast<TCast1>((byte*)parameters[0].Value.Data);
400  //var temp1 = ((ParameterCollection.InternalValue<TCast1>)parameters[0].Value).Value;
401  //var temp2 = *Framework.Utilities.Cast<TCast2>((byte*)parameters[1].Value.Data);
402  //var temp2 = ((ParameterCollection.InternalValue<TCast2>)parameters[1].Value).Value;
403  //var temp3 = *Framework.Utilities.Cast<TCast3>((byte*)parameters[2].Value.Data);
404  //var temp3 = ((ParameterCollection.InternalValue<TCast3>)parameters[2].Value).Value;
405  //var temp4 = *Framework.Utilities.Cast<TCast4>((byte*)parameters[3].Value.Data);
406  //var temp4 = ((ParameterCollection.InternalValue<TCast4>)parameters[3].Value).Value;
407  //Update(ref temp1, ref temp2, ref temp3, ref temp4, ref ((ParameterCollection.InternalValue<TCast>)result).Value);
408 
409  var parameters = result.Dependencies;
410  Update(ref ((ParameterCollection.InternalValueBase<TCast1>)parameters[0].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast2>)parameters[1].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast3>)parameters[2].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast4>)parameters[3].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast>)result).Value);
411  }
412  }
413  /// <summary>
414  /// Describes a dynamic value with 5 inputs.
415  /// </summary>
416  /// <typeparam name="T"></typeparam>
417  /// <typeparam name="T1">The type of the 1.</typeparam>
418  internal class ParameterDynamicValue5<T, T1, T2, T3, T4, T5, TCast, TCast1, TCast2, TCast3, TCast4, TCast5> : ParameterDynamicValue<T>
419 /* where T : struct
420  where TCast : struct
421  where T1 : struct
422  where TCast1 : struct
423  where T2 : struct
424  where TCast2 : struct
425  where T3 : struct
426  where TCast3 : struct
427  where T4 : struct
428  where TCast4 : struct
429  where T5 : struct
430  where TCast5 : struct
431 */
432  {
433  /// <summary>
434  /// Initializes a new instance of the <see cref="ParameterDynamicValue{T,T1}"/> class.
435  /// </summary>
436  /// <param name="param1">The param1.</param>
437  /// <param name="update">The update.</param>
438  public ParameterDynamicValue5(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterKey<T5> param5, ParameterUpdateDelegate5<TCast1, TCast2, TCast3, TCast4, TCast5, TCast> update, bool autoCheckDependencies)
439  {
440  AutoCheckDependencies = autoCheckDependencies;
441  Dependencies = new ParameterKey[] { param1, param2, param3, param4, param5, };
442  Update = update;
443  }
444 
445 
446  /// <summary>
447  ///
448  /// </summary>
449  public ParameterUpdateDelegate5<TCast1, TCast2, TCast3, TCast4, TCast5, TCast> Update { get; private set; }
450 
451  internal override Delegate SourceDelegate { get { return Update; } }
452 
453  /// <summary>
454  /// Gets the value.
455  /// </summary>
456  /// <typeparam name="TValue">The type of the value.</typeparam>
457  /// <returns></returns>
458  internal override void GetValue(ParameterCollection.InternalValue result)
459  {
460  //var temp1 = *Framework.Utilities.Cast<TCast1>((byte*)parameters[0].Value.Data);
461  //var temp1 = ((ParameterCollection.InternalValue<TCast1>)parameters[0].Value).Value;
462  //var temp2 = *Framework.Utilities.Cast<TCast2>((byte*)parameters[1].Value.Data);
463  //var temp2 = ((ParameterCollection.InternalValue<TCast2>)parameters[1].Value).Value;
464  //var temp3 = *Framework.Utilities.Cast<TCast3>((byte*)parameters[2].Value.Data);
465  //var temp3 = ((ParameterCollection.InternalValue<TCast3>)parameters[2].Value).Value;
466  //var temp4 = *Framework.Utilities.Cast<TCast4>((byte*)parameters[3].Value.Data);
467  //var temp4 = ((ParameterCollection.InternalValue<TCast4>)parameters[3].Value).Value;
468  //var temp5 = *Framework.Utilities.Cast<TCast5>((byte*)parameters[4].Value.Data);
469  //var temp5 = ((ParameterCollection.InternalValue<TCast5>)parameters[4].Value).Value;
470  //Update(ref temp1, ref temp2, ref temp3, ref temp4, ref temp5, ref ((ParameterCollection.InternalValue<TCast>)result).Value);
471 
472  var parameters = result.Dependencies;
473  Update(ref ((ParameterCollection.InternalValueBase<TCast1>)parameters[0].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast2>)parameters[1].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast3>)parameters[2].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast4>)parameters[3].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast5>)parameters[4].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast>)result).Value);
474  }
475  }
476  /// <summary>
477  /// Describes a dynamic value with 6 inputs.
478  /// </summary>
479  /// <typeparam name="T"></typeparam>
480  /// <typeparam name="T1">The type of the 1.</typeparam>
481  internal class ParameterDynamicValue6<T, T1, T2, T3, T4, T5, T6, TCast, TCast1, TCast2, TCast3, TCast4, TCast5, TCast6> : ParameterDynamicValue<T>
482 /* where T : struct
483  where TCast : struct
484  where T1 : struct
485  where TCast1 : struct
486  where T2 : struct
487  where TCast2 : struct
488  where T3 : struct
489  where TCast3 : struct
490  where T4 : struct
491  where TCast4 : struct
492  where T5 : struct
493  where TCast5 : struct
494  where T6 : struct
495  where TCast6 : struct
496 */
497  {
498  /// <summary>
499  /// Initializes a new instance of the <see cref="ParameterDynamicValue{T,T1}"/> class.
500  /// </summary>
501  /// <param name="param1">The param1.</param>
502  /// <param name="update">The update.</param>
503  public ParameterDynamicValue6(ParameterKey<T1> param1, ParameterKey<T2> param2, ParameterKey<T3> param3, ParameterKey<T4> param4, ParameterKey<T5> param5, ParameterKey<T6> param6, ParameterUpdateDelegate6<TCast1, TCast2, TCast3, TCast4, TCast5, TCast6, TCast> update, bool autoCheckDependencies)
504  {
505  AutoCheckDependencies = autoCheckDependencies;
506  Dependencies = new ParameterKey[] { param1, param2, param3, param4, param5, param6, };
507  Update = update;
508  }
509 
510 
511  /// <summary>
512  ///
513  /// </summary>
514  public ParameterUpdateDelegate6<TCast1, TCast2, TCast3, TCast4, TCast5, TCast6, TCast> Update { get; private set; }
515 
516  internal override Delegate SourceDelegate { get { return Update; } }
517 
518  /// <summary>
519  /// Gets the value.
520  /// </summary>
521  /// <typeparam name="TValue">The type of the value.</typeparam>
522  /// <returns></returns>
523  internal override void GetValue(ParameterCollection.InternalValue result)
524  {
525  //var temp1 = *Framework.Utilities.Cast<TCast1>((byte*)parameters[0].Value.Data);
526  //var temp1 = ((ParameterCollection.InternalValue<TCast1>)parameters[0].Value).Value;
527  //var temp2 = *Framework.Utilities.Cast<TCast2>((byte*)parameters[1].Value.Data);
528  //var temp2 = ((ParameterCollection.InternalValue<TCast2>)parameters[1].Value).Value;
529  //var temp3 = *Framework.Utilities.Cast<TCast3>((byte*)parameters[2].Value.Data);
530  //var temp3 = ((ParameterCollection.InternalValue<TCast3>)parameters[2].Value).Value;
531  //var temp4 = *Framework.Utilities.Cast<TCast4>((byte*)parameters[3].Value.Data);
532  //var temp4 = ((ParameterCollection.InternalValue<TCast4>)parameters[3].Value).Value;
533  //var temp5 = *Framework.Utilities.Cast<TCast5>((byte*)parameters[4].Value.Data);
534  //var temp5 = ((ParameterCollection.InternalValue<TCast5>)parameters[4].Value).Value;
535  //var temp6 = *Framework.Utilities.Cast<TCast6>((byte*)parameters[5].Value.Data);
536  //var temp6 = ((ParameterCollection.InternalValue<TCast6>)parameters[5].Value).Value;
537  //Update(ref temp1, ref temp2, ref temp3, ref temp4, ref temp5, ref temp6, ref ((ParameterCollection.InternalValue<TCast>)result).Value);
538 
539  var parameters = result.Dependencies;
540  Update(ref ((ParameterCollection.InternalValueBase<TCast1>)parameters[0].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast2>)parameters[1].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast3>)parameters[2].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast4>)parameters[3].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast5>)parameters[4].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast6>)parameters[5].Entry).Value, ref ((ParameterCollection.InternalValueBase<TCast>)result).Value);
541  }
542  }
543 }
Key of an effect parameter.
Definition: ParameterKey.cs:15
delegate void ParameterUpdateDelegate1< TCast1, T >(ref TCast1 param1, ref T output)
delegate void ParameterUpdateDelegate2< TCast1, TCast2, T >(ref TCast1 param1, ref TCast2 param2, ref T output)
Base class for ParameterDynamicValue{T}.
delegate void ParameterUpdateDelegate6< TCast1, TCast2, TCast3, TCast4, TCast5, TCast6, T >(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref TCast4 param4, ref TCast5 param5, ref TCast6 param6, ref T output)
delegate void ParameterUpdateDelegate5< TCast1, TCast2, TCast3, TCast4, TCast5, T >(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref TCast4 param4, ref TCast5 param5, ref T output)
delegate void ParameterUpdateDelegate4< TCast1, TCast2, TCast3, TCast4, T >(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref TCast4 param4, ref T output)
delegate void ParameterUpdateDelegate3< TCast1, TCast2, TCast3, T >(ref TCast1 param1, ref TCast2 param2, ref TCast3 param3, ref T output)