@Override public boolean load() { this.heightData = this.buffer.array(); return true; }
/** * For direct buffers, calls {@link Pointer#Pointer(Buffer)}, while for buffers * backed with an array, allocates enough memory for the array and copies it. * * @param buffer the Buffer to reference or copy * @see #put(float[]) */ public FloatPointer(FloatBuffer buffer) { super(buffer); if (buffer != null && !buffer.isDirect() && buffer.hasArray()) { float[] array = buffer.array(); allocateArray(array.length - buffer.arrayOffset()); put(array, buffer.arrayOffset(), array.length - buffer.arrayOffset()); position(buffer.position()); limit(buffer.limit()); } } /**
@Override public FloatBuffer filter(float sx, float sy, float base, FloatBuffer buffer, int workSize) { float[] ga = buffer.array(); float[] sa = new float[workSize * workSize];
public FloatBuffer clip(FloatBuffer buf, int origSize, int newSize, int offset) { FloatBuffer result = FloatBuffer.allocate(newSize * newSize); float[] orig = buf.array(); for (int i = offset; i < offset + newSize; i++) { result.put(orig, i * origSize + offset, newSize); } return result; } }
@Override public FloatBuffer filter(float sx, float sy, float base, FloatBuffer buffer, int workSize) { float[] ga = buffer.array();
@Override public FloatBuffer filter(float sx, float sy, float base, FloatBuffer buffer, int size) { float[] data = buffer.array(); float[] retval = new float[data.length]; for (int y = this.radius; y < size - this.radius; y++) { for (int x = this.radius; x < size - this.radius; x++) { int idx = y * size + x; float n = 0; for (int i = -this.radius; i < this.radius + 1; i++) { for (int j = -this.radius; j < this.radius + 1; j++) { n += data[(y + i) * size + x + j]; } } retval[idx] = this.effect * n / (4 * this.radius * (this.radius + 1) + 1) + (1 - this.effect) * data[idx]; } } return FloatBuffer.wrap(retval); } }
@Override public FloatBuffer filter(float sx, float sy, float base, FloatBuffer buffer, int size) { float[] tmp = buffer.array(); float[] retval = new float[tmp.length];
public static float[] getFloatArrayFromBuffer(FloatBuffer buffer) { float[] array = new float[0]; if (buffer != null) { if (buffer.hasArray()) { array = buffer.array(); } else { buffer.rewind(); array = new float[buffer.capacity()]; buffer.get(array); } } return array; }
private HeightMap getHeightMapAt(Vector3f location) { AbstractHeightMap heightmap = null; FloatBuffer buffer = this.base.getBuffer(location.x * (this.quadSize - 1), location.z * (this.quadSize - 1), 0, this.quadSize); float[] arr = buffer.array(); for (int i = 0; i < arr.length; i++) { arr[i] = arr[i] * this.heightScale; } heightmap = new FloatBufferHeightMap(buffer); heightmap.load(); return heightmap; }
/** * Creates a float array from the provided {@link FloatBuffer}. * * @param buffer {@link FloatBuffer} the data source. * @return float array containing the data of the buffer. */ public static float[] getFloatArrayFromBuffer(FloatBuffer buffer) { float[] array = null; if (buffer.hasArray()) { array = buffer.array(); } else { buffer.rewind(); array = new float[buffer.capacity()]; buffer.get(array); } return array; }
@Override public FloatBuffer filter(float sx, float sy, float base, FloatBuffer data, int workSize) { float[] arr = data.array(); int origSize = (int) Math.ceil(workSize / (2 * this.magnitude + 1)); int offset = (workSize - origSize) / 2; Logger.getLogger(PerturbFilter.class.getCanonicalName()).info( "Found origSize : " + origSize + " and offset: " + offset + " for workSize : " + workSize + " and magnitude : " + this.magnitude); float[] retval = new float[workSize * workSize]; float[] perturbx = new FractalSum().setOctaves(8).setScale(5f).getBuffer(sx, sy, base, workSize).array(); float[] perturby = new FractalSum().setOctaves(8).setScale(5f).getBuffer(sx, sy, base + 1, workSize).array(); for (int y = 0; y < workSize; y++) { for (int x = 0; x < workSize; x++) { // Perturb our coordinates float noisex = perturbx[y * workSize + x]; float noisey = perturby[y * workSize + x]; int px = (int) (origSize * noisex * this.magnitude); int py = (int) (origSize * noisey * this.magnitude); float c00 = arr[this.wrap(y - py, workSize) * workSize + this.wrap(x - px, workSize)]; float c01 = arr[this.wrap(y - py, workSize) * workSize + this.wrap(x + px, workSize)]; float c10 = arr[this.wrap(y + py, workSize) * workSize + this.wrap(x - px, workSize)]; float c11 = arr[this.wrap(y + py, workSize) * workSize + this.wrap(x + px, workSize)]; float c0 = ShaderUtils.mix(c00, c01, noisex); float c1 = ShaderUtils.mix(c10, c11, noisex); retval[y * workSize + x] = ShaderUtils.mix(c0, c1, noisey); } } return FloatBuffer.wrap(retval); }
float[] weights = wb.array(); int idxWeights = 0;
float[] weights = wb.array(); int idxWeights = 0;
float[] weights = wb.array(); int idxWeights = 0;
float[] weights = wb.array(); int idxWeights = 0;
FloatBuffer vertices = verticesData.asFloatBuffer(); ByteBuffer verticesQuantized = quantizeVertices(vertices.array(), quantizationMatrix, multiplierToMm); Buffer buffer = getDatabaseSession().create(Buffer.class); buffer.setData(verticesQuantized.array());
public FloatBuffer clip(FloatBuffer buf, int origSize, int newSize, int offset) { FloatBuffer result = FloatBuffer.allocate(newSize * newSize); float[] orig = buf.array(); for (int i = offset; i < offset + newSize; i++) { result.put(orig, i * origSize + offset, newSize); } return result; } }
protected static void putFloatArray(FloatBuffer buf, float[] arr) { if (!buf.hasArray() || buf.array() != arr) { buf.position(0); buf.put(arr); buf.rewind(); } }
public static FloatBuffer asFloatBuffer(Matrix4 matrix4f) { FloatBuffer buffer = BufferUtils.createFloatBuffer(16); matrix4f.set(buffer.array()); return buffer; }