MCPcopy Create free account
hub / github.com/CruiserOne/Astrolog / XChartWheelMulti

Function XChartWheelMulti

xcharts2.cpp:554–731  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

552// switch is combined with -X switch.
553
554void 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]));

Callers 1

DrawChartXFunction · 0.85

Calls 7

HousePlaceInXFunction · 0.85
DrawColorFunction · 0.85
DrawWheelFunction · 0.85
DrawRingFunction · 0.85
FProcessCommandLineFunction · 0.85
DrawAspectRelationFunction · 0.85
DrawSidebarFunction · 0.85

Tested by

no test coverage detected