Example #1
0
 public static void DoPulseData(XRNode node, HapticPulseData dat)
 {
     if (dat.type != HapticPulseType.NONE)
     {
         pulseData[(int)node] = dat;
     }
 }
    public HapticPulseData GetEndHitPulse(float relativeVelocity)
    {
        HapticPulseData dat = endHitPulse;

        dat.amplitude1 *= endHitVelocityCurve.Evaluate(relativeVelocity);
        dat.amplitude2 *= endHitVelocityCurve.Evaluate(relativeVelocity);
        return(dat);
    }
    public HapticPulseData GetBeginTouchPulse(float relativeVelocity)
    {
        HapticPulseData dat = beginTouchPulse;

        dat.amplitude1 *= beginTouchVelocityCurve.Evaluate(relativeVelocity);
        dat.amplitude2 *= beginTouchVelocityCurve.Evaluate(relativeVelocity);
        return(dat);
    }
Example #4
0
    private void Start()
    {
        for (int i = 0; i < NODE_COUNT; ++i)
        {
            pulseData[i] = new HapticPulseData();
        }

        GetDevices();
    }
Example #5
0
    public static void FlatPulse(XRNode node, float amplitude, float length)
    {
        HapticPulseData dat = new HapticPulseData();

        dat.type             = HapticPulseType.FLAT;
        dat.length           = length;
        dat.amplitude1       = amplitude;
        pulseData[(int)node] = dat;
    }
Example #6
0
    public static void LerpPulse(XRNode node, float startAmplitude, float endAmplitude, float length)
    {
        HapticPulseData dat = new HapticPulseData();

        dat.type             = HapticPulseType.LERP;
        dat.amplitude1       = startAmplitude;
        dat.amplitude2       = endAmplitude;
        dat.length           = length;
        pulseData[(int)node] = dat;
    }
Example #7
0
    public static void CosinePulse(XRNode node, float troughAmplitude, float crestAmplitude, float cycles, float length)
    {
        HapticPulseData dat = new HapticPulseData();

        dat.type             = HapticPulseType.COSINE;
        dat.amplitude1       = troughAmplitude;
        dat.amplitude2       = crestAmplitude;
        dat.cycles           = cycles;
        dat.length           = length;
        pulseData[(int)node] = dat;
    }
Example #8
0
    private void OnCollisionExit(Collision collision)
    {
        if (onCollisionNode != XRNode.LeftEye)
        {
            HapticPulseData dat = material.GetEndHitPulse(collision.relativeVelocity.magnitude);

            if (dat.amplitude1 > 0f || dat.amplitude2 > 0f)
            {
                HapticHandler.DoPulseData(onCollisionNode, dat);
            }
        }
    }