Esempio n. 1
0
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);
}
Esempio n. 2
0
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));
    }
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
    }
}
Esempio n. 5
0
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;
  }
Esempio n. 7
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);
 }
Esempio n. 8
0
 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));
 }
Esempio n. 9
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));
 }