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))
);
}