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
- DocumentOutline.cs
- XmlAttributeOverrides.cs
- PropertyGridCommands.cs
- TrackingRecord.cs
- StateMachine.cs
- MarshalByRefObject.cs
- Label.cs
- EventLogException.cs
- ContractAdapter.cs
- SubpageParaClient.cs
- ICspAsymmetricAlgorithm.cs
- AsyncContentLoadedEventArgs.cs
- HtmlElement.cs
- SchemaManager.cs
- WebPartZone.cs
- MergeEnumerator.cs
- XmlNodeList.cs
- SerializationObjectManager.cs
- PagedDataSource.cs
- CodeStatement.cs
- log.cs
- SizeChangedInfo.cs
- StyleCollection.cs
- connectionpool.cs
- XmlSchemaSimpleContentRestriction.cs
- BaseParser.cs
- BindingsCollection.cs
- messageonlyhwndwrapper.cs
- DisplayNameAttribute.cs
- SpecularMaterial.cs
- XmlSchemaObject.cs
- Queue.cs
- LeaseManager.cs
- Funcletizer.cs
- ScriptingAuthenticationServiceSection.cs
- StackSpiller.Bindings.cs
- CopyAttributesAction.cs
- GridViewCommandEventArgs.cs
- TcpDuplicateContext.cs
- ConnectionStringsExpressionBuilder.cs
- HyperlinkAutomationPeer.cs
- DataGridItemCollection.cs
- SourceItem.cs
- RuntimeConfigLKG.cs
- Vector3D.cs
- DetailsViewRow.cs
- BuildManager.cs
- NameValueSectionHandler.cs
- TypeDescriptionProviderAttribute.cs
- WindowClosedEventArgs.cs
- MatrixCamera.cs
- StringCollection.cs
- ExtendedProtectionPolicy.cs
- CodeTypeDeclarationCollection.cs
- VersionPair.cs
- EncodingDataItem.cs
- LogEntrySerializer.cs
- SqlStatistics.cs
- StopStoryboard.cs
- UrlAuthFailedErrorFormatter.cs
- ConstantCheck.cs
- CompilerWrapper.cs
- PrintPreviewControl.cs
- METAHEADER.cs
- NestPullup.cs
- DataGridViewTopRowAccessibleObject.cs
- SemaphoreFullException.cs
- MSG.cs
- TextParagraphView.cs
- PauseStoryboard.cs
- LocalizabilityAttribute.cs
- XmlAggregates.cs
- NonClientArea.cs
- AbstractDataSvcMapFileLoader.cs
- ImageUrlEditor.cs
- Random.cs
- mansign.cs
- SmiRequestExecutor.cs
- ParallelTimeline.cs
- ProfileSettingsCollection.cs
- Timeline.cs
- CommandExpr.cs
- FontDriver.cs
- SqlClientWrapperSmiStreamChars.cs
- UnsafePeerToPeerMethods.cs
- TextEffect.cs
- FunctionImportElement.cs
- StackBuilderSink.cs
- DateTime.cs
- LinkButton.cs
- HttpModule.cs
- CurrentChangedEventManager.cs
- CurrencyManager.cs
- ListenerBinder.cs
- TextRangeEditTables.cs
- RegistrySecurity.cs
- OrderedEnumerableRowCollection.cs
- SystemIPInterfaceProperties.cs
- Symbol.cs
- IdnMapping.cs