| 552 | // switch is combined with -X switch. |
| 553 | |
| 554 | void XChartWheelMulti() |
| 555 | { |
| 556 | real xsign[cSign+1], xhouse1[cSign+1], xplanet1[objMax], xplanet2[objMax], |
| 557 | xplanet3[objMax], xplanet4[objMax], xplanet5[objMax], xplanet6[objMax], |
| 558 | symbol[objMax], ri2, rp, rl1, rl2, rg, rT; |
| 559 | CP *pcp[cRing+1]; |
| 560 | real *pxp[cRing+1]; |
| 561 | int cx, cy, i, fQuad, fQuin, fHexa, nRing; |
| 562 | real unitx, unity, base, base2, off; |
| 563 | |
| 564 | // Set up variables and temporarily automatically decrease the horizontal |
| 565 | // chart size to leave room for the sidebar if that mode is in effect. |
| 566 | |
| 567 | if (gs.fText && gs.fDoSidebar) |
| 568 | gs.xWin -= xSideT; |
| 569 | cx = gs.xWin/2 - 1; cy = gs.yWin/2 - 1; |
| 570 | unitx = (real)cx; unity = (real)cy; |
| 571 | gi.rAsc = gs.objLeft ? cp1.obj[NAbs(gs.objLeft)-1] + |
| 572 | rDegQuad*(gs.objLeft < 0) : cp1.cusp[1]; |
| 573 | if (us.fIndian) |
| 574 | gi.rAsc = gs.objLeft ? (gs.objLeft < 0 ? 120.0 : -60.0)-gi.rAsc : 0.0; |
| 575 | fHexa = (us.nRel == rcHexaWheel); |
| 576 | fQuin = fHexa || (us.nRel == rcQuinWheel); |
| 577 | fQuad = fQuin || (us.nRel == rcQuadWheel); |
| 578 | nRing = 3 + fQuad + fQuin + fHexa; |
| 579 | base = (fHexa ? 0.11 : (fQuin ? 0.22 : (fQuad ? 0.23 : 0.36))); |
| 580 | base2 = base + (fQuin ? 0.01 : 0.02); |
| 581 | off = fQuin ? 0.11 : 0.13; |
| 582 | pxp[1] = xplanet6; pxp[2] = xplanet5; pxp[3] = xplanet4; |
| 583 | pxp[4] = xplanet3; pxp[5] = xplanet2; pxp[6] = xplanet1; |
| 584 | for (i = 1; i <= nRing; i++) { |
| 585 | pcp[i] = rgpcp[nRing+1 - i]; |
| 586 | pxp[i] = pxp[i + cRing - nRing]; |
| 587 | } |
| 588 | |
| 589 | // Fill out arrays with the degrees of the cusps and sign glyphs, and the |
| 590 | // positions of the planet rings. |
| 591 | |
| 592 | if (gi.nMode == gWheel) { |
| 593 | for (i = 1; i <= cSign; i++) |
| 594 | xhouse1[i] = PZ(cp1.cusp[i]); |
| 595 | } else { |
| 596 | gi.rAsc -= cp1.cusp[1]; |
| 597 | for (i = 1; i <= cSign; i++) |
| 598 | xhouse1[i] = PZ(ZFromS(i)); |
| 599 | } |
| 600 | for (i = 1; i <= cSign; i++) |
| 601 | xsign[i] = PZ(HousePlaceInX(ZFromS(i), 0.0)); |
| 602 | for (i = 0; i <= is.nObj; i++) { |
| 603 | xplanet1[i] = PZ(HousePlaceInX(pcp[1]->obj[i], pcp[1]->alt[i])); |
| 604 | xplanet2[i] = PZ(HousePlaceInX(pcp[2]->obj[i], pcp[2]->alt[i])); |
| 605 | xplanet3[i] = PZ(HousePlaceInX(pcp[3]->obj[i], pcp[3]->alt[i])); |
| 606 | if (fQuad) { |
| 607 | xplanet4[i] = PZ(HousePlaceInX(pcp[4]->obj[i], pcp[4]->alt[i])); |
| 608 | if (fQuin) { |
| 609 | xplanet5[i] = PZ(HousePlaceInX(pcp[5]->obj[i], pcp[5]->alt[i])); |
| 610 | if (fHexa) |
| 611 | xplanet6[i] = PZ(HousePlaceInX(pcp[6]->obj[i], pcp[6]->alt[i])); |
no test coverage detected