Project

General

Profile

« Previous | Next » 

Revision da9b3f07

Added by Leszek Koltunski almost 7 years ago

Progress with support for Effect classes.

The library compiles now!

View differences:

src/main/java/org/distorted/library/effect/MatrixEffect.java
29 29
  {
30 30
  public static final int NUM_UNIFORMS = 7;
31 31

  
32
  public static final int MOVE       = MAX_EFFECTS*MATRIX    ;
33
  public static final int SCALE      = MAX_EFFECTS*MATRIX + 1;
34
  public static final int ROTATE     = MAX_EFFECTS*MATRIX + 2;
35
  public static final int QUATERNION = MAX_EFFECTS*MATRIX + 3;
36
  public static final int SHEAR      = MAX_EFFECTS*MATRIX + 4;
37
  public static final int NUM_EFFECTS= 5;
38

  
39
  static final int MAX = 5;
40
  private static final int MAX_UNITY_DIM = 3;
41

  
42 32
  Dynamic mDynamic0,mDynamic1;
43 33
  Static  mStatic0 , mStatic1;
44 34
  Dynamic3D mDynamicCenter;
45 35
  Static3D mStaticCenter;
46 36

  
47
  private final static float[] mUnity= new float[MAX_UNITY_DIM*NUM_EFFECTS];
48
  private final static int[]   mUnityDim = new int[NUM_EFFECTS];
49

  
50 37
///////////////////////////////////////////////////////////////////////////////////////////////////
51 38

  
52
  public MatrixEffect(int name, float[] unity, int dimension, boolean center, boolean region, final String str)
39
  public MatrixEffect(EffectName name, int dimension, boolean center, boolean region, float[] unity)
53 40
    {
54
    super(MATRIX,name,dimension,center,region,str);
55

  
56
    for(int i=0; i<unity.length; i++)
57
      {
58
      mUnity[name*MAX_UNITY_DIM+i] = unity[i];
59
      }
60

  
61
    mUnityDim[name] = unity.length;
62
    }
63

  
64
///////////////////////////////////////////////////////////////////////////////////////////////////
65

  
66
  public static boolean isUnity(int name, float[] buffer, int index)
67
    {
68
    switch(mUnityDim[name])
69
      {
70
      case 0: return true;
71
      case 1: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ];
72
      case 2: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ] &&
73
                     buffer[index+1]==mUnity[MAX_UNITY_DIM*name+1];
74
      case 3: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ] &&
75
                     buffer[index+1]==mUnity[MAX_UNITY_DIM*name+1] &&
76
                     buffer[index+2]==mUnity[MAX_UNITY_DIM*name+2];
77
      case 4: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ] &&
78
                     buffer[index+1]==mUnity[MAX_UNITY_DIM*name+1] &&
79
                     buffer[index+2]==mUnity[MAX_UNITY_DIM*name+2] &&
80
                     buffer[index+3]==mUnity[MAX_UNITY_DIM*name+3];
81
      }
82

  
83
    return false;
41
    super(EffectType.MATRIX,name,dimension,center,region,unity);
84 42
    }
85 43
  }

Also available in: Unified diff