protected void SetChildrenAlongAxis(int axis, bool isVertical)
{
float num = base.rectTransform.rect.size[axis];
bool controlSize = (axis != 0) ? this.m_ChildControlHeight : this.m_ChildControlWidth;
bool childForceExpand = (axis != 0) ? this.childForceExpandHeight : this.childForceExpandWidth;
float alignmentOnAxis = base.GetAlignmentOnAxis(axis);
if (isVertical ^ (axis == 1))
{
float num3 = num - ((axis != 0) ? ((float) base.padding.vertical) : ((float) base.padding.horizontal));
for (int i = 0; i < base.rectChildren.Count; i++)
{
float num5;
float num6;
float num7;
RectTransform child = base.rectChildren[i];
this.GetChildSizes(child, axis, controlSize, childForceExpand, out num5, out num6, out num7);
float requiredSpaceWithoutPadding = Mathf.Clamp(num3, num5, (num7 <= 0f) ? num6 : num);
float startOffset = base.GetStartOffset(axis, requiredSpaceWithoutPadding);
if (controlSize)
{
base.SetChildAlongAxis(child, axis, startOffset, requiredSpaceWithoutPadding);
}
else
{
float num10 = (requiredSpaceWithoutPadding - child.sizeDelta[axis]) * alignmentOnAxis;
base.SetChildAlongAxis(child, axis, startOffset + num10);
}
}
}
else
{
float pos = (axis != 0) ? ((float) base.padding.top) : ((float) base.padding.left);
if ((base.GetTotalFlexibleSize(axis) == 0f) && (base.GetTotalPreferredSize(axis) < num))
{
pos = base.GetStartOffset(axis, base.GetTotalPreferredSize(axis) - ((axis != 0) ? ((float) base.padding.vertical) : ((float) base.padding.horizontal)));
}
float t = 0f;
if (base.GetTotalMinSize(axis) != base.GetTotalPreferredSize(axis))
{
t = Mathf.Clamp01((num - base.GetTotalMinSize(axis)) / (base.GetTotalPreferredSize(axis) - base.GetTotalMinSize(axis)));
}
float num13 = 0f;
if ((num > base.GetTotalPreferredSize(axis)) && (base.GetTotalFlexibleSize(axis) > 0f))
{
num13 = (num - base.GetTotalPreferredSize(axis)) / base.GetTotalFlexibleSize(axis);
}
for (int j = 0; j < base.rectChildren.Count; j++)
{
float num15;
float num16;
float num17;
RectTransform transform2 = base.rectChildren[j];
this.GetChildSizes(transform2, axis, controlSize, childForceExpand, out num15, out num16, out num17);
float size = Mathf.Lerp(num15, num16, t) + (num17 * num13);
if (controlSize)
{
base.SetChildAlongAxis(transform2, axis, pos, size);
}
else
{
float num19 = (size - transform2.sizeDelta[axis]) * alignmentOnAxis;
base.SetChildAlongAxis(transform2, axis, pos + num19);
}
pos += size + this.spacing;
}
}
}