25 lines
1.1 KiB
C#
25 lines
1.1 KiB
C#
using Sand.Core;
|
|
|
|
namespace Sand.App;
|
|
|
|
internal interface ISimulationBackend
|
|
{
|
|
string BackendName { get; }
|
|
SimulationSettings Settings { get; }
|
|
AppSimulationFrameStats FrameStats { get; }
|
|
int Frame { get; }
|
|
int ParticleCount { get; }
|
|
ReadOnlySpan<byte> BuildRgbaFrame();
|
|
void Step(float dt);
|
|
void Clear();
|
|
void RefreshSettingsState();
|
|
void ClearParticleCircle(int centerX, int centerY, int brushRadius);
|
|
void ClearParticlePourAtPixel(int centerX, int centerY, int brushRadius, int maxParticles, int seed);
|
|
void CreateParticleCircle(int centerX, int centerY, int brushRadius, string particleId);
|
|
void CreateParticlePourAtPixel(int centerX, int centerY, int brushRadius, string particleId, int maxParticles, int seed);
|
|
void ApplyWindBrushAtPixel(int centerX, int centerY, int brushRadius, float forceX, float forceY);
|
|
void ApplyAirBrushAtPixel(int centerX, int centerY, int brushRadius, float forceX, float forceY);
|
|
void ApplyGravityBrushAtPixel(int centerX, int centerY, int brushRadius, float strength);
|
|
void ApplyRepulsorBrushAtPixel(int centerX, int centerY, int brushRadius, float strength);
|
|
}
|