Ptex
Classes | Macros | Enumerations | Functions | Variables
Ptexture.h File Reference

Public API classes for reading, writing, caching, and filtering Ptex files. More...

#include "PtexInt.h"
#include <ostream>

Go to the source code of this file.

Classes

struct  Ptex
 Common data structures and enums used throughout the API. More...
 
struct  Ptex::Res
 Pixel resolution of a given texture. More...
 
struct  Ptex::FaceInfo
 Information about a face, as stored in the Ptex file header. More...
 
class  Ptex::String
 Memory-managed string. More...
 
struct  Res
 Pixel resolution of a given texture. More...
 
struct  FaceInfo
 Information about a face, as stored in the Ptex file header. More...
 
class  String
 Memory-managed string. More...
 
class  PtexMetaData
 Meta data accessor. More...
 
class  PtexFaceData
 Per-face texture data accessor. More...
 
class  PtexTexture
 Interface for reading data from a ptex file. More...
 
class  PtexInputHandler
 Custom handler interface for intercepting and redirecting Ptex input stream calls. More...
 
class  PtexCache
 File-handle and memory cache for reading ptex files. More...
 
class  PtexWriter
 Interface for writing data to a ptex file. More...
 
class  PtexFilter
 Interface for filtered sampling of ptex data files. More...
 
struct  PtexFilter::Options
 Choose filter options. More...
 
class  PtexPtr< T >
 Smart-pointer for acquiring and releasing API objects. More...
 

Macros

#define PTEXAPI
 
#define PtexAPIVersion   2
 
#define PtexFileMajorVersion   1
 
#define PtexFileMinorVersion   3
 

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

static const char * MeshTypeName (MeshType mt)
 Look up name of given mesh type. More...
 
static const char * DataTypeName (DataType dt)
 Look up name of given data type. More...
 
static const char * BorderModeName (BorderMode m)
 Look up name of given border mode. More...
 
static const char * EdgeIdName (EdgeId eid)
 Look up name of given edge ID. More...
 
static const char * MetaDataTypeName (MetaDataType mdt)
 Look up name of given meta data type. More...
 
static int DataSize (DataType dt)
 Look up size of given data type (in bytes). More...
 
static float OneValue (DataType dt)
 Look up value of given data type that corresponds to the normalized value of 1.0. More...
 
static float OneValueInv (DataType dt)
 Lookup up inverse value of given data type that corresponds to the normalized value of 1.0. More...
 
static 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...
 
static 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...
 

Variables

class PtexMetaDataoperator
 

Detailed Description

Public API classes for reading, writing, caching, and filtering Ptex files.

Definition in file Ptexture.h.

Macro Definition Documentation

#define PTEXAPI

Definition at line 58 of file Ptexture.h.

#define PtexAPIVersion   2

Definition at line 68 of file Ptexture.h.

#define PtexFileMajorVersion   1

Definition at line 69 of file Ptexture.h.

Referenced by PtexWriterBase::PtexWriterBase().

#define PtexFileMinorVersion   3

Definition at line 70 of file Ptexture.h.

Referenced by PtexWriterBase::PtexWriterBase().

Enumeration Type Documentation

enum 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 204 of file Ptexture.h.

enum 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 196 of file Ptexture.h.

enum 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 212 of file Ptexture.h.

enum 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 190 of file Ptexture.h.

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 220 of file Ptexture.h.

Function Documentation

static const char* operator::BorderModeName ( BorderMode  m)
static

Look up name of given border mode.

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

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

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

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

static int operator::DataSize ( DataType  dt)
static

Look up size of given data type (in bytes).

Definition at line 245 of file Ptexture.h.

static const char* operator::DataTypeName ( DataType  dt)
static

Look up name of given data type.

static const char* operator::EdgeIdName ( EdgeId  eid)
static

Look up name of given edge ID.

static const char* operator::MeshTypeName ( MeshType  mt)
static

Look up name of given mesh type.

static const char* operator::MetaDataTypeName ( MetaDataType  mdt)
static

Look up name of given meta data type.

static float operator::OneValue ( DataType  dt)
static

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

Definition at line 251 of file Ptexture.h.

static float operator::OneValueInv ( DataType  dt)
static

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

Definition at line 257 of file Ptexture.h.

References Ptex::FaceInfo::setadjedges(), and Ptex::FaceInfo::setadjfaces().

Variable Documentation

class PtexMetaData& operator