Revision 350cc2f5
Added by Leszek Koltunski over 7 years ago
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
Make the WAVE effect 5D (extra parameter 'offset')