public static Luminaire Luminaire(this Point pt, Vector orientation = null, LuminaireType type = null, string name = "") { Luminaire luminaire = new Luminaire { Position = pt, Direction = orientation, LuminaireType = type, Name = name }; return(luminaire); }
public static List <Luminaire> Luminaire(this ICurve crv, double maxSpacing, Point target, LuminaireType type = null, string name = "") { double crvLen = crv.Length(); if (maxSpacing == 0) { return(null); } int count = (int)Math.Ceiling(crvLen / maxSpacing) + 1; return(Luminaire(crv, count, target, type, name)); }
public static List <Luminaire> Luminaire(this ICurve crv, double exactSpacing, Point target, bool centered = true, LuminaireType type = null, string name = "") { ICurve trimmedCrv; double crvLen = crv.Length(); if (exactSpacing == 0) { return(null); } if (centered) { trimmedCrv = crv.IExtend(-0.5 * (crvLen % exactSpacing), -0.5 * (crvLen % exactSpacing)); } else { trimmedCrv = crv.IExtend(0, -(crvLen % exactSpacing)); } return(Luminaire(trimmedCrv, exactSpacing, target, type, name)); }
public static List <Luminaire> Luminaire(this ICurve crv, int count, Vector dir, LuminaireType type = null, string name = "") { List <Luminaire> luminaires = new List <Luminaire>(); List <Point> pts = crv.SamplePoints(count); for (int i = 0; i < pts.Count; i++) { Luminaire lum = Create.Luminaire(pts[i], dir, type, name + "_" + i.ToString()); luminaires.Add(lum); } return(luminaires); }