00001
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _HOMOG34_FIT_H
00030 #define _HOMOG34_FIT_H
00031
00032 #include <gandalf/linalg/4vector.h>
00033 #include <gandalf/linalg/3x4matrix.h>
00034 #include <gandalf/linalg/mat_square.h>
00035 #include <gandalf/linalg/symmat_eigen.h>
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00060 Gan_SymMatEigenStruct *gan_homog34_init ( Gan_SymMatEigenStruct *sme );
00061
00070 void gan_homog34_free ( Gan_SymMatEigenStruct *sme );
00071
00072 Gan_Bool gan_homog34_increment_p ( Gan_SymMatEigenStruct *sme,
00073 Gan_Vector4 *X, Gan_Vector3 *x,
00074 double scale, int *eq_count );
00075 Gan_Bool gan_homog34_increment_le ( Gan_SymMatEigenStruct *sme,
00076 Gan_Vector4 *X1, Gan_Vector4 *X2,
00077 Gan_Vector3 *l, double scale,
00078 int *eq_count );
00079 Gan_Bool gan_homog34_solve ( Gan_SymMatEigenStruct *sme, int eq_count,
00080 Gan_Matrix34 *P );
00081
00092 Gan_Bool gan_homog34_reset ( Gan_SymMatEigenStruct *sme );
00093
00102 #ifdef __cplusplus
00103 }
00104 #endif
00105
00106 #endif