|
|
|
@@ -1686,8 +1686,10 @@ static void nlaevalchan_copy_values(NlaEvalChannelSnapshot *dst, NlaEvalChannelS
|
|
|
|
|
memcpy(dst->values, src->values, src->length * sizeof(float));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Copies lower necs to blended necs if upper necs is NULL or has zero influence.
|
|
|
|
|
* \return true if copied. */
|
|
|
|
|
/**
|
|
|
|
|
* Copies lower necs to blended necs if upper necs is NULL or has zero influence.
|
|
|
|
|
* \return true if copied.
|
|
|
|
|
*/
|
|
|
|
|
static bool nlaevalchan_blendOrcombine_try_copy_lower(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
NlaEvalChannelSnapshot *upper_necs,
|
|
|
|
|
const float upper_influence,
|
|
|
|
@@ -1702,10 +1704,10 @@ static bool nlaevalchan_blendOrcombine_try_copy_lower(NlaEvalChannelSnapshot *lo
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Based on blendmode, blend lower necs with upper necs into blended necs.
|
|
|
|
|
/**
|
|
|
|
|
* Based on blend-mode, blend lower necs with upper necs into blended necs.
|
|
|
|
|
*
|
|
|
|
|
* Each upper value's blend domain determines whether to blend or to copy directly
|
|
|
|
|
* from lower.
|
|
|
|
|
* Each upper value's blend domain determines whether to blend or to copy directly from lower.
|
|
|
|
|
*/
|
|
|
|
|
static void nlaevalchan_blend_value(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
NlaEvalChannelSnapshot *upper_necs,
|
|
|
|
@@ -1731,11 +1733,11 @@ static void nlaevalchan_blend_value(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Based on mixmode, provided by one the necs, combines lower necs with upper necs into blended
|
|
|
|
|
* necs.
|
|
|
|
|
/**
|
|
|
|
|
* Based on mix-mode, provided by one the necs,
|
|
|
|
|
* combines lower necs with upper necs into blended necs.
|
|
|
|
|
*
|
|
|
|
|
* Each upper value's blend domain determines whether to blend or to copy directly
|
|
|
|
|
* from lower.
|
|
|
|
|
* Each upper value's blend domain determines whether to blend or to copy directly from lower.
|
|
|
|
|
*/
|
|
|
|
|
static void nlaevalchan_combine_value(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
NlaEvalChannelSnapshot *upper_necs,
|
|
|
|
@@ -1764,7 +1766,8 @@ static void nlaevalchan_combine_value(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Quaternion combines lower necs with upper necs into blended necs.
|
|
|
|
|
/**
|
|
|
|
|
* Quaternion combines lower necs with upper necs into blended necs.
|
|
|
|
|
*
|
|
|
|
|
* Each upper value's blend domain determines whether to blend or to copy directly
|
|
|
|
|
* from lower.
|
|
|
|
@@ -1790,7 +1793,8 @@ static void nlaevalchan_combine_quaternion(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
lower_necs->values, upper_necs->values, upper_influence, r_blended_necs->values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Based on blendmode and mixmode, blend lower necs with upper necs into blended necs.
|
|
|
|
|
/**
|
|
|
|
|
* Based on blendmode and mixmode, blend lower necs with upper necs into blended necs.
|
|
|
|
|
*
|
|
|
|
|
* Each upper value's blend domain determines whether to blend or to copy directly
|
|
|
|
|
* from lower.
|
|
|
|
@@ -1841,7 +1845,8 @@ static void nlaevalchan_blendOrcombine(NlaEvalChannelSnapshot *lower_necs,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Based on blendmode, solve for the upper values such that when lower blended with upper then we
|
|
|
|
|
/**
|
|
|
|
|
* Based on blend-mode, solve for the upper values such that when lower blended with upper then we
|
|
|
|
|
* get blended values as a result.
|
|
|
|
|
*
|
|
|
|
|
* Only processes blended values in the remap domain. Successfully remapped upper values are placed
|
|
|
|
@@ -1873,7 +1878,8 @@ static void nlaevalchan_blend_value_get_inverted_upper_evalchan(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Based on mixmode, solve for the upper values such that when lower combined with upper then we
|
|
|
|
|
/**
|
|
|
|
|
* Based on mixmode, solve for the upper values such that when lower combined with upper then we
|
|
|
|
|
* get blended values as a result.
|
|
|
|
|
*
|
|
|
|
|
* Only processes blended values in the remap domain. Successfully remapped upper values are placed
|
|
|
|
@@ -1910,7 +1916,8 @@ static void nlaevalchan_combine_value_get_inverted_upper_evalchan(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Solve for the upper values such that when lower quaternion combined with upper then we get
|
|
|
|
|
/**
|
|
|
|
|
* Solve for the upper values such that when lower quaternion combined with upper then we get
|
|
|
|
|
* blended values as a result.
|
|
|
|
|
*
|
|
|
|
|
* All blended values must be in the remap domain. If successfully remapped, then all upper values
|
|
|
|
@@ -1941,7 +1948,8 @@ static void nlaevalchan_combine_quaternion_get_inverted_upper_evalchan(
|
|
|
|
|
BLI_bitmap_set_all(r_upper_necs->remap_domain.ptr, success, 4);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Based on blendmode and mix mode, solve for the upper values such that when lower blended or
|
|
|
|
|
/**
|
|
|
|
|
* Based on blend-mode and mix mode, solve for the upper values such that when lower blended or
|
|
|
|
|
* combined with upper then we get blended values as a result.
|
|
|
|
|
*
|
|
|
|
|
* Only processes blended values in the remap domain. Successfully remapped upper values are placed
|
|
|
|
@@ -2882,7 +2890,8 @@ void nlasnapshot_blend(NlaEvalData *eval_data,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Using \a blended_snapshot and \a lower_snapshot, we can solve for the \a r_upper_snapshot.
|
|
|
|
|
/**
|
|
|
|
|
* Using \a blended_snapshot and \a lower_snapshot, we can solve for the \a r_upper_snapshot.
|
|
|
|
|
*
|
|
|
|
|
* Only channels that exist within \a blended_snapshot are inverted.
|
|
|
|
|
*
|
|
|
|
|