HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_ImplicitSurfaceOp< PREC > Struct Template Reference

#include <GEO_ImplicitSurfaceOp.h>

Public Member Functions

 GEO_ImplicitSurfaceOp ()=default
 
 GEO_ImplicitSurfaceOp (GEO_ImplicitSurfaceOpID op_id, const UT_Vector4T< VEXfloat< PREC >> &op_parms={0, 0, 0, 0})
 
 GEO_ImplicitSurfaceOp (const char *name, const VEXmat3< PREC > &transform, const VEXvec4< PREC > &op_parms={0, 0, 0, 0})
 
bool isUnary () const
 
bool isBinary () const
 
void scale (VEXfloat< PREC > s)
 
VEXfloat< PREC > evalUnary (VEXfloat< PREC > a) const
 Evaluate unary operation. More...
 
VEXfloat< PREC > evalUnary (VEXfloat< PREC > a, UT_Vector4T< VEXfloat< PREC >> &op_dparms, VEXfloat< PREC > &da) const
 
void evalUnaryBatched (int npts, VEXfloat< PREC > *a) const
 
void evalUnaryBatched (int npts, VEXfloat< PREC > *a, UT_Vector4T< VEXfloat< PREC >> *op_dparms, VEXfloat< PREC > *da) const
 
UT_IntervalT< VEXfloat< PREC > > evalUnary (const UT_IntervalT< VEXfloat< PREC >> &a) const
 
VEXfloat< PREC > evalBinary (VEXfloat< PREC > a, VEXfloat< PREC > b, int a_id, int b_id, int &out_id) const
 Evaluate binary operation. More...
 
VEXfloat< PREC > evalBinary (VEXfloat< PREC > a, VEXfloat< PREC > b, int a_id, int b_id, int &out_id, UT_Vector4T< VEXfloat< PREC >> &op_dparms, VEXfloat< PREC > &da, VEXfloat< PREC > &db) const
 
void evalBinaryBatched (int npts, const VEXfloat< PREC > *a, const VEXfloat< PREC > *b, const int *a_id, const int *b_id, int *out_id, VEXfloat< PREC > *result) const
 
void evalBinaryBatched (int npts, const VEXfloat< PREC > *a, const VEXfloat< PREC > *b, const int *a_id, const int *b_id, int *out_id, UT_Vector4T< VEXfloat< PREC >> *op_dparms, VEXfloat< PREC > *da, VEXfloat< PREC > *db, VEXfloat< PREC > *result) const
 
UT_IntervalT< VEXfloat< PREC > > evalBinary (const UT_IntervalT< VEXfloat< PREC >> &a, const UT_IntervalT< VEXfloat< PREC >> &b) const
 
UT_IntervalT< VEXfloat< PREC > > evalBinary (const UT_IntervalT< VEXfloat< PREC >> &a, const UT_IntervalT< VEXfloat< PREC >> &b, GEO_ImplicitSurfaceOptFlag &can_optimize) const
 

Static Public Member Functions

static GEO_ImplicitSurfaceOpID opNameToID (const char *name)
 Convert operation name string to ID. More...
 
static const char * opIDToName (GEO_ImplicitSurfaceOpID op_id)
 Convert operation ID to name string. More...
 
static GEO_ImplicitSurfaceOp makeInvert ()
 
static GEO_ImplicitSurfaceOp makeOffset (VEXfloat< PREC > offset)
 
static GEO_ImplicitSurfaceOp makeShell (VEXfloat< PREC > offset, VEXfloat< PREC > thickness)
 
static GEO_ImplicitSurfaceOp makeUnion ()
 
static GEO_ImplicitSurfaceOp makeIntersect ()
 
static GEO_ImplicitSurfaceOp makeSubtract ()
 
static GEO_ImplicitSurfaceOp makeDifference ()
 
static GEO_ImplicitSurfaceOp makeSmoothUnion (VEXfloat< PREC > k)
 
static GEO_ImplicitSurfaceOp makeSmoothIntersect (VEXfloat< PREC > k)
 
static GEO_ImplicitSurfaceOp makeSmoothSubtract (VEXfloat< PREC > k)
 
static GEO_ImplicitSurfaceOp makeSmoothDifference (VEXfloat< PREC > k)
 
static GEO_ImplicitSurfaceOp makeSmoothRepulsiveUnion (VEXfloat< PREC > k, VEXfloat< PREC > repulsion)
 
static GEO_ImplicitSurfaceOp makeRoundUnion (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeRoundIntersect (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeRoundSubtract (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeRoundDifference (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeChamferUnion (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeChamferIntersect (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeChamferSubtract (VEXfloat< PREC > r)
 
static GEO_ImplicitSurfaceOp makeChamferDifference (VEXfloat< PREC > r)
 

Public Attributes

GEO_ImplicitSurfaceOpID myId = GEO_ImplicitSurfaceOpID::Invalid
 
UT_Vector4T< VEXfloat< PREC > > myParms = {0, 0, 0, 0}
 

Detailed Description

template<VEX_Precision PREC>
struct GEO_ImplicitSurfaceOp< PREC >

Definition at line 75 of file GEO_ImplicitSurfaceOp.h.

Constructor & Destructor Documentation

template<VEX_Precision PREC>
GEO_ImplicitSurfaceOp< PREC >::GEO_ImplicitSurfaceOp ( )
default
template<VEX_Precision PREC>
GEO_ImplicitSurfaceOp< PREC >::GEO_ImplicitSurfaceOp ( GEO_ImplicitSurfaceOpID  op_id,
const UT_Vector4T< VEXfloat< PREC >> &  op_parms = {0, 0, 0, 0} 
)
inline

Definition at line 81 of file GEO_ImplicitSurfaceOp.h.

template<VEX_Precision PREC>
GEO_ImplicitSurfaceOp< PREC >::GEO_ImplicitSurfaceOp ( const char *  name,
const VEXmat3< PREC > &  transform,
const VEXvec4< PREC > &  op_parms = {0, 0, 0, 0} 
)
inline

Definition at line 85 of file GEO_ImplicitSurfaceOp.h.

Member Function Documentation

template<VEX_Precision PREC>
VEXfloat<PREC> GEO_ImplicitSurfaceOp< PREC >::evalBinary ( VEXfloat< PREC >  a,
VEXfloat< PREC >  b,
int  a_id,
int  b_id,
int out_id 
) const

Evaluate binary operation.

template<VEX_Precision PREC>
VEXfloat<PREC> GEO_ImplicitSurfaceOp< PREC >::evalBinary ( VEXfloat< PREC >  a,
VEXfloat< PREC >  b,
int  a_id,
int  b_id,
int out_id,
UT_Vector4T< VEXfloat< PREC >> &  op_dparms,
VEXfloat< PREC > &  da,
VEXfloat< PREC > &  db 
) const
template<VEX_Precision PREC>
UT_IntervalT<VEXfloat<PREC> > GEO_ImplicitSurfaceOp< PREC >::evalBinary ( const UT_IntervalT< VEXfloat< PREC >> &  a,
const UT_IntervalT< VEXfloat< PREC >> &  b 
) const
template<VEX_Precision PREC>
UT_IntervalT<VEXfloat<PREC> > GEO_ImplicitSurfaceOp< PREC >::evalBinary ( const UT_IntervalT< VEXfloat< PREC >> &  a,
const UT_IntervalT< VEXfloat< PREC >> &  b,
GEO_ImplicitSurfaceOptFlag can_optimize 
) const
template<VEX_Precision PREC>
void GEO_ImplicitSurfaceOp< PREC >::evalBinaryBatched ( int  npts,
const VEXfloat< PREC > *  a,
const VEXfloat< PREC > *  b,
const int a_id,
const int b_id,
int out_id,
VEXfloat< PREC > *  result 
) const
template<VEX_Precision PREC>
void GEO_ImplicitSurfaceOp< PREC >::evalBinaryBatched ( int  npts,
const VEXfloat< PREC > *  a,
const VEXfloat< PREC > *  b,
const int a_id,
const int b_id,
int out_id,
UT_Vector4T< VEXfloat< PREC >> *  op_dparms,
VEXfloat< PREC > *  da,
VEXfloat< PREC > *  db,
VEXfloat< PREC > *  result 
) const
template<VEX_Precision PREC>
VEXfloat<PREC> GEO_ImplicitSurfaceOp< PREC >::evalUnary ( VEXfloat< PREC >  a) const

Evaluate unary operation.

template<VEX_Precision PREC>
VEXfloat<PREC> GEO_ImplicitSurfaceOp< PREC >::evalUnary ( VEXfloat< PREC >  a,
UT_Vector4T< VEXfloat< PREC >> &  op_dparms,
VEXfloat< PREC > &  da 
) const
template<VEX_Precision PREC>
UT_IntervalT<VEXfloat<PREC> > GEO_ImplicitSurfaceOp< PREC >::evalUnary ( const UT_IntervalT< VEXfloat< PREC >> &  a) const
template<VEX_Precision PREC>
void GEO_ImplicitSurfaceOp< PREC >::evalUnaryBatched ( int  npts,
VEXfloat< PREC > *  a 
) const
template<VEX_Precision PREC>
void GEO_ImplicitSurfaceOp< PREC >::evalUnaryBatched ( int  npts,
VEXfloat< PREC > *  a,
UT_Vector4T< VEXfloat< PREC >> *  op_dparms,
VEXfloat< PREC > *  da 
) const
template<VEX_Precision PREC>
bool GEO_ImplicitSurfaceOp< PREC >::isBinary ( ) const
inline

Definition at line 99 of file GEO_ImplicitSurfaceOp.h.

template<VEX_Precision PREC>
bool GEO_ImplicitSurfaceOp< PREC >::isUnary ( ) const
inline

Definition at line 98 of file GEO_ImplicitSurfaceOp.h.

template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeChamferDifference ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeChamferIntersect ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeChamferSubtract ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeChamferUnion ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeDifference ( )
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeIntersect ( )
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeInvert ( )
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeOffset ( VEXfloat< PREC >  offset)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeRoundDifference ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeRoundIntersect ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeRoundSubtract ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeRoundUnion ( VEXfloat< PREC >  r)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeShell ( VEXfloat< PREC >  offset,
VEXfloat< PREC >  thickness 
)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeSmoothDifference ( VEXfloat< PREC >  k)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeSmoothIntersect ( VEXfloat< PREC >  k)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeSmoothRepulsiveUnion ( VEXfloat< PREC >  k,
VEXfloat< PREC >  repulsion 
)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeSmoothSubtract ( VEXfloat< PREC >  k)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeSmoothUnion ( VEXfloat< PREC >  k)
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeSubtract ( )
static
template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOp GEO_ImplicitSurfaceOp< PREC >::makeUnion ( )
static
template<VEX_Precision PREC>
static const char* GEO_ImplicitSurfaceOp< PREC >::opIDToName ( GEO_ImplicitSurfaceOpID  op_id)
static

Convert operation ID to name string.

template<VEX_Precision PREC>
static GEO_ImplicitSurfaceOpID GEO_ImplicitSurfaceOp< PREC >::opNameToID ( const char *  name)
static

Convert operation name string to ID.

template<VEX_Precision PREC>
void GEO_ImplicitSurfaceOp< PREC >::scale ( VEXfloat< PREC >  s)
inline

Scale distance-valued operation parameters by uniform factor. Operations without distance parameters (Union, Intersect, etc.) are unchanged.

Definition at line 107 of file GEO_ImplicitSurfaceOp.h.

Member Data Documentation

Definition at line 77 of file GEO_ImplicitSurfaceOp.h.

template<VEX_Precision PREC>
UT_Vector4T<VEXfloat<PREC> > GEO_ImplicitSurfaceOp< PREC >::myParms = {0, 0, 0, 0}

Definition at line 78 of file GEO_ImplicitSurfaceOp.h.


The documentation for this struct was generated from the following file: