Blender
V4.3
source
blender
freestyle
intern
view_map
HeuristicGridDensityProviderFactory.cpp
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011-2022 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
10
#include "
HeuristicGridDensityProviderFactory.h
"
11
12
#include "
BLI_sys_types.h
"
13
14
namespace
Freestyle
{
15
16
HeuristicGridDensityProviderFactory::HeuristicGridDensityProviderFactory
(
real
sizeFactor,
17
uint
numFaces)
18
: sizeFactor(sizeFactor), numFaces(numFaces)
19
{
20
}
21
22
AutoPtr<GridDensityProvider>
HeuristicGridDensityProviderFactory::newGridDensityProvider
(
23
OccluderSource
&source,
const
real
proscenium[4])
24
{
25
AutoPtr<AverageAreaGridDensityProvider>
avg(
26
new
AverageAreaGridDensityProvider
(source, proscenium,
sizeFactor
));
27
AutoPtr<Pow23GridDensityProvider>
p23(
28
new
Pow23GridDensityProvider
(source, proscenium,
numFaces
));
29
if
(avg->cellSize() > p23->cellSize()) {
30
return
(
AutoPtr<GridDensityProvider>
)p23;
31
}
32
33
return
(
AutoPtr<GridDensityProvider>
)avg;
34
}
35
36
AutoPtr<GridDensityProvider>
HeuristicGridDensityProviderFactory::newGridDensityProvider
(
37
OccluderSource
&source,
const
BBox<Vec3r>
&bbox,
const
GridHelpers::Transform
&transform)
38
{
39
AutoPtr<AverageAreaGridDensityProvider>
avg(
40
new
AverageAreaGridDensityProvider
(source, bbox, transform,
sizeFactor
));
41
AutoPtr<Pow23GridDensityProvider>
p23(
42
new
Pow23GridDensityProvider
(source, bbox, transform,
numFaces
));
43
if
(avg->cellSize() > p23->cellSize()) {
44
return
(
AutoPtr<GridDensityProvider>
)p23;
45
}
46
47
return
(
AutoPtr<GridDensityProvider>
)avg;
48
}
49
50
AutoPtr<GridDensityProvider>
HeuristicGridDensityProviderFactory::newGridDensityProvider
(
51
OccluderSource
&source)
52
{
53
real
proscenium[4];
54
GridDensityProvider::calculateOptimalProscenium
(source, proscenium);
55
AutoPtr<AverageAreaGridDensityProvider>
avg(
56
new
AverageAreaGridDensityProvider
(source, proscenium,
sizeFactor
));
57
AutoPtr<Pow23GridDensityProvider>
p23(
58
new
Pow23GridDensityProvider
(source, proscenium,
numFaces
));
59
if
(avg->cellSize() > p23->cellSize()) {
60
return
(
AutoPtr<GridDensityProvider>
)p23;
61
}
62
63
return
(
AutoPtr<GridDensityProvider>
)avg;
64
}
65
66
}
/* namespace Freestyle */
BLI_sys_types.h
uint
unsigned int uint
Definition
BLI_sys_types.h:68
HeuristicGridDensityProviderFactory.h
Class to define a cell grid surrounding the projected image of a scene.
Freestyle::AutoPtr
Definition
AutoPtrHelper.h:16
Freestyle::AverageAreaGridDensityProvider
Definition
AverageAreaGridDensityProvider.h:16
Freestyle::BBox
Definition
BBox.h:23
Freestyle::GridDensityProvider::calculateOptimalProscenium
static void calculateOptimalProscenium(OccluderSource &source, real proscenium[4])
Definition
GridDensityProvider.h:64
Freestyle::GridHelpers::Transform
Definition
GridHelpers.h:104
Freestyle::HeuristicGridDensityProviderFactory::numFaces
uint numFaces
Definition
HeuristicGridDensityProviderFactory.h:33
Freestyle::HeuristicGridDensityProviderFactory::newGridDensityProvider
AutoPtr< GridDensityProvider > newGridDensityProvider(OccluderSource &source, const real proscenium[4])
Definition
HeuristicGridDensityProviderFactory.cpp:22
Freestyle::HeuristicGridDensityProviderFactory::HeuristicGridDensityProviderFactory
HeuristicGridDensityProviderFactory(real sizeFactor, uint numFaces)
Definition
HeuristicGridDensityProviderFactory.cpp:16
Freestyle::HeuristicGridDensityProviderFactory::sizeFactor
real sizeFactor
Definition
HeuristicGridDensityProviderFactory.h:32
Freestyle::OccluderSource
Definition
OccluderSource.h:22
Freestyle::Pow23GridDensityProvider
Definition
Pow23GridDensityProvider.h:16
Freestyle
inherits from class Rep
Definition
AppCanvas.cpp:20
Freestyle::real
double real
Definition
Precision.h:14
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0