HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_Interpolate.h File Reference
#include "GEO_API.h"
#include <GA/GA_Handle.h>
#include <GA/GA_Types.h>
#include <UT/UT_Array.h>
#include <UT/UT_VectorTypes.h>
#include <UT/UT_PolySample.h>
#include <UT/UT_Vector3.h>
#include <SYS/SYS_Math.h>
+ Include dependency graph for GEO_Interpolate.h:

Go to the source code of this file.

Macros

#define __GEO_Interpolate__
 

Functions

template<typename INT >
void geoInterpolateAttributes (const GEO_Detail *source, const GA_AttributeRefMap &attribmap, const GA_Range &destrange, const GA_ROHandleT< INT > &primnumattrib, const GA_ROHandleV3 &primuvwattrib)
 
template<typename INT >
void geoInterpolateAttributes (const GEO_Detail *source, const GA_AttributeRefMap &attribmap, const GA_Range &destrange, const GA_ROHandleT< INT > &primnumattrib, const GA_ROHandleV3 &primuvwattrib, GA_AttributeOwner computenumbersof, GA_Attribute *computeindexattrib, GA_Attribute *computeweightattrib)
 
GEO_API void geoInterpolateAttributes (const GEO_Detail *source, const GA_AttributeRefMap &attribmap, const GA_Range &destrange, GA_AttributeOwner indexowner, const GA_Attribute *indexattrib, const GA_Attribute *weightattrib)
 
template<typename T , typename S >
void GEOquadInterpolationWeights (T u, T v, S weights[4])
 
template<typename T , typename S >
void GEOtriInterpolationWeights (T u, T v, S weights[3])
 
template<typename T >
void GEOgetXYProjection (const UT_Vector3T< T > &nml, int &x, int &y)
 
GEO_API void GEOgetInterpolationWeights (const GEO_Detail *detail, GA_Offset primoff, UT_Array< GA_Offset > &offsets, UT_FloatArray &weights, const UT_Vector3 &uvw, bool is_point_offsets=false)
 

Macro Definition Documentation

#define __GEO_Interpolate__

Definition at line 14 of file GEO_Interpolate.h.

Function Documentation

GEO_API void GEOgetInterpolationWeights ( const GEO_Detail detail,
GA_Offset  primoff,
UT_Array< GA_Offset > &  offsets,
UT_FloatArray weights,
const UT_Vector3 uvw,
bool  is_point_offsets = false 
)

Fill the offsets and weights arrays with the vertex/point offsets and their corresponding interpolation weights for the given primitive parametric space coordinate uvw, for the specified primitive.

This acts like GEO_Primitive::computeInteriorPointWeights(), except that it avoids hardening the primitive list if the primitive is a polygon or tetrahedron, and if is_point_offsets is true, it will convert the offsets to point offsets, instead of staying with vertex offsets.

template<typename T >
void GEOgetXYProjection ( const UT_Vector3T< T > &  nml,
int x,
int y 
)
inline

Definition at line 115 of file GEO_Interpolate.h.

template<typename INT >
void geoInterpolateAttributes ( const GEO_Detail source,
const GA_AttributeRefMap attribmap,
const GA_Range destrange,
const GA_ROHandleT< INT > &  primnumattrib,
const GA_ROHandleV3 primuvwattrib 
)

Interpoates attributes based on primitive index and (u,v,w) INT must be int32 or int64.

template<typename INT >
void geoInterpolateAttributes ( const GEO_Detail source,
const GA_AttributeRefMap attribmap,
const GA_Range destrange,
const GA_ROHandleT< INT > &  primnumattrib,
const GA_ROHandleV3 primuvwattrib,
GA_AttributeOwner  computenumbersof,
GA_Attribute computeindexattrib,
GA_Attribute computeweightattrib 
)

Interpoates attributes based on primitive number and (u,v,w), and fills in computeindexattrib and computeweightattrib with the point or vertex indices and weights that produced the interpolation. computenumbersof determines whether computeindexattrib receives point or vertex indices. computeindexattrib and computeweightattrib must implement GA_AIFNumericArray. INT must be int32 or int64.

GEO_API void geoInterpolateAttributes ( const GEO_Detail source,
const GA_AttributeRefMap attribmap,
const GA_Range destrange,
GA_AttributeOwner  indexowner,
const GA_Attribute indexattrib,
const GA_Attribute weightattrib 
)

Interpoates attributes based on arrays of indices and weights specified in indexattrib and weightattrib. indexowner specifies whether the source indices are for points, vertices, or primitives. indexattrib and weightattrib must implement GA_AIFNumericArray.

template<typename T , typename S >
void GEOquadInterpolationWeights ( u,
v,
weights[4] 
)
inline

Definition at line 73 of file GEO_Interpolate.h.

template<typename T , typename S >
void GEOtriInterpolationWeights ( u,
v,
weights[3] 
)
inline

Definition at line 84 of file GEO_Interpolate.h.