/** Returns {@code this} where {@code array/buffer[i * strides[0] + j] = f[offset:offset + length]} */ public abstract FloatIndexer put(long i, long j, float[] f, int offset, int length); /** Returns {@code this} where {@code array/buffer[i * strides[0] + j * strides[1] + k] = f} */
/** Returns {@code this} where {@code array/buffer[i] = f[offset:offset + length]} */ public abstract FloatIndexer put(long i, float[] f, int offset, int length); /** Returns {@code this} where {@code array/buffer[i * strides[0] + j] = f} */
/** Returns {@code this} where {@code array/buffer[index(indices)] = f[offset:offset + length]} */ public abstract FloatIndexer put(long[] indices, float[] f, int offset, int length);
@Override public FloatIndexer putDouble(long[] indices, double f) { return put(indices, (float)f); } }
@Override public void put(long i, long element) { if (dataType() == Type.DOUBLE) { ((DoubleIndexer) indexer).put(offset() + i, (double) element); } else if (dataType() == Type.INT) { ((IntIndexer) indexer).put(offset() + i, (int) element); } else if (dataType() == Type.LONG) { ((LongRawIndexer) indexer).put(offset() + i, element); } else { ((FloatIndexer) indexer).put(offset() + i, (float) element); } if (i == length) { length++; } }
@Override public void put(long i, int element) { if (dataType() == Type.DOUBLE) { ((DoubleIndexer) indexer).put(offset() + i, element); } else if (dataType() == Type.INT) { ((IntIndexer) indexer).put(offset() + i, element); } else if (dataType() == Type.LONG) { ((LongRawIndexer) indexer).put(offset() + i, element); } else { ((FloatIndexer) indexer).put(offset() + i, element); } if (i == length) { length++; } }
@Override public void put(long i, float element) { if (dataType() == Type.DOUBLE) { ((DoubleIndexer) indexer).put(offset() + i, element); } else if (dataType() == Type.INT) { ((IntIndexer) indexer).put(offset() + i, (int) element); } else if (dataType() == Type.LONG) { ((LongRawIndexer) indexer).put(offset() + i, (long) element); } else { ((FloatIndexer) indexer).put(offset() + i, element); } if (i >= length) { length++; } if (i == length) { length++; } }
@Override public void put(long i, double element) { if (dataType() == Type.DOUBLE) { ((DoubleIndexer) indexer).put(offset() + i, element); } else if (dataType() == Type.INT) { ((IntIndexer) indexer).put(offset() + i, (int) element); } else if (dataType() == Type.LONG) { ((LongRawIndexer) indexer).put(offset() + i, (long) element); } else if (dataType() == Type.HALF) { ((HalfIndexer) indexer).put(offset() + i, (float) element); } else { ((FloatIndexer) indexer).put(offset() + i, (float) element); } if (i == length) { length++; } }
private void fillNative(PVector[] objectPoints, PVector[] imagePoints, Mat op, Mat ip) { FloatIndexer opIdx = op.createIndexer(); FloatIndexer ipIdx = ip.createIndexer(); // Fill the object and image matrices. for (int i = 0; i < objectPoints.length; i++) { opIdx.put(i, 0, objectPoints[i].x); opIdx.put(i, 1, objectPoints[i].y); opIdx.put(i, 2, objectPoints[i].z); ipIdx.put(i, 0, imagePoints[i].x); ipIdx.put(i, 1, imagePoints[i].y); } }
private void initNativeIntrinsic() { if (intrinsicsMat == null) { intrinsicsMat = new Mat(3, 3, CV_32FC1); FloatIndexer intrinsicIdx = intrinsicsMat.createIndexer(true); // init to 0 int k = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { intrinsicIdx.put(k++, 0); } } // set the values intrinsicIdx.put(0, 0, intrinsics.m00); intrinsicIdx.put(1, 1, intrinsics.m11); intrinsicIdx.put(0, 2, intrinsics.m02); intrinsicIdx.put(1, 2, intrinsics.m12); intrinsicIdx.put(2, 2, 1); } }
for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, ubyteidx.get(i, j, k)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, ushortidx.get(i, j, k)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, intidx.get(i, j, k)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, floatidx.get(i, j, k));
for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, ubyteidx.get(i, j, k)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, ushortidx.get(i, j, k)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, intidx.get(i, j, k)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { retidx.put(k, i, j, floatidx.get(i, j, k));