commit 2d3e9fefb5f0680562b61050152539e3bcea5081
parent ee1bdaf8a1580aa8bf9ef8bbd4fdeb155fc38eff
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Wed, 13 Jul 2016 15:07:44 +0200
Add set_dni API call for sun.
Diffstat:
4 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/src/ssol.h b/src/ssol.h
@@ -489,6 +489,11 @@ ssol_sun_set_direction
(struct ssol_sun* sun,
const double direction[3]);
+SSOL_API res_T
+ssol_sun_set_dni
+ (struct ssol_sun* sun,
+ const double dni);
+
/* List of per wavelength power of the sun */
SSOL_API res_T
ssol_sun_set_spectrum
diff --git a/src/ssol_sun.c b/src/ssol_sun.c
@@ -123,6 +123,15 @@ ssol_sun_set_direction(struct ssol_sun* sun, const double direction[3])
}
res_T
+ssol_sun_set_dni(struct ssol_sun* sun, const double dni)
+{
+ if (!sun || dni <= 0)
+ return RES_BAD_ARG;
+ sun->dni = dni;
+ return RES_OK;
+}
+
+res_T
ssol_sun_set_spectrum(struct ssol_sun* sun, struct ssol_spectrum* spectrum)
{
if (!sun || !spectrum)
diff --git a/src/ssol_sun_c.h b/src/ssol_sun_c.h
@@ -35,6 +35,7 @@ struct buie {
struct ssol_sun {
double direction[3];
+ double dni;
struct ssol_spectrum* spectrum;
struct ssol_scene* scene_attachment;
enum sun_type type;
diff --git a/src/test_ssol_sun.c b/src/test_ssol_sun.c
@@ -118,6 +118,10 @@ main(int argc, char** argv)
CHECK(ssol_sun_set_direction(sun, NULL), RES_BAD_ARG);
CHECK(ssol_sun_set_direction(sun, dir), RES_OK);
+ CHECK(ssol_sun_set_dni(NULL, 1000), RES_BAD_ARG);
+ CHECK(ssol_sun_set_dni(sun, 0), RES_BAD_ARG);
+ CHECK(ssol_sun_set_dni(sun, 1000), RES_OK);
+
CHECK(ssol_sun_set_pillbox_aperture(NULL, 0.1), RES_BAD_ARG);
CHECK(ssol_sun_set_pillbox_aperture(sun, -0.1), RES_BAD_ARG);
CHECK(ssol_sun_set_pillbox_aperture(sun, 999), RES_BAD_ARG);