private void GenerateFilledSprite(VertexHelper toFill, bool preserveAspect)
{
toFill.Clear();
if (this.m_FillAmount >= 0.001f)
{
Vector4 drawingDimensions = this.GetDrawingDimensions(preserveAspect);
Vector4 vector2 = (this.activeSprite == null) ? Vector4.zero : DataUtility.GetOuterUV(this.activeSprite);
UIVertex.simpleVert.color = this.color;
float x = vector2.x;
float y = vector2.y;
float z = vector2.z;
float w = vector2.w;
if ((this.m_FillMethod == FillMethod.Horizontal) || (this.m_FillMethod == FillMethod.Vertical))
{
if (this.fillMethod == FillMethod.Horizontal)
{
float num5 = (z - x) * this.m_FillAmount;
if (this.m_FillOrigin == 1)
{
drawingDimensions.x = drawingDimensions.z - ((drawingDimensions.z - drawingDimensions.x) * this.m_FillAmount);
x = z - num5;
}
else
{
drawingDimensions.z = drawingDimensions.x + ((drawingDimensions.z - drawingDimensions.x) * this.m_FillAmount);
z = x + num5;
}
}
else if (this.fillMethod == FillMethod.Vertical)
{
float num6 = (w - y) * this.m_FillAmount;
if (this.m_FillOrigin == 1)
{
drawingDimensions.y = drawingDimensions.w - ((drawingDimensions.w - drawingDimensions.y) * this.m_FillAmount);
y = w - num6;
}
else
{
drawingDimensions.w = drawingDimensions.y + ((drawingDimensions.w - drawingDimensions.y) * this.m_FillAmount);
w = y + num6;
}
}
}
s_Xy[0] = (Vector3) new Vector2(drawingDimensions.x, drawingDimensions.y);
s_Xy[1] = (Vector3) new Vector2(drawingDimensions.x, drawingDimensions.w);
s_Xy[2] = (Vector3) new Vector2(drawingDimensions.z, drawingDimensions.w);
s_Xy[3] = (Vector3) new Vector2(drawingDimensions.z, drawingDimensions.y);
s_Uv[0] = (Vector3) new Vector2(x, y);
s_Uv[1] = (Vector3) new Vector2(x, w);
s_Uv[2] = (Vector3) new Vector2(z, w);
s_Uv[3] = (Vector3) new Vector2(z, y);
if (((this.m_FillAmount < 1f) && (this.m_FillMethod != FillMethod.Horizontal)) && (this.m_FillMethod != FillMethod.Vertical))
{
if (this.fillMethod == FillMethod.Radial90)
{
if (RadialCut(s_Xy, s_Uv, this.m_FillAmount, this.m_FillClockwise, this.m_FillOrigin))
{
AddQuad(toFill, s_Xy, this.color, s_Uv);
}
}
else if (this.fillMethod == FillMethod.Radial180)
{
for (int i = 0; i < 2; i++)
{
float num8;
float num9;
float num10;
float num11;
int num12 = (this.m_FillOrigin <= 1) ? 0 : 1;
if ((this.m_FillOrigin == 0) || (this.m_FillOrigin == 2))
{
num10 = 0f;
num11 = 1f;
if (i == num12)
{
num8 = 0f;
num9 = 0.5f;
}
else
{
num8 = 0.5f;
num9 = 1f;
}
}
else
{
num8 = 0f;
num9 = 1f;
if (i == num12)
{
num10 = 0.5f;
num11 = 1f;
}
else
{
num10 = 0f;
num11 = 0.5f;
}
}
s_Xy[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num8);
s_Xy[1].x = s_Xy[0].x;
s_Xy[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num9);
s_Xy[3].x = s_Xy[2].x;
s_Xy[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num10);
s_Xy[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num11);
s_Xy[2].y = s_Xy[1].y;
s_Xy[3].y = s_Xy[0].y;
s_Uv[0].x = Mathf.Lerp(x, z, num8);
s_Uv[1].x = s_Uv[0].x;
s_Uv[2].x = Mathf.Lerp(x, z, num9);
s_Uv[3].x = s_Uv[2].x;
s_Uv[0].y = Mathf.Lerp(y, w, num10);
s_Uv[1].y = Mathf.Lerp(y, w, num11);
s_Uv[2].y = s_Uv[1].y;
s_Uv[3].y = s_Uv[0].y;
float num13 = !this.m_FillClockwise ? ((this.m_FillAmount * 2f) - (1 - i)) : ((this.fillAmount * 2f) - i);
if (RadialCut(s_Xy, s_Uv, Mathf.Clamp01(num13), this.m_FillClockwise, ((i + this.m_FillOrigin) + 3) % 4))
{
AddQuad(toFill, s_Xy, this.color, s_Uv);
}
}
}
else if (this.fillMethod == FillMethod.Radial360)
{
for (int j = 0; j < 4; j++)
{
float num15;
float num16;
float num17;
float num18;
if (j < 2)
{
num15 = 0f;
num16 = 0.5f;
}
else
{
num15 = 0.5f;
num16 = 1f;
}
switch (j)
{
case 0:
case 3:
num17 = 0f;
num18 = 0.5f;
break;
default:
num17 = 0.5f;
num18 = 1f;
break;
}
s_Xy[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num15);
s_Xy[1].x = s_Xy[0].x;
s_Xy[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num16);
s_Xy[3].x = s_Xy[2].x;
s_Xy[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num17);
s_Xy[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num18);
s_Xy[2].y = s_Xy[1].y;
s_Xy[3].y = s_Xy[0].y;
s_Uv[0].x = Mathf.Lerp(x, z, num15);
s_Uv[1].x = s_Uv[0].x;
s_Uv[2].x = Mathf.Lerp(x, z, num16);
s_Uv[3].x = s_Uv[2].x;
s_Uv[0].y = Mathf.Lerp(y, w, num17);
s_Uv[1].y = Mathf.Lerp(y, w, num18);
s_Uv[2].y = s_Uv[1].y;
s_Uv[3].y = s_Uv[0].y;
float num19 = !this.m_FillClockwise ? ((this.m_FillAmount * 4f) - (3 - ((j + this.m_FillOrigin) % 4))) : ((this.m_FillAmount * 4f) - ((j + this.m_FillOrigin) % 4));
if (RadialCut(s_Xy, s_Uv, Mathf.Clamp01(num19), this.m_FillClockwise, (j + 2) % 4))
{
AddQuad(toFill, s_Xy, this.color, s_Uv);
}
}
}
}
else
{
AddQuad(toFill, s_Xy, this.color, s_Uv);
}
}
}