star-3d

Surface structuring for efficient 3D geometric queries
git clone git://git.meso-star.fr/star-3d.git
Log | Files | Refs | README | LICENSE

commit fa860c5011ef7f5d20192111750a0801dbced146
parent 957a6ae5a7b269cd8a14d2e528288cfbbb4ce77c
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Tue, 18 Dec 2018 13:49:11 +0100

Merge branch 'release_0.5.1'

Diffstat:
MREADME.md | 4++++
Mcmake/CMakeLists.txt | 2+-
Msrc/s3d_mesh.c | 12++++++------
Msrc/s3d_scene_view.c | 1+
Msrc/s3d_sphere.c | 8++++----
Msrc/test_s3d_scene_view.c | 12+++++++++---
6 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md @@ -114,6 +114,10 @@ with `<STAR3D_INSTALL_DIR>` the install directory of Star-3D and ## Release notes +### Version 0.5.1 + +- Fix a compilation issue on VC2017 + ### Version 0.5 - Add the support of spherical shapes. A sphere is composed of one primitive diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -59,7 +59,7 @@ rcmake_append_runtime_dirs(_runtime_dirs RSys Embree) ################################################################################ set(VERSION_MAJOR 0) set(VERSION_MINOR 5) -set(VERSION_PATCH 0) +set(VERSION_PATCH 1) set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) set(S3D_FILES_SRC diff --git a/src/s3d_mesh.c b/src/s3d_mesh.c @@ -218,15 +218,15 @@ mesh_compute_triangle_2area(struct mesh* mesh, const size_t itri) static void mesh_release(ref_T* ref) { - struct mesh* mesh; + struct mesh* msh; struct s3d_device* dev; ASSERT(ref); - mesh = CONTAINER_OF(ref, struct mesh, ref); - mesh_clear(mesh); - dev = mesh->dev; - darray_float_release(&mesh->cdf); - MEM_RM(dev->allocator, mesh); + msh = CONTAINER_OF(ref, struct mesh, ref); + mesh_clear(msh); + dev = msh->dev; + darray_float_release(&msh->cdf); + MEM_RM(dev->allocator, msh); S3D(device_ref_put(dev)); } diff --git a/src/s3d_scene_view.c b/src/s3d_scene_view.c @@ -352,6 +352,7 @@ scene_view_setup_embree(struct s3d_scene_view* scnview) res = RES_MEM_ERR; goto error; } + rtc_outdated = 1; } htable_geom_begin(&scnview->cached_geoms, &it); diff --git a/src/s3d_sphere.c b/src/s3d_sphere.c @@ -39,13 +39,13 @@ static void sphere_release(ref_T* ref) { - struct sphere* sphere; + struct sphere* sphre; struct s3d_device* dev; ASSERT(ref); - sphere = CONTAINER_OF(ref, struct sphere, ref); - dev = sphere->dev; - MEM_RM(dev->allocator, sphere); + sphre = CONTAINER_OF(ref, struct sphere, ref); + dev = sphre->dev; + MEM_RM(dev->allocator, sphre); S3D(device_ref_put(dev)); } diff --git a/src/test_s3d_scene_view.c b/src/test_s3d_scene_view.c @@ -194,12 +194,21 @@ test_trace_ray unsigned iinst0; unsigned iinst1; + f3(org, 0.5f, 0.25f, 0.25f); + f3(dir, 0.f, 0.f, 1.f); + f2(range, 0.f, FLT_MAX); + CHK(s3d_shape_get_id(cube, &icube) == RES_OK); CHK(s3d_shape_get_id(plane, &iplane) == RES_OK); CHK(s3d_scene_create(dev, &scn) == RES_OK); CHK(s3d_scene_create(dev, &scn2) == RES_OK); CHK(s3d_scene_create(dev, &scn3) == RES_OK); + + CHK(s3d_scene_view_create(scn, S3D_TRACE, &scnview) == RES_OK); + CHK(s3d_scene_view_trace_ray(scnview, org, dir, range, NULL, &hit) == RES_OK); + CHK(s3d_scene_view_ref_put(scnview) == RES_OK); + CHK(s3d_scene_attach_shape(scn, plane) == RES_OK); CHK(s3d_scene_attach_shape(scn, cube) == RES_OK); CHK(s3d_scene_attach_shape(scn2, cube) == RES_OK); @@ -207,9 +216,6 @@ test_trace_ray CHK(s3d_scene_view_create(scn, S3D_SAMPLE|S3D_GET_PRIMITIVE, &scnview) == RES_OK); - f3(org, 0.5f, 0.25f, 0.25f); - f3(dir, 0.f, 0.f, 1.f); - f2(range, 0.f, FLT_MAX); CHK(s3d_scene_view_trace_ray(scnview, org, dir, range, NULL, &hit) == RES_BAD_OP); CHK(s3d_scene_view_create(scn, S3D_TRACE, &scnview2) == RES_OK);