15 #include <grass/nviz.h>
17 static void cp_draw(nv_data *,
int,
int,
int);
31 data->cp_rot[
id][
X] = data->cp_rot[
id][
Y] = data->cp_rot[
id][Z] = 0.0;
32 data->cp_trans[
id][
X] = data->cp_trans[
id][
Y] = data->cp_trans[
id][Z] =
47 data->cur_cplane =
id;
76 cp_draw(data, data->cur_cplane, bound1, bound2);
89 void cp_draw(nv_data *
data,
int current,
int surf1,
int surf2)
92 int surf_min = 0, surf_max = 0, temp;
101 if ((surf1 != -1) && (surf2 != -1)) {
102 for (i = 0; i < nsurfs; i++) {
103 if (surf_list[i] == surf1)
105 if (surf_list[i] == surf2)
109 if (surf_max < surf_min) {
123 for (i = 0; i < MAX_CPLANES; i++) {
129 for (i = surf_min; i < surf_max; i++) {
144 return data->num_cplanes;
154 return data->cur_cplane;
169 data->cp_rot[
id][
X] = dx;
170 data->cp_rot[
id][
Y] = dy;
171 data->cp_rot[
id][Z] = dz;
173 data->cp_rot[
id][Z]);
175 cp_draw(data, data->cur_cplane, -1, -1);
191 *dx = data->cp_rot[
id][
X];
192 *dy = data->cp_rot[
id][
Y];
193 *dz = data->cp_rot[
id][Z];
209 data->cp_trans[
id][
X] = dx;
210 data->cp_trans[
id][
Y] = dy;
211 data->cp_trans[
id][Z] = dz;
213 data->cp_trans[
id][Z]);
215 cp_draw(data, data->cur_cplane, -1, -1);
228 *dx = data->cp_trans[
id][
X];
229 *dy = data->cp_trans[
id][
Y];
230 *dz = data->cp_trans[
id][Z];
248 float x,
y, z, len, los[2][3];
258 realto[
X] = x - gs->ox + gs->x_trans;
259 realto[
Y] = y - gs->oy + gs->y_trans;
260 realto[Z] = z + gs->z_trans;
270 realto[
X] = Gv.from_to[
FROM][
X] + dir[
X];
271 realto[
Y] = Gv.from_to[
FROM][
Y] + dir[
Y];
272 realto[Z] = Gv.from_to[
FROM][Z] + dir[Z];
280 dx = realto[
X] - (e -
w) / 2.;
281 dy = realto[
Y] - (n -
s) / 2.;