Fusion360-Addons/usr/Include/Core/pFluid/pFluidFlags.h
2021-10-31 19:39:29 +01:00

121 lines
2.8 KiB
C

#ifndef __P_FLUID_FLAGS_
#define __P_FLUID_FLAGS_
/** \addtogroup Fluid
@{
*/
/**
\brief Fluid flags
*/
enum pFluidFlag
{
/**
\brief Enables debug visualization for the NxFluid.
*/
PFF_VISUALIZATION = (1<<0),
/**
\brief Disables scene gravity for the NxFluid.
*/
PFF_DisableGravity = (1<<1),
/**
\brief Enable/disable two way collision of fluid with the rigid body scene.
In either case, fluid is influenced by colliding rigid bodies.
If PFF_CollisionTwoway is not set, rigid bodies are not influenced by
colliding pieces of fluid. Use pFluidDesc.collisionResponseCoefficient to
control the strength of the feedback force on rigid bodies.
@see NxFluidDesc.collisionResponseCoefficient
*/
PFF_CollisionTwoway = (1<<2),
/**
\brief Enable/disable execution of fluid simulation.
*/
PFF_Enabled = (1<<3),
/**
\brief Defines whether this fluid is simulated on the PPU.
*/
PFF_Hardware = (1<<4),
/**
\brief Enable/disable particle priority mode.
If enabled, the oldest particles are deleted to keep a certain budget for
new particles. Note that particles which have equal lifetime can get deleted
at the same time. In order to avoid this, the particle lifetimes
can be varied randomly.
@see pFluidDesc.numReserveParticles
*/
PFF_PriorityMode = (1<<5),
/**
\brief Defines whether the particles of this fluid should be projected to a plane.
This can be used to build 2D fluid applications, for instance. The projection
plane is defined by the parameter pFluidDesc.projectionPlane.
@see pFluidDesc.projectionPlane
*/
PFF_ProjectToPlane = (1<<6),
/**
\brief Forces fluid static mesh cooking format to parameters given by the fluid descriptor.
Currently not implemented!
*/
PFF_ForceStrictCookingFormat = (1<<7),
};
/**
\brief Describes the particle simulation method
Particles can be treated in two ways: either they are simulated considering
interparticular forces (SPH), or they are simulated independently.
In the latter case (with the simulation method set to PFS_NO_PARTICLE_INTERACTION),
you still get collision between particles and static/dynamic shapes, damping,
acceleration due to gravity, and the user force.
*/
enum pFluidSimulationMethod
{
/**
\brief Enable simulation of inter particle forces.
*/
PFS_SPH = (1<<0),
/**
\brief Do not simulate inter particle forces.
*/
PFS_NoParticleInteraction = (1<<1),
/**
\brief Alternate between SPH and simple particles
*/
PFS_MixedMode = (1<<2),
};
/**
\brief The fluid collision method
*/
enum pFluidCollisionMethod
{
/**
\brief collide with static objects
*/
PFCM_Static = (1<<0),
/**
\brief collide with dynamic objects
*/
PFCM_Dynamic = (1<<1),
};
/** @} */
#endif