Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-12-29 00:21:05 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-12-29 00:21:05 +0400
commite5791cf48e10ec1336f463b7fccff6b302621eb9 (patch)
tree58ea33117cc9be35713b6d93ea9d1dfa538ca5bd /source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h
parent9fe9c1d6436e400217fdfd8999117a4719efdf68 (diff)
Another mega (literally :p) code clean-up patch by Bastien Montagne, thanks again!
Diffstat (limited to 'source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h')
-rw-r--r--source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h410
1 files changed, 215 insertions, 195 deletions
diff --git a/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h b/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h
index 5d62ea8d9eb..2875402700b 100644
--- a/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h
+++ b/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h
@@ -1,40 +1,45 @@
-//
-// Filename : AdvancedFunctions0D.h
-// Author(s) : Stephane Grabli
-// Emmanuel Turquin
-// Purpose : Functions taking 0D input
-// Date of creation : 01/07/2003
-//
-///////////////////////////////////////////////////////////////////////////////
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2010 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+#ifndef __FREESTYLE_ADVANCED_FUNCTIONS_0D_H__
+#define __FREESTYLE_ADVANCED_FUNCTIONS_0D_H__
-//
-// Copyright (C) : Please refer to the COPYRIGHT file distributed
-// with this source distribution.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef ADVANCED_FUNCTIONS0D_HPP
-# define ADVANCED_FUNCTIONS0D_HPP
+/** \file blender/freestyle/intern/stroke/AdvancedFunctions0D.h
+ * \ingroup freestyle
+ * \brief Functions taking 0D input
+ * \author Stephane Grabli
+ * \author Emmanuel Turquin
+ * \date 01/07/2003
+ */
+#include "../image/GaussianFilter.h"
+#include "../image/Image.h"
-# include "../image/Image.h"
-# include "../image/GaussianFilter.h"
-# include "../view_map/Functions0D.h"
+#include "../view_map/Functions0D.h"
//
// Functions definitions
@@ -43,167 +48,182 @@
namespace Functions0D {
- // DensityF0D
- /*! Returns the density of the (result) image evaluated at an Interface0D.
- * This density is evaluated using a pixels square window around the
- * evaluation point and integrating these values using
- * a gaussian.
- */
- class LIB_STROKE_EXPORT DensityF0D : public UnaryFunction0D<double>
- {
- public:
- /*! Builds the functor from the gaussian sigma value.
- * \param sigma
- * sigma indicates the x value for which the gaussian
- * function is 0.5. It leads to the window size
- * value. (the larger, the smoother)
- */
- DensityF0D(double sigma = 2) : UnaryFunction0D<double>() {
- _filter.setSigma((float)sigma);
- }
- /*! Returns the string "DensityF0D"*/
- string getName() const {
- return "DensityF0D";
- }
- /*! The () operator. */
- int operator()(Interface0DIterator& iter);
-
- private:
-
- GaussianFilter _filter;
- };
-
- // LocalAverageDepthF0D
- /*! Returns the average depth around a point.
- * The result is obtained by querying the
- * depth buffer on a window around that point.
- */
- class LIB_STROKE_EXPORT LocalAverageDepthF0D : public UnaryFunction0D<double>
- {
- private:
- GaussianFilter _filter;
- public:
- /*! Builds the functor from the size of the mask that
- * will be used.
- */
- LocalAverageDepthF0D(real maskSize=5.f) : UnaryFunction0D<double>() {
- _filter.setSigma((float)maskSize/2.f);
- }
- /*! Returns the string "LocalAverageDepthF0D"*/
- string getName() const {
- return "LocalAverageDepthF0D";
- }
- /*! the () operator.*/
- int operator()(Interface0DIterator& iter);
- };
-
- // ReadMapPixel
- /*! Reads a pixel in a map.
- */
- class LIB_STROKE_EXPORT ReadMapPixelF0D : public UnaryFunction0D<float>
- {
- private:
- const char * _mapName;
- int _level;
- public:
- /*! Builds the functor from name of the
- * Map that must be read.
- * \param iMapName
- * The name of the map.
- * \param level
- * The level of the pyramid from which
- * the pixel must be read.
- */
- ReadMapPixelF0D(const char *iMapName, int level) : UnaryFunction0D<float>() {
- _mapName = iMapName;
- _level = level;
- }
- /*! Returns the string "ReadMapPixelF0D"*/
- string getName() const {
- return "ReadMapPixelF0D";
- }
- /*! the () operator.*/
- int operator()(Interface0DIterator& iter);
- };
-
- // ReadSteerableViewMapPixel
- /*! Reads a pixel in one of the level of one of the steerable viewmaps.
- */
- class LIB_STROKE_EXPORT ReadSteerableViewMapPixelF0D : public UnaryFunction0D<float>
- {
- private:
- unsigned _orientation;
- int _level;
- public:
- /*! Builds the functor
- * \param nOrientation
- * The integer belonging to [0,4] indicating the orientation (E,NE,N,NW)
- * we are interested in.
- * \param level
- * The level of the pyramid from which
- * the pixel must be read.
- */
- ReadSteerableViewMapPixelF0D(unsigned nOrientation, int level) : UnaryFunction0D<float>() {
- _orientation = nOrientation;
- _level = level;
- }
- /*! Returns the string "ReadSteerableViewMapPixelF0D"*/
- string getName() const {
- return "ReadSteerableViewMapPixelF0D";
- }
- /*! the () operator.*/
- int operator()(Interface0DIterator& iter);
- };
-
- // ReadCompleteViewMapPixel
- /*! Reads a pixel in one of the level of the complete viewmap.
- */
- class LIB_STROKE_EXPORT ReadCompleteViewMapPixelF0D : public UnaryFunction0D<float>
- {
- private:
- int _level;
- public:
- /*! Builds the functor
- * \param level
- * The level of the pyramid from which
- * the pixel must be read.
- */
- ReadCompleteViewMapPixelF0D(int level) : UnaryFunction0D<float>() {
- _level = level;
- }
- /*! Returns the string "ReadCompleteViewMapPixelF0D"*/
- string getName() const {
- return "ReadCompleteViewMapPixelF0D";
- }
- /*! the () operator.*/
- int operator()(Interface0DIterator& iter);
- };
-
- // GetViewMapGradientNormF0D
- /*! Returns the norm of the gradient of the global viewmap density image.
- */
- class LIB_STROKE_EXPORT GetViewMapGradientNormF0D: public UnaryFunction0D< float>
- {
- private:
- int _level;
- float _step;
- public:
- /*! Builds the functor
- * \param level
- * The level of the pyramid from which
- * the pixel must be read.
- */
- GetViewMapGradientNormF0D(int level) : UnaryFunction0D<float>() {
- _level = level;
- _step = (float)pow(2.0,_level);
- }
- /*! Returns the string "GetOccludeeF0D"*/
- string getName() const {
- return "GetViewMapGradientNormF0D";
- }
- /*! the () operator.*/
- int operator()(Interface0DIterator& iter);
- };
+// DensityF0D
+/*! Returns the density of the (result) image evaluated at an Interface0D.
+ * This density is evaluated using a pixels square window around the evaluation point and integrating
+ * these values using a gaussian.
+ */
+class LIB_STROKE_EXPORT DensityF0D : public UnaryFunction0D<double>
+{
+public:
+ /*! Builds the functor from the gaussian sigma value.
+ * \param sigma
+ * sigma indicates the x value for which the gaussian function is 0.5. It leads to the window size value.
+ * (the larger, the smoother)
+ */
+ DensityF0D(double sigma = 2) : UnaryFunction0D<double>()
+ {
+ _filter.setSigma((float)sigma);
+ }
+
+ /*! Returns the string "DensityF0D" */
+ string getName() const
+ {
+ return "DensityF0D";
+ }
+
+ /*! The () operator. */
+ int operator()(Interface0DIterator& iter);
+
+private:
+ GaussianFilter _filter;
+};
+
+// LocalAverageDepthF0D
+/*! Returns the average depth around a point.
+ * The result is obtained by querying the depth buffer on a window around that point.
+ */
+class LIB_STROKE_EXPORT LocalAverageDepthF0D : public UnaryFunction0D<double>
+{
+private:
+ GaussianFilter _filter;
+
+public:
+ /*! Builds the functor from the size of the mask that will be used. */
+ LocalAverageDepthF0D(real maskSize = 5.0f) : UnaryFunction0D<double>()
+ {
+ _filter.setSigma((float)maskSize / 2.0f);
+ }
+
+ /*! Returns the string "LocalAverageDepthF0D" */
+ string getName() const
+ {
+ return "LocalAverageDepthF0D";
+ }
+
+ /*! the () operator. */
+ int operator()(Interface0DIterator& iter);
+};
+
+// ReadMapPixel
+/*! Reads a pixel in a map. */
+class LIB_STROKE_EXPORT ReadMapPixelF0D : public UnaryFunction0D<float>
+{
+private:
+ const char * _mapName;
+ int _level;
+
+public:
+ /*! Builds the functor from name of the
+ * Map that must be read.
+ * \param iMapName
+ * The name of the map.
+ * \param level
+ * The level of the pyramid from which the pixel must be read.
+ */
+ ReadMapPixelF0D(const char *iMapName, int level) : UnaryFunction0D<float>()
+ {
+ _mapName = iMapName;
+ _level = level;
+ }
+
+ /*! Returns the string "ReadMapPixelF0D" */
+ string getName() const
+ {
+ return "ReadMapPixelF0D";
+ }
+
+ /*! the () operator. */
+ int operator()(Interface0DIterator& iter);
+};
+
+// ReadSteerableViewMapPixel
+/*! Reads a pixel in one of the level of one of the steerable viewmaps. */
+class LIB_STROKE_EXPORT ReadSteerableViewMapPixelF0D : public UnaryFunction0D<float>
+{
+private:
+ unsigned _orientation;
+ int _level;
+
+public:
+ /*! Builds the functor
+ * \param nOrientation
+ * The integer belonging to [0,4] indicating the orientation (E,NE,N,NW) we are interested in.
+ * \param level
+ * The level of the pyramid from which the pixel must be read.
+ */
+ ReadSteerableViewMapPixelF0D(unsigned nOrientation, int level) : UnaryFunction0D<float>()
+ {
+ _orientation = nOrientation;
+ _level = level;
+ }
+
+ /*! Returns the string "ReadSteerableViewMapPixelF0D" */
+ string getName() const
+ {
+ return "ReadSteerableViewMapPixelF0D";
+ }
+
+ /*! the () operator. */
+ int operator()(Interface0DIterator& iter);
+};
+
+// ReadCompleteViewMapPixel
+/*! Reads a pixel in one of the level of the complete viewmap. */
+class LIB_STROKE_EXPORT ReadCompleteViewMapPixelF0D : public UnaryFunction0D<float>
+{
+private:
+ int _level;
+
+public:
+ /*! Builds the functor
+ * \param level
+ * The level of the pyramid from which the pixel must be read.
+ */
+ ReadCompleteViewMapPixelF0D(int level) : UnaryFunction0D<float>()
+ {
+ _level = level;
+ }
+
+ /*! Returns the string "ReadCompleteViewMapPixelF0D" */
+ string getName() const
+ {
+ return "ReadCompleteViewMapPixelF0D";
+ }
+
+ /*! the () operator. */
+ int operator()(Interface0DIterator& iter);
+};
+
+// GetViewMapGradientNormF0D
+/*! Returns the norm of the gradient of the global viewmap density image. */
+class LIB_STROKE_EXPORT GetViewMapGradientNormF0D: public UnaryFunction0D< float>
+{
+private:
+ int _level;
+ float _step;
+
+public:
+ /*! Builds the functor
+ * \param level
+ * The level of the pyramid from which the pixel must be read.
+ */
+ GetViewMapGradientNormF0D(int level) : UnaryFunction0D<float>()
+ {
+ _level = level;
+ _step = (float)pow(2.0, _level);
+ }
+
+ /*! Returns the string "GetOccludeeF0D" */
+ string getName() const
+ {
+ return "GetViewMapGradientNormF0D";
+ }
+
+ /*! the () operator. */
+ int operator()(Interface0DIterator& iter);
+};
+
} // end of namespace Functions0D
-#endif // ADVANCED_FUNCTIONS0D_HPP
+#endif // __FREESTYLE_ADVANCED_FUNCTIONS_0D_H__