star-enclosures-3d

Extract enclosures from 3D geometry
git clone git://git.meso-star.fr/star-enclosures-3d.git
Log | Files | Refs | README | LICENSE

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:
Msrc/senc3d_scene_analyze.c | 15+++++++++------
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);