1.3.64
 
Loading...
Searching...
No Matches
PragueSkyModelInterface.h
Go to the documentation of this file.
1
22#ifndef HELIOS_PRAGUE_SKY_MODEL_INTERFACE_H
23#define HELIOS_PRAGUE_SKY_MODEL_INTERFACE_H
24
25#include "Context.h"
26#include <string>
27#include <vector>
28#include <memory>
29
30// Forward declare Prague model to avoid including full header
31class PragueSkyModel;
32
33namespace helios {
34
47 public:
52
57
68 void initialize(const std::string &dataset_path);
69
74 bool isInitialized() const;
75
92 float getSkyRadiance(const vec3 &view_direction, const vec3 &sun_direction, float wavelength_nm, float visibility_km, float albedo = -1.0f) const;
93
111 float computeIntegratedSkyRadiance(const vec3 &view_direction, const vec3 &sun_direction, float visibility_km, const std::vector<vec2> &camera_response, float albedo = -1.0f) const;
112
122 static float turbidityToVisibility(float turbidity);
123
136 void getAvailableRanges(float &min_wavelength_nm, float &max_wavelength_nm, float &min_visibility_km, float &max_visibility_km, float &min_elevation_deg, float &max_elevation_deg) const;
137
138 private:
149 void sunDirectionToAngles(const vec3 &sun_dir, double &elevation_deg, double &azimuth_deg) const;
150
151 std::unique_ptr<PragueSkyModel> model;
152 bool initialized;
153 std::string dataset_path;
154 };
155
156} // namespace helios
157
158#endif // HELIOS_PRAGUE_SKY_MODEL_INTERFACE_H