RayMeshGeometry3DHitTestResult.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / 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.
//---------------------------------------------------------------------------- 
//
// 
//    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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK