rsAnimation.h revision c1ed589021e280cda59a0521cb96b3e9eb629e1b
1c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams/*
2c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * Copyright (C) 2009 The Android Open Source Project
3c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams *
4c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * you may not use this file except in compliance with the License.
6c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * You may obtain a copy of the License at
7c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams *
8c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams *
10c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * Unless required by applicable law or agreed to in writing, software
11c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * See the License for the specific language governing permissions and
14c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams * limitations under the License.
15c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams */
16c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
17c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams#ifndef ANDROID_RS_ANIMATION_H
18c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams#define ANDROID_RS_ANIMATION_H
19c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
20c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams#include "rsUtils.h"
21c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams#include "rsObjectBase.h"
22c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
23c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams// ---------------------------------------------------------------------------
24c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsnamespace android {
25c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsnamespace renderscript {
26c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
27c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
28c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsclass Animation : public ObjectBase
29c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams{
30c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samspublic:
31c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    ~Animation();
32c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
33c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    static Animation * create(Context *rsc,
34c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams                              const float *inValues, const float *outValues,
35c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams                              uint32_t valueCount, RsAnimationInterpolation,
36c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams                              RsAnimationEdge pre, RsAnimationEdge post);
37c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
38c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    float eval(float) const;
39c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
40c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
41c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsprotected:
42c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    Animation(Context *rsc);
43c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
44c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
45c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
46c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    float evalInRange(float) const;
47c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
48c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
49c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
50c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    const float *mValuesInput;
51c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    const float *mValuesOutput;
52c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    uint32_t mValueCount;
53c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    RsAnimationInterpolation mInterpolation;
54c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    RsAnimationEdge mEdgePre;
55c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    RsAnimationEdge mEdgePost;
56c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
57c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    // derived
58c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    float mInputMin;
59c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams    float mInputMax;
60c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams};
61c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
62c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
63c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
64c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
65c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams}
66c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams}
67c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams#endif //ANDROID_STRUCTURED_ELEMENT_H
68c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams
69