Blender
V5.0
source
blender
blenkernel
intern
multires_unsubdivide.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2020 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9
#pragma once
10
11
#include "
BLI_span.hh
"
12
#include "
BLI_virtual_array.hh
"
13
14
struct
BMesh
;
15
struct
Mesh
;
16
struct
MDisps
;
17
struct
MultiresModifierData
;
18
19
struct
MultiresUnsubdivideGrid
{
20
/* For sanity checks. */
21
int
grid_index
;
22
int
grid_size
;
23
25
float
(*
grid_co
)[3];
26
};
27
28
struct
MultiresUnsubdivideContext
{
29
/* Input Mesh to un-subdivide. */
30
Mesh
*
original_mesh
=
nullptr
;
31
MDisps
*
original_mdisp
=
nullptr
;
32
34
int
num_original_levels
;
35
37
Mesh
*
base_mesh
=
nullptr
;
38
40
int
max_new_levels
= 0;
41
43
int
num_new_levels
= 0;
44
49
int
num_total_levels
= 0;
50
52
int
num_grids
;
53
MultiresUnsubdivideGrid
*
base_mesh_grids
=
nullptr
;
54
55
/* Private data. */
56
BMesh
*
bm_original_mesh
=
nullptr
;
57
blender::Span<int>
loop_to_face_map
;
58
blender::VArraySpan<int>
base_to_orig_vmap
;
59
};
60
61
/* --------------------------------------------------------------------
62
* Construct/destruct reshape context.
63
*/
64
65
void
multires_unsubdivide_context_init
(
MultiresUnsubdivideContext
*context,
66
Mesh
*original_mesh,
67
MultiresModifierData
*mmd);
68
void
multires_unsubdivide_context_free
(
MultiresUnsubdivideContext
*context);
69
70
/* --------------------------------------------------------------------
71
* Rebuild Lower Subdivisions.
72
*/
73
74
/* Rebuilds all subdivision to the level 0 base mesh. */
75
bool
multires_unsubdivide_to_basemesh
(
MultiresUnsubdivideContext
*context);
BLI_span.hh
BLI_virtual_array.hh
blender::Span
Definition
BLI_span.hh:74
blender::VArraySpan
Definition
BLI_virtual_array.hh:1108
float
nullptr float
Definition
closures_template.h:123
multires_unsubdivide_to_basemesh
bool multires_unsubdivide_to_basemesh(MultiresUnsubdivideContext *context)
Definition
multires_unsubdivide.cc:1101
multires_unsubdivide_context_init
void multires_unsubdivide_context_init(MultiresUnsubdivideContext *context, Mesh *original_mesh, MultiresModifierData *mmd)
Definition
multires_unsubdivide.cc:1091
multires_unsubdivide_context_free
void multires_unsubdivide_context_free(MultiresUnsubdivideContext *context)
Definition
multires_unsubdivide.cc:1149
BMesh
Definition
bmesh_class.hh:316
MDisps
Definition
DNA_meshdata_types.h:199
Mesh
Definition
DNA_mesh_types.h:58
MultiresModifierData
Definition
DNA_modifier_types.h:1218
MultiresUnsubdivideContext
Definition
multires_unsubdivide.hh:28
MultiresUnsubdivideContext::bm_original_mesh
BMesh * bm_original_mesh
Definition
multires_unsubdivide.hh:56
MultiresUnsubdivideContext::base_mesh_grids
MultiresUnsubdivideGrid * base_mesh_grids
Definition
multires_unsubdivide.hh:53
MultiresUnsubdivideContext::original_mesh
Mesh * original_mesh
Definition
multires_unsubdivide.hh:30
MultiresUnsubdivideContext::max_new_levels
int max_new_levels
Definition
multires_unsubdivide.hh:40
MultiresUnsubdivideContext::num_grids
int num_grids
Definition
multires_unsubdivide.hh:52
MultiresUnsubdivideContext::original_mdisp
MDisps * original_mdisp
Definition
multires_unsubdivide.hh:31
MultiresUnsubdivideContext::num_total_levels
int num_total_levels
Definition
multires_unsubdivide.hh:49
MultiresUnsubdivideContext::loop_to_face_map
blender::Span< int > loop_to_face_map
Definition
multires_unsubdivide.hh:57
MultiresUnsubdivideContext::num_original_levels
int num_original_levels
Definition
multires_unsubdivide.hh:34
MultiresUnsubdivideContext::base_to_orig_vmap
blender::VArraySpan< int > base_to_orig_vmap
Definition
multires_unsubdivide.hh:58
MultiresUnsubdivideContext::base_mesh
Mesh * base_mesh
Definition
multires_unsubdivide.hh:37
MultiresUnsubdivideContext::num_new_levels
int num_new_levels
Definition
multires_unsubdivide.hh:43
MultiresUnsubdivideGrid
Definition
multires_unsubdivide.hh:19
MultiresUnsubdivideGrid::grid_index
int grid_index
Definition
multires_unsubdivide.hh:21
MultiresUnsubdivideGrid::grid_size
int grid_size
Definition
multires_unsubdivide.hh:22
MultiresUnsubdivideGrid::grid_co
float(* grid_co)[3]
Definition
multires_unsubdivide.hh:25
Generated on
for Blender by
doxygen
1.16.1