/* * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef META_SRC_EASING_CURVE_H #define META_SRC_EASING_CURVE_H #include #include #include #include #include "../base_object.h" META_BEGIN_NAMESPACE() namespace Curves { namespace Easing { // Declares a class which implements IEasingCurve interface #define DECLARE_EASING_CURVE(name) \ class name##EasingCurve final \ : public Internal::BaseObjectFwd { \ float Transform(float t) const override; \ }; DECLARE_EASING_CURVE(Linear) DECLARE_EASING_CURVE(InQuad) DECLARE_EASING_CURVE(OutQuad) DECLARE_EASING_CURVE(InOutQuad) DECLARE_EASING_CURVE(InCubic) DECLARE_EASING_CURVE(OutCubic) DECLARE_EASING_CURVE(InOutCubic) DECLARE_EASING_CURVE(InSine) DECLARE_EASING_CURVE(OutSine) DECLARE_EASING_CURVE(InOutSine) DECLARE_EASING_CURVE(InQuart) DECLARE_EASING_CURVE(OutQuart) DECLARE_EASING_CURVE(InOutQuart) DECLARE_EASING_CURVE(InQuint) DECLARE_EASING_CURVE(OutQuint) DECLARE_EASING_CURVE(InOutQuint) DECLARE_EASING_CURVE(InExpo) DECLARE_EASING_CURVE(OutExpo) DECLARE_EASING_CURVE(InOutExpo) DECLARE_EASING_CURVE(InCirc) DECLARE_EASING_CURVE(OutCirc) DECLARE_EASING_CURVE(InOutCirc) DECLARE_EASING_CURVE(InBack) DECLARE_EASING_CURVE(OutBack) DECLARE_EASING_CURVE(InOutBack) DECLARE_EASING_CURVE(InElastic) DECLARE_EASING_CURVE(OutElastic) DECLARE_EASING_CURVE(InOutElastic) DECLARE_EASING_CURVE(InBounce) DECLARE_EASING_CURVE(OutBounce) DECLARE_EASING_CURVE(InOutBounce) DECLARE_EASING_CURVE(StepStart) DECLARE_EASING_CURVE(StepEnd) } // namespace Easing } // namespace Curves META_END_NAMESPACE() #endif