public bool Contains(Polygon3D face) { foreach (Polygon3D s in sides) { if (s == face) { return(true); } } return(false); }
/// <summary> /// Creates the 6 faces of the cube /// </summary> private void CreateFaces() { Color inputColor = Color.Black; if (z == 1) { inputColor = Color.White; } Polygon3D aFace = new Polygon3D(clientSize, this, inputColor); //front face aFace.AddPoint(new Point3D(min.X, min.Y, max.Z)); aFace.AddPoint(new Point3D(max.X, min.Y, max.Z)); aFace.AddPoint(new Point3D(max.X, max.Y, max.Z)); aFace.AddPoint(new Point3D(min.X, max.Y, max.Z)); aFace.FrontBrush = new SolidBrush(outside); aFace.BackBrush = new SolidBrush(inside); sides.Add(aFace); inputColor = Color.Black; if (z == -1) { inputColor = Color.Yellow; } //back face aFace = new Polygon3D(clientSize, this, inputColor); aFace.AddPoint(new Point3D(max.X, min.Y, min.Z)); aFace.AddPoint(new Point3D(min.X, min.Y, min.Z)); aFace.AddPoint(new Point3D(min.X, max.Y, min.Z)); aFace.AddPoint(new Point3D(max.X, max.Y, min.Z)); aFace.FrontBrush = new SolidBrush(outside); aFace.BackBrush = new SolidBrush(inside); sides.Add(aFace); inputColor = Color.Black; if (x == 1) { inputColor = Color.Red; } //right face aFace = new Polygon3D(clientSize, this, inputColor); aFace.AddPoint(new Point3D(max.X, min.Y, max.Z)); aFace.AddPoint(new Point3D(max.X, min.Y, min.Z)); aFace.AddPoint(new Point3D(max.X, max.Y, min.Z)); aFace.AddPoint(new Point3D(max.X, max.Y, max.Z)); aFace.FrontBrush = new SolidBrush(outside); aFace.BackBrush = new SolidBrush(inside); sides.Add(aFace); inputColor = Color.Black; if (x == -1) { inputColor = Color.Green; } //left face aFace = new Polygon3D(clientSize, this, inputColor); aFace.AddPoint(new Point3D(min.X, min.Y, min.Z)); aFace.AddPoint(new Point3D(min.X, min.Y, max.Z)); aFace.AddPoint(new Point3D(min.X, max.Y, max.Z)); aFace.AddPoint(new Point3D(min.X, max.Y, min.Z)); aFace.FrontBrush = new SolidBrush(outside); aFace.BackBrush = new SolidBrush(inside); sides.Add(aFace); inputColor = Color.Black; if (y == -1) { inputColor = Color.Blue; } //top face aFace = new Polygon3D(clientSize, this, inputColor); aFace.AddPoint(new Point3D(min.X, min.Y, max.Z)); aFace.AddPoint(new Point3D(min.X, min.Y, min.Z)); aFace.AddPoint(new Point3D(max.X, min.Y, min.Z)); aFace.AddPoint(new Point3D(max.X, min.Y, max.Z)); aFace.FrontBrush = new SolidBrush(outside); aFace.BackBrush = new SolidBrush(inside); sides.Add(aFace); inputColor = Color.Black; if (y == 1) { inputColor = Color.Orange; } //bottom face aFace = new Polygon3D(clientSize, this, inputColor); aFace.AddPoint(new Point3D(max.X, max.Y, max.Z)); aFace.AddPoint(new Point3D(max.X, max.Y, min.Z)); aFace.AddPoint(new Point3D(min.X, max.Y, min.Z)); aFace.AddPoint(new Point3D(min.X, max.Y, max.Z)); aFace.FrontBrush = new SolidBrush(outside); aFace.BackBrush = new SolidBrush(inside); sides.Add(aFace); }