21 #ifndef _STELPROJECTOR_HPP_
22 #define _STELPROJECTOR_HPP_
25 #include "VecMath.hpp"
27 #include "renderer/StelGLSLShader.hpp"
88 virtual void forward(
Vec3d&)
const =0;
89 virtual void backward(
Vec3d&)
const =0;
90 virtual void forward(
Vec3f&)
const =0;
91 virtual void backward(
Vec3f&)
const =0;
93 virtual void combine(
const Mat4d&)=0;
119 virtual Mat4d getApproximateLinearTransfo()
const=0;
126 void forward(
Vec3d& v)
const;
127 void backward(
Vec3d& v)
const;
128 void forward(
Vec3f& v)
const;
129 void backward(
Vec3f& v)
const;
130 void combine(
const Mat4d& m);
131 Mat4d getApproximateLinearTransfo()
const;
138 static const QString source(
139 "uniform mat4 modelViewMatrix;\n"
141 "vec4 modelViewForward(in vec4 v)\n"
143 " return modelViewMatrix * v;\n"
150 qDebug() <<
"Build log after adding a Mat4d transform shader: "
185 StelProjectorParams() : viewportXywh(0, 0, 256, 256),
fov(60.f),
gravityLabels(
false),
defautAngleForGravityText(0.f),
maskType(
MaskNone),
viewportCenter(128.f, 128.f),
flipHorz(
false), flipVert(
false) {;}
220 virtual float deltaZoom(
float fov)
const = 0;
273 return (flipHorz*flipVert < 0.f);
360 return Mat4f(2.f/viewportXywh[2], 0, 0, 0,
361 0, 2.f/viewportXywh[3], 0, 0,
363 -(2.f*viewportXywh[0] + viewportXywh[2])/viewportXywh[2], -(2.f*viewportXywh[1] + viewportXywh[3])/viewportXywh[3], 0, 1);
385 return gravityLabels;
391 return defautAngleForGravityText;
397 return viewportCenter;
403 return viewportFovDiameter;
409 : modelViewTransform(amodelViewTransform)
428 float flipHorz,flipVert;
431 float zNear, oneOverZNearMinusZFar;
433 Vec2f viewportCenter;
434 float viewportFovDiameter;
436 float defautAngleForGravityText;
449 #endif // _STELPROJECTOR_HPP_