// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) // Source File Name: Rotate3d.java package com.jingdong.app.mall.utils.ui.anim; import android.graphics.Camera; import android.graphics.Matrix; import android.view.animation.Animation; import android.view.animation.Transformation; public class Rotate3d extends Animation { public static final int ROTATE_X = 0; public static final int ROTATE_XY = 3; public static final int ROTATE_XYZ = 6; public static final int ROTATE_XZ = 4; public static final int ROTATE_Y = 1; public static final int ROTATE_YZ = 5; public static final int ROTATE_Z = 2; private Camera mCamera; private float mCenterX; private float mCenterY; private float mFromDegree; private float mSaveFromDegree; private float mSaveToDegree; private float mToDegree; private int type; public Rotate3d(float f, float f1, float f2, float f3) { mFromDegree = f; mToDegree = f1; mCenterX = f2; mCenterY = f3; mSaveFromDegree = f; mSaveToDegree = f1; type = 1; } protected void applyTransformation(float f, Transformation transformation) { float f1 = mFromDegree + f * (mToDegree - mFromDegree); float f2 = mCenterX; float f3 = mCenterY; Matrix matrix = transformation.getMatrix(); if (f1 <= -76F) { mCamera.save(); rotate(-90F); mCamera.getMatrix(matrix); mCamera.restore(); } else if (f1 >= 76F) { mCamera.save(); rotate(90F); mCamera.getMatrix(matrix); mCamera.restore(); } else { mCamera.save(); mCamera.translate(0F, 0F, f2); rotate(f1); mCamera.translate(0F, 0F, -f2); mCamera.getMatrix(matrix); mCamera.restore(); } matrix.preTranslate(-f2, -f3); matrix.postTranslate(f2, f3); } public int getType() { return type; } public void initialize(int i, int j, int k, int l) { super.initialize(i, j, k, l); mCamera = new Camera(); } public void reverseTransformation(boolean flag) { if (flag) { mFromDegree = -mSaveFromDegree; mToDegree = -mSaveToDegree; } else { mFromDegree = mSaveFromDegree; mToDegree = mSaveToDegree; } } public void rotate(float f) { switch (type) { case ROTATE_X: mCamera.rotateX(f); break; case ROTATE_Y: mCamera.rotateY(f); break; case ROTATE_Z: mCamera.rotateZ(f); break; case ROTATE_XY: mCamera.rotateX(f); mCamera.rotateY(f); break; case ROTATE_XZ: mCamera.rotateX(f); mCamera.rotateZ(f); break; case ROTATE_YZ: mCamera.rotateY(f); mCamera.rotateZ(f); break; case ROTATE_XYZ: mCamera.rotateX(f); mCamera.rotateY(f); mCamera.rotateZ(f); break; } } public void setType(int i) { type = i; } }