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
- Compiler.cs
- WebPartConnection.cs
- FilterException.cs
- DocumentPageHost.cs
- ByteRangeDownloader.cs
- DBSchemaRow.cs
- DateTimeFormatInfoScanner.cs
- WebServiceResponseDesigner.cs
- BitSet.cs
- ToolStripAdornerWindowService.cs
- Renderer.cs
- brushes.cs
- StreamInfo.cs
- Compensate.cs
- validationstate.cs
- WSSecurityTokenSerializer.cs
- XsltException.cs
- SmiMetaData.cs
- CodeIdentifiers.cs
- URLString.cs
- ProcessProtocolHandler.cs
- EdgeModeValidation.cs
- RelationshipManager.cs
- HttpContext.cs
- WorkItem.cs
- localization.cs
- SplineKeyFrames.cs
- XmlSubtreeReader.cs
- IdleTimeoutMonitor.cs
- ApplicationContext.cs
- SqlConnectionFactory.cs
- MouseButtonEventArgs.cs
- FileCodeGroup.cs
- EntityConnectionStringBuilderItem.cs
- DesignerRegionMouseEventArgs.cs
- HttpResponseHeader.cs
- InkPresenter.cs
- BinaryParser.cs
- StatusBarPanelClickEvent.cs
- ListDependantCardsRequest.cs
- UpdatePanelTriggerCollection.cs
- AutomationEvent.cs
- ErrorRuntimeConfig.cs
- WebPartConnectionsDisconnectVerb.cs
- CodeValidator.cs
- TextRangeSerialization.cs
- XmlSchemaAny.cs
- SoapInteropTypes.cs
- OdbcReferenceCollection.cs
- AssemblyLoader.cs
- SmiEventSink.cs
- SafeNativeMethods.cs
- IPEndPoint.cs
- controlskin.cs
- InkCanvasAutomationPeer.cs
- CustomTrackingRecord.cs
- RelationshipNavigation.cs
- DataControlCommands.cs
- CollectionChangedEventManager.cs
- CollectionViewProxy.cs
- EnumType.cs
- HandlerBase.cs
- DesignConnection.cs
- DataShape.cs
- BrushMappingModeValidation.cs
- FileLogRecordHeader.cs
- SchemeSettingElementCollection.cs
- XmlDeclaration.cs
- ProcessInfo.cs
- ColorConverter.cs
- WebPartConnectionsCloseVerb.cs
- EditorPartChrome.cs
- DocumentOrderQuery.cs
- ListViewHitTestInfo.cs
- BoundingRectTracker.cs
- PartialTrustVisibleAssembly.cs
- ToolStripRenderEventArgs.cs
- ConfigurationPropertyAttribute.cs
- DataSourceControl.cs
- EventManager.cs
- PopupRootAutomationPeer.cs
- BulletedList.cs
- CachedFontFamily.cs
- Gdiplus.cs
- QueryAsyncResult.cs
- ThicknessAnimationBase.cs
- RequestCacheEntry.cs
- BrowsableAttribute.cs
- InputLangChangeEvent.cs
- SendActivity.cs
- unitconverter.cs
- MasterPageBuildProvider.cs
- GeneralTransform3DTo2DTo3D.cs
- Label.cs
- Matrix3D.cs
- InheritablePropertyChangeInfo.cs
- Imaging.cs
- PrimitiveXmlSerializers.cs
- PublisherMembershipCondition.cs
- URLMembershipCondition.cs