HDK
|
#include <GAS_SPH.h>
Public Types | |
enum | sphWeight { POLY6, SPIKY, VISCOSITY, SPIKY2, SPIKY5, POLY6_UNSCALED, SPIKY_UNSCALED } |
typedef UT_Array< GA_Offset > | gas_PointList |
Public Member Functions | |
GAS_SPH () | |
~GAS_SPH () | |
bool | initialize (const GU_Detail *gdp, bool fullinit=true, const GA_PointGroup *excludegroup=NULL, fpreal radiusScale=1.0, bool needVolume=true) |
bool | buildNeighbours (const GU_Detail *gdp, fpreal radiusScale=1.0, bool needVolume=true) |
bool | setNeighbours (const GU_Detail *gdp, GU_NeighbourList *list, fpreal radScale=1.0, bool needVolume=true) |
fpreal | sampleF (const UT_Vector3 &p, const GA_ROHandleF &attrib, sphWeight wfunc, fpreal *color=0, bool normalize=false, bool volumeScale=true) const |
fpreal | sampleF (const UT_Vector3 &p, const gas_PointList &point_list, const GA_ROHandleF &attrib, sphWeight wfunc, fpreal *color=0, bool normalize=false, bool volumeScale=true) const |
fpreal | sampleF (const UT_Vector3 &p, UT_FloatArray &floats, sphWeight wfunc, bool volumescale=true, bool normalize=false) const |
fpreal | sampleF (const UT_Vector3 &p, const gas_PointList &point_list, UT_FloatArray &floats, sphWeight wfunc, bool volumescale=true, bool normalize=false) const |
UT_Vector3 | sampleV3 (const UT_Vector3 &p, const GA_ROHandleV3 &attrib, sphWeight wfunc, fpreal *color=0, bool normalize=false) const |
UT_Vector3 | sampleV3 (const UT_Vector3 &p, const gas_PointList &point_list, const GA_ROHandleV3 &attrib, sphWeight wfunc, fpreal *color=0, bool normalize=false) const |
UT_Vector3 | sampleVelocity (const UT_Vector3 &p, sphWeight wfunc, int excludePoint=-1) const |
UT_Vector3 | sampleVelocity (const UT_Vector3 &p, const gas_PointList &ptlist, sphWeight wfunc, int excludePoint=-1) const |
UT_Vector3 | xsphVelocity (int ptnum, sphWeight wfunc, const UT_Vector3Array &velocities, fpreal xsph_constant) const |
fpreal | sampleDensity (const UT_Vector3 &p, sphWeight wfunc, const bool massScale=true) const |
fpreal | sampleDensity (const UT_Vector3 &p, const gas_PointList &ptlist, sphWeight wfunc, const bool massScale=true) const |
void | sampleDoubleDensity (const UT_Vector3 &p, const gas_PointList &ptlist, UT_FloatArray &rad2list, sphWeight wfunc1, sphWeight wfunc2, fpreal &density1, fpreal &density2, const bool massScale=true) const |
fpreal | sampleSurfaceDensity (const UT_Vector3 &p, const GA_ROHandleF &distanceattrib) const |
fpreal | sampleSurfaceDensity (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleF &distanceattrib) const |
fpreal | sampleSurfaceDensity (const UT_Vector3 &p, fpreal surfaceDistance, const bool distanceModifier=false) const |
fpreal | sampleSurfaceDensity (const UT_Vector3 &p, const gas_PointList &ptlist, fpreal surfaceDistance, const bool distanceModifier=false) const |
UT_Vector3 | sampleSurfaceDensityGrad (const UT_Vector3 &p, const GA_ROHandleF &distanceattrib) const |
UT_Vector3 | sampleSurfaceDensityGrad (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleF &distanceattrib) const |
UT_Vector3 | sampleSurfaceDensityGrad (const UT_Vector3 &p) const |
UT_Vector3 | sampleSurfaceDensityGrad (const UT_Vector3 &p, const gas_PointList &ptlist) const |
fpreal | sampleColor (const UT_Vector3 &p, sphWeight wfunc) const |
fpreal | sampleColor (const UT_Vector3 &p, const gas_PointList &ptlist, sphWeight wfunc) const |
UT_Vector3 | colorGradient (const UT_Vector3 &p, sphWeight wfunc) const |
UT_Vector3 | colorGradient (const UT_Vector3 &p, const gas_PointList &ptlist, sphWeight wfunc) const |
UT_Vector3 | colorGradientUnscaled (const UT_Vector3 &p, bool scale=false) const |
UT_Vector3 | colorGradientUnscaled (const UT_Vector3 &p, const gas_PointList &ptlist, bool scale=false) const |
fpreal | colorLaplacian (const UT_Vector3 &p, sphWeight wfunc, const GA_ROHandleR &scaleattrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
fpreal | colorLaplacian (const UT_Vector3 &p, const gas_PointList &ptlist, sphWeight wfunc, const GA_ROHandleR &scaleattrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
UT_Vector3 | gradient (const UT_Vector3 &p, const GA_ROHandleR &attrib, sphWeight wfunc, UT_Vector3 *color=0, bool debugprint=false, const GA_ROHandleR &scaleattrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
UT_Vector3 | gradient (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleR &attrib, sphWeight wfunc, UT_Vector3 *color=0, bool debugprint=false, const GA_ROHandleR &scaleattrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
UT_Vector3 | gradient (const UT_Vector3 &p, const GA_ROHandleV3 &attrib, sphWeight wfunc, int axis, UT_Vector3 *color=0, bool normalize=false) const |
UT_Vector3 | gradient (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleV3 &attrib, sphWeight wfunc, int axis, UT_Vector3 *color=0, bool normalize=false) const |
fpreal | laplacian (const UT_Vector3 &p, const GA_ROHandleR &attrib, sphWeight wfunc, fpreal *color=0) const |
fpreal | laplacian (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleR &attrib, sphWeight wfunc, fpreal *color=0) const |
UT_FloatArray | laplacianF (const UT_Vector3 &p, const GA_ROHandleR &attrib, sphWeight wfunc, int size, fpreal *color=0) const |
UT_FloatArray | laplacianF (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleR &attrib, sphWeight wfunc, int size, fpreal *color=0) const |
UT_Vector3 | laplacianV3 (const UT_Vector3 &p, const GA_ROHandleV3 &attrib, sphWeight wfunc, fpreal *color=0, const GA_ROHandleR &scale_attrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
UT_Vector3 | laplacianV3 (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleV3 &attrib, sphWeight wfunc, fpreal *color=0, const GA_ROHandleR &scale_attrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
UT_Vector3 | dampingValue (const UT_Vector3 &p, const GA_ROHandleV3 &attrib, sphWeight wfunc, UT_Vector3 &point_velocity, fpreal point_density, const GA_ROHandleR &scale_attrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
UT_Vector3 | dampingValue (const UT_Vector3 &p, const gas_PointList &ptlist, const GA_ROHandleV3 &attrib, sphWeight wfunc, UT_Vector3 &point_velocity, fpreal point_density, const GA_ROHandleR &scale_attrib=GA_ROHandleR(), fpreal point_scale=1.0) const |
void | findClosePoints (const UT_Vector3 &p, gas_PointList &ptlist) const |
void | findClosePoints (int ptidx, gas_PointList &ptlist) const |
bool | initVelocityData (bool initKD=false) |
fpreal | getCellWidth () const |
UT_HashGrid< GA_Offset > * | getGrid () const |
Static Public Member Functions | |
static void | missingAttribWarning (SIM_Engine &engine, GAS_SubSolver *solver, const UT_String &objName, const UT_String &geometryName, const UT_String &attribName) |
Protected Member Functions | |
fpreal64 | weight (fpreal64 r2, fpreal64 h, sphWeight wfunc) const |
fpreal64 | dweight (fpreal64 r, fpreal64 h, sphWeight wfunc) const |
fpreal64 | d2weight (fpreal64 r, fpreal64 h, sphWeight wfunc) const |
fpreal64 | scaleddweight (fpreal64 r, fpreal64 h, sphWeight wfunc) const |
typedef UT_Array<GA_Offset> GAS_SPH::gas_PointList |
enum GAS_SPH::sphWeight |
GAS_SPH::GAS_SPH | ( | ) |
GAS_SPH::~GAS_SPH | ( | ) |
bool GAS_SPH::buildNeighbours | ( | const GU_Detail * | gdp, |
fpreal | radiusScale = 1.0 , |
||
bool | needVolume = true |
||
) |
UT_Vector3 GAS_SPH::colorGradient | ( | const UT_Vector3 & | p, |
sphWeight | wfunc | ||
) | const |
UT_Vector3 GAS_SPH::colorGradient | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
sphWeight | wfunc | ||
) | const |
UT_Vector3 GAS_SPH::colorGradientUnscaled | ( | const UT_Vector3 & | p, |
bool | scale = false |
||
) | const |
UT_Vector3 GAS_SPH::colorGradientUnscaled | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
bool | scale = false |
||
) | const |
fpreal GAS_SPH::colorLaplacian | ( | const UT_Vector3 & | p, |
sphWeight | wfunc, | ||
const GA_ROHandleR & | scaleattrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
fpreal GAS_SPH::colorLaplacian | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
sphWeight | wfunc, | ||
const GA_ROHandleR & | scaleattrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
UT_Vector3 GAS_SPH::dampingValue | ( | const UT_Vector3 & | p, |
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
UT_Vector3 & | point_velocity, | ||
fpreal | point_density, | ||
const GA_ROHandleR & | scale_attrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
UT_Vector3 GAS_SPH::dampingValue | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
UT_Vector3 & | point_velocity, | ||
fpreal | point_density, | ||
const GA_ROHandleR & | scale_attrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
void GAS_SPH::findClosePoints | ( | const UT_Vector3 & | p, |
gas_PointList & | ptlist | ||
) | const |
Returns all points close to the given point. Does a search using the points current positions
void GAS_SPH::findClosePoints | ( | int | ptidx, |
gas_PointList & | ptlist | ||
) | const |
Finds all points close to the given point number. If the neighbourlist is built, that will be retrieved directly If it hasn't been built, the point's position will be searched using findClosePoints(Vector)
|
inline |
UT_Vector3 GAS_SPH::gradient | ( | const UT_Vector3 & | p, |
const GA_ROHandleR & | attrib, | ||
sphWeight | wfunc, | ||
UT_Vector3 * | color = 0 , |
||
bool | debugprint = false , |
||
const GA_ROHandleR & | scaleattrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
UT_Vector3 GAS_SPH::gradient | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleR & | attrib, | ||
sphWeight | wfunc, | ||
UT_Vector3 * | color = 0 , |
||
bool | debugprint = false , |
||
const GA_ROHandleR & | scaleattrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
UT_Vector3 GAS_SPH::gradient | ( | const UT_Vector3 & | p, |
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
int | axis, | ||
UT_Vector3 * | color = 0 , |
||
bool | normalize = false |
||
) | const |
UT_Vector3 GAS_SPH::gradient | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
int | axis, | ||
UT_Vector3 * | color = 0 , |
||
bool | normalize = false |
||
) | const |
bool GAS_SPH::initialize | ( | const GU_Detail * | gdp, |
bool | fullinit = true , |
||
const GA_PointGroup * | excludegroup = NULL , |
||
fpreal | radiusScale = 1.0 , |
||
bool | needVolume = true |
||
) |
bool GAS_SPH::initVelocityData | ( | bool | initKD = false | ) |
fpreal GAS_SPH::laplacian | ( | const UT_Vector3 & | p, |
const GA_ROHandleR & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 |
||
) | const |
fpreal GAS_SPH::laplacian | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleR & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 |
||
) | const |
UT_FloatArray GAS_SPH::laplacianF | ( | const UT_Vector3 & | p, |
const GA_ROHandleR & | attrib, | ||
sphWeight | wfunc, | ||
int | size, | ||
fpreal * | color = 0 |
||
) | const |
UT_FloatArray GAS_SPH::laplacianF | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleR & | attrib, | ||
sphWeight | wfunc, | ||
int | size, | ||
fpreal * | color = 0 |
||
) | const |
UT_Vector3 GAS_SPH::laplacianV3 | ( | const UT_Vector3 & | p, |
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 , |
||
const GA_ROHandleR & | scale_attrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
UT_Vector3 GAS_SPH::laplacianV3 | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 , |
||
const GA_ROHandleR & | scale_attrib = GA_ROHandleR() , |
||
fpreal | point_scale = 1.0 |
||
) | const |
|
static |
fpreal GAS_SPH::sampleColor | ( | const UT_Vector3 & | p, |
sphWeight | wfunc | ||
) | const |
fpreal GAS_SPH::sampleColor | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
sphWeight | wfunc | ||
) | const |
fpreal GAS_SPH::sampleDensity | ( | const UT_Vector3 & | p, |
sphWeight | wfunc, | ||
const bool | massScale = true |
||
) | const |
fpreal GAS_SPH::sampleDensity | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
sphWeight | wfunc, | ||
const bool | massScale = true |
||
) | const |
void GAS_SPH::sampleDoubleDensity | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
UT_FloatArray & | rad2list, | ||
sphWeight | wfunc1, | ||
sphWeight | wfunc2, | ||
fpreal & | density1, | ||
fpreal & | density2, | ||
const bool | massScale = true |
||
) | const |
fpreal GAS_SPH::sampleF | ( | const UT_Vector3 & | p, |
const GA_ROHandleF & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 , |
||
bool | normalize = false , |
||
bool | volumeScale = true |
||
) | const |
fpreal GAS_SPH::sampleF | ( | const UT_Vector3 & | p, |
const gas_PointList & | point_list, | ||
const GA_ROHandleF & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 , |
||
bool | normalize = false , |
||
bool | volumeScale = true |
||
) | const |
fpreal GAS_SPH::sampleF | ( | const UT_Vector3 & | p, |
UT_FloatArray & | floats, | ||
sphWeight | wfunc, | ||
bool | volumescale = true , |
||
bool | normalize = false |
||
) | const |
fpreal GAS_SPH::sampleF | ( | const UT_Vector3 & | p, |
const gas_PointList & | point_list, | ||
UT_FloatArray & | floats, | ||
sphWeight | wfunc, | ||
bool | volumescale = true , |
||
bool | normalize = false |
||
) | const |
fpreal GAS_SPH::sampleSurfaceDensity | ( | const UT_Vector3 & | p, |
const GA_ROHandleF & | distanceattrib | ||
) | const |
fpreal GAS_SPH::sampleSurfaceDensity | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleF & | distanceattrib | ||
) | const |
fpreal GAS_SPH::sampleSurfaceDensity | ( | const UT_Vector3 & | p, |
fpreal | surfaceDistance, | ||
const bool | distanceModifier = false |
||
) | const |
fpreal GAS_SPH::sampleSurfaceDensity | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
fpreal | surfaceDistance, | ||
const bool | distanceModifier = false |
||
) | const |
UT_Vector3 GAS_SPH::sampleSurfaceDensityGrad | ( | const UT_Vector3 & | p, |
const GA_ROHandleF & | distanceattrib | ||
) | const |
UT_Vector3 GAS_SPH::sampleSurfaceDensityGrad | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
const GA_ROHandleF & | distanceattrib | ||
) | const |
UT_Vector3 GAS_SPH::sampleSurfaceDensityGrad | ( | const UT_Vector3 & | p | ) | const |
UT_Vector3 GAS_SPH::sampleSurfaceDensityGrad | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist | ||
) | const |
UT_Vector3 GAS_SPH::sampleV3 | ( | const UT_Vector3 & | p, |
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 , |
||
bool | normalize = false |
||
) | const |
UT_Vector3 GAS_SPH::sampleV3 | ( | const UT_Vector3 & | p, |
const gas_PointList & | point_list, | ||
const GA_ROHandleV3 & | attrib, | ||
sphWeight | wfunc, | ||
fpreal * | color = 0 , |
||
bool | normalize = false |
||
) | const |
UT_Vector3 GAS_SPH::sampleVelocity | ( | const UT_Vector3 & | p, |
sphWeight | wfunc, | ||
int | excludePoint = -1 |
||
) | const |
UT_Vector3 GAS_SPH::sampleVelocity | ( | const UT_Vector3 & | p, |
const gas_PointList & | ptlist, | ||
sphWeight | wfunc, | ||
int | excludePoint = -1 |
||
) | const |
bool GAS_SPH::setNeighbours | ( | const GU_Detail * | gdp, |
GU_NeighbourList * | list, | ||
fpreal | radScale = 1.0 , |
||
bool | needVolume = true |
||
) |
UT_Vector3 GAS_SPH::xsphVelocity | ( | int | ptnum, |
sphWeight | wfunc, | ||
const UT_Vector3Array & | velocities, | ||
fpreal | xsph_constant | ||
) | const |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |