/* * Farseer Physics Engine based on Box2D.XNA port: * Copyright (c) 2010 Ian Qvist * * Box2D.XNA port of Box2D: * Copyright (c) 2009 Brandon Furtwangler, Nathan Furtwangler * * Original source Box2D: * Copyright (c) 2006-2009 Erin Catto http://www.gphysics.com * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. */ using System; namespace FarseerPhysics.Common { public struct FixedArray2 { private T _value0; private T _value1; public T this[int index] { get { switch (index) { case 0: return _value0; case 1: return _value1; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: _value0 = value; break; case 1: _value1 = value; break; default: throw new IndexOutOfRangeException(); } } } } public struct FixedArray3 { private T _value0; private T _value1; private T _value2; public T this[int index] { get { switch (index) { case 0: return _value0; case 1: return _value1; case 2: return _value2; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: _value0 = value; break; case 1: _value1 = value; break; case 2: _value2 = value; break; default: throw new IndexOutOfRangeException(); } } } } public struct FixedArray4 { private T _value0; private T _value1; private T _value2; private T _value3; public T this[int index] { get { switch (index) { case 0: return _value0; case 1: return _value1; case 2: return _value2; case 3: return _value3; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: _value0 = value; break; case 1: _value1 = value; break; case 2: _value2 = value; break; case 3: _value3 = value; break; default: throw new IndexOutOfRangeException(); } } } } public struct FixedArray8 { private T _value0; private T _value1; private T _value2; private T _value3; private T _value4; private T _value5; private T _value6; private T _value7; public T this[int index] { get { switch (index) { case 0: return _value0; case 1: return _value1; case 2: return _value2; case 3: return _value3; case 4: return _value4; case 5: return _value5; case 6: return _value6; case 7: return _value7; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: _value0 = value; break; case 1: _value1 = value; break; case 2: _value2 = value; break; case 3: _value3 = value; break; case 4: _value4 = value; break; case 5: _value5 = value; break; case 6: _value6 = value; break; case 7: _value7 = value; break; default: throw new IndexOutOfRangeException(); } } } } }