IndexedGradientSampler< T_ModeNone, T_ModeLinearKnot, T_ModeSmoothKnot, T_ModeBlend, T_ModeCubicKnot, T_ModeCubicBias > Class Template Reference
					
#include <gradientmath.h>
					
				
This class implements the gradient blending operation for a series of knots with different interpolation modes. For performance reasons interpolation modes are handled as unsigned integers.
| T_ModeNone | The index of constant / stairstep interpolation of 1 knot. | 
| T_ModeLinearKnot | The index of linear interpolation between 2 knots. | 
| T_ModeSmoothKnot | The index of the smooth-stepped linear interpolation between 2 knots. | 
| T_ModeBlend | The index of the box-stepped linear interpolation between 2 knots. | 
| T_ModeCubicKnot | The index of the cubic interpolation between 4 knots. | 
| T_ModeCubicBias | The index of the cubic interpolation between 2 knots. | 
| 公共成员函数 | |
| template<typename ValueType , typename SortedKnotsType , typename GetKnotValueFunc , typename GetKnotInterpolationModeFunc , typename GetKnotBiasFunc > | |
| Result < ValueType > | Sample (typename SortedKnotsType::FloatType absolutePosition, const SortedKnotsType &sortedKnots, const GetKnotValueFunc &getKnotValue, const GetKnotInterpolationModeFunc &getKnotInterpolationMode, const GetKnotBiasFunc &getKnotBias) const | 
| Static Private Member Functions | |
| template<typename FloatType > | |
| static FloatType | GetBiasedWeight (FloatType weight, FloatType bias) | 
| template<typename FloatType > | |
| static Vec4 < FloatType > | GetCubicBlendWeights (FloatType a) | 
| template<typename ValueType , typename FloatType , typename IntType , typename GetKnotValueFunc > | |
| static Result < ValueType > | BlendTwoValuesLinear ( IntType leftIndex, IntType rightIndex, FloatType weight, const GetKnotValueFunc &getKnotValue) | 
| template<typename ValueType , typename FloatType , typename IntType , typename GetKnotValueFunc > | |
| static Result < ValueType > | BlendTwoValuesCubic ( IntType leftIndex, IntType rightIndex, FloatType biasLeft, FloatType biasRight, const Vec4 < FloatType > &cubicWeights, const GetKnotValueFunc &getKnotValue) | 
| template<typename ValueType , typename FloatType , typename IntType , typename GetKnotValueFunc > | |
| static Result < ValueType > | BlendFourValues ( IntType index0, IntType index1, IntType index2, IntType index3, FloatType weight, const GetKnotValueFunc &getKnotValue) | 
| Static Private Attributes | |
| static const UInt | InterpolationNone | 
| static const UInt | InterpolationLinearKnot | 
| static const UInt | InterpolationSmoothKnot | 
| static const UInt | InterpolationBlend | 
| static const UInt | InterpolationCubicKnot | 
| static const UInt | InterpolationCubicBias | 
| 
 | static private | 
Applies the bias blending to a weight.
| FloatType | The type of real number. | 
| [in] | weight | The original unbiased weight. | 
| [in] | bias | The bias to apply. | 
| 
 | static private | 
Computes the four blend weights of cubic interpolation.
| FloatType | The type of real number. | 
| [in] | a | The original weight. | 
| 
 | static private | 
Linearly interpolates between two values.
| ValueType | The type of value to interpolate. | 
| FloatType | The type of real number. | 
| IntType | The type of index. | 
| GetKnotValueFunc | The type of value sample function. | 
| [in] | leftIndex | The index of the left knot. | 
| [in] | rightIndex | The index of the right knot. | 
| [in] | weight | The interpolation weight between the 2 knots. | 
| [in] | getKnotValue | The value sample function. | 
| 
 | static private | 
Computes the biased cubic interpolation between two values.
| ValueType | The type of value to interpolate. | 
| FloatType | The type of real number. | 
| IntType | The type of index. | 
| GetKnotValueFunc | The type of value sample function. | 
| [in] | leftIndex | The index of the left knot. | 
| [in] | rightIndex | The index of the right knot. | 
| [in] | biasLeft | The bias towards the left knot. | 
| [in] | biasRight | The bias towards the right knot. | 
| [in] | cubicWeights | The cubic weights. | 
| [in] | getKnotValue | The value sample function. | 
| 
 | static private | 
Computes the interpolation between four values.
| ValueType | The type of value to interpolate. | 
| FloatType | The type of real number. | 
| IntType | The type of index. | 
| GetKnotValueFunc | The type of value sample function. | 
| [in] | index0 | The index of the first knot. | 
| [in] | index1 | The index of the second knot. | 
| [in] | index2 | The index of the third knot. | 
| [in] | index3 | The index of the fourth knot. | 
| [in] | weight | The interpolation weight. | 
| [in] | getKnotValue | The value sample function. | 
| Result <ValueType> Sample | ( | typename SortedKnotsType::FloatType | absolutePosition , | 
| const SortedKnotsType & | sortedKnots , | ||
| const GetKnotValueFunc & | getKnotValue , | ||
| const GetKnotInterpolationModeFunc & | getKnotInterpolationMode , | ||
| const GetKnotBiasFunc & | getKnotBias | ||
| ) | const | 
Samples the gradient at the requested position.
| ValueType | The type of value to sample. | 
| SortedKnotsType | The type of sorted knot sequence. | 
| GetKnotValueFunc | The type of value sample function. | 
| GetKnotInterpolationModeFunc | The type of interpolation mode sample function. | 
| GetKnotBiasFunc | The type of bias sample function. | 
| [in] | absolutePosition | The position to sample in the gradient. | 
| [in] | sortedKnots | The sorted knot sequence. | 
| [in] | getKnotValue | The value sample function.. | 
| [in] | getKnotInterpolationMode | The interpolation mode sample function. | 
| [in] | getKnotBias | The bias sample function. | 
| 
 | static private | 
| 
 | static private | 
| 
 | static private | 
| 
 | static private | 
| 
 | static private | 
| 
 | static private |