From 94c89e6d5ef170933e2d791be6bab5e119982397 Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Fri, 13 Nov 2020 16:41:45 +0100 Subject: [PATCH] check ValueTs --- components/nifosg/controller.hpp | 35 +++++++++++++------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/components/nifosg/controller.hpp b/components/nifosg/controller.hpp index 17ad9564c0..a29fabefd0 100644 --- a/components/nifosg/controller.hpp +++ b/components/nifosg/controller.hpp @@ -60,11 +60,20 @@ namespace NifOsg ValueInterpolator() = default; - template - ValueInterpolator(typename std::enable_if_t< - std::is_same::value, - const Nif::NiFloatInterpolator - > * interpolator) : mDefaultVal(interpolator->defaultVal) + template< + class T, + typename = std::enable_if_t< + std::conjunction_v< + std::disjunction< + std::is_same, + std::is_same + >, + std::is_same + >, + T + > + > + ValueInterpolator(const T* interpolator) : mDefaultVal(interpolator->defaultVal) { if (interpolator->data.empty()) return; @@ -76,22 +85,6 @@ namespace NifOsg } }; - template - ValueInterpolator(typename std::enable_if_t< - std::is_same::value, - const Nif::NiPoint3Interpolator - > * interpolator) : mDefaultVal(interpolator->defaultVal) - { - if (interpolator->data.empty()) - return; - mKeys = interpolator->data->mKeyList; - if (mKeys) - { - mLastLowKey = mKeys->mKeys.end(); - mLastHighKey = mKeys->mKeys.end(); - } - } - ValueInterpolator(std::shared_ptr keys, ValueT defaultVal = ValueT()) : mKeys(keys) , mDefaultVal(defaultVal)