gramods
Loading...
Searching...
No Matches
RectilinearCameraModel.hh
1
2#ifndef GRAMODS_GRAPHICS_RECTILINEARCAMERAMODEL
3#define GRAMODS_GRAPHICS_RECTILINEARCAMERAMODEL
4
5// Required before gmCore/OFactory.hh for some compilers
6#include <gmCore/io_float.hh>
7#include <gmCore/io_angle.hh>
8
9#include <gmGraphics/CoordinatesMapper.hh>
10
11#include <GL/glew.h>
12#include <GL/gl.h>
13
14BEGIN_NAMESPACE_GMGRAPHICS;
15
22
23public:
24
27
31 std::string getCommonCode() override;
32
36 std::string getTo2DCode() override;
37
41 std::string getTo3DCode() override;
42
46 void setCommonUniforms(GLuint program) override;
47
51 void setTo2DUniforms(GLuint program) override;
52
58 void setKDistortion(gmCore::float3 k);
59
65 void setPDistortion(gmCore::float2 p);
66
89 void setFocalDistance(gmCore::float2 f);
90
100 void setFocalOffset(gmCore::float2 c);
101
109 void setClipAngles(gmCore::angle4 f);
110
111 GM_OFI_DECLARE;
112
113private:
114
115 struct Impl;
116 std::unique_ptr<Impl> _impl;
117};
118
119END_NAMESPACE_GMGRAPHICS;
120
121#endif
A CoordinatesMapper provides a mapping between 2D and 3D.
Definition CoordinatesMapper.hh:23
Coordinates mapper that compensates for the optical effects as described by a rectilinear camera mode...
Definition RectilinearCameraModel.hh:21
std::array< float, 3 > float3
Array of 3 float.
Definition io_float.hh:15
std::array< angle, 4 > angle4
Array of 4 angle.
Definition io_angle.hh:65
std::array< float, 2 > float2
Array of 2 float.
Definition io_float.hh:12
Definition RectilinearCameraModel.cpp:16