package org.rajawali3d.audio3d.example;
import android.content.Context;
import android.view.MotionEvent;
import android.view.animation.AccelerateDecelerateInterpolator;
import org.rajawali3d.animation.Animation;
import org.rajawali3d.animation.RotateAroundAnimation3D;
import org.rajawali3d.animation.RotateOnAxisAnimation;
import org.rajawali3d.animation.TranslateAnimation3D;
import org.rajawali3d.lights.DirectionalLight;
import org.rajawali3d.materials.Material;
import org.rajawali3d.materials.methods.DiffuseMethod;
import org.rajawali3d.math.vector.Vector3;
import org.rajawali3d.primitives.Sphere;
import org.rajawali3d.renderer.RajawaliRenderer;
public class Rajawali3DAudioRenderer extends RajawaliRenderer {
public Rajawali3DAudioRenderer(Context context) {
super(context);
}
@Override
protected void initScene() {
getCurrentScene().setBackgroundColor(0xeeeeee);
DirectionalLight light = new DirectionalLight();
light.setLookAt(0, -1, -1);
light.enableLookAt();
getCurrentScene().addLight(light);
//
// -- Audio Object 1 | Bark | Orange sphere
//
AudioObject3D audioObj1 = new AudioObject3D("bark");
getCurrentScene().addChild(audioObj1);
Sphere sphere1 = new Sphere(.2f, 16, 16);
Material sphereMaterial1 = new Material();
sphereMaterial1.enableLighting(true);
sphereMaterial1.setDiffuseMethod(new DiffuseMethod.Lambert());
sphereMaterial1.setColor(0xCC8400);
sphereMaterial1.setAmbientColor(0x990000);
sphere1.setMaterial(sphereMaterial1);
audioObj1.setPosition(-10, -10, -10);
audioObj1.addChild(sphere1);
TranslateAnimation3D a1 = new TranslateAnimation3D(new Vector3(10, 10, 10));
a1.setInterpolator(new AccelerateDecelerateInterpolator());
a1.setDurationMilliseconds(5000);
a1.setTransformable3D(audioObj1);
a1.setRepeatMode(Animation.RepeatMode.REVERSE_INFINITE);
getCurrentScene().registerAnimation(a1);
a1.play();
//
// -- Audio Object 2 | Beep | Yellow sphere
//
AudioObject3D audioObj2 = new AudioObject3D("beep");
getCurrentScene().addChild(audioObj2);
Sphere sphere2 = new Sphere(.2f, 16, 16);
Material sphereMaterial2 = new Material();
sphereMaterial2.enableLighting(true);
sphereMaterial2.setDiffuseMethod(new DiffuseMethod.Lambert());
sphereMaterial2.setColor(0xdddd00);
sphereMaterial2.setAmbientColor(0xffffff);
sphere2.setMaterial(sphereMaterial2);
audioObj2.addChild(sphere2);
RotateAroundAnimation3D a2 = new RotateAroundAnimation3D(getCurrentCamera().getPosition(), Vector3.Axis.X, 4);
a2.setInterpolator(new AccelerateDecelerateInterpolator());
a2.setDurationMilliseconds(7500);
a2.setTransformable3D(audioObj2);
a2.setRepeatMode(Animation.RepeatMode.REVERSE_INFINITE);
getCurrentScene().registerAnimation(a2);
a2.play();
}
@Override
public void onOffsetsChanged(float v, float v2, float v3, float v4, int i, int i2) {
}
@Override
public void onTouchEvent(MotionEvent motionEvent) {
}
}