commit ce19269ae3ac8b54ea852961c3a47a7f640ce7c8
parent 788b495441c9a0e439fec76670fef0f0b988cde6
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Tue, 14 Mar 2017 16:07:18 +0100
Handle the per_primitive receiver flag in solstice
Diffstat:
5 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/solstice.c b/src/solstice.c
@@ -417,6 +417,7 @@ setup_receivers(struct solstice* solstice, struct srcvl* srcvl)
receiver.node = NULL;
receiver.side = rcv.side;
+ receiver.per_primitive = rcv.per_primitive;
res = htable_receiver_set(&solstice->receivers, &name, &receiver);
if(res != RES_OK) {
diff --git a/src/solstice.h b/src/solstice.h
@@ -35,6 +35,7 @@ struct sanim_node;
struct solstice_receiver {
struct solstice_node* node;
enum srcvl_side side;
+ int per_primitive;
};
#define DARRAY_NAME nodes
diff --git a/src/solstice_c.h b/src/solstice_c.h
@@ -129,7 +129,8 @@ solstice_node_geometry_set_primary
extern LOCAL_SYM res_T
solstice_node_geometry_set_receiver
(struct solstice_node* node,
- const int mask); /* Combination of ssol_side_flag */
+ const int mask, /* Combination of ssol_side_flag */
+ const int per_primitive); /* Enable the per primitive integration */
extern LOCAL_SYM void
solstice_node_target_get_tracking
diff --git a/src/solstice_entity.c b/src/solstice_entity.c
@@ -336,7 +336,7 @@ create_node
const int mask = srcvl_side_to_ssol_mask(rcv->side);
ASSERT(rcv->node == NULL); /* Receiver is not attached to a node */
- res = solstice_node_geometry_set_receiver(node, mask);
+ res = solstice_node_geometry_set_receiver(node, mask, rcv->per_primitive);
if(res != RES_OK) {
fprintf(stderr, "Could not define the entity `%s' as a receiver.\n",
str_cget(&entity->name));
diff --git a/src/solstice_node.c b/src/solstice_node.c
@@ -246,10 +246,11 @@ solstice_node_geometry_set_primary
}
res_T
-solstice_node_geometry_set_receiver(struct solstice_node* node, const int mask)
+solstice_node_geometry_set_receiver
+ (struct solstice_node* node, const int mask, const int per_primitive)
{
ASSERT(node && node->type == SOLSTICE_NODE_GEOMETRY);
- return ssol_instance_set_receiver(node->instance, mask, 0);
+ return ssol_instance_set_receiver(node->instance, mask, per_primitive);
}
void