private void setVertexData() { final float floatSideLength = (float) _sideLength; _meshData.getVertexBuffer().put(floatSideLength).put(0.0f).put(0.0f); _meshData.getVertexBuffer().put(-floatSideLength).put(0.0f).put(0.0f); _meshData.getVertexBuffer().put(0.0f).put(floatSideLength).put(0.0f); _meshData.getVertexBuffer().put(0.0f).put(-floatSideLength).put(0.0f); _meshData.getVertexBuffer().put(0.0f).put(0.0f).put(floatSideLength); _meshData.getVertexBuffer().put(0.0f).put(0.0f).put(-floatSideLength); }
private void setVertexData() { final float floatSideLength = (float) _sideLength; _meshData.getVertexBuffer().put(floatSideLength).put(0.0f).put(0.0f); _meshData.getVertexBuffer().put(-floatSideLength).put(0.0f).put(0.0f); _meshData.getVertexBuffer().put(0.0f).put(floatSideLength).put(0.0f); _meshData.getVertexBuffer().put(0.0f).put(-floatSideLength).put(0.0f); _meshData.getVertexBuffer().put(0.0f).put(0.0f).put(floatSideLength); _meshData.getVertexBuffer().put(0.0f).put(0.0f).put(-floatSideLength); }
/** * Translate points. * * @param amount * the amount */ public void translatePoints(final Vector3 amount) { final FloatBuffer vertexBuffer = getVertexBuffer(); for (int x = 0; x < _vertexCount; x++) { BufferUtils.addInBuffer(amount, vertexBuffer, x); } }
/** * Recalculate the local bounding volume of this Mesh to fit its vertices. */ public void updateModelBound() { if (_modelBound != null && _meshData.getVertexBuffer() != null) { // using duplicate to allow walking through buffer without altering current position, etc. // NB: this maintains a measure of thread safety when using shared meshdata. _modelBound.computeFromPoints(_meshData.getVertexBuffer().duplicate()); markDirty(DirtyType.Bounding); } }
/** * Recalculate the local bounding volume of this Mesh to fit its vertices. */ public void updateModelBound() { if (_modelBound != null && _meshData.getVertexBuffer() != null) { // using duplicate to allow walking through buffer without altering current position, etc. // NB: this maintains a measure of thread safety when using shared meshdata. _modelBound.computeFromPoints(_meshData.getVertexBuffer().duplicate()); markDirty(DirtyType.Bounding); } }
public void transformVertices(final Transform transform) { final FloatBuffer vertexBuffer = getVertexBuffer(); final Vector3 store = new Vector3(); for (int x = 0; x < _vertexCount; x++) { BufferUtils.populateFromBuffer(store, vertexBuffer, x); transform.applyForward(store, store); BufferUtils.setInBuffer(store, vertexBuffer, x); } }
private void setNormalData() { final Vector3 norm = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(norm, _meshData.getVertexBuffer(), i); norm.normalizeLocal(); BufferUtils.setInBuffer(norm, _meshData.getNormalBuffer(), i); } }
private void setNormalData() { final Vector3 norm = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(norm, _meshData.getVertexBuffer(), i); norm.normalizeLocal(); BufferUtils.setInBuffer(norm, _meshData.getNormalBuffer(), i); } }
private void setNormalData() { final Vector3 norm = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(norm, _meshData.getVertexBuffer(), i); norm.normalizeLocal(); BufferUtils.setInBuffer(norm, _meshData.getNormalBuffer(), i); } }
private void setNormalData() { final Vector3 norm = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(norm, _meshData.getVertexBuffer(), i); norm.normalizeLocal(); BufferUtils.setInBuffer(norm, _meshData.getNormalBuffer(), i); } }
private void setNormalData() { final Vector3 norm = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(norm, _meshData.getVertexBuffer(), i); norm.normalizeLocal(); BufferUtils.setInBuffer(norm, _meshData.getNormalBuffer(), i); } }
private void setNormalData() { final Vector3 norm = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(norm, _meshData.getVertexBuffer(), i); norm.normalizeLocal(); BufferUtils.setInBuffer(norm, _meshData.getNormalBuffer(), i); } }
private void setTextureData() { final Vector2 tex = new Vector2(); final Vector3 vert = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(vert, _meshData.getVertexBuffer(), i); if (Math.abs(vert.getZ()) < _sideLength) { tex.setX(0.5 * (1.0 + Math.atan2(vert.getY(), vert.getX()) * MathUtils.INV_PI)); } else { tex.setX(0.5); } tex.setY(Math.acos(vert.getZ() / _sideLength) * MathUtils.INV_PI); _meshData.getTextureCoords(0).getBuffer().put((float) tex.getX()).put((float) tex.getY()); } }
private void setTextureData() { final Vector2 tex = new Vector2(); final Vector3 vert = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(vert, _meshData.getVertexBuffer(), i); if (Math.abs(vert.getZ()) < _sideLength) { tex.setX(0.5 * (1.0 + Math.atan2(vert.getY(), vert.getX()) * MathUtils.INV_PI)); } else { tex.setX(0.5); } tex.setY(Math.acos(vert.getZ() / _sideLength) * MathUtils.INV_PI); _meshData.getTextureCoords(0).getBuffer().put((float) tex.getX()).put((float) tex.getY()); } }
private void setTextureData() { final Vector2 tex = new Vector2(); final Vector3 vert = new Vector3(); for (int i = 0; i < NUM_POINTS; i++) { BufferUtils.populateFromBuffer(vert, _meshData.getVertexBuffer(), i); if (Math.abs(vert.getZ()) < _sideLength) { tex.setX(0.5 * (1.0 + Math.atan2(vert.getY(), vert.getX()) * MathUtils.INV_PI)); } else { tex.setX(0.5); } tex.setY(Math.acos(vert.getZ() / _sideLength) * MathUtils.INV_PI); _meshData.getTextureCoords(0).getBuffer().put((float) tex.getX()).put((float) tex.getY()); } }
public void killParticle() { setStatus(Status.Dead); final Vector3 tempVec3 = Vector3.fetchTempInstance(); final FloatBuffer vertexBuffer = parent.getParticleGeometry().getMeshData().getVertexBuffer(); BufferUtils.populateFromBuffer(tempVec3, vertexBuffer, startIndex); final int verts = ParticleSystem.getVertsForParticleType(type); for (int x = 1; x < verts; x++) { BufferUtils.setInBuffer(tempVec3, vertexBuffer, startIndex + x); } Vector3.releaseTempInstance(tempVec3); }
public void killParticle() { setStatus(Status.Dead); final Vector3 tempVec3 = Vector3.fetchTempInstance(); final FloatBuffer vertexBuffer = parent.getParticleGeometry().getMeshData().getVertexBuffer(); BufferUtils.populateFromBuffer(tempVec3, vertexBuffer, startIndex); final int verts = ParticleSystem.getVertsForParticleType(type); for (int x = 1; x < verts; x++) { BufferUtils.setInBuffer(tempVec3, vertexBuffer, startIndex + x); } Vector3.releaseTempInstance(tempVec3); }
private void setData() { getMeshData().setVertexBuffer(BufferUtils.createVector3Buffer(getMeshData().getVertexBuffer(), trailVertices)); getMeshData().setNormalBuffer(BufferUtils.createVector3Buffer(getMeshData().getNormalBuffer(), trailVertices)); setDefaultColor(new ColorRGBA(ColorRGBA.WHITE)); setTextureData(); setIndexData(); }
private void allocateVertices() { final int verts = (2 * (_axisSamples + 1) * (_radialSamples + 1) + _radialSamples * 4); _meshData.setVertexBuffer(BufferUtils.createVector3Buffer(_meshData.getVertexBuffer(), verts)); _meshData.setNormalBuffer(BufferUtils.createVector3Buffer(_meshData.getNormalBuffer(), verts)); _meshData.setTextureBuffer(BufferUtils.createVector2Buffer(_meshData.getTextureBuffer(0), verts), 0); final int tris = (4 * _radialSamples * (1 + _axisSamples)); if (_meshData.getIndices() == null || _meshData.getIndices().getBufferLimit() != 3 * tris) { _meshData.setIndices(BufferUtils.createIndexBufferData(3 * tris, verts - 1)); } setGeometryData(); setIndexData(); }
private void allocateVertices() { final int verts = (2 * (_axisSamples + 1) * (_radialSamples + 1) + _radialSamples * 4); _meshData.setVertexBuffer(BufferUtils.createVector3Buffer(_meshData.getVertexBuffer(), verts)); _meshData.setNormalBuffer(BufferUtils.createVector3Buffer(_meshData.getNormalBuffer(), verts)); _meshData.setTextureBuffer(BufferUtils.createVector2Buffer(_meshData.getTextureBuffer(0), verts), 0); final int tris = (4 * _radialSamples * (1 + _axisSamples)); if (_meshData.getIndices() == null || _meshData.getIndices().getBufferLimit() != 3 * tris) { _meshData.setIndices(BufferUtils.createIndexBufferData(3 * tris, verts - 1)); } setGeometryData(); setIndexData(); }