Esempio n. 1
0
        /// <summary>
        /// Creates the room.
        /// </summary>
        private void addRoomObjects(SceneContainer sceneContainer)
        {
            Circle      circle      = new Circle(new Vertex(193.93f, 100.02f, 0f), new Vertex(340.03f, 196.04f, 0f), new Vertex(305.53f, 322.04f, 0f));
            RoundColumn roundColumn = new RoundColumn(sceneControl1.OpenGL, "Column 1", circle, -1090.10747004971f, 1333.73756501464f);

            // ===============
            // ==== Walls ====
            // ===============
            Vertex[] vertex1 = new Vertex[4] {
                new Vertex(583.469141284528f, 1051.34483191663f, 1333.73756501464f),
                new Vertex(583.469141284529f, 1051.34483191663f, -1090.10747004971f),
                new Vertex(1227.2874745031f, 1039.2873828411f, -1090.10747004971f),
                new Vertex(1227.28747450311f, 1039.2873828411f, 1333.73756501464f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall01 = new Wall(vertex1, "Wall 1", sceneControl1.OpenGL);

            Vertex[] vertex5 = new Vertex[4] {
                new Vertex(-1193.92231770492f, 1095.29657502782f, 1333.73756501464f),
                new Vertex(-1233.89549066894f, -756.208094725552f, 1333.73756501464f),
                new Vertex(-1233.89549066894f, -756.208094725554f, -1090.10747004971f),
                new Vertex(-1193.92231770492f, 1095.29657502782f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall05 = new Wall(vertex5, "Wall 5", sceneControl1.OpenGL);

            Vertex[] vertex6 = new Vertex[4] {
                new Vertex(-543.564905413147f, 1080.00527771998f, 1333.73756501464f),
                new Vertex(-1193.92231770492f, 1095.29657502782f, 1333.73756501464f),
                new Vertex(-1193.92231770492f, 1095.29657502783f, -1090.10747004971f),
                new Vertex(-543.564905413147f, 1080.00527771998f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall06 = new Wall(vertex6, "Wall 6", sceneControl1.OpenGL);

            Vertex[] vertex7 = new Vertex[4] {
                new Vertex(-542.588207408772f, 1189.1435831438f, 1333.73756501464f),
                new Vertex(-543.564905413147f, 1080.00527771997f, 1333.73756501464f),
                new Vertex(-543.564905413147f, 1080.00527771998f, -1090.10747004971f),
                new Vertex(-542.588207408772f, 1189.14358314381f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall07 = new Wall(vertex7, "Wall 7", sceneControl1.OpenGL);

            Vertex[] vertex8 = new Vertex[4] {
                new Vertex(587.186904540071f, 1409.48492346394f, 1333.73756501464f),
                new Vertex(-542.588207408771f, 1189.1435831438f, 1333.73756501464f),
                new Vertex(-542.588207408772f, 1189.1435831438f, -1090.10747004971f),
                new Vertex(587.186904540071f, 1409.48492346394f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall08 = new Wall(vertex8, "Wall 8", sceneControl1.OpenGL);

            Vertex[] vertex9 = new Vertex[4] {
                new Vertex(583.469141284528f, 1051.34483191662f, 1333.73756501464f),
                new Vertex(587.18690454007f, 1409.48492346394f, 1333.73756501464f),
                new Vertex(587.18690454007f, 1409.48492346394f, -1090.10747004971f),
                new Vertex(583.469141284528f, 1051.34483191662f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall09 = new Wall(vertex9, "Wall 9", sceneControl1.OpenGL);

            Vertex[] vertex10 = new Vertex[4] {
                new Vertex(1185.71341296406f, -811.267853802761f, 1333.73756501464f),
                new Vertex(1185.71341296406f, -811.267853802761f, -1090.10747004971f),
                new Vertex(-1233.89549066894f, -756.208094725554f, -1090.10747004971f),
                new Vertex(-1233.89549066894f, -756.208094725552f, 1333.73756501464f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall10 = new Wall(vertex10, "Wall 10", sceneControl1.OpenGL);

            Vertex[] vertex11 = new Vertex[4] {
                new Vertex(1185.71341296406f, -811.267853802761f, -1090.10747004971f),
                new Vertex(1185.71341296406f, -811.267853802761f, 1333.73756501464f),
                new Vertex(1227.28747450311f, 1039.2873828411f, 1333.73756501464f),
                new Vertex(1227.2874745031f, 1039.2873828411f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall wall11 = new Wall(vertex11, "Wall 11", sceneControl1.OpenGL);

            Vertex[] vertex12 = new Vertex[8] {
                new Vertex(587.18690454007f, 1409.48492346394f, -1090.10747004971f),
                new Vertex(-542.588207408784f, 1189.1435831438f, -1090.10747004971f),
                new Vertex(-543.564905413165f, 1080.00527771926f, -1090.10747004971f),
                new Vertex(-1193.92231770494f, 1095.2965750271f, -1090.10747004971f),
                new Vertex(-1233.89549066894f, -756.208094725533f, -1090.10747004971f),
                new Vertex(1185.71341296406f, -811.267853802761f, -1090.10747004971f),
                new Vertex(1227.28747450289f, 1039.28738284216f, -1090.10747004971f),
                new Vertex(583.469141284539f, 1051.34483191769f, -1090.10747004971f)
            };
            SharpGL.SceneGraph.Quadrics.Wall bottom01 = new Wall(vertex12, "Bottom 1", sceneControl1.OpenGL);

            Vertex[] vertex13 = new Vertex[8] {
                new Vertex(583.469141284539f, 1051.34483191769f, 1333.73756501464f),
                new Vertex(1227.28747450289f, 1039.28738284216f, 1333.73756501464f),
                new Vertex(1185.71341296406f, -811.267853802761f, 1333.73756501464f),
                new Vertex(-1233.89549066894f, -756.208094725533f, 1333.73756501464f),
                new Vertex(-1193.92231770494f, 1095.2965750271f, 1333.73756501464f),
                new Vertex(-543.564905413165f, 1080.00527771926f, 1333.73756501464f),
                new Vertex(-542.588207408784f, 1189.1435831438f, 1333.73756501464f),
                new Vertex(587.18690454007f, 1409.48492346394f, 1333.73756501464f)
            };
            SharpGL.SceneGraph.Quadrics.Wall top01 = new Wall(vertex13, "Top 1", sceneControl1.OpenGL);

            // ======================
            // ==== Wall objects ====
            // ======================
            WallObject window = new WallObject("Window 1");

            // On Wall
            window.AddPoly(new Vertex[4] {
                new Vertex(-1222.43f, -225.33f, 580.89f), new Vertex(-1206.38f, 518.49f, 580.89f), new Vertex(-1206.38f, 518.49f, -387.11f), new Vertex(-1222.43f, -225.33f, -387.11f)
            }, sceneControl1.OpenGL, Materials.Green(sceneControl1.OpenGL));
            // Not on Wall
            window.AddPoly(new Vertex[4] {
                new Vertex(-1322.41f, -223.17f, 580.89f), new Vertex(-1306.35f, 520.65f, 580.89f), new Vertex(-1306.35f, 520.65f, -387.11f), new Vertex(-1322.41f, -223.17f, -387.11f)
            }, sceneControl1.OpenGL, Materials.Green(sceneControl1.OpenGL));
            // Bottom
            window.AddPoly(new Vertex[4] {
                new Vertex(-1322.41f, -223.17f, -387.11f), new Vertex(-1222.43f, -225.33f, -387.11f), new Vertex(-1206.38f, 518.49f, -387.11f), new Vertex(-1306.35f, 520.65f, -387.11f)
            }, sceneControl1.OpenGL, Materials.Green(sceneControl1.OpenGL));
            // Top
            window.AddPoly(new Vertex[4] {
                new Vertex(-1222.43f, -225.33f, 580.89f), new Vertex(-1206.38f, 518.49f, 580.89f), new Vertex(-1306.35f, 520.65f, 580.89f), new Vertex(-1322.41f, -223.17f, 580.89f)
            }, sceneControl1.OpenGL, Materials.Green(sceneControl1.OpenGL));
            // Left
            window.AddPoly(new Vertex[4] {
                new Vertex(-1222.43f, -225.33f, -387.11f), new Vertex(-1222.43f, -225.33f, 580.89f), new Vertex(-1322.41f, -223.17f, 580.89f), new Vertex(-1322.41f, -223.17f, -387.11f)
            }, sceneControl1.OpenGL, Materials.Green(sceneControl1.OpenGL));
            // Right
            window.AddPoly(new Vertex[4] {
                new Vertex(-1206.38f, 518.49f, 580.89f), new Vertex(-1306.35f, 520.65f, 580.89f), new Vertex(-1306.35f, 520.65f, -387.11f), new Vertex(-1206.38f, 518.49f, -387.11f)
            }, sceneControl1.OpenGL, Materials.Green(sceneControl1.OpenGL));

            WallObject door = new WallObject("Door 1");

            // On Wall
            door.AddPoly(new Vertex[4] {
                new Vertex(-466.03f, 1204.07f, 959.89f), new Vertex(341.75f, 1361.62f, 959.89f), new Vertex(341.75f, 1361.62f, -1090.11f), new Vertex(-466.03f, 1204.07f, -1090.11f)
            }, sceneControl1.OpenGL, Materials.Blue(sceneControl1.OpenGL));
            // Not on Wall
            door.AddPoly(new Vertex[4] {
                new Vertex(-485.17f, 1302.23f, 959.89f), new Vertex(322.61f, 1459.77f, 959.89f), new Vertex(322.61f, 1459.77f, -1090.11f), new Vertex(-485.17f, 1302.23f, -1090.11f)
            }, sceneControl1.OpenGL, Materials.Blue(sceneControl1.OpenGL));
            // Bottom
            door.AddPoly(new Vertex[4] {
                new Vertex(-466.03f, 1204.07f, -1090.11f), new Vertex(341.75f, 1361.62f, -1090.11f), new Vertex(322.61f, 1459.77f, -1090.11f), new Vertex(-485.17f, 1302.23f, -1090.11f)
            }, sceneControl1.OpenGL, Materials.Blue(sceneControl1.OpenGL));
            // Top
            door.AddPoly(new Vertex[4] {
                new Vertex(-466.03f, 1204.07f, 959.89f), new Vertex(341.75f, 1361.62f, 959.89f), new Vertex(322.61f, 1459.77f, 959.89f), new Vertex(-485.17f, 1302.23f, 959.89f)
            }, sceneControl1.OpenGL, Materials.Blue(sceneControl1.OpenGL));
            // Left
            door.AddPoly(new Vertex[4] {
                new Vertex(-466.03f, 1204.07f, 959.89f), new Vertex(-485.17f, 1302.23f, 959.89f), new Vertex(-485.17f, 1302.23f, -1090.11f), new Vertex(-466.03f, 1204.07f, -1090.11f)
            }, sceneControl1.OpenGL, Materials.Blue(sceneControl1.OpenGL));
            // Right
            door.AddPoly(new Vertex[4] {
                new Vertex(341.75f, 1361.62f, 959.89f), new Vertex(322.61f, 1459.77f, 959.89f), new Vertex(322.61f, 1459.77f, -1090.11f), new Vertex(341.75f, 1361.62f, -1090.11f)
            }, sceneControl1.OpenGL, Materials.Blue(sceneControl1.OpenGL));


            WallObject electricalOutlet = new WallObject("Electrical outlet 160x80 1");

            // On Wall
            electricalOutlet.AddPoly(new Vertex[4] {
                new Vertex(-1225.11f, -349.31f, 1143.51f), new Vertex(-1220.23f, -123.36f, 1143.51f), new Vertex(-1220.23f, -123.36f, 1063.51f), new Vertex(-1225.11f, -349.31f, 1063.51f)
            }, sceneControl1.OpenGL, Materials.Red(sceneControl1.OpenGL));
            // Not on Wall
            electricalOutlet.AddPoly(new Vertex[4] {
                new Vertex(-1213.11f, -349.57f, 1143.51f), new Vertex(-1208.24f, -123.62f, 1143.51f), new Vertex(-1208.24f, -123.62f, 1063.51f), new Vertex(-1213.11f, -349.57f, 1063.51f)
            }, sceneControl1.OpenGL, Materials.Red(sceneControl1.OpenGL));
            // Bottom
            electricalOutlet.AddPoly(new Vertex[4] {
                new Vertex(-1213.11f, -349.57f, 1063.51f), new Vertex(-1225.11f, -349.31f, 1063.51f), new Vertex(-1220.23f, -123.36f, 1063.51f), new Vertex(-1208.24f, -123.62f, 1063.51f)
            }, sceneControl1.OpenGL, Materials.Red(sceneControl1.OpenGL));
            // Top
            electricalOutlet.AddPoly(new Vertex[4] {
                new Vertex(-1213.11f, -349.57f, 1143.51f), new Vertex(-1225.11f, -349.31f, 1143.51f), new Vertex(-1220.23f, -123.36f, 1143.51f), new Vertex(-1208.24f, -123.62f, 1143.51f)
            }, sceneControl1.OpenGL, Materials.Red(sceneControl1.OpenGL));
            // Left
            electricalOutlet.AddPoly(new Vertex[4] {
                new Vertex(-1225.11f, -349.31f, 1063.51f), new Vertex(-1213.11f, -349.57f, 1063.51f), new Vertex(-1213.11f, -349.57f, 1143.51f), new Vertex(-1225.11f, -349.31f, 1143.51f)
            }, sceneControl1.OpenGL, Materials.Red(sceneControl1.OpenGL));
            // Right
            electricalOutlet.AddPoly(new Vertex[4] {
                new Vertex(-1208.24f, -123.62f, 1143.51f), new Vertex(-1220.23f, -123.36f, 1143.51f), new Vertex(-1220.23f, -123.36f, 1063.51f), new Vertex(-1208.24f, -123.62f, 1063.51f)
            }, sceneControl1.OpenGL, Materials.Red(sceneControl1.OpenGL));

            addElectricalOutletSymbol(electricalOutlet);

            sceneContainer.AddChild(wall01);
            sceneContainer.AddChild(wall05);
            sceneContainer.AddChild(wall06);
            sceneContainer.AddChild(wall07);
            sceneContainer.AddChild(wall08);
            sceneContainer.AddChild(wall09);
            sceneContainer.AddChild(wall10);
            sceneContainer.AddChild(wall11);
            sceneContainer.AddChild(bottom01);
            sceneContainer.AddChild(top01);

            sceneContainer.AddChild(window);
            sceneContainer.AddChild(door);
            sceneContainer.AddChild(electricalOutlet);
            sceneContainer.AddChild(roundColumn);
        }