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

This commit is contained in:
2019-05-27 16:36:51 +00:00
parent 09e7268779
commit bb75525a3b
37 changed files with 926 additions and 683 deletions

View File

@@ -110,11 +110,10 @@ void GLParticlesSystem::update() {
void GLParticlesSystem::draw(QOpenGLShaderProgram * prog, bool) {
if (particles.isEmpty()) return;
if (view_ == 0) return;
QGLCI
if (view_ == nullptr) return;
pass_ = GLObjectBase::Transparent;
Camera & camera(view_->camera());
QVector3D apos = camera.pos(), dir = camera.direction();
Camera * camera(view_->camera());
QVector3D apos = camera->pos(), dir = camera->direction();
//qDebug() << dir;
//qDebug() << camera.angles();
//qDebug() << camera.angle_xy;
@@ -124,9 +123,9 @@ void GLParticlesSystem::draw(QOpenGLShaderProgram * prog, bool) {
tr_b = material_.color_diffuse.blueF(),
tr_a = material_.color_diffuse.alphaF() * (1.f - material_.transparency);
//cxys = sin(camera.angle_xy * deg2rad);
cxyc = cos(camera.angles_.y() * deg2rad);
czs = sin(camera.angles_.z() * deg2rad);
czc = cos(camera.angles_.z() * deg2rad);
cxyc = cosf(camera->angles_.y() * deg2rad);
czs = sinf(camera->angles_.z() * deg2rad);
czc = cosf(camera->angles_.z() * deg2rad);
dx = -czc;
dy = czs;
@@ -161,7 +160,7 @@ void GLParticlesSystem::draw(QOpenGLShaderProgram * prog, bool) {
colors << tr_r << tr_g << tr_b << a;
colors << tr_r << tr_g << tr_b << a;
if (add_vert_face) {
if (cxyc > 0.) {
if (cxyc > 0.f) {
vertices << i.pos.x() - cdx << i.pos.y() - cdy << i.pos.z();
vertices << i.pos.x() + cdx << i.pos.y() - cdy << i.pos.z();
vertices << i.pos.x() + cdx << i.pos.y() + cdy << i.pos.z();
@@ -187,7 +186,7 @@ void GLParticlesSystem::draw(QOpenGLShaderProgram * prog, bool) {
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
QGLC glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
//glNormal3f(vn.x(), vn.y(), vn.z());
glNormal3f(0., 0., 1.);
glDepthMask(false);