+typedef char * PS8;
+typedef unsigned char * PU8;
+typedef short int * PS16;
+typedef unsigned short int * PU16;
+typedef int * PS32;
+typedef unsigned int * PU32;
+typedef float * PF32;
+typedef double * PD64;
+
+#define CRR(t1,t2) { for(int l=0;l<nX*nY*nZ*samplesPerPixel;l++) \
+ *((t2)planePixelsOut + l) = *(((t1)pixels)+ l);\
+ }
+
+#define CFR(PPt) switch ( pixelTypeOutCode ) { \
+ case -8 : CRR(PPt,PS8); break; \
+ case 8 : CRR(PPt,PU8); break; \
+ case -16 : CRR(PPt,PS16); break; \
+ case 16 : CRR(PPt,PU16); break; \
+ case -32 : CRR(PPt,PS32); break; \
+ case 32 : CRR(PPt,PU32); break; \
+ case 33 : CRR(PPt,PF32); break; \
+ case 64 : CRR(PPt,PD64); break; \
+ }
+
+