Interpolator.h revision e45b1fd03b524d2b57cc6c222d89076a31a08bea
1e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck/*
2e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * Copyright (C) 2014 The Android Open Source Project
3e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *
4e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * Licensed under the Apache License, Version 2.0 (the "License");
5e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * you may not use this file except in compliance with the License.
6e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * You may obtain a copy of the License at
7e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *
8e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *      http://www.apache.org/licenses/LICENSE-2.0
9e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *
10e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * Unless required by applicable law or agreed to in writing, software
11e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * distributed under the License is distributed on an "AS IS" BASIS,
12e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * See the License for the specific language governing permissions and
14e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * limitations under the License.
15e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck */
16e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#ifndef INTERPOLATOR_H
17e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#define INTERPOLATOR_H
18e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
19e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Recknamespace android {
20e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Recknamespace uirenderer {
21e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
22e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckclass Interpolator {
23e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckpublic:
24e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    virtual ~Interpolator() {}
25e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
26e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    virtual float interpolate(float input) = 0;
27e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
28e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    static Interpolator* createDefaultInterpolator();
29e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
30e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckprotected:
31e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    Interpolator() {}
32e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck};
33e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
34e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckclass AccelerateDecelerateInterpolator : public Interpolator {
35e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckpublic:
36e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    AccelerateDecelerateInterpolator() {}
37e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    virtual ~AccelerateDecelerateInterpolator() {}
38e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
39e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    virtual float interpolate(float input);
40e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck};
41e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
42e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck} /* namespace uirenderer */
43e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck} /* namespace android */
44e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
45e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#endif /* INTERPOLATOR_H */
46