void ColorizeMesh(MeshModel* m){ CMeshO::FaceIterator fi; float dirtiness; for(fi = m->cm.face.begin(); fi != m->cm.face.end(); ++fi){ dirtiness=fi->Q(); if(dirtiness==0){ fi->C()=Color4b(255,255,255,0); }else{ if(dirtiness>255) fi->C()=Color4b(0,0,0,0); else fi->C()=Color4b(255-dirtiness,255-dirtiness,255-dirtiness,0); } } tri::UpdateColor<CMeshO>::PerVertexFromFace(m->cm); }
void ToolImage::processElement(Element *element) { if (element->GetTagName() == "img") { RocketHelper::drawBoxAroundElement(element, Color4b(10, 200, 128, 255)); } for (int child_index=0; child_index < element->GetNumChildren(); ++child_index) { processElement(element->GetChild(child_index)); } }
void WindowWorld::OnRender(const boost::shared_ptr<Surface>& target) { target->Clear(Color4b(0x00, 0x00, 0xff, 0x00)); if (m_world) { target->PushState(); m_world->Render(target, GetBounds()); target->PopState(); } Window::OnRender(target); }
void EdLevelPropertyColorField::doWriteParams(void) { Color4f val(Color4b( (DTubyte) _r->value(), (DTubyte) _g->value(), (DTubyte) _b->value(), (DTubyte) _a->value())); TextBufferStream stream; stream << val; TextBufferStream oldstream; _data->value(oldstream); // Only if value changed if (stream.buffer() != oldstream.buffer()) { emit doCommand(QString("SetProp \"") + _node->full_name().c_str() + "." + _data->title().c_str() + "\" (" + stream.buffer().c_str() + ")", _data->flags() & DATA_FLUSH_UI); } }
void ToolImage::onRender() { OpenedDocument *document; document = Rockete::getInstance().getCurrentDocument(); if (document) { glLineWidth(2.0f); processElement(document->rocketDocument); if(document->selectedElement) { RocketHelper::drawBoxAroundElement(document->selectedElement, Color4b(10, 200, 240, 255)); } glLineWidth(1.0f); } if (itMustPlaceNewImage) { Vector2f size; size.x = 100; size.y = 100; GraphicSystem::drawBox(futureImagePosition - size * 0.5f, size, Color4b(128, 128, 128, 128)); } }
static int LoadMesh ( const char * filename, std::vector<Surfel<Real> >& pSurfel,vcg::CallBackPos *cb = 0) { MyMesh mesh; int mask = 0; mesh.Clear(); if (cb != NULL) (*cb)(0, "Loading Model..."); vcg::tri::io::PlyInfo info; info.cb = cb; vcg::tri::io::ImporterPLY<MyMesh>::LoadMask(filename, mask,info); vcg::tri::io::ImporterPLY<MyMesh>::Open(mesh,filename,info); bool normal_per_vertex = false; if (mask & vcg::tri::io::Mask::IOM_VERTNORMAL) normal_per_vertex = true; bool color_per_vertex = false; if (mask & vcg::tri::io::Mask::IOM_VERTCOLOR) color_per_vertex = true; bool quality_per_vertex = false; if (mask & vcg::tri::io::Mask::IOM_VERTQUALITY) quality_per_vertex = true; bool radius_per_vertex = false; if (mask & vcg::tri::io::Mask::IOM_VERTRADIUS) radius_per_vertex = true; unsigned int pos = 0; Surfel<Real> s; for (MyMesh::VertexIterator vit = mesh.vert.begin(); vit != mesh.vert.end(); ++vit) { Point3f v = (*vit).P(); Point3f n = (*vit).N(); Color4b c (0.2, 0.2, 0.2, 1.0); if (color_per_vertex) { c = Color4b ((GLubyte)(*vit).C()[0], (GLubyte)(*vit).C()[1], (GLubyte)(*vit).C()[2], 1.0); } Real radius = 0.25; if (radius_per_vertex) { radius = static_cast<Real> (((*vit).R())); } Real quality = 1.0; if (quality_per_vertex) quality = static_cast<Real> ((*vit).Q()); s = Surfel<Real> (v, n, c, radius, pos); s.SetRadius(radius); pSurfel.push_back (s); ++pos; } std::cout << "Surfel " << pSurfel.size() << std::endl; if (cb != NULL) (*cb)(99, "Done"); mesh.Clear(); return 0; }
Color4b operator *(const Color4b& lhs, const Color4b& rhs) { return Color4b((lhs.red * rhs.red) / 255, (lhs.green * rhs.green) / 255, (lhs.blue * rhs.blue) / 255, (lhs.alpha * rhs.alpha) / 255); }
Color4b operator -(const Color4b& lhs, const Color4b& rhs) { return Color4b(std::min(lhs.red - rhs.red, 0), std::min(lhs.green - rhs.green, 0), std::min(lhs.blue - rhs.blue, 0), std::min(lhs.alpha - rhs.alpha, 0)); }
Color4b operator +(const Color4b& lhs, const Color4b& rhs) { return Color4b(std::min(lhs.red + rhs.red, 255), std::min(lhs.green + rhs.green, 255), std::min(lhs.blue + rhs.blue, 255), std::min(lhs.alpha + rhs.alpha, 255)); }