FluidSimulationWidget class

A widget that renders a fluid simulation.

The simulation is based on double-density relaxation and supports interactivity via tap or mouse hover and device orientation.

Ported from LÖVE Fluid Simulation with significant help from Claude.

See also:

Inheritance

Constructors

FluidSimulationWidget.new({Key? key, Color? color, int particleCount = kDefaultParticleCount, double stiffness = kDefaultStiffness, double stiffnessNear = kDefaultStiffnessNear, double restDensity = kDefaultRestDensity, double interactionRadius = kDefaultInteractionRadius, double gravityMagnitude = kDefaultGravityMagnitude, RenderMode renderMode = kDefaultRenderMode, double gradientRadius = kDefaultGradientRadius, bool pointerEnabled = true, bool orientationEnabled = true, Widget? child})
const

Properties

child Widget?
An optional child widget to render UI elements on top of the fluid simulation.
final
color Color?
The color of the fluid.
final
gradientRadius double
The radius of the density gradient used for rendering blobs.
final
gravityMagnitude double
The magnitude of the gravity force applied to the particles.
final
hashCode int
The hash code for this object.
no setterinherited
interactionRadius double
The radius around a particle in which it interacts with neighboring particles.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
orientationEnabled bool
Whether gravity is determined by the device orientation.
final
particleCount int
The number of particles in the simulation.
final
pointerEnabled bool
Whether the fluid particles are affected by tap or mouse hover.
final
renderMode RenderMode
The render mode of the particles.
final
restDensity double
The rest density of the fluid.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
stiffness double
The stiffness constant for the pressure constraint.
final
stiffnessNear double
The stiffness constant for the near-pressure constraint.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<FluidSimulationWidget>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited