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