Blender
V4.5
source
blender
geometry
GEO_mesh_boolean.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2019 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
BLI_array.hh
"
8
#include "
BLI_math_matrix_types.hh
"
9
#include "
BLI_span.hh
"
10
#include "
BLI_vector.hh
"
11
12
struct
Mesh
;
13
14
namespace
blender::geometry::boolean
{
15
17
enum class
Solver
{
22
MeshArr
= 0,
24
Float
= 1,
26
Manifold
= 2,
27
};
28
29
enum class
Operation
{
30
Intersect
= 0,
31
Union
= 1,
32
Difference
= 2,
33
};
34
35
enum class
BooleanError
{
36
NoError
= 0,
37
NonManifold
= 1,
38
ResultTooBig
= 2,
39
SolverNotAvailable
= 3,
40
UnknownError
= 4,
41
};
42
49
struct
BooleanOpParameters
{
50
Operation
boolean_mode
;
52
bool
no_self_intersections
=
true
;
55
bool
no_nested_components
=
true
;
57
bool
watertight
=
true
;
58
};
59
86
Mesh
*
mesh_boolean
(
Span<const Mesh *>
meshes,
87
Span<float4x4>
transforms,
88
Span
<
Array<short>
> material_remaps,
89
BooleanOpParameters
op_params,
90
Solver
solver,
91
Vector<int>
*r_intersecting_edges,
92
BooleanError
*r_error);
93
94
}
// namespace blender::geometry::boolean
BLI_array.hh
BLI_math_matrix_types.hh
BLI_span.hh
BLI_vector.hh
blender::Array
Definition
BLI_array.hh:50
blender::Span
Definition
BLI_span.hh:74
blender::Vector
Definition
BLI_vector.hh:76
blender::geometry::boolean
Definition
GEO_mesh_boolean.hh:14
blender::geometry::boolean::Solver
Solver
Definition
GEO_mesh_boolean.hh:17
blender::geometry::boolean::Solver::Float
@ Float
blender::geometry::boolean::Solver::Manifold
@ Manifold
blender::geometry::boolean::Solver::MeshArr
@ MeshArr
blender::geometry::boolean::BooleanError
BooleanError
Definition
GEO_mesh_boolean.hh:35
blender::geometry::boolean::BooleanError::NoError
@ NoError
blender::geometry::boolean::BooleanError::NonManifold
@ NonManifold
blender::geometry::boolean::BooleanError::UnknownError
@ UnknownError
blender::geometry::boolean::BooleanError::ResultTooBig
@ ResultTooBig
blender::geometry::boolean::BooleanError::SolverNotAvailable
@ SolverNotAvailable
blender::geometry::boolean::Operation
Operation
Definition
GEO_mesh_boolean.hh:29
blender::geometry::boolean::Operation::Difference
@ Difference
blender::geometry::boolean::Operation::Intersect
@ Intersect
blender::geometry::boolean::Operation::Union
@ Union
blender::geometry::boolean::mesh_boolean
Mesh * mesh_boolean(Span< const Mesh * > meshes, Span< float4x4 > transforms, Span< Array< short > > material_remaps, BooleanOpParameters op_params, Solver solver, Vector< int > *r_intersecting_edges, BooleanError *r_error)
Definition
geometry/intern/mesh_boolean.cc:1191
Mesh
Definition
DNA_mesh_types.h:59
blender::geometry::boolean::BooleanOpParameters
Definition
GEO_mesh_boolean.hh:49
blender::geometry::boolean::BooleanOpParameters::watertight
bool watertight
Definition
GEO_mesh_boolean.hh:57
blender::geometry::boolean::BooleanOpParameters::no_self_intersections
bool no_self_intersections
Definition
GEO_mesh_boolean.hh:52
blender::geometry::boolean::BooleanOpParameters::boolean_mode
Operation boolean_mode
Definition
GEO_mesh_boolean.hh:50
blender::geometry::boolean::BooleanOpParameters::no_nested_components
bool no_nested_components
Definition
GEO_mesh_boolean.hh:55
Generated on Fri Apr 3 2026 06:33:18 for Blender by
doxygen
1.11.0