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
- DispatchWrapper.cs
- ExeConfigurationFileMap.cs
- SortKey.cs
- SQLByte.cs
- BeginSelectCardRequest.cs
- TransformerInfoCollection.cs
- mediapermission.cs
- TileBrush.cs
- StaticSiteMapProvider.cs
- TimeSpanMinutesConverter.cs
- NonceCache.cs
- OleDbCommandBuilder.cs
- TrustManagerPromptUI.cs
- BehaviorDragDropEventArgs.cs
- coordinatorfactory.cs
- ConfigurationConverterBase.cs
- TableHeaderCell.cs
- MulticastDelegate.cs
- DecoderReplacementFallback.cs
- CustomMenuItemCollection.cs
- PathSegmentCollection.cs
- MouseGestureConverter.cs
- AccessedThroughPropertyAttribute.cs
- StatusBarDrawItemEvent.cs
- BackEase.cs
- XmlDataCollection.cs
- _UriSyntax.cs
- HuffCodec.cs
- SqlClientWrapperSmiStreamChars.cs
- ChtmlTextWriter.cs
- CapabilitiesAssignment.cs
- RowParagraph.cs
- TreeWalkHelper.cs
- OpCellTreeNode.cs
- HealthMonitoringSection.cs
- CaseInsensitiveComparer.cs
- DynamicRendererThreadManager.cs
- CompositionDesigner.cs
- FlagsAttribute.cs
- CommandBindingCollection.cs
- WebException.cs
- GridEntryCollection.cs
- BrushValueSerializer.cs
- NameValueSectionHandler.cs
- XamlTypeMapper.cs
- Ops.cs
- MembershipUser.cs
- UseLicense.cs
- WebOperationContext.cs
- ListSortDescriptionCollection.cs
- DescriptionCreator.cs
- SecurityTokenSerializer.cs
- ImportRequest.cs
- CompilerState.cs
- DispatchChannelSink.cs
- RequestCacheValidator.cs
- PropertyFilterAttribute.cs
- ObjectListField.cs
- ContainerAction.cs
- KnowledgeBase.cs
- CLRBindingWorker.cs
- DataTableExtensions.cs
- SqlDataReader.cs
- RootBuilder.cs
- DependencyPropertyAttribute.cs
- LocalizationComments.cs
- DataPagerFieldCommandEventArgs.cs
- FolderBrowserDialog.cs
- PingReply.cs
- UnSafeCharBuffer.cs
- TextServicesDisplayAttribute.cs
- CompositeDataBoundControl.cs
- DetailsViewCommandEventArgs.cs
- CorrelationResolver.cs
- FrameworkPropertyMetadata.cs
- SimpleMailWebEventProvider.cs
- HierarchicalDataSourceControl.cs
- SerTrace.cs
- ChtmlTextWriter.cs
- EventDescriptorCollection.cs
- ValidationHelper.cs
- ForceCopyBuildProvider.cs
- ADMembershipUser.cs
- PageOrientation.cs
- ToolStripDropTargetManager.cs
- ILGenerator.cs
- DiffuseMaterial.cs
- RegistrationProxy.cs
- Ref.cs
- TypeForwardedToAttribute.cs
- Rights.cs
- pingexception.cs
- WorkflowMarkupSerializerMapping.cs
- GacUtil.cs
- CodeSubDirectoriesCollection.cs
- DesignTimeDataBinding.cs
- ToggleProviderWrapper.cs
- RequestCachePolicy.cs
- sqlnorm.cs
- TemplateXamlParser.cs