void Pointer::genMotorPattern(bool randomize) { beginPattern(); for (int i = 0;i < 3;i++) { float deg = randomize ? ofRandomf() * 6 : (sysPtr->motor_pos[i] - 12800) * 6; addVertex(sin(deg), cos(deg), true); } float deg = randomize ? ofRandomf() * 6 : (sysPtr->motor_pos[0] - 12800) * 6; addVertex(sin(deg), cos(deg), false); endPattern(); }
/* * It encodes if needed and folds */ StringBuffer encodeHeader(StringBuffer line){ if(isAscii(line)) return line; StringBuffer ret; StringBuffer tmp; StringBuffer startPattern("=?utf-8?Q?"); StringBuffer endPattern("?="); StringBuffer foldingPattern("\r\n "); int foldingLen = 64; char* qp = 0; qp = qp_encode(line); tmp += startPattern; tmp += qp; delete [] qp; // folding action unsigned long p = 0; while(p + foldingLen < tmp.length()) { ret.append(tmp.substr(p, foldingLen)); ret.append(foldingPattern); ret.append(startPattern); p += foldingLen; } if (ret.length() > 0) tmp.append(tmp.substr(p, tmp.length() - p)); ret = tmp; ret.append(endPattern); return ret; }
void Pointer::initPatterns() { patterns.clear(); genMotorPattern(); return; bool en_CircleRandom = true; bool en_TriangleRot = true; bool en_LineRot = true; bool en_circleTriangle = false; bool en_grid = false; bool en_grid_45 = true; if (en_grid_45) { beginPattern(); for (int i = 0;i < 20;i++) { if (ofRandomuf() < 0.5) { ofVec2f ax = ofVec2f(ofRandomf(), -1.0); addVertex(ax.x, ax.y, true); addVertex(ax.y, ax.x, false); }else{ ofVec2f ax = ofVec2f(1.0, ofRandomf()); addVertex(ax.x, ax.y, true); addVertex(ax.y, ax.x, false); } } endPattern(); } //grid if (en_grid) { beginPattern(); for (int i = 0;i < 20;i++) { if (ofRandomuf() < 0.5) { float x = ofRandomf(); addVertex(x, -1.0, true); addVertex(x, 1.0, false); }else{ float y = ofRandomf(); addVertex(-1.0, y, true); addVertex( 1.0, y, false); } } endPattern(); } //circleTriangle if (en_circleTriangle) { beginPattern(); for (int i = 0;i < 10;i++) { float deg = ofRandom(-PI * 2); addVertex(-1.0, 0.0, true); addVertex( 1.0, 0.0, true); addVertex(cos(deg), sin(deg), true); addVertex(-1.0, 0.0, true); } endPattern(); } //Circle if (en_CircleRandom){ beginPattern(); float seed = ofRandomf(); for (int i = 0;i <= 100;i++) { float deg = powf(2.0, ofNoise(i * 2.0 * PI + seed * 3941.341)) * 10.0; addVertex(cos(deg), sin(deg), true); } endPattern(); } //TriangleRot if (en_TriangleRot){ beginPattern(); float deg[3], rad[3]; for (int i = 0;i < 3;i++) { deg[i] = ofRandomf() + i * 2; rad[i] = ofRandom(0.5,1.0); } for (int i = 0;i < 15;i++) { for (int j = 0;j < 3;j++) { addVertex(cos(deg[j]) * rad[j], sin(deg[j]) * rad[j], true); } addVertex(cos(deg[0]) * rad[0], sin(deg[0]) * rad[0], false); for (int j = 0;j < 3;j++) deg[j] += 0.05 * (i + 1); } endPattern(); } //LineRot if (en_LineRot){ beginPattern(); float deg[3], rad[3]; for (int i = 0;i < 2;i++) { deg[i] = ofRandomf() + i * 2; rad[i] = ofRandom(0.5,1.0); } for (int i = 0;i < 30;i++) { addVertex(cos(deg[0]) * rad[0], sin(deg[0]) * rad[0], true); addVertex(cos(deg[1]) * rad[1], sin(deg[1]) * rad[1], false); for (int j = 0;j < 2;j++) deg[j] += 0.1 + (i * 0.01); } endPattern(); } }