private void SetCellsAlongAxis(int axis)
{
if (axis == 0)
{
for (int i = 0; i < base.rectChildren.Count; i++)
{
RectTransform rectTransform = base.rectChildren[i];
this.m_Tracker.Add(this, rectTransform, DrivenTransformProperties.SizeDelta | DrivenTransformProperties.Anchors | DrivenTransformProperties.AnchoredPosition);
rectTransform.anchorMin = Vector2.up;
rectTransform.anchorMax = Vector2.up;
rectTransform.sizeDelta = this.cellSize;
}
}
else
{
int num8;
int num9;
int num10;
float x = base.rectTransform.rect.size.x;
float y = base.rectTransform.rect.size.y;
int constraintCount = 1;
int num5 = 1;
if (this.m_Constraint == Constraint.FixedColumnCount)
{
constraintCount = this.m_ConstraintCount;
num5 = Mathf.CeilToInt((((float) base.rectChildren.Count) / ((float) constraintCount)) - 0.001f);
}
else if (this.m_Constraint == Constraint.FixedRowCount)
{
num5 = this.m_ConstraintCount;
constraintCount = Mathf.CeilToInt((((float) base.rectChildren.Count) / ((float) num5)) - 0.001f);
}
else
{
if ((this.cellSize.x + this.spacing.x) <= 0f)
{
constraintCount = 0x7fffffff;
}
else
{
constraintCount = Mathf.Max(1, Mathf.FloorToInt((((x - base.padding.horizontal) + this.spacing.x) + 0.001f) / (this.cellSize.x + this.spacing.x)));
}
if ((this.cellSize.y + this.spacing.y) <= 0f)
{
num5 = 0x7fffffff;
}
else
{
num5 = Mathf.Max(1, Mathf.FloorToInt((((y - base.padding.vertical) + this.spacing.y) + 0.001f) / (this.cellSize.y + this.spacing.y)));
}
}
int num6 = (int) (this.startCorner % Corner.LowerLeft);
int num7 = (int) (this.startCorner / Corner.LowerLeft);
if (this.startAxis == Axis.Horizontal)
{
num8 = constraintCount;
num9 = Mathf.Clamp(constraintCount, 1, base.rectChildren.Count);
num10 = Mathf.Clamp(num5, 1, Mathf.CeilToInt(((float) base.rectChildren.Count) / ((float) num8)));
}
else
{
num8 = num5;
num10 = Mathf.Clamp(num5, 1, base.rectChildren.Count);
num9 = Mathf.Clamp(constraintCount, 1, Mathf.CeilToInt(((float) base.rectChildren.Count) / ((float) num8)));
}
Vector2 vector13 = new Vector2((num9 * this.cellSize.x) + ((num9 - 1) * this.spacing.x), (num10 * this.cellSize.y) + ((num10 - 1) * this.spacing.y));
Vector2 vector18 = new Vector2(base.GetStartOffset(0, vector13.x), base.GetStartOffset(1, vector13.y));
for (int j = 0; j < base.rectChildren.Count; j++)
{
int num12;
int num13;
if (this.startAxis == Axis.Horizontal)
{
num12 = j % num8;
num13 = j / num8;
}
else
{
num12 = j / num8;
num13 = j % num8;
}
if (num6 == 1)
{
num12 = (num9 - 1) - num12;
}
if (num7 == 1)
{
num13 = (num10 - 1) - num13;
}
base.SetChildAlongAxis(base.rectChildren[j], 0, vector18.x + ((this.cellSize[0] + this.spacing[0]) * num12), this.cellSize[0]);
base.SetChildAlongAxis(base.rectChildren[j], 1, vector18.y + ((this.cellSize[1] + this.spacing[1]) * num13), this.cellSize[1]);
}
}
}