Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media3D / RayMeshGeometry3DHitTestResult.cs / 1 / RayMeshGeometry3DHitTestResult.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// History:
// 06/22/2005 : [....] - Integrated from RayHitTestResult.
//
//---------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
namespace System.Windows.Media.Media3D
{
///
/// The HitTestResult of a Visual3D.HitTest(...) where the parameter
/// was a RayHitTestParameter and the ray intersected a MeshGeometry3D.
///
/// NOTE: This might have originated as a PointHitTest on a 2D Visual
/// which was extended into 3D.
///
public sealed class RayMeshGeometry3DHitTestResult : RayHitTestResult
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
internal RayMeshGeometry3DHitTestResult(
Visual3D visualHit,
Model3D modelHit,
MeshGeometry3D meshHit,
Point3D pointHit,
double distanceToRayOrigin,
int vertexIndex1,
int vertexIndex2,
int vertexIndex3,
Point barycentricCoordinate) : base (visualHit, modelHit)
{
_meshHit = meshHit;
_pointHit = pointHit;
_distanceToRayOrigin = distanceToRayOrigin;
_vertexIndex1 = vertexIndex1;
_vertexIndex2 = vertexIndex2;
_vertexIndex3 = vertexIndex3;
_barycentricCoordinate = barycentricCoordinate;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
///
/// This is a point in 3-space at which the ray intersected
/// the geometry of the hit Model3D. This point is in the
/// coordinate system of the Visual3D.
///
public override Point3D PointHit
{
get
{
return _pointHit;
}
}
///
/// This is the distance between the ray's origin and the
/// point the PointHit.
///
public override double DistanceToRayOrigin
{
get { return _distanceToRayOrigin; }
}
///
/// Index of the 1st vertex of the triangle which was intersected.
/// Use this to retrieve the position, texturecoordinate, etc. from
/// the MeshHit.
///
public int VertexIndex1
{
get { return _vertexIndex1; }
}
///
/// Index of the 2nd vertex of the triangle which was intersected.
/// Use this to retrieve the position, texturecoordinate, etc. from
/// the MeshHit.
///
public int VertexIndex2
{
get { return _vertexIndex2; }
}
///
/// Index of the 3rd vertex of the triangle which was intersected.
/// Use this to retrieve the position, texturecoordinate, etc. from
/// the MeshHit.
///
public int VertexIndex3
{
get { return _vertexIndex3; }
}
///
public double VertexWeight1
{
get { return 1 - VertexWeight2 - VertexWeight3; }
}
///
public double VertexWeight2
{
get { return _barycentricCoordinate.X; }
}
///
public double VertexWeight3
{
get { return _barycentricCoordinate.Y; }
}
///
/// The MeshGeometry3D which was intersected by the ray.
///
public MeshGeometry3D MeshHit
{
get { return _meshHit; }
}
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Events
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
internal override void SetDistanceToRayOrigin(double distance)
{
_distanceToRayOrigin = distance;
}
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
private double _distanceToRayOrigin; // Not readonly because it can be adjusted after construction.
private readonly int _vertexIndex1;
private readonly int _vertexIndex2;
private readonly int _vertexIndex3;
private readonly Point _barycentricCoordinate;
private readonly MeshGeometry3D _meshHit;
private readonly Point3D _pointHit;
#endregion Private Fields
}
}
// 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
- COM2PictureConverter.cs
- CancellableEnumerable.cs
- MenuScrollingVisibilityConverter.cs
- PolyBezierSegment.cs
- ValidationRuleCollection.cs
- InnerItemCollectionView.cs
- PassportAuthenticationModule.cs
- EmbeddedMailObjectsCollection.cs
- ExtensionWindowHeader.cs
- DisableDpiAwarenessAttribute.cs
- DelimitedListTraceListener.cs
- ObjectContextServiceProvider.cs
- DocumentEventArgs.cs
- ClientApiGenerator.cs
- RowUpdatedEventArgs.cs
- CryptoConfig.cs
- PersistenceException.cs
- BroadcastEventHelper.cs
- RtType.cs
- userdatakeys.cs
- CacheChildrenQuery.cs
- ControlPropertyNameConverter.cs
- Ref.cs
- RC2CryptoServiceProvider.cs
- AssemblyNameProxy.cs
- StringValidator.cs
- PerspectiveCamera.cs
- EntityClientCacheEntry.cs
- Brush.cs
- OrderByLifter.cs
- TemplateBindingExtension.cs
- EmptyStringExpandableObjectConverter.cs
- RegexCompilationInfo.cs
- CompilationUtil.cs
- SqlTrackingQuery.cs
- SafeArrayRankMismatchException.cs
- PrintPreviewGraphics.cs
- AccessViolationException.cs
- TableSectionStyle.cs
- InvalidEnumArgumentException.cs
- SetIterators.cs
- ReachDocumentPageSerializer.cs
- NestedContainer.cs
- SmtpClient.cs
- RegistrationServices.cs
- StoreConnection.cs
- RootProfilePropertySettingsCollection.cs
- ScriptControlDescriptor.cs
- EventManager.cs
- HostingEnvironmentException.cs
- TCPClient.cs
- MenuAutoFormat.cs
- MimeAnyImporter.cs
- DbConnectionHelper.cs
- FilteredXmlReader.cs
- TouchFrameEventArgs.cs
- GeneralTransform.cs
- DeviceContext2.cs
- ConstructorBuilder.cs
- RuleConditionDialog.cs
- TabItemWrapperAutomationPeer.cs
- User.cs
- GridEntryCollection.cs
- MethodRental.cs
- COM2IProvidePropertyBuilderHandler.cs
- DataListDesigner.cs
- ConfigurationSettings.cs
- OracleBinary.cs
- webeventbuffer.cs
- FaultContractAttribute.cs
- MediaElement.cs
- HtmlControlPersistable.cs
- EntityDataSourceWrapperCollection.cs
- Viewport3DAutomationPeer.cs
- PointConverter.cs
- FlowDocumentView.cs
- ContainerActivationHelper.cs
- IdentityManager.cs
- X509CertificateClaimSet.cs
- PrimarySelectionGlyph.cs
- DiscoveryMessageSequence11.cs
- AlphabeticalEnumConverter.cs
- FixedTextContainer.cs
- SqlDelegatedTransaction.cs
- SubpageParaClient.cs
- SqlUserDefinedTypeAttribute.cs
- CommandExpr.cs
- NameValuePair.cs
- UIntPtr.cs
- CodeTryCatchFinallyStatement.cs
- NativeMethods.cs
- ContentElementAutomationPeer.cs
- ObjectDataSourceMethodEventArgs.cs
- PenLineJoinValidation.cs
- DataContext.cs
- TakeQueryOptionExpression.cs
- Parser.cs
- XmlArrayItemAttribute.cs
- DataListItemEventArgs.cs
- DesignColumn.cs