This is an implementation of the iterative density solver integrated into the Position Based Dynamics framework.
More...
|
| IterativeDensitySolver () |
|
| ~IterativeDensitySolver () override |
|
| DEF_VAR_IN (Real, TimeStep, "Time Step") |
|
| DEF_ARRAY_IN (Coord, Position, DeviceType::GPU, "Input particle position") |
| Particle positions.
|
|
| DEF_ARRAY_IN (Coord, Velocity, DeviceType::GPU, "Input particle velocity") |
| Particle velocities.
|
|
| DEF_ARRAY_IN (Attribute, Attribute, DeviceType::GPU, "Particle attribute") |
| Attribute Particle attribute.
|
|
| DEF_ARRAYLIST_IN (int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids") |
| Neighboring particles' ids.
|
|
| DEF_ARRAY_OUT (Real, Density, DeviceType::GPU, "Final particle density") |
| Final particle densities.
|
|
| DEF_VAR (int, IterationNumber, 5, "Iteration number of the PBD solver") |
|
| DEF_VAR (Real, RestDensity, 1000, "Reference density") |
|
| DEF_VAR (Real, Kappa, Real(1), "") |
|
void | takeOneIteration () |
|
void | updateVelocity () |
|
Public Member Functions inherited from dyno::ParticleApproximation< TDataType > |
| ParticleApproximation () |
|
virtual | ~ParticleApproximation () |
|
| DECLARE_ENUM (EKernelType, KT_Smooth=0, KT_Spiky=1) |
|
void | compute () override |
|
| DEF_VAR_IN (Real, SmoothingLength, "Smoothing Length") |
|
| DEF_VAR_IN (Real, SamplingDistance, "Particle sampling distance") |
|
| DEF_ENUM (EKernelType, KernelType, EKernelType::KT_Spiky, "Rendering mode") |
|
| ComputeModule () |
|
| ~ComputeModule () override |
|
std::string | getModuleType () override |
|
| Module (std::string name="default") |
|
| ~Module (void) override |
|
bool | initialize () |
|
void | update () |
|
void | setName (std::string name) |
|
std::string | getName () override |
|
virtual void | setParentNode (Node *node) |
| Set the parent node.
|
|
Node * | getParentNode () |
|
SceneGraph * | getSceneGraph () |
|
bool | isInitialized () |
|
bool | attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override |
| Attach a field to Base.
|
|
bool | isInputComplete () |
| Check the completeness of input fields.
|
|
bool | isOutputCompete () |
|
| DEF_VAR (bool, ForceUpdate, false, "") |
|
void | setUpdateAlways (bool b) |
| Set the update strategy for the module.
|
|
| OBase () |
|
| ~OBase () override |
|
virtual std::string | caption () |
| Return the caption.
|
|
virtual bool | captionVisible () |
| Whether to hide the caption in the GUI.
|
|
virtual std::string | description () |
| Return a description for the node or module, override this function to support user-defined description.
|
|
bool | addField (FBase *data) |
| Add a field to Base FieldID will be set to the name of Field by default.
|
|
bool | addField (FieldID name, FBase *data) |
| Add a field to Base.
|
|
bool | addFieldAlias (FieldID name, FBase *data) |
|
bool | addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias) |
|
bool | findField (FBase *data) |
| Find a field by its pointer.
|
|
bool | findFieldAlias (const FieldID name) |
| Find a field by its name.
|
|
bool | findFieldAlias (const FieldID name, FieldMap &fieldAlias) |
| Find a field in fieldAlias by its name This function is typically called by other functions.
|
|
bool | removeField (FBase *data) |
| Remove a field by its pointer.
|
|
bool | removeFieldAlias (const FieldID name) |
| Remove a field by its name.
|
|
bool | removeFieldAlias (const FieldID name, FieldMap &fieldAlias) |
|
FBase * | getField (const FieldID name) |
| Return a field by its name.
|
|
std::vector< FBase * > & | getAllFields () |
|
template<typename T> |
T * | getField (FieldID name) |
|
bool | isAllFieldsReady () |
| Check the completeness of all required fields.
|
|
std::vector< FieldID > | getFieldAlias (FBase *data) |
|
int | getFieldAliasCount (FBase *data) |
|
void | setBlockCoord (float x, float y) |
|
float | bx () |
|
float | by () |
|
bool | findInputField (FBase *field) |
|
bool | addInputField (FBase *field) |
|
bool | removeInputField (FBase *field) |
|
std::vector< FBase * > & | getInputFields () |
|
bool | findOutputField (FBase *field) |
|
bool | addOutputField (FBase *field) |
|
bool | addToOutput (FBase *field) |
|
bool | removeOutputField (FBase *field) |
|
bool | removeFromOutput (FBase *field) |
|
std::vector< FBase * > & | getOutputFields () |
|
bool | findParameter (FBase *field) |
|
bool | addParameter (FBase *field) |
|
bool | removeParameter (FBase *field) |
|
std::vector< FBase * > & | getParameters () |
|
| Object () |
|
virtual | ~Object () |
|
ObjectId | objectId () |
|
template<typename TDataType>
class dyno::IterativeDensitySolver< TDataType >
This is an implementation of the iterative density solver integrated into the Position Based Dynamics framework.
For details, refer to "Position Based Fluids" by Macklin and MĄ§uller, ACM TOG, 2013
Definition at line 33 of file IterativeDensitySolver.h.