Project

General

Profile

« Previous | Next » 

Revision 15aa7d94

Added by Leszek Koltunski almost 7 years ago

Progress with support for Effect classes.

View differences:

src/main/java/org/distorted/library/effect/VertexEffectDistort.java
22 22
import org.distorted.library.type.Data3D;
23 23
import org.distorted.library.type.Data4D;
24 24
import org.distorted.library.type.Dynamic3D;
25
import org.distorted.library.type.Dynamic4D;
25 26
import org.distorted.library.type.Static3D;
27
import org.distorted.library.type.Static4D;
26 28

  
27 29
///////////////////////////////////////////////////////////////////////////////////////////////////
28 30

  
......
48 50
      mStatic0 = (Static3D)vector;
49 51
      }
50 52

  
51
    mCenter = center;
52
    mRegion = region;
53
    if( center instanceof Static3D)
54
      {
55
      mStaticCenter = (Static3D)center;
56
      }
57
    else if( center instanceof Dynamic3D )
58
      {
59
      mDynamicCenter = (Dynamic3D)center;
60
      }
61

  
62
    if( region instanceof Static4D)
63
      {
64
      mStaticRegion = (Static4D)region;
65
      }
66
    else if( region instanceof Dynamic4D)
67
      {
68
      mDynamicRegion = (Dynamic4D)region;
69
      }
53 70
    }
54 71

  
55 72
///////////////////////////////////////////////////////////////////////////////////////////////////
......
67 84
      mStatic0 = (Static3D)vector;
68 85
      }
69 86

  
70
    mCenter = center;
87
    if( center instanceof Static3D)
88
      {
89
      mStaticCenter = (Static3D)center;
90
      }
91
    else if( center instanceof Dynamic3D )
92
      {
93
      mDynamicCenter = (Dynamic3D)center;
94
      }
95

  
96
    mStaticRegion = new Static4D(0,0,Float.MAX_VALUE, Float.MAX_VALUE);
97
    }
98

  
99
///////////////////////////////////////////////////////////////////////////////////////////////////
100

  
101
  public boolean compute(float[] uniforms, int index, long currentDuration, long step )
102
    {
103
    boolean ret = false;
104

  
105
    if( mDynamicCenter!=null )
106
      {
107
      mDynamicCenter.interpolateMain(uniforms,index+5,currentDuration,step);
108
      }
109
    else
110
      {
111
      uniforms[index+5] = mStaticCenter.getX();
112
      uniforms[index+6] = mStaticCenter.getY();
113
      uniforms[index+7] = mStaticCenter.getZ();
114
      }
115

  
116
    if( mDynamicRegion!=null )
117
      {
118
      mDynamicRegion.interpolateMain(uniforms,index+8,currentDuration,step);
119
      }
120
    else
121
      {
122
      uniforms[index+ 8] = mStaticRegion.getX();
123
      uniforms[index+ 9] = mStaticRegion.getY();
124
      uniforms[index+10] = mStaticRegion.getZ();
125
      uniforms[index+11] = mStaticRegion.getW();
126
      }
127

  
128
    if( mDynamic0!=null )
129
      {
130
      ret = mDynamic0.interpolateMain(uniforms,index,currentDuration,step);
131
      }
132
    else
133
      {
134
      uniforms[index  ] = ((Static3D)mStatic0).getX();
135
      uniforms[index+1] = ((Static3D)mStatic0).getY();
136
      uniforms[index+2] = ((Static3D)mStatic0).getZ();
137
      }
138

  
139
    uniforms[index+1] =-uniforms[index+1];
140

  
141
    return ret;
71 142
    }
72 143
  }
144

  
145

  

Also available in: Unified diff