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" 224edf030cbb7c6ac08dc563335c2af73c20f6e2e5Alex Sakhartchouk#include "rsDefines.h" 23c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams// --------------------------------------------------------------------------- 24c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsnamespace android { 25c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsnamespace renderscript { 26c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 27c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 28afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukclass Animation : public ObjectBase { 29c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samspublic: 30c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams ~Animation(); 31c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 32c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams static Animation * create(Context *rsc, 33c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams const float *inValues, const float *outValues, 34c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams uint32_t valueCount, RsAnimationInterpolation, 35c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams RsAnimationEdge pre, RsAnimationEdge post); 36c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 37c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams float eval(float) const; 38b825f67adb5d1e1751fe108e6dbf9c6f2555c283Alex Sakhartchouk 39e3150cfb3edb028407669e4a65e087eae77e718cJason Sams virtual void serialize(Context *rsc, OStream *stream) const; 40b825f67adb5d1e1751fe108e6dbf9c6f2555c283Alex Sakhartchouk virtual RsA3DClassID getClassId() const { return RS_A3D_CLASS_ID_ANIMATION; } 41fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk static Animation *createFromStream(Context *rsc, IStream *stream); 42c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 43c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Samsprotected: 44c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams Animation(Context *rsc); 45c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 46c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 47c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 48c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams float evalInRange(float) const; 49c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 50c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 51c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 52c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams const float *mValuesInput; 53c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams const float *mValuesOutput; 54c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams uint32_t mValueCount; 55c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams RsAnimationInterpolation mInterpolation; 56c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams RsAnimationEdge mEdgePre; 57c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams RsAnimationEdge mEdgePost; 58c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 59c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams // derived 60c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams float mInputMin; 61c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams float mInputMax; 62c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams}; 63c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 64c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams} 65c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams} 66c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams#endif //ANDROID_STRUCTURED_ELEMENT_H 67c1ed589021e280cda59a0521cb96b3e9eb629e1bJason Sams 68