Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media3D / MaterialGroup.cs / 1 / MaterialGroup.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Material group // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Media.Media3D; using System.Windows.Markup; using MS.Internal; using MS.Internal.Media3D; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Media3D { ////// Material group /// [ContentProperty("Children")] public sealed partial class MaterialGroup : Material { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Default constructor. /// public MaterialGroup() {} #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods #endregion Public Methods //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods // If a child changes or is added/removed to this, // that will fire changed which will mark the GeometryModel3D // containing this as DirtyForPreCompute which will // cause PreCompute() to be called on us. // // Thus, we don't need to override OnChanged() and update // _requiresRealization here in MaterialGroup. internal override bool PreCompute() { _requiresRealization = false; MaterialCollection children = Children; if (children != null) { int count = children.Count; for (int i = 0; i < count; i++) { // Can't early exit on first 'true' because PreCompute // does work that's necessary for every Material that // has text in it _requiresRealization |= children.Internal_GetItem(i).PreCompute(); } } return _requiresRealization; } internal override void UpdateRealizations( RealizationContext ctx, ref Rect bounds ) { Debug.Assert(_requiresRealization); MaterialCollection children = Children; if (children != null) { int count = children.Count; for (int i = 0; i < count; i++) { Material material = children.Internal_GetItem(i); if (material.RequiresRealization) { material.UpdateRealizations(ctx, ref bounds); } } } } #endregion Internal Methods //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Properties internal override bool RequiresRealization { get { return _requiresRealization; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private bool _requiresRealization = false; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Material group // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Media.Media3D; using System.Windows.Markup; using MS.Internal; using MS.Internal.Media3D; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Media3D { ////// Material group /// [ContentProperty("Children")] public sealed partial class MaterialGroup : Material { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Default constructor. /// public MaterialGroup() {} #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods #endregion Public Methods //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods // If a child changes or is added/removed to this, // that will fire changed which will mark the GeometryModel3D // containing this as DirtyForPreCompute which will // cause PreCompute() to be called on us. // // Thus, we don't need to override OnChanged() and update // _requiresRealization here in MaterialGroup. internal override bool PreCompute() { _requiresRealization = false; MaterialCollection children = Children; if (children != null) { int count = children.Count; for (int i = 0; i < count; i++) { // Can't early exit on first 'true' because PreCompute // does work that's necessary for every Material that // has text in it _requiresRealization |= children.Internal_GetItem(i).PreCompute(); } } return _requiresRealization; } internal override void UpdateRealizations( RealizationContext ctx, ref Rect bounds ) { Debug.Assert(_requiresRealization); MaterialCollection children = Children; if (children != null) { int count = children.Count; for (int i = 0; i < count; i++) { Material material = children.Internal_GetItem(i); if (material.RequiresRealization) { material.UpdateRealizations(ctx, ref bounds); } } } } #endregion Internal Methods //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Properties internal override bool RequiresRealization { get { return _requiresRealization; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private bool _requiresRealization = false; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PenThread.cs
- TripleDES.cs
- InvalidAsynchronousStateException.cs
- FocusManager.cs
- SchemaMapping.cs
- CodeValidator.cs
- CatalogPartChrome.cs
- prompt.cs
- Pair.cs
- GZipObjectSerializer.cs
- PointConverter.cs
- InsufficientMemoryException.cs
- SqlFacetAttribute.cs
- ADRoleFactory.cs
- OleStrCAMarshaler.cs
- ScriptBehaviorDescriptor.cs
- CodeGeneratorOptions.cs
- LineGeometry.cs
- ExtentJoinTreeNode.cs
- XmlBaseReader.cs
- RedBlackList.cs
- NullToBooleanConverter.cs
- DataControlImageButton.cs
- TopClause.cs
- EarlyBoundInfo.cs
- ComponentFactoryHelpers.cs
- FileNotFoundException.cs
- _CacheStreams.cs
- IntSecurity.cs
- DateTimeFormatInfoScanner.cs
- BaseProcessor.cs
- VirtualPathProvider.cs
- DataColumnChangeEvent.cs
- ScrollBar.cs
- NotSupportedException.cs
- DiscardableAttribute.cs
- PropertyAccessVisitor.cs
- BindingMAnagerBase.cs
- RegexWorker.cs
- InkPresenter.cs
- PageCodeDomTreeGenerator.cs
- URL.cs
- BufferedGraphicsContext.cs
- WindowsRegion.cs
- PrinterSettings.cs
- XmlMemberMapping.cs
- RecordsAffectedEventArgs.cs
- XmlQualifiedName.cs
- EventSource.cs
- FormsAuthenticationEventArgs.cs
- CultureTableRecord.cs
- ResourceCodeDomSerializer.cs
- Input.cs
- GPStream.cs
- BamlResourceDeserializer.cs
- ProxySimple.cs
- Interlocked.cs
- UserControl.cs
- ClientCultureInfo.cs
- GridView.cs
- StickyNote.cs
- ContextMenuAutomationPeer.cs
- BindToObject.cs
- PeerCollaboration.cs
- VariableQuery.cs
- Paragraph.cs
- CompiledIdentityConstraint.cs
- ClrProviderManifest.cs
- FloaterParaClient.cs
- LocalizableAttribute.cs
- ProjectedWrapper.cs
- XmlImplementation.cs
- SerialPinChanges.cs
- QilPatternFactory.cs
- InstanceContextMode.cs
- VirtualDirectoryMapping.cs
- StateManagedCollection.cs
- StreamingContext.cs
- RuntimeConfigLKG.cs
- TableSectionStyle.cs
- CacheDependency.cs
- WizardStepBase.cs
- Point3D.cs
- DoubleLink.cs
- RepeaterItem.cs
- ConnectionInterfaceCollection.cs
- ModelUtilities.cs
- HttpHostedTransportConfiguration.cs
- ListViewUpdatedEventArgs.cs
- OneOfConst.cs
- ASCIIEncoding.cs
- Rect3DConverter.cs
- QueryStringConverter.cs
- SerializerDescriptor.cs
- SpecularMaterial.cs
- ImageClickEventArgs.cs
- SettingsPropertyValue.cs
- CellLabel.cs
- Operator.cs
- SerializableAttribute.cs