Blender
V4.5
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
13
struct
BMesh
;
14
struct
Mesh
;
15
struct
MDisps
;
16
struct
MultiresModifierData
;
17
18
struct
MultiresUnsubdivideGrid
{
19
/* For sanity checks. */
20
int
grid_index
;
21
int
grid_size
;
22
24
float (*
grid_co
)[3];
25
};
26
27
struct
MultiresUnsubdivideContext
{
28
/* Input Mesh to un-subdivide. */
29
Mesh
*
original_mesh
;
30
MDisps
*
original_mdisp
;
31
33
int
num_original_levels
;
34
36
Mesh
*
base_mesh
;
37
39
int
max_new_levels
;
40
42
int
num_new_levels
;
43
48
int
num_total_levels
;
49
51
int
num_grids
;
52
MultiresUnsubdivideGrid
*
base_mesh_grids
;
53
54
/* Private data. */
55
BMesh
*
bm_original_mesh
;
56
blender::Span<int>
loop_to_face_map
;
57
const
int
*
base_to_orig_vmap
;
58
};
59
60
/* --------------------------------------------------------------------
61
* Construct/destruct reshape context.
62
*/
63
64
void
multires_unsubdivide_context_init
(
MultiresUnsubdivideContext
*context,
65
Mesh
*original_mesh,
66
MultiresModifierData
*mmd);
67
void
multires_unsubdivide_context_free
(
MultiresUnsubdivideContext
*context);
68
69
/* --------------------------------------------------------------------
70
* Rebuild Lower Subdivisions.
71
*/
72
73
/* Rebuilds all subdivision to the level 0 base mesh. */
74
bool
multires_unsubdivide_to_basemesh
(
MultiresUnsubdivideContext
*context);
BLI_span.hh
blender::Span
Definition
BLI_span.hh:74
multires_unsubdivide_to_basemesh
bool multires_unsubdivide_to_basemesh(MultiresUnsubdivideContext *context)
Definition
multires_unsubdivide.cc:1108
multires_unsubdivide_context_init
void multires_unsubdivide_context_init(MultiresUnsubdivideContext *context, Mesh *original_mesh, MultiresModifierData *mmd)
Definition
multires_unsubdivide.cc:1098
multires_unsubdivide_context_free
void multires_unsubdivide_context_free(MultiresUnsubdivideContext *context)
Definition
multires_unsubdivide.cc:1156
BMesh
Definition
bmesh_class.hh:316
MDisps
Definition
DNA_meshdata_types.h:199
Mesh
Definition
DNA_mesh_types.h:59
MultiresModifierData
Definition
DNA_modifier_types.h:1158
MultiresUnsubdivideContext
Definition
multires_unsubdivide.hh:27
MultiresUnsubdivideContext::base_to_orig_vmap
const int * base_to_orig_vmap
Definition
multires_unsubdivide.hh:57
MultiresUnsubdivideContext::bm_original_mesh
BMesh * bm_original_mesh
Definition
multires_unsubdivide.hh:55
MultiresUnsubdivideContext::base_mesh_grids
MultiresUnsubdivideGrid * base_mesh_grids
Definition
multires_unsubdivide.hh:52
MultiresUnsubdivideContext::original_mesh
Mesh * original_mesh
Definition
multires_unsubdivide.hh:29
MultiresUnsubdivideContext::max_new_levels
int max_new_levels
Definition
multires_unsubdivide.hh:39
MultiresUnsubdivideContext::num_grids
int num_grids
Definition
multires_unsubdivide.hh:51
MultiresUnsubdivideContext::original_mdisp
MDisps * original_mdisp
Definition
multires_unsubdivide.hh:30
MultiresUnsubdivideContext::num_total_levels
int num_total_levels
Definition
multires_unsubdivide.hh:48
MultiresUnsubdivideContext::loop_to_face_map
blender::Span< int > loop_to_face_map
Definition
multires_unsubdivide.hh:56
MultiresUnsubdivideContext::num_original_levels
int num_original_levels
Definition
multires_unsubdivide.hh:33
MultiresUnsubdivideContext::base_mesh
Mesh * base_mesh
Definition
multires_unsubdivide.hh:36
MultiresUnsubdivideContext::num_new_levels
int num_new_levels
Definition
multires_unsubdivide.hh:42
MultiresUnsubdivideGrid
Definition
multires_unsubdivide.hh:18
MultiresUnsubdivideGrid::grid_index
int grid_index
Definition
multires_unsubdivide.hh:20
MultiresUnsubdivideGrid::grid_size
int grid_size
Definition
multires_unsubdivide.hh:21
MultiresUnsubdivideGrid::grid_co
float(* grid_co)[3]
Definition
multires_unsubdivide.hh:24
Generated on
for Blender by
doxygen
1.16.1