Project

General

Profile

« Previous | Next » 

Revision 350cc2f5

Added by Leszek Koltunski over 7 years ago

Make the WAVE effect 5D (extra parameter 'offset')

View differences:

src/main/java/org/distorted/library/EffectQueueVertex.java
26 26
import org.distorted.library.type.Data2D;
27 27
import org.distorted.library.type.Data3D;
28 28
import org.distorted.library.type.Data4D;
29
import org.distorted.library.type.Data5D;
29 30
import org.distorted.library.type.Dynamic1D;
30 31
import org.distorted.library.type.Dynamic2D;
31 32
import org.distorted.library.type.Dynamic3D;
32 33
import org.distorted.library.type.Dynamic4D;
34
import org.distorted.library.type.Dynamic5D;
33 35
import org.distorted.library.type.Static1D;
34 36
import org.distorted.library.type.Static2D;
35 37
import org.distorted.library.type.Static3D;
36 38
import org.distorted.library.type.Static4D;
39
import org.distorted.library.type.Static5D;
37 40

  
38 41
///////////////////////////////////////////////////////////////////////////////////////////////////
39 42

  
......
47 50
  
48 51
///////////////////////////////////////////////////////////////////////////////////////////////////
49 52
   
50
  public EffectQueueVertex(DistortedObject obj)
53
  EffectQueueVertex(DistortedObject obj)
51 54
    { 
52 55
    super(obj,NUM_UNIFORMS,INDEX);
53 56
    }
......
157 160
///////////////////////////////////////////////////////////////////////////////////////////////////
158 161
// Do various post-processing on already computed effects.
159 162
// 1) here unlike in the fragment queue, we don't have to multiply the points by ModelView matrix because that gets done in the shader.
160
// 2) in case of SWIRL, switch the angle from degrees to radians
163
// 2) in case of SWIRL, switch the angles from degrees to radians
161 164
// 3) likewise in case of WAVE
162 165
// 4) In case of DISTORT, invert the Y-axis
163 166
  
164
  void postprocess(int effect)
167
  private void postprocess(int effect)
165 168
    {
166 169
    if( mName[effect]==EffectNames.SWIRL.ordinal() )
167 170
      {
......
171 174
      {
172 175
      mUniforms[NUM_UNIFORMS*effect+2] = (float)(Math.PI*mUniforms[NUM_UNIFORMS*effect+2]/180);
173 176
      mUniforms[NUM_UNIFORMS*effect+3] = (float)(Math.PI*mUniforms[NUM_UNIFORMS*effect+3]/180);
177
      mUniforms[NUM_UNIFORMS*effect+4] = (float)(Math.PI*mUniforms[NUM_UNIFORMS*effect+4]/180);
174 178
      }
175 179
    if( mName[effect]==EffectNames.DISTORT.ordinal() )
176 180
      {
......
181 185
///////////////////////////////////////////////////////////////////////////////////////////////////
182 186
// wave
183 187

  
184
  synchronized long add(EffectNames eln, Data4D data, Data2D center, Data4D region)
188
  synchronized long add(EffectNames eln, Data5D data, Data2D center, Data4D region)
185 189
    {
186 190
    if( mMax[INDEX]>mNumEffects )
187 191
      {
188 192
      EffectNames.fillWithUnities(eln.ordinal(), mUniforms, NUM_UNIFORMS*mNumEffects);
189 193

  
190
      if( data instanceof Dynamic4D)
191
        mInter[0][mNumEffects] = (Dynamic4D)data;
192
      else if( data instanceof Static4D)
194
      if( data instanceof Dynamic5D)
195
        mInter[0][mNumEffects] = (Dynamic5D)data;
196
      else if( data instanceof Static5D)
193 197
        {
198
        Static5D tmp = (Static5D)data;
199

  
194 200
        mInter[0][mNumEffects] = null;
195
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = ((Static4D)data).getX();
196
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static4D)data).getY();
197
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static4D)data).getZ();
198
        mUniforms[NUM_UNIFORMS*mNumEffects+3] = ((Static4D)data).getW();
201
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = tmp.getX();
202
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = tmp.getY();
203
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = tmp.getZ();
204
        mUniforms[NUM_UNIFORMS*mNumEffects+3] = tmp.getW();
205
        mUniforms[NUM_UNIFORMS*mNumEffects+4] = tmp.getV();
199 206
        }
200 207

  
201 208
      return addPriv(eln,center,region);
......
217 224
        mInter[0][mNumEffects] = (Dynamic3D)data;
218 225
      else if( data instanceof Static3D)
219 226
        {
227
        Static3D tmp = (Static3D)data;
228

  
220 229
        mInter[0][mNumEffects] = null;
221
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = ((Static3D)data).getX();
222
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static3D)data).getY();
223
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static3D)data).getZ();
230
        mUniforms[NUM_UNIFORMS*mNumEffects  ] = tmp.getX();
231
        mUniforms[NUM_UNIFORMS*mNumEffects+1] = tmp.getY();
232
        mUniforms[NUM_UNIFORMS*mNumEffects+2] = tmp.getZ();
224 233
        }
225 234

  
226 235
      return addPriv(eln,center,region);

Also available in: Unified diff