//public static LWQuboidPlace EncloseCopy(this IHas<IQuboidPlaceLogic> qplace, IHas<IQuboidPlaceLogic> placeToEnclose) //{ // LWQuboidPlace quboidplace = new LWQuboidPlace(); // double right = qplace.Right(); // double front = qplace.Front(); // double up = qplace.Up(); // quboidplace.Left = Math.Min(qplace.Left, placeToEnclose.Left); // quboidplace.Back = Math.Min(qplace.Back, placeToEnclose.Back); // quboidplace.Down = Math.Min(qplace.Down, placeToEnclose.Down); // quboidplace.Width = Math.Max(right, placeToEnclose.Right()) - quboidplace.Left; // quboidplace.Length = Math.Max(front, placeToEnclose.Front()) - quboidplace.Back; // quboidplace.Height = Math.Max(up, placeToEnclose.Up()) - quboidplace.Down; // return quboidplace; //} public static LWQuboidPlace MoveCopy(this IHas <IQuboidPlaceLogic> quboidPlace, double x, double y, double z) { LWQuboidPlace qplace = new LWQuboidPlace(quboidPlace); qplace.Move(x, y, z); return(qplace); }
public static LWQuboidPlace Quboid <T>(this GridQuboid <T> gquboid) where T : IConnectedGridElement3D, ILocalizableGridElement3D, IHas <IQuboidPlaceLogic> { LWQuboidPlace quboid = new LWQuboidPlace(); bool init = true; foreach (var element in gquboid.EnclosedElements) { if (init) { element.TakeSimpleValues <IQuboidPlaceLogic>(quboid); init = false; } else { quboid.Enclose(element); } } return(quboid); }