public DoubleCurvedGlulam(Curve centreline, Plane[] planes) : base() { Centreline = centreline; //Centreline.Domain.MakeIncreasing(); if (planes != null) { List <Vector3d> vectors = new List <Vector3d>(); List <double> parameters = new List <double>(); double t; for (int i = 0; i < planes.Length; ++i) { Centreline.ClosestPoint(planes[i].Origin, out t); parameters.Add(t); vectors.Add(planes[i].YAxis); } Orientation = new VectorListOrientation(Centreline, parameters, vectors); } else { Orientation = new KCurveOrientation(); } }
public Beam(Curve centreline, Curve section = null, Plane[] planes = null) { if (planes == null || planes.Length < 1) { if (centreline.IsPlanar()) { Plane cPlane; centreline.TryGetPlane(out cPlane); Orientation = new VectorOrientation(cPlane.ZAxis); } else { Orientation = new KCurveOrientation(); } } Section = section; Centreline = centreline; }