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
- WizardDesigner.cs
- safesecurityhelperavalon.cs
- QueryOutputWriter.cs
- DataControlLinkButton.cs
- PrePostDescendentsWalker.cs
- SharedPerformanceCounter.cs
- ImageInfo.cs
- EntityDataSource.cs
- AsyncDataRequest.cs
- DesignerSerializationVisibilityAttribute.cs
- ZipIOExtraFieldElement.cs
- MemberPathMap.cs
- DependentTransaction.cs
- Trigger.cs
- SemanticResolver.cs
- MouseEvent.cs
- RegexCode.cs
- GradientBrush.cs
- WebPartDeleteVerb.cs
- ScrollEventArgs.cs
- MenuBase.cs
- DataTableMappingCollection.cs
- AspNetSynchronizationContext.cs
- VisualProxy.cs
- Stopwatch.cs
- Triplet.cs
- IntegerValidatorAttribute.cs
- XAMLParseException.cs
- WriteTimeStream.cs
- DictionaryKeyPropertyAttribute.cs
- ResourceProviderFactory.cs
- DataBindingList.cs
- BidirectionalDictionary.cs
- BitStack.cs
- Span.cs
- VarInfo.cs
- RectangleHotSpot.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- SizeValueSerializer.cs
- documentsequencetextview.cs
- XNodeValidator.cs
- OraclePermissionAttribute.cs
- TargetInvocationException.cs
- TableRow.cs
- GraphicsContext.cs
- DynamicMethod.cs
- ObsoleteAttribute.cs
- Setter.cs
- TextInfo.cs
- PrintDialog.cs
- ImpersonationContext.cs
- SmiMetaDataProperty.cs
- UniqueSet.cs
- Slider.cs
- ConfigXmlSignificantWhitespace.cs
- AnalyzedTree.cs
- StatusBarAutomationPeer.cs
- ReachPrintTicketSerializer.cs
- CheckBox.cs
- ProfileManager.cs
- DataGridItem.cs
- CompositeClientFormatter.cs
- SqlMultiplexer.cs
- GreenMethods.cs
- QueryContinueDragEventArgs.cs
- CodeRemoveEventStatement.cs
- FontFamily.cs
- CharKeyFrameCollection.cs
- SecurityContextTokenValidationException.cs
- FieldBuilder.cs
- Dictionary.cs
- ImageSourceValueSerializer.cs
- CapabilitiesRule.cs
- Pen.cs
- Selector.cs
- OracleCommand.cs
- ContextQuery.cs
- DataBindingList.cs
- ContentAlignmentEditor.cs
- ToolTip.cs
- EdmComplexTypeAttribute.cs
- Soap.cs
- XmlSchemaDocumentation.cs
- AccessorTable.cs
- PerformanceCounters.cs
- DataKeyPropertyAttribute.cs
- DatagridviewDisplayedBandsData.cs
- TextEmbeddedObject.cs
- CmsInterop.cs
- CodeArgumentReferenceExpression.cs
- BackStopAuthenticationModule.cs
- UnauthorizedWebPart.cs
- DateTimeConstantAttribute.cs
- SchemaElementDecl.cs
- RegionIterator.cs
- XmlSchemaComplexContentExtension.cs
- IntSecurity.cs
- LinkLabel.cs
- BulletDecorator.cs
- DataGridViewRow.cs