star-line

Structure for accelerating line importance sampling
git clone git://git.meso-star.fr/star-line.git
Log | Files | Refs | README | LICENSE

commit f192276af742a9159ee986f92d8d2d45497ce553
parent aa66e8720a2574ae7fdcfcb176ad36a13857b698
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu, 12 Feb 2026 11:16:10 +0100

Add the number of nodes/cells to the tree descriptor

Diffstat:
Msrc/sln.h | 5++++-
Msrc/sln_tree.c | 2++
Msrc/test_sln_tree.c | 3+++
3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/sln.h b/src/sln.h @@ -127,9 +127,12 @@ struct sln_tree_desc { double mesh_decimation_err; enum sln_mesh_type mesh_type; enum sln_line_profile line_profile; + + size_t nvertices; + size_t nnodes; }; #define SLN_TREE_DESC_NULL__ { \ - 0, 0, SLN_MESH_TYPES_COUNT__, SLN_LINE_PROFILES_COUNT__ \ + 0, 0, SLN_MESH_TYPES_COUNT__, SLN_LINE_PROFILES_COUNT__, 0, 0 \ } static const struct sln_tree_desc SLN_TREE_DESC_NULL = SLN_TREE_DESC_NULL__; diff --git a/src/sln_tree.c b/src/sln_tree.c @@ -413,6 +413,8 @@ sln_tree_get_desc(const struct sln_tree* tree, struct sln_tree_desc* desc) desc->mesh_decimation_err = tree->args.mesh_decimation_err; desc->mesh_type = tree->args.mesh_type; desc->line_profile = tree->args.line_profile; + desc->nnodes = darray_node_size_get(&tree->nodes); + desc->nvertices = darray_vertex_size_get(&tree->vertices); return RES_OK; } diff --git a/src/test_sln_tree.c b/src/test_sln_tree.c @@ -172,9 +172,12 @@ test_tree CHK(sln_tree_get_desc(tree, NULL) == RES_BAD_ARG); CHK(sln_tree_get_desc(tree, &desc) == RES_OK); + CHK(desc.max_nlines_per_leaf >= 1); CHK(desc.mesh_decimation_err == tree_args.mesh_decimation_err); CHK(desc.mesh_type == tree_args.mesh_type); CHK(desc.line_profile == tree_args.line_profile); + CHK(desc.nvertices >= 1); + CHK(desc.nnodes >= 1); CHK(node = sln_tree_get_root(tree)); while(!sln_node_is_leaf(node)) {