rearrangeAstrolabe<T extends FunctionalAstrolabe> function
T
rearrangeAstrolabe<T extends FunctionalAstrolabe>(
- ZhongZhouHeavenEarth from,
- T astrolabe,
- Option option
Implementation
T rearrangeAstrolabe<T extends FunctionalAstrolabe>(
ZhongZhouHeavenEarth from,
T astrolabe,
Option option,
) {
final timeIndex = option.timeIndex;
final fixLeap = option.fixLeap;
// 以传入地支为命宫
final params = AstrolabeParams(
solarDate: astrolabe.solarDate,
timeIndex: timeIndex,
fixLeap: fixLeap,
gender: getMyGenderFrom(astrolabe.gender),
from: from,
);
final soulAndBody = getSoulAndBody(params);
final fiveElementClass = getFiveElementClass(
from.heavenlyStem,
from.earthlyBranch,
);
final palaceNames = getPalaceNames(soulAndBody.soulIndex);
final majorStars = getMajorStar(params);
final changSheng12 = getChangSheng12(params);
final horoscope = getHoroscope(params);
astrolabe.fiveElementClass = fiveElementClass;
for (int i = 0; i < astrolabe.palaces.length; i++) {
final palace = astrolabe.palaces[i];
palace.name = palaceNames[i];
palace.majorStars = majorStars[i];
palace.changShen12 = changSheng12[i];
palace.decadal = horoscope?["decades"][i];
palace.ages = horoscope?["ages"][i];
palace.yearlies = horoscope?["yearlies"][i].ages;
palace.isBodyPalace = soulAndBody.bodyIndex == i;
}
return astrolabe;
}