I have been able to stumble this far (see below), but I am still not creating a 3d shape. the shape is coming out flat.
Here is my code for creating a cube. I am still unsure how I should be using the M coordinate, so that may be my issue. Any help would be greatly appreciated!
Here is my code for creating a cube. I am still unsure how I should be using the M coordinate, so that may be my issue. Any help would be greatly appreciated!
FeatureSet cubeF = new FeatureSet();
cubeF.CoordinateType = CoordinateType.M;
DotSpatial.Data.Shape s = new DotSpatial.Data.Shape(FeatureType.Polygon);
//Top
List<Coordinate> polygonTop = new List<Coordinate>();
polygonTop.Add(new Coordinate(5, 0, 0, 1));
polygonTop.Add(new Coordinate(5, 5, 0, 2));
polygonTop.Add(new Coordinate(5, 5, 5, 3));
polygonTop.Add(new Coordinate(5, 0, 5, 4));
polygonTop.Add(new Coordinate(5, 0, 0, 5));
//Back
List<Coordinate> polygonBack = new List<Coordinate>();
polygonBack.Add(new Coordinate(5, 0, 0, 1));
polygonBack.Add(new Coordinate(5, 5, 0, 2));
polygonBack.Add(new Coordinate(0, 5, 0, 3));
polygonBack.Add(new Coordinate(0, 0, 0, 4));
polygonBack.Add(new Coordinate(5, 0, 0, 5));
//Bottom
List<Coordinate> polygonBottom = new List<Coordinate>();
polygonBottom.Add(new Coordinate(0, 0, 0, 1));
polygonBottom.Add(new Coordinate(0, 5, 0, 2));
polygonBottom.Add(new Coordinate(0, 5, 5, 3));
polygonBottom.Add(new Coordinate(0, 0, 5, 4));
polygonBottom.Add(new Coordinate(0, 0, 0, 5));
//Front
List<Coordinate> polygonFront = new List<Coordinate>();
polygonFront.Add(new Coordinate(5, 0, 5, 1));
polygonFront.Add(new Coordinate(5, 5, 5, 2));
polygonFront.Add(new Coordinate(0, 5, 5, 3));
polygonFront.Add(new Coordinate(0, 0, 5, 4));
polygonFront.Add(new Coordinate(5, 0, 5, 5));
//Left
List<Coordinate> polygonLeft = new List<Coordinate>();
polygonLeft.Add(new Coordinate(0, 0, 0, 1));
polygonLeft.Add(new Coordinate(5, 0, 0, 2));
polygonLeft.Add(new Coordinate(5, 0, 5, 3));
polygonLeft.Add(new Coordinate(0, 0, 5, 4));
polygonLeft.Add(new Coordinate(0, 0, 0, 5));
//Right
List<Coordinate> polygonRight = new List<Coordinate>();
polygonRight.Add(new Coordinate(0, 5, 0, 1));
polygonRight.Add(new Coordinate(0, 5, 5, 2));
polygonRight.Add(new Coordinate(5, 5, 5, 3));
polygonRight.Add(new Coordinate(5, 5, 0, 4));
polygonRight.Add(new Coordinate(0, 5, 0, 5));
s.AddPart(polygonTop.AsEnumerable(), CoordinateType.M);
s.AddPart(polygonBottom.AsEnumerable(), CoordinateType.M);
s.AddPart(polygonFront.AsEnumerable(), CoordinateType.M);
s.AddPart(polygonBack.AsEnumerable(), CoordinateType.M);
s.AddPart(polygonLeft.AsEnumerable(), CoordinateType.M);
s.AddPart(polygonRight.AsEnumerable(), CoordinateType.M);
cubeF.AddShape(s);
cubeF.SaveAs(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\cube.shp", true);