Ptex
Classes | Enumerations | Functions
Ptex Namespace Reference

Common data structures and enums used throughout the API. More...

Classes

struct  FaceInfo
 Information about a face, as stored in the Ptex file header. More...
 
struct  Res
 Pixel resolution of a given texture. More...
 
class  String
 Memory-managed string. More...
 

Enumerations

enum  MeshType { mt_triangle, mt_quad }
 Type of base mesh for which the textures are defined. More...
 
enum  DataType { dt_uint8, dt_uint16, dt_half, dt_float }
 Type of data stored in texture file. More...
 
enum  EdgeFilterMode { efm_none, efm_tanvec }
 How to handle transformation across edges when filtering. More...
 
enum  BorderMode { m_clamp, m_black, m_periodic }
 How to handle mesh border when filtering. More...
 
enum  EdgeId { e_bottom, e_right, e_top, e_left }
 Edge IDs used in adjacency data in the Ptex::FaceInfo struct. More...
 
enum  MetaDataType {
  mdt_string, mdt_int8, mdt_int16, mdt_int32,
  mdt_float, mdt_double
}
 Type of meta data entry. More...
 

Functions

const char * MeshTypeName (MeshType mt)
 Look up name of given mesh type. More...
 
const char * DataTypeName (DataType dt)
 Look up name of given data type. More...
 
const char * BorderModeName (BorderMode m)
 Look up name of given border mode. More...
 
const char * EdgeFilterModeName (EdgeFilterMode m)
 Look up name of given edge filter mode. More...
 
const char * EdgeIdName (EdgeId eid)
 Look up name of given edge ID. More...
 
const char * MetaDataTypeName (MetaDataType mdt)
 Look up name of given meta data type. More...
 
int DataSize (DataType dt)
 Look up size of given data type (in bytes). More...
 
float OneValue (DataType dt)
 Look up value of given data type that corresponds to the normalized value of 1.0. More...
 
float OneValueInv (DataType dt)
 Lookup up inverse value of given data type that corresponds to the normalized value of 1.0. More...
 
void ConvertToFloat (float *dst, const void *src, Ptex::DataType dt, int numChannels)
 Convert a number of data values from the given data type to float. More...
 
void ConvertFromFloat (void *dst, const float *src, Ptex::DataType dt, int numChannels)
 Convert a number of data values from float to the given data type. More...
 

Detailed Description

Common data structures and enums used throughout the API.

Enumeration Type Documentation

◆ BorderMode

How to handle mesh border when filtering.

Enumerator
m_clamp 

texel access is clamped to border

m_black 

texel beyond border are assumed to be black

m_periodic 

texel access wraps to other side of face

Definition at line 99 of file Ptexture.h.

◆ DataType

Type of data stored in texture file.

Enumerator
dt_uint8 

Unsigned, 8-bit integer.

dt_uint16 

Unsigned, 16-bit integer.

dt_half 

Half-precision (16-bit) floating point.

dt_float 

Single-precision (32-bit) floating point.

Definition at line 85 of file Ptexture.h.

◆ EdgeFilterMode

How to handle transformation across edges when filtering.

Enumerator
efm_none 

Don't do anything with the values.

efm_tanvec 

Values are vectors in tangent space; rotate values.

Definition at line 93 of file Ptexture.h.

◆ EdgeId

Edge IDs used in adjacency data in the Ptex::FaceInfo struct.

Edge ID usage for triangle meshes is TBD.

Enumerator
e_bottom 

Bottom edge, from UV (0,0) to (1,0)

e_right 

Right edge, from UV (1,0) to (1,1)

e_top 

Top edge, from UV (1,1) to (0,1)

e_left 

Left edge, from UV (0,1) to (0,0)

Definition at line 107 of file Ptexture.h.

◆ MeshType

Type of base mesh for which the textures are defined.

A mesh can be triangle-based (with triangular textures) or quad-based (with rectangular textures).

Enumerator
mt_triangle 

Mesh is triangle-based.

mt_quad 

Mesh is quad-based.

Definition at line 79 of file Ptexture.h.

◆ MetaDataType

Type of meta data entry.

Enumerator
mdt_string 

Null-terminated string.

mdt_int8 

Signed 8-bit integer.

mdt_int16 

Signed 16-bit integer.

mdt_int32 

Signed 32-bit integer.

mdt_float 

Single-precision (32-bit) floating point.

mdt_double 

Double-precision (32-bit) floating point.

Definition at line 115 of file Ptexture.h.

Function Documentation

◆ BorderModeName()

const char* Ptex::BorderModeName ( BorderMode  m)

Look up name of given border mode.

◆ ConvertFromFloat()

void Ptex::ConvertFromFloat ( void *  dst,
const float *  src,
Ptex::DataType  dt,
int  numChannels 
)

Convert a number of data values from float to the given data type.

◆ ConvertToFloat()

void Ptex::ConvertToFloat ( float *  dst,
const void *  src,
Ptex::DataType  dt,
int  numChannels 
)

Convert a number of data values from the given data type to float.

Referenced by PtexSeparableFilter::eval(), and PtexTriangleFilter::eval().

◆ DataSize()

int Ptex::DataSize ( DataType  dt)
inline

◆ DataTypeName()

const char* Ptex::DataTypeName ( DataType  dt)

Look up name of given data type.

◆ EdgeFilterModeName()

const char* Ptex::EdgeFilterModeName ( EdgeFilterMode  m)

Look up name of given edge filter mode.

◆ EdgeIdName()

const char* Ptex::EdgeIdName ( EdgeId  eid)

Look up name of given edge ID.

◆ MeshTypeName()

const char* Ptex::MeshTypeName ( MeshType  mt)

Look up name of given mesh type.

◆ MetaDataTypeName()

const char* Ptex::MetaDataTypeName ( MetaDataType  mdt)

Look up name of given meta data type.

◆ OneValue()

float Ptex::OneValue ( DataType  dt)
inline

Look up value of given data type that corresponds to the normalized value of 1.0.

Definition at line 149 of file Ptexture.h.

Referenced by PtexUtils::divalpha(), PtexSeparableFilter::eval(), and PtexTriangleFilter::eval().

◆ OneValueInv()

float Ptex::OneValueInv ( DataType  dt)
inline

Lookup up inverse value of given data type that corresponds to the normalized value of 1.0.

Definition at line 155 of file Ptexture.h.

Referenced by PtexUtils::multalpha().