Esempio n. 1
0
 /// <summary>
 /// Constructor, defines all variables.
 /// </summary>
 /// <param name="pos1">First body in the pair</param>
 /// <param name="pos2">Second body in the pair</param>
 /// <param name="actOrbis">Actual orbis</param>
 /// <param name="aspectType">Type of aspect</param>
 public Aspect(int pos1, int pos2, double actOrbis, AspectType aspectType)
 {
     this.pos1       = pos1;
     this.pos2       = pos2;
     this.actOrbis   = actOrbis;
     this.aspectType = aspectType;
 }
Esempio n. 2
0
        private void calculateAspects()
        {
            // build list to check
            PlanetaryPosition pp;;

            for (int i = 0; i < planetaryPositions.Count; i++)
            {
                pp = (PlanetaryPosition)planetaryPositions[i];
                analysedItems.Add(new AnalysedItem(pp.planetId, pp.longitude));
            }
            // add Ascendant and MC
            analysedItems.Add(new AnalysedItem(Constants.SE_ASC_AS_BODY, housePositionSet.getAsc()));
            analysedItems.Add(new AnalysedItem(Constants.SE_MC_AS_BODY, housePositionSet.getMC()));

            // analyse list
            double       itemsDistance1;
            double       itemsDistance2;
            double       normDistance;
            double       orbis;
            double       actOrbis;
            double       long1;
            double       long2;
            AnalysedItem item1;
            AnalysedItem item2;

            //   AnalysedItem swapItem;
            for (int i = 0; i < analysedItems.Count; i++)
            {
                item1 = (AnalysedItem)analysedItems[i];
                for (int j = i + 1; j < analysedItems.Count; j++)
                {
                    item2          = (AnalysedItem)analysedItems[j];
                    long1          = Math.Min(item1.longitude, item2.longitude);
                    long2          = Math.Max(item1.longitude, item2.longitude);
                    itemsDistance1 = long2 - long1;
                    itemsDistance2 = long1 - long2 + 360;
                    for (int k = 0; k < aspectTypes.Count; k++)
                    {
                        AspectType aspectType = (AspectType)aspectTypes[k];
                        normDistance = aspectType.distance;
                        orbis        = aspectType.orbis;
                        if ((Math.Abs(itemsDistance1 - normDistance)) <= orbis)     // aspect found
                        {
                            actOrbis = (Math.Abs(itemsDistance1 - normDistance));
                            aspects.Add(new Aspect(item1.index, item2.index, actOrbis, aspectType));
                        }
                        else
                        if ((Math.Abs(itemsDistance2 - normDistance)) <= orbis)         // aspect found
                        {
                            actOrbis = (Math.Abs(itemsDistance2 - normDistance));
                            aspects.Add(new Aspect(item1.index, item2.index, actOrbis, aspectType));
                        }
                    }
                }
            }
        }