sandpypi/Sand.App/ISimulationBackend.cs

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);
}