This class implements the shallow sand equation to simulate dry granular flows. For more details, refer to "Shallow Sand Equations: Real-Time Height Field Simulation of Dry Granular Flows" by Zhu et al.[2021], IEEE TVCG.
More...
|
| | GranularMedia () |
| |
| | ~GranularMedia () |
| |
| | DEF_VAR (Coord3D, Origin, Coord3D(0), "") |
| |
| | DEF_VAR (uint, Width, 64, "") |
| |
| | DEF_VAR (uint, Height, 64, "") |
| |
| | DEF_VAR (Real, Depth, 1.0f, "Depth") |
| |
| | DEF_VAR (Real, DepthOfDiluteLayer, 0.7f, "Depth of the dilute layer") |
| |
| | DEF_VAR (Real, CoefficientOfDragForce, 0.7f, "The drag force coefficient") |
| |
| | DEF_VAR (Real, CoefficientOfFriction, 0.95f, "The frictional coefficient exerted on the dilute layer") |
| |
| | DEF_VAR (Real, Spacing, 1, "Grid spacing") |
| |
| | DEF_VAR (Real, Gravity, -9.8, "") |
| |
| | DEF_ARRAY2D_STATE (Real, LandScape, DeviceType::GPU, "") |
| |
| | DEF_ARRAY2D_STATE (Coord4D, Grid, DeviceType::GPU, "") |
| |
| | DEF_ARRAY2D_STATE (Coord4D, GridNext, DeviceType::GPU, "") |
| |
| | DEF_INSTANCE_STATE (HeightField< TDataType >, HeightField, "Topology") |
| |
| | DEF_INSTANCE_STATE (HeightField< TDataType >, InitialHeightField, "Topology") |
| |
| | Node () |
| |
| | ~Node () override |
| |
| void | setName (std::string name) |
| |
| std::string | getName () override |
| |
| virtual std::string | getNodeType () |
| |
| bool | isAutoSync () |
| |
| bool | isAutoHidden () |
| |
| void | setAutoSync (bool con) |
| | Whether the node can be automatically synchronized when its ancestor is updated.
|
| |
| void | setAutoHidden (bool con) |
| |
| virtual bool | isActive () |
| | Check the state of dynamics.
|
| |
| virtual void | setActive (bool active) |
| | Set the state of dynamics.
|
| |
| virtual bool | isVisible () |
| | Check the visibility of context.
|
| |
| virtual void | setVisible (bool visible) |
| | Set the visibility of context.
|
| |
| virtual Real | getDt () |
| | Simulation timestep.
|
| |
| void | setDt (Real dt) |
| |
| void | setSceneGraph (SceneGraph *scn) |
| |
| SceneGraph * | getSceneGraph () |
| |
| std::vector< NodePort * > & | getImportNodes () |
| |
| std::vector< NodePort * > & | getExportNodes () |
| |
| bool | addModule (std::shared_ptr< Module > module) |
| | Add a module to m_module_list and other special module lists.
|
| |
| bool | deleteModule (std::shared_ptr< Module > module) |
| |
| template<class TModule> |
| bool | addModule (std::shared_ptr< TModule > tModule) |
| | Add a speical kind of module.
|
| |
| template<class TModule> |
| bool | deleteModule (std::shared_ptr< TModule > tModule) |
| |
| std::list< std::shared_ptr< Module > > & | getModuleList () |
| |
| bool | hasModule (std::string name) |
| |
| std::shared_ptr< Module > | getModule (std::string name) |
| | Get a module by its name.
|
| |
| template<class TModule> |
| std::shared_ptr< TModule > | getModule () |
| | Get the Module by the module class name.
|
| |
| template<class TModule> |
| std::shared_ptr< TModule > | getModule (std::string name) |
| |
| std::shared_ptr< Pipeline > | resetPipeline () |
| |
| std::shared_ptr< AnimationPipeline > | animationPipeline () |
| |
| std::shared_ptr< GraphicsPipeline > | graphicsPipeline () |
| |
| template<class TModule> |
| std::shared_ptr< TModule > | addModule (std::string name) |
| |
| void | update () |
| | Called every time interval.
|
| |
| void | updateGraphicsContext () |
| |
| void | reset () |
| |
| virtual NBoundingBox | boundingBox () |
| |
| bool | connect (NodePort *nPort) |
| | Depth-first tree traversal.
|
| |
| bool | disconnect (NodePort *nPort) |
| |
| bool | attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override |
| | Attach a field to Node.
|
| |
| std::vector< NodePort * > & | getAllNodePorts () |
| |
| uint | sizeOfNodePorts () |
| |
| uint | sizeOfImportNodes () const |
| |
| uint | sizeOfExportNodes () const |
| |
| void | setForceUpdate (bool b) |
| |
| | DEF_VAR_STATE (Real, ElapsedTime, 0, "Elapsed Time") |
| |
| | DEF_VAR_STATE (Real, TimeStep, Real(0.033), "Time step size") |
| |
| | DEF_VAR_STATE (uint, FrameNumber, 0, "Frame number") |
| |
| | 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::GranularMedia< TDataType >
This class implements the shallow sand equation to simulate dry granular flows. For more details, refer to "Shallow Sand Equations: Real-Time Height Field Simulation of Dry Granular Flows" by Zhu et al.[2021], IEEE TVCG.
Definition at line 30 of file GranularMedia.h.