star-vx

Structuring voxels for ray-tracing
git clone git://git.meso-star.fr/star-vx.git
Log | Files | Refs | README | LICENSE

commit b7b2948209547d339c1eff8ce775878b3d884006
parent 6f031d2d1ce74b3500ae24d14c4deab897bf291e
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Mon, 24 Jul 2023 10:45:45 +0200

Rewrite the README file

Small changes to the overview. Addition of a section on project
requirements and dependencies. Complete rewrite of the installation
procedure concerning the use of POSIX make instead of CMake as the first
build system.

Diffstat:
MREADME.md | 75++++++++++++++++++++++++++++++++++-----------------------------------------
1 file changed, 34 insertions(+), 41 deletions(-)

diff --git a/README.md b/README.md @@ -1,42 +1,37 @@ # Star-VoXel -Star-VX is C library whose purpose is to manage volume elements, named voxels, -structured as a set of axis aligned cuboids. This library does not know -anything about the volumic data that it handles: it only provides data -structures that partition voxels according to user criteria. It also implements -efficient ways to index voxels into the space partitioning data structures or -to access them through ray-tracing. - -Star-VX proposes 2 hierarchical data structures: the *octree* and the *binary -tree*. The first one is used to structure regular 3D data while the second one -is for 1D data. Star-VX build the required data structure following a -bottom-up strategy: the user submits the set of data to partition as well as -the policy used to define when voxels can be merged and the merge operator -itself. The way data are accessed through *indexing* or *ray-tracing* can also be -finely tuned by the user. In addition of the probe position or the ray to -trace, one can provide callbacks to stop traversal at a hierarchy level that is -not a leaf, perform computations at the traversed leaf, discard leafs, etc. -This gives a full control of the host application on the data structure while -its memory representation and its accessors are still fully managed internally -by Star-VX. - -## How to build - -Star-VX relies on the [CMake](http://www.cmake.org) and the -[RCMake](https://gitlab.com/vaplv/rcmake/) packages to build. It also depends -on the [RSys](https://gitlab.com/vaplv/rsys/), library. It is compatible -GNU/Linux as well as Microsoft Windows 7 and later, both in 64-bits on x86-64 -architectures. It was successfully built with the [GNU Compiler -Collection](https://gcc.gnu.org) (versions 4.8.5 and later) as well as with -Microsoft Visual Studio 2015. - -First ensure that CMake is installed on your system. Then install the RCMake -package as well as 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. The -resulting project can be edited, built, tested and installed as any CMake -project. Refer to the [CMake](https://cmake.org/documentation) for further -informations on CMake. +Star-VX is a C library designed to manage volume elements, called voxels, +structured as a set of axis-aligned cuboids. This library knows nothing about +the volume data it manages: it only provides data structures that partition +the voxels according to the user's criteria. It also implements efficient +operators for indexing voxels in space partitioning data structures or for +accessing them by ray tracing. + +Star-VX offers 2 hierarchical data structures: the *octree* and the *binary +tree*. The former is used to structure regular 3D data, while the latter is +used for 1D data. Star-VX builds the required data structure following a +bottom-up strategy: the user submits the data set to be partitioned, as well as +the policy used to define when voxels can be merged, and the merge operator +itself. The way in which data is accessed by *indexing* or *ray tracing* can +also be finely tuned by the user: in addition to the position of the probe or +the radius to be traced, he can provide callbacks to stop traversal at a +hierarchical level that is not a leaf, perform calculations at the traversed +leaf level, reject leaves, and so on. The host application thus has total +control over the traversal of the data structure, while its in-memory +representation and accessors are still entirely managed internally by Star-VX. + +## Requirements + +- C compiler +- POSIX make +- pkg-config +- [RSys](https://gitlab.com/vaplv/rsys) + +## Installation + +Edit config.mk as needed, then run: + + make clean install ## Release notes @@ -60,11 +55,9 @@ obsolete. ## License -Copyright (C) 2018, 2020, 2021 [|Meso|Star>](https://www.meso-star.com) -(<contact@meso-star.com>). +Copyright (C) 2018, 2020, 2021 |Meso|Star> (contact@meso-star.com) Copyright (C) 2018 Université Paul Sabatier -(<contact-edstar@laplace.univ-tlse.fr>). -Star-VoXel is free software released under the GPL v3+ license: GNU GPL version +Star-VX is free software released under the GPL v3+ license: GNU GPL version 3 or later. You are welcome to redistribute it under certain conditions; refer to the COPYING file for details.