ZeroVR/ZeroPacientVR/Assets/Octave3D World Builder/Scripts/Interaction/Raycasting/MeshRayHit.cs

44 lines
1.5 KiB
C#

#if UNITY_EDITOR
using UnityEngine;
namespace O3DWB
{
public class MeshRayHit
{
#region Private Variables
private Ray _ray;
private float _hitEnter;
private Octave3DMesh _hitMesh;
private Octave3DMeshCollider _hitCollider;
private int _hitTraingleIndex;
private Vector3 _hitPoint;
private Vector3 _hitNormal;
#endregion
#region Public Properties
public Ray Ray { get { return _ray; } }
public float HitEnter { get { return _hitEnter; } }
public Octave3DMesh HitMesh { get { return _hitMesh; } }
public Octave3DMeshCollider HitCollider { get { return _hitCollider; } }
public int HitTriangleIndex { get { return _hitTraingleIndex; } }
public Vector3 HitPoint { get { return _hitPoint; } }
public Vector3 HitNormal { get { return _hitNormal; } }
#endregion
#region Constructors
public MeshRayHit(Ray ray, float hitEnter, Octave3DMesh hitMesh, int hitTriangleIndex, Vector3 hitPoint, Vector3 hitNormal, TransformMatrix meshTransformMatrix)
{
_ray = ray;
_hitEnter = hitEnter;
_hitMesh = hitMesh;
_hitCollider = new Octave3DMeshCollider(_hitMesh, meshTransformMatrix);
_hitTraingleIndex = hitTriangleIndex;
_hitPoint = hitPoint;
_hitNormal = hitNormal;
_hitNormal.Normalize();
}
#endregion
}
}
#endif