Package com.ardor3d.extension.effect.particle.emitter

Examples of com.ardor3d.extension.effect.particle.emitter.MeshEmitter


        smoke.setStartSize(1.0f);
        smoke.setEndSize(12.0f);
        smoke.setStartColor(new ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f));
        smoke.setEndColor(new ColorRGBA(.22f, .2f, .18f, 0.0f));
        smoke.setInitialVelocity(0.03f);
        smoke.setParticleEmitter(new MeshEmitter(emitDisc, false));
        smoke.setRotateWithScene(true);

        final BlendState blend = new BlendState();
        blend.setBlendEnabled(true);
        blend.setSourceFunction(BlendState.SourceFunction.SourceAlpha);
View Full Code Here


    }

    public ParticleMesh(final String name, final Mesh sourceMesh) {
        super(name, 0, ParticleSystem.ParticleType.GeomMesh);
        _numParticles = sourceMesh.getMeshData().getTotalPrimitiveCount();
        setParticleEmitter(new MeshEmitter(sourceMesh, false));
        getSceneHints().setRenderBucketType(RenderBucketType.Transparent);
        getSceneHints().setLightCombineMode(LightCombineMode.Off);
        getSceneHints().setTextureCombineMode(TextureCombineMode.Replace);
        initializeParticles(_numParticles);
    }
View Full Code Here

            _particles[k].init();
            _particles[k].setStartIndex(k * verts);
            for (int a = verts - 1; a >= 0; a--) {
                final int ind = (k * verts) + a;
                if (_particleType == ParticleSystem.ParticleType.GeomMesh && _useMeshTexCoords) {
                    final MeshEmitter source = (MeshEmitter) getParticleEmitter();
                    final Mesh sourceMesh = source.getSource();
                    final int index = sourceMesh.getMeshData().getIndices() != null ? sourceMesh.getMeshData()
                            .getIndices().get(ind) : ind;
                    BufferUtils.populateFromBuffer(temp, sourceMesh.getMeshData().getTextureCoords(0).getBuffer(),
                            index);
                    BufferUtils.setInBuffer(temp, meshData.getTextureCoords(0).getBuffer(), ind);
View Full Code Here

    };

    public void initParticleLocation(final int index) {
        final Particle p = _particles[index];
        if (getParticleType() == ParticleType.GeomMesh && getParticleEmitter() instanceof MeshEmitter) {
            final MeshEmitter emitter = (MeshEmitter) getParticleEmitter();
            final Mesh mesh = emitter.getSource();

            // Update the triangle model on each new particle creation.
            final Vector3[] vertices = new Vector3[3];
            final MeshData mData = mesh.getMeshData();
            for (int x = 0; x < 3; x++) {
                vertices[x] = new Vector3();

                final int vertIndex = mData.getVertexIndex(index, x, 0);
                BufferUtils.populateFromBuffer(vertices[x], mData.getVertexBuffer(), mData.getIndices() != null ? mData
                        .getIndices().get(vertIndex) : vertIndex);
            }
            Triangle t = p.getTriangleModel();
            if (t == null) {
                t = new Triangle(vertices[0], vertices[1], vertices[2]);
            } else {
                t.setA(vertices[0]);
                t.setB(vertices[1]);
                t.setC(vertices[2]);
            }
            // turn the triangle corners into vector offsets from center
            for (int x = 0; x < 3; x++) {
                vertices[x].subtract(t.getCenter(), vertices[x]);
                t.set(x, vertices[x]);
            }
            p.setTriangleModel(t);
            mesh.localToWorld(t.getCenter(), p.getPosition());
            p.getPosition().multiplyLocal(getInvScale());

        } else if (getParticleEmitter() instanceof MeshEmitter) {
            final MeshEmitter emitter = (MeshEmitter) getParticleEmitter();
            final Mesh mesh = emitter.getSource();
            mesh.getMeshData().randomPointOnPrimitives(p.getPosition());
            mesh.localToWorld(p.getPosition(), p.getPosition());
            p.getPosition().multiplyLocal(getInvScale());
        } else {
            if (getParticleEmitter() != null) {
View Full Code Here

TOP

Related Classes of com.ardor3d.extension.effect.particle.emitter.MeshEmitter

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.