using Decal.Interop.D3DService;

namespace Decal.Adapter.Wrappers;

public class D3DService : GenericDisposableWrapper<CService>
{
	internal D3DService(CService obj)
		: base(obj)
	{
	}

	protected override void Dispose(bool userCalled)
	{
		base.Dispose(userCalled);
	}

	public D3DObj NewD3DObj()
	{
		return new D3DObj(base.Wrapped.NewD3DObj());
	}

	public D3DObj PointToObject(int guid, int color)
	{
		return new D3DObj(base.Wrapped.PointToObject(guid, color));
	}

	public D3DObj PointToCoords(float lat, float lng, float alt, int color)
	{
		return new D3DObj(base.Wrapped.PointToCoords(lat, lng, alt, color));
	}

	public D3DObj MarkObjectWithIcon(int guid, int icon)
	{
		return new D3DObj(base.Wrapped.MarkObjectWithIcon(guid, icon));
	}

	public D3DObj MarkObjectWithShape(int guid, D3DShape shape, int color)
	{
		return new D3DObj(base.Wrapped.MarkObjectWithShape(guid, (eShape)shape, color));
	}

	public D3DObj MarkObjectWithShapeFromFile(int guid, string filename, int color)
	{
		return new D3DObj(base.Wrapped.MarkObjectWithShapeFromFile(guid, filename, color));
	}

	public D3DObj MarkObjectWith2DText(int guid, string szText, string szFont, int options)
	{
		return new D3DObj(base.Wrapped.MarkObjectWith2DText(guid, szText, szFont, options));
	}

	public D3DObj MarkObjectWith3DText(int guid, string szText, string szFont, int options)
	{
		return new D3DObj(base.Wrapped.MarkObjectWith3DText(guid, szText, szFont, options));
	}

	public D3DObj MarkCoordsWithIcon(float lat, float lng, float alt, int icon)
	{
		return new D3DObj(base.Wrapped.MarkCoordsWithIcon(lat, lng, alt, icon));
	}

	public D3DObj MarkCoordsWithIconFromFile(float lat, float lng, float alt, string file)
	{
		return new D3DObj(base.Wrapped.MarkCoordsWithIconFromFile(lat, lng, alt, file));
	}

	public D3DObj MarkCoordsWithShape(float lat, float lng, float alt, D3DShape shape, int color)
	{
		return new D3DObj(base.Wrapped.MarkCoordsWithShape(lat, lng, alt, (eShape)shape, color));
	}

	public D3DObj MarkCoordsWithShapeFromFile(float lat, float lng, float alt, string file, int color)
	{
		return new D3DObj(base.Wrapped.MarkCoordsWithShapeFromFile(lat, lng, alt, file, color));
	}

	public D3DObj MarkCoordsWith2DText(float lat, float lng, float alt, string szText, string szFont, int options)
	{
		return new D3DObj(base.Wrapped.MarkCoordsWith2DText(lat, lng, alt, szText, szFont, options));
	}

	public D3DObj MarkCoordsWith3DText(float lat, float lng, float alt, string szText, string szFont, int options)
	{
		return new D3DObj(base.Wrapped.MarkCoordsWith3DText(lat, lng, alt, szText, szFont, options));
	}
}
