Blender V5.0
bmesh_mesh_debug.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
13
14#ifndef NDEBUG
15
16# include <cstdio>
17
18# include "MEM_guardedalloc.h"
19
20# include "BKE_customdata.hh"
21
22# include "bmesh.hh"
23
24# include "bmesh_mesh_debug.hh"
25
26# include "BLI_dynstr.h"
27
29{
30 DynStr *dynstr = BLI_dynstr_new();
31 char *ret;
32
33 const char *indent8 = " ";
34
35 BLI_dynstr_append(dynstr, "{\n");
36 BLI_dynstr_appendf(dynstr, " 'ptr': '%p',\n", (void *)bm);
37 BLI_dynstr_appendf(dynstr, " 'totvert': %d,\n", bm->totvert);
38 BLI_dynstr_appendf(dynstr, " 'totedge': %d,\n", bm->totedge);
39 BLI_dynstr_appendf(dynstr, " 'totface': %d,\n", bm->totface);
40
41 BLI_dynstr_append(dynstr, " 'vert_layers': (\n");
42 CustomData_debug_info_from_layers(&bm->vdata, indent8, dynstr);
43 BLI_dynstr_append(dynstr, " ),\n");
44
45 BLI_dynstr_append(dynstr, " 'edge_layers': (\n");
46 CustomData_debug_info_from_layers(&bm->edata, indent8, dynstr);
47 BLI_dynstr_append(dynstr, " ),\n");
48
49 BLI_dynstr_append(dynstr, " 'loop_layers': (\n");
50 CustomData_debug_info_from_layers(&bm->ldata, indent8, dynstr);
51 BLI_dynstr_append(dynstr, " ),\n");
52
53 BLI_dynstr_append(dynstr, " 'poly_layers': (\n");
54 CustomData_debug_info_from_layers(&bm->pdata, indent8, dynstr);
55 BLI_dynstr_append(dynstr, " ),\n");
56
57 BLI_dynstr_append(dynstr, "}\n");
58
60 BLI_dynstr_free(dynstr);
61 return ret;
62}
63
65{
66 char *str = BM_mesh_debug_info(bm);
67 puts(str);
68 fflush(stdout);
70}
71
72#endif /* !NDEBUG */
CustomData interface, see also DNA_customdata_types.h.
void CustomData_debug_info_from_layers(const CustomData *data, const char *indent, DynStr *dynstr)
A dynamically sized string ADT.
char * BLI_dynstr_get_cstring(const DynStr *ds) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
DynStr * BLI_dynstr_new(void) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
Definition BLI_dynstr.cc:37
void BLI_dynstr_free(DynStr *ds) ATTR_NONNULL()
void BLI_dynstr_appendf(DynStr *__restrict ds, const char *__restrict format,...) ATTR_PRINTF_FORMAT(2
void BLI_dynstr_append(DynStr *__restrict ds, const char *cstr) ATTR_NONNULL()
Definition BLI_dynstr.cc:56
Read Guarded memory(de)allocation.
BMesh * bm
char * BM_mesh_debug_info(BMesh *bm)
void BM_mesh_debug_print(BMesh *bm)
#define str(s)
void MEM_freeN(void *vmemh)
Definition mallocn.cc:113
return ret