commit fdf566d0605cb2e9f5a64e3f82de93a195ba1fe6
parent ebd36d68ddb7fb6c84e0338b0ed45f8e52b92aba
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Wed, 19 Aug 2020 10:40:33 +0200
Fix Linux build
Diffstat:
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/senc3d_scene_analyze.c b/src/senc3d_scene_analyze.c
@@ -13,6 +13,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#define _POSIX_C_SOURCE 200112L
+
#include "senc3d.h"
#include "senc3d_device_c.h"
#include "senc3d_scene_c.h"
@@ -31,6 +33,7 @@
#include <star/s3d.h>
#include <omp.h>
+#include <math.h>
#include <limits.h>
#include <stdlib.h>
@@ -307,8 +310,8 @@ self_hit_filter
* is above ray_org */
FOR_EACH(i, 0, 3) {
vrtx_id_t v = trg->vertice_id[i];
- ASSERT(v < darray_position_size_get(&fctx->scn->vertices));
const union double3* p = vertices + v;
+ ASSERT(v < darray_position_size_get(&fctx->scn->vertices));
if(i == 0 || mz < p->pos.z) mz = p->pos.z;
}
if(mz <= ray_org[2])
@@ -324,8 +327,8 @@ self_hit_filter
FOR_EACH(i, 0, 3) {
float tmps, tmp[3], dir[3];
vrtx_id_t v = trg->vertice_id[i];
- ASSERT(v < darray_position_size_get(&fctx->scn->vertices));
const union double3* p = vertices + v;
+ ASSERT(v < darray_position_size_get(&fctx->scn->vertices));
f3_sub(dir, f3_set_d3(tmp, p->vec), ray_org);
tmps = f3_dot(dir, hit->normal);
if(i == 0 || fabsf(s) < fabsf(tmps)) s = tmps;
@@ -800,10 +803,10 @@ compare_components
static res_T
reorder_components
(struct senc3d_scene* scn,
- const struct darray_ptr_component_descriptor* connex_components,
+ struct darray_ptr_component_descriptor* connex_components,
struct darray_triangle_comp* triangles_comp_array)
{
- struct cc_descriptor* const* cc_descriptors;
+ struct cc_descriptor** cc_descriptors;
struct triangle_comp* triangles_comp;
component_id_t c;
component_id_t* new_ids = NULL;
@@ -814,7 +817,7 @@ reorder_components
cc_count = darray_ptr_component_descriptor_size_get(connex_components);
ASSERT(cc_count <= COMPONENT_MAX__);
- cc_descriptors = darray_ptr_component_descriptor_cdata_get(connex_components);
+ cc_descriptors = darray_ptr_component_descriptor_data_get(connex_components);
/* Single thread code: can allocate here */
new_ids = MEM_ALLOC(scn->dev->allocator, sizeof(*new_ids) * cc_count);
@@ -883,8 +886,8 @@ group_connex_components
{
/* Ensure reproducible cc_ids for debugging purpose */
*res = reorder_components(scn, connex_components, triangles_comp);
- if(*res != RES_OK) return;
}
+ if(*res != RES_OK) return;
#endif
descriptors = darray_ptr_component_descriptor_data_get(connex_components);