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 0d64c840e5ae3225c70dfc66e970eec8aa874da5
parent 4062bcb3814d4dd5b072d58baf1189bb732d8bc4
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 19 Apr 2024 15:18:57 +0200

Merge branch 'release_0.7' into develop

Diffstat:
MMakefile | 2+-
MREADME.md | 78+++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Mconfig.mk | 2+-
Mmake.sh | 2+-
Msrc/senc3d.h | 2+-
Msrc/senc3d_descriptor.c | 2+-
Msrc/senc3d_device.c | 2+-
Msrc/senc3d_device_c.h | 2+-
Msrc/senc3d_enclosure.c | 2+-
Msrc/senc3d_enclosure_c.h | 2+-
Msrc/senc3d_enclosure_data.h | 2+-
Msrc/senc3d_internal_types.h | 2+-
Msrc/senc3d_sXd_helper.h | 2+-
Msrc/senc3d_scene.c | 2+-
Msrc/senc3d_scene_analyze.c | 2+-
Msrc/senc3d_scene_analyze_c.h | 2+-
Msrc/senc3d_scene_c.h | 2+-
Msrc/senc3d_side_range.h | 2+-
Msrc/sencX3d.h | 2+-
Msrc/sencX3d_undefs.h | 2+-
Msrc/test_senc3d_bad_grouping.c | 2+-
Msrc/test_senc3d_cube_behind_cube.c | 2+-
Msrc/test_senc3d_cube_in_cube.c | 2+-
Msrc/test_senc3d_cube_on_cube.c | 2+-
Msrc/test_senc3d_device.c | 2+-
Msrc/test_senc3d_enclosure.c | 2+-
Msrc/test_senc3d_glazing.c | 2+-
Msrc/test_senc3d_inconsistant_cube.c | 2+-
Msrc/test_senc3d_invalid_scenes.c | 2+-
Msrc/test_senc3d_many_enclosures.c | 2+-
Msrc/test_senc3d_many_triangles.c | 2+-
Msrc/test_senc3d_multi_media.c | 2+-
Msrc/test_senc3d_sample_enclosure.c | 2+-
Msrc/test_senc3d_scene.c | 2+-
Msrc/test_senc3d_some_enclosures.c | 2+-
Msrc/test_senc3d_some_triangles.c | 2+-
Msrc/test_senc3d_unspecified_medium.c | 2+-
Msrc/test_senc3d_utils.h | 2+-
Msrc/test_senc3d_utils2.h | 2+-
Msrc/test_senc3d_zero_distance.c | 2+-
40 files changed, 82 insertions(+), 74 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +# Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/README.md b/README.md @@ -1,8 +1,6 @@ -Star-enclosures-3d -================== +# Star-enclosures-3d -Overview --------- +## Overview The purpose of Star-enclosures-3d is to extract enclosures from raw geometry. An enclosure is a set of triangles enclosing a given volume. @@ -19,29 +17,38 @@ Also the convention regarding FRONT/BACK sides for input triangles as well as the convention regarding normals' orientation for output triangles can be set. -How to build ------------- +## Requirements -Star-enclosures-3d relies on the [CMake](http://www.cmake.org) and the -[RCMake](https://gitlab.com/vaplv/rcmake/) package to build. It also -depends on the [RSys](https://gitlab.com/vaplv/rsys/) and -[Star-3D](https://gitlab.com/meso-star/star-3d/) libraries. Additionaly, -two more libraries are needed to build tests: -[Star-SP](https://gitlab.com/meso-star/star-sp/) and -[Star-3DUT](https://gitlab.com/meso-star/star-3dut/). +- C compiler +- POSIX make +- pkg-config +- [RSys](https://gitlab.com/vaplv/rsys) +- [Star 3D](https://gitlab.com/meso-star/star-3d) +- [Star 3DUT](https://gitlab.com/meso-star/star-3dut) + (optinal for tests) +- [Star SamPling](https://gitlab.com/meso-star/star-sp) + (optinal for tests) -First ensure that CMake and a C compiler that implements the OpenMP 2.0 API -are installed on your system. Then install the RCMake package as well as -all the aforementioned prerequisites. Finally generate the project from -the `cmake/CMakeLists.txt` file by appending to the `CMAKE_PREFIX_PATH` -variable the install directories of its dependencies. +## Installation -Release notes -------------- +Edit config.mk as needed, then run: + + make clean install + +## Release notes + +### Version 0.7 + +- Replace CMake by Makefile as build system. +- Update compiler and linker flags to increase the security and + robustness of generated binaries. +- Provide a pkg-config file to link the library as an external + dependency. ### Version 0.6 -- Major rework on the code that groups connex components to create enclosures. +- Major rework on the code that groups connex components to create + enclosures. - Add tests showing bugs at the grouping stage in previous release. - Add debug code that allows to dump how connex components are grouped. - Fix compilation warnings. @@ -49,15 +56,15 @@ Release notes ### Version 0.5.5 -- Fixes a crash linked to numerical accuracy that caused connex components - grouping to loop forever. +- Fixes a crash linked to numerical accuracy that caused connex + components grouping to loop forever. ### Version 0.5.4 -- Fixes the (rare) situation where temporary local variables could be used in - a unitialized way in the `senc3d_scene_create` function. -- Sets the required version of Star-SampPling to 0.12. This version fixes - compilation errors with gcc 11 but introduces API breaks. +- Fixes the (rare) situation where temporary local variables could be + used in a unitialized way in the `senc3d_scene_create` function. +- Sets the required version of Star-SampPling to 0.12. This version + fixes compilation errors with gcc 11 but introduces API breaks. ### Version 0.5.3 @@ -103,10 +110,11 @@ triangles. ### Version 0.4 -- Change signature of the senc_scene_add_geometry API. Thus this release - is **not compatible** with previous ones. - The global_id callback that was ill-defined is removed and 2 callbacks - are added to manage client-app data when deduplicating geometry. +- Change signature of the `senc_scene_add_geometry` API. Thus this + release is **not compatible** with previous ones. + The `global_id` callback that was ill-defined is removed and 2 + callbacks are added to manage client-app data when deduplicating + geometry. These 2 callback allow a proper client-app management of global ids. - Remove execution time for analysis steps from the log. @@ -139,11 +147,11 @@ triangles. - Allow to set the FRONT/BACK convention for input triangles. - Allow to set the normal convention for output triangles. -License -------- +## License + +Copyright © 2018-2020, 2023, 2024 +[|Méso|Star>](https://www.meso-star.com) (<contact@meso-star.com>). -Copyright © 2018-2020, 2023 [|Méso|Star>](https://www.meso-star.com) -(<contact@meso-star.com>). It is free software released under the GPLv3+ license. You are welcome to redistribute it under certain conditions; refer to the COPYING files for details. diff --git a/config.mk b/config.mk @@ -1,4 +1,4 @@ -VERSION = 0.6.0 +VERSION = 0.7.0 PREFIX = /usr/local LIB_TYPE = SHARED diff --git a/make.sh b/make.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +# Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/senc3d.h b/src/senc3d.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_descriptor.c b/src/senc3d_descriptor.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_device.c b/src/senc3d_device.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_device_c.h b/src/senc3d_device_c.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_enclosure.c b/src/senc3d_enclosure.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_enclosure_c.h b/src/senc3d_enclosure_c.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_enclosure_data.h b/src/senc3d_enclosure_data.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_internal_types.h b/src/senc3d_internal_types.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_sXd_helper.h b/src/senc3d_sXd_helper.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_scene.c b/src/senc3d_scene.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_scene_analyze.c b/src/senc3d_scene_analyze.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_scene_analyze_c.h b/src/senc3d_scene_analyze_c.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_scene_c.h b/src/senc3d_scene_c.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/senc3d_side_range.h b/src/senc3d_side_range.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/sencX3d.h b/src/sencX3d.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/sencX3d_undefs.h b/src/sencX3d_undefs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_bad_grouping.c b/src/test_senc3d_bad_grouping.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_cube_behind_cube.c b/src/test_senc3d_cube_behind_cube.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_cube_in_cube.c b/src/test_senc3d_cube_in_cube.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_cube_on_cube.c b/src/test_senc3d_cube_on_cube.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_device.c b/src/test_senc3d_device.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_enclosure.c b/src/test_senc3d_enclosure.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_glazing.c b/src/test_senc3d_glazing.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_inconsistant_cube.c b/src/test_senc3d_inconsistant_cube.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_invalid_scenes.c b/src/test_senc3d_invalid_scenes.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_many_enclosures.c b/src/test_senc3d_many_enclosures.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_many_triangles.c b/src/test_senc3d_many_triangles.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_multi_media.c b/src/test_senc3d_multi_media.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_sample_enclosure.c b/src/test_senc3d_sample_enclosure.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_scene.c b/src/test_senc3d_scene.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_some_enclosures.c b/src/test_senc3d_some_enclosures.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_some_triangles.c b/src/test_senc3d_some_triangles.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_unspecified_medium.c b/src/test_senc3d_unspecified_medium.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_utils.h b/src/test_senc3d_utils.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_utils2.h b/src/test_senc3d_utils2.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/test_senc3d_zero_distance.c b/src/test_senc3d_zero_distance.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by