Add circle shape calculation for shear

This commit is contained in:
RedikultsevEvg
2025-07-20 21:45:07 +05:00
parent ddf075bffd
commit 6e8f4bcc58
40 changed files with 488 additions and 99 deletions

View File

@@ -0,0 +1,33 @@
using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Infrastructures.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperCommon.Models.Shapes
{
public class ShapeCloneStrategy : ICloneStrategy<IShape>
{
private ICloneStrategy<IRectangleShape> rectangleCloneStrategy;
private ICloneStrategy<ICircleShape> circleCloneStrategy;
public IShape GetClone(IShape sourceObject)
{
if (sourceObject is IRectangleShape rectangleShape)
{
rectangleCloneStrategy ??= new RectangleShapeCloneStrategy();
return rectangleCloneStrategy.GetClone(rectangleShape);
}
else if (sourceObject is ICircleShape circleShape)
{
circleCloneStrategy ??= new CircleShapeCloneStrategy();
return circleCloneStrategy.GetClone(circleShape);
}
else
{
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(sourceObject));
}
}
}
}