2
#include <grass/glocale.h>
3
#include "orthophoto.h"
4
#include <grass/ortholib.h>
7
#define CAMERA_FILE "CAMERA"
10
int I_read_cam_info(FILE * fd, struct Ortho_Camera_File_Ref *cam_info)
21
G_getl2(buf, IN_BUF, fd);
23
if (sscanf(buf, "CAMERA NAME %[^\n]", cam_name) == 1)
24
strcpy(cam_info->cam_name, cam_name);
26
G_getl2(buf, IN_BUF, fd);
28
if (sscanf(buf, "CAMERA ID %[^\n]", cam_id) == 1)
29
strcpy(cam_info->cam_id, cam_id);
31
G_getl2(buf, IN_BUF, fd);
33
if (sscanf(buf, "CAMERA XP %lf \n", &Xp) == 1)
36
G_getl2(buf, IN_BUF, fd);
38
if (sscanf(buf, "CAMERA YP %lf \n", &Yp) == 1)
41
G_getl2(buf, IN_BUF, fd);
43
if (sscanf(buf, "CAMERA CFL %lf \n", &CFL) == 1)
46
G_getl2(buf, IN_BUF, fd);
48
if (sscanf(buf, "NUM FID %d \n", &num_fid) == 1)
49
cam_info->num_fid = num_fid;
51
for (n = 0; n < cam_info->num_fid; n++) {
52
G_getl2(buf, IN_BUF, fd);
54
if (sscanf(buf, "%s %lf %lf", fid_id, &Xf, &Yf) == 3) {
55
strcpy(cam_info->fiducials[n].fid_id, fid_id);
56
cam_info->fiducials[n].Xf = Xf;
57
cam_info->fiducials[n].Yf = Yf;
65
int I_new_fid_point(struct Ortho_Camera_File_Ref *cam_info,
66
char fid_id[30], double Xf, double Yf)
72
int I_write_cam_info(FILE * fd, struct Ortho_Camera_File_Ref *cam_info)
76
fprintf(fd, "CAMERA NAME %s \n", cam_info->cam_name);
77
fprintf(fd, "CAMERA ID %s \n", cam_info->cam_id);
78
fprintf(fd, "CAMERA XP %f \n", cam_info->Xp);
79
fprintf(fd, "CAMERA YP %f \n", cam_info->Yp);
80
fprintf(fd, "CAMERA CFL %f \n", cam_info->CFL);
81
fprintf(fd, "NUM FID %d \n", cam_info->num_fid);
83
for (i = 0; i < cam_info->num_fid; i++)
84
fprintf(fd, " %5s %15f %15f \n",
85
cam_info->fiducials[i].fid_id,
86
cam_info->fiducials[i].Xf, cam_info->fiducials[i].Yf);
92
int I_get_cam_info(char *camera, struct Ortho_Camera_File_Ref *cam_info)
97
fd = I_fopen_cam_file_old(camera);
99
G_warning(_("Unable to open camera file [%s] in [%s]"),
105
stat = I_read_cam_info(fd, cam_info);
108
G_warning(_("Bad format in camera file [%s] in [%s]"),
118
int I_put_cam_info(char *camera, struct Ortho_Camera_File_Ref *cam_info)
122
fd = I_fopen_cam_file_new(camera);
124
G_warning(_("Unable to open camera file [%s] in [%s]"),
130
I_write_cam_info(fd, cam_info);