internal Joint this[int index] { get { return joints[index]; } set { switch (index) { case 0: J1 = value; break; case 1: J2 = value; break; case 2: J3 = value; break; case 3: J4 = value; break; default: throw new InvalidIndexException(); } } }