Make3.Renderer/Domain/RenderPart/RenderPartBase.cs
2025-06-28 03:00:25 +03:00

47 lines
1.3 KiB
C#

using Domain.Interfaces;
//using Make3.CommonTypes.BinaryMask;
using Make3.CommonTypes.Interfaces.Matrices;
namespace Domain.RenderPart;
public abstract class RenderPartBase : IFrameRender
{
protected readonly IEnumerable<ILayer> _layers;
protected uint _row;
protected uint _col;
protected IMatrixAbstractFactory _matrixAbstractFactory;
public Guid RenderId { get; private set; }
protected RenderPartBase(IMatrixAbstractFactory matrixAbstractFactory, IEnumerable<ILayer> layers, uint row, uint col, Guid renderId)
{
_matrixAbstractFactory = matrixAbstractFactory;
_layers = layers;
_row = row;
_col = col;
RenderId = renderId;
}
public abstract Task<IEnumerable<ExpIniFileGenerator.FrameExpInfo>> Execute(CancellationToken cancellationToken);
public abstract long EstimateMemoryUsage();
protected abstract Task RenderImage();
protected virtual Task<ExpIniFileGenerator.FrameExpInfo> CreateFrameInfo()
{
throw new NotImplementedException();
return Task.FromResult(new ExpIniFileGenerator.FrameExpInfo());
}
protected virtual uint SetFrameNumber(uint row, uint column, uint columnsInRow)
{
return column + (row * columnsInRow);
}
protected Task SaveFrame()
{
return Task.CompletedTask;
}
}