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
- DataGridPagerStyle.cs
- HtmlEmptyTagControlBuilder.cs
- CryptoApi.cs
- MsmqIntegrationMessagePool.cs
- XmlSchemaAll.cs
- BamlReader.cs
- FormViewInsertEventArgs.cs
- KnownColorTable.cs
- DataGridLinkButton.cs
- DataGridViewControlCollection.cs
- GridItemPattern.cs
- SiteMap.cs
- EventSourceCreationData.cs
- ChannelManager.cs
- ChannelCacheSettings.cs
- Pair.cs
- Propagator.JoinPropagator.cs
- StaticExtension.cs
- safemediahandle.cs
- VisualStyleTypesAndProperties.cs
- ManifestBasedResourceGroveler.cs
- WSSecurityPolicy11.cs
- XmlDomTextWriter.cs
- EntityDataSourceChangedEventArgs.cs
- VarInfo.cs
- RevocationPoint.cs
- StreamGeometry.cs
- ExpressionTable.cs
- DateBoldEvent.cs
- PriorityItem.cs
- ActiveXHost.cs
- RoutedCommand.cs
- Attributes.cs
- BamlRecordWriter.cs
- DataTrigger.cs
- CompiledAction.cs
- Ipv6Element.cs
- Rotation3DAnimation.cs
- SQLInt32Storage.cs
- HttpException.cs
- DynamicResourceExtensionConverter.cs
- FormatterServices.cs
- XmlSchemaFacet.cs
- AsyncContentLoadedEventArgs.cs
- TypedTableBase.cs
- ContentControl.cs
- ArgumentDirectionHelper.cs
- NonSerializedAttribute.cs
- GACIdentityPermission.cs
- ComponentSerializationService.cs
- OracleDateTime.cs
- XmlDictionaryReaderQuotas.cs
- SqlConnectionPoolProviderInfo.cs
- TabRenderer.cs
- CodeExpressionRuleDeclaration.cs
- connectionpool.cs
- FontFamilyConverter.cs
- BrushMappingModeValidation.cs
- WebUtil.cs
- Attribute.cs
- Scripts.cs
- DataGridCommandEventArgs.cs
- ToolStripSplitStackLayout.cs
- AutomationPatternInfo.cs
- DataColumnCollection.cs
- NotificationContext.cs
- KeyTime.cs
- SqlDataSourceFilteringEventArgs.cs
- XmlChildNodes.cs
- TreeViewCancelEvent.cs
- XmlEventCache.cs
- ClaimSet.cs
- EntityDataReader.cs
- InfiniteIntConverter.cs
- ThaiBuddhistCalendar.cs
- ConfigXmlCDataSection.cs
- AnimatedTypeHelpers.cs
- ServiceDesigner.cs
- StringConverter.cs
- QuerySubExprEliminator.cs
- ActionFrame.cs
- InvalidDataException.cs
- Double.cs
- RecordsAffectedEventArgs.cs
- CompilerError.cs
- DataGridViewCellEventArgs.cs
- PlanCompiler.cs
- RotateTransform3D.cs
- AssociatedControlConverter.cs
- ListViewGroupConverter.cs
- SplitterCancelEvent.cs
- Binding.cs
- LinqDataSourceStatusEventArgs.cs
- ServiceEndpointElement.cs
- ServiceEndpointAssociationProvider.cs
- BuildManagerHost.cs
- _AutoWebProxyScriptWrapper.cs
- ColumnResizeAdorner.cs
- LinkButton.cs
- RectConverter.cs