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

SH::ShGeneric< N, T > Class Template Reference

A variable of length N. More...

#include <ShGeneric.hpp>

Inheritance diagram for SH::ShGeneric< N, T >:

Inheritance graph
[legend]
Collaboration diagram for SH::ShGeneric< N, T >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef T ValueType

Public Member Functions

 ShGeneric (const ShVariableNodePtr &node, ShSwizzle swizzle, bool neg)
ShGenericoperator= (const ShGeneric &other)
ShGenericoperator= (const ShProgram &other)
ShGenericoperator+= (const ShGeneric &right)
ShGenericoperator-= (const ShGeneric &right)
ShGenericoperator *= (const ShGeneric &right)
ShGenericoperator/= (const ShGeneric &right)
ShGenericoperator%= (const ShGeneric &right)
ShGenericoperator+= (const ShGeneric< 1, T > &right)
ShGenericoperator-= (const ShGeneric< 1, T > &right)
ShGenericoperator *= (const ShGeneric< 1, T > &right)
ShGenericoperator/= (const ShGeneric< 1, T > &right)
ShGenericoperator%= (const ShGeneric< 1, T > &right)
ShGenericoperator+= (T)
ShGenericoperator-= (T)
ShGenericoperator *= (T)
ShGenericoperator/= (T)
ShGenericoperator%= (T)
ShGeneric operator- () const
ShGeneric operator() () const
 Identity swizzle.

ShGeneric< 1, T > operator() (int) const
ShGeneric< 1, T > operator[] (int) const
ShGeneric< 2, T > operator() (int, int) const
ShGeneric< 3, T > operator() (int, int, int) const
ShGeneric< 4, T > operator() (int, int, int, int) const
template<int N2> ShGeneric< N2, T > swiz (int indices[]) const

Static Public Attributes

const int typesize

Protected Member Functions

 ShGeneric (const ShVariableNodePtr &node)

Detailed Description

template<int N, typename T>
class SH::ShGeneric< N, T >

A variable of length N.

This class is provided to make definition of functions that work over n-tuples of particular types easier.

ShAttrib derives from ShGeneric. Unlike ShGeneric, which only has two template parameters, ShAttrib has four template parameters. This would make writing functions quite ugly. E.g.:

Without Generic:

template<int N, typename T, ShBindingType B1, ShBindingType B2, bool S1, bool S2> ShAttrib<N, SH_TEMP, T> add(const ShAttrib<N, B1, T, S1>& a, const ShAttrib<N, B2, T, S2>& b);

With Generic:

template<int N, typename T> ShAttrib<N, SH_TEMP, T> add(const ShGeneric<N, T>& a, const ShGeneric<N, T>& b);

This class is explicitly instantiated for T = float with 1 <= N <= 4.

Definition at line 61 of file ShGeneric.hpp.


The documentation for this class was generated from the following files:
Generated on Mon Oct 18 14:17:56 2004 for Sh by doxygen 1.3.7