Example #1
0
        private MainVerticalZone GetMainVerticalZone(IProjectVersion version)
        {
            var x = SurfaceObject.CenterOfGravity.X;

            return(MainVerticalZone
                   .GetMainVerticalZones(version)
                   .FirstOrDefault(z => z.Range.IsIncluding(x, 0.01)));
        }
Example #2
0
            public IHierarchicalArrangement GetArrangement(IProjectVersion version, MainVerticalZone mvz)
            {
                var name    = GetArrangementName(mvz);
                var mvzArr  = mvz.GetArrangement(version);
                var deckArr = mvzArr.SubArrangements.FirstOrDefault(arr => arr.Name == name);

                if (deckArr == null)
                {
                    deckArr = mvzArr.AddSubArrangement(name);
                }
                return(deckArr);
            }
Example #3
0
        private IHierarchicalArrangement GetLeafArrangement(IProjectVersion version, MainVerticalZone mvz, DeckZone dz)
        {
            var name    = GetArrangementName(mvz, dz);
            var deckArr = dz.GetArrangement(version, mvz);
            var leafArr = deckArr.SubArrangements.FirstOrDefault(arr => arr.Name == name);

            if (leafArr == null)
            {
                leafArr = deckArr.AddSubArrangement(name);
            }
            return(leafArr);
        }
Example #4
0
        private DeckZone GetDeckZone(IProjectVersion version, MainVerticalZone mvz)
        {
            var p = SurfaceObject.CenterOfGravity;

            return(DeckZone.GetDefinedDeckZones(version)
                   .Select(z => {
                var s = version.GeometryManager.GetSurface(z.Surface);
                var pClosest = s.GetClosestPoint(p);
                return new { Zone = z, Point = pClosest };
            }).OrderBy(item => item.Point.GetDistance(p))
                   .Take(2)
                   .OrderByDescending(item => item.Point.Z)
                   .Select(item => item.Zone)
                   .FirstOrDefault());
        }
Example #5
0
        private string GetArrangementName(MainVerticalZone mvz, DeckZone dz)
        {
            var str = GetGenericStructureType();

            return("STR*" + str + "_" + mvz.Index + "_" + dz.ID);
        }
Example #6
0
 public string GetArrangementName(MainVerticalZone mvz)
 {
     return("STR*DECK_" + mvz.Index + "_" + ID);
 }