Пример #1
0
 public bool Contains(Polygon3D face)
 {
     foreach (Polygon3D s in sides)
     {
         if (s == face)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #2
0
        /// <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);
        }