Blender V5.0
sky_hosek.cpp File Reference
#include "sky_hosek.h"
#include "sky_hosek_data.h"
#include <cassert>
#include <cmath>
#include <cstdlib>

Go to the source code of this file.

Macros

#define MATH_PI   3.141592653589793
#define MATH_DEG_TO_RAD   (MATH_PI / 180.0)
#define DEGREES   *MATH_DEG_TO_RAD
#define TERRESTRIAL_SOLAR_RADIUS   ((0.51 DEGREES) / 2.0)
#define ALLOC(_struct)

Typedefs

using ArHosekSkyModel_Dataset = const double *
using ArHosekSkyModel_Radiance_Dataset = const double *

Functions

static void ArHosekSkyModel_CookConfiguration (ArHosekSkyModel_Dataset dataset, SKY_ArHosekSkyModelConfiguration config, double turbidity, double albedo, double solar_elevation)
static double ArHosekSkyModel_CookRadianceConfiguration (ArHosekSkyModel_Radiance_Dataset dataset, double turbidity, double albedo, double solar_elevation)
static double ArHosekSkyModel_GetRadianceInternal (const SKY_ArHosekSkyModelConfiguration configuration, const double theta, const double gamma)
void SKY_arhosekskymodelstate_free (SKY_ArHosekSkyModelState *state)
double SKY_arhosekskymodel_radiance (SKY_ArHosekSkyModelState *state, double theta, double gamma, double wavelength)
SKY_ArHosekSkyModelStateSKY_arhosek_xyz_skymodelstate_alloc_init (const double turbidity, const double albedo, const double elevation)

Macro Definition Documentation

◆ ALLOC

#define ALLOC ( _struct)
Value:
((_struct *)malloc(sizeof(_struct)))

Definition at line 105 of file sky_hosek.cpp.

Referenced by SKY_arhosek_xyz_skymodelstate_alloc_init().

◆ DEGREES

#define DEGREES   *MATH_DEG_TO_RAD

Definition at line 97 of file sky_hosek.cpp.

◆ MATH_DEG_TO_RAD

#define MATH_DEG_TO_RAD   (MATH_PI / 180.0)

Definition at line 93 of file sky_hosek.cpp.

◆ MATH_PI

#define MATH_PI   3.141592653589793

◆ TERRESTRIAL_SOLAR_RADIUS

#define TERRESTRIAL_SOLAR_RADIUS   ((0.51 DEGREES) / 2.0)

Definition at line 101 of file sky_hosek.cpp.

Referenced by SKY_arhosek_xyz_skymodelstate_alloc_init().

Typedef Documentation

◆ ArHosekSkyModel_Dataset

using ArHosekSkyModel_Dataset = const double *

Definition at line 113 of file sky_hosek.cpp.

◆ ArHosekSkyModel_Radiance_Dataset

using ArHosekSkyModel_Radiance_Dataset = const double *

Definition at line 114 of file sky_hosek.cpp.

Function Documentation

◆ ArHosekSkyModel_CookConfiguration()

void ArHosekSkyModel_CookConfiguration ( ArHosekSkyModel_Dataset dataset,
SKY_ArHosekSkyModelConfiguration config,
double turbidity,
double albedo,
double solar_elevation )
static

Definition at line 118 of file sky_hosek.cpp.

References i, MATH_PI, and pow.

Referenced by SKY_arhosek_xyz_skymodelstate_alloc_init().

◆ ArHosekSkyModel_CookRadianceConfiguration()

double ArHosekSkyModel_CookRadianceConfiguration ( ArHosekSkyModel_Radiance_Dataset dataset,
double turbidity,
double albedo,
double solar_elevation )
static

Definition at line 194 of file sky_hosek.cpp.

References MATH_PI, and pow.

Referenced by SKY_arhosek_xyz_skymodelstate_alloc_init().

◆ ArHosekSkyModel_GetRadianceInternal()

double ArHosekSkyModel_GetRadianceInternal ( const SKY_ArHosekSkyModelConfiguration configuration,
const double theta,
const double gamma )
static

Definition at line 255 of file sky_hosek.cpp.

References cos, exp, pow, and sqrt.

Referenced by SKY_arhosekskymodel_radiance().

◆ SKY_arhosek_xyz_skymodelstate_alloc_init()

SKY_ArHosekSkyModelState * SKY_arhosek_xyz_skymodelstate_alloc_init ( const double turbidity,
const double albedo,
const double elevation )

◆ SKY_arhosekskymodel_radiance()

double SKY_arhosekskymodel_radiance ( SKY_ArHosekSkyModelState * state,
double theta,
double gamma,
double wavelength )

Definition at line 275 of file sky_hosek.cpp.

References ArHosekSkyModel_GetRadianceInternal(), e, fmod(), interp(), result, and state.

◆ SKY_arhosekskymodelstate_free()

void SKY_arhosekskymodelstate_free ( SKY_ArHosekSkyModelState * state)