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:
Diffstat (limited to 'source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h')
-rw-r--r--source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h325
1 files changed, 172 insertions, 153 deletions
diff --git a/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h b/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h
index 0e14e4f3631..17b180531a2 100644
--- a/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h
+++ b/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h
@@ -31,32 +31,36 @@ namespace Freestyle {
* i.e. The stroke will be the thickest in a main direction, the thinest in the direction perpendicular to this one,
* and an interpolation inbetween.
*/
-class CalligraphicShader : public StrokeShader
-{
-public:
- /*! Builds the shader.
- * \param iMinThickness:
- * The minimum thickness in the direction perpandicular to the main direction.
- * \param iMaxThickness:
- * The maximum thickness in the main direction.
- * \param iOrientation:
- * The 2D vector giving the main direction.
- * \param clamp:
- * Tells ???
- */
- CalligraphicShader(real iMinThickness, real iMaxThickness, const Vec2f &iOrientation, bool clamp);
-
- /*! Destructor. */
- virtual ~CalligraphicShader() {}
-
- /*! The shading method */
- virtual int shade(Stroke &ioStroke) const;
-
-protected:
- real _maxThickness;
- real _minThickness;
- Vec2f _orientation;
- bool _clamp;
+class CalligraphicShader : public StrokeShader {
+ public:
+ /*! Builds the shader.
+ * \param iMinThickness:
+ * The minimum thickness in the direction perpandicular to the main direction.
+ * \param iMaxThickness:
+ * The maximum thickness in the main direction.
+ * \param iOrientation:
+ * The 2D vector giving the main direction.
+ * \param clamp:
+ * Tells ???
+ */
+ CalligraphicShader(real iMinThickness,
+ real iMaxThickness,
+ const Vec2f &iOrientation,
+ bool clamp);
+
+ /*! Destructor. */
+ virtual ~CalligraphicShader()
+ {
+ }
+
+ /*! The shading method */
+ virtual int shade(Stroke &ioStroke) const;
+
+ protected:
+ real _maxThickness;
+ real _minThickness;
+ Vec2f _orientation;
+ bool _clamp;
};
/*! [ Geometry Shader ].
@@ -64,35 +68,36 @@ protected:
* Moves the vertices to make the stroke more noisy.
* \see \htmlonly <a href=noise/noise.html>noise/noise.html</a> \endhtmlonly
*/
-class SpatialNoiseShader : public StrokeShader
-{
-public:
- /*! Builds the shader.
- * \param iAmount:
- * The amplitude of the noise.
- * \param ixScale:
- * The noise frequency
- * \param nbOctave:
- * The number of octaves
- * \param smooth:
- * If you want the noise to be smooth
- * \param pureRandom:
- * If you don't want any coherence
- */
- SpatialNoiseShader(float iAmount, float ixScale, int nbOctave, bool smooth, bool pureRandom);
-
- /*! Destructor. */
- virtual ~SpatialNoiseShader() {}
-
- /*! The shading method. */
- virtual int shade(Stroke &ioStroke) const;
-
-protected:
- float _amount;
- float _xScale;
- int _nbOctave;
- bool _smooth;
- bool _pureRandom;
+class SpatialNoiseShader : public StrokeShader {
+ public:
+ /*! Builds the shader.
+ * \param iAmount:
+ * The amplitude of the noise.
+ * \param ixScale:
+ * The noise frequency
+ * \param nbOctave:
+ * The number of octaves
+ * \param smooth:
+ * If you want the noise to be smooth
+ * \param pureRandom:
+ * If you don't want any coherence
+ */
+ SpatialNoiseShader(float iAmount, float ixScale, int nbOctave, bool smooth, bool pureRandom);
+
+ /*! Destructor. */
+ virtual ~SpatialNoiseShader()
+ {
+ }
+
+ /*! The shading method. */
+ virtual int shade(Stroke &ioStroke) const;
+
+ protected:
+ float _amount;
+ float _xScale;
+ int _nbOctave;
+ bool _smooth;
+ bool _pureRandom;
};
/*! [ Geometry Shader ].
@@ -102,116 +107,130 @@ protected:
* to prevent the diffusion accross corners.
* \see \htmlonly <a href=/smoothing/smoothing.html>smoothing/smoothing.html</a> \endhtmlonly
*/
-class SmoothingShader : public StrokeShader
-{
-public:
- /*! Builds the shader.
- * \param iNbIteration:
- * The number of iterations. (400)
- * \param iFactorPoint:
- * 0
- * \param ifactorCurvature:
- * 0
- * \param iFactorCurvatureDifference:
- * 0.2
- * \param iAnisoPoint:
- * 0
- * \param iAnisNormal:
- * 0
- * \param iAnisoCurvature:
- * 0
- * \param icarricatureFactor:
- * 1
- */
- SmoothingShader(int iNbIteration, real iFactorPoint, real ifactorCurvature, real iFactorCurvatureDifference,
- real iAnisoPoint, real iAnisoNormal, real iAnisoCurvature, real icarricatureFactor);
-
- /*! Destructor. */
- virtual ~SmoothingShader() {}
-
- /*! The shading method. */
- virtual int shade(Stroke &ioStroke) const;
-
-protected:
- int _nbIterations;
- real _factorPoint;
- real _factorCurvature;
- real _factorCurvatureDifference;
- real _anisoPoint;
- real _anisoNormal;
- real _anisoCurvature;
- real _carricatureFactor;
+class SmoothingShader : public StrokeShader {
+ public:
+ /*! Builds the shader.
+ * \param iNbIteration:
+ * The number of iterations. (400)
+ * \param iFactorPoint:
+ * 0
+ * \param ifactorCurvature:
+ * 0
+ * \param iFactorCurvatureDifference:
+ * 0.2
+ * \param iAnisoPoint:
+ * 0
+ * \param iAnisNormal:
+ * 0
+ * \param iAnisoCurvature:
+ * 0
+ * \param icarricatureFactor:
+ * 1
+ */
+ SmoothingShader(int iNbIteration,
+ real iFactorPoint,
+ real ifactorCurvature,
+ real iFactorCurvatureDifference,
+ real iAnisoPoint,
+ real iAnisoNormal,
+ real iAnisoCurvature,
+ real icarricatureFactor);
+
+ /*! Destructor. */
+ virtual ~SmoothingShader()
+ {
+ }
+
+ /*! The shading method. */
+ virtual int shade(Stroke &ioStroke) const;
+
+ protected:
+ int _nbIterations;
+ real _factorPoint;
+ real _factorCurvature;
+ real _factorCurvatureDifference;
+ real _anisoPoint;
+ real _anisoNormal;
+ real _anisoCurvature;
+ real _carricatureFactor;
};
-class Smoother
-{
-public:
- Smoother(Stroke &ioStroke);
-
- virtual ~Smoother();
-
- void smooth(int nbIterations, real iFactorPoint, real ifactorCurvature, real iFactorCurvatureDifference,
- real iAnisoPoint, real iAnisoNormal, real iAnisoCurvature, real icarricatureFactor);
-
- void computeCurvature();
-
-protected:
- real _factorPoint;
- real _factorCurvature;
- real _factorCurvatureDifference;
- real _anisoPoint;
- real _anisoNormal;
- real _anisoCurvature;
- real _carricatureFactor;
-
- void iteration();
- void copyVertices ();
-
- Stroke *_stroke;
- int _nbVertices;
- Vec2r *_vertex;
- Vec2r *_normal;
- real *_curvature;
- bool *_isFixedVertex;
-
- bool _isClosedCurve;
- bool _safeTest;
+class Smoother {
+ public:
+ Smoother(Stroke &ioStroke);
+
+ virtual ~Smoother();
+
+ void smooth(int nbIterations,
+ real iFactorPoint,
+ real ifactorCurvature,
+ real iFactorCurvatureDifference,
+ real iAnisoPoint,
+ real iAnisoNormal,
+ real iAnisoCurvature,
+ real icarricatureFactor);
+
+ void computeCurvature();
+
+ protected:
+ real _factorPoint;
+ real _factorCurvature;
+ real _factorCurvatureDifference;
+ real _anisoPoint;
+ real _anisoNormal;
+ real _anisoCurvature;
+ real _carricatureFactor;
+
+ void iteration();
+ void copyVertices();
+
+ Stroke *_stroke;
+ int _nbVertices;
+ Vec2r *_vertex;
+ Vec2r *_normal;
+ real *_curvature;
+ bool *_isFixedVertex;
+
+ bool _isClosedCurve;
+ bool _safeTest;
};
-class Omitter : public Smoother
-{
-public:
- Omitter(Stroke &ioStroke);
+class Omitter : public Smoother {
+ public:
+ Omitter(Stroke &ioStroke);
- virtual ~Omitter() {}
+ virtual ~Omitter()
+ {
+ }
- void omit(real sizeWindow, real thrVari, real thrFlat, real lFlat);
+ void omit(real sizeWindow, real thrVari, real thrFlat, real lFlat);
-protected:
- real *_u;
+ protected:
+ real *_u;
- real _sizeWindow;
- real _thresholdVariation;
- real _thresholdFlat;
- real _lengthFlat;
+ real _sizeWindow;
+ real _thresholdVariation;
+ real _thresholdFlat;
+ real _lengthFlat;
};
/*! Omission shader */
-class OmissionShader : public StrokeShader
-{
-public:
- OmissionShader(real sizeWindow, real thrVari, real thrFlat, real lFlat);
- virtual ~OmissionShader() {}
-
- virtual int shade(Stroke &ioStroke) const;
-
-protected:
- real _sizeWindow;
- real _thresholdVariation;
- real _thresholdFlat;
- real _lengthFlat;
+class OmissionShader : public StrokeShader {
+ public:
+ OmissionShader(real sizeWindow, real thrVari, real thrFlat, real lFlat);
+ virtual ~OmissionShader()
+ {
+ }
+
+ virtual int shade(Stroke &ioStroke) const;
+
+ protected:
+ real _sizeWindow;
+ real _thresholdVariation;
+ real _thresholdFlat;
+ real _lengthFlat;
};
} /* namespace Freestyle */
-#endif // __FREESTYLE_ADVANCED_STROKE_SHADERS_H__
+#endif // __FREESTYLE_ADVANCED_STROKE_SHADERS_H__