Matrix3DStack.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media3D / Matrix3DStack.cs / 1305600 / Matrix3DStack.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//
// Description: This is a super simple Matrix3DStack implementation. 
//              MatrixStack (2D) is optimized to avoid boxig and copying 
//              of structs.  This was written as a stop-gap to address
//              a bug until we can use CodeGen here. 
//
// History:
//  1/19/2004 : [....] - Created
// 
//---------------------------------------------------------------------------
 
using System; 
using System.Collections;
using System.Collections.Generic; 

namespace System.Windows.Media.Media3D
{
    // 

 
 

    internal class Matrix3DStack 
    {
        //-----------------------------------------------------
        //
        //  Constructors 
        //
        //----------------------------------------------------- 
 
        //------------------------------------------------------
        // 
        //  Public Methods
        //
        //-----------------------------------------------------
 
        public void Clear()
        { 
            _stack.Clear(); 
        }
 
        public Matrix3D Pop()
        {
            Matrix3D top = Top;
            _stack.RemoveAt(_stack.Count - 1); 
            return top;
        } 
 
        /// 
        /// Empty => [matrix] 
        /// tail | [top] => tail | [top] | [matrix * top]
        /// 
        public void Push(Matrix3D matrix)
        { 
            if (_stack.Count > 0)
            { 
                matrix.Append(Top); 
            }
 
            _stack.Add(matrix);
        }

        //------------------------------------------------------ 
        //
        //  Public Properties 
        // 
        //------------------------------------------------------
 
        public int Count
        {
            get
            { 
                return _stack.Count;
            } 
        } 

        public bool IsEmpty 
        {
            get
            {
                return (_stack.Count == 0); 
            }
        } 
 
        public Matrix3D Top
        { 
            get
            {
                return _stack[_stack.Count - 1];
            } 
        }
 
        //----------------------------------------------------- 
        //
        //  Public Events 
        //
        //------------------------------------------------------

        //----------------------------------------------------- 
        //
        //  Private Fields 
        // 
        //-----------------------------------------------------
 
        #region Private Fields

        private readonly List _stack = new List();
 
        #endregion Private Fields
 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------------- 
//
// 
//    Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//
// Description: This is a super simple Matrix3DStack implementation. 
//              MatrixStack (2D) is optimized to avoid boxig and copying 
//              of structs.  This was written as a stop-gap to address
//              a bug until we can use CodeGen here. 
//
// History:
//  1/19/2004 : [....] - Created
// 
//---------------------------------------------------------------------------
 
using System; 
using System.Collections;
using System.Collections.Generic; 

namespace System.Windows.Media.Media3D
{
    // 

 
 

    internal class Matrix3DStack 
    {
        //-----------------------------------------------------
        //
        //  Constructors 
        //
        //----------------------------------------------------- 
 
        //------------------------------------------------------
        // 
        //  Public Methods
        //
        //-----------------------------------------------------
 
        public void Clear()
        { 
            _stack.Clear(); 
        }
 
        public Matrix3D Pop()
        {
            Matrix3D top = Top;
            _stack.RemoveAt(_stack.Count - 1); 
            return top;
        } 
 
        /// 
        /// Empty => [matrix] 
        /// tail | [top] => tail | [top] | [matrix * top]
        /// 
        public void Push(Matrix3D matrix)
        { 
            if (_stack.Count > 0)
            { 
                matrix.Append(Top); 
            }
 
            _stack.Add(matrix);
        }

        //------------------------------------------------------ 
        //
        //  Public Properties 
        // 
        //------------------------------------------------------
 
        public int Count
        {
            get
            { 
                return _stack.Count;
            } 
        } 

        public bool IsEmpty 
        {
            get
            {
                return (_stack.Count == 0); 
            }
        } 
 
        public Matrix3D Top
        { 
            get
            {
                return _stack[_stack.Count - 1];
            } 
        }
 
        //----------------------------------------------------- 
        //
        //  Public Events 
        //
        //------------------------------------------------------

        //----------------------------------------------------- 
        //
        //  Private Fields 
        // 
        //-----------------------------------------------------
 
        #region Private Fields

        private readonly List _stack = new List();
 
        #endregion Private Fields
 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK