Beispiel #1
0
//--------------------------------------------------------------
void testApp::update(){
  unsigned char * newPixels = finalImage.getPixels();
  unsigned char * Image1Pixels  = image1.getPixels();
  unsigned char * Image2Pixels  = image2.getPixels();
    
    
    if (first_time == true){
//sort first image by lightness
        for (int i = 0; i < image1.width * image1.height *3 ; i+=3){
            
            ofColor current_color(Image1Pixels[i], Image1Pixels[i+1], Image1Pixels[i+2]);
          
            pixels_obj.col = current_color;
            pixels_obj.pos = i;
            pixels1.push_back(pixels_obj);
        }
        
        ofSort(pixels1, ligSort);
//sort second image by lightness
        for (int i = 0; i < image2.width * image2.height *3 ; i+=3){
            
            ofColor current_color(Image2Pixels[i], Image2Pixels[i+1], Image2Pixels[i+2]);
          
            pixels_obj.col = current_color;
            pixels_obj.pos = i;
            pixels2.push_back(pixels_obj);
            
            
        }
        
        ofSort(pixels2, ligSort);
    
//put colours from second image into first image
        for (int i = 0; i < pixels1.size(); i++){
              pixels1[i].col = pixels2[i].col;
          }
//sort first image by position (colours of image2 in position of image1)
        ofSort(pixels1, pixels_place.pos);
    
//write first image into final image
        for (int i = 0; i < pixels1.size(); i++){
            
                        
            newPixels[i*3] = pixels1[i].col.r;
            
            newPixels[i*3+1] = pixels1[i].col.g;
            
            newPixels[i*3+2] = pixels1[i].col.b;
            
            
            
        }
        
        finalImage.update();
        first_time = false;
    }

}
void mepp_component_CGAL_Example_plugin::step2()
{
	// active viewer
	if (mw->activeMdiChild() != 0)
	{
		Viewer* viewer = (Viewer *)mw->activeMdiChild();
		PolyhedronPtr polyhedron_ptr = viewer->getScenePtr()->get_polyhedron();

		CGAL_Example_ComponentPtr component_ptr = findOrCreateComponentForViewer<CGAL_Example_ComponentPtr, CGAL_Example_Component>(viewer, polyhedron_ptr);
		
		//wxColour current_color(m_component->round(m_component->color(0)*255.), m_component->round(m_component->color(1)*255.), m_component->round(m_component->color(2)*255.));
		//wxColour new_color = ::wxGetColourFromUser(m_frame, current_color);
		QColor current_color(int(component_ptr->color(0)*255.), int(component_ptr->color(1)*255.), int(component_ptr->color(2)*255.));
		QColor new_color = QColorDialog::getColor(current_color, viewer);
		
		if (new_color.isValid())
		{
			component_ptr->color(float(new_color.red())/255., float(new_color.green())/255., float(new_color.blue())/255.);

			SettingsDialog_CGAL_Example dial;
			if (dial.exec() == QDialog::Accepted)
			{
				QApplication::setOverrideCursor(Qt::WaitCursor);

				//char iterationChar[256];
				//strcpy(iterationChar, dial.m_textIteration->GetValue().ToAscii());
				int iteration = dial.Iteration->value();//atoi(iterationChar);

				//wxBusyInfo busy(_T("Create center vertex..."));

				//m_frame->set_status_message(_T("Create center vertex..."));
				mw->statusBar()->showMessage(tr("Create center vertex..."));

				if (viewer->getScenePtr()->get_nb_polyhedrons()==1)
					component_ptr->CreateCenterVertex(polyhedron_ptr, true);
				else
				{
					for (int p=0; p<viewer->getScenePtr()->get_nb_polyhedrons(); p++)
						for (int i=0; i<iteration; i++)
							component_ptr->CreateCenterVertex(viewer->getScenePtr()->get_polyhedron(p), false);
				}

				/*m_frame->update_mesh_properties();
				m_frame->Refresh();
				m_frame->set_status_message(_T("Create center vertex...done"));*/
				mw->statusBar()->showMessage(tr("Create center vertex...done"));

				viewer->recreateListsAndUpdateGL();

				QApplication::restoreOverrideCursor();
				return;
			}
		}

		//m_frame->set_status_message(_T("Create center vertex...canceled"));
		mw->statusBar()->showMessage(tr("Create center vertex...canceled"));
	}

	QApplication::restoreOverrideCursor();
}
Beispiel #3
0
void color_button::open_color_dialog()
{
    QColor      new_color = QColorDialog::getColor(_current_color, this);

    if (new_color.isValid()) {
        current_color(new_color);
    }
}
void anchor_handle_renderer::draw (SkCanvas &canvas, const renderer_state &state, const renderer_config * /*config*/) const
{
  if (!m_is_visible)
    return;

  canvas.save ();
  canvas.resetMatrix ();

  QRect element_rect = get_element_rect (state.transform ());
  SkRect rect = qt2skia::rect (element_rect);

  SkPaint fill_paint;
  fill_paint.setStyle (SkPaint::kFill_Style);
  fill_paint.setColor (qt2skia::color (current_color ()));
  draw_anchor (canvas, rect, fill_paint);

  SkPaint stroke_paint;
  stroke_paint.setStrokeWidth (0.0);
  stroke_paint.setStyle (SkPaint::kStroke_Style);
  stroke_paint.setColor (SK_ColorBLACK);
  draw_anchor (canvas, rect, stroke_paint);

  canvas.restore ();
}