Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media3D / Geometry3D.cs / 1 / Geometry3D.cs
//----------------------------------------------------------------------------
//
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// History:
// 6/10/2004 : [....] - Created
//
//---------------------------------------------------------------------------
using MS.Internal.Media3D;
using System;
using System.Diagnostics;
using System.Windows.Media.Animation;
using System.Windows.Media.Composition;
namespace System.Windows.Media.Media3D
{
///
/// This is the base class for all 3D geometry classes. A geometry has
/// bounds and can be rendered with a GeometryModel3D.
///
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] // cannot be read & localized as string
public abstract partial class Geometry3D : Animatable, DUCE.IResource
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
// Prevent 3rd parties from extending this abstract base class.
internal Geometry3D() {}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Gets bounds for this Geometry3D.
///
public abstract Rect3D Bounds { get; }
#endregion Public Methods
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Events
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
// NOTE: Geometry3D hit testing takes the rayParams in the outer space of the
// Geometry3D. That is, RayHitTest() will apply this geometry's
// transform to the ray for the caller.
//
// This is different than Visual hit testing which does not transform
// the hit testing parameters by the Visual's transform.
internal void RayHitTest(RayHitTestParameters rayParams, FaceType facesToHit)
{
Debug.Assert(facesToHit != FaceType.None,
"Caller should make sure we're trying to hit something");
Rect3D bounds = Bounds;
if (bounds.IsEmpty)
{
return;
}
//
Point3D origin;
Vector3D direction;
rayParams.GetLocalLine(out origin, out direction);
if (LineUtil.ComputeLineBoxIntersection(ref origin, ref direction, ref bounds, rayParams.IsRay))
{
RayHitTestCore(rayParams, facesToHit);
}
//
}
internal abstract void RayHitTestCore(RayHitTestParameters rayParams, FaceType hitTestableFaces);
#endregion Internal Methods
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------------
//
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// History:
// 6/10/2004 : [....] - Created
//
//---------------------------------------------------------------------------
using MS.Internal.Media3D;
using System;
using System.Diagnostics;
using System.Windows.Media.Animation;
using System.Windows.Media.Composition;
namespace System.Windows.Media.Media3D
{
///
/// This is the base class for all 3D geometry classes. A geometry has
/// bounds and can be rendered with a GeometryModel3D.
///
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] // cannot be read & localized as string
public abstract partial class Geometry3D : Animatable, DUCE.IResource
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
// Prevent 3rd parties from extending this abstract base class.
internal Geometry3D() {}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Gets bounds for this Geometry3D.
///
public abstract Rect3D Bounds { get; }
#endregion Public Methods
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Events
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
// NOTE: Geometry3D hit testing takes the rayParams in the outer space of the
// Geometry3D. That is, RayHitTest() will apply this geometry's
// transform to the ray for the caller.
//
// This is different than Visual hit testing which does not transform
// the hit testing parameters by the Visual's transform.
internal void RayHitTest(RayHitTestParameters rayParams, FaceType facesToHit)
{
Debug.Assert(facesToHit != FaceType.None,
"Caller should make sure we're trying to hit something");
Rect3D bounds = Bounds;
if (bounds.IsEmpty)
{
return;
}
//
Point3D origin;
Vector3D direction;
rayParams.GetLocalLine(out origin, out direction);
if (LineUtil.ComputeLineBoxIntersection(ref origin, ref direction, ref bounds, rayParams.IsRay))
{
RayHitTestCore(rayParams, facesToHit);
}
//
}
internal abstract void RayHitTestCore(RayHitTestParameters rayParams, FaceType hitTestableFaces);
#endregion Internal Methods
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LoginName.cs
- CompleteWizardStep.cs
- ControlCachePolicy.cs
- DiagnosticsConfiguration.cs
- TextTreeTextBlock.cs
- TdsParserSafeHandles.cs
- Listbox.cs
- documentation.cs
- RegexWorker.cs
- TemplateEditingFrame.cs
- autovalidator.cs
- EncryptedXml.cs
- Int16KeyFrameCollection.cs
- DataGridViewLayoutData.cs
- XmlTextReader.cs
- wgx_render.cs
- XmlNamespaceManager.cs
- Renderer.cs
- WrapperEqualityComparer.cs
- PageScaling.cs
- ToolStripDropTargetManager.cs
- Pen.cs
- XmlSchemaCollection.cs
- User.cs
- PassportAuthenticationModule.cs
- TableLayoutPanelCellPosition.cs
- UserNameSecurityTokenProvider.cs
- NullableDecimalAverageAggregationOperator.cs
- GroupQuery.cs
- QuotedPrintableStream.cs
- JournalEntryStack.cs
- BeginEvent.cs
- InvalidFilterCriteriaException.cs
- StrokeCollection.cs
- ObjectAnimationBase.cs
- NetworkAddressChange.cs
- UriScheme.cs
- LineSegment.cs
- ACL.cs
- ActivitySurrogate.cs
- XmlSubtreeReader.cs
- Pts.cs
- _DomainName.cs
- BrowserCapabilitiesFactoryBase.cs
- ClientScriptManagerWrapper.cs
- TextServicesLoader.cs
- GridViewUpdateEventArgs.cs
- WindowsIdentity.cs
- PenContext.cs
- FormatterConverter.cs
- Request.cs
- TemplateBindingExpression.cs
- InputReport.cs
- DetailsViewRowCollection.cs
- UniqueIdentifierService.cs
- ResourceManager.cs
- FamilyCollection.cs
- ZipIOBlockManager.cs
- XamlRtfConverter.cs
- EntityTypeEmitter.cs
- DataViewManagerListItemTypeDescriptor.cs
- AttachedAnnotationChangedEventArgs.cs
- _RequestLifetimeSetter.cs
- DrawingGroupDrawingContext.cs
- CheckBox.cs
- ProfilePropertySettings.cs
- SessionStateItemCollection.cs
- SamlAuthenticationClaimResource.cs
- AlignmentYValidation.cs
- AppDomain.cs
- PingOptions.cs
- UnsafeNativeMethods.cs
- DashStyles.cs
- SharingService.cs
- DeflateEmulationStream.cs
- Win32SafeHandles.cs
- ToggleProviderWrapper.cs
- MatrixStack.cs
- CodeSnippetExpression.cs
- SchemaInfo.cs
- XmlSchemaSet.cs
- GridEntry.cs
- basevalidator.cs
- HttpCapabilitiesBase.cs
- RegexEditorDialog.cs
- ContextBase.cs
- DynamicMetaObject.cs
- MatrixAnimationBase.cs
- TabletCollection.cs
- UnionQueryOperator.cs
- PasswordDeriveBytes.cs
- CodeVariableReferenceExpression.cs
- CapabilitiesState.cs
- XmlSchemaObjectTable.cs
- WebPartTransformerAttribute.cs
- TreeViewHitTestInfo.cs
- CodeRegionDirective.cs
- MD5CryptoServiceProvider.cs
- RectangleConverter.cs
- HttpDictionary.cs