solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

commit 37d6b4949b911e8612b6afae4389d815cd3edda6
parent 17ac410c1412561a16ce03c57cd9192c12acbab6
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Wed, 29 Mar 2017 16:18:25 +0200

Merge remote-tracking branch 'origin/develop' into feature_outputs

Diffstat:
Mcmake/CMakeLists.txt | 2+-
Msrc/ssol.h | 6++++++
Msrc/ssol_instance.c | 10++++++++++
Msrc/test_ssol_instance.c | 22++++++++++++++++++++++
4 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -49,7 +49,7 @@ rcmake_append_runtime_dirs(_runtime_dirs RSys Star3D StarCPR StarSF StarSP) ################################################################################ set(VERSION_MAJOR 0) set(VERSION_MINOR 1) -set(VERSION_PATCH 0) +set(VERSION_PATCH 1) set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) set(SSOL_FILES_SRC diff --git a/src/ssol.h b/src/ssol.h @@ -811,6 +811,12 @@ ssol_instance_set_receiver const int mask, /* Combination of ssol_side_flag */ const int per_primitive); /* Enable the per primitive integration */ +SSOL_API res_T +ssol_instance_is_receiver + (struct ssol_instance* instance, + int* mask, /* Combination of ssol_side_flag */ + int* per_primitive); + /* Define whether or not the instance is sampled or not. By default an instance * is sampled. */ SSOL_API res_T diff --git a/src/ssol_instance.c b/src/ssol_instance.c @@ -167,6 +167,16 @@ ssol_instance_set_receiver } res_T +ssol_instance_is_receiver + (struct ssol_instance* instance, int* mask, int* per_primitive) +{ + if(!instance || !mask || !per_primitive) return RES_BAD_ARG; + *mask = instance->receiver_mask; + *per_primitive = instance->receiver_per_primitive; + return RES_OK; +} + +res_T ssol_instance_sample (struct ssol_instance* instance, const int sample) diff --git a/src/test_ssol_instance.c b/src/test_ssol_instance.c @@ -39,6 +39,7 @@ main(int argc, char** argv) size_t n; unsigned i, count; uint32_t id, id1; + int mask, prim; (void) argc, (void) argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); @@ -84,6 +85,27 @@ main(int argc, char** argv) CHECK(ssol_instance_set_receiver(NULL, 0, 0), RES_BAD_ARG); CHECK(ssol_instance_set_receiver(instance, 0, 0), RES_OK); + + CHECK(ssol_instance_is_receiver(NULL, NULL, NULL), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(instance, NULL, NULL), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(NULL, &mask, NULL), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(instance, &mask, NULL), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(NULL, NULL, &prim), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(instance, NULL, &prim), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(NULL, &mask, &prim), RES_BAD_ARG); + CHECK(ssol_instance_is_receiver(instance, &mask, &prim), RES_OK); + CHECK(mask, 0); + CHECK(prim, 0); + + CHECK(ssol_instance_set_receiver(instance, SSOL_FRONT, 0), RES_OK); + CHECK(ssol_instance_is_receiver(instance, &mask, &prim), RES_OK); + CHECK(mask, SSOL_FRONT); + CHECK(prim, 0); + CHECK(ssol_instance_set_receiver(instance, SSOL_FRONT|SSOL_BACK, 1), RES_OK); + CHECK(ssol_instance_is_receiver(instance, &mask, &prim), RES_OK); + CHECK(mask, SSOL_FRONT|SSOL_BACK); + CHECK(prim, 1); + CHECK(ssol_instance_sample(NULL, 0), RES_BAD_ARG); CHECK(ssol_instance_sample(instance, 0), RES_OK); CHECK(ssol_instance_sample(instance, 1), RES_OK);