Task::Task(Project* project, const std::string taskDef) { qDebug("Task::Task(Project* project, std::string* taskDef)"); _project = project; _totalTime = 0; _logs = new vector<TaskLog*>(); hashmap* values = parseTextFormat(taskDef); _id = new std::string(READ_ELEMENT(values, "task-id")); qDebug("Loading task id: %s", _id->c_str()); _shortDescription = new std::string(READ_ELEMENT(values, "short-description")); _longDescription = new std::string(READ_ELEMENT(values, "long-description")); _duration = Duration(READ_ELEMENT(values, "duration").c_str()); _startDate = new DateTime(READ_ELEMENT(values, "startdate")); _endDate = new DateTime(READ_ELEMENT(values, "enddate")); _templateName = new string(READ_ELEMENT(values, "template-name")); _status = new string(READ_ELEMENT(values, "status")); Template* tpl = readTemplate(*_templateName); // Check the current template existance if (tpl == NULL) { qDebug("Warning: The task with id: %s contains an invalid template: %s", _id->c_str(), _templateName->c_str()); _templateName = defaultTemplate()->name(); _status = new string(*defaultTemplate()->statusList().begin()); } int red = randColor(); int green = randColor(); int blue = randColor(); _taskColor = QColor(red, green, blue); _parentTask = NULL; delete(values); qDebug("out Task::Task(Project* project, std::string* taskDef)"); }
void GuardianSystemDemo::UpdateBoundaryLookAndFeel() { if ((uint32_t)mGlobalTimeSec % 2 == 1) { ovrBoundaryLookAndFeel lookAndFeel = {}; lookAndFeel.Color = { randColor(), randColor(), randColor(), 1.0f }; ovr_SetBoundaryLookAndFeel(mSession, &lookAndFeel); ovr_RequestBoundaryVisible(mSession, ovrTrue); } else { ovr_ResetBoundaryLookAndFeel(mSession); ovr_RequestBoundaryVisible(mSession, ovrFalse); } }
void MorphColor::reset(ColorRGB color) { currentColor = startColor = color; endColor = randColor(); ratio = 0.0f; steps = colorSpeed + rand() % colorSpeed; }
void ParseTreeLablerForm::showNbrButtonClicked() { //get the text of the selected item const QModelIndex index = widget.treeView->selectionModel()->currentIndex(); QString selectedText = index.data(Qt::DisplayRole).toString(); string name = getCppString(selectedText); segNumToColor.clear(); Node nd(name); colorMapTableModel->clearAll(); if (nd.type == "Terminal") { set<int> & nbrs =nbrMap[nd.id]; for(set<int>::iterator it= nbrs.begin(); it!=nbrs.end(); it++) { float colorS=randColor(); segNumToColor[*it] =colorS; ColorRGB colorRGB(colorS); colorMapTableModel->addItem(string("Terminal__")+lexical_cast<string>(*it),QColor(colorRGB.r*255,colorRGB.g*255,colorRGB.b*255)); } colorSegs(segNumToColor,true); updatePCDVis(); } else { QMessageBox::warning(this, tr("Parse Tree Labaler"), tr("Neighbors can be shown only for a Terminal" "Please select a Terminal in the tree explorer"), QMessageBox::Ok,QMessageBox::Ok); return; } }
void resetFireWork(){ Point fireWorkColor=randColor(); if(particals[0]){ delete particals[0]; } particals[0] = new ParticalRound(); for(int i=0; i<NUM_OF_PARTICALS; i++){ Point oo((((double) rand() / (RAND_MAX)) -0.5)/10.0, ((((double) rand() / (RAND_MAX)) -0.5)/10.0), ((((double) rand() / (RAND_MAX)) -0.5)/10.0)); if((oo[0]*oo[0] + oo[1]*oo[1] + oo[2]*oo[2]) < particals[0]->getRadius()*particals[0]->getRadius()){ if(particals[i]){ delete particals[i]; } particals[i] = new ParticalRound(oo[0], oo[1], oo[2]); particals[i]->setColor(fireWorkColor); }else{ i--; } additionalParticals.erase(additionalParticals.begin(), additionalParticals.end()); } fireWorkLocation=Point()+((double(rand()%100)/200.0)+2)*Physics::getRandomVector(Vector(0,1,0),30); fireWorkLocation[2]-=1.5; }
void initVector(int i){ if(i==0){ sparkColors=rand()%ColorTransitions.size();} particalsVec[i]->setColor(randColor()); particalsVec[i]->setLaunchVector(Physics::getRandomVector(Vector(1,1,0),30)); particalsVec[i]->setLaunchVelocity(((rand()%1000)/200.0)+3); particalsVec[i]->colorTransitionCalc=ColorTransitions[sparkColors][rand()%ColorTransitions[sparkColors].size()]; }
void AnimationEffect::reset() { startFrame = m_pSettings->frame; for (int i = 0; i < MAX_COLORS; i++) palette[i] = randColor(); start(); }
Task::Task(Project* project) { _project = project; _id = NULL; _shortDescription = NULL; _longDescription = NULL; _startDate = NULL; _endDate = NULL; _templateName = NULL; _status = NULL; _totalTime = 0; _parentTask = NULL; _logs = new std::vector<TaskLog*>(); int red = randColor(); int green = randColor(); int blue = randColor(); _taskColor = QColor(red, green, blue); }
void buildScene4() { for(int x=0; x<cx; ++x) for(int y=0; y<cy; ++y) for(int z=0; z<cz; ++z) data[x][y][z] = 0; for(int i=0; i<cx*cy*cz>>4; ++i) data[rand()%cx][rand()%cy][rand()%cz] = randColor(); }
void buildScene2() { for(int x=0; x<cx; ++x) for(int y=0; y<cy; ++y) for(int z=0; z<cz; ++z) { if( (x&1) & (y&1) & (z&1)) data[x][y][z] = randColor(); else data[x][y][z] = 0; } }
void buildScene5() { for(int x=0; x<cx; ++x) for(int y=0; y<cy; ++y) for(int z=0; z<cz; ++z) { if( (x&3)==0 && (y&3)==0 && (z&3)==0) data[x][y][z] = randColor(); else data[x][y][z] = 0; } }
void buildScene1() { for(int x=0; x<cx; ++x) for(int y=0; y<cy; ++y) for(int z=0; z<cz; ++z) { if( ( ((x&7)==0) && ((y&7)==0) ) || ( ((x&7)==0) && ((z&7)==0) ) || ( ((z&7)==0) && ((y&7)==0) ) ) data[x][y][z] = randColor(); else data[x][y][z] = 0; } }
int Paint(HDC &hdc, int width, int height) { int x[BN], y[BN]; bool stop = false; int n = 0; while (stop == false) { if (GetAsyncKeyState(VK_ESCAPE)) { _getch(); stop = true; } // Cоздаем контекст HDC hmemDC = CreateCompatibleDC(hdc); // Cоздаем битмап HBITMAP hbmpTarget = CreateCompatibleBitmap(hdc, width, height); // Выбираем битмап в контекст ::SelectObject(hmemDC, hbmpTarget); //Записывает наш bmb в память BitBlt(hmemDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY); for (int i = 0; i<BN; i++) { x[i] = rand() % width; y[i] = rand() % height; if (GetPixel(hmemDC, x[i], y[i]) == RGB(0, 0, 0)) { SetPixel(hdc, x[i], y[i], RGB(randColor(), randColor(), randColor())); n++; } else { SetPixel(hdc, x[i], y[i], RGB(0, 0, 0)); n--; } } PText(hdc, Rate(n, width, height)); DeleteDC(hmemDC); // контекст отжирает уйму ресурсов, поэтому не забудем его грохнуть DeleteObject(hbmpTarget); hmemDC = NULL; Sleep(12); } return n; };
CBox::CBox() { m_shape = sf::RectangleShape(sf::Vector2f(10.f,10.f));//(0,0,10,10,sf::Color(255,255,255)); m_shape.SetOrigin(5,5); m_shape.SetFillColor(randColor()); //cout << 300/PPM << " : " << -300/PPM-n*5/PPM << endl; m_bodyDef.position.Set(300.0f/PPM,-300.0f/PPM-n*5/PPM); n++; m_bodyDef.type = b2_dynamicBody; m_bodyShape.SetAsBox(5.0f/PPM,5.0f/PPM); m_bodyFix.shape = &m_bodyShape; m_bodyFix.density = 0.1f; m_bodyFix.friction = 0.1f; }
void buildScene3() { for(int x=0; x<cx; ++x) for(int y=0; y<cy; ++y) for(int z=0; z<cz; ++z) data[x][y][z] = 0; for(int x=0; x<cx; ++x) for(int y=0; y<cy; ++y) { data[x][y][cz-1] = randColor(); data[x][y][0] = randColor(); } for(int x=0; x<cx; ++x) for(int z=0; z<cz; ++z) { data[x][0][z] = randColor(); data[x][cy-1][z] = randColor(); } for(int y=0; y<cy; ++y) for(int z=0; z<cz; ++z) { data[cx-1][y][z] = randColor(); } }
void printToPCLViewer(){ pclViewer->removeAllPointClouds(); //pcl::visualization::PointCloudColorHandlerRGBField<PointT> rgb(cloud); //pclViewer->addPointCloud<PointT>(cloud,rgb,"source cloud"); //pclViewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "source cloud"); for(int i=0; i < object_vector.size(); i++){ pcl::PointCloud<PointT>::Ptr pc = object_vector[i]; pcl::visualization::PointCloudColorHandlerRandom<PointT> randColor(pc); std::stringstream ss; ss << i; std::string ind = ss.str(); std::string pc_name = "object_" + ind; pclViewer->addPointCloud<PointT>(pc,randColor,pc_name); pclViewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, pc_name); } pcl::visualization::PointCloudColorHandlerCustom<PointT> yellow_color(retrieved_object, 255, 255, 102); pclViewer->addPointCloud<PointT>(retrieved_object,yellow_color,"tracked cloud"); pclViewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "tracked cloud"); // if(particles){ // pcl::PointCloud<pcl::PointXYZ>::Ptr particle_cloud (new pcl::PointCloud<pcl::PointXYZ> ()); // for (size_t i = 0; i < particles->points.size (); i++){ // pcl::PointXYZ point; // point.x = particles->points[i].x; // point.y = particles->points[i].y; // point.z = particles->points[i].z; // particle_cloud->points.push_back(point); // } // pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> red_color (particle_cloud, 255, 0, 0); // pclViewer->addPointCloud<pcl::PointXYZ> (particle_cloud, red_color, "particle cloud"); // pclViewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "particle cloud"); // } pcl::visualization::PointCloudColorHandlerCustom<PointT> centroid_color (tracked_object_centroid, 255, 0, 255); pclViewer->addPointCloud<PointT> (tracked_object_centroid, centroid_color, "centroid"); pclViewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 12, "centroid"); }
std::string buildGrid(std::vector<int> &grid, int x, int y, Color &c) { Random r; std::stringstream ppmData; // create the header ppmData << "P3\n" << x << " " << y << "\n255\n"; for(int i = 0; i < 5; ++i) { c = randColor(r); line(grid, r.DrawNumber(0, 256), r.DrawNumber(0, 256), r.DrawNumber(0, 256), r.DrawNumber(0, 256), c); int rx = r.DrawNumber(0, 255); int ry = r.DrawNumber(0, 255); box(grid, rx, ry, r.DrawNumber(1, 256 - rx), r.DrawNumber(1, 256 - ry), c); rx = r.DrawNumber(0, 255); ry = r.DrawNumber(0, 255); solid_box(grid, rx, ry, r.DrawNumber(1, 256 - rx), r.DrawNumber(1, 256 - ry), c); rx = r.DrawNumber(55, 255); ry = r.DrawNumber(55, 255); int radius = r.DrawNumber(3, 255); circle(grid, rx, ry, radius, c, r.DrawBool()); } // convert list to text file. for(int dy : range(0, y)) { for(int dx : range(0, x)) { int a, b, c; std::tie(a, b, c) = getPoint(grid, dx, dy); ppmData << " " << a << " " << b << " " << c << '\n'; } } std::string s(ppmData.str()); return s; }
void MainMenu::paintEvent(QPaintEvent* ) { setFixedSize(parentWidget()->width(),parentWidget()->height()); QPainter painter(this); double w = width(); double h = height(); QFont font("Times"); font.setStyleHint(QFont::Monospace); font.setPointSize(w/12); font.setBold(true); painter.setFont(font); painter.setPen(Qt::blue); QString str = "Flood Em!"; for (int i = 0; i < 9; i++) { painter.setPen(Qt::black); // Drawing each letter 5 times to get our wacky outlined font painter.drawText((w/6 + i*2*w/27 + w/120), h/8, w/9, 3*h/4, 1, QString(str[i])); painter.drawText((w/6 + i*2*w/27), h/8 + w/120, w/9, 3*h/4, 1, QString(str[i])); painter.drawText((w/6 + i*2*w/27 - w/120), h/8, w/9, 3*h/4, 1, QString(str[i])); painter.drawText((w/6 + i*2*w/27), h/8 - w/120, w/9, 3*h/4, 1, QString(str[i])); painter.setPen(randColor().lighter(100)); painter.drawText((w/6 + i*2*w/27), h/8, w/9, 3*h/4, 1, QString(str[i])); } }
void EffectText::drawLine(float xa, float ya, float xb, float yb, float width) { m_pSettings->waterField->DrawLine(xa,ya,xb,yb,width,0.4f,0.5f,randColor()); }
void ParseTreeLablerForm::splitButtonClicked() { //get the text of the selected item const QModelIndex index = widget.treeView->selectionModel()->currentIndex(); QString selectedText = index.data(Qt::DisplayRole).toString(); string name = getCppString(selectedText); std::vector<pcl::PointIndices> clusters; Node nd(name); cout<<"in split seg"<<endl; if (nd.type == "Terminal") { undoNames.clear(); double radT=getValueOfType<double>(widget.radEdit->text()); double angleT=getValueOfType<double>(widget.angleEdit->text()); double colorT=getValueOfType<double>(widget.colorT->text()); int numNbr=getValueOfType<int>(widget.nbrEdit->text()); int segId = nd.id; pcl::PointCloud<PointT> segCloud; segCloud.header = cloud_orig.header; vector<int> originalIndices; undoAvl = true; cloud_undo=cloud_orig; for (int i = 0; i < (int)cloud_orig.points.size(); i++) { if ((int)cloud_orig.points[i].segment == segId) { segCloud.points.push_back(cloud_orig.points[i]); cloud_orig.points[i].segment=0; originalIndices.push_back(i); } } cout<<"oversegmenting this seg whihch had "<<segCloud.size()<<"with params"<<radT<<","<<angleT<<","<<numNbr<<endl; // segment(segCloud, clusters,radT,angleT,numNbr,true,colorT); SegmentPCDGraph<PointT> segmenter(angleT,radT,numNbr,colorT,100); segmenter.segment(segCloud,clusters); sort(clusters.begin(), clusters.end(), compareSegsDecreasing); // the old segment now contains the largest segment after splitting segNumToColor.clear(); segNumToColor[segId]=randColor(); cout<<clusters.size()<<" oversegments found"<<endl; for (size_t i = 0; i < clusters.size(); i++) { cout<<"cluster "<<i<<"has "<<clusters[i].indices.size()<<" points\n"; int newSegId; if(i==0) { newSegId=segId; } else { newSegId=(++typeMaxId["Terminal"]); } segNumToColor[newSegId]=randColor(); for (size_t j = 0; j < clusters[i].indices.size(); j++) { cloud_orig.points[originalIndices.at(clusters[i].indices[j])].segment = newSegId; } if(i==0) continue; string name="Terminal__"+lexical_cast<string>(newSegId)+"__split"+lexical_cast<string>(segId); QStandardItem *item = new QStandardItem(name.data()); nameToTreeNode[name] = item; undoNames.push_back(name); rootNode->appendRow(item); } colorSegs(segNumToColor, true); updatePCDVis(); QMessageBox::warning(this, tr("Parse Tree Labaler"), tr("IMPORTANT: undo operation should not be done after merging any newly created segments" "It will cause inconsistency"), QMessageBox::Ok,QMessageBox::Ok); } }
void GameplayScreen::init() { b2Vec2 gravity(0.0f, -50.0f); //create up world mWorld = std::make_unique<b2World>(gravity); //Add Ground body b2BodyDef groundBodyDef; groundBodyDef.position.Set(0.0f, -20.0f); // units of meters b2Body* groundBody = mWorld->CreateBody(&groundBodyDef); //Shape is a polygon, fixture keeps them together b2PolygonShape groundBox; groundBox.SetAsBox(50.0f, 10.0f); groundBody->CreateFixture(&groundBox, 0.0f); //Load texture mTexture = WebEngine::ResourceManager::getTexture("Assets/bricks_top.png"); WebEngine::ColorRGBA8 color(255, 0, 0, 255); //Add a bunch of boxes std::mt19937 randGenerator(time(nullptr)); std::uniform_real_distribution<float> xPos(-10.0f, 10.0f); std::uniform_real_distribution<float> yPos(-15.0f, 15.0f); std::uniform_real_distribution<float> size(0.5f, 2.5f); std::uniform_int_distribution<unsigned int> randColor(0, 255); const int numBoxes = 20; for (int i = 0; i < numBoxes; i++) { WebEngine::ColorRGBA8 color(randColor(randGenerator), randColor(randGenerator), randColor(randGenerator), 255); Box newBox; newBox.init(mWorld.get(), glm::vec2(xPos(randGenerator), yPos(randGenerator)), glm::vec2(size(randGenerator), size(randGenerator)), mTexture, color); //Box memory can be discraded because the important bits are stored in the world mBoxes.push_back(newBox); } //Initialize shaders //Compile texture shader mTextureProgram.compileShaders("Shaders/textureShading.vert", "Shaders/textureShading.frag"); mTextureProgram.addAttribute("vertexPosition"); mTextureProgram.addAttribute("vertexColor"); mTextureProgram.addAttribute("vertexUV"); mTextureProgram.linkShaders(); //Compile light shader mLightProgram.compileShaders("Shaders/lightShading.vert", "Shaders/lightShading.frag"); mLightProgram.addAttribute("vertexPosition"); mLightProgram.addAttribute("vertexColor"); mLightProgram.addAttribute("vertexUV"); mLightProgram.linkShaders(); mDebugRenderer.init(); m_CameraController.init(&mCamera, mTime); //Initialize spritebatch mSpriteBatch.init(); //Init camera mCamera.init(mWindow->getScreenWidth(), mWindow->getScreenHeight()); mCamera.setScale(32.0f); //32 pixels per meter, good scale mPlayer.init(mWorld.get(), glm::vec2(0.0f, 30.0f), glm::vec2(1.0f), glm::vec2(0.5f, 1.0f), WebEngine::ColorRGBA8(255, 255, 255, 255)); }
sf::Color getRandomColor() { sf::Color randColor(rand256(), rand256(), rand256()); return randColor; }
void ParseTreeLablerForm::selectionChangedSlot(const QItemSelection & /*newSelection*/, const QItemSelection & /*oldSelection*/) { //get the text of the selected item const QModelIndex index = widget.treeView->selectionModel()->currentIndex(); QString selectedText = index.data(Qt::DisplayRole).toString(); string name = getCppString(selectedText); QStandardItem *parNode = nameToTreeNode[name]; int numChildren = parNode->rowCount(); segNumToColor.clear(); Node nd(name); if (nd.type == "Terminal") { segNumToColor[nd.id] = randColor(); } colorMapTableModel->clearAll(); for (int i = 0; i < numChildren; i++) { QStandardItem *child = parNode->child(i, 0); queue<QStandardItem *> bfsQueue; float color = randColor(); ColorRGB colorRGB(color); colorMapTableModel->addItem(getCppString(child->text()),QColor(colorRGB.r*255,colorRGB.g*255,colorRGB.b*255)); bfsQueue.push(child); //boost::random::uniform_int_distribution<> randSix(0,5); // distribution that maps to 1..6 // see random number distributions while (!bfsQueue.empty()) { QStandardItem *curNode = bfsQueue.front(); bfsQueue.pop(); int numChildren = curNode->rowCount(); string parName = getCppString(curNode->text()); //cout << "selseg:" << parName.substr(0, 10) << endl; //cout << "selseg:" << "Terminal__" << endl; Node ndp(parName); if (ndp.type == "Terminal") { segNumToColor[ndp.id] = color; continue; } //cout << parName << endl; for (int i = 0; i < numChildren; i++) { QStandardItem *child = curNode->child(i, 0); // cout << "child:" << getCppString(child->text()) << endl; bfsQueue.push(child); } } } colorSegs(segNumToColor, true); updatePCDVis(); }
MorphColor::MorphColor(int speed) { colorSpeed = speed; reset(randColor()); }
void pizza(Drawer * drawer, Chart * chart, Rectangle base) { Color rcolor; float initAngle = 0.0; int i; char str[20] = ""; for(i = 0; chart->content[i] != 0; ++i) { float perc = chart->content[i]->percentage; randColor(&rcolor);//Função que randomiza os números responsáveis pelas cores percToText(perc*100,str);//Função que transforma a porcentagem em string Arc arc = { base.width/3, //x base.height/2, //y initAngle, //initAngle perc*2*M_PI+initAngle, //endAngle 200, //radius 0.5, // borderWidth {rcolor.r, rcolor.g, rcolor.b, 1.0}, // Color Bg {1.0,1.0,1.0, 1.0} // Color border }; Rectangle rectPerc = { 2*base.width/3, //x 4*base.height/10 + 35*i, //y 60,//width 30, //height 1.0, // borderWidth {rcolor.r, rcolor.g, rcolor.b, 1.0}, // Color Bg {1.0,1.0,1.0, 1.0}// Color border }; Text text = { 2*rectPerc.height/3,//Font Size 3*base.width/4 ,//X 4*base.height/10 + rectPerc.height/2,//Y chart->content[i]->label ,//Label str,//Percentage(String Form) 1.4,//BorderWidth rectPerc.y - 4*base.height/10,//Space Legend -5,//Space Percentage 2*base.width/3 + rectPerc.width/4,//Coordenada X da porcentagem 4*base.height/10 + rectPerc.height/2,//Coordenada Y da porcentagem 0,//Se 1 = Retangulo 1,//Se 1 = Arco {0.0,0.0,0.0,1.0},//Color Bg {rcolor.r, rcolor.g, rcolor.b, 1.0},//Color Border {1.0,1.0,1.0,1.0}//Color of Percentage }; DrawerDrawRectangle(drawer, rectPerc); if(perc == 1.0) {//Se o gráfico de pizza tiver somente um parâmetro (100%), excluir a borda arc.border.a = 0.0; } DrawerDrawArc(drawer, arc); DrawerDrawText(drawer, text, base); initAngle += chart->content[i]->percentage*2*M_PI; } }
void barra(Drawer * drawer, Chart * chart, Rectangle base, float * aux) {//Função que desenha o Gráfico de Barras Color rcolor;//Declarando um parâmetro rcolor do tipo Color int i; char str[20] = "";//Declarando uma string vazia for(i = 0; chart->content[i] != 0; ++i) { float perc = chart->content[i]->percentage; percToText(perc*100.00,str);//Função que transforma as porcentagens em Strings randColor(&rcolor);//Função que randomiza os números responsáveis pelas cores Rectangle rect = { base.width/9 + (SpaceValue(chart->DatumSize)*base.width/80)*(i), //x 14*base.height/15, //y (11*base.width/15)/chart->DatumSize,//width -perc*((11*base.height/15)/sort(aux, chart)), //height 0.0, // borderWidth {rcolor.r, rcolor.g, rcolor.b, 1.0}, // Color Bg {1.0,1.0,1.0, 1.0} // Color border }; Text text = { 15,//Font Size rect.x+rect.width/2,//X 20*base.height/21,//Y chart->content[i]->label ,//Label str,//Percentage(String Form) 1,//BorderWidth i,//Space Legend 0,//Space Percentage 1*base.width/60,//Coordenada X da porcentagem 19*base.height/20 + rect.height,//Coordenada Y da porcentagem 1,//Se 1 = Retangulo 0,//Se 1 = Arco {0.0,0.0,0.0,1.0},//Color Bg rect.bg,//Color Border rect.bg//Color of Percentage }; DrawerDrawRectangle(drawer, rect); DrawerDrawText(drawer, text, base); } Axis axisy = { 1*base.width/15,// Posição x0 3*base.height/18,// Posição y0 1*base.width/15,// Posição x 39*base.height/40,// Posição y 2,// Largura do Eixo {0.0,0.0,0.0,1.0}// Cor do Eixo }; Axis axisx = { 1*base.width/40,// Posição x0 14*base.height/15,// Posição y0 14*base.width/15,// Posição x 14*base.height/15,// Posição y 2,// Largura do Eixo {0.0,0.0,0.0,1.0}// Cor do Eixo }; Arrow arrowY = { 1*base.width/15 - 5,// Posição X da ponta Direita da Seta 3*base.width/21,// Posição Y da ponta Direita da Seta 1*base.width/15 + 5,// Posição X da ponta Esquerda da Seta 3*base.width/21,// Posição Y da ponta Esquerda da Seta axisy.x0,// Posição X de intersecção da ponta Direita com a ponta Esquerda axisy.y0,// Posição Y de intersecção da ponta Direita com a ponta Esquerda 2,// Largura da Seta axisy.bg//Cor da Seta }; Arrow arrowX = { 21*base.width/23,// Posição X da ponta Direita da Seta 14*base.height/15 - 5,// Posição Y da ponta Direita da Seta 21*base.width/23 ,// Posição X da ponta Esquerda da Seta 14*base.height/15 + 5,// Posição Y da ponta Esquerda da Seta axisx.x,// Posição X de intersecção da ponta Direita com a ponta Esquerda axisx.y,// Posição Y de intersecção da ponta Direita com a ponta Esquerda 2,// Largura da Seta axisx.bg//Cor da Seta }; DrawerDrawArrow(drawer, axisy, arrowX); DrawerDrawArrow(drawer, axisx, arrowY); DrawerDrawAxis(drawer, axisx, base); DrawerDrawAxis(drawer, axisy, base); }
void EffectRain::apply() { if (frand() < rainDensity/60.f) m_pSettings->waterField->SetHeight(minx+frand()*scalex,miny+frand()*scaley,0.5f+0.5f*frand(),-2.0f-frand()*2, randColor()); }
//public void RGBElement::stateMaschine() { switch(m_state) { case 0: //OFF { m_Rnext = 0; m_Gnext = 0; m_Bnext = 0; m_brightness = 1; m_fade = false; m_sync = false; break; } case 1: //OFF_FADE_DOWN ==> STATE 0 { m_Rnext = 0; m_Gnext = 0; m_Bnext = 0; m_brightness = 1; m_fade = true; m_sync = true; if(isReady()) { m_state = 0; m_out->pDln(); m_out->pDS("_%E"); m_out->pD(m_id); m_out->pDS("_%M"); m_out->pD(m_state); //PROFILE/MODE m_out->pDln(); } break; } case 2: //ON_WHITE { m_Rnext = 255; m_Gnext = 255; m_Bnext = 255; m_brightness = 1; m_fade = false; m_sync = false; break; } case 3: //ON_WHITE_FADE_UP ==> STATE 2 { m_Rnext = 255; m_Gnext = 255; m_Bnext = 255; m_brightness = 1; m_fade = true; m_uTime = 5; m_sync = true; if(isReady()) { m_state = 2; m_out->pDln(); m_out->pDS("_%E"); m_out->pD(m_id); m_out->pDS("_%M"); m_out->pD(m_state); //PROFILE/MODE m_out->pDln(); } break; } case 4: //SELECTED_COLOR { break; } case 5: //NEXT_COLOR { if(m_autoNext && (m_sync || isReady())) { nextColor(); m_out->pDS("_%E"); m_out->pD(m_id); m_out->pDS("_%R"); m_out->pD(m_Rnext); //RED m_out->pDS("_%G"); m_out->pD(m_Gnext); //GREEN m_out->pDS("_%B"); m_out->pD(m_Bnext); //BLUE m_out->pDln(); } break; } case 6: //SHUFFLE_COLOR { if(m_autoNext && (m_sync || isReady())) { shuffleColor(); m_out->pDS("_%E"); m_out->pD(m_id); m_out->pDS("_%R"); m_out->pD(m_Rnext); //RED m_out->pDS("_%G"); m_out->pD(m_Gnext); //GREEN m_out->pDS("_%B"); m_out->pD(m_Bnext); //BLUE m_out->pDln(); } break; } case 7: //PART_COLORS { if(m_autoNext && (m_sync || isReady())) { partColor(); m_out->pDS("_%E"); m_out->pD(m_id); m_out->pDS("_%R"); m_out->pD(m_Rnext); //RED m_out->pDS("_%G"); m_out->pD(m_Gnext); //GREEN m_out->pDS("_%B"); m_out->pD(m_Bnext); //BLUE m_out->pDln(); } break; } case 8: //RAND_COLOR { if(m_autoNext && (m_sync || isReady())) { randColor(); m_out->pDS("_%E"); m_out->pD(m_id); m_out->pDS("_%R"); m_out->pD(m_Rnext); //RED m_out->pDS("_%G"); m_out->pD(m_Gnext); //GREEN m_out->pDS("_%B"); m_out->pD(m_Bnext); //BLUE m_out->pDln(); } break; } default: //SWTICH_OFF { m_state = 0; } } }
void PLYReader::readFromPly( std::vector<Object *> & scene_objects, const std::string & filename) { std::ifstream fileIn(filename); std::string currLine; getline(fileIn, currLine); std::cout << "cl: " << currLine << std::endl; assert(stringMatches(currLine, "ply")); getline(fileIn, currLine); assert(stringMatches(currLine, "format ascii 1.0")); std::string currWord; fileIn >> currWord; assert(stringMatches(currWord, "element")); fileIn >> currWord; assert(stringMatches(currWord, "vertex")); fileIn >> currWord; std::string::size_type sz; int numVertices = std::stoi(currWord, &sz); std::cout << "num vertices = " << numVertices << std::endl; getline(fileIn, currLine); getline(fileIn, currLine); assert(stringMatches(currLine, "property float x")); getline(fileIn, currLine); assert(stringMatches(currLine, "property float y")); getline(fileIn, currLine); assert(stringMatches(currLine, "property float z")); fileIn >> currWord; assert(stringMatches(currWord, "element")); fileIn >> currWord; assert(stringMatches(currWord, "face")); fileIn >> currWord; int numFaces = std::stoi(currWord, &sz); std::cout << "num faces = " << numFaces << std::endl; getline(fileIn, currLine); getline(fileIn, currLine); getline(fileIn, currLine); assert(stringMatches(currLine, "end_header")); std::vector<Vector3D> vertices; for (int i = 0; i < numVertices; ++i) { getline(fileIn, currLine); std::istringstream iss(currLine); iss >> currWord; auto x = std::stod(currWord, &sz); iss >> currWord; auto y = std::stod(currWord, &sz); iss >> currWord; auto z = std::stod(currWord, &sz); vertices.push_back(Vector3D(x, y, z)); } for (int i = 0; i < numFaces; ++i) { getline(fileIn, currLine); std::istringstream iss(currLine); iss >> currWord; assert(currWord.compare("3") == 0); iss >> currWord; int iv1 = std::stoi(currWord, &sz); iss >> currWord; int iv2 = std::stoi(currWord, &sz); iss >> currWord; int iv3 = std::stoi(currWord, &sz); Triangle * t = new Triangle(vertices[iv1], vertices[iv2], vertices[iv3], randColor()); scene_objects.push_back(dynamic_cast<Object *>(t)); } }