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
- XmlReturnReader.cs
- ZoneMembershipCondition.cs
- WebPartUtil.cs
- altserialization.cs
- SocketInformation.cs
- EventProviderWriter.cs
- ClientViaElement.cs
- XmlComment.cs
- CodeSnippetTypeMember.cs
- TextPatternIdentifiers.cs
- ContextDataSourceContextData.cs
- CommandEventArgs.cs
- InputReport.cs
- QilStrConcatenator.cs
- ToolStripDropDownMenu.cs
- MonthCalendar.cs
- XsdValidatingReader.cs
- InvocationExpression.cs
- xdrvalidator.cs
- DependencyPropertyValueSerializer.cs
- MsmqProcessProtocolHandler.cs
- TabControl.cs
- MetadataWorkspace.cs
- SchemaImporterExtensionsSection.cs
- SHA384Managed.cs
- SQLBoolean.cs
- UInt16Storage.cs
- SimpleWebHandlerParser.cs
- Rect3D.cs
- VectorAnimationBase.cs
- ParentUndoUnit.cs
- HttpCachePolicyWrapper.cs
- CollectionViewGroup.cs
- Tile.cs
- XmlNamedNodeMap.cs
- DataGridTextBox.cs
- CheckPair.cs
- OperationCanceledException.cs
- SystemThemeKey.cs
- SignerInfo.cs
- AmbientValueAttribute.cs
- ListControl.cs
- Rss20ItemFormatter.cs
- ThicknessAnimation.cs
- TabOrder.cs
- VisualBasic.cs
- SqlMethodAttribute.cs
- RightsManagementPermission.cs
- ObjectListItem.cs
- SymLanguageType.cs
- SuppressIldasmAttribute.cs
- MetafileHeader.cs
- COAUTHINFO.cs
- FlowSwitchDesigner.xaml.cs
- PbrsForward.cs
- FormViewUpdatedEventArgs.cs
- StaticResourceExtension.cs
- StylusCollection.cs
- SymmetricAlgorithm.cs
- NonVisualControlAttribute.cs
- querybuilder.cs
- ActiveXSerializer.cs
- MiniParameterInfo.cs
- StateDesigner.LayoutSelectionGlyph.cs
- CodeSnippetCompileUnit.cs
- Geometry3D.cs
- CopyAttributesAction.cs
- WpfKnownMemberInvoker.cs
- IndexedDataBuffer.cs
- AlphabetConverter.cs
- Point3DCollection.cs
- ProgressChangedEventArgs.cs
- Type.cs
- TypedReference.cs
- SoapFault.cs
- XmlConvert.cs
- InkPresenter.cs
- PeerSecurityManager.cs
- CaseInsensitiveHashCodeProvider.cs
- XmlMembersMapping.cs
- BamlStream.cs
- Object.cs
- EntityModelBuildProvider.cs
- HtmlDocument.cs
- System.Data.OracleClient_BID.cs
- DataGridViewCheckBoxColumn.cs
- StringKeyFrameCollection.cs
- ControlType.cs
- Label.cs
- XmlAggregates.cs
- ConnectionPoint.cs
- CapiSafeHandles.cs
- RectangleGeometry.cs
- RtType.cs
- ConfigurationSchemaErrors.cs
- StateManagedCollection.cs
- WrapPanel.cs
- StrongTypingException.cs
- PageSetupDialog.cs
- RuntimeEnvironment.cs