Blender
V5.0
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
Intersect
DBVT_INLINE bool Intersect(const btDbvtAabbMm &a, const btDbvtAabbMm &b)
Definition
btDbvt.h:621
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
Definition
GEO_mesh_boolean.hh:24
blender::geometry::boolean::Solver::Manifold
@ Manifold
Definition
GEO_mesh_boolean.hh:26
blender::geometry::boolean::Solver::MeshArr
@ MeshArr
Definition
GEO_mesh_boolean.hh:22
blender::geometry::boolean::BooleanError
BooleanError
Definition
GEO_mesh_boolean.hh:35
blender::geometry::boolean::BooleanError::NoError
@ NoError
Definition
GEO_mesh_boolean.hh:36
blender::geometry::boolean::BooleanError::NonManifold
@ NonManifold
Definition
GEO_mesh_boolean.hh:37
blender::geometry::boolean::BooleanError::UnknownError
@ UnknownError
Definition
GEO_mesh_boolean.hh:40
blender::geometry::boolean::BooleanError::ResultTooBig
@ ResultTooBig
Definition
GEO_mesh_boolean.hh:38
blender::geometry::boolean::BooleanError::SolverNotAvailable
@ SolverNotAvailable
Definition
GEO_mesh_boolean.hh:39
blender::geometry::boolean::Operation
Operation
Definition
GEO_mesh_boolean.hh:29
blender::geometry::boolean::Operation::Difference
@ Difference
Definition
GEO_mesh_boolean.hh:32
blender::geometry::boolean::Operation::Union
@ Union
Definition
GEO_mesh_boolean.hh:31
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:1190
Mesh
Definition
DNA_mesh_types.h:58
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
for Blender by
doxygen
1.16.1