Exemple #1
0
        public void DisplayDesignClusters(bool updateKeys = true, bool generate = true)
        {
            if (generate)
            {
                BatchDesign.GetDesignClusters();
            }
            var modelGroup = new Model3DGroup();
            List <List <Column> > designClusters = BatchDesign.GetDesignClustersCol();

            for (int i = 0; i < designClusters.Count; i++)
            {
                MeshBuilder   meshBuilder = new MeshBuilder(false, true);
                List <Column> columns     = designClusters[i];
                foreach (var c in columns)
                {
                    Point3D center  = new Point3D(c.Point1.X * 1e-3, c.Point1.Y * 1e-3, c.Point1.Z * 1e-3);
                    double  xlength = 0.2;
                    double  ylength = 0.2;
                    double  zlength = (c.Point2.Z - c.Point1.Z) * 1e-3;
                    meshBuilder.AddBox(center, xlength, ylength, zlength);
                }
                var mesh = new GeometryModel3D(meshBuilder.ToMesh(), MaterialHelper.CreateMaterial(myColors[i].ChangeAlpha(150)));
                mesh.BackMaterial = mesh.Material;
                modelGroup.Children.Add(mesh);
            }
            ClusteredDesigns = modelGroup;

            if (updateKeys)
            {
                DisplayDesignClustersKeys();
            }
            NumberOfColumns_Designs = designClusters.Sum(c => c.Count);
        }