If you think the Android project min3d listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package com.min3d;
//fromwww.java2s.comimport android.graphics.Bitmap;
import com.min3d.lib.Shared;
import com.min3d.lib.Utils;
import com.min3d.lib.core.Object3dContainer;
import com.min3d.lib.core.RendererActivity;
import com.min3d.lib.objectPrimitives.Rectangle;
import com.min3d.lib.vos.Color4;
import com.min3d.lib.vos.Number3d;
/**
* Example of accessing and changing vertex data.
* Specifically, we're animating the position of one vertex.
*
* The same could be done for vertex colors, normal, or texture coordinates.
*
* @author Lee
*/publicclass ExampleAnimatingVertices extends RendererActivity
{
Object3dContainer _plane;
Number3d _defaultPosUL;
Number3d _defaultPosLR;
int _count;
publicvoid initScene()
{
// Set size of the plane using the same aspect ratio of source image
Bitmap b = Utils.makeBitmapFromResourceId(this, R.drawable.deadmickey);
float w = 2f;
float h = w * (float)b.getHeight() / (float)b.getWidth();;
_plane = new Rectangle(w, h, 1,1, new Color4());
_plane.doubleSidedEnabled(true); // ... so that the back of the plane is visible
_plane.normalsEnabled(false);
scene.addChild(_plane);
Shared.textureManager().addTextureId(b, "mickey", false);
_plane.textures().addById("mickey");
b.recycle();
// Get the coordinates of the point at vertex number 0 (the upper-left vertex of the plane)
// and put its values in a Number3d. Same for lower-right vertex.
_defaultPosUL = _plane.points().getAsNumber3d(0);
_defaultPosLR = _plane.points().getAsNumber3d(3);
_count = 0;
}
@Override
publicvoid updateScene()
{
// Change the values for the positions of the upperleft and lower right vertices
float offset = (25f - (float)(_count % 25)) * 0.02f; // ... sure wish I knew of a nice Java tweener class
offset *= offset;
_plane.points().set(0, _defaultPosUL.x - offset, _defaultPosUL.y + offset, _defaultPosUL.z);
offset = (25f - (float)((_count +13) % 25)) * 0.02f;
offset *= offset;
_plane.points().set(3, _defaultPosLR.x + offset, _defaultPosLR.y - offset, _defaultPosLR.z);
_plane.rotation().y++;
_count++;
}
}