grpScene = new N3GroupNode(scene, "grpScene");
N3TransformationNode sueloRot = new N3TransformationNode(scene, "sueloRot");
N3TransformationNode sueloTrans;
sueloRot.rotate(-90.0f, new N3Vector3D(1.0f, 0, 0));
sueloRot.update();
N3GeometryData g = N3GeometryData.createPlane(0.4f, 0.4f, new N3ColorRGBA(1, 0, 0), false);
N3Material sm = new N3Material(scene, "rojo");
sm.setAmbientColor(new N3ColorRGBA(1, 0, 0));
sm.setSpecularColor(new N3ColorRGBA(0, 0, 0), 0.1f);
sm.setDiffuseColor(new N3ColorRGBA(1, 0, 0));
sm.applyMaterial(true);
for (int i = -5; i < 4; i++)
for (int j = -5; j < 4; j++) {
sueloTrans = new N3TransformationNode(scene, "sueloTrans" + i + "-" + j);
sueloTrans.translate(new N3Vector3D(i * 0.4f, j * 0.4f, 0));
sueloTrans.update();
suelo = new N3VisualMesh(scene, g, "suelo" + i + "-" + j);
suelo.setMaterial(sm);
sueloTrans.addChild(suelo);
sueloRot.addChild(sueloTrans);
}
cubeTrans = new N3TransformationNode(scene, "cubeTrans");
cubeTrans.translate(new N3Vector3D(0, 0.2f, 1.0f));
cubeTrans.update();
// El otro cubo
N3TransformationNode cubeTrans2 = new N3TransformationNode(scene, "cubeTrans2");
cubeTrans2.translate(new N3Vector3D(-0.5f, 0.2f, -0.5f));
cubeTrans2.update();
cube = new N3VisualMesh(scene, N3GeometryData.createCube(0.4f, 0.4f, 0.4f, new N3ColorRGBA(1, 1, 1), true), "cube");
cube.setMaterial(material);
// El otro cubo
cube2 = new N3VisualMesh(scene, N3GeometryData.createCube(0.4f, 0.4f, 0.4f, new N3ColorRGBA(1, 1, 1), true), "cube2");
cube2.setMaterial(material);
sphereTrans = new N3TransformationNode(scene, "sphereTrans");
sphereTrans.translate(new N3Vector3D(0.5f, 0.5f, 0.0f));
sphereTrans.update();
sphere = new N3VisualMesh(scene, N3GeometryData.createSphere(20, 20, 0.15f, new N3ColorRGBA(0, 0, 1)), "sphere");
sphere.setMaterial(new N3Material(scene, "Azul"));
sphere.getMaterial().setAmbientColor(new N3ColorRGBA(0, 0, 1));
sphere.getMaterial().setSpecularColor(new N3ColorRGBA(0, 0, 0), 0.1f);
sphere.getMaterial().setDiffuseColor(new N3ColorRGBA(0, 0, 1));
sphere.getMaterial().applyMaterial(true);
camera1Trans = new N3TransformationNode(scene, "camera1Trans");
camera1Trans.translate(new N3Vector3D(0.0f, 2.0f, 3.0f));
camera1Trans.update();
N3Camera camera1 = new N3Camera(new Rectangle(0, 0, c.getWidth(), c.getHeight()), 60.0f, c.getWidth() / c.getHeight(), 0.1f, 100.0f, scene, "camera1");
light01Trans = new N3TransformationNode(scene, "light01Trans");
light01Trans.translate(new N3Vector3D(0, 5.0f, 0.0f));
light01Trans.update();
light01 = new N3Light(N3LightData.createSpotLightData(new N3ColorRGBA(0, 0, 0), new N3ColorRGBA(1, 1, 1), new N3ColorRGBA(1, 1, 1), new N3Vector3D(0, -1.0f, 0), spotAngle), scene, "light01");
root.addChild(grpScene);
root.addChild(camera1Trans);
root.addChild(light01Trans);
grpScene.addChild(sueloRot);
root.addChild(cubeTrans);
grpScene.addChild(sphereTrans);
sphereTrans.addChild(sphere);
cubeTrans.addChild(cube);
camera1Trans.addChild(camera1);
light01Trans.addChild(light01);
// El otro cubo
cubeTrans2.addChild(cube2);
grpScene.addChild(cubeTrans2);
camera1.setTarget(cube, new N3Vector3D(0, 1.0f, 0));
scene.setActiveCamera(camera1);
scene.setActiveLightCount(render.getMaxLights());
scene.addActiveLight(light01);
// Elegimos que objetos colisionan