/**
	Dessine la borne
	@param p QPainter a utiliser pour rendre le dessin
	@param options Options pour affiner le rendu
	@param widget Widget sur lequel le rendu est effectue
*/
void PartTerminal::paint(QPainter *p, const QStyleOptionGraphicsItem *options, QWidget *widget) {
	Q_UNUSED(widget);
	p -> save();
	
	// annulation des renderhints
	p -> setRenderHint(QPainter::Antialiasing,          false);
	p -> setRenderHint(QPainter::TextAntialiasing,      false);
	p -> setRenderHint(QPainter::SmoothPixmapTransform, false);
	
	QPen t;
	t.setWidthF(1.0);
	t.setCosmetic(options && options -> levelOfDetail < 1.0);
	
	// dessin de la borne en rouge
	t.setColor(isSelected() ? Terminal::neutralColor : Qt::red);
	p -> setPen(t);
	p -> drawLine(QPointF(0.0, 0.0), second_point);
	
	// dessin du point d'amarrage au conducteur en bleu
	t.setColor(isSelected() ? Qt::red : Terminal::neutralColor);
	p -> setPen(t);
	p -> setBrush(Terminal::neutralColor);
	p -> drawPoint(QPointF(0.0, 0.0));
	p -> restore();

	if (m_hovered)
		drawShadowShape(p);
}
Exemplo n.º 2
0
void shadow::drawShadowTop(ofVec2f posLight, float shadowSpread)//,float levelsShadow
{	

	ofEnableAlphaBlending();
	

	ofSetColor(255, 255, 255, 255);
	fbo2.begin();
		//ofClear(255, 255,255, 0);
	ofFill();	
	ofSetColor(255, 255, 255,1);//, levelsShadow
	ofDrawRectangle(0, 0, ofGetWidth() , ofGetHeight()); // 2/ 2
	//ofBackground(255, 255, 255);
	//cam2.begin();
	
	drawShadowShape( shadowSpread*0.08);//levelsShadow,
	/*
	ofSetColor(0, 0, 0, 255);
	ofDrawCircle(ofPoint((cos(ofGetElapsedTimeMillis()*0.001) * 400) + 2400, (sin(ofGetElapsedTimeMillis()*0.001) * 400) + 400), 150);
	*/
	//cam2.end();
	//cout << "pt" << ofPoint((cos(ofGetElapsedTimeMillis()*0.001) * 400) + 400, (sin(ofGetElapsedTimeMillis()) * 400) + 400) << endl;
	
	
	fbo2.end();
	ofSetColor(255, 255, 255, 255);

	//fbo2.draw(0, 0);
	//
	/*
	fbo2.begin();

	//!!!!
	//ofDrawRectangle(0, 0, ofGetWidth(), ofGetHeight());

	fbo2.draw(0, 0);

	fbo2.end();*/
	//fbo2.draw(0, 0);
			blurHShader.begin();
	blurHShader.setUniformTexture("blurSampler", fbo2.getTextureReference(0), 0);
	blurHShader.setUniform1f("sigma", blurFactor*0.5);
	blurHShader.setUniform1f("blurSize", texelSize*0.5);
	//blurHShader.setUniform2f("posLight", pos.x,ofMap(pos.y, 0, ofGetHeight(), ofGetHeight(), 0));//;
	blurHShader.setUniform2f("posLight", pos.x, pos.y);//ofMap(pos.y, 0, ofGetHeight(), ofGetHeight(), 0));//;
	blurHShader.setUniform2f("resolution", ofGetWidth(), ofGetHeight());
	
	blurVShader.begin();
	blurVShader.setUniformTexture("blurSampler", fbo2.getTextureReference(0), 0);
	blurVShader.setUniform1f("sigma", blurFactor*0.5);
	blurVShader.setUniform1f("blurSize", texelSize*0.5);
	//blurVShader.setUniform2f("posLight", pos.x, ofMap(pos.y, 0, ofGetHeight(), ofGetHeight(), 0));//;pos.y
	blurVShader.setUniform2f("posLight", pos.x, pos.y);
	blurVShader.setUniform2f("resolution", ofGetWidth(), ofGetHeight());
	//!!!!
	//ofSetColor(255, 255, 255, levelsShadow);
	//ofDrawRectangle(0, 0, ofGetWidth(), ofGetHeight());

	fbo2.draw(0, 0);

	blurVShader.end();
	blurHShader.end();


	/*
	for (int i = 0; i < pathsShaderTopS.size();i++) {
		for (int j = 0; j < pathsShaderTopS[i].size();j++) {
			pathsShaderTopS[i][j].draw();
		}

	}
	*/
}