Fusion.Engine.Graphics.SpriteLayer.DrawBeam C# (CSharp) Method

DrawBeam() public method

Draws beam.
public DrawBeam ( Texture srv, Vector2 p0, Vector2 p1, Color color0, Color color1, float width, float scale = 1, float offset, int clipRectIndex ) : void
srv Texture
p0 Vector2
p1 Vector2
color0 Color
color1 Color
width float
scale float
offset float
clipRectIndex int
return void
		public void DrawBeam ( Texture srv, Vector2 p0, Vector2 p1, Color color0, Color color1, float width, float scale=1, float offset=0, int clipRectIndex=0 )
		{
			if (p1 == p0) {
				return;
			}

			var origin	=	new Vector3( p0, 0 );
			var basisX	=	new Vector3( p1 - p0, 0 );
			var basisY	=	new Vector3( -basisX.Y, basisX.X, 0 );

			basisY.Normalize();
			basisY *= (width / 2);

			float u0	=	0 * scale - offset;
			float u1	=	1 * scale - offset;

            PushQuad(srv,
                new SpriteVertex( origin - basisY 			, color0, new Vector2(u0, 0)),
                new SpriteVertex( origin - basisY + basisX	, color1, new Vector2(u1, 0)),
                new SpriteVertex( origin + basisY + basisX	, color1, new Vector2(u1, 1)),
                new SpriteVertex( origin + basisY 			, color0, new Vector2(u0, 1)) 
				);
		}