Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media3D / Matrix3DStack.cs / 1 / 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);
}
///
/// stack = stack | [matrix]
///
public void PushWithoutAccumulating(Matrix3D matrix)
{
_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);
}
///
/// stack = stack | [matrix]
///
public void PushWithoutAccumulating(Matrix3D matrix)
{
_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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LayoutExceptionEventArgs.cs
- BehaviorEditorPart.cs
- MultiPropertyDescriptorGridEntry.cs
- ProcessingInstructionAction.cs
- CustomAttribute.cs
- ToolBarDesigner.cs
- CallbackValidator.cs
- LinkArea.cs
- Policy.cs
- TextDocumentView.cs
- SelectedDatesCollection.cs
- XmlSchemaElement.cs
- SystemWebSectionGroup.cs
- XPathNavigatorKeyComparer.cs
- DeclarativeCatalogPartDesigner.cs
- RemoteWebConfigurationHost.cs
- SerTrace.cs
- WindowsSlider.cs
- MetadataPropertyCollection.cs
- FormViewModeEventArgs.cs
- SqlCacheDependencySection.cs
- HttpStreamMessage.cs
- ButtonFlatAdapter.cs
- XmlDataSourceDesigner.cs
- Quaternion.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataGridViewCell.cs
- SpotLight.cs
- SerTrace.cs
- BuildProviderUtils.cs
- UTF7Encoding.cs
- BindValidator.cs
- FullTextLine.cs
- ReadOnlyTernaryTree.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- HashCoreRequest.cs
- SiteIdentityPermission.cs
- HandleRef.cs
- XmlNamespaceDeclarationsAttribute.cs
- DataControlFieldHeaderCell.cs
- TextParagraphCache.cs
- SystemTcpStatistics.cs
- PartialCachingControl.cs
- FixedPageProcessor.cs
- SecurityTokenSpecification.cs
- OdbcTransaction.cs
- TextEditorLists.cs
- DataObjectPastingEventArgs.cs
- DataContractSerializerSection.cs
- TransportSecurityProtocol.cs
- SmtpMail.cs
- MaskedTextProvider.cs
- PropertyPathConverter.cs
- EnumMember.cs
- ErrorLog.cs
- WindowsStartMenu.cs
- util.cs
- HtmlFormWrapper.cs
- NameValueCollection.cs
- CapiHashAlgorithm.cs
- PrintController.cs
- CheckedPointers.cs
- XmlNodeComparer.cs
- PropVariant.cs
- X509ChainPolicy.cs
- Constants.cs
- AnimatedTypeHelpers.cs
- EntityDataSourceSelectingEventArgs.cs
- BindMarkupExtensionSerializer.cs
- FontNameEditor.cs
- MD5CryptoServiceProvider.cs
- ExpressionVisitor.cs
- XmlSignificantWhitespace.cs
- DynamicValidatorEventArgs.cs
- Comparer.cs
- ParameterSubsegment.cs
- RootBrowserWindowProxy.cs
- EventProvider.cs
- StringWriter.cs
- DbParameterCollection.cs
- SourceCollection.cs
- Icon.cs
- ExpressionNode.cs
- DiscoveryClientChannelFactory.cs
- EdmToObjectNamespaceMap.cs
- ObjectAnimationUsingKeyFrames.cs
- PageFunction.cs
- TrackBarRenderer.cs
- NullableBoolConverter.cs
- NullEntityWrapper.cs
- XmlChildNodes.cs
- CachedCompositeFamily.cs
- HtmlTable.cs
- PropertyKey.cs
- SapiRecoContext.cs
- Button.cs
- Constants.cs
- Utils.cs
- DataGridRow.cs
- ToolBarOverflowPanel.cs