Esempio n. 1
0
            public void ComputeOffset()
            {
                if (first.content != null)
                {
                    offset = 0;

                    var index = this.index;

                    var dim = dimension;
                    var len = first.Array.GetLength(dim);

                    if (dim >= 2)
                    {
                        var parent = this.parent;

                        do
                        {
                            offset += index * len;

                            --dim;

                            len *= first.Array.GetLength(dim);

                            index = parent.index;

                            parent = parent.parent;
                        } while (dim >= 2);
                    }

                    offset += index * len;
                }
            }
Esempio n. 2
0
            public MiddleRW(MiddleRW parent, int index)
            {
                first       = parent.first;
                this.parent = parent;

                dimension  = parent.dimension + 1;
                this.index = index;
            }
Esempio n. 3
0
            public LastRW(MiddleRW parent, int index)
            {
                first       = parent.first;
                this.parent = parent;

                dimension  = parent.dimension + 1;
                this.index = index;

                ComputeOffset();
            }