diff options
Diffstat (limited to 'intern/libmv/intern')
-rw-r--r-- | intern/libmv/intern/autotrack.cc | 35 | ||||
-rw-r--r-- | intern/libmv/intern/autotrack.h | 10 | ||||
-rw-r--r-- | intern/libmv/intern/camera_intrinsics.cc | 436 | ||||
-rw-r--r-- | intern/libmv/intern/camera_intrinsics.h | 12 | ||||
-rw-r--r-- | intern/libmv/intern/detector.cc | 16 | ||||
-rw-r--r-- | intern/libmv/intern/detector.h | 2 | ||||
-rw-r--r-- | intern/libmv/intern/frame_accessor.cc | 101 | ||||
-rw-r--r-- | intern/libmv/intern/frame_accessor.h | 19 | ||||
-rw-r--r-- | intern/libmv/intern/homography.cc | 6 | ||||
-rw-r--r-- | intern/libmv/intern/image.cc | 64 | ||||
-rw-r--r-- | intern/libmv/intern/image.h | 30 | ||||
-rw-r--r-- | intern/libmv/intern/reconstruction.cc | 229 | ||||
-rw-r--r-- | intern/libmv/intern/reconstruction.h | 46 | ||||
-rw-r--r-- | intern/libmv/intern/stub.cc | 214 | ||||
-rw-r--r-- | intern/libmv/intern/track_region.cc | 80 | ||||
-rw-r--r-- | intern/libmv/intern/track_region.h | 14 | ||||
-rw-r--r-- | intern/libmv/intern/tracks.cc | 6 | ||||
-rw-r--r-- | intern/libmv/intern/tracksN.cc | 39 | ||||
-rw-r--r-- | intern/libmv/intern/tracksN.h | 10 | ||||
-rw-r--r-- | intern/libmv/intern/utildefines.h | 36 |
20 files changed, 672 insertions, 733 deletions
diff --git a/intern/libmv/intern/autotrack.cc b/intern/libmv/intern/autotrack.cc index 7000a422de8..b7110957b15 100644 --- a/intern/libmv/intern/autotrack.cc +++ b/intern/libmv/intern/autotrack.cc @@ -22,15 +22,15 @@ #include "intern/utildefines.h" #include "libmv/autotrack/autotrack.h" +using libmv::TrackRegionOptions; +using libmv::TrackRegionResult; using mv::AutoTrack; using mv::FrameAccessor; using mv::Marker; -using libmv::TrackRegionOptions; -using libmv::TrackRegionResult; -libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor *frame_accessor) { - return (libmv_AutoTrack*) LIBMV_OBJECT_NEW(AutoTrack, - (FrameAccessor*) frame_accessor); +libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor* frame_accessor) { + return (libmv_AutoTrack*)LIBMV_OBJECT_NEW(AutoTrack, + (FrameAccessor*)frame_accessor); } void libmv_autoTrackDestroy(libmv_AutoTrack* libmv_autotrack) { @@ -39,7 +39,7 @@ void libmv_autoTrackDestroy(libmv_AutoTrack* libmv_autotrack) { void libmv_autoTrackSetOptions(libmv_AutoTrack* libmv_autotrack, const libmv_AutoTrackOptions* options) { - AutoTrack *autotrack = ((AutoTrack*) libmv_autotrack); + AutoTrack* autotrack = ((AutoTrack*)libmv_autotrack); libmv_configureTrackRegionOptions(options->track_region, &autotrack->options.track_region); @@ -51,18 +51,15 @@ void libmv_autoTrackSetOptions(libmv_AutoTrack* libmv_autotrack, int libmv_autoTrackMarker(libmv_AutoTrack* libmv_autotrack, const libmv_TrackRegionOptions* libmv_options, - libmv_Marker *libmv_tracked_marker, + libmv_Marker* libmv_tracked_marker, libmv_TrackRegionResult* libmv_result) { - Marker tracked_marker; TrackRegionOptions options; TrackRegionResult result; libmv_apiMarkerToMarker(*libmv_tracked_marker, &tracked_marker); - libmv_configureTrackRegionOptions(*libmv_options, - &options); - bool ok = (((AutoTrack*) libmv_autotrack)->TrackMarker(&tracked_marker, - &result, - &options)); + libmv_configureTrackRegionOptions(*libmv_options, &options); + bool ok = (((AutoTrack*)libmv_autotrack) + ->TrackMarker(&tracked_marker, &result, &options)); libmv_markerToApiMarker(tracked_marker, libmv_tracked_marker); libmv_regionTrackergetResult(result, libmv_result); return ok && result.is_usable(); @@ -72,7 +69,7 @@ void libmv_autoTrackAddMarker(libmv_AutoTrack* libmv_autotrack, const libmv_Marker* libmv_marker) { Marker marker; libmv_apiMarkerToMarker(*libmv_marker, &marker); - ((AutoTrack*) libmv_autotrack)->AddMarker(marker); + ((AutoTrack*)libmv_autotrack)->AddMarker(marker); } void libmv_autoTrackSetMarkers(libmv_AutoTrack* libmv_autotrack, @@ -87,19 +84,17 @@ void libmv_autoTrackSetMarkers(libmv_AutoTrack* libmv_autotrack, for (size_t i = 0; i < num_markers; ++i) { libmv_apiMarkerToMarker(libmv_marker[i], &markers[i]); } - ((AutoTrack*) libmv_autotrack)->SetMarkers(&markers); + ((AutoTrack*)libmv_autotrack)->SetMarkers(&markers); } int libmv_autoTrackGetMarker(libmv_AutoTrack* libmv_autotrack, int clip, int frame, int track, - libmv_Marker *libmv_marker) { + libmv_Marker* libmv_marker) { Marker marker; - int ok = ((AutoTrack*) libmv_autotrack)->GetMarker(clip, - frame, - track, - &marker); + int ok = + ((AutoTrack*)libmv_autotrack)->GetMarker(clip, frame, track, &marker); if (ok) { libmv_markerToApiMarker(marker, libmv_marker); } diff --git a/intern/libmv/intern/autotrack.h b/intern/libmv/intern/autotrack.h index 6b49a6908e1..3887983814b 100644 --- a/intern/libmv/intern/autotrack.h +++ b/intern/libmv/intern/autotrack.h @@ -21,9 +21,9 @@ #define LIBMV_C_API_AUTOTRACK_H_ #include "intern/frame_accessor.h" -#include "intern/tracksN.h" -#include "intern/track_region.h" #include "intern/region.h" +#include "intern/track_region.h" +#include "intern/tracksN.h" #ifdef __cplusplus extern "C" { @@ -36,7 +36,7 @@ typedef struct libmv_AutoTrackOptions { libmv_Region search_region; } libmv_AutoTrackOptions; -libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor *frame_accessor); +libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor* frame_accessor); void libmv_autoTrackDestroy(libmv_AutoTrack* libmv_autotrack); @@ -45,7 +45,7 @@ void libmv_autoTrackSetOptions(libmv_AutoTrack* libmv_autotrack, int libmv_autoTrackMarker(libmv_AutoTrack* libmv_autotrack, const libmv_TrackRegionOptions* libmv_options, - libmv_Marker *libmv_tracker_marker, + libmv_Marker* libmv_tracker_marker, libmv_TrackRegionResult* libmv_result); void libmv_autoTrackAddMarker(libmv_AutoTrack* libmv_autotrack, @@ -59,7 +59,7 @@ int libmv_autoTrackGetMarker(libmv_AutoTrack* libmv_autotrack, int clip, int frame, int track, - libmv_Marker *libmv_marker); + libmv_Marker* libmv_marker); #ifdef __cplusplus } diff --git a/intern/libmv/intern/camera_intrinsics.cc b/intern/libmv/intern/camera_intrinsics.cc index 628637e12cc..243b26d9fb3 100644 --- a/intern/libmv/intern/camera_intrinsics.cc +++ b/intern/libmv/intern/camera_intrinsics.cc @@ -21,62 +21,56 @@ #include "intern/utildefines.h" #include "libmv/simple_pipeline/camera_intrinsics.h" +using libmv::BrownCameraIntrinsics; using libmv::CameraIntrinsics; using libmv::DivisionCameraIntrinsics; -using libmv::PolynomialCameraIntrinsics; using libmv::NukeCameraIntrinsics; -using libmv::BrownCameraIntrinsics; +using libmv::PolynomialCameraIntrinsics; -libmv_CameraIntrinsics *libmv_cameraIntrinsicsNew( +libmv_CameraIntrinsics* libmv_cameraIntrinsicsNew( const libmv_CameraIntrinsicsOptions* libmv_camera_intrinsics_options) { - CameraIntrinsics *camera_intrinsics = - libmv_cameraIntrinsicsCreateFromOptions(libmv_camera_intrinsics_options); - return (libmv_CameraIntrinsics *) camera_intrinsics; + CameraIntrinsics* camera_intrinsics = + libmv_cameraIntrinsicsCreateFromOptions(libmv_camera_intrinsics_options); + return (libmv_CameraIntrinsics*)camera_intrinsics; } -libmv_CameraIntrinsics *libmv_cameraIntrinsicsCopy( +libmv_CameraIntrinsics* libmv_cameraIntrinsicsCopy( const libmv_CameraIntrinsics* libmv_intrinsics) { - const CameraIntrinsics *orig_intrinsics = - (const CameraIntrinsics *) libmv_intrinsics; + const CameraIntrinsics* orig_intrinsics = + (const CameraIntrinsics*)libmv_intrinsics; - CameraIntrinsics *new_intrinsics = NULL; + CameraIntrinsics* new_intrinsics = NULL; switch (orig_intrinsics->GetDistortionModelType()) { - case libmv::DISTORTION_MODEL_POLYNOMIAL: - { - const PolynomialCameraIntrinsics *polynomial_intrinsics = + case libmv::DISTORTION_MODEL_POLYNOMIAL: { + const PolynomialCameraIntrinsics* polynomial_intrinsics = static_cast<const PolynomialCameraIntrinsics*>(orig_intrinsics); - new_intrinsics = LIBMV_OBJECT_NEW(PolynomialCameraIntrinsics, - *polynomial_intrinsics); - break; - } - case libmv::DISTORTION_MODEL_DIVISION: - { - const DivisionCameraIntrinsics *division_intrinsics = + new_intrinsics = + LIBMV_OBJECT_NEW(PolynomialCameraIntrinsics, *polynomial_intrinsics); + break; + } + case libmv::DISTORTION_MODEL_DIVISION: { + const DivisionCameraIntrinsics* division_intrinsics = static_cast<const DivisionCameraIntrinsics*>(orig_intrinsics); - new_intrinsics = LIBMV_OBJECT_NEW(DivisionCameraIntrinsics, - *division_intrinsics); - break; - } - case libmv::DISTORTION_MODEL_NUKE: - { - const NukeCameraIntrinsics *nuke_intrinsics = + new_intrinsics = + LIBMV_OBJECT_NEW(DivisionCameraIntrinsics, *division_intrinsics); + break; + } + case libmv::DISTORTION_MODEL_NUKE: { + const NukeCameraIntrinsics* nuke_intrinsics = static_cast<const NukeCameraIntrinsics*>(orig_intrinsics); - new_intrinsics = LIBMV_OBJECT_NEW(NukeCameraIntrinsics, - *nuke_intrinsics); - break; - } - case libmv::DISTORTION_MODEL_BROWN: - { - const BrownCameraIntrinsics *brown_intrinsics = + new_intrinsics = LIBMV_OBJECT_NEW(NukeCameraIntrinsics, *nuke_intrinsics); + break; + } + case libmv::DISTORTION_MODEL_BROWN: { + const BrownCameraIntrinsics* brown_intrinsics = static_cast<const BrownCameraIntrinsics*>(orig_intrinsics); - new_intrinsics = LIBMV_OBJECT_NEW(BrownCameraIntrinsics, - *brown_intrinsics); - break; - } - default: - assert(!"Unknown distortion model"); + new_intrinsics = + LIBMV_OBJECT_NEW(BrownCameraIntrinsics, *brown_intrinsics); + break; + } + default: assert(!"Unknown distortion model"); } - return (libmv_CameraIntrinsics *) new_intrinsics; + return (libmv_CameraIntrinsics*)new_intrinsics; } void libmv_cameraIntrinsicsDestroy(libmv_CameraIntrinsics* libmv_intrinsics) { @@ -86,7 +80,7 @@ void libmv_cameraIntrinsicsDestroy(libmv_CameraIntrinsics* libmv_intrinsics) { void libmv_cameraIntrinsicsUpdate( const libmv_CameraIntrinsicsOptions* libmv_camera_intrinsics_options, libmv_CameraIntrinsics* libmv_intrinsics) { - CameraIntrinsics *camera_intrinsics = (CameraIntrinsics *) libmv_intrinsics; + CameraIntrinsics* camera_intrinsics = (CameraIntrinsics*)libmv_intrinsics; double focal_length = libmv_camera_intrinsics_options->focal_length; double principal_x = libmv_camera_intrinsics_options->principal_point_x; @@ -115,191 +109,173 @@ void libmv_cameraIntrinsicsUpdate( } switch (libmv_camera_intrinsics_options->distortion_model) { - case LIBMV_DISTORTION_MODEL_POLYNOMIAL: - { - assert(camera_intrinsics->GetDistortionModelType() == - libmv::DISTORTION_MODEL_POLYNOMIAL); - - PolynomialCameraIntrinsics *polynomial_intrinsics = - (PolynomialCameraIntrinsics *) camera_intrinsics; - - double k1 = libmv_camera_intrinsics_options->polynomial_k1; - double k2 = libmv_camera_intrinsics_options->polynomial_k2; - double k3 = libmv_camera_intrinsics_options->polynomial_k3; - - if (polynomial_intrinsics->k1() != k1 || - polynomial_intrinsics->k2() != k2 || - polynomial_intrinsics->k3() != k3) { - polynomial_intrinsics->SetRadialDistortion(k1, k2, k3); - } - break; + case LIBMV_DISTORTION_MODEL_POLYNOMIAL: { + assert(camera_intrinsics->GetDistortionModelType() == + libmv::DISTORTION_MODEL_POLYNOMIAL); + + PolynomialCameraIntrinsics* polynomial_intrinsics = + (PolynomialCameraIntrinsics*)camera_intrinsics; + + double k1 = libmv_camera_intrinsics_options->polynomial_k1; + double k2 = libmv_camera_intrinsics_options->polynomial_k2; + double k3 = libmv_camera_intrinsics_options->polynomial_k3; + + if (polynomial_intrinsics->k1() != k1 || + polynomial_intrinsics->k2() != k2 || + polynomial_intrinsics->k3() != k3) { + polynomial_intrinsics->SetRadialDistortion(k1, k2, k3); } + break; + } - case LIBMV_DISTORTION_MODEL_DIVISION: - { - assert(camera_intrinsics->GetDistortionModelType() == - libmv::DISTORTION_MODEL_DIVISION); + case LIBMV_DISTORTION_MODEL_DIVISION: { + assert(camera_intrinsics->GetDistortionModelType() == + libmv::DISTORTION_MODEL_DIVISION); - DivisionCameraIntrinsics *division_intrinsics = - (DivisionCameraIntrinsics *) camera_intrinsics; + DivisionCameraIntrinsics* division_intrinsics = + (DivisionCameraIntrinsics*)camera_intrinsics; - double k1 = libmv_camera_intrinsics_options->division_k1; - double k2 = libmv_camera_intrinsics_options->division_k2; + double k1 = libmv_camera_intrinsics_options->division_k1; + double k2 = libmv_camera_intrinsics_options->division_k2; - if (division_intrinsics->k1() != k1 || - division_intrinsics->k2() != k2) { - division_intrinsics->SetDistortion(k1, k2); - } + if (division_intrinsics->k1() != k1 || division_intrinsics->k2() != k2) { + division_intrinsics->SetDistortion(k1, k2); + } - break; + break; + } + + case LIBMV_DISTORTION_MODEL_NUKE: { + assert(camera_intrinsics->GetDistortionModelType() == + libmv::DISTORTION_MODEL_NUKE); + + NukeCameraIntrinsics* nuke_intrinsics = + (NukeCameraIntrinsics*)camera_intrinsics; + + double k1 = libmv_camera_intrinsics_options->nuke_k1; + double k2 = libmv_camera_intrinsics_options->nuke_k2; + + if (nuke_intrinsics->k1() != k1 || nuke_intrinsics->k2() != k2) { + nuke_intrinsics->SetDistortion(k1, k2); } - case LIBMV_DISTORTION_MODEL_NUKE: - { - assert(camera_intrinsics->GetDistortionModelType() == - libmv::DISTORTION_MODEL_NUKE); + break; + } - NukeCameraIntrinsics *nuke_intrinsics = - (NukeCameraIntrinsics *) camera_intrinsics; + case LIBMV_DISTORTION_MODEL_BROWN: { + assert(camera_intrinsics->GetDistortionModelType() == + libmv::DISTORTION_MODEL_BROWN); - double k1 = libmv_camera_intrinsics_options->nuke_k1; - double k2 = libmv_camera_intrinsics_options->nuke_k2; + BrownCameraIntrinsics* brown_intrinsics = + (BrownCameraIntrinsics*)camera_intrinsics; - if (nuke_intrinsics->k1() != k1 || - nuke_intrinsics->k2() != k2) { - nuke_intrinsics->SetDistortion(k1, k2); - } + double k1 = libmv_camera_intrinsics_options->brown_k1; + double k2 = libmv_camera_intrinsics_options->brown_k2; + double k3 = libmv_camera_intrinsics_options->brown_k3; + double k4 = libmv_camera_intrinsics_options->brown_k4; - break; + if (brown_intrinsics->k1() != k1 || brown_intrinsics->k2() != k2 || + brown_intrinsics->k3() != k3 || brown_intrinsics->k4() != k4) { + brown_intrinsics->SetRadialDistortion(k1, k2, k3, k4); } - case LIBMV_DISTORTION_MODEL_BROWN: - { - assert(camera_intrinsics->GetDistortionModelType() == - libmv::DISTORTION_MODEL_BROWN); - - BrownCameraIntrinsics *brown_intrinsics = - (BrownCameraIntrinsics *) camera_intrinsics; - - double k1 = libmv_camera_intrinsics_options->brown_k1; - double k2 = libmv_camera_intrinsics_options->brown_k2; - double k3 = libmv_camera_intrinsics_options->brown_k3; - double k4 = libmv_camera_intrinsics_options->brown_k4; - - if (brown_intrinsics->k1() != k1 || - brown_intrinsics->k2() != k2 || - brown_intrinsics->k3() != k3 || - brown_intrinsics->k4() != k4) { - brown_intrinsics->SetRadialDistortion(k1, k2, k3, k4); - } - - double p1 = libmv_camera_intrinsics_options->brown_p1; - double p2 = libmv_camera_intrinsics_options->brown_p2; - - if (brown_intrinsics->p1() != p1 || brown_intrinsics->p2() != p2) { - brown_intrinsics->SetTangentialDistortion(p1, p2); - } - break; + double p1 = libmv_camera_intrinsics_options->brown_p1; + double p2 = libmv_camera_intrinsics_options->brown_p2; + + if (brown_intrinsics->p1() != p1 || brown_intrinsics->p2() != p2) { + brown_intrinsics->SetTangentialDistortion(p1, p2); } + break; + } - default: - assert(!"Unknown distortion model"); + default: assert(!"Unknown distortion model"); } } void libmv_cameraIntrinsicsSetThreads(libmv_CameraIntrinsics* libmv_intrinsics, int threads) { - CameraIntrinsics *camera_intrinsics = (CameraIntrinsics *) libmv_intrinsics; + CameraIntrinsics* camera_intrinsics = (CameraIntrinsics*)libmv_intrinsics; camera_intrinsics->SetThreads(threads); } void libmv_cameraIntrinsicsExtractOptions( const libmv_CameraIntrinsics* libmv_intrinsics, libmv_CameraIntrinsicsOptions* camera_intrinsics_options) { - const CameraIntrinsics *camera_intrinsics = - (const CameraIntrinsics *) libmv_intrinsics; + const CameraIntrinsics* camera_intrinsics = + (const CameraIntrinsics*)libmv_intrinsics; // Fill in options which are common for all distortion models. camera_intrinsics_options->focal_length = camera_intrinsics->focal_length(); camera_intrinsics_options->principal_point_x = - camera_intrinsics->principal_point_x(); + camera_intrinsics->principal_point_x(); camera_intrinsics_options->principal_point_y = - camera_intrinsics->principal_point_y(); + camera_intrinsics->principal_point_y(); camera_intrinsics_options->image_width = camera_intrinsics->image_width(); camera_intrinsics_options->image_height = camera_intrinsics->image_height(); switch (camera_intrinsics->GetDistortionModelType()) { - case libmv::DISTORTION_MODEL_POLYNOMIAL: - { - const PolynomialCameraIntrinsics *polynomial_intrinsics = - static_cast<const PolynomialCameraIntrinsics *>(camera_intrinsics); - camera_intrinsics_options->distortion_model = + case libmv::DISTORTION_MODEL_POLYNOMIAL: { + const PolynomialCameraIntrinsics* polynomial_intrinsics = + static_cast<const PolynomialCameraIntrinsics*>(camera_intrinsics); + camera_intrinsics_options->distortion_model = LIBMV_DISTORTION_MODEL_POLYNOMIAL; - camera_intrinsics_options->polynomial_k1 = polynomial_intrinsics->k1(); - camera_intrinsics_options->polynomial_k2 = polynomial_intrinsics->k2(); - camera_intrinsics_options->polynomial_k3 = polynomial_intrinsics->k3(); - camera_intrinsics_options->polynomial_p1 = polynomial_intrinsics->p1(); - camera_intrinsics_options->polynomial_p2 = polynomial_intrinsics->p2(); - break; - } + camera_intrinsics_options->polynomial_k1 = polynomial_intrinsics->k1(); + camera_intrinsics_options->polynomial_k2 = polynomial_intrinsics->k2(); + camera_intrinsics_options->polynomial_k3 = polynomial_intrinsics->k3(); + camera_intrinsics_options->polynomial_p1 = polynomial_intrinsics->p1(); + camera_intrinsics_options->polynomial_p2 = polynomial_intrinsics->p2(); + break; + } - case libmv::DISTORTION_MODEL_DIVISION: - { - const DivisionCameraIntrinsics *division_intrinsics = - static_cast<const DivisionCameraIntrinsics *>(camera_intrinsics); - camera_intrinsics_options->distortion_model = + case libmv::DISTORTION_MODEL_DIVISION: { + const DivisionCameraIntrinsics* division_intrinsics = + static_cast<const DivisionCameraIntrinsics*>(camera_intrinsics); + camera_intrinsics_options->distortion_model = LIBMV_DISTORTION_MODEL_DIVISION; - camera_intrinsics_options->division_k1 = division_intrinsics->k1(); - camera_intrinsics_options->division_k2 = division_intrinsics->k2(); - break; - } - - case libmv::DISTORTION_MODEL_NUKE: - { - const NukeCameraIntrinsics *nuke_intrinsics = - static_cast<const NukeCameraIntrinsics *>(camera_intrinsics); - camera_intrinsics_options->distortion_model = - LIBMV_DISTORTION_MODEL_NUKE; - camera_intrinsics_options->nuke_k1 = nuke_intrinsics->k1(); - camera_intrinsics_options->nuke_k2 = nuke_intrinsics->k2(); - break; - } + camera_intrinsics_options->division_k1 = division_intrinsics->k1(); + camera_intrinsics_options->division_k2 = division_intrinsics->k2(); + break; + } + + case libmv::DISTORTION_MODEL_NUKE: { + const NukeCameraIntrinsics* nuke_intrinsics = + static_cast<const NukeCameraIntrinsics*>(camera_intrinsics); + camera_intrinsics_options->distortion_model = LIBMV_DISTORTION_MODEL_NUKE; + camera_intrinsics_options->nuke_k1 = nuke_intrinsics->k1(); + camera_intrinsics_options->nuke_k2 = nuke_intrinsics->k2(); + break; + } - case libmv::DISTORTION_MODEL_BROWN: - { - const BrownCameraIntrinsics *brown_intrinsics = - static_cast<const BrownCameraIntrinsics *>(camera_intrinsics); - camera_intrinsics_options->distortion_model = + case libmv::DISTORTION_MODEL_BROWN: { + const BrownCameraIntrinsics* brown_intrinsics = + static_cast<const BrownCameraIntrinsics*>(camera_intrinsics); + camera_intrinsics_options->distortion_model = LIBMV_DISTORTION_MODEL_BROWN; - camera_intrinsics_options->brown_k1 = brown_intrinsics->k1(); - camera_intrinsics_options->brown_k2 = brown_intrinsics->k2(); - camera_intrinsics_options->brown_k3 = brown_intrinsics->k3(); - camera_intrinsics_options->brown_k4 = brown_intrinsics->k4(); - camera_intrinsics_options->brown_p1 = brown_intrinsics->p1(); - camera_intrinsics_options->brown_p2 = brown_intrinsics->p2(); - break; - } + camera_intrinsics_options->brown_k1 = brown_intrinsics->k1(); + camera_intrinsics_options->brown_k2 = brown_intrinsics->k2(); + camera_intrinsics_options->brown_k3 = brown_intrinsics->k3(); + camera_intrinsics_options->brown_k4 = brown_intrinsics->k4(); + camera_intrinsics_options->brown_p1 = brown_intrinsics->p1(); + camera_intrinsics_options->brown_p2 = brown_intrinsics->p2(); + break; + } - default: - assert(!"Unknown distortion model"); + default: assert(!"Unknown distortion model"); } } void libmv_cameraIntrinsicsUndistortByte( const libmv_CameraIntrinsics* libmv_intrinsics, - const unsigned char *source_image, + const unsigned char* source_image, int width, int height, float overscan, int channels, unsigned char* destination_image) { - CameraIntrinsics *camera_intrinsics = (CameraIntrinsics *) libmv_intrinsics; - camera_intrinsics->UndistortBuffer(source_image, - width, height, - overscan, - channels, - destination_image); + CameraIntrinsics* camera_intrinsics = (CameraIntrinsics*)libmv_intrinsics; + camera_intrinsics->UndistortBuffer( + source_image, width, height, overscan, channels, destination_image); } void libmv_cameraIntrinsicsUndistortFloat( @@ -310,28 +286,22 @@ void libmv_cameraIntrinsicsUndistortFloat( float overscan, int channels, float* destination_image) { - CameraIntrinsics *intrinsics = (CameraIntrinsics *) libmv_intrinsics; - intrinsics->UndistortBuffer(source_image, - width, height, - overscan, - channels, - destination_image); + CameraIntrinsics* intrinsics = (CameraIntrinsics*)libmv_intrinsics; + intrinsics->UndistortBuffer( + source_image, width, height, overscan, channels, destination_image); } void libmv_cameraIntrinsicsDistortByte( const struct libmv_CameraIntrinsics* libmv_intrinsics, - const unsigned char *source_image, + const unsigned char* source_image, int width, int height, float overscan, int channels, - unsigned char *destination_image) { - CameraIntrinsics *intrinsics = (CameraIntrinsics *) libmv_intrinsics; - intrinsics->DistortBuffer(source_image, - width, height, - overscan, - channels, - destination_image); + unsigned char* destination_image) { + CameraIntrinsics* intrinsics = (CameraIntrinsics*)libmv_intrinsics; + intrinsics->DistortBuffer( + source_image, width, height, overscan, channels, destination_image); } void libmv_cameraIntrinsicsDistortFloat( @@ -342,12 +312,9 @@ void libmv_cameraIntrinsicsDistortFloat( float overscan, int channels, float* destination_image) { - CameraIntrinsics *intrinsics = (CameraIntrinsics *) libmv_intrinsics; - intrinsics->DistortBuffer(source_image, - width, height, - overscan, - channels, - destination_image); + CameraIntrinsics* intrinsics = (CameraIntrinsics*)libmv_intrinsics; + intrinsics->DistortBuffer( + source_image, width, height, overscan, channels, destination_image); } void libmv_cameraIntrinsicsApply( @@ -356,7 +323,7 @@ void libmv_cameraIntrinsicsApply( double y, double* x1, double* y1) { - CameraIntrinsics *intrinsics = (CameraIntrinsics *) libmv_intrinsics; + CameraIntrinsics* intrinsics = (CameraIntrinsics*)libmv_intrinsics; intrinsics->ApplyIntrinsics(x, y, x1, y1); } @@ -366,7 +333,7 @@ void libmv_cameraIntrinsicsInvert( double y, double* x1, double* y1) { - CameraIntrinsics *intrinsics = (CameraIntrinsics *) libmv_intrinsics; + CameraIntrinsics* intrinsics = (CameraIntrinsics*)libmv_intrinsics; intrinsics->InvertIntrinsics(x, y, x1, y1); } @@ -381,69 +348,63 @@ static void libmv_cameraIntrinsicsFillFromOptions( camera_intrinsics_options->principal_point_y); camera_intrinsics->SetImageSize(camera_intrinsics_options->image_width, - camera_intrinsics_options->image_height); + camera_intrinsics_options->image_height); switch (camera_intrinsics_options->distortion_model) { - case LIBMV_DISTORTION_MODEL_POLYNOMIAL: - { - PolynomialCameraIntrinsics *polynomial_intrinsics = + case LIBMV_DISTORTION_MODEL_POLYNOMIAL: { + PolynomialCameraIntrinsics* polynomial_intrinsics = static_cast<PolynomialCameraIntrinsics*>(camera_intrinsics); - polynomial_intrinsics->SetRadialDistortion( - camera_intrinsics_options->polynomial_k1, - camera_intrinsics_options->polynomial_k2, - camera_intrinsics_options->polynomial_k3); + polynomial_intrinsics->SetRadialDistortion( + camera_intrinsics_options->polynomial_k1, + camera_intrinsics_options->polynomial_k2, + camera_intrinsics_options->polynomial_k3); - break; - } + break; + } - case LIBMV_DISTORTION_MODEL_DIVISION: - { - DivisionCameraIntrinsics *division_intrinsics = + case LIBMV_DISTORTION_MODEL_DIVISION: { + DivisionCameraIntrinsics* division_intrinsics = static_cast<DivisionCameraIntrinsics*>(camera_intrinsics); - division_intrinsics->SetDistortion( - camera_intrinsics_options->division_k1, - camera_intrinsics_options->division_k2); - break; - } + division_intrinsics->SetDistortion( + camera_intrinsics_options->division_k1, + camera_intrinsics_options->division_k2); + break; + } - case LIBMV_DISTORTION_MODEL_NUKE: - { - NukeCameraIntrinsics *nuke_intrinsics = + case LIBMV_DISTORTION_MODEL_NUKE: { + NukeCameraIntrinsics* nuke_intrinsics = static_cast<NukeCameraIntrinsics*>(camera_intrinsics); - nuke_intrinsics->SetDistortion( - camera_intrinsics_options->nuke_k1, - camera_intrinsics_options->nuke_k2); - break; - } + nuke_intrinsics->SetDistortion(camera_intrinsics_options->nuke_k1, + camera_intrinsics_options->nuke_k2); + break; + } - case LIBMV_DISTORTION_MODEL_BROWN: - { - BrownCameraIntrinsics *brown_intrinsics = + case LIBMV_DISTORTION_MODEL_BROWN: { + BrownCameraIntrinsics* brown_intrinsics = static_cast<BrownCameraIntrinsics*>(camera_intrinsics); - brown_intrinsics->SetRadialDistortion( - camera_intrinsics_options->brown_k1, - camera_intrinsics_options->brown_k2, - camera_intrinsics_options->brown_k3, - camera_intrinsics_options->brown_k4); - brown_intrinsics->SetTangentialDistortion( + brown_intrinsics->SetRadialDistortion( + camera_intrinsics_options->brown_k1, + camera_intrinsics_options->brown_k2, + camera_intrinsics_options->brown_k3, + camera_intrinsics_options->brown_k4); + brown_intrinsics->SetTangentialDistortion( camera_intrinsics_options->brown_p1, camera_intrinsics_options->brown_p2); - break; - } + break; + } - default: - assert(!"Unknown distortion model"); + default: assert(!"Unknown distortion model"); } } CameraIntrinsics* libmv_cameraIntrinsicsCreateFromOptions( const libmv_CameraIntrinsicsOptions* camera_intrinsics_options) { - CameraIntrinsics *camera_intrinsics = NULL; + CameraIntrinsics* camera_intrinsics = NULL; switch (camera_intrinsics_options->distortion_model) { case LIBMV_DISTORTION_MODEL_POLYNOMIAL: camera_intrinsics = LIBMV_OBJECT_NEW(PolynomialCameraIntrinsics); @@ -457,8 +418,7 @@ CameraIntrinsics* libmv_cameraIntrinsicsCreateFromOptions( case LIBMV_DISTORTION_MODEL_BROWN: camera_intrinsics = LIBMV_OBJECT_NEW(BrownCameraIntrinsics); break; - default: - assert(!"Unknown distortion model"); + default: assert(!"Unknown distortion model"); } libmv_cameraIntrinsicsFillFromOptions(camera_intrinsics_options, camera_intrinsics); diff --git a/intern/libmv/intern/camera_intrinsics.h b/intern/libmv/intern/camera_intrinsics.h index eb6176770ec..8a65c93e6a4 100644 --- a/intern/libmv/intern/camera_intrinsics.h +++ b/intern/libmv/intern/camera_intrinsics.h @@ -56,10 +56,10 @@ typedef struct libmv_CameraIntrinsicsOptions { double brown_p1, brown_p2; } libmv_CameraIntrinsicsOptions; -libmv_CameraIntrinsics *libmv_cameraIntrinsicsNew( +libmv_CameraIntrinsics* libmv_cameraIntrinsicsNew( const libmv_CameraIntrinsicsOptions* libmv_camera_intrinsics_options); -libmv_CameraIntrinsics *libmv_cameraIntrinsicsCopy( +libmv_CameraIntrinsics* libmv_cameraIntrinsicsCopy( const libmv_CameraIntrinsics* libmv_intrinsics); void libmv_cameraIntrinsicsDestroy(libmv_CameraIntrinsics* libmv_intrinsics); @@ -76,7 +76,7 @@ void libmv_cameraIntrinsicsExtractOptions( void libmv_cameraIntrinsicsUndistortByte( const libmv_CameraIntrinsics* libmv_intrinsics, - const unsigned char *source_image, + const unsigned char* source_image, int width, int height, float overscan, @@ -94,12 +94,12 @@ void libmv_cameraIntrinsicsUndistortFloat( void libmv_cameraIntrinsicsDistortByte( const struct libmv_CameraIntrinsics* libmv_intrinsics, - const unsigned char *source_image, + const unsigned char* source_image, int width, int height, float overscan, int channels, - unsigned char *destination_image); + unsigned char* destination_image); void libmv_cameraIntrinsicsDistortFloat( const libmv_CameraIntrinsics* libmv_intrinsics, @@ -131,7 +131,7 @@ void libmv_cameraIntrinsicsInvert( #ifdef __cplusplus namespace libmv { - class CameraIntrinsics; +class CameraIntrinsics; } libmv::CameraIntrinsics* libmv_cameraIntrinsicsCreateFromOptions( diff --git a/intern/libmv/intern/detector.cc b/intern/libmv/intern/detector.cc index 455e431f6f4..21f5b46595c 100644 --- a/intern/libmv/intern/detector.cc +++ b/intern/libmv/intern/detector.cc @@ -34,7 +34,7 @@ struct libmv_Features { namespace { -libmv_Features *libmv_featuresFromVector( +libmv_Features* libmv_featuresFromVector( const libmv::vector<Feature>& features) { libmv_Features* libmv_features = LIBMV_STRUCT_NEW(libmv_Features, 1); int count = features.size(); @@ -50,12 +50,12 @@ libmv_Features *libmv_featuresFromVector( return libmv_features; } -void libmv_convertDetectorOptions(libmv_DetectOptions *options, - DetectOptions *detector_options) { +void libmv_convertDetectorOptions(libmv_DetectOptions* options, + DetectOptions* detector_options) { switch (options->detector) { -#define LIBMV_CONVERT(the_detector) \ - case LIBMV_DETECTOR_ ## the_detector: \ - detector_options->type = DetectOptions::the_detector; \ +#define LIBMV_CONVERT(the_detector) \ + case LIBMV_DETECTOR_##the_detector: \ + detector_options->type = DetectOptions::the_detector; \ break; LIBMV_CONVERT(FAST) LIBMV_CONVERT(MORAVEC) @@ -72,7 +72,7 @@ void libmv_convertDetectorOptions(libmv_DetectOptions *options, } // namespace -libmv_Features *libmv_detectFeaturesByte(const unsigned char* image_buffer, +libmv_Features* libmv_detectFeaturesByte(const unsigned char* image_buffer, int width, int height, int channels, @@ -133,7 +133,7 @@ void libmv_getFeature(const libmv_Features* libmv_features, double* y, double* score, double* size) { - Feature &feature = libmv_features->features[number]; + Feature& feature = libmv_features->features[number]; *x = feature.x; *y = feature.y; *score = feature.score; diff --git a/intern/libmv/intern/detector.h b/intern/libmv/intern/detector.h index b36935fc67f..f21e78d7f2b 100644 --- a/intern/libmv/intern/detector.h +++ b/intern/libmv/intern/detector.h @@ -38,7 +38,7 @@ typedef struct libmv_DetectOptions { int min_distance; int fast_min_trackness; int moravec_max_count; - unsigned char *moravec_pattern; + unsigned char* moravec_pattern; double harris_threshold; } libmv_DetectOptions; diff --git a/intern/libmv/intern/frame_accessor.cc b/intern/libmv/intern/frame_accessor.cc index 9fde73f0d71..3a6c753cc8d 100644 --- a/intern/libmv/intern/frame_accessor.cc +++ b/intern/libmv/intern/frame_accessor.cc @@ -36,20 +36,18 @@ struct LibmvFrameAccessor : public FrameAccessor { libmv_ReleaseImageCallback release_image_callback, libmv_GetMaskForTrackCallback get_mask_for_track_callback, libmv_ReleaseMaskCallback release_mask_callback) - : user_data_(user_data), - get_image_callback_(get_image_callback), - release_image_callback_(release_image_callback), - get_mask_for_track_callback_(get_mask_for_track_callback), - release_mask_callback_(release_mask_callback) { } + : user_data_(user_data), + get_image_callback_(get_image_callback), + release_image_callback_(release_image_callback), + get_mask_for_track_callback_(get_mask_for_track_callback), + release_mask_callback_(release_mask_callback) {} - virtual ~LibmvFrameAccessor() { - } + virtual ~LibmvFrameAccessor() {} libmv_InputMode get_libmv_input_mode(InputMode input_mode) { switch (input_mode) { -#define CHECK_INPUT_MODE(mode) \ - case mode: \ - return LIBMV_IMAGE_MODE_ ## mode; +#define CHECK_INPUT_MODE(mode) \ + case mode: return LIBMV_IMAGE_MODE_##mode; CHECK_INPUT_MODE(MONO) CHECK_INPUT_MODE(RGBA) #undef CHECK_INPUT_MODE @@ -59,8 +57,7 @@ struct LibmvFrameAccessor : public FrameAccessor { return LIBMV_IMAGE_MODE_MONO; } - void get_libmv_region(const Region& region, - libmv_Region* libmv_region) { + void get_libmv_region(const Region& region, libmv_Region* libmv_region) { libmv_region->min[0] = region.min(0); libmv_region->min[1] = region.min(1); libmv_region->max[0] = region.max(0); @@ -74,7 +71,7 @@ struct LibmvFrameAccessor : public FrameAccessor { const Region* region, const Transform* transform, FloatImage* destination) { - float *float_buffer; + float* float_buffer; int width, height, channels; libmv_Region libmv_region; if (region) { @@ -86,46 +83,41 @@ struct LibmvFrameAccessor : public FrameAccessor { get_libmv_input_mode(input_mode), downscale, region != NULL ? &libmv_region : NULL, - (libmv_FrameTransform*) transform, + (libmv_FrameTransform*)transform, &float_buffer, &width, &height, &channels); // TODO(sergey): Dumb code for until we can set data directly. - FloatImage temp_image(float_buffer, - height, - width, - channels); + FloatImage temp_image(float_buffer, height, width, channels); destination->CopyFrom(temp_image); return cache_key; } - void ReleaseImage(Key cache_key) { - release_image_callback_(cache_key); - } + void ReleaseImage(Key cache_key) { release_image_callback_(cache_key); } Key GetMaskForTrack(int clip, int frame, int track, const Region* region, FloatImage* destination) { - float *float_buffer; + float* float_buffer; int width, height; libmv_Region libmv_region; if (region) { get_libmv_region(*region, &libmv_region); } - Key cache_key = get_mask_for_track_callback_( - user_data_, - clip, - frame, - track, - region != NULL ? &libmv_region : NULL, - &float_buffer, - &width, - &height); + Key cache_key = + get_mask_for_track_callback_(user_data_, + clip, + frame, + track, + region != NULL ? &libmv_region : NULL, + &float_buffer, + &width, + &height); if (cache_key == NULL) { // No mask for the given track. @@ -133,30 +125,21 @@ struct LibmvFrameAccessor : public FrameAccessor { } // TODO(sergey): Dumb code for until we can set data directly. - FloatImage temp_image(float_buffer, - height, - width, - 1); + FloatImage temp_image(float_buffer, height, width, 1); destination->CopyFrom(temp_image); return cache_key; } - void ReleaseMask(Key key) { - release_mask_callback_(key); - } + void ReleaseMask(Key key) { release_mask_callback_(key); } - bool GetClipDimensions(int /*clip*/, int * /*width*/, int * /*height*/) { + bool GetClipDimensions(int /*clip*/, int* /*width*/, int* /*height*/) { return false; } - int NumClips() { - return 1; - } + int NumClips() { return 1; } - int NumFrames(int /*clip*/) { - return 0; - } + int NumFrames(int /*clip*/) { return 0; } libmv_FrameAccessorUserData* user_data_; libmv_GetImageCallback get_image_callback_; @@ -173,35 +156,35 @@ libmv_FrameAccessor* libmv_FrameAccessorNew( libmv_ReleaseImageCallback release_image_callback, libmv_GetMaskForTrackCallback get_mask_for_track_callback, libmv_ReleaseMaskCallback release_mask_callback) { - return (libmv_FrameAccessor*) LIBMV_OBJECT_NEW(LibmvFrameAccessor, - user_data, - get_image_callback, - release_image_callback, - get_mask_for_track_callback, - release_mask_callback); + return (libmv_FrameAccessor*)LIBMV_OBJECT_NEW(LibmvFrameAccessor, + user_data, + get_image_callback, + release_image_callback, + get_mask_for_track_callback, + release_mask_callback); } void libmv_FrameAccessorDestroy(libmv_FrameAccessor* frame_accessor) { LIBMV_OBJECT_DELETE(frame_accessor, LibmvFrameAccessor); } -int64_t libmv_frameAccessorgetTransformKey(const libmv_FrameTransform *transform) { - return ((FrameAccessor::Transform*) transform)->key(); +int64_t libmv_frameAccessorgetTransformKey( + const libmv_FrameTransform* transform) { + return ((FrameAccessor::Transform*)transform)->key(); } -void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform *transform, - const libmv_FloatImage *input_image, - libmv_FloatImage *output_image) { +void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform* transform, + const libmv_FloatImage* input_image, + libmv_FloatImage* output_image) { const FloatImage input(input_image->buffer, input_image->height, input_image->width, input_image->channels); FloatImage output; - ((FrameAccessor::Transform*) transform)->run(input, - &output); + ((FrameAccessor::Transform*)transform)->run(input, &output); - int num_pixels = output.Width() *output.Height() * output.Depth(); + int num_pixels = output.Width() * output.Height() * output.Depth(); output_image->buffer = new float[num_pixels]; memcpy(output_image->buffer, output.Data(), num_pixels * sizeof(float)); output_image->width = output.Width(); diff --git a/intern/libmv/intern/frame_accessor.h b/intern/libmv/intern/frame_accessor.h index 6bccb305282..39a3bc5eb1d 100644 --- a/intern/libmv/intern/frame_accessor.h +++ b/intern/libmv/intern/frame_accessor.h @@ -32,14 +32,14 @@ extern "C" { typedef struct libmv_FrameAccessor libmv_FrameAccessor; typedef struct libmv_FrameTransform libmv_FrameTransform; typedef struct libmv_FrameAccessorUserData libmv_FrameAccessorUserData; -typedef void *libmv_CacheKey; +typedef void* libmv_CacheKey; typedef enum { LIBMV_IMAGE_MODE_MONO, LIBMV_IMAGE_MODE_RGBA, } libmv_InputMode; -typedef libmv_CacheKey (*libmv_GetImageCallback) ( +typedef libmv_CacheKey (*libmv_GetImageCallback)( libmv_FrameAccessorUserData* user_data, int clip, int frame, @@ -52,9 +52,9 @@ typedef libmv_CacheKey (*libmv_GetImageCallback) ( int* height, int* channels); -typedef void (*libmv_ReleaseImageCallback) (libmv_CacheKey cache_key); +typedef void (*libmv_ReleaseImageCallback)(libmv_CacheKey cache_key); -typedef libmv_CacheKey (*libmv_GetMaskForTrackCallback) ( +typedef libmv_CacheKey (*libmv_GetMaskForTrackCallback)( libmv_FrameAccessorUserData* user_data, int clip, int frame, @@ -63,7 +63,7 @@ typedef libmv_CacheKey (*libmv_GetMaskForTrackCallback) ( float** destination, int* width, int* height); -typedef void (*libmv_ReleaseMaskCallback) (libmv_CacheKey cache_key); +typedef void (*libmv_ReleaseMaskCallback)(libmv_CacheKey cache_key); libmv_FrameAccessor* libmv_FrameAccessorNew( libmv_FrameAccessorUserData* user_data, @@ -73,11 +73,12 @@ libmv_FrameAccessor* libmv_FrameAccessorNew( libmv_ReleaseMaskCallback release_mask_callback); void libmv_FrameAccessorDestroy(libmv_FrameAccessor* frame_accessor); -int64_t libmv_frameAccessorgetTransformKey(const libmv_FrameTransform *transform); +int64_t libmv_frameAccessorgetTransformKey( + const libmv_FrameTransform* transform); -void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform *transform, - const libmv_FloatImage *input_image, - libmv_FloatImage *output_image); +void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform* transform, + const libmv_FloatImage* input_image, + libmv_FloatImage* output_image); #ifdef __cplusplus } #endif diff --git a/intern/libmv/intern/homography.cc b/intern/libmv/intern/homography.cc index 179aeaa08aa..dc1009b5636 100644 --- a/intern/libmv/intern/homography.cc +++ b/intern/libmv/intern/homography.cc @@ -41,10 +41,8 @@ void libmv_homography2DFromCorrespondencesEuc(/* const */ double (*x1)[2], LG << "x2: " << x2_mat; libmv::EstimateHomographyOptions options; - libmv::EstimateHomography2DFromCorrespondences(x1_mat, - x2_mat, - options, - &H_mat); + libmv::EstimateHomography2DFromCorrespondences( + x1_mat, x2_mat, options, &H_mat); LG << "H: " << H_mat; diff --git a/intern/libmv/intern/image.cc b/intern/libmv/intern/image.cc index a6e09277680..564e4762448 100644 --- a/intern/libmv/intern/image.cc +++ b/intern/libmv/intern/image.cc @@ -21,14 +21,14 @@ #include "intern/utildefines.h" #include "libmv/tracking/track_region.h" -#include <cassert> #include <png.h> +#include <cassert> using libmv::FloatImage; using libmv::SamplePlanarPatch; -void libmv_floatImageDestroy(libmv_FloatImage *image) { - delete [] image->buffer; +void libmv_floatImageDestroy(libmv_FloatImage* image) { + delete[] image->buffer; } /* Image <-> buffers conversion */ @@ -63,8 +63,7 @@ void libmv_floatBufferToFloatImage(const float* buffer, } } -void libmv_floatImageToFloatBuffer(const FloatImage &image, - float* buffer) { +void libmv_floatImageToFloatBuffer(const FloatImage& image, float* buffer) { for (int y = 0, a = 0; y < image.Height(); y++) { for (int x = 0; x < image.Width(); x++) { for (int k = 0; k < image.Depth(); k++) { @@ -74,9 +73,9 @@ void libmv_floatImageToFloatBuffer(const FloatImage &image, } } -void libmv_floatImageToByteBuffer(const libmv::FloatImage &image, +void libmv_floatImageToByteBuffer(const libmv::FloatImage& image, unsigned char* buffer) { - for (int y = 0, a= 0; y < image.Height(); y++) { + for (int y = 0, a = 0; y < image.Height(); y++) { for (int x = 0; x < image.Width(); x++) { for (int k = 0; k < image.Depth(); k++) { buffer[a++] = image(y, x, k) * 255.0f; @@ -93,7 +92,7 @@ static bool savePNGImage(png_bytep* row_pointers, const char* file_name) { png_infop info_ptr; png_structp png_ptr; - FILE *fp = fopen(file_name, "wb"); + FILE* fp = fopen(file_name, "wb"); if (fp == NULL) { return false; @@ -153,7 +152,7 @@ bool libmv_saveImage(const FloatImage& image, int x0, int y0) { int x, y; - png_bytep *row_pointers; + png_bytep* row_pointers; assert(image.Depth() == 1); @@ -180,9 +179,8 @@ bool libmv_saveImage(const FloatImage& image, static int image_counter = 0; char file_name[128]; - snprintf(file_name, sizeof(file_name), - "%s_%02d.png", - prefix, ++image_counter); + snprintf( + file_name, sizeof(file_name), "%s_%02d.png", prefix, ++image_counter); bool result = savePNGImage(row_pointers, image.Width(), image.Height(), @@ -191,9 +189,9 @@ bool libmv_saveImage(const FloatImage& image, file_name); for (y = 0; y < image.Height(); y++) { - delete [] row_pointers[y]; + delete[] row_pointers[y]; } - delete [] row_pointers; + delete[] row_pointers; return result; } @@ -211,7 +209,7 @@ void libmv_samplePlanarPatchFloat(const float* image, double* warped_position_x, double* warped_position_y) { FloatImage libmv_image, libmv_patch, libmv_mask; - FloatImage *libmv_mask_for_sample = NULL; + FloatImage* libmv_mask_for_sample = NULL; libmv_floatBufferToFloatImage(image, width, height, channels, &libmv_image); @@ -221,8 +219,10 @@ void libmv_samplePlanarPatchFloat(const float* image, } SamplePlanarPatch(libmv_image, - xs, ys, - num_samples_x, num_samples_y, + xs, + ys, + num_samples_x, + num_samples_y, libmv_mask_for_sample, &libmv_patch, warped_position_x, @@ -232,19 +232,19 @@ void libmv_samplePlanarPatchFloat(const float* image, } void libmv_samplePlanarPatchByte(const unsigned char* image, - int width, - int height, - int channels, - const double* xs, - const double* ys, - int num_samples_x, - int num_samples_y, - const float* mask, - unsigned char* patch, - double* warped_position_x, - double* warped_position_y) { + int width, + int height, + int channels, + const double* xs, + const double* ys, + int num_samples_x, + int num_samples_y, + const float* mask, + unsigned char* patch, + double* warped_position_x, + double* warped_position_y) { libmv::FloatImage libmv_image, libmv_patch, libmv_mask; - libmv::FloatImage *libmv_mask_for_sample = NULL; + libmv::FloatImage* libmv_mask_for_sample = NULL; libmv_byteBufferToFloatImage(image, width, height, channels, &libmv_image); @@ -254,8 +254,10 @@ void libmv_samplePlanarPatchByte(const unsigned char* image, } libmv::SamplePlanarPatch(libmv_image, - xs, ys, - num_samples_x, num_samples_y, + xs, + ys, + num_samples_x, + num_samples_y, libmv_mask_for_sample, &libmv_patch, warped_position_x, diff --git a/intern/libmv/intern/image.h b/intern/libmv/intern/image.h index a1381a4c216..02cef86a127 100644 --- a/intern/libmv/intern/image.h +++ b/intern/libmv/intern/image.h @@ -35,7 +35,7 @@ void libmv_floatBufferToFloatImage(const float* buffer, libmv::FloatImage* image); void libmv_floatImageToFloatBuffer(const libmv::FloatImage& image, - float *buffer); + float* buffer); void libmv_floatImageToByteBuffer(const libmv::FloatImage& image, unsigned char* buffer); @@ -51,13 +51,13 @@ extern "C" { #endif typedef struct libmv_FloatImage { - float *buffer; + float* buffer; int width; int height; int channels; } libmv_FloatImage; -void libmv_floatImageDestroy(libmv_FloatImage *image); +void libmv_floatImageDestroy(libmv_FloatImage* image); void libmv_samplePlanarPatchFloat(const float* image, int width, @@ -72,18 +72,18 @@ void libmv_samplePlanarPatchFloat(const float* image, double* warped_position_x, double* warped_position_y); - void libmv_samplePlanarPatchByte(const unsigned char* image, - int width, - int height, - int channels, - const double* xs, - const double* ys, - int num_samples_x, - int num_samples_y, - const float* mask, - unsigned char* patch, - double* warped_position_x, - double* warped_position_y); +void libmv_samplePlanarPatchByte(const unsigned char* image, + int width, + int height, + int channels, + const double* xs, + const double* ys, + int num_samples_x, + int num_samples_y, + const float* mask, + unsigned char* patch, + double* warped_position_x, + double* warped_position_y); #ifdef __cplusplus } diff --git a/intern/libmv/intern/reconstruction.cc b/intern/libmv/intern/reconstruction.cc index 0f4e890d4ca..430607461da 100644 --- a/intern/libmv/intern/reconstruction.cc +++ b/intern/libmv/intern/reconstruction.cc @@ -24,8 +24,8 @@ #include "libmv/logging/logging.h" #include "libmv/simple_pipeline/bundle.h" -#include "libmv/simple_pipeline/keyframe_selection.h" #include "libmv/simple_pipeline/initialize_reconstruction.h" +#include "libmv/simple_pipeline/keyframe_selection.h" #include "libmv/simple_pipeline/modal_solver.h" #include "libmv/simple_pipeline/pipeline.h" #include "libmv/simple_pipeline/reconstruction_scale.h" @@ -39,19 +39,19 @@ using libmv::EuclideanScaleToUnity; using libmv::Marker; using libmv::ProgressUpdateCallback; -using libmv::PolynomialCameraIntrinsics; -using libmv::Tracks; using libmv::EuclideanBundle; using libmv::EuclideanCompleteReconstruction; using libmv::EuclideanReconstructTwoFrames; using libmv::EuclideanReprojectionError; +using libmv::PolynomialCameraIntrinsics; +using libmv::Tracks; struct libmv_Reconstruction { EuclideanReconstruction reconstruction; /* Used for per-track average error calculation after reconstruction */ Tracks tracks; - CameraIntrinsics *intrinsics; + CameraIntrinsics* intrinsics; double error; bool is_valid; @@ -63,7 +63,7 @@ class ReconstructUpdateCallback : public ProgressUpdateCallback { public: ReconstructUpdateCallback( reconstruct_progress_update_cb progress_update_callback, - void *callback_customdata) { + void* callback_customdata) { progress_update_callback_ = progress_update_callback; callback_customdata_ = callback_customdata; } @@ -73,13 +73,14 @@ class ReconstructUpdateCallback : public ProgressUpdateCallback { progress_update_callback_(callback_customdata_, progress, message); } } + protected: reconstruct_progress_update_cb progress_update_callback_; void* callback_customdata_; }; void libmv_solveRefineIntrinsics( - const Tracks &tracks, + const Tracks& tracks, const int refine_intrinsics, const int bundle_constraints, reconstruct_progress_update_cb progress_update_callback, @@ -96,11 +97,11 @@ void libmv_solveRefineIntrinsics( bundle_intrinsics |= libmv::BUNDLE_PRINCIPAL_POINT; } -#define SET_DISTORTION_FLAG_CHECKED(type, coefficient) \ - do { \ - if (refine_intrinsics & LIBMV_REFINE_ ## type ##_DISTORTION_ ## coefficient) { \ - bundle_intrinsics |= libmv::BUNDLE_ ## type ## _ ## coefficient; \ - } \ +#define SET_DISTORTION_FLAG_CHECKED(type, coefficient) \ + do { \ + if (refine_intrinsics & LIBMV_REFINE_##type##_DISTORTION_##coefficient) { \ + bundle_intrinsics |= libmv::BUNDLE_##type##_##coefficient; \ + } \ } while (0) SET_DISTORTION_FLAG_CHECKED(RADIAL, K1); @@ -123,20 +124,19 @@ void libmv_solveRefineIntrinsics( } void finishReconstruction( - const Tracks &tracks, - const CameraIntrinsics &camera_intrinsics, - libmv_Reconstruction *libmv_reconstruction, + const Tracks& tracks, + const CameraIntrinsics& camera_intrinsics, + libmv_Reconstruction* libmv_reconstruction, reconstruct_progress_update_cb progress_update_callback, - void *callback_customdata) { - EuclideanReconstruction &reconstruction = - libmv_reconstruction->reconstruction; + void* callback_customdata) { + EuclideanReconstruction& reconstruction = + libmv_reconstruction->reconstruction; /* Reprojection error calculation. */ progress_update_callback(callback_customdata, 1.0, "Finishing solution"); libmv_reconstruction->tracks = tracks; - libmv_reconstruction->error = EuclideanReprojectionError(tracks, - reconstruction, - camera_intrinsics); + libmv_reconstruction->error = + EuclideanReprojectionError(tracks, reconstruction, camera_intrinsics); } bool selectTwoKeyframesBasedOnGRICAndVariance( @@ -148,9 +148,8 @@ bool selectTwoKeyframesBasedOnGRICAndVariance( libmv::vector<int> keyframes; /* Get list of all keyframe candidates first. */ - SelectKeyframesBasedOnGRICAndVariance(normalized_tracks, - camera_intrinsics, - keyframes); + SelectKeyframesBasedOnGRICAndVariance( + normalized_tracks, camera_intrinsics, keyframes); if (keyframes.size() < 2) { LG << "Not enough keyframes detected by GRIC"; @@ -175,24 +174,20 @@ bool selectTwoKeyframesBasedOnGRICAndVariance( EuclideanReconstruction reconstruction; int current_keyframe = keyframes[i]; libmv::vector<Marker> keyframe_markers = - normalized_tracks.MarkersForTracksInBothImages(previous_keyframe, - current_keyframe); + normalized_tracks.MarkersForTracksInBothImages(previous_keyframe, + current_keyframe); Tracks keyframe_tracks(keyframe_markers); /* get a solution from two keyframes only */ EuclideanReconstructTwoFrames(keyframe_markers, &reconstruction); EuclideanBundle(keyframe_tracks, &reconstruction); - EuclideanCompleteReconstruction(keyframe_tracks, - &reconstruction, - NULL); + EuclideanCompleteReconstruction(keyframe_tracks, &reconstruction, NULL); - double current_error = EuclideanReprojectionError(tracks, - reconstruction, - camera_intrinsics); + double current_error = + EuclideanReprojectionError(tracks, reconstruction, camera_intrinsics); - LG << "Error between " << previous_keyframe - << " and " << current_keyframe + LG << "Error between " << previous_keyframe << " and " << current_keyframe << ": " << current_error; if (current_error < best_error) { @@ -214,53 +209,49 @@ Marker libmv_projectMarker(const EuclideanPoint& point, projected /= projected(2); libmv::Marker reprojected_marker; - intrinsics.ApplyIntrinsics(projected(0), projected(1), - &reprojected_marker.x, - &reprojected_marker.y); + intrinsics.ApplyIntrinsics( + projected(0), projected(1), &reprojected_marker.x, &reprojected_marker.y); reprojected_marker.image = camera.image; reprojected_marker.track = point.track; return reprojected_marker; } -void libmv_getNormalizedTracks(const Tracks &tracks, - const CameraIntrinsics &camera_intrinsics, - Tracks *normalized_tracks) { +void libmv_getNormalizedTracks(const Tracks& tracks, + const CameraIntrinsics& camera_intrinsics, + Tracks* normalized_tracks) { libmv::vector<Marker> markers = tracks.AllMarkers(); for (int i = 0; i < markers.size(); ++i) { - Marker &marker = markers[i]; - camera_intrinsics.InvertIntrinsics(marker.x, marker.y, - &marker.x, &marker.y); - normalized_tracks->Insert(marker.image, - marker.track, - marker.x, marker.y, - marker.weight); + Marker& marker = markers[i]; + camera_intrinsics.InvertIntrinsics( + marker.x, marker.y, &marker.x, &marker.y); + normalized_tracks->Insert( + marker.image, marker.track, marker.x, marker.y, marker.weight); } } } // namespace -libmv_Reconstruction *libmv_solveReconstruction( +libmv_Reconstruction* libmv_solveReconstruction( const libmv_Tracks* libmv_tracks, const libmv_CameraIntrinsicsOptions* libmv_camera_intrinsics_options, libmv_ReconstructionOptions* libmv_reconstruction_options, reconstruct_progress_update_cb progress_update_callback, void* callback_customdata) { - libmv_Reconstruction *libmv_reconstruction = - LIBMV_OBJECT_NEW(libmv_Reconstruction); + libmv_Reconstruction* libmv_reconstruction = + LIBMV_OBJECT_NEW(libmv_Reconstruction); - Tracks &tracks = *((Tracks *) libmv_tracks); - EuclideanReconstruction &reconstruction = - libmv_reconstruction->reconstruction; + Tracks& tracks = *((Tracks*)libmv_tracks); + EuclideanReconstruction& reconstruction = + libmv_reconstruction->reconstruction; ReconstructUpdateCallback update_callback = - ReconstructUpdateCallback(progress_update_callback, - callback_customdata); + ReconstructUpdateCallback(progress_update_callback, callback_customdata); /* Retrieve reconstruction options from C-API to libmv API. */ - CameraIntrinsics *camera_intrinsics; + CameraIntrinsics* camera_intrinsics; camera_intrinsics = libmv_reconstruction->intrinsics = - libmv_cameraIntrinsicsCreateFromOptions(libmv_camera_intrinsics_options); + libmv_cameraIntrinsicsCreateFromOptions(libmv_camera_intrinsics_options); /* Invert the camera intrinsics/ */ Tracks normalized_tracks; @@ -276,10 +267,10 @@ libmv_Reconstruction *libmv_solveReconstruction( update_callback.invoke(0, "Selecting keyframes"); if (selectTwoKeyframesBasedOnGRICAndVariance(tracks, - normalized_tracks, - *camera_intrinsics, - keyframe1, - keyframe2)) { + normalized_tracks, + *camera_intrinsics, + keyframe1, + keyframe2)) { /* so keyframes in the interface would be updated */ libmv_reconstruction_options->keyframe1 = keyframe1; libmv_reconstruction_options->keyframe2 = keyframe2; @@ -290,7 +281,7 @@ libmv_Reconstruction *libmv_solveReconstruction( LG << "frames to init from: " << keyframe1 << " " << keyframe2; libmv::vector<Marker> keyframe_markers = - normalized_tracks.MarkersForTracksInBothImages(keyframe1, keyframe2); + normalized_tracks.MarkersForTracksInBothImages(keyframe1, keyframe2); LG << "number of markers for init: " << keyframe_markers.size(); @@ -309,14 +300,12 @@ libmv_Reconstruction *libmv_solveReconstruction( } EuclideanBundle(normalized_tracks, &reconstruction); - EuclideanCompleteReconstruction(normalized_tracks, - &reconstruction, - &update_callback); + EuclideanCompleteReconstruction( + normalized_tracks, &reconstruction, &update_callback); /* Refinement. */ if (libmv_reconstruction_options->refine_intrinsics) { - libmv_solveRefineIntrinsics( - tracks, + libmv_solveRefineIntrinsics(tracks, libmv_reconstruction_options->refine_intrinsics, libmv::BUNDLE_NO_CONSTRAINTS, progress_update_callback, @@ -336,31 +325,29 @@ libmv_Reconstruction *libmv_solveReconstruction( callback_customdata); libmv_reconstruction->is_valid = true; - return (libmv_Reconstruction *) libmv_reconstruction; + return (libmv_Reconstruction*)libmv_reconstruction; } -libmv_Reconstruction *libmv_solveModal( - const libmv_Tracks *libmv_tracks, - const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options, - const libmv_ReconstructionOptions *libmv_reconstruction_options, +libmv_Reconstruction* libmv_solveModal( + const libmv_Tracks* libmv_tracks, + const libmv_CameraIntrinsicsOptions* libmv_camera_intrinsics_options, + const libmv_ReconstructionOptions* libmv_reconstruction_options, reconstruct_progress_update_cb progress_update_callback, - void *callback_customdata) { - libmv_Reconstruction *libmv_reconstruction = - LIBMV_OBJECT_NEW(libmv_Reconstruction); + void* callback_customdata) { + libmv_Reconstruction* libmv_reconstruction = + LIBMV_OBJECT_NEW(libmv_Reconstruction); - Tracks &tracks = *((Tracks *) libmv_tracks); - EuclideanReconstruction &reconstruction = - libmv_reconstruction->reconstruction; + Tracks& tracks = *((Tracks*)libmv_tracks); + EuclideanReconstruction& reconstruction = + libmv_reconstruction->reconstruction; ReconstructUpdateCallback update_callback = - ReconstructUpdateCallback(progress_update_callback, - callback_customdata); + ReconstructUpdateCallback(progress_update_callback, callback_customdata); /* Retrieve reconstruction options from C-API to libmv API. */ - CameraIntrinsics *camera_intrinsics; + CameraIntrinsics* camera_intrinsics; camera_intrinsics = libmv_reconstruction->intrinsics = - libmv_cameraIntrinsicsCreateFromOptions( - libmv_camera_intrinsics_options); + libmv_cameraIntrinsicsCreateFromOptions(libmv_camera_intrinsics_options); /* Invert the camera intrinsics. */ Tracks normalized_tracks; @@ -378,11 +365,11 @@ libmv_Reconstruction *libmv_solveModal( /* Refinement. */ if (libmv_reconstruction_options->refine_intrinsics) { - libmv_solveRefineIntrinsics( - tracks, + libmv_solveRefineIntrinsics(tracks, libmv_reconstruction_options->refine_intrinsics, libmv::BUNDLE_NO_TRANSLATION, - progress_update_callback, callback_customdata, + progress_update_callback, + callback_customdata, &reconstruction, camera_intrinsics); } @@ -395,26 +382,25 @@ libmv_Reconstruction *libmv_solveModal( callback_customdata); libmv_reconstruction->is_valid = true; - return (libmv_Reconstruction *) libmv_reconstruction; + return (libmv_Reconstruction*)libmv_reconstruction; } -int libmv_reconstructionIsValid(libmv_Reconstruction *libmv_reconstruction) { +int libmv_reconstructionIsValid(libmv_Reconstruction* libmv_reconstruction) { return libmv_reconstruction->is_valid; } -void libmv_reconstructionDestroy(libmv_Reconstruction *libmv_reconstruction) { +void libmv_reconstructionDestroy(libmv_Reconstruction* libmv_reconstruction) { LIBMV_OBJECT_DELETE(libmv_reconstruction->intrinsics, CameraIntrinsics); LIBMV_OBJECT_DELETE(libmv_reconstruction, libmv_Reconstruction); } int libmv_reprojectionPointForTrack( - const libmv_Reconstruction *libmv_reconstruction, + const libmv_Reconstruction* libmv_reconstruction, int track, double pos[3]) { - const EuclideanReconstruction *reconstruction = - &libmv_reconstruction->reconstruction; - const EuclideanPoint *point = - reconstruction->PointForTrack(track); + const EuclideanReconstruction* reconstruction = + &libmv_reconstruction->reconstruction; + const EuclideanPoint* point = reconstruction->PointForTrack(track); if (point) { pos[0] = point->X[0]; pos[1] = point->X[2]; @@ -425,23 +411,22 @@ int libmv_reprojectionPointForTrack( } double libmv_reprojectionErrorForTrack( - const libmv_Reconstruction *libmv_reconstruction, - int track) { - const EuclideanReconstruction *reconstruction = - &libmv_reconstruction->reconstruction; - const CameraIntrinsics *intrinsics = libmv_reconstruction->intrinsics; + const libmv_Reconstruction* libmv_reconstruction, int track) { + const EuclideanReconstruction* reconstruction = + &libmv_reconstruction->reconstruction; + const CameraIntrinsics* intrinsics = libmv_reconstruction->intrinsics; libmv::vector<Marker> markers = - libmv_reconstruction->tracks.MarkersForTrack(track); + libmv_reconstruction->tracks.MarkersForTrack(track); int num_reprojected = 0; double total_error = 0.0; for (int i = 0; i < markers.size(); ++i) { double weight = markers[i].weight; - const EuclideanCamera *camera = - reconstruction->CameraForImage(markers[i].image); - const EuclideanPoint *point = - reconstruction->PointForTrack(markers[i].track); + const EuclideanCamera* camera = + reconstruction->CameraForImage(markers[i].image); + const EuclideanPoint* point = + reconstruction->PointForTrack(markers[i].track); if (!camera || !point || weight == 0.0) { continue; @@ -450,7 +435,7 @@ double libmv_reprojectionErrorForTrack( num_reprojected++; Marker reprojected_marker = - libmv_projectMarker(*point, *camera, *intrinsics); + libmv_projectMarker(*point, *camera, *intrinsics); double ex = (reprojected_marker.x - markers[i].x) * weight; double ey = (reprojected_marker.y - markers[i].y) * weight; @@ -461,14 +446,13 @@ double libmv_reprojectionErrorForTrack( } double libmv_reprojectionErrorForImage( - const libmv_Reconstruction *libmv_reconstruction, - int image) { - const EuclideanReconstruction *reconstruction = - &libmv_reconstruction->reconstruction; - const CameraIntrinsics *intrinsics = libmv_reconstruction->intrinsics; + const libmv_Reconstruction* libmv_reconstruction, int image) { + const EuclideanReconstruction* reconstruction = + &libmv_reconstruction->reconstruction; + const CameraIntrinsics* intrinsics = libmv_reconstruction->intrinsics; libmv::vector<Marker> markers = - libmv_reconstruction->tracks.MarkersInImage(image); - const EuclideanCamera *camera = reconstruction->CameraForImage(image); + libmv_reconstruction->tracks.MarkersInImage(image); + const EuclideanCamera* camera = reconstruction->CameraForImage(image); int num_reprojected = 0; double total_error = 0.0; @@ -477,8 +461,8 @@ double libmv_reprojectionErrorForImage( } for (int i = 0; i < markers.size(); ++i) { - const EuclideanPoint *point = - reconstruction->PointForTrack(markers[i].track); + const EuclideanPoint* point = + reconstruction->PointForTrack(markers[i].track); if (!point) { continue; @@ -487,7 +471,7 @@ double libmv_reprojectionErrorForImage( num_reprojected++; Marker reprojected_marker = - libmv_projectMarker(*point, *camera, *intrinsics); + libmv_projectMarker(*point, *camera, *intrinsics); double ex = (reprojected_marker.x - markers[i].x) * markers[i].weight; double ey = (reprojected_marker.y - markers[i].y) * markers[i].weight; @@ -498,13 +482,12 @@ double libmv_reprojectionErrorForImage( } int libmv_reprojectionCameraForImage( - const libmv_Reconstruction *libmv_reconstruction, + const libmv_Reconstruction* libmv_reconstruction, int image, double mat[4][4]) { - const EuclideanReconstruction *reconstruction = - &libmv_reconstruction->reconstruction; - const EuclideanCamera *camera = - reconstruction->CameraForImage(image); + const EuclideanReconstruction* reconstruction = + &libmv_reconstruction->reconstruction; + const EuclideanCamera* camera = reconstruction->CameraForImage(image); if (camera) { for (int j = 0; j < 3; ++j) { @@ -541,11 +524,11 @@ int libmv_reprojectionCameraForImage( } double libmv_reprojectionError( - const libmv_Reconstruction *libmv_reconstruction) { + const libmv_Reconstruction* libmv_reconstruction) { return libmv_reconstruction->error; } -libmv_CameraIntrinsics *libmv_reconstructionExtractIntrinsics( - libmv_Reconstruction *libmv_reconstruction) { - return (libmv_CameraIntrinsics *) libmv_reconstruction->intrinsics; +libmv_CameraIntrinsics* libmv_reconstructionExtractIntrinsics( + libmv_Reconstruction* libmv_reconstruction) { + return (libmv_CameraIntrinsics*)libmv_reconstruction->intrinsics; } diff --git a/intern/libmv/intern/reconstruction.h b/intern/libmv/intern/reconstruction.h index 408ac884684..600bc92ccfc 100644 --- a/intern/libmv/intern/reconstruction.h +++ b/intern/libmv/intern/reconstruction.h @@ -31,17 +31,16 @@ struct libmv_CameraIntrinsicsOptions; typedef struct libmv_Reconstruction libmv_Reconstruction; enum { - LIBMV_REFINE_FOCAL_LENGTH = (1 << 0), - LIBMV_REFINE_PRINCIPAL_POINT = (1 << 1), - - LIBMV_REFINE_RADIAL_DISTORTION_K1 = (1 << 2), - LIBMV_REFINE_RADIAL_DISTORTION_K2 = (1 << 3), - LIBMV_REFINE_RADIAL_DISTORTION_K3 = (1 << 4), - LIBMV_REFINE_RADIAL_DISTORTION_K4 = (1 << 5), - LIBMV_REFINE_RADIAL_DISTORTION = (LIBMV_REFINE_RADIAL_DISTORTION_K1 | - LIBMV_REFINE_RADIAL_DISTORTION_K2 | - LIBMV_REFINE_RADIAL_DISTORTION_K3 | - LIBMV_REFINE_RADIAL_DISTORTION_K4), + LIBMV_REFINE_FOCAL_LENGTH = (1 << 0), + LIBMV_REFINE_PRINCIPAL_POINT = (1 << 1), + + LIBMV_REFINE_RADIAL_DISTORTION_K1 = (1 << 2), + LIBMV_REFINE_RADIAL_DISTORTION_K2 = (1 << 3), + LIBMV_REFINE_RADIAL_DISTORTION_K3 = (1 << 4), + LIBMV_REFINE_RADIAL_DISTORTION_K4 = (1 << 5), + LIBMV_REFINE_RADIAL_DISTORTION = + (LIBMV_REFINE_RADIAL_DISTORTION_K1 | LIBMV_REFINE_RADIAL_DISTORTION_K2 | + LIBMV_REFINE_RADIAL_DISTORTION_K3 | LIBMV_REFINE_RADIAL_DISTORTION_K4), LIBMV_REFINE_TANGENTIAL_DISTORTION_P1 = (1 << 6), LIBMV_REFINE_TANGENTIAL_DISTORTION_P2 = (1 << 7), @@ -55,9 +54,9 @@ typedef struct libmv_ReconstructionOptions { int refine_intrinsics; } libmv_ReconstructionOptions; -typedef void (*reconstruct_progress_update_cb) (void* customdata, - double progress, - const char* message); +typedef void (*reconstruct_progress_update_cb)(void* customdata, + double progress, + const char* message); libmv_Reconstruction* libmv_solveReconstruction( const struct libmv_Tracks* libmv_tracks, @@ -73,35 +72,32 @@ libmv_Reconstruction* libmv_solveModal( reconstruct_progress_update_cb progress_update_callback, void* callback_customdata); -int libmv_reconstructionIsValid(libmv_Reconstruction *libmv_reconstruction); +int libmv_reconstructionIsValid(libmv_Reconstruction* libmv_reconstruction); void libmv_reconstructionDestroy(libmv_Reconstruction* libmv_reconstruction); int libmv_reprojectionPointForTrack( - const libmv_Reconstruction* libmv_reconstruction, - int track, - double pos[3]); + const libmv_Reconstruction* libmv_reconstruction, int track, double pos[3]); double libmv_reprojectionErrorForTrack( - const libmv_Reconstruction* libmv_reconstruction, - int track); + const libmv_Reconstruction* libmv_reconstruction, int track); double libmv_reprojectionErrorForImage( - const libmv_Reconstruction* libmv_reconstruction, - int image); + const libmv_Reconstruction* libmv_reconstruction, int image); int libmv_reprojectionCameraForImage( const libmv_Reconstruction* libmv_reconstruction, int image, double mat[4][4]); -double libmv_reprojectionError(const libmv_Reconstruction* libmv_reconstruction); +double libmv_reprojectionError( + const libmv_Reconstruction* libmv_reconstruction); struct libmv_CameraIntrinsics* libmv_reconstructionExtractIntrinsics( - libmv_Reconstruction *libmv_Reconstruction); + libmv_Reconstruction* libmv_Reconstruction); #ifdef __cplusplus } #endif -#endif // LIBMV_C_API_RECONSTRUCTION_H_ +#endif // LIBMV_C_API_RECONSTRUCTION_H_ diff --git a/intern/libmv/intern/stub.cc b/intern/libmv/intern/stub.cc index 47e1896b4cf..1920042b4ec 100644 --- a/intern/libmv/intern/stub.cc +++ b/intern/libmv/intern/stub.cc @@ -24,7 +24,7 @@ /* ************ Logging ************ */ -void libmv_initLogging(const char * /*argv0*/) { +void libmv_initLogging(const char* /*argv0*/) { } void libmv_startDebugLogging(void) { @@ -36,18 +36,18 @@ void libmv_setLoggingVerbosity(int /*verbosity*/) { /* ************ Planar tracker ************ */ /* TrackRegion (new planar tracker) */ -int libmv_trackRegion(const libmv_TrackRegionOptions * /*options*/, - const float * /*image1*/, +int libmv_trackRegion(const libmv_TrackRegionOptions* /*options*/, + const float* /*image1*/, int /*image1_width*/, int /*image1_height*/, - const float * /*image2*/, + const float* /*image2*/, int /*image2_width*/, int /*image2_height*/, - const double *x1, - const double *y1, - libmv_TrackRegionResult *result, - double *x2, - double *y2) { + const double* x1, + const double* y1, + libmv_TrackRegionResult* result, + double* x2, + double* y2) { /* Convert to doubles for the libmv api. The four corners and the center. */ for (int i = 0; i < 5; ++i) { x2[i] = x1[i]; @@ -61,46 +61,46 @@ int libmv_trackRegion(const libmv_TrackRegionOptions * /*options*/, return false; } -void libmv_samplePlanarPatchFloat(const float * /*image*/, +void libmv_samplePlanarPatchFloat(const float* /*image*/, int /*width*/, int /*height*/, int /*channels*/, - const double * /*xs*/, - const double * /*ys*/, + const double* /*xs*/, + const double* /*ys*/, int /*num_samples_x*/, int /*num_samples_y*/, - const float * /*mask*/, - float * /*patch*/, - double * /*warped_position_x*/, - double * /*warped_position_y*/) { + const float* /*mask*/, + float* /*patch*/, + double* /*warped_position_x*/, + double* /*warped_position_y*/) { /* TODO(sergey): implement */ } -void libmv_samplePlanarPatchByte(const unsigned char * /*image*/, +void libmv_samplePlanarPatchByte(const unsigned char* /*image*/, int /*width*/, int /*height*/, int /*channels*/, - const double * /*xs*/, - const double * /*ys*/, - int /*num_samples_x*/, int /*num_samples_y*/, - const float * /*mask*/, - unsigned char * /*patch*/, - double * /*warped_position_x*/, - double * /*warped_position_y*/) { + const double* /*xs*/, + const double* /*ys*/, + int /*num_samples_x*/, + int /*num_samples_y*/, + const float* /*mask*/, + unsigned char* /*patch*/, + double* /*warped_position_x*/, + double* /*warped_position_y*/) { /* TODO(sergey): implement */ } -void libmv_floatImageDestroy(libmv_FloatImage* /*image*/) -{ +void libmv_floatImageDestroy(libmv_FloatImage* /*image*/) { } /* ************ Tracks ************ */ -libmv_Tracks *libmv_tracksNew(void) { +libmv_Tracks* libmv_tracksNew(void) { return NULL; } -void libmv_tracksInsert(libmv_Tracks * /*libmv_tracks*/, +void libmv_tracksInsert(libmv_Tracks* /*libmv_tracks*/, int /*image*/, int /*track*/, double /*x*/, @@ -108,152 +108,152 @@ void libmv_tracksInsert(libmv_Tracks * /*libmv_tracks*/, double /*weight*/) { } -void libmv_tracksDestroy(libmv_Tracks * /*libmv_tracks*/) { +void libmv_tracksDestroy(libmv_Tracks* /*libmv_tracks*/) { } /* ************ Reconstruction solver ************ */ -libmv_Reconstruction *libmv_solveReconstruction( - const libmv_Tracks * /*libmv_tracks*/, - const libmv_CameraIntrinsicsOptions * /*libmv_camera_intrinsics_options*/, - libmv_ReconstructionOptions * /*libmv_reconstruction_options*/, +libmv_Reconstruction* libmv_solveReconstruction( + const libmv_Tracks* /*libmv_tracks*/, + const libmv_CameraIntrinsicsOptions* /*libmv_camera_intrinsics_options*/, + libmv_ReconstructionOptions* /*libmv_reconstruction_options*/, reconstruct_progress_update_cb /*progress_update_callback*/, - void * /*callback_customdata*/) { + void* /*callback_customdata*/) { return NULL; } -libmv_Reconstruction *libmv_solveModal( - const libmv_Tracks * /*libmv_tracks*/, - const libmv_CameraIntrinsicsOptions * /*libmv_camera_intrinsics_options*/, - const libmv_ReconstructionOptions * /*libmv_reconstruction_options*/, +libmv_Reconstruction* libmv_solveModal( + const libmv_Tracks* /*libmv_tracks*/, + const libmv_CameraIntrinsicsOptions* /*libmv_camera_intrinsics_options*/, + const libmv_ReconstructionOptions* /*libmv_reconstruction_options*/, reconstruct_progress_update_cb /*progress_update_callback*/, - void * /*callback_customdata*/) { + void* /*callback_customdata*/) { return NULL; } -int libmv_reconstructionIsValid(libmv_Reconstruction * /*libmv_reconstruction*/) { +int libmv_reconstructionIsValid( + libmv_Reconstruction* /*libmv_reconstruction*/) { return 0; } int libmv_reprojectionPointForTrack( - const libmv_Reconstruction * /*libmv_reconstruction*/, + const libmv_Reconstruction* /*libmv_reconstruction*/, int /*track*/, double /*pos*/[3]) { return 0; } double libmv_reprojectionErrorForTrack( - const libmv_Reconstruction * /*libmv_reconstruction*/, - int /*track*/) { + const libmv_Reconstruction* /*libmv_reconstruction*/, int /*track*/) { return 0.0; } double libmv_reprojectionErrorForImage( - const libmv_Reconstruction * /*libmv_reconstruction*/, - int /*image*/) { + const libmv_Reconstruction* /*libmv_reconstruction*/, int /*image*/) { return 0.0; } int libmv_reprojectionCameraForImage( - const libmv_Reconstruction * /*libmv_reconstruction*/, + const libmv_Reconstruction* /*libmv_reconstruction*/, int /*image*/, double /*mat*/[4][4]) { return 0; } double libmv_reprojectionError( - const libmv_Reconstruction * /*libmv_reconstruction*/) { + const libmv_Reconstruction* /*libmv_reconstruction*/) { return 0.0; } void libmv_reconstructionDestroy( - struct libmv_Reconstruction * /*libmv_reconstruction*/) { + struct libmv_Reconstruction* /*libmv_reconstruction*/) { } /* ************ Feature detector ************ */ -libmv_Features *libmv_detectFeaturesByte(const unsigned char * /*image_buffer*/, +libmv_Features* libmv_detectFeaturesByte(const unsigned char* /*image_buffer*/, int /*width*/, int /*height*/, int /*channels*/, - libmv_DetectOptions * /*options*/) { + libmv_DetectOptions* /*options*/) { return NULL; } -struct libmv_Features *libmv_detectFeaturesFloat( - const float * /*image_buffer*/, +struct libmv_Features* libmv_detectFeaturesFloat( + const float* /*image_buffer*/, int /*width*/, int /*height*/, int /*channels*/, - libmv_DetectOptions * /*options*/) { + libmv_DetectOptions* /*options*/) { return NULL; } -int libmv_countFeatures(const libmv_Features * /*libmv_features*/) { +int libmv_countFeatures(const libmv_Features* /*libmv_features*/) { return 0; } -void libmv_getFeature(const libmv_Features * /*libmv_features*/, +void libmv_getFeature(const libmv_Features* /*libmv_features*/, int /*number*/, - double *x, - double *y, - double *score, - double *size) { + double* x, + double* y, + double* score, + double* size) { *x = 0.0; *y = 0.0; *score = 0.0; *size = 0.0; } -void libmv_featuresDestroy(struct libmv_Features * /*libmv_features*/) { +void libmv_featuresDestroy(struct libmv_Features* /*libmv_features*/) { } /* ************ Camera intrinsics ************ */ -libmv_CameraIntrinsics *libmv_reconstructionExtractIntrinsics( - libmv_Reconstruction * /*libmv_reconstruction*/) { +libmv_CameraIntrinsics* libmv_reconstructionExtractIntrinsics( + libmv_Reconstruction* /*libmv_reconstruction*/) { return NULL; } -libmv_CameraIntrinsics *libmv_cameraIntrinsicsNew( - const libmv_CameraIntrinsicsOptions * /*libmv_camera_intrinsics_options*/) { +libmv_CameraIntrinsics* libmv_cameraIntrinsicsNew( + const libmv_CameraIntrinsicsOptions* /*libmv_camera_intrinsics_options*/) { return NULL; } -libmv_CameraIntrinsics *libmv_cameraIntrinsicsCopy( - const libmv_CameraIntrinsics * /*libmvIntrinsics*/) { +libmv_CameraIntrinsics* libmv_cameraIntrinsicsCopy( + const libmv_CameraIntrinsics* /*libmvIntrinsics*/) { return NULL; } void libmv_cameraIntrinsicsDestroy( - libmv_CameraIntrinsics * /*libmvIntrinsics*/) { + libmv_CameraIntrinsics* /*libmvIntrinsics*/) { } void libmv_cameraIntrinsicsUpdate( - const libmv_CameraIntrinsicsOptions * /*libmv_camera_intrinsics_options*/, - libmv_CameraIntrinsics * /*libmv_intrinsics*/) { + const libmv_CameraIntrinsicsOptions* /*libmv_camera_intrinsics_options*/, + libmv_CameraIntrinsics* /*libmv_intrinsics*/) { } void libmv_cameraIntrinsicsSetThreads( - libmv_CameraIntrinsics * /*libmv_intrinsics*/, - int /*threads*/) { + libmv_CameraIntrinsics* /*libmv_intrinsics*/, int /*threads*/) { } void libmv_cameraIntrinsicsExtractOptions( - const libmv_CameraIntrinsics * /*libmv_intrinsics*/, - libmv_CameraIntrinsicsOptions *camera_intrinsics_options) { + const libmv_CameraIntrinsics* /*libmv_intrinsics*/, + libmv_CameraIntrinsicsOptions* camera_intrinsics_options) { memset(camera_intrinsics_options, 0, sizeof(libmv_CameraIntrinsicsOptions)); camera_intrinsics_options->focal_length = 1.0; } void libmv_cameraIntrinsicsUndistortByte( - const libmv_CameraIntrinsics * /*libmv_intrinsics*/, - const unsigned char *source_image, - int width, int height, + const libmv_CameraIntrinsics* /*libmv_intrinsics*/, + const unsigned char* source_image, + int width, + int height, float /*overscan*/, int channels, - unsigned char *destination_image) { - memcpy(destination_image, source_image, + unsigned char* destination_image) { + memcpy(destination_image, + source_image, channels * width * height * sizeof(unsigned char)); } @@ -265,19 +265,21 @@ void libmv_cameraIntrinsicsUndistortFloat( float /*overscan*/, int channels, float* destination_image) { - memcpy(destination_image, source_image, + memcpy(destination_image, + source_image, channels * width * height * sizeof(float)); } void libmv_cameraIntrinsicsDistortByte( const struct libmv_CameraIntrinsics* /*libmv_intrinsics*/, - const unsigned char *source_image, + const unsigned char* source_image, int width, int height, float /*overscan*/, int channels, - unsigned char *destination_image) { - memcpy(destination_image, source_image, + unsigned char* destination_image) { + memcpy(destination_image, + source_image, channels * width * height * sizeof(unsigned char)); } @@ -289,7 +291,8 @@ void libmv_cameraIntrinsicsDistortFloat( float /*overscan*/, int channels, float* destination_image) { - memcpy(destination_image, source_image, + memcpy(destination_image, + source_image, channels * width * height * sizeof(float)); } @@ -315,8 +318,8 @@ void libmv_cameraIntrinsicsInvert( *y1 = 0.0; } -void libmv_homography2DFromCorrespondencesEuc(/* const */ double (* /*x1*/)[2], - /* const */ double (* /*x2*/)[2], +void libmv_homography2DFromCorrespondencesEuc(/* const */ double (*/*x1*/)[2], + /* const */ double (*/*x2*/)[2], int /*num_points*/, double H[3][3]) { memset(H, 0, sizeof(double[3][3])); @@ -327,45 +330,38 @@ void libmv_homography2DFromCorrespondencesEuc(/* const */ double (* /*x1*/)[2], /* ************ autotrack ************ */ -libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor* /*frame_accessor*/) -{ +libmv_AutoTrack* libmv_autoTrackNew(libmv_FrameAccessor* /*frame_accessor*/) { return NULL; } -void libmv_autoTrackDestroy(libmv_AutoTrack* /*libmv_autotrack*/) -{ +void libmv_autoTrackDestroy(libmv_AutoTrack* /*libmv_autotrack*/) { } void libmv_autoTrackSetOptions(libmv_AutoTrack* /*libmv_autotrack*/, - const libmv_AutoTrackOptions* /*options*/) -{ + const libmv_AutoTrackOptions* /*options*/) { } int libmv_autoTrackMarker(libmv_AutoTrack* /*libmv_autotrack*/, const libmv_TrackRegionOptions* /*libmv_options*/, - libmv_Marker * /*libmv_tracker_marker*/, - libmv_TrackRegionResult* /*libmv_result*/) -{ + libmv_Marker* /*libmv_tracker_marker*/, + libmv_TrackRegionResult* /*libmv_result*/) { return 0; } void libmv_autoTrackAddMarker(libmv_AutoTrack* /*libmv_autotrack*/, - const libmv_Marker* /*libmv_marker*/) -{ + const libmv_Marker* /*libmv_marker*/) { } void libmv_autoTrackSetMarkers(libmv_AutoTrack* /*libmv_autotrack*/, const libmv_Marker* /*libmv_marker-*/, - size_t /*num_markers*/) -{ + size_t /*num_markers*/) { } int libmv_autoTrackGetMarker(libmv_AutoTrack* /*libmv_autotrack*/, int /*clip*/, int /*frame*/, int /*track*/, - libmv_Marker* /*libmv_marker*/) -{ + libmv_Marker* /*libmv_marker*/) { return 0; } @@ -376,24 +372,20 @@ libmv_FrameAccessor* libmv_FrameAccessorNew( libmv_GetImageCallback /*get_image_callback*/, libmv_ReleaseImageCallback /*release_image_callback*/, libmv_GetMaskForTrackCallback /*get_mask_for_track_callback*/, - libmv_ReleaseMaskCallback /*release_mask_callback*/) -{ + libmv_ReleaseMaskCallback /*release_mask_callback*/) { return NULL; } -void libmv_FrameAccessorDestroy(libmv_FrameAccessor* /*frame_accessor*/) -{ +void libmv_FrameAccessorDestroy(libmv_FrameAccessor* /*frame_accessor*/) { } int64_t libmv_frameAccessorgetTransformKey( - const libmv_FrameTransform * /*transform*/) -{ + const libmv_FrameTransform* /*transform*/) { return 0; } -void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform* /*transform*/, - const libmv_FloatImage* /*input_image*/, - libmv_FloatImage* /*output_image*/) -{ +void libmv_frameAccessorgetTransformRun( + const libmv_FrameTransform* /*transform*/, + const libmv_FloatImage* /*input_image*/, + libmv_FloatImage* /*output_image*/) { } - diff --git a/intern/libmv/intern/track_region.cc b/intern/libmv/intern/track_region.cc index 2a3909c0ced..f434906407b 100644 --- a/intern/libmv/intern/track_region.cc +++ b/intern/libmv/intern/track_region.cc @@ -21,6 +21,7 @@ #include "intern/image.h" #include "intern/utildefines.h" #include "libmv/image/image.h" +#include "libmv/logging/logging.h" #include "libmv/tracking/track_region.h" /* define this to generate PNG images with content of search areas @@ -32,27 +33,53 @@ #undef DUMP_ALWAYS using libmv::FloatImage; +using libmv::TrackRegion; using libmv::TrackRegionOptions; using libmv::TrackRegionResult; -using libmv::TrackRegion; -void libmv_configureTrackRegionOptions( - const libmv_TrackRegionOptions& options, - TrackRegionOptions* track_region_options) { - switch (options.motion_model) { -#define LIBMV_CONVERT(the_model) \ - case TrackRegionOptions::the_model: \ - track_region_options->mode = TrackRegionOptions::the_model; \ - break; +namespace { + +TrackRegionOptions::Direction convertDirection( + libmv_TrackRegionDirection direction) { + switch (direction) { + case LIBMV_TRACK_REGION_FORWARD: return TrackRegionOptions::FORWARD; + case LIBMV_TRACK_REGION_BACKWARD: return TrackRegionOptions::BACKWARD; + } + + LOG(FATAL) << "Unhandled tracking direction " << direction + << ", should never happen."; + + return TrackRegionOptions::FORWARD; +} + +TrackRegionOptions::Mode convertMotionModelToMode(int motion_model) { + switch (motion_model) { +#define LIBMV_CONVERT(the_model) \ + case TrackRegionOptions::the_model: return TrackRegionOptions::the_model; + LIBMV_CONVERT(TRANSLATION) LIBMV_CONVERT(TRANSLATION_ROTATION) LIBMV_CONVERT(TRANSLATION_SCALE) LIBMV_CONVERT(TRANSLATION_ROTATION_SCALE) LIBMV_CONVERT(AFFINE) LIBMV_CONVERT(HOMOGRAPHY) + #undef LIBMV_CONVERT } + LOG(FATAL) << "Unhandled motion model " << motion_model + << ", should never happen."; + + return TrackRegionOptions::TRANSLATION; +} + +} // namespace + +void libmv_configureTrackRegionOptions( + const libmv_TrackRegionOptions& options, + TrackRegionOptions* track_region_options) { + track_region_options->direction = convertDirection(options.direction); + track_region_options->mode = convertMotionModelToMode(options.motion_model); track_region_options->minimum_correlation = options.minimum_correlation; track_region_options->max_iterations = options.num_iterations; track_region_options->sigma = options.sigma; @@ -66,7 +93,8 @@ void libmv_configureTrackRegionOptions( * so disabling for now for until proper prediction model is landed. * * The thing is, currently blender sends input coordinates as the guess to - * region tracker and in case of fast motion such an early out ruins the track. + * region tracker and in case of fast motion such an early out ruins the + * track. */ track_region_options->attempt_refine_before_brute = false; track_region_options->use_normalized_intensities = options.use_normalization; @@ -74,7 +102,7 @@ void libmv_configureTrackRegionOptions( void libmv_regionTrackergetResult(const TrackRegionResult& track_region_result, libmv_TrackRegionResult* result) { - result->termination = (int) track_region_result.termination; + result->termination = (int)track_region_result.termination; result->termination_reason = ""; result->correlation = track_region_result.correlation; } @@ -108,33 +136,27 @@ int libmv_trackRegion(const libmv_TrackRegionOptions* options, libmv_configureTrackRegionOptions(*options, &track_region_options); if (options->image1_mask) { - libmv_floatBufferToFloatImage(options->image1_mask, - image1_width, - image1_height, - 1, - &image1_mask); + libmv_floatBufferToFloatImage( + options->image1_mask, image1_width, image1_height, 1, &image1_mask); track_region_options.image1_mask = &image1_mask; } // Convert from raw float buffers to libmv's FloatImage. FloatImage old_patch, new_patch; - libmv_floatBufferToFloatImage(image1, - image1_width, - image1_height, - 1, - &old_patch); - libmv_floatBufferToFloatImage(image2, - image2_width, - image2_height, - 1, - &new_patch); + libmv_floatBufferToFloatImage( + image1, image1_width, image1_height, 1, &old_patch); + libmv_floatBufferToFloatImage( + image2, image2_width, image2_height, 1, &new_patch); TrackRegionResult track_region_result; - TrackRegion(old_patch, new_patch, - xx1, yy1, + TrackRegion(old_patch, + new_patch, + xx1, + yy1, track_region_options, - xx2, yy2, + xx2, + yy2, &track_region_result); // Convert to floats for the blender api. diff --git a/intern/libmv/intern/track_region.h b/intern/libmv/intern/track_region.h index 48ae97a1c1a..2f10105ccd5 100644 --- a/intern/libmv/intern/track_region.h +++ b/intern/libmv/intern/track_region.h @@ -24,14 +24,20 @@ extern "C" { #endif +typedef enum libmv_TrackRegionDirection { + LIBMV_TRACK_REGION_FORWARD, + LIBMV_TRACK_REGION_BACKWARD, +} libmv_TrackRegionDirection; + typedef struct libmv_TrackRegionOptions { + libmv_TrackRegionDirection direction; int motion_model; int num_iterations; int use_brute; int use_normalization; double minimum_correlation; double sigma; - float *image1_mask; + float* image1_mask; } libmv_TrackRegionOptions; typedef struct libmv_TrackRegionResult { @@ -42,9 +48,9 @@ typedef struct libmv_TrackRegionResult { #ifdef __cplusplus namespace libmv { - struct TrackRegionOptions; - struct TrackRegionResult; -} +struct TrackRegionOptions; +struct TrackRegionResult; +} // namespace libmv void libmv_configureTrackRegionOptions( const libmv_TrackRegionOptions& options, libmv::TrackRegionOptions* track_region_options); diff --git a/intern/libmv/intern/tracks.cc b/intern/libmv/intern/tracks.cc index 0ca5a31796b..146908d6db5 100644 --- a/intern/libmv/intern/tracks.cc +++ b/intern/libmv/intern/tracks.cc @@ -28,18 +28,18 @@ using libmv::Tracks; libmv_Tracks* libmv_tracksNew(void) { Tracks* tracks = LIBMV_OBJECT_NEW(Tracks); - return (libmv_Tracks*) tracks; + return (libmv_Tracks*)tracks; } void libmv_tracksDestroy(libmv_Tracks* libmv_tracks) { LIBMV_OBJECT_DELETE(libmv_tracks, Tracks); } -void libmv_tracksInsert(libmv_Tracks *libmv_tracks, +void libmv_tracksInsert(libmv_Tracks* libmv_tracks, int image, int track, double x, double y, double weight) { - ((Tracks *) libmv_tracks)->Insert(image, track, x, y, weight); + ((Tracks*)libmv_tracks)->Insert(image, track, x, y, weight); } diff --git a/intern/libmv/intern/tracksN.cc b/intern/libmv/intern/tracksN.cc index 1441d8a2066..c7ffb13a386 100644 --- a/intern/libmv/intern/tracksN.cc +++ b/intern/libmv/intern/tracksN.cc @@ -25,8 +25,7 @@ using mv::Marker; using mv::Tracks; -void libmv_apiMarkerToMarker(const libmv_Marker& libmv_marker, - Marker *marker) { +void libmv_apiMarkerToMarker(const libmv_Marker& libmv_marker, Marker* marker) { marker->clip = libmv_marker.clip; marker->frame = libmv_marker.frame; marker->track = libmv_marker.track; @@ -41,17 +40,16 @@ void libmv_apiMarkerToMarker(const libmv_Marker& libmv_marker, marker->search_region.max(0) = libmv_marker.search_region_max[0]; marker->search_region.max(1) = libmv_marker.search_region_max[1]; marker->weight = libmv_marker.weight; - marker->source = (Marker::Source) libmv_marker.source; - marker->status = (Marker::Status) libmv_marker.status; + marker->source = (Marker::Source)libmv_marker.source; + marker->status = (Marker::Status)libmv_marker.status; marker->reference_clip = libmv_marker.reference_clip; marker->reference_frame = libmv_marker.reference_frame; - marker->model_type = (Marker::ModelType) libmv_marker.model_type; + marker->model_type = (Marker::ModelType)libmv_marker.model_type; marker->model_id = libmv_marker.model_id; marker->disabled_channels = libmv_marker.disabled_channels; } -void libmv_markerToApiMarker(const Marker& marker, - libmv_Marker *libmv_marker) { +void libmv_markerToApiMarker(const Marker& marker, libmv_Marker* libmv_marker) { libmv_marker->clip = marker.clip; libmv_marker->frame = marker.frame; libmv_marker->track = marker.track; @@ -66,11 +64,11 @@ void libmv_markerToApiMarker(const Marker& marker, libmv_marker->search_region_max[0] = marker.search_region.max(0); libmv_marker->search_region_max[1] = marker.search_region.max(1); libmv_marker->weight = marker.weight; - libmv_marker->source = (libmv_MarkerSource) marker.source; - libmv_marker->status = (libmv_MarkerStatus) marker.status; + libmv_marker->source = (libmv_MarkerSource)marker.source; + libmv_marker->status = (libmv_MarkerStatus)marker.status; libmv_marker->reference_clip = marker.reference_clip; libmv_marker->reference_frame = marker.reference_frame; - libmv_marker->model_type = (libmv_MarkerModelType) marker.model_type; + libmv_marker->model_type = (libmv_MarkerModelType)marker.model_type; libmv_marker->model_id = marker.model_id; libmv_marker->disabled_channels = marker.disabled_channels; } @@ -78,7 +76,7 @@ void libmv_markerToApiMarker(const Marker& marker, libmv_TracksN* libmv_tracksNewN(void) { Tracks* tracks = LIBMV_OBJECT_NEW(Tracks); - return (libmv_TracksN*) tracks; + return (libmv_TracksN*)tracks; } void libmv_tracksDestroyN(libmv_TracksN* libmv_tracks) { @@ -89,7 +87,7 @@ void libmv_tracksAddMarkerN(libmv_TracksN* libmv_tracks, const libmv_Marker* libmv_marker) { Marker marker; libmv_apiMarkerToMarker(*libmv_marker, &marker); - ((Tracks*) libmv_tracks)->AddMarker(marker); + ((Tracks*)libmv_tracks)->AddMarker(marker); } void libmv_tracksGetMarkerN(libmv_TracksN* libmv_tracks, @@ -98,7 +96,7 @@ void libmv_tracksGetMarkerN(libmv_TracksN* libmv_tracks, int track, libmv_Marker* libmv_marker) { Marker marker; - ((Tracks*) libmv_tracks)->GetMarker(clip, frame, track, &marker); + ((Tracks*)libmv_tracks)->GetMarker(clip, frame, track, &marker); libmv_markerToApiMarker(marker, libmv_marker); } @@ -106,26 +104,25 @@ void libmv_tracksRemoveMarkerN(libmv_TracksN* libmv_tracks, int clip, int frame, int track) { - ((Tracks *) libmv_tracks)->RemoveMarker(clip, frame, track); + ((Tracks*)libmv_tracks)->RemoveMarker(clip, frame, track); } -void libmv_tracksRemoveMarkersForTrack(libmv_TracksN* libmv_tracks, - int track) { - ((Tracks *) libmv_tracks)->RemoveMarkersForTrack(track); +void libmv_tracksRemoveMarkersForTrack(libmv_TracksN* libmv_tracks, int track) { + ((Tracks*)libmv_tracks)->RemoveMarkersForTrack(track); } int libmv_tracksMaxClipN(libmv_TracksN* libmv_tracks) { - return ((Tracks*) libmv_tracks)->MaxClip(); + return ((Tracks*)libmv_tracks)->MaxClip(); } int libmv_tracksMaxFrameN(libmv_TracksN* libmv_tracks, int clip) { - return ((Tracks*) libmv_tracks)->MaxFrame(clip); + return ((Tracks*)libmv_tracks)->MaxFrame(clip); } int libmv_tracksMaxTrackN(libmv_TracksN* libmv_tracks) { - return ((Tracks*) libmv_tracks)->MaxTrack(); + return ((Tracks*)libmv_tracks)->MaxTrack(); } int libmv_tracksNumMarkersN(libmv_TracksN* libmv_tracks) { - return ((Tracks*) libmv_tracks)->NumMarkers(); + return ((Tracks*)libmv_tracks)->NumMarkers(); } diff --git a/intern/libmv/intern/tracksN.h b/intern/libmv/intern/tracksN.h index 9363d34bed7..b5d1f9753e0 100644 --- a/intern/libmv/intern/tracksN.h +++ b/intern/libmv/intern/tracksN.h @@ -79,20 +79,19 @@ typedef struct libmv_Marker { #ifdef __cplusplus namespace mv { - struct Marker; +struct Marker; } void libmv_apiMarkerToMarker(const libmv_Marker& libmv_marker, - mv::Marker *marker); + mv::Marker* marker); void libmv_markerToApiMarker(const mv::Marker& marker, - libmv_Marker *libmv_marker); + libmv_Marker* libmv_marker); #endif libmv_TracksN* libmv_tracksNewN(void); void libmv_tracksDestroyN(libmv_TracksN* libmv_tracks); - void libmv_tracksAddMarkerN(libmv_TracksN* libmv_tracks, const libmv_Marker* libmv_marker); @@ -107,8 +106,7 @@ void libmv_tracksRemoveMarkerN(libmv_TracksN* libmv_tracks, int frame, int track); -void libmv_tracksRemoveMarkersForTrack(libmv_TracksN* libmv_tracks, - int track); +void libmv_tracksRemoveMarkersForTrack(libmv_TracksN* libmv_tracks, int track); int libmv_tracksMaxClipN(libmv_TracksN* libmv_tracks); int libmv_tracksMaxFrameN(libmv_TracksN* libmv_tracks, int clip); diff --git a/intern/libmv/intern/utildefines.h b/intern/libmv/intern/utildefines.h index d76d32f9c4d..052052a1d76 100644 --- a/intern/libmv/intern/utildefines.h +++ b/intern/libmv/intern/utildefines.h @@ -30,27 +30,33 @@ # define LIBMV_OBJECT_NEW OBJECT_GUARDED_NEW # define LIBMV_OBJECT_DELETE OBJECT_GUARDED_DELETE # define LIBMV_OBJECT_DELETE OBJECT_GUARDED_DELETE -# define LIBMV_STRUCT_NEW(type, count) \ - (type*)MEM_mallocN(sizeof(type) * count, __func__) +# define LIBMV_STRUCT_NEW(type, count) \ + (type*)MEM_mallocN(sizeof(type) * count, __func__) # define LIBMV_STRUCT_DELETE(what) MEM_freeN(what) #else // Need this to keep libmv-capi potentially standalone. # if defined __GNUC__ || defined __sun -# define LIBMV_OBJECT_NEW(type, args ...) \ - new(malloc(sizeof(type))) type(args) +# define LIBMV_OBJECT_NEW(type, args...) \ + new (malloc(sizeof(type))) type(args) # else -# define LIBMV_OBJECT_NEW(type, ...) \ - new(malloc(sizeof(type))) type(__VA_ARGS__) -#endif -# define LIBMV_OBJECT_DELETE(what, type) \ - { \ - if (what) { \ - ((type*)(what))->~type(); \ - free(what); \ - } \ - } (void)0 +# define LIBMV_OBJECT_NEW(type, ...) \ + new (malloc(sizeof(type))) type(__VA_ARGS__) +# endif +# define LIBMV_OBJECT_DELETE(what, type) \ + { \ + if (what) { \ + ((type*)(what))->~type(); \ + free(what); \ + } \ + } \ + (void)0 # define LIBMV_STRUCT_NEW(type, count) (type*)malloc(sizeof(type) * count) -# define LIBMV_STRUCT_DELETE(what) { if (what) free(what); } (void)0 +# define LIBMV_STRUCT_DELETE(what) \ + { \ + if (what) \ + free(what); \ + } \ + (void)0 #endif #endif // LIBMV_C_API_UTILDEFINES_H_ |