Fusion360-Addons/usr/Src/Core/pFluid/pFluidEmitterDesc.cpp
2021-10-31 19:39:29 +01:00

53 lines
1.4 KiB
C++

#include <StdAfx.h>
#include "vtPhysXAll.h"
#ifdef HAS_FLUIDS
pFluidEmitterDesc::pFluidEmitterDesc()
{
setToDefault();
}
pFluidEmitterDesc::~pFluidEmitterDesc()
{
}
void pFluidEmitterDesc::setToDefault()
{
frameShape = NULL;
type = (pEmitterType)(NX_FE_CONSTANT_PRESSURE);
maxParticles = 0;
shape = (pEmitterShape)(NX_FE_RECTANGULAR);
dimensionX = 0.25f;
dimensionY = 0.25f;
randomAngle = 0.0f;
randomPos = VxVector(0,0,0);
fluidVelocityMagnitude = 1.0f;
rate = 100.0f;
particleLifetime = 0.0f;
repulsionCoefficient = 1.0f;
flags = (pFluidEmitterFlag)(NX_FEF_ENABLED|NX_FEF_VISUALIZATION|NX_FEF_ADD_BODY_VELOCITY);
}
bool pFluidEmitterDesc::isValid() const
{
if (dimensionX < 0.0f) return false;
if (dimensionY < 0.0f) return false;
if (randomPos.x < 0.0f) return false;
if (randomPos.y < 0.0f) return false;
if (randomPos.z < 0.0f) return false;
if (randomAngle < 0.0f) return false;
if (!(((shape & NX_FE_ELLIPSE) > 0) ^ ((shape & NX_FE_RECTANGULAR) > 0))) return false;
if (!(((type & NX_FE_CONSTANT_FLOW_RATE) > 0) ^ ((type & NX_FE_CONSTANT_PRESSURE) > 0))) return false;
if (rate < 0.0f) return false;
if (fluidVelocityMagnitude < 0.0f) return false;
if (particleLifetime < 0.0f) return false;
if (repulsionCoefficient < 0.0f) return false;
return true;
}
#endif