Blender
V3.3
source
blender
geometry
GEO_reverse_uv_sampler.hh
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
#pragma once
4
5
#include <optional>
6
7
#include "
BLI_math_vector.hh
"
8
#include "
BLI_multi_value_map.hh
"
9
#include "
BLI_span.hh
"
10
11
#include "
DNA_meshdata_types.h
"
12
13
namespace
blender::geometry
{
14
20
class
ReverseUVSampler
{
21
private
:
22
const
Span<float2>
uv_map_;
23
const
Span<MLoopTri>
looptris_;
24
int
resolution_;
25
MultiValueMap<int2, int>
looptris_by_cell_;
26
27
public
:
28
ReverseUVSampler
(
const
Span<float2>
uv_map,
const
Span<MLoopTri>
looptris);
29
30
enum class
ResultType
{
31
None
,
32
Ok
,
33
Multiple
,
34
};
35
36
struct
Result
{
37
ResultType
type
=
ResultType::None
;
38
const
MLoopTri
*
looptri
=
nullptr
;
39
float3
bary_weights
;
40
};
41
42
Result
sample
(
const
float2
&query_uv)
const
;
43
void
sample_many
(
Span<float2>
query_uvs,
MutableSpan<Result>
r_results)
const
;
44
};
45
46
}
// namespace blender::geometry
BLI_math_vector.hh
BLI_multi_value_map.hh
BLI_span.hh
DNA_meshdata_types.h
blender::MultiValueMap
Definition:
BLI_multi_value_map.hh:26
blender::MutableSpan
Definition:
BLI_span.hh:457
blender::Span
Definition:
BLI_span.hh:73
blender::geometry::ReverseUVSampler
Definition:
GEO_reverse_uv_sampler.hh:20
blender::geometry::ReverseUVSampler::ResultType
ResultType
Definition:
GEO_reverse_uv_sampler.hh:30
blender::geometry::ReverseUVSampler::ResultType::None
@ None
blender::geometry::ReverseUVSampler::ResultType::Multiple
@ Multiple
blender::geometry::ReverseUVSampler::ResultType::Ok
@ Ok
blender::geometry::ReverseUVSampler::ReverseUVSampler
ReverseUVSampler(const Span< float2 > uv_map, const Span< MLoopTri > looptris)
Definition:
reverse_uv_sampler.cc:17
blender::geometry::ReverseUVSampler::sample
Result sample(const float2 &query_uv) const
Definition:
reverse_uv_sampler.cc:44
blender::geometry::ReverseUVSampler::sample_many
void sample_many(Span< float2 > query_uvs, MutableSpan< Result > r_results) const
Definition:
reverse_uv_sampler.cc:100
blender::geometry
Definition:
GEO_add_curves_on_mesh.hh:18
MLoopTri
Definition:
DNA_meshdata_types.h:220
blender::geometry::ReverseUVSampler::Result
Definition:
GEO_reverse_uv_sampler.hh:36
blender::geometry::ReverseUVSampler::Result::looptri
const MLoopTri * looptri
Definition:
GEO_reverse_uv_sampler.hh:38
blender::geometry::ReverseUVSampler::Result::bary_weights
float3 bary_weights
Definition:
GEO_reverse_uv_sampler.hh:39
blender::geometry::ReverseUVSampler::Result::type
ResultType type
Definition:
GEO_reverse_uv_sampler.hh:37
blender::vec_base< float, 3 >
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1