Пример #1
0
    //Haptic Properties generic function
    private void ReadHapticProperties(int ObjId, GameObject obj)
    {
        myHapticPropertiesScript = obj.transform.GetComponent <HapticProperties>();

        if (myHapticPropertiesScript == null)        //Set default Values
        {
            PluginImport.SetStiffness(ObjId, 1.0f);
            PluginImport.SetDamping(ObjId, 0.0f);
            PluginImport.SetStaticFriction(ObjId, 0.0f);
            PluginImport.SetDynamicFriction(ObjId, 0.0f);
            PluginImport.SetTangentialStiffness(ObjId, 0.0f);
            PluginImport.SetTangentialDamping(ObjId, 0.0f);
            PluginImport.SetPopThrough(ObjId, 0.0f);
            PluginImport.SetPuncturedStaticFriction(ObjId, 0.0f);
            PluginImport.SetPuncturedDynamicFriction(ObjId, 0.0f);
            PluginImport.SetMass(ObjId, 0.0f);
            PluginImport.SetFixed(ObjId, true);
            Debug.Log("Haptic Characteristics not set for " + obj.name);
        }
        else
        {
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("stiffness"), myHapticPropertiesScript.stiffness);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("damping"), myHapticPropertiesScript.damping);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("staticFriction"), myHapticPropertiesScript.staticFriction);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("dynamicFriction"), myHapticPropertiesScript.dynamicFriction);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("tangentialStiffness"), myHapticPropertiesScript.tangentialStiffness);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("tangentialDamping"), myHapticPropertiesScript.tangentialDamping);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("popThrough"), myHapticPropertiesScript.popThrough);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("puncturedStaticFriction"), myHapticPropertiesScript.puncturedStaticFriction);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("puncturedDynamicFriction"), myHapticPropertiesScript.puncturedDynamicFriction);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("mass"), myHapticPropertiesScript.mass);
            PluginImport.SetHapticProperty(ObjId, ConverterClass.ConvertStringToByteToIntPtr("fixed"), System.Convert.ToInt32(myHapticPropertiesScript.fixedObj));
        }
    }
Пример #2
0
    //Collision detection
    void OnCollisionEnter(Collision collision)
    {
        //Haptic properties of the object we are colliding with
        HapticProperties props = collision.gameObject.GetComponentInChildren <HapticProperties>();

        //Get Stiffness
        float stiffness = props.stiffness;

        //Set friction or viscosity effect
        string type;

        if (stiffness >= maxStiffness)
        {
            type = ForceManager.FRICTION;
        }
        else
        {
            type = ForceManager.VISCOSITY;
        }

        //Get current cursor position
        Vector3 cursorPosition = GameObject.Find("Cursor").transform.position;

        //Set friction anchor point and direction effect
        float[] position  = new float[] { cursorPosition.x, cursorPosition.y, cursorPosition.z };
        float[] direction = new float[] { -cursorPosition.x, -cursorPosition.y, -cursorPosition.z };

        //Constant gain and magnitude
        float gain = 0.2f;

        ForceManager.SetEnvironmentForce(type, forceIndex, position, direction, gain, stiffness, 0, 0);
        Debug.Log("Force started with index " + forceIndex);
    }
    public bool Equals(HapticProperties h2)
    {
        return((Stiffness == h2.Stiffness) &&
               (Surface == h2.Surface) &&
               // Friction
               (StaticFriction == h2.StaticFriction) &&
               (DynamicFriction == h2.DynamicFriction) &&
               (Level == h2.Level) &&
               // Magnetic
               (MagneticDistance == h2.MagneticDistance) &&
               (MagneticForce == h2.MagneticForce) &&
               // Viscosity
               (Viscosity == h2.Viscosity) &&

               (SticksplipStiffness == h2.SticksplipStiffness) &&
               (SticksplipForce == h2.SticksplipForce) &&

               (VibrationFreq == h2.VibrationFreq) &&
               (VibrationAmplitude == h2.VibrationAmplitude));
    }
Пример #4
0
    //Haptic Properties generic function
    private void ReadHapticProperties(int ObjId, GameObject obj)
    {
        myHapticPropertiesScript = obj.transform.GetComponent<HapticProperties>();

        if (myHapticPropertiesScript == null)//Set default Values
        {
            PluginImport.SetStiffness(ObjId, 1.0f);
            PluginImport.SetDamping(ObjId, 0.0f);
            PluginImport.SetStaticFriction(ObjId, 0.0f);
            PluginImport.SetDynamicFriction(ObjId, 0.0f);
            PluginImport.SetTangentialStiffness(ObjId, 0.0f);
            PluginImport.SetTangentialDamping(ObjId, 0.0f);
            PluginImport.SetPopThrough(ObjId, 0.0f);
            PluginImport.SetPuncturedStaticFriction(ObjId, 0.0f);
            PluginImport.SetPuncturedDynamicFriction(ObjId, 0.0f);
            PluginImport.SetMass(ObjId,0.0f);
            PluginImport.SetFixed(ObjId,true);
            Debug.Log ("Haptic Characteristics not set for " + obj.name);
        }
        else
        {
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("stiffness"),myHapticPropertiesScript.stiffness);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("damping"),myHapticPropertiesScript.damping);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("staticFriction"),myHapticPropertiesScript.staticFriction);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("dynamicFriction"),myHapticPropertiesScript.dynamicFriction);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("tangentialStiffness"),myHapticPropertiesScript.tangentialStiffness);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("tangentialDamping"),myHapticPropertiesScript.tangentialDamping);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("popThrough"),myHapticPropertiesScript.popThrough);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("puncturedStaticFriction"),myHapticPropertiesScript.puncturedStaticFriction);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("puncturedDynamicFriction"),myHapticPropertiesScript.puncturedDynamicFriction);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("mass"),myHapticPropertiesScript.mass);
            PluginImport.SetHapticProperty(ObjId,ConverterClass.ConvertStringToByteToIntPtr("fixed"),System.Convert.ToInt32(myHapticPropertiesScript.fixedObj));

            /*PluginImport.SetStiffness(ObjId, myHapticPropertiesScript.stiffness);
            PluginImport.SetDamping(ObjId, myHapticPropertiesScript.damping);
            PluginImport.SetStaticFriction(ObjId, myHapticPropertiesScript.staticFriction);
            PluginImport.SetDynamicFriction(ObjId, myHapticPropertiesScript.dynamicFriction);
            PluginImport.SetTangentialStiffness(ObjId, myHapticPropertiesScript.tangentialStiffness);
            PluginImport.SetTangentialDamping(ObjId, myHapticPropertiesScript.tangentialDamping);
            PluginImport.SetPopThrough(ObjId, myHapticPropertiesScript.popThrough);
            PluginImport.SetPuncturedStaticFriction(ObjId, myHapticPropertiesScript.puncturedStaticFriction);
            PluginImport.SetPuncturedDynamicFriction(ObjId, myHapticPropertiesScript.puncturedDynamicFriction);
            PluginImport.SetMass(ObjId,myHapticPropertiesScript.mass);
            PluginImport.SetFixed(ObjId,myHapticPropertiesScript.fixedObj);	*/
        }
    }