Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
PtexFilter Class Referenceabstract

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

#include <Ptexture.h>

Inheritance diagram for PtexFilter:
PtexPointFilter PtexPointFilterTri PtexSeparableFilter PtexTriangleFilter PtexBilinearFilter PtexBoxFilter PtexWidth4Filter PtexBicubicFilter PtexGaussianFilter


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. More...

Public Member Functions

virtual void release ()=0
 Release resources held by this pointer (pointer becomes invalid). More...
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. More...

Static Public Member Functions

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

Protected Member Functions

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

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.

Definition at line 950 of file Ptexture.h.

Member Enumeration Documentation

◆ FilterType

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)

Definition at line 957 of file Ptexture.h.

Constructor & Destructor Documentation

◆ ~PtexFilter()

virtual PtexFilter::~PtexFilter ( )

Destructor not for public use. Use release() instead.

Definition at line 953 of file Ptexture.h.

Member Function Documentation

◆ eval()

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.

resultBuffer to hold filter result. Must be large enough to hold nchannels worth of data.
firstchanFirst channel to evaluate [0..tx->numChannels()-1]
nchannelsNumber of channels to evaluate
faceidFace index [0..tx->numFaces()-1]
uU coordinate, normalized [0..1]
vV coordinate, normalized [0..1]
uw1U filter width 1, normalized [0..1]
vw1V filter width 1, normalized [0..1]
uw2U filter width 2, normalized [0..1]
vw2V filter width 2, normalized [0..1]
widthscale factor for filter width
bluramount to add to filter width [0..1]

Implemented in PtexPointFilterTri, PtexPointFilter, PtexTriangleFilter, and PtexSeparableFilter.

◆ getFilter()

PtexFilter * PtexFilter::getFilter ( PtexTexture tx,
const Options opts 

◆ release()

virtual void PtexFilter::release ( )
pure virtual

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

Implemented in PtexPointFilterTri, PtexTriangleFilter, PtexPointFilter, and PtexSeparableFilter.

The documentation for this class was generated from the following files: