HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_FieldUtils.h File Reference
#include <GU/GU_Types.h>
#include "SIM_ScalarField.h"
#include "SIM_MatrixField.h"
#include "SIM_VectorField.h"
#include "SIM_IndexField.h"
+ Include dependency graph for SIM_FieldUtils.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 SIM
 
 SIM::FieldUtils
 

Functions

template<typename Functor >
void SIM::FieldUtils::forEachVoxelRange (const UT_Vector3I &start, const UT_Vector3I &end, const Functor &f)
 
SYS_FORCE_INLINE void SIM::FieldUtils::setFieldValue (SIM_RawField &field, const UT_Vector3I &cell, fpreal32 value)
 
SYS_FORCE_INLINE fpreal32 SIM::FieldUtils::getFieldValue (const SIM_RawField &field, const UT_Vector3I &cell)
 
SYS_FORCE_INLINE void SIM::FieldUtils::setFieldValue (SIM_RawIndexField &field, const UT_Vector3I &cell, exint value)
 
SYS_FORCE_INLINE exint SIM::FieldUtils::getFieldValue (const SIM_RawIndexField &field, const UT_Vector3I &cell)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::cellToFaceMap (const UT_Vector3I &cell, const int axis, const int direction)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::cellToCellMap (const UT_Vector3I &cell, const int axis, const int direction)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::cellToEdgeMap (const UT_Vector3I &cell, const int edge_axis, const int edge_index)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::cellToNodeMap (const UT_Vector3I &cell, const int node_index)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::faceToCellMap (const UT_Vector3I &face, const int axis, const int direction)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::faceToEdgeMap (const UT_Vector3I &face, const int face_axis, const int edge_axis, const int direction)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::faceToNodeMap (const UT_Vector3I &face, const int face_axis, const int node_index)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::edgeToFaceMap (const UT_Vector3I &edge, const int edge_axis, const int face_axis, const int direction)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::edgeToCellMap (const UT_Vector3I &edge, const int edge_axis, const int cell_index)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::nodeToFaceMap (const UT_Vector3I &node, const int face_axis, const int face_index)
 
SYS_FORCE_INLINE UT_Vector3I SIM::FieldUtils::nodeToCellMap (const UT_Vector3I &node, const int cell_index)
 
bool SIMfieldUtilsComputeSliceWithBorder (const UT_Vector3 &slice, const UT_Vector3 &totaldiv, UT_Vector3 overlapneg, UT_Vector3 overlappos, int slicenum, UT_Vector3 &minvxl, UT_Vector3 &maxvxl)
 
template<typename FIELDTYPE >
bool SIMfieldUtilsComputeSliceWithBorder (const FIELDTYPE *field, const UT_Vector3 &totaldiv, UT_Vector3 overlapneg, UT_Vector3 overlappos, int slicenum, UT_Vector3 &minvxl, UT_Vector3 &maxvxl)
 
template<typename FIELDTYPE >
bool SIMfieldUtilsComputeSlice (const FIELDTYPE *field, const UT_Vector3 &totaldiv, int slicenum, UT_Vector3 &minvxl, UT_Vector3 &maxvxl)
 
template<typename FIELDTYPE >
bool SIMfieldUtilsGetSliceBorder (const FIELDTYPE *field, int a_slice, int b_slice, UT_Vector3 &minvxl, UT_Vector3 &maxvxl)
 
template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetDivisionsNoSlice (const FIELDTYPE *field)
 
template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetDivisions (const FIELDTYPE *field)
 
template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetSizeNoSlice (const FIELDTYPE *field)
 
template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetSize (const FIELDTYPE *field)
 
template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetCenter (const FIELDTYPE *field)
 
template<typename FIELDTYPE , typename F2 >
void SIMfieldUtilsMatch (FIELDTYPE *field, const F2 *srcfield)
 
void SIMfieldUtilsStealFields (SIM_RawIndexField **raw, SIM_IndexField *field)
 
void SIMfieldUtilsStealFields (SIM_RawField **raw, SIM_ScalarField *field)
 
void SIMfieldUtilsStealFields (SIM_RawField **raw, SIM_VectorField *field)
 
void SIMfieldUtilsStealFields (SIM_RawField **raw, SIM_MatrixField *field)
 
template<typename RAWFIELD >
void SIMfieldUtilsExchangeFields (const char *address, int port, RAWFIELD *dest, RAWFIELD *src, int slicenum, int offx, int offy, int offz, UT_Vector3 olddiv, UT_Vector3 newdiv, UT_Vector3 slicediv, UT_Vector3 overlapneg, UT_Vector3 overlappos)
 
void SIMfieldUtilsCopyWithOffset (SIM_IndexField *field, SIM_RawIndexField **raw, int offx, int offy, int offz, bool keepdata, UT_Vector3 olddivvec, UT_Vector3 newdivvec, const char *address, int port)
 
void SIMfieldUtilsCopyWithOffset (SIM_ScalarField *field, SIM_RawField **raw, int offx, int offy, int offz, bool keepdata, UT_Vector3 olddivvec, UT_Vector3 newdivvec, const char *address, int port)
 
void SIMfieldUtilsCopyWithOffset (SIM_VectorField *field, SIM_RawField **raw, int offx, int offy, int offz, bool keepdata, UT_Vector3 olddivvec, UT_Vector3 newdivvec, const char *address, int port)
 
void SIMfieldUtilsCopyWithOffset (SIM_MatrixField *field, SIM_RawField **raw, int offx, int offy, int offz, bool keepdata, UT_Vector3 olddivvec, UT_Vector3 newdivvec, const char *address, int port)
 
template<typename FIELDTYPE >
void SIMfieldUtilsResizeKeepDataAndSnap (FIELDTYPE *field, UT_Vector3 size, UT_Vector3 center, bool keepdata, const char *address, int port, bool &snapvalid, UT_Vector3 &snapsize, UT_Vector3 &snapcenter)
 
template<typename FIELDTYPE >
void SIMfieldUtilsResizeKeepData (FIELDTYPE *field, UT_Vector3 size, UT_Vector3 center, bool keepdata, const char *address, int port)
 

Function Documentation

template<typename FIELDTYPE >
bool SIMfieldUtilsComputeSlice ( const FIELDTYPE *  field,
const UT_Vector3 totaldiv,
int  slicenum,
UT_Vector3 minvxl,
UT_Vector3 maxvxl 
)

Definition at line 377 of file SIM_FieldUtils.h.

bool SIMfieldUtilsComputeSliceWithBorder ( const UT_Vector3 slice,
const UT_Vector3 totaldiv,
UT_Vector3  overlapneg,
UT_Vector3  overlappos,
int  slicenum,
UT_Vector3 minvxl,
UT_Vector3 maxvxl 
)
inline

Returns true if there is a slice to be performed. The slice is the half inclusive interval [minvxl, maxvxl)

Definition at line 292 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
bool SIMfieldUtilsComputeSliceWithBorder ( const FIELDTYPE *  field,
const UT_Vector3 totaldiv,
UT_Vector3  overlapneg,
UT_Vector3  overlappos,
int  slicenum,
UT_Vector3 minvxl,
UT_Vector3 maxvxl 
)

Definition at line 367 of file SIM_FieldUtils.h.

void SIMfieldUtilsCopyWithOffset ( SIM_IndexField field,
SIM_RawIndexField **  raw,
int  offx,
int  offy,
int  offz,
bool  keepdata,
UT_Vector3  olddivvec,
UT_Vector3  newdivvec,
const char *  address,
int  port 
)
inline

Definition at line 757 of file SIM_FieldUtils.h.

void SIMfieldUtilsCopyWithOffset ( SIM_ScalarField field,
SIM_RawField **  raw,
int  offx,
int  offy,
int  offz,
bool  keepdata,
UT_Vector3  olddivvec,
UT_Vector3  newdivvec,
const char *  address,
int  port 
)
inline

Definition at line 792 of file SIM_FieldUtils.h.

void SIMfieldUtilsCopyWithOffset ( SIM_VectorField field,
SIM_RawField **  raw,
int  offx,
int  offy,
int  offz,
bool  keepdata,
UT_Vector3  olddivvec,
UT_Vector3  newdivvec,
const char *  address,
int  port 
)
inline

Definition at line 826 of file SIM_FieldUtils.h.

void SIMfieldUtilsCopyWithOffset ( SIM_MatrixField field,
SIM_RawField **  raw,
int  offx,
int  offy,
int  offz,
bool  keepdata,
UT_Vector3  olddivvec,
UT_Vector3  newdivvec,
const char *  address,
int  port 
)
inline

Definition at line 863 of file SIM_FieldUtils.h.

template<typename RAWFIELD >
void SIMfieldUtilsExchangeFields ( const char *  address,
int  port,
RAWFIELD *  dest,
RAWFIELD *  src,
int  slicenum,
int  offx,
int  offy,
int  offz,
UT_Vector3  olddiv,
UT_Vector3  newdiv,
UT_Vector3  slicediv,
UT_Vector3  overlapneg,
UT_Vector3  overlappos 
)
template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetCenter ( const FIELDTYPE *  field)

Definition at line 652 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetDivisions ( const FIELDTYPE *  field)

Definition at line 532 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetDivisionsNoSlice ( const FIELDTYPE *  field)

Definition at line 415 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetSize ( const FIELDTYPE *  field)

Definition at line 625 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
UT_Vector3 SIMfieldUtilsGetSizeNoSlice ( const FIELDTYPE *  field)

Definition at line 549 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
bool SIMfieldUtilsGetSliceBorder ( const FIELDTYPE *  field,
int  a_slice,
int  b_slice,
UT_Vector3 minvxl,
UT_Vector3 maxvxl 
)

Returns true if there is any overlap between the two slices. [minvxl, maxvxl) is the region of overlap. This is the intersection of the two slice fields.

Definition at line 390 of file SIM_FieldUtils.h.

template<typename FIELDTYPE , typename F2 >
void SIMfieldUtilsMatch ( FIELDTYPE *  field,
const F2 *  srcfield 
)

Definition at line 689 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
void SIMfieldUtilsResizeKeepData ( FIELDTYPE *  field,
UT_Vector3  size,
UT_Vector3  center,
bool  keepdata,
const char *  address,
int  port 
)

Definition at line 1139 of file SIM_FieldUtils.h.

template<typename FIELDTYPE >
void SIMfieldUtilsResizeKeepDataAndSnap ( FIELDTYPE *  field,
UT_Vector3  size,
UT_Vector3  center,
bool  keepdata,
const char *  address,
int  port,
bool &  snapvalid,
UT_Vector3 snapsize,
UT_Vector3 snapcenter 
)

Definition at line 904 of file SIM_FieldUtils.h.

void SIMfieldUtilsStealFields ( SIM_RawIndexField **  raw,
SIM_IndexField field 
)
inline

Definition at line 718 of file SIM_FieldUtils.h.

void SIMfieldUtilsStealFields ( SIM_RawField **  raw,
SIM_ScalarField field 
)
inline

Definition at line 724 of file SIM_FieldUtils.h.

void SIMfieldUtilsStealFields ( SIM_RawField **  raw,
SIM_VectorField field 
)
inline

Definition at line 730 of file SIM_FieldUtils.h.

void SIMfieldUtilsStealFields ( SIM_RawField **  raw,
SIM_MatrixField field 
)
inline

Definition at line 737 of file SIM_FieldUtils.h.