/* * 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_API_EASING_CURVE_H #define META_API_EASING_CURVE_H #include #include #include META_BEGIN_NAMESPACE() namespace Curves { namespace Easing { #define META_IMPLEMENT_EASING_CURVE_API(name) \ class name : public Internal::ObjectInterfaceAPI { \ META_API(name) \ META_API_OBJECT_CONVERTIBLE(META_NS::ICurve1D) \ META_API_OBJECT_CONVERTIBLE(META_NS::IEasingCurve) \ }; META_IMPLEMENT_EASING_CURVE_API(Linear) META_IMPLEMENT_EASING_CURVE_API(InQuad) META_IMPLEMENT_EASING_CURVE_API(OutQuad) META_IMPLEMENT_EASING_CURVE_API(InOutQuad) META_IMPLEMENT_EASING_CURVE_API(InCubic) META_IMPLEMENT_EASING_CURVE_API(OutCubic) META_IMPLEMENT_EASING_CURVE_API(InOutCubic) META_IMPLEMENT_EASING_CURVE_API(InSine) META_IMPLEMENT_EASING_CURVE_API(OutSine) META_IMPLEMENT_EASING_CURVE_API(InOutSine) META_IMPLEMENT_EASING_CURVE_API(InQuart) META_IMPLEMENT_EASING_CURVE_API(OutQuart) META_IMPLEMENT_EASING_CURVE_API(InOutQuart) META_IMPLEMENT_EASING_CURVE_API(InQuint) META_IMPLEMENT_EASING_CURVE_API(OutQuint) META_IMPLEMENT_EASING_CURVE_API(InOutQuint) META_IMPLEMENT_EASING_CURVE_API(InExpo) META_IMPLEMENT_EASING_CURVE_API(OutExpo) META_IMPLEMENT_EASING_CURVE_API(InOutExpo) META_IMPLEMENT_EASING_CURVE_API(InCirc) META_IMPLEMENT_EASING_CURVE_API(OutCirc) META_IMPLEMENT_EASING_CURVE_API(InOutCirc) META_IMPLEMENT_EASING_CURVE_API(InBack) META_IMPLEMENT_EASING_CURVE_API(OutBack) META_IMPLEMENT_EASING_CURVE_API(InOutBack) META_IMPLEMENT_EASING_CURVE_API(InElastic) META_IMPLEMENT_EASING_CURVE_API(OutElastic) META_IMPLEMENT_EASING_CURVE_API(InOutElastic) META_IMPLEMENT_EASING_CURVE_API(InBounce) META_IMPLEMENT_EASING_CURVE_API(OutBounce) META_IMPLEMENT_EASING_CURVE_API(InOutBounce) META_IMPLEMENT_EASING_CURVE_API(StepStart) META_IMPLEMENT_EASING_CURVE_API(StepEnd) } // namespace Easing } // namespace Curves META_END_NAMESPACE() #endif // META_API_EASING_CURVE_H