public VoxelProperties(Matrix4x4 Transform, SurfaceProperties Surface, ColorProperties Color, WaveProperties Wave)
 {
     this.Transform = Transform;
     this.Surface = Surface;
     this.Color = Color;
     this.Wave = Wave;
 }
 //called when data for any output pin is requested
 public void Evaluate(int SpreadMax)
 {
     if (FColor1.IsChanged || FColor2.IsChanged || FAlpha.IsChanged || FGradientPosition.IsChanged || FGradientRotation.IsChanged)
     {
         FOutput.SliceCount = SpreadMax;
         for (int i = 0; i < SpreadMax; i++)
         {
             FOutput[i] = new ColorProperties(FColor1[i], FColor2[i], FAlpha[i], FGradientRotation[i], FGradientPosition[i]);
         }
     }
 }