Blender  V3.3
AdvancedFunctions1D.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
10 #include "AdvancedFunctions0D.h"
11 
12 #include "../view_map/Functions1D.h"
13 
14 //
15 // Functions definitions
16 //
18 
19 namespace Freestyle {
20 
21 namespace Functions1D {
22 
23 // DensityF1D
29 class DensityF1D : public UnaryFunction1D<double> {
30  private:
31  float _sampling;
32 
33  public:
44  DensityF1D(double sigma = 2, IntegrationType iType = MEAN, float sampling = 2.0f)
45  : UnaryFunction1D<double>(iType), _fun(sigma)
46  {
47  _sampling = sampling;
48  }
49 
51  virtual ~DensityF1D()
52  {
53  }
54 
56  string getName() const
57  {
58  return "DensityF1D";
59  }
60 
62  int operator()(Interface1D &inter)
63  {
64  result = integrate(
65  _fun, inter.pointsBegin(_sampling), inter.pointsEnd(_sampling), _integration);
66  return 0;
67  }
68 
69  private:
71 };
72 
73 // LocalAverageDepthF1D
79 class LocalAverageDepthF1D : public UnaryFunction1D<double> {
80  public:
88  : UnaryFunction1D<double>(iType), _fun(sigma)
89  {
90  }
91 
93  string getName() const
94  {
95  return "LocalAverageDepthF1D";
96  }
97 
99  int operator()(Interface1D &inter)
100  {
101  result = integrate(_fun, inter.verticesBegin(), inter.verticesEnd(), _integration);
102  return 0;
103  }
104 
105  private:
107 };
108 
109 // GetCompleteViewMapDensity
116  public:
130  GetCompleteViewMapDensityF1D(unsigned level, IntegrationType iType = MEAN, float sampling = 2.0f)
131  : UnaryFunction1D<double>(iType), _fun(level)
132  {
133  _sampling = sampling;
134  }
135 
137  string getName() const
138  {
139  return "GetCompleteViewMapDensityF1D";
140  }
141 
143  int operator()(Interface1D &inter);
144 
145  private:
147  float _sampling;
148 };
149 
150 // GetDirectionalViewMapDensity
158  public:
171  GetDirectionalViewMapDensityF1D(unsigned iOrientation,
172  unsigned level,
173  IntegrationType iType = MEAN,
174  float sampling = 2.0f)
175  : UnaryFunction1D<double>(iType), _fun(iOrientation, level)
176  {
177  _sampling = sampling;
178  }
179 
181  string getName() const
182  {
183  return "GetDirectionalViewMapDensityF1D";
184  }
185 
187  int operator()(Interface1D &inter);
188 
189  private:
191  float _sampling;
192 };
193 
194 // GetSteerableViewMapDensityF1D
199  private:
200  int _level;
201  float _sampling;
202 
203  public:
214  GetSteerableViewMapDensityF1D(int level, IntegrationType iType = MEAN, float sampling = 2.0f)
215  : UnaryFunction1D<double>(iType)
216  {
217  _level = level;
218  _sampling = sampling;
219  }
220 
223  {
224  }
225 
227  string getName() const
228  {
229  return "GetSteerableViewMapDensityF1D";
230  }
231 
233  int operator()(Interface1D &inter);
234 };
235 
236 // GetViewMapGradientNormF1D
241  private:
242  int _level;
243  float _sampling;
245 
246  public:
257  GetViewMapGradientNormF1D(int level, IntegrationType iType = MEAN, float sampling = 2.0f)
258  : UnaryFunction1D<double>(iType), _func(level)
259  {
260  _level = level;
261  _sampling = sampling;
262  }
263 
265  string getName() const
266  {
267  return "GetViewMapGradientNormF1D";
268  }
269 
271  int operator()(Interface1D &inter);
272 };
273 
274 } // end of namespace Functions1D
275 
276 } /* namespace Freestyle */
Functions taking 0D input.
typedef double(DMatrix)[4][4]
DensityF1D(double sigma=2, IntegrationType iType=MEAN, float sampling=2.0f)
GetCompleteViewMapDensityF1D(unsigned level, IntegrationType iType=MEAN, float sampling=2.0f)
GetDirectionalViewMapDensityF1D(unsigned iOrientation, unsigned level, IntegrationType iType=MEAN, float sampling=2.0f)
GetSteerableViewMapDensityF1D(int level, IntegrationType iType=MEAN, float sampling=2.0f)
GetViewMapGradientNormF1D(int level, IntegrationType iType=MEAN, float sampling=2.0f)
LocalAverageDepthF1D(real sigma, IntegrationType iType=MEAN)
virtual Interface0DIterator verticesEnd()
Definition: Interface1D.cpp:21
virtual Interface0DIterator pointsEnd(float t=0.0f)
Definition: Interface1D.cpp:33
virtual Interface0DIterator verticesBegin()
Definition: Interface1D.cpp:15
virtual Interface0DIterator pointsBegin(float t=0.0f)
Definition: Interface1D.cpp:27
inherits from class Rep
Definition: AppCanvas.cpp:18
T integrate(UnaryFunction0D< T > &fun, Interface0DIterator it, Interface0DIterator it_end, IntegrationType integration_type=MEAN)
Definition: Interface1D.h:73
double real
Definition: Precision.h:12