43     inline float gaussian(
float x_squared)
 
   46         return (
float)exp(scale * x_squared);
 
   55     template<
class T, 
int nChan>
 
   60         for (
int vi = k.
v1; vi != k.
v2; vi++) {
 
   64             float U = (float)x1 - k.
u;
 
   65             float V = (
float)vi - k.
v;
 
   66             float DQ = k.
A*(2.0f*U+1.0f)+k.
B*V;
 
   67             float Q = k.
A*U*U + (k.
B*U + k.
C*V)*V;
 
   68             T* p = (T*)data + (vi * k.
rowlen + x1) * nTxChan;
 
   69             T* pEnd = p + (x2-x1)*nTxChan;
 
   70             for (; p < pEnd; p += nTxChan) {
 
   72                     float weight = gaussian(Q)*k.
wscale;
 
   83     template<
class T, 
int nChan>
 
   87         for (
int vi = k.
v1; vi != k.
v2; vi++) {
 
   91             float U = (float)x1 - k.
u;
 
   92             float V = (
float)vi - k.
v;
 
   93             float DQ = k.
A*(2.0f*U+1.0f)+k.
B*V;
 
   94             float Q = k.
A*U*U + (k.
B*U + k.
C*V)*V;
 
   95             T* p = (T*)data + (vi * k.
rowlen + x1) * nTxChan;
 
   96             T* pEnd = p + (x2-x1)*nTxChan;
 
   97             for (; p < pEnd; p += nTxChan) {
 
   99                     float weight = gaussian(Q)*k.
wscale;
 
  113         float DDQ = 2.0f*k.
A;
 
  114         for (
int vi = k.
v1; vi != k.
v2; vi++) {
 
  118             float U = (float)x1 - k.
u;
 
  119             float V = (
float)vi - k.
v;
 
  120             float DQ = k.
A*(2.0f*U+1.0f)+k.
B*V;
 
  121             float Q = k.
A*U*U + (k.
B*U + k.
C*V)*V;
 
  122             T* p = (T*)data + (vi * k.
rowlen + x1) * nTxChan;
 
  123             T* pEnd = p + (x2-x1)*nTxChan;
 
  124             for (; p < pEnd; p += nTxChan) {
 
  126                     float weight = gaussian(Q)*k.
wscale;
 
  141     ApplyN<uint8_t>,  ApplyN<uint16_t>,  ApplyN<PtexHalf>,  ApplyN<float>,
 
  142     Apply<uint8_t,1>, Apply<uint16_t,1>, Apply<PtexHalf,1>, Apply<float,1>,
 
  143     Apply<uint8_t,2>, Apply<uint16_t,2>, Apply<PtexHalf,2>, Apply<float,2>,
 
  144     Apply<uint8_t,3>, Apply<uint16_t,3>, Apply<PtexHalf,3>, Apply<float,3>,
 
  145     Apply<uint8_t,4>, Apply<uint16_t,4>, Apply<PtexHalf,4>, Apply<float,4>,
 
  148     ApplyN<uint8_t>,   ApplyN<uint16_t>,   ApplyN<PtexHalf>,   ApplyN<float>,
 
  149     ApplyS<uint8_t,1>, ApplyS<uint16_t,1>, ApplyS<PtexHalf,1>, ApplyS<float,1>,
 
  150     ApplyS<uint8_t,2>, ApplyS<uint16_t,2>, ApplyS<PtexHalf,2>, ApplyS<float,2>,
 
  151     ApplyS<uint8_t,3>, ApplyS<uint16_t,3>, ApplyS<PtexHalf,3>, ApplyS<float,3>,
 
  152     ApplyS<uint8_t,4>, ApplyS<uint16_t,4>, ApplyS<PtexHalf,4>, ApplyS<float,4>,
 
  160     for (
int vi = 
v1; vi != 
v2; vi++) {
 
  164         float U = (float)x1 - 
u;
 
  165         float V = (float)vi - 
v;
 
  166         float DQ = 
A*(2.0f*U+1.0f)+
B*V;
 
  167         float Q = 
A*U*U + (
B*U + 
C*V)*V;
 
  168         for (
int x = x1; x < x2; x++) {
 
void applyConst(float *dst, void *data, DataType dt, int nChan)
DataType
Type of data stored in texture file. 
Triangle filter kernel iterator (in texel coords) 
static ApplyFn applyFunctions[40]
void(* ApplyFn)(PtexTriangleKernelIter &k, float *dst, void *data, int nChan, int nTxChan)
static const float PtexTriangleKernelWidth
Half-precision floating-point type. 
static void applyConst(float weight, float *dst, void *data, Ptex::DataType dt, int nChan)