public Single[] GetValueSingleArray ()
{
if (Elements != null && Elements.Count > 0)
{
var ret = new Single[RowCount * ColumnCount * Elements.Count];
for (int i=0; i<Elements.Count; i++)
{
var elmArray = Elements[i].GetValueSingleArray();
for (var j = 0; j < elmArray.Length; j++)
ret[RowCount*ColumnCount*i+j] = elmArray[j];
}
return ret;
}
switch(ParameterClass)
{
case EffectParameterClass.Scalar:
return new Single[] { GetValueSingle () };
case EffectParameterClass.Vector:
case EffectParameterClass.Matrix:
if (Data is Matrix)
return Matrix.ToFloatArray((Matrix)Data);
else
return (float[])Data;
default:
throw new NotImplementedException();
}
}