README.md (3034B)
1 # Star-VoXel 2 3 Star-VX is a C library designed to manage volume elements, called 4 voxels, structured as a set of axis-aligned cuboids. This library knows 5 nothing about the volume data it manages: it only provides data 6 structures that partition the voxels according to the user's criteria. 7 It also implements efficient operators for indexing voxels in space 8 partitioning data structures or for accessing them by ray tracing. 9 10 Star-VX offers 2 hierarchical data structures: the *octree* and the 11 *binary tree*. The former is used to structure regular 3D data, while 12 the latter is used for 1D data. Star-VX builds the required data 13 structure following a bottom-up strategy: the user submits the data set 14 to be partitioned, as well as the policy used to define when voxels can 15 be merged, and the merge operator itself. The way in which data is 16 accessed by *indexing* or *ray tracing* can also be finely tuned by the 17 user: in addition to the position of the probe or the radius to be 18 traced, he can provide callbacks to stop traversal at a hierarchical 19 level that is not a leaf, perform calculations at the traversed leaf 20 level, reject leaves, and so on. The host application thus has total 21 control over the traversal of the data structure, while its in-memory 22 representation and accessors are still entirely managed internally by 23 Star-VX. 24 25 ## Requirements 26 27 - C compiler 28 - POSIX make 29 - pkg-config 30 - [RSys](https://gitlab.com/vaplv/rsys) 31 32 ## Installation 33 34 Edit config.mk as needed, then run: 35 36 make clean install 37 38 ## Release notes 39 40 ### Version 0.3.1 41 42 - Fix ray-tracing inaccuracy in a binary tree when the ray direction is 43 approximately aligned with the infinite dimension. 44 - Improve the build system. 45 Simplify it by doing everything in one place (the Makefile). 46 Add macros to control installation sub-directories. 47 48 ### Version 0.3 49 50 - Replace CMake by Makefile as build system. 51 - Update compiler and linker flags to increase the security and 52 robustness of generated binaries. 53 - Provide a pkg-config file to link the library as an external 54 dependency. 55 - Fix compilation warnings 56 57 ### Version 0.2.1 58 59 Sets the CMake minimum version to 3.1: since CMake 3.20, version 2.8 has 60 become obsolete. 61 62 ### Version 0.2 63 64 - Update the profile of the functors invoked on node traversal: the ray 65 origin, direction and range are now provided as input arguments. 66 - Force the invocation of the challenge and filter functors on the root 67 node. Previously these functors were not called on the root;the 68 challenging and filtering was starting on its children. 69 70 ### Version 0.1 71 72 - Add the `svx_tree_write` and the `svx_tree_create_from_stream` 73 functions used to serialize and de-serialize the tree data structure, 74 respectively. 75 76 ## License 77 78 Copyright (C) 2018, 2020-2025 |Méso|Star> (contact@meso-star.com) 79 Copyright (C) 2018 Université Paul Sabatier 80 81 Star-VX is free software released under the GPL v3+ license: GNU GPL 82 version 3 or later. You are welcome to redistribute it under certain 83 conditions; refer to the COPYING file for details.