git-svn-id: svn://db.shs.com.ru/libs@636 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-11-27 21:49:24 +00:00
parent 988c4e1150
commit 09298fadcd
22 changed files with 291 additions and 173 deletions

View File

@@ -60,6 +60,15 @@ RendererService::RendererService(Renderer * r_): r(r_) {
omni_mesh_f = Primitive::ellipsoidFrame(2, 1);
omni_mesh ->scalePoints(1.5);
omni_mesh_f->scalePoints(1.5);
cone_mesh = Primitive::cone(8, 1., 1., 1.);
cone_mesh_f = Primitive::coneFrame(8, 1., 1., 1.);
QMatrix4x4 mat;
mat.rotate(90, 0,1,0);
mat.translate(0,0,2);
mat.rotate(180, 1,0,0);
cone_mesh ->transformPoints(mat);
cone_mesh_f->transformPoints(mat);
box_mesh ->scalePoints(1.3);
omni_mesh ->scalePoints(1.3);
@@ -98,6 +107,8 @@ RendererService::~RendererService() {
delete box_mesh_f;
delete omni_mesh;
delete omni_mesh_f;
delete cone_mesh;
delete cone_mesh_f;
delete axis_camera;
delete axis_mesh;
delete handle_move_mesh;
@@ -143,7 +154,7 @@ void RendererService::fillXYZObjects() {
void RendererService::fillOmniObjects() {
QList<Light*> ll = r->view->scene()->lights_used;
QList<Light*> ll = r->view->scene()->lights_used.value(Light::Omni);
Object o;
cur_objects.clear();
foreach (Light * l, ll) {
@@ -247,6 +258,15 @@ void RendererService::drawCurrentHandleObjects() {
}
void RendererService::drawLights() {
fillOmniObjects();
omni_mesh->loadObjects(r->view, cur_objects);
r->fillSelectionsBuffer(r->rend_selection.cur_selections_, light2objectList(r->view->scene_->lights_used.value(Light::Omni)));
omni_mesh->loadSelections(r->view, r->rend_selection.cur_selections_);
omni_mesh->draw(r->view, cur_objects.size());
}
void RendererService::setObjectsColor(QVector<Object> & ol, QColor col) {
QVector4D cv = QColor2QVector(col);
for (int i = 0; i < ol.size(); ++i)
@@ -279,7 +299,7 @@ void RendererService::renderService() {
setObjectsColor(cur_objects, Qt::black);
prog->setUniformValue("line_width", 1.f);
prog->setUniformValue("z_offset", -1.E-3f);
prog->setUniformValue("z_offset", -1.E-2f);
omni_mesh_f->loadObjects(f, cur_objects);
omni_mesh_f->draw(f, cur_objects.size());