mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-05 03:00:21 -06:00
Fixed the cone size-problem
This commit is contained in:
@@ -292,16 +292,15 @@ void RenderableCone::render(const RenderData& data, RendererTasks&) {
|
||||
_vertexLateralSurfaceArray.data(),
|
||||
GL_DYNAMIC_DRAW
|
||||
);
|
||||
glDisable(GL_CULL_FACE);
|
||||
|
||||
updateVertexAttributes();
|
||||
//glFrontFace(GL_CW);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
glDrawArrays(
|
||||
GL_TRIANGLE_FAN,
|
||||
0,
|
||||
_count
|
||||
);
|
||||
// glFrontFace(GL_CCW);
|
||||
|
||||
//Base part of the cone
|
||||
glBindVertexArray(_baseInfo._vaoID);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, _baseInfo._vBufferID);
|
||||
@@ -311,15 +310,15 @@ void RenderableCone::render(const RenderData& data, RendererTasks&) {
|
||||
_vertexBaseArray.data(),
|
||||
GL_STATIC_DRAW
|
||||
);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glDisable(GL_CULL_FACE);
|
||||
|
||||
updateVertexAttributes();
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
glDrawArrays(
|
||||
GL_TRIANGLE_FAN,
|
||||
0,
|
||||
_count
|
||||
);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
unbindGL();
|
||||
|
||||
if (usingFramebufferRenderer) {
|
||||
@@ -358,13 +357,15 @@ void RenderableCone::update(const UpdateData& data) {
|
||||
glm::dvec3 baseCenterPosition;
|
||||
int numBaseVertices = _resolution;
|
||||
double height = _height * _unit;
|
||||
|
||||
double angle = glm::radians(float(_angle));
|
||||
angle = angle / 2; //Half of the full cone angle to get a right -angled triangle
|
||||
angle = angle / 2.0; //Half of the full cone angle to get a right -angled triangle
|
||||
|
||||
double radius = height * tan(angle);
|
||||
|
||||
float angleIncrement = glm::radians(360.0 / numBaseVertices);
|
||||
glm::dvec3 e0 = glm::cross(_baseCenterDirection, glm::dvec3(1.0, 0.0, 0.0));
|
||||
glm::dvec3 e1 = glm::cross(_baseCenterDirection, e0);
|
||||
glm::dvec3 e0 = glm::normalize(glm::cross(_baseCenterDirection, glm::dvec3(1.0, 0.0, 0.0)));
|
||||
glm::dvec3 e1 = glm::normalize(glm::cross(_baseCenterDirection, e0));
|
||||
|
||||
if (_directionIsReversed) {
|
||||
baseCenterPosition = _apexPosition + _baseCenterDirection * height;
|
||||
|
||||
Reference in New Issue
Block a user