Commit 5ab829b1 authored by Gregory Pallone's avatar Gregory Pallone
Browse files

optimize wrapping angle

parent 492d38b5
Loading
Loading
Loading
Loading
+11 −23
Original line number Diff line number Diff line
@@ -3031,21 +3031,11 @@ static void IsmPositionProvider_getNextFrame(
            objectMetadataBuffer->positions[objIdx].non_diegetic_flag = 0;
        }

        /* Wrap azimuth to lie within (-180, 180] range */
#ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW
        if ( objectMetadataBuffer->positions[objIdx].non_diegetic_flag )
        {
            while ( objectMetadataBuffer->positions[objIdx].azimuth < -180.0f )
            {
                objectMetadataBuffer->positions[objIdx].azimuth += 360.0f;
            }
            while ( objectMetadataBuffer->positions[objIdx].azimuth >= 180.0f )
            {
                objectMetadataBuffer->positions[objIdx].azimuth -= 360.0f;
            }
        }
        else
        {
        /* Wrap azimuth to lie within [0, 360) range */
#else
        /* Wrap azimuth to lie within (-180, 180] range */
#endif
        while ( objectMetadataBuffer->positions[objIdx].azimuth < 0.0f )
        {
            objectMetadataBuffer->positions[objIdx].azimuth += 360.0f;
@@ -3054,18 +3044,16 @@ static void IsmPositionProvider_getNextFrame(
        {
            objectMetadataBuffer->positions[objIdx].azimuth -= 360.0f;
        }
        }
#else
        while ( objectMetadataBuffer->positions[objIdx].azimuth < 0.0f )
        {
            objectMetadataBuffer->positions[objIdx].azimuth += 360.0f;
        }
        while ( objectMetadataBuffer->positions[objIdx].azimuth >= 360.0f )

#ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW
        if ( objectMetadataBuffer->positions[objIdx].non_diegetic_flag && objectMetadataBuffer->positions[objIdx].azimuth >= 180.0f )
        {
            /* Wrap azimuth to lie within [-180, 180) range for non-diegetic panning */
            objectMetadataBuffer->positions[objIdx].azimuth -= 360.0f;
        }
#endif


        /* Clamp elevation to lie within [-90, 90] range (can't be wrapped easily) */
        objectMetadataBuffer->positions[objIdx].elevation = min( max( objectMetadataBuffer->positions[objIdx].elevation, -90 ), 90 );
        /* Wrap yaw to lie within (-180, 180] range */