| 1165 | // lines, zenith positions, and locations of Ascendant and Descendant lines. |
| 1166 | |
| 1167 | flag ChartAstroGraphRelation(void) |
| 1168 | { |
| 1169 | CrossInfo *rgcr, *pcr, crT; |
| 1170 | char sz[cchSzDef], sz2[2][4]; |
| 1171 | real planet1[2][objMax], planet2[2][objMax], mc[2][objMax], ic[2][objMax], |
| 1172 | asc[2][objMax], des[2][objMax], asc1[2][objMax], des1[2][objMax], |
| 1173 | rgad[2][objMax], lo[2], longm, w, x, y, z, ww, xx, yy, zz, ad, oa, am, od; |
| 1174 | int cCross = 0, i, i2, j, k, l, m, n, o; |
| 1175 | byte ignore3[objMax]; |
| 1176 | flag fTransit, fEdge; |
| 1177 | |
| 1178 | if (us.fLatitudeCross) { |
| 1179 | rgcr = RgAllocate(MAXCROSS, CrossInfo, "crossing table"); |
| 1180 | if (rgcr == NULL) |
| 1181 | return fFalse; |
| 1182 | pcr = rgcr; |
| 1183 | } |
| 1184 | |
| 1185 | fTransit = us.nRel == rcTransit || us.nRel == rcProgress; |
| 1186 | if (fTransit) { |
| 1187 | sprintf(sz2[0], "%c.", us.nRel == rcTransit ? 'T' : 'P'); |
| 1188 | sprintf(sz2[1], "N."); |
| 1189 | for (i = 0; i <= is.nObj; i++) |
| 1190 | ignore3[i] = ignore[i] && ignore2[i]; |
| 1191 | } else { |
| 1192 | sprintf(sz2[0], "#1 "); sprintf(sz2[1], "#2 "); |
| 1193 | CopyRgb(ignore, ignore3, sizeof(ignore)); |
| 1194 | } |
| 1195 | |
| 1196 | for (i2 = 0; i2 <= 1; i2++) { |
| 1197 | |
| 1198 | for (i = 0; i <= is.nObj; i++) if (!ignore3[i]) { |
| 1199 | planet1[i2][i] = Tropical(rgpcp[i2+1]->obj[i]); |
| 1200 | planet2[i2][i] = rgpcp[i2+1]->alt[i]; // Calculate zenith loc. |
| 1201 | EclToEqu(&planet1[i2][i], &planet2[i2][i]); // of each object. |
| 1202 | } |
| 1203 | |
| 1204 | // Print header. |
| 1205 | |
| 1206 | AnsiColor(kDefault); |
| 1207 | sprintf(sz, "%sObject :", sz2[i2]); PrintSz(sz); |
| 1208 | for (j = 0; j <= is.nObj; j++) { |
| 1209 | i = rgobjList[j]; |
| 1210 | if (!ignore3[i] && FThing2(i)) { |
| 1211 | AnsiColor(kObjA[i]); |
| 1212 | sprintf(sz, VSeconds(" %.3s", " %-10.10s", " %-14.14s"), szObjDisp[i]); |
| 1213 | PrintSz(sz); |
| 1214 | } |
| 1215 | } |
| 1216 | AnsiColor(kDefault); |
| 1217 | sprintf(sz, "\n%s------ :", sz2[i2]); PrintSz(sz); |
| 1218 | for (i = 0; i <= is.nObj; i++) |
| 1219 | if (!ignore3[i] && FThing2(i)) { |
| 1220 | PrintCh(' '); |
| 1221 | PrintTab('#', VSeconds(3, 10, 14)); |
| 1222 | } |
| 1223 | |
| 1224 | // Print the longitude locations of the Midheaven lines. |
no test coverage detected