PtexExtractor/ptex/PtexFilterContext.h
#ifndef PtexFilterContext_h
#define PtexFilterContext_h
#include <string.h>
#include "Ptexture.h"
#include "PtexUtils.h"
class PtexFilterContext : public Ptex
{
public:
float* result;
int firstchan;
int nchannels;
PtexTexture* tx;
int ntxchannels;
DataType dt;
int faceid;
float uw, vw;
bool prepare(float* result_val, int firstchan_val, int nchannels_val,
PtexTexture* tx_val, int faceid_val,
float u_val, float v_val, float uw_val, float vw_val)
{
memset(result_val, 0, sizeof(float)*nchannels_val);
tx = tx_val;
if (!tx) return 0;
ntxchannels = tx->numChannels();
dt = tx->dataType();
result = result_val;
firstchan = firstchan_val;
nchannels = PtexUtils::min(nchannels_val,
ntxchannels-firstchan_val);
faceid = faceid_val;
uw = uw_val; vw = vw_val;
if ((nchannels <= 0) ||
(faceid < 0 || faceid >= tx->numFaces()))
return 0;
return 1;
}
};
#endif