//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
namespace ImageSharp.Drawing.Shapes.PolygonClipper
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Runtime.CompilerServices;
using Paths;
///
/// TEdge
///
internal class TEdge
{
#pragma warning disable SA1401 // Field must be private
///
/// The source path, see if we can link this back later
///
internal IPath SourcePath;
///
/// The bot
///
internal System.Numerics.Vector2 Bot;
///
/// The current (updated for every new scanbeam)
///
internal System.Numerics.Vector2 Curr;
///
/// The top
///
internal System.Numerics.Vector2 Top;
///
/// The delta
///
internal System.Numerics.Vector2 Delta;
///
/// The dx
///
internal double Dx;
///
/// The poly type
///
internal PolyType PolyTyp;
///
/// Side only refers to current side of solution poly
///
internal EdgeSide Side;
///
/// 1 or -1 depending on winding direction
///
internal int WindDelta;
///
/// The winding count
///
internal int WindCnt;
///
/// The winding count of the opposite polytype
///
internal int WindCnt2;
///
/// The out index
///
internal int OutIdx;
///
/// The next
///
internal TEdge Next;
///
/// The previous
///
internal TEdge Prev;
///
/// The next in LML
///
internal TEdge NextInLML;
///
/// The next in ael
///
internal TEdge NextInAEL;
///
/// The previous in ael
///
internal TEdge PrevInAEL;
///
/// The next in sel
///
internal TEdge NextInSEL;
///
/// The previous in sel
///
internal TEdge PrevInSEL;
#pragma warning restore SA1401 // Field must be
}
}