/* * Copyright (c) 2021 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. */ #include "core/animation/curves.h" #include namespace OHOS::Ace { const RefPtr Curves::DECELE = AceType::MakeRefPtr(); const RefPtr Curves::LINEAR = AceType::MakeRefPtr(); const RefPtr Curves::SINE = AceType::MakeRefPtr(); const RefPtr Curves::EASE = AceType::MakeRefPtr(0.25f, 0.1f, 0.25f, 1.0f); const RefPtr Curves::EASE_IN = AceType::MakeRefPtr(0.42f, 0.0f, 1.0f, 1.0f); const RefPtr Curves::EASE_OUT = AceType::MakeRefPtr(0.0f, 0.0f, 0.58f, 1.0f); const RefPtr Curves::EASE_IN_OUT = AceType::MakeRefPtr(0.42f, 0.0f, 0.58f, 1.0f); const RefPtr Curves::FAST_OUT_SLOW_IN = AceType::MakeRefPtr(0.4f, 0.0f, 0.2f, 1.0f); const RefPtr Curves::LINEAR_OUT_SLOW_IN = AceType::MakeRefPtr(0.0f, 0.0f, 0.2f, 1.0f); const RefPtr Curves::FAST_OUT_LINEAR_IN = AceType::MakeRefPtr(0.4f, 0.0f, 1.0f, 1.0f); const RefPtr Curves::FRICTION = AceType::MakeRefPtr(0.2f, 0.0f, 0.2f, 1.0f); const RefPtr Curves::EXTREME_DECELERATION = AceType::MakeRefPtr(0.0f, 0.0f, 0.0f, 1.0f); const RefPtr Curves::SHARP = AceType::MakeRefPtr(0.33f, 0.0f, 0.67f, 1.0f); const RefPtr Curves::RHYTHM = AceType::MakeRefPtr(0.7f, 0.0f, 0.2f, 1.0f); const RefPtr Curves::SMOOTH = AceType::MakeRefPtr(0.4f, 0.0f, 0.4f, 1.0f); const RefPtr Curves::ANTICIPATE = AceType::MakeRefPtr(2.0f); const RefPtr Curves::MAGNETIC = AceType::MakeRefPtr(0.8f, 0.0f, 1.0f, 0.6f); const RefPtr Curves::ELASTICS = AceType::MakeRefPtr(2.0f); const std::string Curves::DEFAULT_CURVE_NAME = "Curves.Ease"; std::string Curves::ToString(const RefPtr& curve) { static const std::map, std::string> curveNames = { { Curves::EASE, Curves::DEFAULT_CURVE_NAME }, { Curves::EASE_IN, "Curves.EaseIn" }, { Curves::EASE_OUT, "Curves.EaseOut" }, { Curves::EASE_IN_OUT, "Curves.EaseInOut" }, { Curves::FAST_OUT_SLOW_IN, "Curves.FastOutSlowIn" }, { Curves::LINEAR_OUT_SLOW_IN, "Curves.LinearOutSlowIn" }, { Curves::FAST_OUT_LINEAR_IN, "Curves.FastOutLinearIn" }, { Curves::FRICTION, "Curves.Friction" }, { Curves::EXTREME_DECELERATION, "Curves.ExtremeDeceleration" }, { Curves::SHARP, "Curves.Sharp" }, { Curves::SMOOTH, "Curves.Smooth" }, { Curves::LINEAR, "Curves.Linear" } }; auto iter = curveNames.find(curve); if (iter != curveNames.end()) { return iter->second; } return Curves::DEFAULT_CURVE_NAME; } } // namespace OHOS::Ace