Commit 1ae28b3f authored by haeussler's avatar haeussler
Browse files

Merge branch '109-harmonize-head-and-orientation-tracking-refvec-review' into...

Merge branch '109-harmonize-head-and-orientation-tracking-refvec-review' into '109-harmonize-head-and-orientation-tracking'

[mod] unified processing of the reference vector modes with OTR_TRACKING_REF_ORIENT

See merge request !489
parents b3244bb7 6b9e3c67
Loading
Loading
Loading
Loading
Loading
+10 −22
Original line number Diff line number Diff line
@@ -549,20 +549,16 @@ ivas_error ivas_orient_trk_GetMainOrientation(
        case OTR_TRACKING_NONE:
            *pOrientation = IdentityQuaternion();
            break;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        case OTR_TRACKING_REF_VEC:
        case OTR_TRACKING_REF_VEC_LEV:
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        case OTR_TRACKING_REF_ORIENT:
            *pOrientation = pOTR->refRot;
            break;
        case OTR_TRACKING_AVG_ORIENT:
            *pOrientation = pOTR->absAvgRot;
            break;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        case OTR_TRACKING_REF_VEC:
            *pOrientation = pOTR->refRot;
            break;
        case OTR_TRACKING_REF_VEC_LEV:
            *pOrientation = pOTR->refRot;
            break;
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
    }
    return IVAS_ERR_OK;
}
@@ -599,10 +595,9 @@ ivas_error ivas_orient_trk_SetReferenceVector(

    switch ( pOTR->trackingType )
    {
        case OTR_TRACKING_NONE:
        case OTR_TRACKING_REF_ORIENT:
        case OTR_TRACKING_AVG_ORIENT:
            return IVAS_ERR_WRONG_MODE;
        case OTR_TRACKING_NONE:
        case OTR_TRACKING_REF_VEC:
            acousticFrontVector = VectorSubtract( listenerPos, refPos );
            break;
@@ -629,8 +624,7 @@ ivas_error ivas_orient_trk_SetReferenceVector(
    ivasForwardVector.x = -1.0f;
    ivasForwardVector.y = 0.0f;
    ivasForwardVector.z = 0.0f;
    VectorRotationToQuaternion( acousticFrontVector, ivasForwardVector, &pOTR->refRot );

    VectorRotationToQuaternion( ivasForwardVector, acousticFrontVector, &pOTR->refRot );
    return IVAS_ERR_OK;
}
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
@@ -690,7 +684,10 @@ ivas_error ivas_orient_trk_Process(
        case OTR_TRACKING_NONE:
            pOTR->trkRot = absRot;
            break;

#ifdef OTR_REFERENCE_VECTOR_TRACKING
        case OTR_TRACKING_REF_VEC:
        case OTR_TRACKING_REF_VEC_LEV:
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        case OTR_TRACKING_REF_ORIENT:
            /* Reset average orientation   */
            pOTR->absAvgRot = absRot;
@@ -739,15 +736,6 @@ ivas_error ivas_orient_trk_Process(
            /* Compute filter coefficient corresponding to desired cutoff frequency */
            pOTR->alpha = sinf( 2.0f * EVS_PI * cutoffFrequency / updateRate );
            break;
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        case OTR_TRACKING_REF_VEC:
        case OTR_TRACKING_REF_VEC_LEV:
        {
            /* This processing step of the OTR_TRACKING_REF_VEC/OTR_TRACKING_REF_VEC_LEVEL is identical */
            QuaternionProduct( pOTR->refRot, absRot, &pOTR->trkRot );
            break;
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        default:
            result = IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Non-supported orientation tracking adaptation type" );
            break;