private MainVerticalZone GetMainVerticalZone(IProjectVersion version) { var x = SurfaceObject.CenterOfGravity.X; return(MainVerticalZone .GetMainVerticalZones(version) .FirstOrDefault(z => z.Range.IsIncluding(x, 0.01))); }
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); }
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); }
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()); }
private string GetArrangementName(MainVerticalZone mvz, DeckZone dz) { var str = GetGenericStructureType(); return("STR*" + str + "_" + mvz.Index + "_" + dz.ID); }
public string GetArrangementName(MainVerticalZone mvz) { return("STR*DECK_" + mvz.Index + "_" + ID); }