PtexFilter Class Reference

Interface for filtered sampling of ptex data files. More...

#include <Ptexture.h>

List of all members.


struct  Options
 Choose filter options. More...

Public Types

enum  FilterType {
  f_point, f_bilinear, f_box, f_gaussian,
  f_bicubic, f_bspline, f_catmullrom, f_mitchell

Filter types.


Public Member Functions

virtual void release ()=0
 Release resources held by this pointer (pointer becomes invalid).
virtual void eval (float *result, int firstchan, int nchannels, int faceid, float u, float v, float uw1, float vw1, float uw2, float vw2, float width=1, float blur=0)=0
 Apply filter to a ptex data file.

Static Public Member Functions

static PTEXAPI PtexFiltergetFilter (PtexTexture *tx, const Options &opts)

Protected Member Functions

virtual ~PtexFilter ()
 Destructor not for public use. Use release() instead.

Detailed Description

Interface for filtered sampling of ptex data files.

PtexFilter instances are obtained by calling one of the particular static methods. When finished using the filter, it must be returned to the library using release().

To apply the filter to a ptex data file, use the eval() method.

Member Enumeration Documentation

Filter types.


Point-sampled (no filtering).


Bi-linear interpolation.


Box filter.


Gaussian filter.


General bi-cubic filter (uses sharpness option).


BSpline (equivalent to bi-cubic w/ sharpness=0).


Catmull-Rom (equivalent to bi-cubic w/ sharpness=1).


Mitchell (equivalent to bi-cubic w/ sharpness=2/3).

Member Function Documentation

virtual void PtexFilter::eval ( float *  result,
int  firstchan,
int  nchannels,
int  faceid,
float  u,
float  v,
float  uw1,
float  vw1,
float  uw2,
float  vw2,
float  width = 1,
float  blur = 0 
) [pure virtual]

Apply filter to a ptex data file.

The filter region is a parallelogram centered at the given (u,v) coordinate with sides defined by two vectors [uw1, vw1] and [uw2, vw2]. For an axis-aligned rectangle, the vectors are [uw, 0] and [0, vw]. See Filter Footprint for details.

result Buffer to hold filter result. Must be large enough to hold nchannels worth of data.
firstchan First channel to evaluate [0..tx->numChannels()-1]
nchannels Number of channels to evaluate
faceid Face index [0..tx->numFaces()-1]
u U coordinate, normalized [0..1]
v V coordinate, normalized [0..1]
uw1 U filter width 1, normalized [0..1]
vw1 V filter width 1, normalized [0..1]
uw2 U filter width 2, normalized [0..1]
vw2 V filter width 2, normalized [0..1]
width scale factor for filter width
blur amount to add to filter width [0..1]
virtual void PtexFilter::release (  )  [pure virtual]

Release resources held by this pointer (pointer becomes invalid).

Generated on 14 Dec 2015 for Ptex by  doxygen 1.6.1