List <PointLoad> IDiscretizableLoad <Vault> .ToProjectedPointLoads(Vault structure) { double loc = ClosestValue(Loc.X, (structure as IDiscretizableStructure2D).MidSegmentX); var res = new List <PointLoad>(); foreach (var axis in new UnitVector3D[] { XAxis, ZAxis }) { if (Abs(Force.DotProduct(axis)) > Prec) { res.Add( new VaultPointLoad( new Point3D(loc, 0, structure.F(loc)), Force.ProjectOn(axis)) ); } } return(res); }