Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Clamping
[Library Functions]

Collaboration diagram for Clamping:

Various operations that reduce information in values somehow, e.g. More...

Functions

template<int N, typename T>
ShGeneric< N, T > SH::abs (const ShGeneric< N, T > &var)
 Absolute value.
template<int N, typename T>
ShGeneric< N, T > SH::ceil (const ShGeneric< N, T > &var)
 Ceiling.
template<int N, typename T>
ShGeneric< N, T > SH::floor (const ShGeneric< N, T > &var)
 Floor.
template<int N, typename T>
ShGeneric< N, T > SH::round (const ShGeneric< N, T > &var)
 Round.
template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::mod (const ShGeneric< N, T1 > &left, const ShGeneric< N, T2 > &right)
 Float modulus.
template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::mod (const ShGeneric< N, T1 > &left, const ShGeneric< 1, T2 > &right)
template<typename T1, typename T2>
ShGeneric< 1, CT1T2 > SH::mod (const ShGeneric< 1, T1 > &left, const ShGeneric< 1, T2 > &right)
template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::operator% (const ShGeneric< N, T1 > &left, const ShGeneric< N, T2 > &right)
template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::operator% (const ShGeneric< N, T1 > &left, const ShGeneric< 1, T2 > &right)
template<typename T1, typename T2>
ShGeneric< 1, CT1T2 > SH::operator% (const ShGeneric< 1, T1 > &left, const ShGeneric< 1, T2 > &right)
 SH::SH_SHLIB_CONST_SCALAR_OP_DECL (mod)
 SH::SH_SHLIB_CONST_N_OP_LEFT_DECL (mod)
 SH::SH_SHLIB_CONST_SCALAR_OP_DECL (operator%)
 SH::SH_SHLIB_CONST_N_OP_LEFT_DECL (operator%)
template<int N, typename T>
ShGeneric< N, T > SH::frac (const ShGeneric< N, T > &var)
 Fractional part.
template<int N, typename T>
ShGeneric< N, T > SH::pos (const ShGeneric< N, T > &x)
 Take positive part.
template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::max (const ShGeneric< N, T1 > &left, const ShGeneric< N, T2 > &right)
 Maximum.
 SH::SH_SHLIB_CONST_SCALAR_OP_DECL (max)
template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::min (const ShGeneric< N, T1 > &left, const ShGeneric< N, T2 > &right)
 Minimum.
 SH::SH_SHLIB_CONST_SCALAR_OP_DECL (min)
template<int N, typename T>
ShGeneric< 1, T > SH::max (const ShGeneric< N, T > &a)
 Maximum of all components.
template<int N, typename T>
ShGeneric< 1, T > SH::min (const ShGeneric< N, T > &a)
 Minimum of all components.
template<int N, typename T1, typename T2, typename T3>
ShGeneric< N, CT1T2T3 > SH::clamp (const ShGeneric< N, T1 > &a, const ShGeneric< N, T2 > &b, const ShGeneric< N, T3 > &c)
 Componentwise clamping.
template<int N, typename T1, typename T2, typename T3>
ShGeneric< N, CT1T2T3 > SH::clamp (const ShGeneric< N, T1 > &a, const ShGeneric< 1, T2 > &b, const ShGeneric< 1, T3 > &c)
template<typename T1, typename T2, typename T3>
ShGeneric< 1, CT1T2T3 > SH::clamp (const ShGeneric< 1, T1 > &a, const ShGeneric< 1, T2 > &b, const ShGeneric< 1, T3 > &c)
 SH::SH_SHLIB_CONST_TRINARY_OP_011_DECL (clamp)
template<int N, typename T>
ShGeneric< N, T > SH::sat (const ShGeneric< N, T > &a)
 Componentwise saturation.
template<int N, typename T>
ShGeneric< N, T > SH::sign (const ShGeneric< N, T > &var)
 Componentwise sign.
template<int N, typename T>
ShGeneric< N, T > SH::smoothstep (const ShGeneric< N, T > &t, const ShGeneric< N, T > &c, const ShGeneric< N, T > &w)
 Linear smooth step.
template<int N, typename T>
ShGeneric< N, T > SH::smoothpulse (const ShGeneric< N, T > &t, const ShGeneric< N, T > &r0, const ShGeneric< N, T > &r1, const ShGeneric< N, T > &w)
 Linear smooth pulse.

Detailed Description

Various operations that reduce information in values somehow, e.g.

clamping them to ranges, throwing away their sign, or selecting one out of two tuples.


Function Documentation

template<int N, typename T>
ShGeneric< N, T > SH::abs const ShGeneric< N, T > &  var  ) 
 

Absolute value.

Returns the magnitude. Operates componentwise on tuples.

Definition at line 35 of file ShLibClampImpl.hpp.

Referenced by ShUtil::Dist_InfGradientPropFactory< D, T >::operator()(), ShUtil::Dist_1GradientPropFactory< D, T >::operator()(), ShUtil::Dist_InfPropFactory< D, T >::operator()(), ShUtil::Dist_1PropFactory< D, T >::operator()(), ShUtil::sturbulence(), and ShUtil::turbulence().

template<int N, typename T>
ShGeneric< N, T > SH::ceil const ShGeneric< N, T > &  var  ) 
 

Ceiling.

Returns the least integer >= argument. Operates componentwise on tuples.

Definition at line 43 of file ShLibClampImpl.hpp.

template<int N, typename T1, typename T2, typename T3>
ShGeneric< N, CT1T2T3 > SH::clamp const ShGeneric< N, T1 > &  a,
const ShGeneric< N, T2 > &  b,
const ShGeneric< N, T3 > &  c
[inline]
 

Componentwise clamping.

Clamps a between b and c.

Definition at line 203 of file ShLibClampImpl.hpp.

References SH::max(), and SH::min().

Referenced by ShUtil::deprecated_smoothstep(), SH::refract(), and SH::smoothstep().

template<int N, typename T>
ShGeneric< N, T > SH::floor const ShGeneric< N, T > &  var  ) 
 

Floor.

Returns the greatest integer <= argument. Operates componentwise on tuples.

Definition at line 51 of file ShLibClampImpl.hpp.

Referenced by ShUtil::ShNoise< M, T, P >::cellnoise(), ShUtil::GridGenFactory< D, T >::operator()(), ShUtil::ShNoise< M, T, P >::perlin(), and sh_cc_backend_nearest().

template<int N, typename T>
ShGeneric< N, T > SH::frac const ShGeneric< N, T > &  var  ) 
 

Fractional part.

Discards the integer part of each componenent in var.

Definition at line 125 of file ShLibClampImpl.hpp.

Referenced by ShUtil::ShNoise< M, T, P >::cellnoise(), ShUtil::hashlcg(), ShUtil::hashmrg(), ShUtil::CellnoisePropFactory< N, D, T >::operator()(), ShUtil::Tex2DPropFactory< TexType, T >::operator()(), ShUtil::ShNoise< M, T, P >::perlin(), and ShUtil::ShKernelLight::texLight2D().

template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::max const ShGeneric< N, T1 > &  left,
const ShGeneric< N, T2 > &  right
 

Maximum.

Creates a tuple of componentwise maximums of a pair of input tuples.

Definition at line 140 of file ShLibClampImpl.hpp.

Referenced by SH::max(), ShUtil::Dist_InfGradientPropFactory< D, T >::operator()(), ShUtil::Dist_InfPropFactory< D, T >::operator()(), and SH::ShGraph< G >::vertexHeight().

template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::min const ShGeneric< N, T1 > &  left,
const ShGeneric< N, T2 > &  right
 

Minimum.

Creates a tuple of componentwise minimums of a pair of input tuples.

Definition at line 149 of file ShLibClampImpl.hpp.

Referenced by SH::cast(), SH::min(), and SH::ShMatrix< Rows, Cols, Binding, T >::ShMatrix().

template<int N, typename T1, typename T2>
ShGeneric< N, CT1T2 > SH::mod const ShGeneric< N, T1 > &  left,
const ShGeneric< N, T2 > &  right
 

Float modulus.

The result is always positive.

Definition at line 67 of file ShLibClampImpl.hpp.

Referenced by SH::operator%().

template<int N, typename T>
ShGeneric< N, T > SH::pos const ShGeneric< N, T > &  x  )  [inline]
 

Take positive part.

Clamps a value to zero if it is negative. This is useful to wrap dot products in lighting models.

Definition at line 134 of file ShLibClampImpl.hpp.

References SH::max().

Referenced by ShUtil::ShKernelSurface::diffuse(), ShUtil::ShKernelSurface::phong(), ShUtil::ShKernelSurface::specular(), and shgl::ArbCode::upload().

template<int N, typename T>
ShGeneric< N, T > SH::round const ShGeneric< N, T > &  var  ) 
 

Round.

Returns the nearest integer to the argument. Operates componentwise on tuples.

Definition at line 59 of file ShLibClampImpl.hpp.

template<int N, typename T>
ShGeneric< N, T > SH::sat const ShGeneric< N, T > &  a  )  [inline]
 

Componentwise saturation.

Equivalent to componentwise minimum with 1.

Definition at line 227 of file ShLibClampImpl.hpp.

References SH::min().

template<int N, typename T>
ShGeneric< N, T > SH::sign const ShGeneric< N, T > &  var  ) 
 

Componentwise sign.

Returns -1.0 if argument is less than 0.0, 1.0 if argument is greater than 0.0, 0.0 otherwise. Operates componentwise on tuples.

Definition at line 233 of file ShLibClampImpl.hpp.

template<int N, typename T>
ShGeneric< N, T > SH::smoothpulse const ShGeneric< N, T > &  t,
const ShGeneric< N, T > &  r0,
const ShGeneric< N, T > &  r1,
const ShGeneric< N, T > &  w
[inline]
 

Linear smooth pulse.

Linear smooth pulse of t between r0 and r1 with width w.

Definition at line 251 of file ShLibClampImpl.hpp.

template<int N, typename T>
ShGeneric< N, T > SH::smoothstep const ShGeneric< N, T > &  t,
const ShGeneric< N, T > &  c,
const ShGeneric< N, T > &  w
[inline]
 

Linear smooth step.

Linear smooth step of t centered around c with width w.

Definition at line 243 of file ShLibClampImpl.hpp.

References SH::clamp().


Generated on Wed Jun 15 18:14:32 2005 for Sh by  doxygen 1.4.3-20050530