Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media3D / GeometryModel3D.cs / 1305600 / GeometryModel3D.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: 3D geometry primitive implementation. // // See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht // // History: // 06/10/2004 : [....] - Created from MeshPrimitive3D.cs (deprecated) // //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.Media3D; using System; using System.Collections; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Composition; using System.Windows.Media.Media3D; using System.Windows.Markup; namespace System.Windows.Media.Media3D { ////// GeometryModel3D is for modeling with a Geometry3D and a Material. /// public sealed partial class GeometryModel3D : Model3D { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- ////// Builds a GeometryModel3D with empty Geometry3D and Material. /// public GeometryModel3D() {} ////// Constructor. /// /// Geometry of the new mesh primitive. /// Material of the new mesh primitive. public GeometryModel3D(Geometry3D geometry, Material material) { Geometry = geometry; Material = material; } //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal override Rect3D CalculateSubgraphBoundsInnerSpace() { Geometry3D geometry = Geometry; if (geometry == null) { return Rect3D.Empty; } return geometry.Bounds; } internal override void RayHitTestCore(RayHitTestParameters rayParams) { Geometry3D geometry = Geometry; if (geometry != null) { // If our Geometry3D hit test intersects anything we should return "this" Model3D // as the HitTestResult.ModelHit. rayParams.CurrentModel = this; FaceType facesToHit = FaceType.None; if (Material != null) { facesToHit |= FaceType.Front; } if (BackMaterial != null) { facesToHit |= FaceType.Back; } if (facesToHit != FaceType.None) { geometry.RayHitTest(rayParams, facesToHit); } } } internal void MaterialPropertyChangedHook(DependencyPropertyChangedEventArgs e) { } internal void BackMaterialPropertyChangedHook(DependencyPropertyChangedEventArgs e) { MaterialPropertyChangedHook(e); } #endregion Internal Methods } } // 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 geometry primitive implementation. // // See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht // // History: // 06/10/2004 : [....] - Created from MeshPrimitive3D.cs (deprecated) // //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.Media3D; using System; using System.Collections; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Composition; using System.Windows.Media.Media3D; using System.Windows.Markup; namespace System.Windows.Media.Media3D { ////// GeometryModel3D is for modeling with a Geometry3D and a Material. /// public sealed partial class GeometryModel3D : Model3D { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- ////// Builds a GeometryModel3D with empty Geometry3D and Material. /// public GeometryModel3D() {} ////// Constructor. /// /// Geometry of the new mesh primitive. /// Material of the new mesh primitive. public GeometryModel3D(Geometry3D geometry, Material material) { Geometry = geometry; Material = material; } //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal override Rect3D CalculateSubgraphBoundsInnerSpace() { Geometry3D geometry = Geometry; if (geometry == null) { return Rect3D.Empty; } return geometry.Bounds; } internal override void RayHitTestCore(RayHitTestParameters rayParams) { Geometry3D geometry = Geometry; if (geometry != null) { // If our Geometry3D hit test intersects anything we should return "this" Model3D // as the HitTestResult.ModelHit. rayParams.CurrentModel = this; FaceType facesToHit = FaceType.None; if (Material != null) { facesToHit |= FaceType.Front; } if (BackMaterial != null) { facesToHit |= FaceType.Back; } if (facesToHit != FaceType.None) { geometry.RayHitTest(rayParams, facesToHit); } } } internal void MaterialPropertyChangedHook(DependencyPropertyChangedEventArgs e) { } internal void BackMaterialPropertyChangedHook(DependencyPropertyChangedEventArgs e) { MaterialPropertyChangedHook(e); } #endregion Internal Methods } } // 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
- FileDialogCustomPlace.cs
- IImplicitResourceProvider.cs
- StringStorage.cs
- Switch.cs
- TypeDescriptor.cs
- ClientBuildManagerCallback.cs
- ContentPlaceHolder.cs
- FontFamilyIdentifier.cs
- QueryOperator.cs
- DictionaryBase.cs
- X509ChainPolicy.cs
- CleanUpVirtualizedItemEventArgs.cs
- Inline.cs
- CodeArgumentReferenceExpression.cs
- CodeMemberProperty.cs
- FilteredAttributeCollection.cs
- SessionStateSection.cs
- StringBuilder.cs
- GeneralTransform3D.cs
- HtmlElementCollection.cs
- ProfessionalColors.cs
- ProviderConnectionPoint.cs
- IconEditor.cs
- BindingExpression.cs
- RequestCacheManager.cs
- CodeAttributeDeclarationCollection.cs
- RectangleConverter.cs
- XmlReaderSettings.cs
- FileDataSourceCache.cs
- SqlBulkCopyColumnMapping.cs
- ServiceDeploymentInfo.cs
- CatalogPartDesigner.cs
- AliasedSlot.cs
- XslTransform.cs
- Int32Converter.cs
- WebPartZone.cs
- UrlMapping.cs
- Journaling.cs
- ColumnResult.cs
- SettingsPropertyWrongTypeException.cs
- DesignerOptionService.cs
- HierarchicalDataBoundControl.cs
- Qualifier.cs
- Method.cs
- EnumConverter.cs
- ProfileEventArgs.cs
- ValidationError.cs
- SoapAttributeOverrides.cs
- CompositeActivityCodeGenerator.cs
- MarshalByRefObject.cs
- WpfKnownMemberInvoker.cs
- FunctionMappingTranslator.cs
- TableLayoutRowStyleCollection.cs
- XmlNodeComparer.cs
- StylusDownEventArgs.cs
- FormsAuthenticationUserCollection.cs
- AnonymousIdentificationModule.cs
- WorkflowServiceHostFactory.cs
- ReferenceEqualityComparer.cs
- BooleanFunctions.cs
- RuleSettings.cs
- DependencyObjectProvider.cs
- CollectionViewGroup.cs
- DataGridView.cs
- ContractNamespaceAttribute.cs
- DataContract.cs
- RubberbandSelector.cs
- coordinatorfactory.cs
- Renderer.cs
- CqlLexerHelpers.cs
- Collection.cs
- AesCryptoServiceProvider.cs
- WindowsAuthenticationEventArgs.cs
- AutomationPatternInfo.cs
- IdentityReference.cs
- RequestCacheEntry.cs
- DataListCommandEventArgs.cs
- DataServiceRequestArgs.cs
- ListViewItemMouseHoverEvent.cs
- Documentation.cs
- VarRefManager.cs
- Context.cs
- XmlBinaryReader.cs
- Pair.cs
- RSAPKCS1SignatureDeformatter.cs
- Rect3D.cs
- TypographyProperties.cs
- MimeTypeAttribute.cs
- BaseValidatorDesigner.cs
- XmlDigitalSignatureProcessor.cs
- XamlReader.cs
- ObjectCache.cs
- DynamicDocumentPaginator.cs
- TreeChangeInfo.cs
- PenThread.cs
- Number.cs
- ImageListImage.cs
- UrlPath.cs
- TransactionTraceIdentifier.cs
- X509Certificate.cs