Esempio n. 1
0
void   drawerWidget::setLightPosition(float x, float y, float z)
{
	lightPosition[0] = x;
	lightPosition[1] = y;
	lightPosition[2] = z;
	emit lightPositionChanged(x,y,z);
	
	update();
}
void LightParameterWidget::connectRender( VolumeLightingRender* pRender )
{
	ui.sb_ambient->setValue(pRender->ka());
	ui.sb_diffuse->setValue(pRender->kd());
	ui.sb_specular->setValue(pRender->ks());
	ui.sb_shininess->setValue(pRender->shininess());
	Vector3f lp = pRender->lightPosition();
	ui.lp_x->setValue(lp.x);
	ui.lp_y->setValue(lp.y);
	ui.lp_z->setValue(lp.z);
	connect(ui.sb_ambient, SIGNAL(valueChanged(double)), pRender, SLOT(setKa(double)));
	connect(ui.sb_diffuse, SIGNAL(valueChanged(double)), pRender, SLOT(setKd(double)));
	connect(ui.sb_specular, SIGNAL(valueChanged(double)), pRender, SLOT(setKs(double)));
	connect(ui.sb_shininess, SIGNAL(valueChanged(double)), pRender, SLOT(setShininess(double)));
	connect(this, SIGNAL(lightPositionChanged(Vector3d)), pRender, SLOT(setLightPos(Vector3d)));
	connect(ui.cb_shader, SIGNAL(currentIndexChanged(int)), pRender, SLOT(setRenderMode(int)));
	connect(ui.cb_gradient, SIGNAL(currentIndexChanged(int)), pRender, SLOT(setGradientMode(int)));
}
void LightParameterWidget::on_lp_z_valueChanged( double v )
{
	emit lightPositionChanged(Vector3d(ui.lp_x->value(), ui.lp_y->value(), v));
}