Access and manipulate the reconstruction volume.
More...
|
typedef int | reme_volume_t |
| Handle referencing a volume object. More...
|
|
reme_error_t | reme_volume_create (reme_context_t c, reme_volume_t *v) |
| Create a new reme_volume_t object. More...
|
|
reme_error_t | reme_volume_destroy (reme_context_t c, reme_volume_t *v) |
| Destroy a previously created volume object. More...
|
|
reme_error_t | reme_volume_get_time (reme_context_t c, reme_volume_t v, int *time) |
| Get the volume time. More...
|
|
reme_error_t | reme_volume_get_bytes (reme_context_t c, reme_volume_t v, const void **bytes, int *length) |
| Returns the content of the volume as an array of bytes. More...
|
|
reme_error_t | reme_volume_color_get_bytes (reme_context_t c, reme_volume_t v, const void **bytes, int *length) |
| Returns the content of the color volume as an array of bytes. More...
|
|
reme_error_t | reme_volume_slice_get_bytes (reme_context_t c, reme_volume_t v, const int slice, const void **bytes, int *length) |
| Returns the content of a specific slice ("xy-plane") of the volume as an array of bytes. More...
|
|
reme_error_t | reme_volume_color_slice_get_bytes (reme_context_t c, reme_volume_t v, const int slice, const void **bytes, int *length) |
| Returns the content of a specific slice ("xy-plane") of the color volume as an array of bytes. More...
|
|
reme_error_t | reme_volume_set_bytes (reme_context_t c, reme_volume_t v, const void *bytes, int length) |
| Sets the content of the volume to the given array of bytes. More...
|
|
reme_error_t | reme_volume_color_set_bytes (reme_context_t c, reme_volume_t v, const void *bytes, int length) |
| Sets the content of the color volume to the given array of bytes. More...
|
|
reme_error_t | reme_volume_slice_set_bytes (reme_context_t c, reme_volume_t v, const int slice, const void *bytes, int length) |
| Sets the content of a slice ("xy-plane") of the volume to the given array of bytes. More...
|
|
reme_error_t | reme_volume_color_slice_set_bytes (reme_context_t c, reme_volume_t v, const int slice, const void *bytes, int length) |
| Sets the content of a slice ("xy-plane") of the color volume to the given array of bytes. More...
|
|
reme_error_t | reme_volume_reset (reme_context_t c, reme_volume_t v) |
| Reset the volume to empty state. More...
|
|
reme_error_t | reme_volume_reset_selectively (reme_context_t c, reme_volume_t v, bool reset_surface, bool reset_colors) |
| Reset the volume to empty state with options. More...
|
|
Access and manipulate the reconstruction volume.
The volume defines the space in which reconstruction can take place. The dimensions and the resolution of the volume are currently fixed at compile time. Therefore, to manipulate volume related parameters use reme_context_bind_reconstruction_options before calling reme_context_compile.
The example below illustrates how to work we a default volume. Besides scanning, saving the content of the volume to disk and resuming later is supported.
int num_slices;
const void *bytes;
int length;
void *load_buffer = 0;
int load_buffer_length = 0;
bool continue_scanning = true;
if (_kbhit()) {
char k = _getch();
switch (k) {
case 'r': {
break;
}
case 's' : {
FILE *f = fopen("volume.bin", "wb");
for (int i = 0; i < num_slices; i++) {
fwrite(&length, sizeof(int), 1, f);
fwrite(bytes, 1, length, f);
}
fclose(f);
break;
}
case 'l': {
FILE *f = fopen("volume.bin", "rb");
for (int i = 0; i < num_slices; i++) {
fread(&length, sizeof(int), 1, f);
if (load_buffer_length != length) {
if (load_buffer != 0) {
free(load_buffer);
}
load_buffer = malloc(length);
load_buffer_length = length;
}
fread(load_buffer, 1, length, f);
}
fclose(f);
if (load_buffer != 0) {
free(load_buffer);
load_buffer = 0;
load_buffer_length = 0;
}
break;
}
case 'x': {
continue_scanning = false;
break;
}
}
}
}
}
◆ reme_volume_t
Handle referencing a volume object.
A reme_volume_t represents a volume in 3D space. Everything within that volume is potentially reconstructed during processing sensor data.
◆ reme_volume_create()
Create a new reme_volume_t object.
- Parameters
-
c | A valid context object |
v | A pointer that will receive the handle of the created volume |
- Return values
-
- Examples:
- example_reconstructmesdk_bust.cpp, example_reconstructmesdk_color_tracking.cpp, example_reconstructmesdk_colorize.cpp, example_reconstructmesdk_csg.cpp, example_reconstructmesdk_error_handling.cpp, example_reconstructmesdk_marker.cpp, example_reconstructmesdk_one_minute.cpp, example_reconstructmesdk_point_and_shoot_with_colors.cpp, example_reconstructmesdk_recorder.cpp, example_reconstructmesdk_remote_reconstruction.cpp, example_reconstructmesdk_scan_tilt.cpp, example_reconstructmesdk_sensor_external.cpp, example_reconstructmesdk_sensor_multi_independent.cpp, example_reconstructmesdk_sensor_printing.cpp, example_reconstructmesdk_sensor_threaded.cpp, example_reconstructmesdk_surface.cpp, and example_reconstructmesdk_volume.cpp.
◆ reme_volume_destroy()
Destroy a previously created volume object.
- Parameters
-
c | A pointer to a valid context object |
v | A mutable pointer to a valid volume handle to destroy |
- Return values
-
◆ reme_volume_get_time()
Get the volume time.
The volume time corresponds to the number of updates performed on this volume. Initialize it is set to zero.
- Parameters
-
c | A valid context object |
v | A valid volume object |
time | The volume time |
- Return values
-
◆ reme_volume_get_bytes()
Returns the content of the volume as an array of bytes.
Downloads the current content of the volume to host side. Using in combination with reme_volume_set_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
- Parameters
-
c | A valid context object |
v | A valid volume object |
bytes | A mutable pointer that will receive the address of the volume content. |
length | A pointer that will receive the size of the returned array in bytes. |
- Return values
-
◆ reme_volume_color_get_bytes()
Returns the content of the color volume as an array of bytes.
Downloads the current content of the color volume to host side. Using in combination with reme_volume_color_set_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
- Parameters
-
c | A valid context object |
v | A valid volume object |
bytes | A mutable pointer that will receive the address of the color volume content. |
length | A pointer that will receive the size of the returned array in bytes. |
- Return values
-
◆ reme_volume_slice_get_bytes()
Returns the content of a specific slice ("xy-plane") of the volume as an array of bytes.
Downloads the current content of the slice ("xy-plane") of the volume to host side. Using in combination with reme_volume_slice_set_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
The number of slices equals the number of voxels in the z-dimension.
- Parameters
-
c | A valid context object |
v | A valid volume object |
slice | Slize index along z-Dimension |
bytes | A mutable pointer that will receive the address of the volume content. |
length | A pointer that will receive the size of the returned array in bytes. |
- Return values
-
- Examples:
- example_reconstructmesdk_volume.cpp.
◆ reme_volume_color_slice_get_bytes()
Returns the content of a specific slice ("xy-plane") of the color volume as an array of bytes.
Downloads the current content of the slice ("xy-plane") of the color volume to host side. Using in combination with reme_volume_color_slice_set_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
The number of slices equals the number of voxels in the z-dimension.
- Parameters
-
c | A valid context object |
v | A valid volume object |
slice | slice index along z-Dimension |
bytes | A mutable pointer that will receive the address of the color volume content. |
length | A pointer that will receive the size of the returned array in bytes. |
- Return values
-
◆ reme_volume_set_bytes()
Sets the content of the volume to the given array of bytes.
Uploads the given array as volume content to the device side. Using in combination with reme_volume_get_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
- Parameters
-
c | A valid context object |
v | A valid volume object |
bytes | An array of bytes |
length | Number of bytes in the array |
- Return values
-
◆ reme_volume_color_set_bytes()
Sets the content of the color volume to the given array of bytes.
Uploads the given array as color volume content to the device side. Using in combination with reme_volume_color_get_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
- Parameters
-
c | A valid context object |
v | A valid volume object |
bytes | An array of bytes |
length | Number of bytes in the array |
- Return values
-
◆ reme_volume_slice_set_bytes()
Sets the content of a slice ("xy-plane") of the volume to the given array of bytes.
Uploads the given array as slice ("xy-plane") of the volume content to the device side. Using in combination with reme_volume_slice_get_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
The number of slices equals the number of voxels in the z-dimension.
- Parameters
-
c | A valid context object |
v | A valid volume object |
slice | Slice id along z-Dimension. |
bytes | An array of bytes |
length | Number of bytes in the array |
- Return values
-
- Examples:
- example_reconstructmesdk_volume.cpp.
◆ reme_volume_color_slice_set_bytes()
Sets the content of a slice ("xy-plane") of the color volume to the given array of bytes.
Uploads the given array as slice ("xy-plane") of the color volume content to the device side. Using in combination with reme_volume_color_slice_get_bytes one can resume a previously started reconstruction as long as the volume parameters (dimensions) match.
The number of slices equals the number of voxels in the z-dimension.
- Parameters
-
c | A valid context object |
v | A valid volume object |
slice | slice id along z-Dimension. |
bytes | An array of bytes |
length | Number of bytes in the array |
- Return values
-
◆ reme_volume_reset()
◆ reme_volume_reset_selectively()
Reset the volume to empty state with options.
Forces the volume to clear its content.
- Parameters
-
c | A valid context object |
v | A valid volume object |
reset_surface | If true resets geometric part of the volume. |
reset_colors | If true resets color part of the volume. |
- Return values
-
- Examples:
- example_reconstructmesdk_bust.cpp, and example_reconstructmesdk_marker.cpp.