Example #1
0
        /***************************************************/

        public static List <ICurve> Visualize(this AreaUniformalyDistributedLoad areaUDL, double scaleFactor = 1.0, bool displayForces = true, bool displayMoments = true, bool asResultants = true, bool edgeDisplay = true, bool gridDisplay = false)
        {
            if (!displayForces)
            {
                return(new List <ICurve>());
            }

            List <ICurve> arrows         = new List <ICurve>();
            Vector        globalForceVec = areaUDL.Pressure * scaleFactor;

            foreach (IAreaElement element in areaUDL.Objects.Elements)
            {
                Vector    forceVec;
                Cartesian system = null;

                IEnumerable <ICurve> edges = element.IEdges();

                if (areaUDL.Axis == LoadAxis.Global)
                {
                    if (areaUDL.Projected)
                    {
                        Vector normal = element.INormal().Normalise();
                        double scale  = Math.Abs(normal.DotProduct(globalForceVec.Normalise()));
                        forceVec = globalForceVec * scale;
                    }
                    else
                    {
                        forceVec = globalForceVec;
                    }
                }
                else
                {
                    Vector normal = element.INormal();
                    Vector x      = edges.First().IStartDir();
                    Vector y      = normal.CrossProduct(x);
                    system   = new Cartesian(new Point(), x, y, normal);
                    forceVec = globalForceVec;
                }

                if (edgeDisplay)
                {
                    arrows.AddRange(ConnectedArrows(edges, forceVec, asResultants, system, 1, true));
                }
                if (gridDisplay)
                {
                    arrows.AddRange(MultipleArrows(element.IPointGrid(), forceVec, asResultants, system, 1, true));
                }
            }

            return(arrows);
        }
Example #2
0
        /***************************************************/

        public static LoadType LoadType(this AreaUniformalyDistributedLoad load)
        {
            return(oM.Structure.Loads.LoadType.AreaUniformLoad);
        }