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:
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)) {