added text mask

Fork of NeoStrip by Allen Wild

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TextMask.cpp Source File

TextMask.cpp

00001 #include "TextMask.h"
00002 
00003 
00004 int maskA[20] = { 0, 1, 0, 0, 
00005                   1, 0, 1, 0, 
00006                   1, 0, 1, 0, 
00007                   1, 1, 1, 0, 
00008                   1, 0, 1, 0};
00009 
00010 int maskB[20] = { 0, 1, 0, 0,
00011                   1, 0, 1, 0, 
00012                   1, 1, 0, 0,
00013                   1, 0, 1, 0,
00014                   1, 1, 0, 0};
00015 
00016 int maskC[20] = { 0, 1, 1, 0, 
00017                   1, 0, 0, 0, 
00018                   1, 0, 0, 0, 
00019                   1, 0, 0, 0, 
00020                   0, 1, 1, 0};
00021                   
00022 int maskD[20] = { 1, 1, 0, 0, 
00023                 1, 0, 1, 0, 
00024                 1, 0, 1, 0, 
00025                 1, 0, 1, 0, 
00026                 1, 1, 0, 0};
00027                 
00028 int  maskE[20] = { 1, 1, 1, 0, 
00029                 1, 0, 0, 0, 
00030                 1, 1, 1, 0, 
00031                 1, 0, 0, 0, 
00032                 1, 1, 1, 0};
00033     
00034 int maskF[20] = { 1, 1, 1, 0, 
00035                 1, 0, 0, 0, 
00036                 1, 1, 1, 0, 
00037                 1, 0, 0, 0, 
00038                 1, 0, 0, 0};
00039     
00040 int maskG[20] = { 0, 1, 1, 0, 
00041                 1, 0, 0, 0, 
00042                 1, 0, 1, 0, 
00043                 1, 0, 1, 0, 
00044                 0, 1, 1, 0};
00045                 
00046 int maskH[20] = { 1, 0, 1, 0, 
00047                 1, 0, 1, 0, 
00048                 1, 1, 1, 0, 
00049                 1, 0, 1, 0, 
00050                 1, 0, 1, 0};
00051                 
00052 int maskI[20] = { 1, 1, 1, 0, 
00053                 0, 1, 0, 0, 
00054                 0, 1, 0, 0, 
00055                 0, 1, 0, 0, 
00056                 1, 1, 1, 0};
00057       
00058 int maskJ[20] = { 1, 1, 1, 0, 
00059                 0, 1, 0, 0, 
00060                 0, 1, 0, 0, 
00061                 0, 1, 0, 0, 
00062                 1, 1, 0, 0};
00063       
00064 int maskK[20] = { 1, 0, 1, 0, 
00065                 1, 0, 1, 0, 
00066                 1, 1, 0, 0, 
00067                 1, 0, 1, 0, 
00068                 1, 0, 1, 0};
00069       
00070 int maskL[20] = { 1, 0, 0, 0, 
00071                 1, 0, 0, 0, 
00072                 1, 0, 0, 0, 
00073                 1, 0, 0, 0, 
00074                 1, 1, 1, 0};
00075       
00076 int maskM[20] = { 1, 0, 0, 1, 
00077                 1, 1, 1, 1, 
00078                 1, 1, 1, 1, 
00079                 1, 0, 0, 1, 
00080                 1, 0, 0, 1};
00081                 
00082 int maskN[20] = { 1, 0, 0, 1, 
00083                 1, 1, 0, 1, 
00084                 1, 1, 1, 1, 
00085                 1, 0, 1, 1, 
00086                 1, 0, 0, 1};
00087                 
00088 int maskO[20] = { 0, 1, 0, 0, 
00089                 1, 0, 1, 0, 
00090                 1, 0, 1, 0, 
00091                 1, 0, 1, 0, 
00092                 0, 1, 0, 0};
00093                 
00094 int maskP[20] = { 1, 1, 1, 0, 
00095                 1, 0, 1, 0, 
00096                 1, 1, 1, 0, 
00097                 1, 0, 0, 0, 
00098                 1, 0, 0, 0};
00099                 
00100 int maskQ[20] = { 0, 1, 0, 0, 
00101                 1, 0, 1, 0, 
00102                 1, 0, 1, 0, 
00103                 1, 0, 1, 0, 
00104                 0, 1, 0, 1};
00105                 
00106 int maskR[20] = { 1, 1, 0, 0, 
00107                 1, 0, 1, 0, 
00108                 1, 1, 0, 0, 
00109                 1, 0, 1, 0, 
00110                 1, 0, 1, 0};
00111                 
00112 int maskS[20] = { 0, 1, 1, 0, 
00113                 1, 0, 0, 0, 
00114                 0, 1, 0, 0, 
00115                 0, 0, 1, 0, 
00116                 1, 1, 0, 0};
00117                 
00118 int maskT[20] = { 1, 1, 1, 0, 
00119                 0, 1, 0, 0, 
00120                 0, 1, 0, 0, 
00121                 0, 1, 0, 0, 
00122                 0, 1, 0, 0};
00123                 
00124 int maskU[20] = { 1, 0, 1, 0, 
00125                 1, 0, 1, 0, 
00126                 1, 0, 1, 0, 
00127                 1, 0, 1, 0, 
00128                 0, 1, 1, 0};
00129                 
00130 int maskV[20] = { 1, 0, 1, 0, 
00131                 1, 0, 1, 0, 
00132                 1, 0, 1, 0, 
00133                 1, 1, 1, 0, 
00134                 0, 1, 0, 0};
00135                 
00136 int maskW[20] = { 1, 0, 0, 1, 
00137                 1, 0, 0, 1, 
00138                 1, 0, 0, 1, 
00139                 1, 1, 1, 1, 
00140                 1, 0, 0, 1};
00141                 
00142 int maskX[20] = { 1, 0, 1, 0, 
00143                 1, 0, 1, 0, 
00144                 0, 1, 0, 0, 
00145                 1, 0, 1, 0, 
00146                 1, 0, 1, 0};
00147                 
00148 int maskY[20] = { 1, 0, 1, 0, 
00149                 1, 0, 1, 0, 
00150                 1, 0, 1, 0, 
00151                 0, 1, 0, 0, 
00152                 0, 1, 0, 0};
00153                 
00154 int maskZ[20] = { 1, 1, 1, 0, 
00155                 0, 0, 1, 0, 
00156                 0, 1, 0, 0, 
00157                 1, 0, 0, 0, 
00158                 1, 1, 1, 0};
00159                  
00160 int * getCharMask(char inChar)
00161 {
00162             
00163     switch(inChar)
00164     {
00165         case 'A':
00166             return maskA;
00167             break;
00168         case 'B':
00169             return maskB;
00170             break;
00171         case 'C':
00172             return maskC;
00173             break;
00174         case 'D':
00175             return maskD;
00176             break;
00177         case 'E':
00178             return maskE;
00179             break;
00180         case 'F':
00181             return maskF;
00182             break;
00183         case 'G':
00184             return maskG;
00185             break;
00186         case 'H':
00187             return maskH;
00188             break;
00189         case 'I':
00190             return maskI;
00191             break;
00192         case 'J':
00193             return maskJ;
00194             break;
00195         case 'K':
00196             return maskK;
00197             break;
00198         case 'L':
00199             return maskL;
00200             break;
00201         case 'M':
00202             return maskM;
00203             break;
00204         case 'N':
00205             return maskN;
00206             break;
00207         case 'O':
00208             return maskO;
00209             break;
00210         case 'P':
00211             return maskP;
00212             break;
00213         case 'Q':
00214             return maskQ;
00215             break;
00216         case 'R':
00217             return maskR;
00218             break;
00219         case 'S':
00220             return maskS;
00221             break;
00222         case 'T':
00223             return maskT;
00224             break;
00225         case 'U':
00226             return maskU;
00227             break;
00228         case 'V':
00229             return maskV;
00230             break;
00231         case 'W':
00232             return maskW;
00233             break;
00234         case 'X':
00235             return maskX;
00236             break;
00237         case 'Y':
00238             return maskY;
00239             break;
00240         case 'Z':
00241             return maskZ;
00242             break;
00243     }
00244 }
00245 
00246 void maskChar(NeoStrip strip, int xPos, int yPos, int xDim, int yDim, char inChar)
00247 {
00248     if (inChar > 90 || inChar < 65)
00249         return;
00250         
00251     int * mask = getCharMask(inChar);
00252     
00253     for (int i = 0; i < 5; i++)
00254     {
00255         for (int j = 0; j < 4; j++)
00256         {
00257             int pos = (i+yPos)*xDim + xPos + j;
00258             if (!mask[i*4+j])
00259                 strip.setPixel(pos, 0, 0, 0);
00260             //strip.maskPixel(pos, mask[i*4+j];   
00261         }        
00262     }
00263     
00264        
00265 }
00266