#include <stdio.h>
#include <stdlib.h>
{
int rc = EXIT_FAILURE;
if ( !meshFloating )
{
goto fail_mesh_loading_a;
}
if ( !meshReference )
{
goto fail_mesh_loading_b;
}
float icpSamplingVoxelSize = diagonal * 0.01f;
printf(
"Final transform:\n%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n", xf.
A.
x.
x, xf.
A.
x.
y, xf.
A.
x.
z, xf.
b.
x, xf.
A.
y.
x, xf.
A.
y.
y, xf.
A.
y.
z, xf.
b.
y, xf.
A.
z.
x, xf.
A.
z.
y, xf.
A.
z.
z, xf.
b.
z);
{
goto fail_save;
}
rc = EXIT_SUCCESS;
fail_save:
fail_mesh_loading_b:
fail_mesh_loading_a:
return rc;
}
struct MR_MeshOrPoints MR_MeshOrPoints
MRC_API MR_AffineXf3f MR_AffineXf3f_DefaultConstruct(void)
MRC_API float MR_Box3f_diagonal(const MR_Box3f *_this)
struct MR_expected_void_std_string MR_expected_void_std_string
struct MR_expected_MR_Mesh_std_string MR_expected_MR_Mesh_std_string
struct MR_std_string MR_std_string
MRC_API void MR_ICPProperties_Set_distThresholdSq(MR_ICPProperties *_this, float value)
MRC_API void MR_ICPProperties_Set_exitVal(MR_ICPProperties *_this, float value)
MRC_API MR_std_string * MR_ICP_getStatusInfo(const MR_ICP *_this)
MRC_API MR_ICPProperties * MR_ICPProperties_DefaultConstruct(void)
MRC_API void MR_ICP_Destroy(const MR_ICP *_this)
MRC_API MR_ICP * MR_ICP_Construct_3(const MR_MeshOrPointsXf *flt, const MR_MeshOrPointsXf *ref, float samplingVoxelSize)
MRC_API void MR_ICPProperties_Destroy(const MR_ICPProperties *_this)
MRC_API void MR_ICP_setParams(MR_ICP *_this, const MR_ICPProperties *prop)
MRC_API MR_AffineXf3f MR_ICP_calculateTransformation(MR_ICP *_this)
struct MR_MeshOrPointsXf MR_MeshOrPointsXf
struct MR_ICPProperties MR_ICPProperties
MRC_API MR_expected_MR_Mesh_std_string * MR_MeshLoad_fromAnySupportedFormat_2(const char *file, const char *file_end, const MR_MeshLoadSettings *settings)
MRC_API void MR_MeshOrPoints_Destroy(const MR_MeshOrPoints *_this)
MRC_API MR_MeshOrPointsXf * MR_MeshOrPointsXf_ConstructFrom(const MR_MeshOrPoints *obj, MR_AffineXf3f xf)
MRC_API MR_MeshOrPoints * MR_MeshOrPoints_Construct_MR_Mesh(const MR_Mesh *mesh)
MRC_API void MR_MeshOrPointsXf_Destroy(const MR_MeshOrPointsXf *_this)
MRC_API MR_expected_void_std_string * MR_MeshSave_toAnySupportedFormat_3(const MR_Mesh *mesh, const char *file, const char *file_end, const MR_SaveSettings *settings)
MRC_API void MR_Mesh_transform(MR_Mesh *_this, const MR_AffineXf3f *xf, const MR_VertBitSet *region)
MRC_API MR_Box3f MR_Mesh_computeBoundingBox_1(const MR_Mesh *_this, const MR_AffineXf3f *toWorld)
MRC_API MR_Mesh * MR_expected_MR_Mesh_std_string_GetMutableValue(MR_expected_MR_Mesh_std_string *_this)
MRC_API const MR_std_string * MR_expected_MR_Mesh_std_string_GetError(const MR_expected_MR_Mesh_std_string *_this)
MRC_API void MR_expected_MR_Mesh_std_string_Destroy(const MR_expected_MR_Mesh_std_string *_this)
MRC_API const MR_std_string * MR_expected_void_std_string_GetError(const MR_expected_void_std_string *_this)
MRC_API void MR_expected_void_std_string_Destroy(const MR_expected_void_std_string *_this)
MRC_API void MR_std_string_Destroy(const MR_std_string *_this)
MRC_API const char * MR_std_string_Data(const MR_std_string *_this)