83 glm::radians(45.0f), |
83 glm::radians(45.0f), |
84 static_cast<float>(width) / static_cast<float>(height), |
84 static_cast<float>(width) / static_cast<float>(height), |
85 0.1f, |
85 0.1f, |
86 10000.f); |
86 10000.f); |
87 this->compiler->setUniformMatrix("projectionMatrix", this->projectionMatrix); |
87 this->compiler->setUniformMatrix("projectionMatrix", this->projectionMatrix); |
88 emit projectionMatrixChanged(this->projectionMatrix); |
88 Q_EMIT projectionMatrixChanged(this->projectionMatrix); |
89 } |
89 } |
90 |
90 |
91 static GLenum getGlTypeForArrayClass(const gl::ArrayClass vboClass) |
91 static GLenum getGlTypeForArrayClass(const gl::ArrayClass vboClass) |
92 { |
92 { |
93 switch (vboClass) |
93 switch (vboClass) |
200 { |
200 { |
201 // I'm not quite sure why using the exponent function on the zoom factor causes linear zoom behavior |
201 // I'm not quite sure why using the exponent function on the zoom factor causes linear zoom behavior |
202 const double z = 2 * std::exp(this->zoom) * (1 + this->compiler->modelDistance()); |
202 const double z = 2 * std::exp(this->zoom) * (1 + this->compiler->modelDistance()); |
203 this->viewMatrix = glm::lookAt(glm::vec3{0, 0, z}, {0, 0, 0}, {0, -1, 0}); |
203 this->viewMatrix = glm::lookAt(glm::vec3{0, 0, z}, {0, 0, 0}, {0, -1, 0}); |
204 this->compiler->setUniformMatrix("viewMatrix", this->viewMatrix); |
204 this->compiler->setUniformMatrix("viewMatrix", this->viewMatrix); |
205 emit this->viewMatrixChanged(this->viewMatrix); |
205 Q_EMIT this->viewMatrixChanged(this->viewMatrix); |
206 } |
206 } |
207 |
207 |
208 void PartRenderer::updateModelMatrix() |
208 void PartRenderer::updateModelMatrix() |
209 { |
209 { |
210 this->modelMatrix = glm::mat4_cast(this->modelQuaternion); |
210 this->modelMatrix = glm::mat4_cast(this->modelQuaternion); |
211 this->compiler->setUniformMatrix("modelMatrix", modelMatrix); |
211 this->compiler->setUniformMatrix("modelMatrix", modelMatrix); |
212 emit this->modelMatrixChanged(this->modelMatrix); |
212 Q_EMIT this->modelMatrixChanged(this->modelMatrix); |
213 this->update(); |
213 this->update(); |
214 } |
214 } |
215 |
215 |
216 void PartRenderer::setupBackgroundColor() |
216 void PartRenderer::setupBackgroundColor() |
217 { |
217 { |