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/VertexEffect.java
34 34
  {
35 35
  public static final int NUM_UNIFORMS = 12;
36 36

  
37
  public static final int DISTORT    = MAX_EFFECTS*VERTEX    ;
38
  public static final int DEFORM     = MAX_EFFECTS*VERTEX + 1;
39
  public static final int SINK       = MAX_EFFECTS*VERTEX + 2;
40
  public static final int PINCH      = MAX_EFFECTS*VERTEX + 3;
41
  public static final int SWIRL      = MAX_EFFECTS*VERTEX + 4;
42
  public static final int WAVE       = MAX_EFFECTS*VERTEX + 5;
43
  public static final int NUM_EFFECTS= 6;
44

  
45
  static final int MAX = 5;
46
  private static final int MAX_UNITY_DIM = 3;
47

  
48 37
  Dynamic mDynamic0;
49 38
  Static mStatic0;
50 39
  Dynamic3D mDynamicCenter;
......
52 41
  Dynamic4D mDynamicRegion;
53 42
  Static4D  mStaticRegion;
54 43

  
55
  private final static float[] mUnity= new float[MAX_UNITY_DIM*NUM_EFFECTS];
56
  private final static int[]   mUnityDim = new int[NUM_EFFECTS];
57

  
58 44
///////////////////////////////////////////////////////////////////////////////////////////////////
59 45

  
60
  public VertexEffect(int name, float[] unity, int dimension, boolean center, boolean region, final String str)
46
  public VertexEffect(EffectName name, int dimension, boolean center, boolean region, float[] unity)
61 47
    {
62
    super(VERTEX,name,dimension,center,region,str);
63

  
64
    for(int i=0; i<unity.length; i++)
65
      {
66
      mUnity[name*MAX_UNITY_DIM+i] = unity[i];
67
      }
68

  
69
    mUnityDim[name] = unity.length;
70
    }
71

  
72
///////////////////////////////////////////////////////////////////////////////////////////////////
73

  
74
  public static boolean isUnity(int name, float[] buffer, int index)
75
    {
76
    switch(mUnityDim[name])
77
      {
78
      case 0: return true;
79
      case 1: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ];
80
      case 2: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ] &&
81
                     buffer[index+1]==mUnity[MAX_UNITY_DIM*name+1];
82
      case 3: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ] &&
83
                     buffer[index+1]==mUnity[MAX_UNITY_DIM*name+1] &&
84
                     buffer[index+2]==mUnity[MAX_UNITY_DIM*name+2];
85
      case 4: return buffer[index  ]==mUnity[MAX_UNITY_DIM*name  ] &&
86
                     buffer[index+1]==mUnity[MAX_UNITY_DIM*name+1] &&
87
                     buffer[index+2]==mUnity[MAX_UNITY_DIM*name+2] &&
88
                     buffer[index+3]==mUnity[MAX_UNITY_DIM*name+3];
89
      }
90

  
91
    return false;
48
    super(EffectType.VERTEX,name,dimension,center,region,unity);
92 49
    }
93 50
  }

Also available in: Unified diff