我正在尝试编辑点云(存储在FloatBuffer中),以便将记录点保留在屏幕上。但是,当我显示这些点时,它们都位于x、y或z轴上。我使用的是Google的示例点云程序,所以我现在要做的就是复制缓冲区,这样我就可以编辑它了,因为当前的缓冲区是只读的。我没有更改任何其他东西,因为我需要先让我的副本正常工作。下面是我复制缓冲区的代码(编辑自transferring bytes from one ByteBuffer to another):
private FloatBuffer cloneBuffer(FloatBuffer original) {
final ByteBuffer byteClone = (original.isDirect()) ?
//multiplied by 4 and added 3 so the capacity would be the
//same when converted to a FloatBuffer
ByteBuffer.allocateDirect(original.capacity() * 4 + 3) :
ByteBuffer.allocate(original.capacity() * 4 + 3);
final FloatBuffer clone = byteClone.asFloatBuffer();
final FloatBuffer readOnlyCopy = original.asReadOnlyBuffer();
readOnlyCopy.rewind();
clone.put(readOnlyCopy);
clone.flip();
clone.position(original.position());
return clone;
}发布于 2015-08-07 10:15:25
查看:https://developers.google.com/project-tango/apis/known-issues
在"Depth“部分,请注意:
API.
您的问题可能存在于第一个提到的点上。
https://stackoverflow.com/questions/31126174
复制相似问题