Blender V4.3
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
14#ifndef NDEBUG
15
16# include <cstdio>
17
18# include "MEM_guardedalloc.h"
19
20# include "BLI_utildefines.h"
21
22# include "BKE_customdata.hh"
23
24# include "bmesh.hh"
25
26# include "bmesh_mesh_debug.hh"
27
28# include "BLI_dynstr.h"
29
31{
32 DynStr *dynstr = BLI_dynstr_new();
33 char *ret;
34
35 const char *indent8 = " ";
36
37 BLI_dynstr_append(dynstr, "{\n");
38 BLI_dynstr_appendf(dynstr, " 'ptr': '%p',\n", (void *)bm);
39 BLI_dynstr_appendf(dynstr, " 'totvert': %d,\n", bm->totvert);
40 BLI_dynstr_appendf(dynstr, " 'totedge': %d,\n", bm->totedge);
41 BLI_dynstr_appendf(dynstr, " 'totface': %d,\n", bm->totface);
42
43 BLI_dynstr_append(dynstr, " 'vert_layers': (\n");
44 CustomData_debug_info_from_layers(&bm->vdata, indent8, dynstr);
45 BLI_dynstr_append(dynstr, " ),\n");
46
47 BLI_dynstr_append(dynstr, " 'edge_layers': (\n");
48 CustomData_debug_info_from_layers(&bm->edata, indent8, dynstr);
49 BLI_dynstr_append(dynstr, " ),\n");
50
51 BLI_dynstr_append(dynstr, " 'loop_layers': (\n");
52 CustomData_debug_info_from_layers(&bm->ldata, indent8, dynstr);
53 BLI_dynstr_append(dynstr, " ),\n");
54
55 BLI_dynstr_append(dynstr, " 'poly_layers': (\n");
56 CustomData_debug_info_from_layers(&bm->pdata, indent8, dynstr);
57 BLI_dynstr_append(dynstr, " ),\n");
58
59 BLI_dynstr_append(dynstr, "}\n");
60
62 BLI_dynstr_free(dynstr);
63 return ret;
64}
65
67{
68 char *str = BM_mesh_debug_info(bm);
69 puts(str);
70 fflush(stdout);
72}
73
74#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()
Definition BLI_dynstr.c:149
DynStr * BLI_dynstr_new(void) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
Definition BLI_dynstr.c:37
void BLI_dynstr_free(DynStr *ds) ATTR_NONNULL()
Definition BLI_dynstr.c:174
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.c:62
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT 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:105
return ret
int totvert
CustomData vdata
int totedge
CustomData edata
CustomData pdata
CustomData ldata
int totface