Package com.ardor3d.scenegraph

Examples of com.ardor3d.scenegraph.Mesh


        final Sphere sphere = new Sphere("Sphere", 8, 8, 1);
        sphere.updateModelBound();

        for (int i = 0; i < 200; i++) {
            final Mesh sm = sphere.makeCopy(true);

            sm.setTranslation(new Vector3(rand.nextDouble() * 100.0 - 50.0, rand.nextDouble() * 100.0 - 50.0, rand
                    .nextDouble() * 100.0 - 50.0));
            sm.setRenderState(ts);
            n1.attachChild(sm);
        }

        n2 = new Node("n2");
        n2.setTranslation(new Vector3(0, 0, -200));

        final MaterialState ms = new MaterialState();
        ms.setDiffuse(MaterialFace.FrontAndBack, ColorRGBA.RED);
        n2.setRenderState(ms);

        _root.attachChild(n2);

        for (int i = 0; i < 200; i++) {
            final Mesh sm = sphere.makeCopy(true);

            sm.setTranslation(new Vector3(rand.nextDouble() * 100.0 - 50.0, rand.nextDouble() * 100.0 - 50.0, rand
                    .nextDouble() * 100.0 - 50.0));
            sm.setRenderState(ts);
            n2.attachChild(sm);
        }

    }
View Full Code Here


        final double maxSize = Math.max(xSize, ySize);
        final double requiredDistance = (maxSize / 2)
                / Math.tan(_canvas.getCanvasRenderer().getCamera().getFovY() * MathUtils.DEG_TO_RAD * 0.5);

        final Mesh multiStripMesh = createMultiStripMesh();
        multiStripMesh.setRenderState(ts);
        multiStripMesh.updateModelBound();
        multiStripMesh.setTranslation(-xSize * 0.5, -ySize * 0.5, -requiredDistance);
        _root.attachChild(multiStripMesh);

        final Mesh degenerateStripMesh = createDegenerateStripMesh();
        degenerateStripMesh.setRenderState(ts);
        degenerateStripMesh.updateModelBound();
        degenerateStripMesh.setTranslation(-xSize * 0.5, -ySize * 0.5, -requiredDistance);
        _root.attachChild(degenerateStripMesh);

        degenerateStripMesh.getSceneHints().setCullHint(CullHint.Always);

        _logicalLayer.registerTrigger(new InputTrigger(new KeyPressedCondition(Key.SPACE), new TriggerAction() {
            public void perform(final Canvas source, final TwoInputStates inputStates, final double tpf) {
                showDegenerateMesh = !showDegenerateMesh;
                if (showDegenerateMesh) {
                    t.setText("[SPACE] Degenerate Mesh");
                    multiStripMesh.getSceneHints().setCullHint(CullHint.Always);
                    degenerateStripMesh.getSceneHints().setCullHint(CullHint.Inherit);
                } else {
                    t.setText("[SPACE] MultiStrip Mesh");
                    multiStripMesh.getSceneHints().setCullHint(CullHint.Inherit);
                    degenerateStripMesh.getSceneHints().setCullHint(CullHint.Always);
                }
            }
        }));
    }
View Full Code Here

            }
        }));
    }

    private Mesh createMultiStripMesh() {
        final Mesh mesh = new Mesh();
        final MeshData meshData = mesh.getMeshData();

        final FloatBuffer vertexBuffer = BufferUtils.createVector3Buffer(totalSize);
        final FloatBuffer normalBuffer = BufferUtils.createVector3Buffer(totalSize);
        final FloatBuffer textureBuffer = BufferUtils.createVector2Buffer(totalSize);
View Full Code Here

        return mesh;
    }

    private Mesh createDegenerateStripMesh() {
        final Mesh mesh = new Mesh();
        final MeshData meshData = mesh.getMeshData();

        final FloatBuffer vertexBuffer = BufferUtils.createVector3Buffer(totalSize);
        final FloatBuffer normalBuffer = BufferUtils.createVector3Buffer(totalSize);
        final FloatBuffer textureBuffer = BufferUtils.createVector2Buffer(totalSize);
View Full Code Here

        }
        if (pickResults.getNumber() > i) {
            final PickData pick = pickResults.getPickData(i);
            final int section = pick.getIntersectionRecord().getIntersectionPrimitive(0).getSection();
            if (pick.getTarget() instanceof Mesh) {
                final Mesh hit = (Mesh) pick.getTarget();
                System.err.println("picked: " + hit + " section: " + section + " (type = "
                        + hit.getMeshData().getIndexMode(section) + ") primitive: "
                        + pick.getIntersectionRecord().getIntersectionPrimitive(0).getPrimitiveIndex());
            }
        } else {
            System.err.println("picked: nothing");
        }
View Full Code Here

    @Override
    protected void initExample() {
        _canvas.setTitle("TestSharedMesh");

        _canvas.getCanvasRenderer().getCamera().setLocation(new Vector3(0, 0, 90));
        final Mesh mesh = new Mesh();
        final MeshData meshData = mesh.getMeshData();

        final FloatBuffer vertexBuffer = BufferUtils.createVector3Buffer(16);

        vertexBuffer.put(-30).put(0).put(0);
        vertexBuffer.put(-40).put(0).put(0);
        vertexBuffer.put(-40).put(10).put(0);
        vertexBuffer.put(-30).put(10).put(0);

        vertexBuffer.put(-10).put(0).put(0);
        vertexBuffer.put(-20).put(0).put(0);
        vertexBuffer.put(-20).put(10).put(0);
        vertexBuffer.put(-10).put(10).put(0);

        vertexBuffer.put(10).put(0).put(0);
        vertexBuffer.put(20).put(0).put(0);
        vertexBuffer.put(20).put(10).put(0);
        vertexBuffer.put(10).put(10).put(0);

        vertexBuffer.put(30).put(0).put(0);
        vertexBuffer.put(40).put(0).put(0);
        vertexBuffer.put(40).put(10).put(0);
        vertexBuffer.put(30).put(10).put(0);

        meshData.setVertexBuffer(vertexBuffer);

        final IndexBufferData<?> indices = BufferUtils.createIndexBufferData(18, vertexBuffer.capacity() - 1);

        // Strips
        indices.put(0).put(3).put(1).put(2);
        indices.put(4).put(7).put(5).put(6);

        // Quad
        indices.put(8).put(9).put(10).put(11);

        // Triangles
        indices.put(12).put(13).put(15);
        indices.put(13).put(14).put(15);

        meshData.setIndices(indices);

        // Setting sub primitive data
        final int[] indexLengths = new int[] { 4, 4, 4, 6 };
        meshData.setIndexLengths(indexLengths);

        final IndexMode[] indexModes = new IndexMode[] { IndexMode.TriangleStrip, IndexMode.TriangleStrip,
                IndexMode.Quads, IndexMode.Triangles };
        meshData.setIndexModes(indexModes);

        mesh.updateModelBound();

        _root.attachChild(mesh);
    }
View Full Code Here

        _root.attachChild(targetMesh);
        targetMesh.setRandomColors();

        for (int x = 0; x < 10; x++) {
            for (int y = 0; y < 10; y++) {
                final Mesh sm = box.makeCopy(true);

                sm.setTranslation((x - 5.0) * 10.0, (y - 5.0) * 10.0, -10.0);
                _root.attachChild(sm);

                boxes.add(sm);
            }
        }
View Full Code Here

        _lightState.setTwoSidedLighting(true);
    }

    private Mesh createFloor() {
        final Mesh floor = new Quad("Floor", 100, 100);
        floor.updateModelBound();
        // set the color to green using a single color value
        floor.setDefaultColor(ColorRGBA.GREEN);
        // move back from camera.
        floor.setTranslation(0, -5, -20);
        // rotate to point up
        floor.setRotation(new Quaternion(-1, 0, 0, 1));

        // Add a material state.
        final MaterialState ms = new MaterialState();
        floor.setRenderState(ms);
        // Pull diffuse color for front and back from mesh color
        ms.setColorMaterial(ColorMaterial.Diffuse);
        ms.setColorMaterialFace(MaterialFace.FrontAndBack);

        return floor;
View Full Code Here

        globesNode.attachChild(sphere);

        globesNode.setRotation(new Quaternion().fromAngleAxis(-MathUtils.HALF_PI, Vector3.UNIT_X));
        int startX = -globesNode.getChildren().size() / 2;
        for (final Spatial s : globesNode.getChildren()) {
            final Mesh m = (Mesh) s;
            m.updateModelBound();
            startX += ((BoundingSphere) m.getModelBound(null)).getRadius() * 2;
            s.setTranslation(startX, 0, 0);
        }

        _root.attachChild(globesNode);
        _canvas.getCanvasRenderer().getCamera().setLocation(new Vector3(0, 0, 10));
View Full Code Here

        }

        final Md2DataStore storage = importer.load("md2/drfreak.md2");
        System.out.println("Importing Took " + (System.currentTimeMillis() - time) + " ms");

        final Mesh model = storage.getScene();
        // md2 models are usually z-up - switch to y-up
        model.setRotation(new Quaternion().fromAngleAxis(-MathUtils.HALF_PI, Vector3.UNIT_X));
        // attack to root
        _root.attachChild(model);

        // speed us up a little
        final KeyframeController<Mesh> controller = storage.getController();
View Full Code Here

TOP

Related Classes of com.ardor3d.scenegraph.Mesh

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.