Example #1
0
        public void CreateVoxMatrixTerrain(Point3d[] terrainPoints, Grid grid)
        {
            TerrainflagMatrix = String.Empty;

            List <string> tempTerrainFlag = new List <string>();

            int numberZpoint = (grid.CombineGridType && grid.Telescope > 0) ? grid.NumZ + Grid.FIRST_CELL_COMBINED_GRID : grid.NumZ;

            foreach (Point3d pt in terrainPoints)
            {
                try
                {
                    int valX = (int)Math.Round(((pt.X - grid.MinX) / grid.DimX), 0);
                    int valY = (int)Math.Round(((pt.Y - grid.MinY) / grid.DimY), 0);
                    int valZ = (int)Math.Round(grid.CastingPrecision(pt.Z), 0);

                    tempTerrainFlag.Add(String.Format("{0},{1},{2},1.00000", valX, valY, valZ));
                }
                catch (IndexOutOfRangeException)
                {
                    // terrain is bigger than grid
                    continue;
                }
            }
            TerrainflagMatrix = String.Join("\n", tempTerrainFlag) + "\n";
        }
Example #2
0
        public void CreateVoxMatrixBuilding(Point3d[] buildingPoints, Point3d[] terrainPoints, Grid grid, int index)
        {
            BuildingFlagAndNr = String.Empty;
            List <string> tempBuildingFlag = new List <string>();

            //int numberZpoint = (grid.CombineGridType && grid.Telescope > 0) ? grid.NumZ + Grid.FIRST_CELL_COMBINED_GRID : grid.NumZ;
            _matrix = new Matrix3d(grid.NumX, grid.NumY, grid.NumZ);

            foreach (Point3d pt in buildingPoints)
            {
                int valX = (int)Math.Round(((pt.X - grid.MinX) / grid.DimX), 0);
                int valY = (int)Math.Round(((pt.Y - grid.MinY) / grid.DimY), 0);

                if (!terrainPoints.Contains(pt))
                {
                    int valZ = (int)Math.Round(grid.CastingPrecision(pt.Z), 0);

                    _matrix[valX, valY, valZ] = index;
                    tempBuildingFlag.Add(String.Format("{0},{1},{2},{3},{4}", valX, valY, valZ, 1, index));
                }
            }
            BuildingFlagAndNr = String.Join("\n", tempBuildingFlag) + "\n";
        }