forked from miguelfranca/BHRaytracer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SkyMap.hpp
51 lines (37 loc) · 1.1 KB
/
SkyMap.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#pragma once
#include <GraphicsFramework/sfml.h>
#include "Spacetime.hpp"
#include "Matrix.hpp"
#include "Tools.hpp"
class SkyMap
{
public:
SkyMap(const Spacetime& a_st, bool do_elliptic_parametrization);
virtual sf::Color getPixelColor(double x, double y) = 0;
sf::Image getSkyView(const Matrix<VecD>& mat);
VecD getCoordinates(double theta, double phi);
protected:
const Spacetime& st;
bool do_elliptic_parametrization = false;
};
class ColorSkyMap : public SkyMap
{
public:
ColorSkyMap(const Spacetime& a_st, bool do_elliptic_parametrization, double grid_angle,
double thickness, double color_ring = 0.);
sf::Color getPixelColor(double x, double y);
private:
double grid_angle;
double thickness;
double color_ring;
};
class ImageSkyMap : public SkyMap
{
public:
ImageSkyMap(const Spacetime& a_st, const std::string& filename, bool do_elliptic_parametrization);
sf::Color getPixelColor(double x, double y);
private:
sf::Image sky;
};
sf::Color redshiftColor(sf::Color color, double factor);
sf::Color wavelengthToColor(double wavelength);