~ubuntu-branches/ubuntu/vivid/grass/vivid-proposed

« back to all changes in this revision

Viewing changes to imagery/i.ortho.photo/libes/cam_info.c

  • Committer: Package Import Robot
  • Author(s): Bas Couwenberg
  • Date: 2015-02-20 23:12:08 UTC
  • mfrom: (8.2.6 experimental)
  • Revision ID: package-import@ubuntu.com-20150220231208-1u6qvqm84v430b10
Tags: 7.0.0-1~exp1
* New upstream release.
* Update python-ctypes-ternary.patch to use if/else instead of and/or.
* Drop check4dev patch, rely on upstream check.
* Add build dependency on libpq-dev to grass-dev for libpq-fe.h.
* Drop patches applied upstream, refresh remaining patches.
* Update symlinks for images switched from jpg to png.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <string.h>
2
 
#include <grass/glocale.h>
3
 
#include "orthophoto.h"
4
 
#include <grass/ortholib.h>
5
 
 
6
 
#define IN_BUF 100
7
 
#define CAMERA_FILE "CAMERA"
8
 
 
9
 
 
10
 
int I_read_cam_info(FILE * fd, struct Ortho_Camera_File_Ref *cam_info)
11
 
{
12
 
    int n;
13
 
    char buf[IN_BUF];
14
 
    char cam_name[30];
15
 
    char cam_id[30];
16
 
    double Xp, Yp, CFL;
17
 
    int num_fid;
18
 
    char fid_id[30];
19
 
    double Xf, Yf;
20
 
 
21
 
    G_getl2(buf, IN_BUF, fd);
22
 
    G_strip(buf);
23
 
    if (sscanf(buf, "CAMERA NAME   %[^\n]", cam_name) == 1)
24
 
        strcpy(cam_info->cam_name, cam_name);
25
 
 
26
 
    G_getl2(buf, IN_BUF, fd);
27
 
    G_strip(buf);
28
 
    if (sscanf(buf, "CAMERA ID     %[^\n]", cam_id) == 1)
29
 
        strcpy(cam_info->cam_id, cam_id);
30
 
 
31
 
    G_getl2(buf, IN_BUF, fd);
32
 
    G_strip(buf);
33
 
    if (sscanf(buf, "CAMERA XP     %lf \n", &Xp) == 1)
34
 
        cam_info->Xp = Xp;
35
 
 
36
 
    G_getl2(buf, IN_BUF, fd);
37
 
    G_strip(buf);
38
 
    if (sscanf(buf, "CAMERA YP     %lf \n", &Yp) == 1)
39
 
        cam_info->Yp = Yp;
40
 
 
41
 
    G_getl2(buf, IN_BUF, fd);
42
 
    G_strip(buf);
43
 
    if (sscanf(buf, "CAMERA CFL    %lf \n", &CFL) == 1)
44
 
        cam_info->CFL = CFL;
45
 
 
46
 
    G_getl2(buf, IN_BUF, fd);
47
 
    G_strip(buf);
48
 
    if (sscanf(buf, "NUM FID       %d \n", &num_fid) == 1)
49
 
        cam_info->num_fid = num_fid;
50
 
 
51
 
    for (n = 0; n < cam_info->num_fid; n++) {
52
 
        G_getl2(buf, IN_BUF, fd);
53
 
        G_strip(buf);
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;
58
 
        }
59
 
    }
60
 
 
61
 
    return 1;
62
 
}
63
 
 
64
 
 
65
 
int I_new_fid_point(struct Ortho_Camera_File_Ref *cam_info,
66
 
                    char fid_id[30], double Xf, double Yf)
67
 
{
68
 
    return 0;
69
 
}
70
 
 
71
 
 
72
 
int I_write_cam_info(FILE * fd, struct Ortho_Camera_File_Ref *cam_info)
73
 
{
74
 
    int i;
75
 
 
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);
82
 
 
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);
87
 
 
88
 
    return 0;
89
 
}
90
 
 
91
 
 
92
 
int I_get_cam_info(char *camera, struct Ortho_Camera_File_Ref *cam_info)
93
 
{
94
 
    FILE *fd;
95
 
    int stat;
96
 
 
97
 
    fd = I_fopen_cam_file_old(camera);
98
 
    if (fd == NULL) {
99
 
        G_warning(_("Unable to open camera file [%s] in [%s]"),
100
 
                  camera, G_mapset());
101
 
 
102
 
        return 0;
103
 
    }
104
 
 
105
 
    stat = I_read_cam_info(fd, cam_info);
106
 
    fclose(fd);
107
 
    if (stat < 0) {
108
 
        G_warning(_("Bad format in camera file [%s] in [%s]"),
109
 
                  camera, G_mapset());
110
 
 
111
 
        return 0;
112
 
    }
113
 
 
114
 
    return 1;
115
 
}
116
 
 
117
 
 
118
 
int I_put_cam_info(char *camera, struct Ortho_Camera_File_Ref *cam_info)
119
 
{
120
 
    FILE *fd;
121
 
 
122
 
    fd = I_fopen_cam_file_new(camera);
123
 
    if (fd == NULL) {
124
 
        G_warning(_("Unable to open camera file [%s] in [%s]"),
125
 
                  camera, G_mapset());
126
 
 
127
 
        return 0;
128
 
    }
129
 
 
130
 
    I_write_cam_info(fd, cam_info);
131
 
    fclose(fd);
132
 
 
133
 
    return 1;
134
 
}