Blender
V2.93
source
blender
freestyle
intern
view_map
HeuristicGridDensityProviderFactory.cpp
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or
3
* modify it under the terms of the GNU General Public License
4
* as published by the Free Software Foundation; either version 2
5
* of the License, or (at your option) any later version.
6
*
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU General Public License for more details.
11
*
12
* You should have received a copy of the GNU General Public License
13
* along with this program; if not, write to the Free Software Foundation,
14
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15
*/
16
22
#include "
HeuristicGridDensityProviderFactory.h
"
23
24
namespace
Freestyle
{
25
26
HeuristicGridDensityProviderFactory::HeuristicGridDensityProviderFactory
(
real
sizeFactor,
27
unsigned
numFaces)
28
: sizeFactor(sizeFactor), numFaces(numFaces)
29
{
30
}
31
32
AutoPtr<GridDensityProvider>
HeuristicGridDensityProviderFactory::newGridDensityProvider
(
33
OccluderSource
&source,
const
real
proscenium[4])
34
{
35
AutoPtr<AverageAreaGridDensityProvider>
avg(
36
new
AverageAreaGridDensityProvider
(source, proscenium,
sizeFactor
));
37
AutoPtr<Pow23GridDensityProvider>
p23(
38
new
Pow23GridDensityProvider
(source, proscenium,
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,
const
BBox<Vec3r>
&bbox,
const
GridHelpers::Transform
&
transform
)
48
{
49
AutoPtr<AverageAreaGridDensityProvider>
avg(
50
new
AverageAreaGridDensityProvider
(source, bbox,
transform
,
sizeFactor
));
51
AutoPtr<Pow23GridDensityProvider>
p23(
52
new
Pow23GridDensityProvider
(source, bbox,
transform
,
numFaces
));
53
if
(avg->cellSize() > p23->cellSize()) {
54
return
(
AutoPtr<GridDensityProvider>
)p23;
55
}
56
57
return
(
AutoPtr<GridDensityProvider>
)avg;
58
}
59
60
AutoPtr<GridDensityProvider>
HeuristicGridDensityProviderFactory::newGridDensityProvider
(
61
OccluderSource
&source)
62
{
63
real
proscenium[4];
64
GridDensityProvider::calculateOptimalProscenium
(source, proscenium);
65
AutoPtr<AverageAreaGridDensityProvider>
avg(
66
new
AverageAreaGridDensityProvider
(source, proscenium,
sizeFactor
));
67
AutoPtr<Pow23GridDensityProvider>
p23(
68
new
Pow23GridDensityProvider
(source, proscenium,
numFaces
));
69
if
(avg->cellSize() > p23->cellSize()) {
70
return
(
AutoPtr<GridDensityProvider>
)p23;
71
}
72
73
return
(
AutoPtr<GridDensityProvider>
)avg;
74
}
75
76
}
/* 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:28
Freestyle::AverageAreaGridDensityProvider
Definition:
AverageAreaGridDensityProvider.h:28
Freestyle::BBox
Definition:
BBox.h:35
Freestyle::GridDensityProvider::calculateOptimalProscenium
static void calculateOptimalProscenium(OccluderSource &source, real proscenium[4])
Definition:
GridDensityProvider.h:78
Freestyle::GridHelpers::Transform
Definition:
GridHelpers.h:116
Freestyle::HeuristicGridDensityProviderFactory::newGridDensityProvider
AutoPtr< GridDensityProvider > newGridDensityProvider(OccluderSource &source, const real proscenium[4])
Definition:
HeuristicGridDensityProviderFactory.cpp:32
Freestyle::HeuristicGridDensityProviderFactory::sizeFactor
real sizeFactor
Definition:
HeuristicGridDensityProviderFactory.h:44
Freestyle::HeuristicGridDensityProviderFactory::numFaces
unsigned numFaces
Definition:
HeuristicGridDensityProviderFactory.h:45
Freestyle::HeuristicGridDensityProviderFactory::HeuristicGridDensityProviderFactory
HeuristicGridDensityProviderFactory(real sizeFactor, unsigned numFaces)
Definition:
HeuristicGridDensityProviderFactory.cpp:26
Freestyle::OccluderSource
Definition:
OccluderSource.h:34
Freestyle::Pow23GridDensityProvider
Definition:
Pow23GridDensityProvider.h:28
Freestyle
inherits from class Rep
Definition:
AppCanvas.cpp:32
Freestyle::real
double real
Definition:
Precision.h:26
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1