HandModel.GetArmRotation C# (CSharp) Method

GetArmRotation() public method

public GetArmRotation ( ) : Quaternion
return Quaternion
  public Quaternion GetArmRotation() {
    if (controller_ != null && hand_ != null) {
      Quaternion local_rotation = hand_.Arm.Basis.Rotation (mirror_z_axis_);
      return controller_.transform.rotation * local_rotation;
    }
    if (forearm) {
      return forearm.rotation;
    }
    return Quaternion.identity;
  }

Usage Example

Esempio n. 1
0
        void AlignArmHUD(HandModel handModel)
        {
            ArmHUDgeom.SetActive(true);

            if (targetHandID != handModel.GetInstanceID()) {
                // Reinitialize ArmHUD alignment
                //Debug.Log ("Reinitialize ArmHUD alignment Time.time = " + Time.time);
                smoothedPosition.reset = true;
                smoothedRotation.reset = true;
                targetHandID = handModel.GetInstanceID();
            }
            float sqrCos = handModel.GetArmDirection().y;
            sqrCos *= sqrCos;
            float delay = sqrCos * verticalFilterTime + (1f - sqrCos) * horizontalFilterTime;
            //Debug.Log ("delay(sqrCos = " + sqrCos + ", Time.deltaTime = " + Time.deltaTime + ") = " + delay);
            smoothedPosition.delay = delay;
            smoothedRotation.delay = delay;
            Vector3 localArmCenter = transform.parent.InverseTransformPoint (handModel.GetArmCenter ());
            Quaternion localArmRotation = Quaternion.Inverse (transform.parent.rotation) * handModel.GetArmRotation ();
            transform.localPosition = smoothedPosition.Update(localArmCenter, Time.deltaTime);
            transform.localRotation = smoothedRotation.Update(localArmRotation, Time.deltaTime);

            if(ArmHUDisOpen == false){//Change this to state transition from ARMHUDSTATE_NOLEFTHAND -> ARMHUDSTATE_STATUS_ETC
                if(Activate()){
                    ArmHUDAnimator.Play("Take 001_Opening");
                    ArmHUDeventsAnimator.Play("WristGraphicsEvents");
                    ArmHUDisOpen = true;
                }
                else{
                    ArmHUDState.Change (ARMHUDSTATE_STATUS_ETC);
                    return;
                }
            }
            //			ArmHUDbaseLookAtGRP.LookAt(LookTarget);
            Vector3 localEulerAngles = ArmHUDbaseLookAtGRP.localEulerAngles;
            if(ArmHUDisOpen == true){
                if(localEulerAngles.x < 340.0f && localEulerAngles.x > 280.0f){
                    ArmHUDState.Change (ARMHUDSTATE_STATUS_ETC);
                }
                else if(localEulerAngles.x >26.0f && localEulerAngles.x < 80.0f && ArmHUDState.state != ARMHUDSTATE_PANELVISIBLE)
                {
                    ArmHUDState.Change (ARMHUDSTATE_SETTINGS_ONLY);
                }
            }
            //			localEulerAngles.y = 90f;
            //			localEulerAngles.z = 0f;
            //			ArmHUDbaseLookAtGRP.localEulerAngles = localEulerAngles;
        }
All Usage Examples Of HandModel::GetArmRotation