1804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu/* 2804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * Copyright (C) 2015 The Android Open Source Project 3804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * 4804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * Licensed under the Apache License, Version 2.0 (the "License"); 5804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * you may not use this file except in compliance with the License. 6804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * You may obtain a copy of the License at 7804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * 8804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * http://www.apache.org/licenses/LICENSE-2.0 9804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * 10804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * Unless required by applicable law or agreed to in writing, software 11804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * distributed under the License is distributed on an "AS IS" BASIS, 12804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * See the License for the specific language governing permissions and 14804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * limitations under the License. 15804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu */ 16804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu 17804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#ifndef ANDROID_HWUI_VECTORDRAWABLE_UTILS_H 18804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#define ANDROID_HWUI_VECTORDRAWABLE_UTILS_H 19804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu 204bbc2931263b232fba61807fca00e127573eff42Doris Liu#include "VectorDrawable.h" 21804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu 22804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include <cutils/compiler.h> 23804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include "SkPath.h" 24804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include <vector> 25804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu 26804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liunamespace android { 27804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liunamespace uirenderer { 28804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu 29804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liuclass VectorDrawableUtils { 30804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liupublic: 31804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu ANDROID_API static bool canMorph(const PathData& morphFrom, const PathData& morphTo); 32804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu ANDROID_API static bool interpolatePathData(PathData* outData, const PathData& morphFrom, 33804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu const PathData& morphTo, float fraction); 34804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu ANDROID_API static void verbsToPath(SkPath* outPath, const PathData& data); 35804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu static void interpolatePaths(PathData* outPathData, const PathData& from, const PathData& to, 36804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu float fraction); 37804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu}; 38804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu} // namespace uirenderer 39804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu} // namespace android 40804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#endif /* ANDROID_HWUI_VECTORDRAWABLE_UTILS_H*/ 41