How Can i download the files(new vers.) ??
I can't find linked site.
I can't find linked site.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menupackage com.threed.jpct.example;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.opengles.GL10;
import javax.vecmath.Vector3f;
import android.app.Activity;
//import android.content.res.Resources;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import com.threed.jpct.Camera;
//import com.threed.jpct.CollisionListener;
import com.threed.jpct.Config;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.Light;
import com.threed.jpct.Logger;
import com.threed.jpct.Object3D;
import com.threed.jpct.Primitives;
import com.threed.jpct.RGBColor;
import com.threed.jpct.SimpleVector;
import com.threed.jpct.Texture;
//import com.threed.jpct.TextureManager;
import com.threed.jpct.World;
import com.threed.jpct.util.MemoryHelper;
import com.bulletphysics.collision.broadphase.AxisSweep3;
import com.bulletphysics.collision.broadphase.BroadphaseInterface;
import com.bulletphysics.collision.dispatch.CollisionDispatcher;
import com.bulletphysics.collision.dispatch.DefaultCollisionConfiguration;
import com.bulletphysics.collision.shapes.BoxShape;
import com.bulletphysics.collision.shapes.CollisionShape;
import com.bulletphysics.collision.shapes.SphereShape;
import com.bulletphysics.dynamics.DiscreteDynamicsWorld;
import com.bulletphysics.dynamics.RigidBody;
import com.bulletphysics.dynamics.RigidBodyConstructionInfo;
import com.bulletphysics.dynamics.constraintsolver.ConstraintSolver;
import com.bulletphysics.dynamics.constraintsolver.SequentialImpulseConstraintSolver;
import com.threed.jpct.example.JPCTBulletMotionState;
import com.bulletphysics.linearmath.Clock;
import com.bulletphysics.linearmath.DefaultMotionState;
import com.bulletphysics.linearmath.Transform;
public class CollisionOfHelloWorld extends Activity {
//public class HelloWorld_col extends Activity {
// Used to handle pause and resume...
public int numSpheres = 10;
private static CollisionOfHelloWorld master = null;
private GLSurfaceView mGLView;
private MyRenderer renderer = null;
private FrameBuffer fb = null;
private World world = null;
private Light sun = null;
private RGBColor back = new RGBColor(50, 50, 100);
// Jbullet
public DiscreteDynamicsWorld dynamicWorld;
public int maxSubSteps;
public float timeStep, fixedTimeStep;
protected Clock clock = new Clock();
private List<CollisionShape> collisionShapes = new ArrayList<CollisionShape>();
private BroadphaseInterface overlappingPairCache;
private CollisionDispatcher dispatcher;
private ConstraintSolver solver;
private DefaultCollisionConfiguration collisionConfiguration;
private Vector<RigidBody> boxList = new Vector();
private Object3D sphere1 = null;
private Object3D sphere2 = null;
// private SimpleVector move = new SimpleVector(0,0.3,1);
private SimpleVector move2 = new SimpleVector(0, -1, 0);
private SimpleVector tmp = new SimpleVector();
private SimpleVector sunV = new SimpleVector(30,20, -150);
protected void onCreate(Bundle savedInstanceState) {
Logger.log("onCreate");
if (master != null) {
}
super.onCreate(savedInstanceState);
mGLView = new GLSurfaceView(getApplication());
mGLView.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
// Ensure that we get a 16bit framebuffer. Otherwise, we'll fall
// back to Pixelflinger on some device (read: Samsung I7500)
int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE };
EGLConfig[] configs = new EGLConfig[1];
int[] result = new int[1];
egl.eglChooseConfig(display, attributes, configs, 1, result);
return configs[0];
}
});
renderer = new MyRenderer();
mGLView.setRenderer(renderer);
setContentView(mGLView);
}
protected void onStop() {
Logger.log("onStop");
super.onStop();
}
class MyRenderer implements GLSurfaceView.Renderer {
private int fps = 0;
private long time = System.currentTimeMillis();
private boolean stop = false;
public MyRenderer() {
Config.maxPolysVisible = 500;
Config.farPlane = 1500;
Config.glTransparencyMul = 0.1f;
Config.glTransparencyOffset = 0.1f;
Config.useVBO=true;
Texture.defaultToMipmapping(false);
Texture.defaultTo4bpp(true);
}
public void stop() {
stop = true;
}
public void onSurfaceChanged(GL10 gl, int w, int h) {
if (fb != null) {
fb.dispose();
}
fb = new FrameBuffer(gl, w, h);
if (master == null) {
world = new World();
sphere1 = Primitives.getSphere(5);
sphere1.setAdditionalColor(RGBColor.RED);
sphere2=sphere1.cloneObject();
sphere2.setAdditionalColor(RGBColor.GREEN);
sphere1.translate(0,-20,0);
sphere2.translate(0, 40, 0);
world.addObject(sphere1);
world.addObject(sphere2);
// Setup collision modes
// sphere1.setCollisionMode(Object3D.COLLISION_CHECK_SELF | Object3D.COLLISION_CHECK_OTHERS);
// sphere2.setCollisionMode(Object3D.COLLISION_CHECK_SELF | Object3D.COLLISION_CHECK_OTHERS);
world.setAmbientLight(20, 20, 20);
sun = new Light(world);
sun.setIntensity(250,250,250);
sun.setPosition(sunV);
world.buildAllObjects();
collisionConfiguration = new DefaultCollisionConfiguration();
dispatcher = new CollisionDispatcher (collisionConfiguration);
Vector3f worldAabbMin = new Vector3f(-10000, -10000, -10000);
Vector3f worldAabbmax = new Vector3f(10000, 10000, 10000);
AxisSweep3 overlappingPairCache = new AxisSweep3(worldAabbMin, worldAabbmax);
/* SequentialImpulseConstraintSolver solver = new SequentialImpulseConstraintSolver();
dynamicWorld = new DiscreteDynamicsWorld(dispatcher, overlappingPairCache, solver, collisionConfiguration);
dynamicWorld.setGravity(new Vector3f(0,-10,0));
dynamicWorld.getDispatchInfo().allowedCcdPenetration = 0f;
CollisionShape groundShape = new BoxShape(new Vector3f(100.f, 50.f, 100.f));
CollisionShape marbleShape = new SphereShape(10);
Transform groundTransform = new Transform();
groundTransform.setIdentity();
groundTransform.origin.set(new Vector3f(0.f, -56.f, 0.f));
float mass = 0f;
Vector3f localInertia = new Vector3f(0,0,0);
DefaultMotionState myMotionState = new DefaultMotionState(groundTransform);
RigidBodyConstructionInfo rbInfo = new RigidBodyConstructionInfo(mass, myMotionState, groundShape, localInertia);
RigidBody body = new RigidBody(rbInfo);
dynamicWorld.addRigidBody(body);
dynamicWorld.clearForces();*/
Camera cam = world.getCamera();
cam.moveCamera(Camera.CAMERA_MOVEOUT, 50);
cam.moveCamera(Camera.CAMERA_MOVEUP, 60);
cam.lookAt(sphere1.getTransformedCenter());
MemoryHelper.compact();
}
}
/* public void initTestObects(){
Transform transform;
Object3D boxgfx;
BoxShape shape = new BoxShape(new Vector3f(2,2,2));
JPCTBulletMotionState ms;
float mass = 5;
Vector3f localInertia = new Vector3f(0,0,0);
shape.calculateLocalInertia(mass, localInertia);
RigidBodyConstructionInfo rbInfo;
RigidBody body;
for(int i = 1; i < numSpheres; i++){
boxgfx = Primitives.getSphere(2);
boxgfx.setTexture("box");
boxgfx.setEnvmapped(Object3D.ENVMAP_ENABLED);
boxgfx.translate(0, (2+(i * 4)) * -1,(float) 50 - i/3);
boxgfx.build();
boxgfx.rotateY((float) Math.PI/4f);
boxgfx.rotateMesh();
boxgfx.getRotationMatrix().setIdentity();
world.addObject(boxgfx);
transform = new Transform();
transform.setIdentity();
ms = new JPCTBulletMotionState(boxgfx);
rbInfo = new RigidBodyConstructionInfo(mass, ms, shape, localInertia);
body = new RigidBody(rbInfo);
body.setRestitution(0.1f);
body.setFriction(0.50f);
body.setDamping(0f, 0f);
body.setUserPointer(boxgfx);
boxList.add(body);
dynamicWorld.addRigidBody(body);
} // end for loop
}*/
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// gl.glEnable(GL10.GL_BLEND);
//gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
}
public void onDrawFrame(GL10 gl) {
try {
if (!stop) {
// Do collision dections
// SimpleVector trsn = sphere2.checkForCollisionSpherical(move2, 5);
//cube.translate(trsn);
//sphere2.translate(trsn);
//Logger.log("Vector is " + trsn);
/*if (cube.getTranslation(tmp).z>100) {
// Restart at the beginning...
cube.clearTranslation();
cube.translate(10, -40, -30);
}*/
if (sphere2.getTranslation(tmp).z>100) {
// Restart at the beginning...
sphere2.clearTranslation();
sphere2.translate(10, -40, -30);
}else if (sphere2.getTranslation(tmp).y>100 || sphere2.getTranslation(tmp).y<-100) {
// Restart at the beginning...
sphere2.clearTranslation();
sphere2.translate(0, 40, 0);
}
fb.clear(back);
world.renderScene(fb);
world.draw(fb);
fb.display();
fps++;
if (System.currentTimeMillis()-time>=1000) {
System.out.println(fps+"fps");
fps=0;
time=System.currentTimeMillis();
}
} else {
if (fb != null) {
fb.dispose();
fb = null;
}
}
} catch (Exception e) {
e.printStackTrace();
Logger.log("Drawing thread terminated!", Logger.MESSAGE);
}
}
}
}
package com.threed.jpct.example;
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.opengles.GL10;
import android.app.Activity;
//import android.content.res.Resources;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import com.threed.jpct.Camera;
//import com.threed.jpct.CollisionListener;
import com.threed.jpct.Config;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.Light;
import com.threed.jpct.Logger;
import com.threed.jpct.Object3D;
import com.threed.jpct.Primitives;
import com.threed.jpct.RGBColor;
import com.threed.jpct.SimpleVector;
import com.threed.jpct.Texture;
//import com.threed.jpct.TextureManager;
import com.threed.jpct.World;
import com.threed.jpct.util.MemoryHelper;
public class CollisionOfHelloWorld extends Activity {
//public class HelloWorld_col extends Activity {
// Used to handle pause and resume...
private static CollisionOfHelloWorld master = null;
private GLSurfaceView mGLView;
private MyRenderer renderer = null;
private FrameBuffer fb = null;
private World world = null;
private Light sun = null;
private RGBColor back = new RGBColor(50, 50, 100);
private Object3D sphere1 = null;
private Object3D sphere2 = null;
// private SimpleVector move = new SimpleVector(0,0.3,1);
private SimpleVector move2 = new SimpleVector(0, -1, 0);
// private SimpleVector ellips = new SimpleVector(7,7,7);
private SimpleVector tmp = new SimpleVector();
private SimpleVector sunV = new SimpleVector(30,20, -150);
protected void onCreate(Bundle savedInstanceState) {
Logger.log("onCreate");
if (master != null) {
}
super.onCreate(savedInstanceState);
mGLView = new GLSurfaceView(getApplication());
mGLView.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
// Ensure that we get a 16bit framebuffer. Otherwise, we'll fall
// back to Pixelflinger on some device (read: Samsung I7500)
int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE };
EGLConfig[] configs = new EGLConfig[1];
int[] result = new int[1];
egl.eglChooseConfig(display, attributes, configs, 1, result);
return configs[0];
}
});
renderer = new MyRenderer();
mGLView.setRenderer(renderer);
setContentView(mGLView);
}
protected void onStop() {
Logger.log("onStop");
super.onStop();
}
class MyRenderer implements GLSurfaceView.Renderer {
private int fps = 0;
private long time = System.currentTimeMillis();
private boolean stop = false;
public MyRenderer() {
Config.maxPolysVisible = 500;
Config.farPlane = 1500;
Config.glTransparencyMul = 0.1f;
Config.glTransparencyOffset = 0.1f;
Config.useVBO=true;
Texture.defaultToMipmapping(false);
Texture.defaultTo4bpp(true);
}
public void stop() {
stop = true;
}
public void onSurfaceChanged(GL10 gl, int w, int h) {
if (fb != null) {
fb.dispose();
}
fb = new FrameBuffer(gl, w, h);
if (master == null) {
world = new World();
sphere1 = Primitives.getSphere(5);
sphere1.setAdditionalColor(RGBColor.RED);
sphere2 = sphere1.cloneObject();
sphere2.setAdditionalColor(RGBColor.GREEN);
sphere1.translate(0,-20,0);
sphere2.translate(0, 40, 0);
world.addObject(sphere1);
world.addObject(sphere2);
// Setup collision modes
sphere1.setCollisionMode(Object3D.COLLISION_CHECK_SELF | Object3D.COLLISION_CHECK_OTHERS);
sphere2.setCollisionMode(Object3D.COLLISION_CHECK_SELF | Object3D.COLLISION_CHECK_OTHERS);
world.setAmbientLight(20, 20, 20);
sun = new Light(world);
sun.setIntensity(250,250,250);
sun.setPosition(sunV);
world.buildAllObjects();
Camera cam = world.getCamera();
cam.moveCamera(Camera.CAMERA_MOVEOUT, 50);
cam.moveCamera(Camera.CAMERA_MOVEUP, 60);
cam.lookAt(sphere1.getTransformedCenter());
MemoryHelper.compact();
}
}
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// gl.glEnable(GL10.GL_BLEND);
//gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
}
public void onDrawFrame(GL10 gl) {
try {
if (!stop) {
// Do collision dections
SimpleVector trsn = sphere2.checkForCollisionSpherical(move2, 5);
sphere2.translate(trsn);
Logger.log("Vector is " + trsn);
if (sphere2.getTranslation(tmp).z>100) {
// Restart at the beginning...
sphere2.clearTranslation();
sphere2.translate(10, -40, -30);
}else if (sphere2.getTranslation(tmp).y>100 || sphere2.getTranslation(tmp).y<-100) {
// Restart at the beginning...
sphere2.clearTranslation();
sphere2.translate(0, 40, 0);
}
fb.clear(back);
world.renderScene(fb);
world.draw(fb);
fb.display();
fps++;
if (System.currentTimeMillis()-time>=1000) {
System.out.println(fps+"fps");
fps=0;
time=System.currentTimeMillis();
}
} else {
if (fb != null) {
fb.dispose();
fb = null;
}
}
} catch (Exception e) {
e.printStackTrace();
Logger.log("Drawing thread terminated!", Logger.MESSAGE);
}
}
}
}
Page created in 0.033 seconds with 12 queries.