public virtual Func <Tr> PixCubeMap(PixCubeMap pcm, Func <Tr>[] subArray) { return(() => { var typedOther = Other as PixCubeMap; if (typedOther == null) { throw new ArgumentException(); } var length = subArray.Length; if (length != typedOther.PixArray.Length) { throw new ArgumentException(); } var result = ProductOp.PixCubeMap(pcm, typedOther, subArray.ProductArray(typedOther.PixArray, length, (fp0, p1) => { Other = p1; return fp0(); })); Other = typedOther; return result; }); }
public Func <PixImage[]> PixCubeMap(PixCubeMap pcm, Func <PixImage[]>[] subArray) { return(() => { --Level; var subImages = subArray.Map(f => f()); ++Level; return subImages.FlatCopy(); }); }
public virtual int PixCubeMap(PixCubeMap cm0, PixCubeMap cm1, int[] subArray) { return(subArray.Sum()); }
public int PixCubeMap(PixCubeMap pcm, int[] subArray) { return(subArray.Sum()); }
public bool PixCubeMap(PixCubeMap pcm0, PixCubeMap pcm1, bool[] subArray) { return(subArray.FoldLeft(true, (s, b) => s && b)); }
public virtual IPix PixCubeMap(PixCubeMap pcm, params IPix[] subArray) { return(subArray.AllEqual(pcm.PixArray, (a, b) => a == b) ? pcm : new PixCubeMap(subArray)); }