Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media3D / Model3DGroup.cs / 1305600 / Model3DGroup.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: 3D model collection. // // See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht // // History: // 06/28/2003 : t-gregr - Created // //--------------------------------------------------------------------------- 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 { ////// 3D model group. /// [ContentProperty("Children")] public sealed partial class Model3DGroup : Model3D { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Default constructor. /// public Model3DGroup() {} #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods internal override void RayHitTestCore( RayHitTestParameters rayParams) { Model3DCollection children = Children; if (children == null) { return; } for (int i = children.Count - 1; i >= 0; i--) { Model3D child = children.Internal_GetItem(i); // Perform the hit-test against the child. child.RayHitTest(rayParams); } } internal override Rect3D CalculateSubgraphBoundsInnerSpace() { Model3DCollection children = Children; if (children == null) { return Rect3D.Empty; } Rect3D bounds = Rect3D.Empty; for (int i = 0, count = children.Count; i < count; i++) { Model3D child = children.Internal_GetItem(i); // Calls CSBOS rather than Bounds to avoid ReadPreamble. bounds.Union(child.CalculateSubgraphBoundsOuterSpace()); } return bounds; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties // named EmptyGroup not to collide with public Model3D.Empty internal static Model3DGroup EmptyGroup { get { if (s_empty == null) { s_empty = new Model3DGroup(); s_empty.Freeze(); } return s_empty; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private static Model3DGroup s_empty; #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: 3D model collection. // // See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht // // History: // 06/28/2003 : t-gregr - Created // //--------------------------------------------------------------------------- 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 { ////// 3D model group. /// [ContentProperty("Children")] public sealed partial class Model3DGroup : Model3D { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Default constructor. /// public Model3DGroup() {} #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods internal override void RayHitTestCore( RayHitTestParameters rayParams) { Model3DCollection children = Children; if (children == null) { return; } for (int i = children.Count - 1; i >= 0; i--) { Model3D child = children.Internal_GetItem(i); // Perform the hit-test against the child. child.RayHitTest(rayParams); } } internal override Rect3D CalculateSubgraphBoundsInnerSpace() { Model3DCollection children = Children; if (children == null) { return Rect3D.Empty; } Rect3D bounds = Rect3D.Empty; for (int i = 0, count = children.Count; i < count; i++) { Model3D child = children.Internal_GetItem(i); // Calls CSBOS rather than Bounds to avoid ReadPreamble. bounds.Union(child.CalculateSubgraphBoundsOuterSpace()); } return bounds; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties // named EmptyGroup not to collide with public Model3D.Empty internal static Model3DGroup EmptyGroup { get { if (s_empty == null) { s_empty = new Model3DGroup(); s_empty.Freeze(); } return s_empty; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private static Model3DGroup s_empty; #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
- TableDetailsCollection.cs
- ResourceDescriptionAttribute.cs
- AssemblyFilter.cs
- IntegrationExceptionEventArgs.cs
- DictionaryBase.cs
- GlyphsSerializer.cs
- HyperlinkAutomationPeer.cs
- SamlAttributeStatement.cs
- HtmlInputPassword.cs
- InputProcessorProfiles.cs
- XmlLoader.cs
- DocumentXmlWriter.cs
- TextServicesCompartment.cs
- CustomMenuItemCollection.cs
- ProtectedConfigurationSection.cs
- TextParaLineResult.cs
- OracleLob.cs
- Point.cs
- BaseDataBoundControl.cs
- RubberbandSelector.cs
- TypeForwardedToAttribute.cs
- WebServiceResponse.cs
- DataRowComparer.cs
- XsltOutput.cs
- SettingsProperty.cs
- GridViewColumnHeader.cs
- PersonalizationStateQuery.cs
- OpCodes.cs
- MenuItemCollectionEditor.cs
- RemotingClientProxy.cs
- DbCommandTree.cs
- XPathExpr.cs
- DNS.cs
- PolyBezierSegment.cs
- KeyedHashAlgorithm.cs
- AliasedSlot.cs
- DataControlCommands.cs
- XamlPathDataSerializer.cs
- LazyTextWriterCreator.cs
- cookie.cs
- ArrangedElementCollection.cs
- PathSegmentCollection.cs
- EntityDataSourceContextCreatedEventArgs.cs
- BitmapSizeOptions.cs
- DesignerActionUIService.cs
- X509RecipientCertificateServiceElement.cs
- MetadataItem_Static.cs
- DrawListViewColumnHeaderEventArgs.cs
- DifferencingCollection.cs
- SoapSchemaMember.cs
- ErrorHandler.cs
- RootAction.cs
- DataGridViewRowCancelEventArgs.cs
- OleDbParameterCollection.cs
- StrongNameUtility.cs
- GridViewPageEventArgs.cs
- RpcCryptoContext.cs
- HwndProxyElementProvider.cs
- WpfKnownTypeInvoker.cs
- ScrollPatternIdentifiers.cs
- ObjectDataSourceDesigner.cs
- ToolStripGrip.cs
- StringConverter.cs
- PageAsyncTask.cs
- DataGridViewBand.cs
- HitTestDrawingContextWalker.cs
- Transform3DGroup.cs
- SoapFormatExtensions.cs
- Line.cs
- SymbolEqualComparer.cs
- Int32Animation.cs
- ResourceExpression.cs
- CountdownEvent.cs
- StringKeyFrameCollection.cs
- Brushes.cs
- KerberosRequestorSecurityTokenAuthenticator.cs
- PriorityItem.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- BuildProvider.cs
- FunctionDetailsReader.cs
- ObjectTypeMapping.cs
- MessageSecurityProtocolFactory.cs
- Helper.cs
- BrushMappingModeValidation.cs
- URL.cs
- Pair.cs
- AssemblyNameProxy.cs
- TreeNodeCollection.cs
- DragEventArgs.cs
- FlowNode.cs
- WeakReferenceList.cs
- ImplicitInputBrush.cs
- TransactionTraceIdentifier.cs
- DateRangeEvent.cs
- JpegBitmapDecoder.cs
- AppearanceEditorPart.cs
- ConstraintEnumerator.cs
- SqlFunctionAttribute.cs
- FormatterServices.cs
- InternalBase.cs